我有一个使用创建的 100 GB 图像文件dd
。此图像文件通过循环设备以读写方式安装。
我想将此映像文件的备份存储在远程位置。我有一个脚本,可以压缩映像文件(使用zip
)并将 zip 文件复制到远程存储(使用计划cron
)。
现在,我的问题是:我应该让我的脚本在压缩图像文件之前卸载它吗?(如果某些读写操作正在进行中,那么我将无法卸载它,因此脚本将失败)。
或者在它仍处于挂载状态时压缩它是否可以?如果在压缩开始时正在进行某些写入操作,会发生什么情况?映像文件是否仍然一致?
我将非常感激您提供的一些见解。
答案1
如果在文件系统映像以读写方式挂载时复制它,您将获得不一致的副本。无论映像是循环设备下的文件还是更简单的普通块设备,情况都是如此。在它仍处于挂载状态时,不可以对其进行压缩。
顺便说一句,这zip
似乎不太可能成为压缩单个大文件的选择。更常用的工具的流式传输特性gzip
似乎bzip2
更合适。
您将希望对实时映像进行快照,而不是访问它。一种选择是使用 LVM LV,而不是文件支持的环回设备。然后,您可以在压缩 LV 之前对其进行 LVM 快照。如果文件系统支持,LVM 的快照功能会自动与文件系统通信以确保快照的一致性(xfs 和我认为 ext4 都支持此功能)。