在 Linux 上高效存储重复文件

在 Linux 上高效存储重复文件

我托管了很多网站,我们的系统可以轻松复制这些网站中的项目,这很方便,但会导致大量重复(并且可能非常大)的文件。我想知道 Linux(特别是 Ubuntu)中是否有任何机制,文件系统只会存储文件一次,但会从其所有位置链接到它。

我需要它是透明的,并且还能处理这样的情况:如果用户更改其中一个文件,它不会改变主文件的内容,而只会为该文件的这个特定实例创建一个新文件。

练习的目的是减少重复文件所浪费的空间。

答案1

我需要它是透明的

Linux 上的 ZFS× 功能称为“在线重复数据删除”。

更新。:我再次重读了你的问题,现在看起来奥夫斯可以帮到你。它是托管环境中非常流行的解决方案。实际上我现在也可以自己提到 Btrfs — 模式是你有一些模板子卷,每次需要另一个实例时你都会对其进行快照。它是 COW,因此只有更改的文件块才需要更多空间。但请记住,Btrfs,呃……好吧,无论如何都不太稳定。只有当其中的数据绝对可以丢失时,我才会在生产中使用它。

答案2

有一个 Linux 用户空间/fuse 文件系统可以执行此重复数据删除。

http://sourceforge.net/p/lessfs/wiki/Home/

Linux Journal 在其 2011 年 8 月刊上有一篇关于此问题的好文章。btrfs 和 zfs 还提供了各种文件系统特定选项。

相关内容