使用磁盘映像文件从 dom0 备份 Xen Guest

使用磁盘映像文件从 dom0 备份 Xen Guest

我有一个 Xen 服务器 dom0,上面安装了许多客户机,我正在努力寻找一种从 dom0 端管理备份的简单方法。

  • 客户脚本:当然,我可以在每个客户机上运行备份脚本,但从管理角度来看,如果可能的话,我希望避免这样做。理想情况下,我还希望能够备份磁盘映像本身,如果需要,这些映像连同配置一起可以直接恢复到另一个 Xen dom0 上,也许还可以恢复某些目录的文件备份。
  • /var/lib/libvirt/images 的 rsync:我尝试在关闭域的情况下对 /var/lib/libvirt/images/ 中的映像文件进行简单的 rsync,但存在一个问题 - 磁盘映像尝试以其完整可用大小(它们可以增长到的大小)进行复制。因此,这意味着每个映像都尝试以 250Gb 进行复制,而不是实际的 2.5Gb 左右(例如 ls -l 显示的大小,而不是 du 显示的 [已使用] 大小)。

网上有很多解决方案和脚本,但这些似乎都很老了,而且似乎都是基于磁盘是 LVM 设备,因此可以在 /dev/virtual/NAME-disk 中找到,然后可以复制并安装它们,然后使用 rsync 进行备份。这似乎不是我的系统配置方式。

如果可能的话,我会看到许多潜在的解决方案(正如我提到的理想情况是,我希望备份一个映像文件,同时也对虚拟机上的某些目录进行文件级备份,所以也许是这些的组合)。

  1. 缩小图像文件:我可以复制图像文件,然后将其缩小到实际使用的空间吗?然后我可以 rsync 它并删除临时文件。
  2. 按实际大小复制:以某种方式按实际大小复制图像文件,然后如果需要,在另一个 dom0 上重新创建大小属性?
  3. 挂载映像文件:以某种方式直接挂载映像文件?我看到有方法可以将其转换为 LVM 映像,但不确定这是否是唯一的方法(我很高兴使用映像文件进行域客户机的正常运行)。

提前致谢并希望足够清楚。

答案1

对我来说,备份磁盘映像在这里更有意义。从备份脚本的角度来看,VDI 是基于文件还是基于 LVM 并不重要,您应该能够以相同的方式备份它们,只需更改路径即可。不过,迁移到 LVM 可能会为您带来显着的性能提升,特别是如果您使用原始(不是基于 VHD)的 VDI。

为了避免每次都传输整个稀疏文件,进一步修改脚本以通过打包程序传输数据(压缩是一个很好的解决方案)。这样,即使读取完整大小的 VDI 文件也会得到紧凑的输出。这可能很难实现同步因此使用其他方式将数据传输到备份位置(即。远程控制带有 shell 重定向)。

为了减少停机时间,在 LVM SR 的情况下(不确定是否使用图像文件),您还可以增强脚本,使其在备份 VM 之前对其进行快照。然后它可以从快照存储中备份,因此它将提供一致的数据,而不会从启动时阻止 VM。拍摄快照通常只需几秒钟。快照 VDI 也可以安装在 dom0 上以备份单个文件,唯一的问题是使用 VHD 格式(再次,使用 LVM 和原始 VDI)。

相关内容