Windows Server 8中的重复数据删除功能

重复数据删除不是什么新鲜事。第三方厂商将这项技术用于收缩备份存储和WAN优化已经很多年了。虽然如此,但在Windows操作系统中一直没有自己的重复数据删除功能。但是这种情况随着Windows Server 8的发布就要改变了。

和存在已久的第三方产品一样,Windows Server 8的重复数据删除功能旨在让更多的数据保存在更少的空间中。注意,我不是说这个重复数据删除功能能让更多的数据存储在更少的空间中。尽管Windows Server 8将支持存储级的重复数据删除,它还支持传输中数据的重复数据删除。

存储重复数据删除

尽管重复数据删除是Windows操作系统中的新功能,微软产品已经用多种方法增加存储容量很长时间了。例如,Windows操作系统长久以来都支持文件系统(NTFS)级别的压缩。同样地,Exchange Server的一些之前版本通过单一实例存储(SIS)的使用寻求方法来最大化可用的存储空间。尽管这样的技术的确帮助降低了存储成本,但是NTFS压缩和单一实例存储都没有Windows Server 8的重复数据删除那么高效。

根据微软的估计,Windows Server 8的重复数据删除功能在年末市的时候能为一般的数据存储交付2:1的优化比率。这个比率在虚拟服务器环境中可以增加到20:1。

存储重复数据删除工作的方式

Windows Server 8的重复数据删除功能比单一实例存储更高效的原因是因为SIS是在文件级别工作。换句话说,如果一个文件的两份相同拷贝需要放在一台服务器上,那么单一实例存储只存储这个文件的一个拷贝,但是使用指示器来造成存在多个文件拷贝的假象。尽管这种技术对于包括多个同一文件的服务器来说的确很好,但是对于类似但不相同的文件来说就没有任何作用了。

这个操作系统会为每一块计算哈希。然后这些哈希值进行比较来确定哪一块是相同的。发现相同的块时,除了一个块之外的所有拷贝都会删除。这个文件系统使用指示器来介绍哪个块附属于哪个文件。考虑这种程序的一个方法是遗留文件系统一般把文件当作数据流。但是Windows Server 8的文件系统(启用了重复数据删除功能)更多的情况下会把文件当作一个块集。

顺便提一下,Windows Server 8的提前测试版使用文件系统压缩。任何可能的时候,数据的独立块都会压缩来节省空间。

数据完整性

关于数据重复删除的一大担忧就是文件完整性。尽管机率不大,但是数据的两个不相似的块拥有相同的哈希值理论上也是可能的。有些第三方产品通过在删除重复块前使用不同且更复杂公式来验证这些块确实是相同的。

尽管微软没有给出用来保护数据完整性的具体确切的方法,但是Windows Server 8开发者预览版的指南中提到,该操作系统“利用校检和、一致性和标识确认来确保数据的完整性”。此外,这个操作系统还使用冗余来防止某些类型数据块的数据流失。

带宽优化

正如之前提到的,Windows Server 8将实现已存储数据和传输中数据的重复数据删除。重复数据删除技术和之前描述的要整合到分支缓存中的那些技术一样,这些技术最小化通过WAN连接传输的数据量。自带的重复数据删除功能将保留大量的存储空间,同时它不会对文件系统的性能造成不良影响。