备份和恢复主机和虚拟机

Last published : Oct 07, 2026
尽可能保持 XenServer 主机的安装状态不变。也就是说,不要在 XenServer 主机上安装任何额外的软件包或启动额外的服务,并将其视为设备。那么,最佳的恢复方法是从安装介质重新安装 XenServer 主机软件。如果您有多个 XenServer 主机,最佳方法是为此目的配置 TFTP 服务器和相应的应答文件。有关详细信息,请参阅 网络引导安装。
我们建议您使用第三方提供商提供的备份解决方案。有关详细信息,请参阅 第三方备份解决方案。
XenServer Premium Edition 客户可以利用更快的仅更改块备份。有关详细信息,请参阅 更改块跟踪文档。
这些解决方案由其供应商而非 Cloud Software Group 认证。这些备份解决方案的支持由解决方案供应商提供。
我们建议您尽可能频繁地执行以下备份过程,以从可能的服务器和软件故障中恢复。
备份池元数据:
  1. 运行命令:
    xe pool-dump-database file-name=backup
  2. 要恢复数据库,请运行以下命令:
    xe pool-restore-database file-name=backup dry-run=true
    此命令检查目标计算机是否具有适当数量的命名正确的 NIC,这是备份成功所必需的。
备份主机配置和软件:
  1. 运行命令:
    xe host-backup host=host file-name=hostbackup
注意:
  • 不要在控制域中创建备份。
  • 备份过程可能会创建一个大型备份文件。
  • 要完成还原,您必须重新启动到原始安装 CD。
  • 此数据只能还原到原始计算机。
备份 VM:
  1. 确保要备份的 VM 处于脱机状态。
  2. 运行以下命令:
    xe vm-export vm=vm_uuid filename=backup
注意:
此备份还会备份所有 VM 数据。导入 VM 时,您可以指定用于备份数据的存储机制。
警告:
由于备份所有 VM 数据,备份过程可能需要更长时间才能完成。
仅备份 VM 元数据:
运行以下命令:
xe vm-export vm=vm_uuid filename=backup metadata=true

备份虚拟机元数据

XenServer® 主机在每个主机上使用一个数据库来存储有关 VM 和相关资源(例如存储和网络)的元数据。当与 SR 结合使用时,此数据库构成了池中所有可用 VM 的完整视图。因此,了解如何备份此数据库以从物理硬件故障和其他灾难场景中恢复非常重要。
本节首先介绍如何备份单主机安装的元数据,然后介绍更复杂的池设置。

备份单主机安装

使用 CLI 备份池数据库。要获取一致的池元数据备份文件,请在 XenServer 主机上运行 pool-dump-database 并归档生成的文件。备份文件包含有关池的敏感身份验证信息,因此请确保其安全存储。
要恢复池数据库,请使用以前的转储文件中的 xe pool-restore-database 命令。如果您的 XenServer 主机已完全崩溃,则必须首先进行全新安装,然后对全新安装的 XenServer 主机运行 pool-restore-database 命令。
恢复池数据库后,某些虚拟机可能仍注册为处于 Suspended 状态。但是,如果 suspend-VDI-uuid 字段中定义的具有挂起内存状态的存储库是本地 SR,则由于主机已重新安装,SR 可能不可用。要将这些虚拟机重置回 Halted 状态以便它们可以再次启动,请使用 xe vm-shutdown vm=vm_name -force 命令,或使用 xe vm-reset-powerstate vm=vm_name -force 命令。
警告:
XenServer 会保留使用此方法恢复的主机的 UUID。如果您在原始 XenServer 主机仍在运行时恢复到不同的物理机,则可能会出现重复的 UUID。因此,XenCenter 拒绝连接到第二个 XenServer 主机。池数据库备份不是克隆物理主机的推荐机制。请改用自动化安装支持。有关详细信息,请参阅 安装。

备份池化安装

在池场景中,池协调器提供一个权威数据库,该数据库同步镜像到所有池成员主机。此过程为池提供了一定程度的内置冗余。任何池成员都可以替换池协调器,因为每个池成员都拥有准确的池数据库版本。有关如何将成员转换为池协调器的详细信息,请参阅 主机和资源池。
这种保护级别可能不足。例如,当包含虚拟机数据的共享存储在多个站点备份,但本地服务器存储(包含池元数据)未备份时。要根据一组共享存储重新创建池,您必须首先备份池协调器主机上的 pool-dump-database 文件,并归档此文件。要在稍后在一组全新的主机上恢复此备份,请执行以下操作:
  1. 从安装介质安装一组全新的 XenServer 主机,或者如果适用,从 TFTP 服务器进行网络引导。
  2. 在新池协调器指定的主机上使用 xe pool-restore-database。
  3. 在新池协调器上运行 xe host-forget 命令以移除旧成员机。
  4. 在成员主机上使用 xe pool-join 命令将它们连接到新池。

备份 XenServer 主机

本节介绍 XenServer 主机控制域备份和恢复过程。这些过程不备份存放虚拟机的存储库,而只备份运行 Xen® 和 XenServer 代理的特权控制域。
注意:
特权控制域最好保持原样安装,不要使用其他软件包进行自定义。我们建议您设置网络启动环境,以便从 XenServer 介质干净地安装 XenServer 作为恢复策略。通常,您不需要备份控制域,但我们建议您保存池元数据(请参阅 备份虚拟机元数据)。请将此备份方法视为对备份池元数据的补充。
使用 xe 命令 host-backup 和 host-restore 是您可以采取的另一种方法。xe host-backup 命令将活动分区存档到您指定的文件中。xe host-restore 命令将由 xe host-backup 创建的存档提取到主机当前非活动的磁盘分区上。然后,可以通过从安装 CD 启动并选择恢复相应的备份来激活此分区。
完成上一节中的步骤并重新启动主机后,请确保虚拟机元数据已恢复到一致状态。在 /var/backup/pool-database-${DATE} 上运行 xe pool-restore-database 以恢复虚拟机元数据。此文件由 xe host-backup 在存档运行中的文件系统之前使用 xe pool-dump-database 命令创建,用于快照虚拟机元数据的一致状态。
备份 XenServer 主机:
在具有足够磁盘空间的远程主机上,运行以下命令
xe host-backup file-name=filename -h hostname -u root -pw password
此命令创建控制域文件系统的压缩映像。映像存储在 file-name 参数指定的位置。
恢复运行中的 XenServer 主机:
  1. 如果要从特定备份恢复 XenServer 主机,请在 XenServer 主机启动并可访问时运行以下命令:
    xe host-restore file-name=filename -h hostname -u root -pw password
    此命令将压缩映像恢复到运行此命令的 XenServer 主机的硬盘上(而不是 filename 所在的主机)。在此上下文中,“恢复”可能是一个不恰当的词,因为该词通常表示已完全恢复备份状态。恢复命令仅解压缩备份文件并将其恢复到正常形式。但是,它写入另一个分区 (/dev/sda2),并且不会覆盖文件系统的当前版本。
  2. 要使用根文件系统的恢复版本,请使用 XenServer 安装 CD 重新启动 XenServer 主机,然后选择 从备份恢复 选项。
    从备份恢复完成后,重新启动 XenServer 主机,它将从恢复的映像启动。
  3. 最后,使用以下命令恢复虚拟机元数据:
    xe pool-restore-database file-name=/var/backup/pool-database-* -h hostname -u root -pw password
注意:
如本节所述,从备份恢复不会破坏备份分区。
重新启动崩溃的 XenServer 主机:
如果您的 XenServer 主机崩溃且无法访问,请使用 XenServer 安装 CD 进行升级安装。升级安装完成后,重新启动计算机并确保您的主机可以通过 XenCenter® 或远程 CLI 访问。
然后按照本节所述继续备份 XenServer 主机。

备份虚拟机

我们建议您使用第三方提供商提供的备份解决方案。有关详细信息,请参阅第三方备份解决方案。
这些解决方案由其供应商认证,而非由 Cloud Software Group 认证。这些备份解决方案的支持由解决方案供应商提供。
XenServer Premium Edition 客户可以利用更快的仅更改块备份。有关详细信息,请参阅更改块跟踪。