有没有办法可以在不暂停虚拟机的情况下进行实时 qcow2 备份?

有没有办法可以在不暂停虚拟机的情况下进行实时 qcow2 备份?

我正在尝试为我们的服务器设置一个 KVM 备份解决方案,以便在不停止系统的情况下进行实时备份。

我找到了几个已经测试过的现成脚本,但它们都会停止或“冻结”虚拟机一段时间,以保存内存状态。但这对我们来说没有好处。

我们有几个自定义应用程序可以写入日志,这些日志需要保持一致,并且在系统备份期间“冻结”时我们不能有 10-60 秒的暂停,而且这种“冻结”会导致虚拟机的时钟不同步(时钟在“冻结”期间落后),这会干扰我们的自定义软件,其中的一个功能是监控一些测量设备的时间戳。

所以问题是,有没有一种方法可以进行完整的 VM 备份,并且可以在不冻结 VM 的情况下持续进行,并且备份恢复也应该可以正常工作:)

下面是我尝试过的几个脚本中的一个示例: KVM QCOW2 实时备份

答案1

最简单、最常见的解决方案是拍摄虚拟机的实时快照(在拍摄快照之前,使用 fsfreeze/flush/使用 qemu-ga 来维护 fs 一致性),备份底层映像,同时虚拟机写入快照,然后在备份完成时合并两者。

答案2

我会采用不同的方法:我不会保存整个虚拟机的状态,而是保留一个原始的为以防万一,我会备份新安装的虚拟机的映像,并定期备份我感兴趣的数据以确保安全。执行此类备份的具体技术取决于您使用的工具(MySQL?InfluxDB?)。

如果您使用 LVM 作为虚拟机的存储,您还可以使用 LVM 快照,它既快速又不会造成中断。但缺点是没有考虑虚拟机的 RAM,因此它可能在任何时间点都有无效数据。

相关内容