我实现了一个用于备份虚拟机的 bash 脚本。基本上,我执行以下步骤:
- 创建目标虚拟机的快照
- 备份目标虚拟机的磁盘
- 将更改合并回磁盘
现在我测试了备份,发现机器的磁盘并不完全一致。Windows 机器从 chkdisk 启动并恢复了一些文件。我理解,如果步骤 1 发生在写入过程中,情况尤其如此。
但是,到目前为止完成的所有备份都在启动,但我担心有些备份无法启动的情况。
我特别担心 Windows 机器。
这些担心有道理吗?
先感谢您!
答案1
为了确保备份的一致性,您需要告诉虚拟机将文件系统置于一致(静止)状态。在 Linux 和 Windows 上,这都需要对文件系统静止的支持,这是由qemu 来宾代理。
确保每个虚拟机中都运行 qemu 客户代理。然后,通过添加--quiesce
到快照命令来获取快照,即:
virsh snapshot-create --quiesce <domain>
您还可以使用 和 手动冻结和解冻文件系统,而不必拍摄快照virsh domfsfreeze
。virsh domfsthaw
如果您在 libvirt 之外拍摄快照,例如使用 ZFS 或 SAN 存储,请使用这些。