运行时备份 Xen domU 机器

运行时备份 Xen domU 机器

主机运行的是 CentOS 5.3,并使用 LVM 创建逻辑卷 (LV) 并允许对这些 LV 进行实时快照。我的想法是将 Xen 低权限域 (domU) 的所有映像文件存储在单个 LV 中,并定期对该 LV 进行快照,并将磁盘映像从快照中复制出来,以便对这些系统进行实时备份。这可行吗?还有更好的方法吗?

谢谢!

答案1

真正的“实时”备份并不完全可行。

理论上,使用 LVM 时,您能获得的最好结果是几秒钟的“暂停”时间,这应该没问题:domU 需要同步其磁盘、暂停/挂起、备份数据并恢复。

然而,这种方法(而不是仅仅关闭机器)有几个“陷阱”需要解决。

主要问题是 domU 文件系统的一致性 - 请查看想法-xen-文件系统-配置-关于备份以获得更完整的解释。

答案2

可能最好的方法是对每个 domU 进行文件级备份,而不是乱用 LV 快照。或者,对快照进行文件级备份。

但是如果你希望对你的 domU 进行块级备份——将所有 domU 磁盘作为文件存储在一个 LV 上是可行的,也是我考虑过的做法,但我决定不这样做,而是按照你的服务器已经配置的方式——每个 LV 一个 domU,原因有二:

  1. 创建新的 domU 映像文件需要很长时间,除非您使用稀疏文件。使用 LVM 创建和删除 LV 是即时的。使用稀疏文件可能会耗尽磁盘空间。
  2. 对所有 domU 进行一次快照会占用大量快照空间。在等待备份完成时,对正在运行的 domU 进行的所有更改都会占用快照空间。我所做的只是一次对一个域进行快照,然后执行备份。

答案3

我已经编写了一个脚本来执行与你解释的不同的事情

1)“xm save domain domain.mem.backup”(带暂停) 2)LVM 快照 3)“xm restore domain domain.mem.backup” 4)将 LVM 快照“dd”到 domain.dd.backup 5)删除 LVM 快照

要恢复:1)为域创建一个 LVM LV 2)从 domain.dd.backup “dd”到此 LV 3)“xm restore domain domain.dd.mem”

域将恢复到备份时内存的状态。然后,如果有一些数据未写入,它将在恢复后立即写入……就像从未停止过一样。

答案4

这取决于您想要的备份质量和您可以承受的停机时间。我想说,如果您想要完全一致的备份,您必须关闭 domU(如果是 Win 或 Linux domU,其他操作系统可能会有所不同)。

如果您只想备份一些数据,可以尝试一下“xm pause”命令。只需运行“xm pause domain”,制作快照,然后继续“xm unpause domain”。但您有数据丢失的风险,包括文件系统层的数据以及应用程序(例如 samba)未刷新缓冲区中的数据。

由于 dom0 存储层与 domU 内核和应用程序之间没有通信系统(用于 FS 和缓冲区同步),因此关闭 domU 是实现一致备份的唯一方法。

相关内容