mlbackup / rsync / 硬链接数据大小

mlbackup / rsync / 硬链接数据大小

我对 mlbackup/rsync 和硬链接的概念很陌生,所以在通过 mlbackup 创建备份数据集后我有点困惑。

所以这是场景:

我正在将“文件夹 A”备份到“文件夹 B”。在“文件夹 A”内,我有文件“X”、“Y”和“Z”;每个文件为 5mb,因此“文件夹 A”的大小为 15mb。我运行mlbackup,文件第一次备份到“文件夹B”。现在“文件夹 A”和“文件夹 B”各为 15mb。

在不对“文件夹 A”进行任何更改的情况下,我再次运行 mlbackup。创建新的“文件夹 B”备份。它再次读取 15mb(在 Finder 中,Mac OSX 10.8)。

现在我知道新的“文件夹 B”只是到原始数据的硬链接,所以我进入终端并执行了 a du -sh folder B,它只读取了几 kb。这是可以预料的,对吧?所以我的第一个“文件夹 B”是 15mb,第二个“文件夹 B”是几 kb。

现在我的问题是——在 Finder 中,两个“文件夹 B”均为 15mb。那么如果我希望我的“文件夹 B”备份位于只有 16mb 可用空间的外部驱动器中,会发生什么?根据 Finder 的显示,两个“文件夹 B”的总大小为 30mb。但我们都知道实际上它只有 15mb(来自第一个“文件夹 B”)加上更多 kbs(第二个“文件夹 B”)?

我知道这是一个非常令人困惑的问题,但我真的很想了解它是如何运作的。如果有什么需要我进一步澄清的地方,请告诉我。

答案1

这是预期的行为。 Finder 不会检查文件是硬链接还是真实文件,而只是添加大小。du正如您已经发现的那样,您确实获得了正确的尺寸。

您可以通过这种方式将备份文件夹复制到外部卷,但它的大小会增加到 Finder 显示的大小,因为它无法将硬链接复制为硬链接。您可以使用rsync(我建议使用rsync捆绑的 3.0.9,mlbackup因为它将处理所有 HFS+ 元数据、压缩分叉和其他内容。)

要完整回答您的问题,是的,您最终可以在一个卷上进行备份,这样您在 Finder 中的总大小将大于该卷本身。这是 Finder 的已知限制。

简单解释一下硬链接的概念。将文件想象成一只狗。包含该文件的每个目录都有一条拴着狗项圈的皮带。硬链接只是同一条狗的另一个皮带。只要至少连接一根皮带,文件就会保留。一旦所有的皮带都被松开,狗就会逃跑,这意味着文件实际上被删除了。当您删除硬链接时,只要至少建立了一个链接,该文件就会保留在文件系统中。

仅供参考:与选项顶部复制文件一起mlbackup使用,并在备份保镖测试中获得满分。rsync--hard-links

麦克莱蒙 (作者mlbackup)

答案2

如果您使用哑复制工具,那么您将需要 30MB。

如果您使用更智能的工具来保留硬链接,并且您的外部介质支持硬链接,那么您就可以了...可能(当您考虑到由于块而导致文件大小不等于磁盘使用量时,16MB 就可以了)四舍五入)。

一个“更智能”的复制工具可能是rsync带有--hard-linksset的。

相关内容