备份和恢复主机和虚拟机
尽可能保持 XenServer 主机的安装状态不变。也就是说,不要在 XenServer 主机上安装任何额外的软件包或启动额外的服务,并将其视为设备。因此,最佳恢复方法是从安装介质重新安装 XenServer 主机软件。如果您有多个 XenServer 主机,最佳方法是为此目的配置 TFTP 服务器和相应的应答文件。有关详细信息,请参阅网络引导安装。
我们建议您使用第三方提供商提供的备份解决方案。有关详细信息,请参阅第三方备份解决方案。
XenServer 高级版客户可以利用更快的仅更改块备份。有关详细信息,请参阅更改块跟踪文档。
这些解决方案由其供应商而非 Cloud Software Group 认证。这些备份解决方案的支持由解决方案供应商提供。
我们建议您尽可能频繁地执行以下备份过程,以从可能的服务器和软件故障中恢复。
备份池元数据:
-
运行命令:
xe pool-dump-database file-name=backup <!--NeedCopy--> -
要恢复数据库,请运行命令:
xe pool-restore-database file-name=backup dry-run=true <!--NeedCopy-->此命令检查目标计算机是否具有适当数量的命名正确的网卡,这是备份成功所必需的。
备份主机配置和软件:
-
运行命令:
xe host-backup host=host file-name=hostbackup <!--NeedCopy-->
注意:
不要在控制域中创建备份。
备份过程可能会创建一个大型备份文件。
要完成恢复,您必须重新启动到原始安装 CD。
此数据只能恢复到原始计算机。
备份 VM:
-
确保要备份的 VM 处于脱机状态。
-
运行以下命令:
xe vm-export vm=vm_uuid filename=backup <!--NeedCopy-->
注意:
此备份还会备份所有 VM 数据。导入 VM 时,您可以指定用于备份数据的存储机制。
警告:
备份过程可能需要更长时间才能完成,因为它会备份所有 VM 数据。
仅备份 VM 元数据:
运行以下命令:
xe vm-export vm=vm_uuid filename=backup metadata=true
<!--NeedCopy-->
备份虚拟机元数据
XenServer® 主机在每个主机上使用数据库来存储有关 VM 以及存储和网络等相关资源的元数据。当与 SR 结合使用时,此数据库构成了池中所有可用 VM 的完整视图。因此,了解如何备份此数据库以从物理硬件故障和其他灾难场景中恢复非常重要。
本节首先介绍如何备份单主机安装的元数据,然后介绍更复杂的池设置。
备份单主机安装
使用 CLI 备份池数据库。要获取一致的池元数据备份文件,请在 XenServer 主机上运行 pool-dump-database 并归档生成的文件。备份文件包含有关池的敏感身份验证信息,因此请确保其安全存储。
要还原池数据库,请使用以前的转储文件中的 xe pool-restore-database 命令。如果您的 XenServer 主机已完全崩溃,则必须首先执行全新安装,然后针对新安装的 XenServer 主机运行 pool-restore-database 命令。
还原池数据库后,某些 VM 可能仍注册为 Suspended。但是,如果 suspend-VDI-uuid 字段中定义的具有挂起内存状态的存储库是本地 SR,则由于主机已重新安装,该 SR 可能不可用。要将这些 VM 重置回 Halted 状态以便它们可以再次启动,请使用 xe vm-shutdown vm=vm_name -force 命令或 xe vm-reset-powerstate vm=vm_name -force 命令。
警告:
XenServer 会保留使用此方法还原的主机的 UUID。如果原始 XenServer 主机仍在运行时还原到不同的物理机,则可能会出现重复的 UUID。因此,XenCenter 拒绝连接到第二个 XenServer 主机。池数据库备份不是克隆物理主机的推荐机制。请改用自动化安装支持。有关详细信息,请参阅安装。
备份池化安装
在池场景中,池协调器提供一个权威数据库,该数据库同步镜像到所有池成员主机。此过程为池提供了一定程度的内置冗余。任何池成员都可以替换池协调器,因为每个池成员都拥有池数据库的准确版本。有关如何将成员转换为池协调器的详细信息,请参阅主机和资源池。
这种级别的保护可能不足。例如,当包含 VM 数据的共享存储在多个站点进行备份,但本地服务器存储(包含池元数据)未进行备份时。要根据一组共享存储重新创建池,您必须首先备份池协调器主机上的 pool-dump-database 文件,并归档此文件。要稍后在新主机集上还原此备份:
-
从安装介质安装一套全新的 XenServer 主机,或者如果适用,从您的 TFTP 服务器进行网络启动。
-
在指定为新池协调器的主机上使用
xe pool-restore-database。 -
在新池协调器上运行
xe host-forget命令以移除旧成员机。 -
在成员主机上使用
xe pool-join命令将它们连接到新池。
备份 XenServer 主机
本节介绍 XenServer 主机控制域的备份和还原过程。这些过程不备份存储 VM 的存储库,而只备份运行 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
<!--NeedCopy-->
此命令创建控制域文件系统的压缩映像。映像存储在 file-name 参数指定的位置。
恢复正在运行的 XenServer 主机:
-
如果要从特定备份恢复 XenServer 主机,请在 XenServer 主机启动并可访问时运行以下命令:
xe host-restore file-name=filename -h hostname -u root -pw password <!--NeedCopy-->此命令将压缩映像恢复到运行此命令的 XenServer 主机的硬盘(而不是
filename所在的主机)。在此上下文中,“恢复”可能是一个不恰当的名称,因为该词通常表示已完全恢复备份状态。恢复命令仅解压缩备份文件并将其恢复到正常形式。但是,它被写入另一个分区 (/dev/sda2),并且不会覆盖文件系统的当前版本。 -
要使用恢复的根文件系统版本,请使用 XenServer 安装 CD 重新启动 XenServer 主机,然后选择 从备份恢复 选项。
从备份恢复完成后,重新启动 XenServer 主机,它将从恢复的映像启动。
-
最后,使用以下命令恢复虚拟机元数据:
xe pool-restore-database file-name=/var/backup/pool-database-* -h hostname -u root -pw password <!--NeedCopy-->
注意:
按照本节所述从备份恢复不会破坏备份分区。
重新启动崩溃的 XenServer 主机:
如果您的 XenServer 主机崩溃且无法访问,请使用 XenServer 安装 CD 进行升级安装。升级安装完成后,重新启动计算机并确保您的主机可通过 XenCenter® 或远程 CLI 访问。
然后按照本节所述继续备份 XenServer 主机。
备份虚拟机
我们建议您使用第三方提供商提供的备份解决方案。有关更多信息,请参阅第三方备份解决方案。
这些解决方案由其供应商而非 Cloud Software Group 认证。这些备份解决方案的支持由解决方案供应商提供。
XenServer Premium Edition 客户可以利用更快的仅更改块备份。有关更多信息,请参阅更改块跟踪。