在windows 2012中,你可以对非系统卷启用重复数据删除功能。重复数据删除通过查找卷中的冗余数据,然后确保数据在卷中只保存一份来优化卷的存储空间。实现这个功能是通过将数据存放在单一的一个位置,并且为其他的冗余的数据副本提供这个位置参照。由于数据被划分成32-128KB的数据块,所以重复数据删除不仅能优化卷中冗余的文件,同样也可以优化文件中冗余部分。
重复数据删除能够与DFS复制部署在一起,用来提供更加高效的存储和复制基础架构。
重复数据删除的工作方法:
一旦在卷中启用了重复数据删除,windows 2012通过维护以下的组件来优化卷空间:
1.数据块存储。优化的文件数据会放置在数据库存储中。
2.优化的文件。优化的文件会以解析点的方式存储。一个解析点含有一个指向保存在数据块存储中的数据位置的指针,所以在收到访问请求时能够成功的检索到对应的数据块。
3.未优化文件。这些包括了任何与数据重复删除中文件日期标准不匹配的文件。为了使用重复数据删除功能进行优化,文件必须在一定的时间内保持静态。未优化文件可以包含系统状态文件,加密文件,小于32KB的文件,带扩展属性的文件,或者被其他APP使用的文件。
重复数据删除实验环境:
LON-DC1 win2012 R2 域控
LON-SVR1 win2012 R2 成员服务器
首先用通过powershell命令,在C盘的Deduplication文件夹中创建一个300M的文件file1.txt
(New-Object system.io.fileStream E:\deduplication\file1.txt,create,readwrite).setlength(300MB)
将file1.txt文件复制多个副本
安装重复数据删除功能
使用Eanble-DedupVolume E: -UsageTyep Default命令启用E卷的重复数据删除功能,或者进入服务器管理器中文件和存储服务--卷,右键选中E盘配置重复数据删除,在弹出的设置窗口中选择一般用途文件服务器。
数据重复删除被启用之后,可以在服务器管理器卷中E盘的删除重复保存和重复数据删除率项目都不为空了
在重复数据删除的设置中,我们可以设置重复删除的计划,或者用Powershell命令New-DedupSchedule来创建计划
成功创建后,我们可以打开windows的计划任务,选中Deduplication,可以到看我们刚才创建的OptimizeE的计划
为了立即看到重复数据删除的效果,我们使用Start-DedupJob -Type Optimization -Volumn E:来启动重复删除任务,然后运行Get-DedupJob来查看任务运行状态
通过Get-DedupJob看到Progress为100%时,说明重复删除已经执行完毕,我们回到服务器管理器的卷中查看E盘的重复数据删除率和删除重复保存的值有什么变化
通过上面的图片发现,重复删除任务执行后磁盘空间并没有变化,这是由于我们在重复数据删除中对文件时间使用的是默认值,默认对3天前的文件执行文件重复删除,在本实验中因为文件都是新创建的,所以我们把这个值修改成0,就可以顺利完成重复数据删除任务了,执行下面的命令来修改文件时间
然后我们再执行一次Start-DedupJob,然后使用Get-DedupJob查看任务执行情况,当Progress变成100%时,再次回到服务器管理器的卷中查看E盘的状态,可以发现重复数据删除率和删除重复保存的值不再是0了,重复数据删除率71%,可见重复数据删除功能对我们的存储空间的利用率有着非常大的帮助。
我们打开E盘的Deduplication文件夹,发现文件并没有被删除,所以这个功能对用户是透明的,它完全不会影响到用户的数据读取。