我有一个 15TB 的存储网络,现在只剩下大约 2.5TB(因为有大量重复数据)。我尝试过很多扫描仪,但收效甚微,最终它们都因为数据量太大而崩溃了。你知道有什么程序可以处理这些大负载吗?我不关心它运行的平台。
谢谢。
答案1
如果您还没有这样做,您可以通过在运行重复检测器的机器中塞入更多 RAM(假设它尚未达到最大内存)来解决您的问题。您还可以通过将剩余文件拆分为子集并扫描这些子集的对来解决您的问题,直到您尝试了所有组合。但是,从长远来看,这可能不是使用您必须定期运行的重复检测器程序最好解决的问题。
你应该查看文件服务器重复数据删除简而言之,这将自动仅存储每个文件的 1 个物理副本,每个“副本”都硬链接到单个物理文件。(有些系统实际上使用块级重复数据删除而不是文件级重复数据删除,但概念是相同的。)
较新的高级文件系统,例如虚拟文件系统,北卡罗莱纳州, 和更少有重复数据删除支持,开放重复数据删除文件服务器设备操作系统。您的 Linux 服务器上可能已经存在一个或多个这样的文件系统。 Windows 存储服务器还具有重复数据删除功能。如果您有足够的资金来解决这个问题,那么一些商业 SAN/NAS 解决方案具有重复数据删除功能。
但请记住,重复数据删除不一定能帮助解决同一文件的小型、略微修改版本的问题。如果人们将他们的文件的多个版本散落在您的服务器的各个地方,您应该尝试让他们更好地组织他们的文件并使用版本控制系统——它只会保存原始文件和增量差异链。
更新:
64 GB 应该足以在物理内存中缓存至少 10 亿个校验和文件路径条目,假设校验和为 128 位,平均元数据(文件系统路径、文件大小、日期等)不超过 52 字节。当然,操作系统会在某个时候开始分页,但程序不应该崩溃——也就是说,假设重复文件查找器本身是一个 64 位应用程序。
如果您的重复文件查找器只是一个 32 位程序(或者它是一个在 32 位解释器上运行的脚本),那么在未启用 PAE 的情况下,您可以处理的文件数量可能会少得多:在与之前相同的假设下,大约为 6300 万(4 GB /(128 位 + 52 字节))。如果您有超过 6300 万个文件,您使用更大的校验和,或者如果程序缓存的平均元数据大于 52 字节,那么您可能只需要找到一个 64 位重复文件查找器。除了 mgorven 建议的程序(我认为它们有 64 位版本,或者至少可以轻松重新编译),还有一个 64 位版本的重复文件适用于 Windows。