掌握Windows Server 2012 R2重复数据删除技术

pdce 9年前


擦除技术是Windows Server 2012和Windows Server 2012 R2的自带功能。这种技术在磁盘卷中查找重复的内容,保留一份副本并删除其余重复的部分——而且在数据被移除的位置会插入一个“链接”指向保留的那份数据块上面去。

这是一项很有效的用于回收可用存储空间的技术,前提是磁盘卷很多内容与其他内容没有太大差别。想象一下ISO库,同一个文件多个版本的文件共享 (类似修正跟踪);还有你可能不会想到的另一个应用: VDI部署。在VDI部署中的这些虚拟机,即使你使用不一样的磁盘,里面也包含了成千上万相似的操 作系统库和可执行文件。在VDI部署环境中启用数据删除功能省下的磁盘空间能够超过90%,其他类型的内容可以压缩50%甚至更多的空间,而且这一切不会 对性能产生可感知的影响。所有的这些都包含在你的Windows许可证里面。

Windows Server 2012 R2在数据删除功能上引入了几个改进,包括在扩展文件服务器和集群共享卷上启用这个功能的能力。Windows Server 2012 R2也特别针对VHD和VHDX文件进行了算法的优化,并且增强了Windows写入磁盘的效率和磁盘算法的优化,从性能的角度来说,不会怪罪于为生产部 署的虚拟桌面基础架构中活动的VHDX文件。需要注意到的一点是,Hyper-V宿主机和托管存储卷的机器启用的数据删除一定是不一样的,因为使用 Hyper-V上有活动的虚拟机负载,数据删除可能会消耗Hyper-V所能承受的系统资源。

数据删除作业

数据删除包含了3种在一定间隔时间重复执行的作业:

优化作业:这个工作执行着核心的分析和从磁盘卷中移除重复内容。它还执行着使用内置算法压缩大块文件的工作,使文件的大小得到平衡,而不会受到解压时对性能的影响。

数据清洗作业:有的时候随着数据删除或者随后的大块文件压缩,数据可能被损坏。这需要使用校验和和对文件元数据的一致性检查来对其进行验证。在这个过程 中,数据清洗作业尝试修复损坏的文件,这个过程通过从一个私有备份Windows上频繁访问的非重复内容恢复一份副本来,或者从类似 Windows Storage Spaces的容错磁盘卷上恢复文件,或者在文件被写入的时候将损坏的数据块替代为新的,正确的数据块。

垃圾回收作业:这个作业收集那些没有优化或长期不需要的文件碎片,删除它们来增加磁盘可利用的空间。

数据删除启用及配置

开始使用数据删除最简单的方法是使用PowerShell在你想要安装的服务器上添加该特性。你也可以通过GUI使用Server Manager来完成,不过需要执行很多点击和选择。用PowerShell的方法只需要3行cmdlets,所以省了很多工作——有时候我非常赞同这个 方法。

在需要安装的机器上,以管理员身份打开PowerShell命令行,输入以下cmdlets:

Import-Module ServerManager

Add-WindowsFeature -name FS-Data-Deduplication

Import-Module Deduplication

一旦正确的组件安装完毕后,还需要一些另外的PowerShell cmdlets让特定的磁盘卷启用数据删除。举个例子,以下cmdlet可以在虚拟桌面部署的H盘启用数据删除 (因此UsageType标记为”HyperV”)

Enable-DedupVolume H: -UsageType HyperV

以下cmdlet在磁盘S上启用了常规的数据删除

Enable-DedupVolume S: -UsageType Default

默认的情况下,一旦你对磁盘运行了这些cmdlets,优化程序就会每个小时运行一次,数据清洗和垃圾回收则每个星期运行一次。你也可以利用以下的PowerShell cmdlet按需手动地启动这些进程。

Start-DedupJob –Volume S: –Type Optimization

你可以使用以下cmdlet来查看Windows设置好自动运行的计划。

Get-DedupSchedule

优化作业默认只能每个星期运行一次,你可以使用Task Scheduler自定义任务来让优化作业运行得更频繁。

我想在这个时代,我们将一整个系统的副本放到了一个巨大的VHDX文件里面,而且我们需要存储的数据容量一直在增加,数据删除对可用存储的管理 以及存储数据成本的控制来说将会变成重要的一部分。鉴于数据删除特性是包含在Windows Server许可证里面的,如今没有什么理由不使用这个功能了。