块级重复数据删除文件系统


8

我正在寻找一种用于一般用户数据(例如其/home备份)的重复数据删除写时复制文件系统解决方案。它应使用诸如SHA256或TTH之类的安全散列(对于冲突的可能性很小)在块级别使用联机/内联/同步重复数据删除。重复的块甚至不需要接触磁盘。

我的想法是,我应该能够仅/home/<user>使用相同的文件系统复制到外部HDD进行备份。简单。增量备份不会引起混乱,因为对任何快照的损坏几乎都会破坏以后的所有快照,并且无需使用特定的工具来删除或“签出”快照。一切都应该简单地从文件浏览器完成,而不必担心。您能想象这会多么容易吗?我再也不必为备份再次考虑!

我不介意性能下降,可靠性是主要问题。虽然,与具体实现cpmv并且scp,和文件浏览器插件,这些行动将是非常快的,尤其是当有很多重复的,因为他们只需要转移缺席块。不小心使用不与FS集成的常规复制工具只会花费更长的时间,在远程复制时会浪费一些带宽,并会浪费一些CPU,因为重复的数据将被重新读取,重新传输和重新散列(尽管什么也不会做)重新编写),但绝对不会破坏任何内容。(某些文件共享软件也可以通过与FS集成而受益。)

那么最好的方法是什么?

我看了一些选择:

  • lessfs-看起来无法维护。有什么好处吗
  • Opendedup / SDFS -Java?我可以在Android上使用它吗?是什么SDFS立场?
  • Btrfs-邮件列表档案上有一些补丁,但没有真正的支持。
  • ZFS-希望他们有一天会获得一份真正的与Free / Opensource GPL兼容的许可证。

另外,两年前,我尝试在文件级使用Fuse在Python上使用,以在典型的固态FS(例如EXT4)的顶部使用,但是我发现Fuse for Python的文档不足,因此无法实现所有系统调用。


不是文件系统,但是您可能要查看最近发布的备份工具Obnam
2012年

@JanC:谢谢,看起来备份软件肯定做对了!它避免了这样的情况:“不要搞乱增量备份,因为其中任何快照的损坏都几乎总是会破坏以后的所有快照,” ...但不是这样:“并且不需要使用特定的工具来删除或“签出”快照。”。绝对是个好发现!我也许可以使用某些Python代码。:-)
James Haigh 2012年

@JamesHaigh您可能也想在Ubuntu BrainStorm中发布这个想法。如果您还没有这样做的话。
Samik 2012年

@JamesHaigh Obnam路线图上的一件事是基于保险丝的文件系统(但我认为没有时间表显示何时可以预期到这一点)。这将使“没有其他工具”更加接近。
2012年

如果要避免一个备份破坏后一个备份,只需执行多代增量备份即可。例如,您不必在周日进行一次完整备份,而总是与前一天相对应的每日差异,例如,在周三,相对于周日(而不是星期二)进行完整备份。然后,如果星期二损坏,则无需担心,因为如果您具有星期三的备份,则在还原时将跳过星期一和星期二。
psusi

Answers:


1

听起来很进取(就像昂贵)。

datadomain可以提供重复数据删除功能,甚至可以提供带wafl文件系统的netapp。但是成本很高。

一个“免费”的替代品可能是zfs。

据我说,尽管“最佳”和大多数Linuxy替代方案虽然在文件级别而不是在“块级别”,却是rsnapshot。它使用rsync和硬链接来管理版本控制。

我宁愿相信已经过验证的旧工具,也不愿使用像Btrfs这样的新文件系统,而该文件系统的存在时间还不足以使人们发现各种讨厌的错误。


企业?不,由于它具有简单易用的特性,因此我希望将来在Ubuntu中默认会出现这种情况。我确实提到过ZFS,但是它是CDDL,所以不是Free(带有大写F rsnapshot)不是文件系统,它更像是一种将快照式功能引入旧文件系统的黑客,不会创建“真实”快照(快照应该是原子的) ),并且是递增的(请参见第二段)。我宁愿使用相对较新的FS,也不愿使用增量文件。
James Haigh 2012年

我猜“文件级”有点模棱两可,但是我已经看到在文件系统的上下文中使用的术语以及块级,字节级和位级。这就是我的意思。
James Haigh 2012年

1
@JamesHaigh根据自由软件基金会的说法,CDDL是免费(如自由)许可证,它不兼容GPL。这意味着CDDL的代码(如官方的ZFS实现)和GPL的代码(如Linux内核)无法合法地链接在一起,并且由于Linux中的驱动程序通常以模块形式链接,因此阻碍了基于Linux的操作系统中CDDL的支持。
Eliah Kagan 2012年

2
Linux上的ZFS可能会(取决于您问的是谁)通过单独分发来解决。或者,FUSE允许文件系统“驱动程序”在用户空间中运行,而无需自己链接到内核,并且还有FUSE版本的ZFS。因此,您可以在使用Linux作为内核的Ubuntu等操作系统上使用ZFS文件系统,有多种选择。(某些操作系统,例如Debian,允许您使用其他内核。)
Eliah Kagan 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.