我有一个 OpenVZ 容器,其中包含一些指向主机文件系统的硬链接。
例如,我在主机上运行ln /root/file /var/lib/vz/private/101/root/link
现在我问自己:如果我使用 vzdump 备份 VM 101,它将如何处理硬链接?它会将其复制为硬链接,还是会尝试跟踪链接并在转储中包含 /root/file(这将使我的备份非常庞大)。vzdump
模式(停止、暂停、快照)会改变此行为吗?
答案1
硬链接不会“指向”另一个文件,而是一个软链接/符号链接。如果它实际上是一个硬链接(这要求它位于同一个文件系统上),那么它将被视为与任何其他文件一样。
基本上,软链接指向文件名,而倒数第二个文件名指向磁盘上的 inode。
硬链接是直接指向 inode 的新文件名。
如果您创建硬链接并删除原始文件,硬链接仍可正常工作。如果您创建软链接并删除原始文件,软链接现在指向的内容不再存在。
因此,如果是硬链接,它实际上是指向完全相同数据的另一个指针。我希望 vzdump 像对待其他文件一样对待它。
答案2
我测试了一下,结果正如 yoonix 所说的那样:硬链接被视为一个文件,因此即使文件位于 VM 虚拟文件系统之外,它也会包含在转储中...所以,要小心!;-)