任何常见的OS文件系统是否都使用哈希来避免多次存储相同的内容数据?

Red*_*ter 8 filesystems hash operating-system

许多文件存储系统使用散列来避免重复相同的文件内容数据(以及其他原因),例如,Git和Dropbox都使用SHA256.文件名和日期可以不同,但​​只要内容生成相同的哈希值,它就不会被存储多次.

为了节省空间,在OS文件系统中这似乎是一件明智的事情.是否有任何Windows或*nix的文件系统可以执行此操作,还是有充分理由说明它们都没有?

在大多数情况下,这将消除对重复文件查找器实用程序的需求,因为此时您将保存的唯一空间将是文件系统中的文件条目,对于大多数用户而言,这不足以解决问题.

编辑:可以说这可能是服务器故障,但我觉得开发人员更有可能理解所涉及的问题和权衡.

FRo*_*owe 7

自上个月以来,ZFS支持重复数据删除:http://blogs.oracle.com/bonwick/en_US/entry/zfs_dedup

虽然我不会称之为"常见"文件系统(afaik,目前只支持*BSD),但绝对值得一看.


Mat*_*att 5

这样可以节省空间,但时间成本却令人望而却步。你提到的产品已经是io绑定的,所以散列的计算成本不是瓶颈。如果您在文件系统级别进行散列,则所有已经很慢的 io 操作都会变得更糟。

  • 给定一个包含不同大小的 n 个文件的列表,您可以使用列表找到文件大小是否在 O(log n) 时间内发生冲突,或者如果您自己对大小进行哈希键则为 O(1) - 它很快,并且仅在文件大小时使用更改,例如新建文件、修改。这也不需要在保存时完成,例如,它可以添加到文件系统的待办事项列表中,并在不那么忙或文件保存稳定时完成。 (3认同)

Sud*_*shu 5

几年来NetAppWAFL文件系统(是的,不是您的通用文件系统)中支持重复数据删除(在存储行业中被称为重复数据删除)。这是当今企业文件系统中最重要的功能之一(并且NetApp之所以脱颖而出,是因为它们与仅在备份或辅助存储中支持该功能的其他类似产品相比,也在其主存储中支持此功能;它们太慢了,对于主存储)。

在拥有数千用户的大型企业中重复的数据量惊人。这些用户中有很多在其主目录中存储相同的文档,源代码等。经常有关于重复数据删除50-70%的报告,这为大型企业节省了大量空间大量资金

所有这些都意味着,如果在NetApp文件管理器导出的LUN上创建任何通用文件系统,则无论该LUN中创建了什么文件系统,都可以免费获得重复数据删除功能。干杯。在这里这里了解它是如何工作的。