在我对fs级别的文件版本,快照和相关的想法的研究中,我看了一下硬链接,看看它们是什么以及它们是如何performance的。 使用rsync,你可以得到一个非常漂亮的穷人的快照系统,并在本地不支持的文件系统上运行。
但是,你可以在ext3 / 4或其他文件系统上获得不可变的硬链接吗?
我对不变硬链接的定义是:一个硬链接,当在一个位置上改变时,变成一个普通的副本而不再是一个硬链接。
我想这样做是因为它可以使源数据的快照使用链接而不是数据副本(在使用rsync快照技术的情况下)。
我有几千兆字节的数据,由于空间限制而无法复制,但是如果我可以智能地快照单个更改的文件,而其余链接到源而不是副本,则我有足够的空间。
鉴于这一切,有没有其他的技术,function或技术,我真的在寻找?
有一个build议,添加一个新的系统调用, reflink() ,这将做你想要的。 到目前为止,还没有被接受。 然而, ocfs2 (自2.6.32以来)已经把它作为一个ioctl( [1] [2] )。
来自2009年5月的一些文章:
这个想法的一个较旧的变体被称为COW链接 。
在我看来,你正在寻找WAFL风格的快照。 它并不完全使用“不变的硬链接”语义,但非常接近它。
http://blog.interlinked.org/tutorials/rsync_time_machine.html http://rsnapshot.org/
两者都将使用ext3 / ext4。
他们不完全是快照,但是,将创build一个新的目录与硬链接到上一代。 删除前一代将使新目录保留正确的文件。