备份和还原主机和 VM

建议,如果可能,最好不要更改 主机的安装状态。也就是说,不要在 主机上安装任何其他软件包或启动其他服务,将其视为设备。最好的还原方式是从安装介质重新安装 主机软件。如果您有多个 主机,则最好的方法是配置 TFTP 服务器和相应的应答文件来实现此目的。有关详细信息,请参阅网络引导安装

建议您尽量经常执行下列备份过程以从可能的服务器和软件故障中恢复。

要备份池元数据,请执行以下操作:

  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

备份虚拟机元数据

主机使用各个主机上的数据库存储有关 VM 和相关资源(如存储和网络连接)的元数据。当与 SR 结合使用时,此数据库将形成池中所有可用 VM 的完整视图。因此,了解如何备份此数据库以从物理硬件故障和其他灾难情况中恢复,这一点至关重要。

本节首先介绍单主机环境元数据的备份方法,然后介绍更为复杂的池设置。

备份单台主机环境

使用 CLI 备份池数据库。要获得一致的池元数据备份文件,请在 主机上运行 pool-dump-database 并将生成的文件存档。此备份文件将包含有关池的敏感身份验证信息,因此请确保安全存储该文件。

要还原池数据库,请对前面的转储文件使用 xe pool-restore-database 命令。如果您的 主机完全死机,则必须首先进行全新安装,然后对重新安装的 主机运行 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 命令。

警告:

将保留使用此方法还原的主机的 UUID。如果在原始 主机仍运行时还原到其他物理计算机,则可能存在重复的 UUID。因此, 拒绝连接到第二个 主机。池数据库备份不是克隆物理主机的建议机制。请改为使用自动化安装支持。有关详细信息,请参阅安装

备份池化安装

在池方案中,主服务器主机提供了一个同步镜像到所有池成员主机的授权数据库。此过程可以为池提供内置冗余级别。任何池成员都可以替换主服务器,因为每个池成员都具有正确版本的池数据库。有关如何将成员主机转换为池主服务器的详细信息,请参阅主机和资源池

这种保护级别可能远远不够。例如,当包含 VM 数据的共享存储在多个站点中进行了备份,但包含池元数据的本地服务器存储没有备份时。要在给定一组共享存储的情况下重新创建池,必须首先对主服务器主机上的 pool-dump-database 文件进行备份,然后将此文件存档。要稍后在一组全新的主机上 还原此备份,请执行以下操作:

  1. 从安装介质中安装一组全新的 主机,或者从 TFTP 服务器进行网络引导(如果适用)。

  2. 在指定为新主服务器的主机上使用 xe pool-restore-database

  3. 在新主服务器上运行 xe host-forget 命令以删除旧成员计算机。

  4. 在成员主机上使用 xe pool-join 命令以将这些主机连接到新池。

备份 主机

本节介绍 主机控制域的备份和还原步骤。这些步骤不会备份用来容纳 VM 的存储库,而仅备份运行 Xen 和 代理的特权控制域。

注意:

特权控制域最好保留安装时的状态,不使用其他软件包对其进行自定义。 建议您设置网络引导环境,以便从 介质执行 的全新安装,以此作为恢复策略。通常情况下,您不需要备份控制域,但我们建议您保存池元数据 (请参阅备份虚拟机元数据)。将此备份方法视为备份池元数据的补充方法。

可以采取的另一种方法是使用 xe 命令 host-backuphost-restore。xe host-backup 命令可将活动分区存档至您指定的文件。xe host-restore 命令可在主机的当前非活动磁盘分区中提取由 xe host-backup 创建的存档。然后可以通过引导安装 CD 并选择还原相应备份来激活此分区。

完成上一节中的步骤并重新启动主机后,确保将 VM 元数据还原为一致的状态。在 /var/backup/pool-database-${DATE} 上运行 xe pool-restore-database 以还原 VM 元数据。此文件由 xe host-backup 使用 xe pool-dump-database 命令在存档正在运行的文件系统之前创建,以便对 VM 元数据的一致状态生成快照。

要备份 主机,请执行以下操作:

在具有足够磁盘空间的远程主机上,运行以下命令

xe host-backup file-name=filename -h hostname -u root -pw password

此命令创建控制域文件系统的压缩映像。此映像将存储在由 file-name 参数指定的位置。

要还原正在运行的 XenServer 主机,请执行以下操作:

  1. 如果要从特定备份还原 主机,请在该 主机已启动并且可以连接时运行以下命令:

    xe host-restore file-name=filename -h hostname -u root -pw password;

    此命令会将压缩映像还原到运行此命令的 主机(而不是 filename 驻留的主机)的硬盘中。在该上下文中,“还原”有些用词不当,因为该词通常表示已完全恢复备份的状态。还原命令仅对压缩的备份文件进行解压缩并将其还原到正常形式。但是,它会写入其他分区 (/dev/sda2),并且不会覆盖当前版本的文件系统。

  2. 要使用已还原版本的根文件系统,请使用 安装 CD 重新启动 主机,然后选择 Restore from backup(从备份还原)选项。

    从备份还原完成后,重新启动 主机,该主机将从还原映像启动。

  3. 最后,使用以下命令还原 VM 元数据:

    xe pool-restore-database file-name=/var/backup/pool-database-*
    

注意:

如此节所述,从备份进行还原不会破坏备份分区。

要重新启动已崩溃的 主机,请执行以下操作:

如果您的 主机已崩溃且无法连接,请使用 安装 CD 进行升级安装。升级安装完成后,重新启动此计算机并确保可以使用 或远程 CLI 连接到您的主机。

然后继续按本节中所述备份 主机。

备份和还原主机和 VM