windows server 2012重复数据删除
据MS网站提供的描述,重复数据删除是在不损害数据保真度或者完整性的情况下查找和删除数据中的重复。通过将文件分段为小的可变大小的块(32-128KB),识别重复的块以及维护每个块的副本,在更少的空间中存储更多的数据。块的冗余副本由对单个副本的引用替换。压缩块,然后将其组织到System Volume Information文件夹中的特殊容器文件中。
重复数据删除以后,文件不再存储为独立的数据流,而是用存根指向存储在公共块存储中的数据块替换它们。这些文件共享块只存储一次,就减少了存储所有文件所需的磁盘空间。在文件的访问期间,透明的组装正确的块以提供数据而无需调用应用程序或用户知道对文件的磁盘转换。这使得管理员能够将重复数据删除应用于文件,而无需担心应用程序行业的任何更改或者对访问这些文件的用户的影响。
上面的图是未启用重复数据删除的存储示例,下面是启用了重复数据删除后文件的存储方式。
重复数据删除的服务器和卷的要求:
1. 服务器硬件要能满足运行windows server 2012的最低条件,如内存不能小于4GB。
2. 如果在同一个服务器的上多个卷运行重复数据删除,需要进行适当的硬件规划。一个卷需要1个CPU物理核心以及约350MB的专用内存。每小时可以处理大约100GB的数据或者每天大约2T的数据。重复数据删除在后台处理模式下使用25%的系统内存。 比如,你有16G系统,则可用于重复数据删除的内存为4G,这样,内存可以支持11个卷运行重复数据删除,
3.重复数据删除一次最多支持90个卷;
4. 不能对系统或者启动卷应用重复数据删除,分区可以是MBR或者GPT分区,必须格式化为NTFS格式。
本文,我们通过实验,简要的来看看如何实现重复数据的删除,以及在灾难发生时如何恢复文件的访问。
一、 安装重复数据删除模块
二、 对某个分区启用重复数据删除
打开服务器管理器,找到下方的文件和存储服务,选中服务器的某个卷,在卷上配置重复数据删除。
三、 运行重复数据删除,我们将对早于0天的文件进行删除重复。
实验环境中,卷E有五个一样的文件夹,未重删以前,占用空间为3.06GB。
对于非系统卷、启动卷或者已经开启重复数据删除的卷,还可以运行一个评估工具来查看可以节省的空间。在本实验中,我们将这五个文件夹复制到F:\data,对这个目录进行重复数据删除可以节约空间的评估。
手动触发一次重删工作。
Start-DedupJob -Volume E: -Type Optimization
重删完成以后,E盘整个空间占用都只有800多M了,而之前只有那五个文件夹就占用了3.06G
我们可以通过下列命令来查看重删除的效果 get-dedupstatus | format-list
然后,我们再来看看,这五个文件夹,占用的空间大小为0了,也就是说,这些文件并没有存储到我们看到的这个位置,而是放到了System Volume Information那里头了。
至此,我们可以看到,确实是节约了2.45GB的存储空间,节省空间占比接近80%,也印证了那句话:相同的数据只存储一次。 不过windows是对文件进行分块来对比的,而不是对底层的block对比。
接下来,我们来看看,有一天,OS崩溃了,我们重装,如何让数据能正常访问。
为了印证文件是否可以访问,我准备将重装后的2012上的,将运行了重复数据删除的文件夹下的一个文件进行复制。结果是无法复制。
此时,我们应该在新装操作系统的服务器上,重新安装重复数据删除的角色,安装完成以后,原来那E盘这个卷设置的重删的相关规则会继承重装前的。不需要额外再进行设置,这样,数据又能够正常访问了。
附:微软重复数据删除链接:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831602(v=ws.11)