作为一个面向云的操作系统,Windows Server 2012 针对很多网络和存储做了大量的优化,从而让企业特别是中小企业能够以非常少的代价,获取以前昂贵的硬件或者软件才能够获得的性能和特性。

    存储去重就是其中的一项改进。尽管之前的Windows版本就已经提供单一存储方案SIS,但新的存储去重提供了更好的性能和效率。以下是Windows Server 2012的帮助文件对重复数据删除的描述:

 

    企业中基于文件的数据正在快速增加。磁盘存储成本正在稳定下降,但下降速度却不足以抵消这种增长,这就使得存储效率成为大多数企业 IT 部门的一项关键要求。而且,只要有数据就需要有效率,不管该数据位于数据存储中还是通过 WAN 来移动。

    为了应对这种增长,客户正在整合服务器,并将容量扩展和优化作为整合平台的重要目标。Windows Server? 2012 提供文本所述的重复数据删除。

重复数据删除关键功能
    Windows Server 2012 通过以下功能增强了重复数据删除:

  • 容量优化。 Windows Server 2012 中的重复数据删除可在更小的物理空间中存储更多数据。与使用单实例存储 (SIS) 或新技术文件系统 (NTFS) 压缩的之前版本相比,它实现了更高的存储效率。重复数据删除使用子文件可变大小分块和压缩,常规文件服务器的优化率为 2:1,而虚拟数据的优化率最高可达 20:1。
  • 伸缩性和性能。 Windows Server 2012 重复数据删除具有高度的可伸缩性,能够有效利用资源,并且不会产生干扰。它可以同时对多个大容量主数据运行,而不会影响服务器上的其他工作负载。通过控制 CPU 和内存资源的消耗,保持对服务器工作负载的较低影响。此外,用户可以灵活设置何时应该运行重复数据删除、指定用于消除重复的资源并创建有关文件选择的策略。
  • 可靠性和数据完整性。当应用重复数据删除时,必须保持数据的完整性。Windows Server 2012 利用校验、一致性以及标识验证来确保数据的完整性。而且,对于所有元数据和最常引用的数据,Windows Server 2012 重复数据删除保留冗余,以确保发生数据损坏时可恢复数据。
  • 与 BranchCache 相结合提高带宽效率。通过与 BranchCache 进行集成,同样的优化技术还可应用于通过 WAN 传输到分支机构的数据。这会缩短文件下载时间和降低带宽占用。
  • 使用熟悉的工具进行优化管理。 Windows Server 2012 已将优化功能置于服务器管理器和 PowerShell 中。默认设置可立即带来节省,微调设置可查看更多获益。轻松使用 PowerShell cmdlet 即可开始优化作业或计划将来运行的作业。你也可以使用无人参与的 .xml 文件启用重复数据删除功能并在所选择的卷上启用重复删除,该文件调用一个 PowerShell 脚本并且当首次启动系统时可以与 Sysprep 一起使用来部署重复删除。


 注意 
     重复数据删除是一项处理所选卷上所有数据的功能,因此应该谨慎计划使用,目的是确保在启用该功能之前服务器以及连接的卷适合进行重复删除。我们强烈建议在部署重复删除期间,定期备份重要数据。
 

了解重复数据删除
    重复数据删除指的是在数据中查找和删除重复内容,而不会影响其保真度或完整性。目标是通过将文件分割成小的 (32-128 KB) 且可变大小的区块、确定重复的区块,然后保持每个区块一个副本,在更小的空间中存储更多的数据。区块的冗余副本将被单一副本的引用所取代,将区块组织成容器文件,然后将容器压缩进行进一步空间优化。

    对某个卷启用重复删除并优化数据之后,该卷包含以下内容:

  • 未优化的文件,即跳过的文件,例如:系统状态文件、加密的文件、具有扩展属性的文件、小于 64KB 的文件以及重分析点文件(之前的已优化文件,包含指向构建该文件所需的区块存储中各个区块的指针)
  • 已优化的文件(存储为重分析点)
  • 区块存储(已优化的文件数据)
  • 其他可用空间(由于已优化的文件和区块存储占用的空间比优化之前占用的空间少很多)

    结果是对每个文件进行了磁盘转换。重复删除之后,文件不再作为独立的数据流进行存储,而是替换为指向存储在通用区块存储位置的数据块的存根。由于这些文件共享块、这些区块仅存储一次,从而减少了存储这些文件所需的磁盘空间。在文件访问期间,正确的区块会采用透明的方式组装以处理数据,而不需要调用应用程序,也无需用户了解文件磁盘转换中的变化。这样管理员便能够对文件应用重复删除,而无需担心对应用程序或访问这些文件的用户的行为有任何影响或改变。

 备注 
     对使用 DFS 复制来复制的文件使用重复数据删除没有问题。只更新自上次复制以来更改的部分文件。
 

体系结构
    重复数据删除功能由一个监视本地或远程 I/O 的筛选器驱动程序和一个控制三种可用的作业类型(垃圾回收、优化和清理)的重复删除服务组成。

    请记住,重复删除作用域仅限便携且具有群集感知的单个卷,并且设计重复删除功能的目的是为了对主要数据进行有效的、策略驱动的以及计划性的后台优化,从而获得最佳结果。

    重复删除体系结构中的固有功能是在发生硬件故障和崩溃时有弹性,对数据和元数据(包括元数据的冗余和最流行的数据区块)进行完整的校验和验证。

 

    要尝试和验证这一功能非常的简单。首先启用文件服务器角色,找到“数据删除重复”,勾选然后完成向导即可。

image

    安装完这一功能,还需要在卷上启用该功能。需要注意的是,安装操作系统的系统卷无法启用数据删除重复,我猜是因为系统文件访问的频度和安全性考虑。

image

    可以将指定的文件类型(通过文件扩展名)、指定的文件夹排除在数据去重的范围之外。通常数据去重会工作在后台空闲时间,也可以为其指定计划任务。

    为了说明问题,我简单的把一个文件复制了5次,然后等待系统对其做优化。

image

    过段时间,就能够看到启用数据去重的卷已经删除了重复的数据。

image

    检查这些文件,可以看到每个文件都只占用4KB的空间。我原以为是一个文件保存着,然后其他文件都是指针,结果看起来每个文件都变成了指针,即帮助所说的“重分析点”。文件块被另外保存起来了。

image