NAS硬盘文件无法读取之谜

前情提要:今年暑假的时候,我从放在学校的NAS上拔下一块2T硬盘随身带回家转移数据,NAS系统为Windows?Server?2012?R2?Datacenter,之前启用过重复数据删除。

硬盘带回家后,插上易驱线连上笔记本试图打开文件,显示无法访问,挨个右键查看文件属性,文件大小正常,然而显示占用空间是0……依次打开文件夹次级目录,目录显示全部正常,只是文件统统无法打开,除了放假前刚放进去的几个文件访问正常,其他文件全挂。

右键本地磁盘属性,空间占用正常,也就是说文件应该还在硬盘上,只是由于某些原因,只能访问文件目录,无法打开文件本体。硬盘上的剩余空间读写均正常无问题。

开学后将该硬盘带回学校,插回NAS,所有文件又均能正常访问了,复制剪切操作之后在其他电脑上也能正常访问。此时依然不知道是什么原因导致文件无法访问。

使用SpaceSniffer查看此磁盘文件分布状态,显示该磁盘只在System?Volume?Information\Dedup\ChunkStore\{****}.ddp\Data目录下有一堆单体大小1GB的****.ccc文件(****均为系统自动生成的编号,已略去),当时只搜索了chunkstore,并没有找到什么有意义的结果,对解决问题没有任何帮助。直到今天,整理文件的时候再次使用了SpaceSniffer,注意到上述文件目录中有一个Dedup,再次搜索,这回终于有答案了。

文章地址:https://bbs.saraba1st.com/2b/thread-1296624-1-1.html

与本问题有关的描述摘录如下:

然后是dedup

  • 是文件数据块级别的去重(两个1T的文件,只相差1byte,dedup后占用空间大约只有1T)。在dedup时吃几百近千MB的内存,dedup完毕后几乎不吃内存,我给2012虚拟机分配768MB内存足矣。dedup时磁盘读写大,但仅是速度慢,不阻止其它程序对文件的读写(操作是透明的)。不论对该类文件去重效果如何,把所有文件都转成专用的数据块(这一操作类似于复制后删除,对磁盘的读写也是,由此可估算速度:dedup速度约=同盘复制的速度),存在卷的根目录的System Volume Information里(隐藏不可见),文件原位置只留一个指针(占用空间很小)。所以如果把一个卷完全dedup后,理论上选中所有文件夹查看属性,大小是不变,占用空间应该变得很小(无论dedup率如何,因为产生的数据块都到那个隐藏文件夹里去了,这里看不到数据块的空间占用,这里占用空间的只有指针文件),一般不足1G(或者文件很多的话最多几个G)。
    http://bbs.saraba1st.com/2b/forum.php?mod=viewthread&tid=1020269中84楼贴的图,大小2.28TB,占用670GB,实际上肯定是有600多G文件还未dedup(未转换为数据块),真正完成后占用应该是不到1G的。压缩率不是从这儿看的,而应该用“卷属性的已用空间”除以“全选、属性的总文件大小”。(无法查看特定文件或文件夹的压缩率,只能看整个卷的)
    例如,我有个卷放的系统备份、Windows安装iso、Onenote备份等等杂物仓库,全选其中文件大小是40.5GB,占用空间是22.3MB;卷的已用空间是31.0GB,则去重率=(40.5-31)/40.5=23.5%
  • 对视频文件效果很差(我对160G的电影、动画片视频试了下,只删去了0.5G),http://bbs.saraba1st.com/2b/forum.php?mod=viewthread&tid=1020269这帖子里14楼说
    3.Dedup对ISO,VHD这种重复性比较高的文件去重率可以到90%,各种番各种老师也可以到50%。3T存储池实际可用空间超过10T。

    有误不可信。iso、vhd去重率高是真,但是“各种番各种老师到50%”,我觉得99%的可能性是他存了两份文件(比如文件名不一样)自己不知道或者去重率计算方法不对。

  • win8.1可以用这个方法开启2012的dedup:http://wenzhongxiang.blog.51cto.com/6370734/1636286
  • win10有人用这个方法开启了2016的dedup,但是我照做失败了:http://arthurremy.com/index.php/ … ation-on-windows-10
  • 2012的dedup无法在win10中识别,2016的dedup无法在win10、2012中识别。
  • 2012、2016的dedup卷共享给win10是可以正常识别使用的。

划重点:不论对该类文件去重效果如何,把所有文件都转成专用的数据块,存在卷的根目录的System Volume Information里,文件原位置只留一个指针。所以如果把一个卷完全dedup后,理论上选中所有文件夹查看属性,大小是不变,占用空间应该变得很小,一般不足1G。

根据上述描述,确定问题出在winserver2012的重复数据删除上,这个重复数据删除并不是我所想象的找出完全相同的文件然后删除一个,而是在更底层的位置上对重复的数据进行去重压缩,不会对表面上的文件进行删除。造成的后果就是兼容性不太好,我笔记本win8.1并不能读取dedup之后的文件。

至于解决方法么……实测关闭重复数据删除并不能使文件自动从dedup状态下提取出来,只能手动移动文件到另一个磁盘,格式化原盘再放回去……虽然这个方法实在是太沙雕但架不住对我目前的状况非常好用,预计未来几天NAS都将在不眠不休的移动文件中度过……