ext3/4 上存在不可变的硬链接吗?

ext3/4 上存在不可变的硬链接吗?

在我对文件系统级别的文件版本控制、快照和相关想法的研究中,我研究了硬链接以及它们到底是什么以及它们的行为方式。使用 rsync,您可以在不支持快照的文件系统上安装和运行一个非常精巧的简易快照系统。

但是,你能在 ext3/4 或任何其他文件系统上获得不可变的硬链接吗?

我对不可变硬链接的定义是:当在一个位置发生更改时,硬链接将成为常规副本而不再是硬链接。

我喜欢这个,因为它可以启用源数据的快照来链接而不是数据的副本(在 rsync 快照技术的情况下)。

我有几千兆字节的数据由于空间限制而无法复制,但如果我可以智能地快照单个更改的文件并将其余文件链接到源而不是副本,那么我就有足够的空间。

考虑到所有这些,是否存在我真正寻找的其他技巧、功能或技术?

答案1

有人提议添加一个新的系统调用,reflink()它将完全满足您的要求。到目前为止,它还没有被接受;但是,ocfs2(自 2.6.32 以来)已经将其作为 ioctl([1][2])。

2009 年 5 月有几篇关于此主题的文章:

这个想法的一个较老的变体被称为COW 链接

答案2

在我看来你正在寻找西弗吉尼亚样式快照。它并不完全使用“不可变硬链接”语义,但非常接近。

答案3

http://blog.interlinked.org/tutorials/rsync_time_machine.html http://rsnapshot.org/

两者都可以与 ext3/ext4 一起使用。

它们并非真正的快照,但会创建一个新目录,其中包含指向上一代的硬链接。删除上一代将使新目录保留正确的文件。

相关内容