Microsoft Windows Server 2012 及更高版本提供重复数据删除服务,可定期扫描文件,查找相同的块并删除多余的副本以节省空间。
对于浏览文件的用户来说,它们应该看起来都一样。
我的问题是,我有一个软件可以读取这些文件,但在读取经过重复数据删除处理的文件时失败了。我设置了一个带有重复数据删除服务的 Windows 服务器来开发和测试修复程序,但我不确定我的测试文件是否被重复数据删除,以及我的修复程序是否真的有效。
文件元数据中是否有关于已执行重复数据删除的信息?或者重复数据删除服务可能有一个包含增强文件的可访问数据库?
我已经尝试过显而易见的方法:创建一个文件,将该文件复制到同一个文件夹中,然后查看该文件夹的属性 - 但文件夹的大小等于两个文件的大小,而我原本期望它只有一个文件的大小。
答案1
重复数据删除是作为 NTFS(现在为 ReFS)上的过滤驱动程序实现的,应该可以透明地工作。如果它导致问题,您可以随时针对某些特定文件集禁用它。
要获取重复数据删除状态,请使用 Get-DedupeStatus cmdlet。请参阅:
https://docs.microsoft.com/en-us/powershell/module/deduplication/get-dedupstatus
有一种方法可以直观地看到那里的情况。请参阅:
https://www.foldersizes.com/features/windowsdeduplicationdiskspace
您可以从重复数据删除作业中排除特定文件。请参阅:
https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/advanced-settings
您应该查看 ExcludeFileType。
ExcludeFileType 排除在优化之外的文件类型 文件扩展名数组 某些文件类型(尤其是多媒体或已压缩的文件)不会因优化而受益。此设置允许您配置排除哪些类型。
答案2
重复数据删除服务的内部工作原理存储在每个卷上的系统卷信息中,但据我了解,对于已删除哪些数据以及未删除哪些数据,其中没有任何可供用户阅读的信息。它发生在块级别,而不是文件级别。
我已经尝试过显而易见的方法:创建一个文件,将该文件复制到同一个文件夹中,然后查看该文件夹的属性 - 但文件夹的大小等于两个文件的大小,而我原本期望它只有一个文件的大小。
重复数据删除会按计划进行。如果您复制文件并立即检查其属性,则该文件尚未被重复数据删除。您可以使用启动 DedupJob针对您的测试场景,强制对特定卷进行重复数据删除优化。