迁移 VM

可以使用实时迁移或存储实时迁移功能迁移正在运行的 VM,以及移动 VM 的虚拟磁盘映像 (VDI),而不会使 VM 停机。

实时迁移和存储实时迁移

以下各部分内容将介绍实时迁移和存储实时迁移功能的兼容性要求和限制。

实时迁移

实时迁移在 XenServer 的所有版本中都可用。当 VM 的磁盘 (VDI) 位于两个主机共享的存储上时,您可以通过此功能将正在运行的 VM 从一个主机移至另一个主机。高可用性和滚动池升级 (RPU) 等池维护功能可以通过使用实时迁移功能自动移动 VM。可以通过这些功能实现工作负载调整、基础结构恢复以及服务器软件升级,而不需要使 VM 停机。

在 VM 的实时迁移过程中,其内存将作为数据流通过网络在两台主机之间传输。迁移流压缩功能可压缩此数据流,从而加快较慢网络上的内存传输速度。默认情况下,此功能处于禁用状态,但可以使用 XenCenter 或 xe CLI 进行更改。有关详细信息,请参阅池属性 - 高级池参数。或者,您可以在使用命令行迁移 VM 时启用压缩。有关详细信息,请参阅 VM 命令中的 vm-migrate 命令。

并行主机撤离功能可通过并行而非按顺序将 VM 移出主机来缩短主机撤离时间(在主机更新期间)。默认情况下,此功能处于启用状态,VM 以 10 个为一批并行迁移。您可以更改 /etc/xapi.conf 文件中的默认批处理大小。

注意:

只能在同一个池的主机之间共享存储。因此,只能将 VM 迁移至同一个池的主机。

Intel GVT-g 与实时迁移、存储实时迁移或 VM 挂起功能不兼容。有关信息,请参阅图形

存储实时迁移

备注:

  • 请勿在 Citrix Virtual Desktops 部署中使用存储实时迁移。
  • 不能在启用了更改块跟踪功能的 VM 上使用存储实时迁移。请在尝试执行 Storage 实时迁移操作之前禁用更改块跟踪功能。
  • 存储实时迁移不能用于其 VDI 位于 GFS2 SR 上的 VM。

当 VM 的磁盘不位于两个主机共享的存储上时,存储实时迁移功能允许将 VM 从一个主机移至另一个主机。因此,可以迁移保存于本地存储上的 VM,而不会带来停机时间,并且可以将 VM 从一个池移至另一个池。系统管理员可以通过此功能:

  • 在 XenServer 池之间重新平衡 VM(例如从开发环境到生产环境)。

  • 在不导致任何 VM 停机的情况下,升级和更新独立 XenServer 主机。

  • 升级 XenServer 服务器硬件。

注意:

  • 将 VM 从一个主机移至另一个主机时会保留 VM 状态。状态信息包括定义和标识 VM 的信息和历史性能指标(例如 CPU 和网络使用情况)。

  • 为了提高安全性,您可以关闭 XenServer 主机的管理接口上的 TCP 端口 80。但是,如果未安装修补程序 XS82ECU1033,则无法将 VM 从 Citrix Hypervisor 8.2 CU1 池迁移到端口 80 已关闭的 XenServer 池。为此,请在 Citrix Hypervisor 8.2 CU1 池中安装 XS82ECU1033,或者暂时打开 XenServer 池上的端口 80。有关如何关闭端口 80 的详细信息,请参阅限制使用端口 80

兼容性要求

通过实时迁移或存储实时迁移功能迁移 VM 时,VM 和目标主机必须满足以下兼容性要求,才能继续进行迁移:

  • 必须在目标主机上安装与源主机上相同版本或更高版本的 XenServer。

  • 必须在要迁移的每个 Windows VM 上安装适用于 Windows 的 XenServer VM Tools。

  • 仅限存储实时迁移:如果源主机和目标主机上的 CPU 不同,那么目标 CPU 必须至少提供与源 CPU 相同的完整功能集。因此,无法在不同的处理器(例如 AMD 和 Intel 处理器)之间移动 VM。

  • 不能迁移带有检查点的 VM。

  • 仅限存储实时迁移:无法迁移连接了六个以上 VDI 的 VM。

  • 目标主机必须具有充足的空闲内存容量或者能够使用动态内存控制释放出充足的容量。如果内存不足,则无法完成迁移。

  • 仅限存储迁移:源池中的主机必须有足够的空闲内存容量才能运行正在迁移的已暂停 VM。此要求允许已暂停的 VM 在迁移过程中的任何时候启动。

  • 仅限存储实时迁移:目标存储必须具有足够的可用磁盘空间以存储传入的 VM。所需的可用空间可以是 VDI 大小的三倍(不包含快照)。如果空间不足,迁移将无法完成。

限制和注意事项

实时迁移和存储实时迁移存在以下限制:

  • 存储实时迁移不能与 Machine Creation Services 创建的 VM 一起使用。
  • 无法迁移使用 PCI 直通设备的 VM(NVIDIA SR-IOV GPU 除外)。有关详细信息,请参阅使用启用了 SR-IOV 的 NIC
  • 无法迁移连接了 vUSB 的 VM。
  • 无法迁移设置了参数 no-migrate 的 VM。
  • Intel GVT-g 与实时迁移和存储实时迁移功能不兼容。有关详细信息,请参阅图形概述
  • 无法迁移 on-boot 选项设置为 reset 的 VM。有关详细信息,请参阅 Intellicache
  • 如果使用高可用性功能且正在迁移的 VM 被标记为受保护,则在实时迁移过程中,如果操作导致无法满足高可用性限制,您可能会收到警告。
  • 在迁移期间,VM 性能会降低。
  • 完成 VM 迁移所需的时间取决于 VM 的内存占用量及其活动。此外,通过存储实时迁移功能迁移的 VM 还会受到 VDI 的大小及其存储活动的影响。在暂停 VM 期间,连接了 vGPU 的 VM 会迁移整个 vGPU 状态。我们建议您在管理网络上使用快速网卡以减少停机时间,尤其是对于具有大量内存的 vGPU 更是如此。
  • 例如,如果实时迁移失败(出现网络错误时),则源主机上的 VM 可以立即进入已停止状态。

使用 XenCenter 迁移 VM

  1. 在“资源”窗格中,选择 VM,然后执行以下操作之一:

    • 要使用实时迁移或 Storage 实时迁移迁移正在运行或已挂起的 VM,请在 VM 菜单中,单击迁移到服务器,然后单击迁移 VM 向导。此操作将打开迁移 VM 向导。

    • 移动已停止的 VM:在 VM 菜单中选择移动 VM。此操作将打开移动 VM 向导。

  2. 目标列表中,选择独立主机或池。

  3. 主服务器列表中,选择要指定为 VM 的主服务器的主机,然后单击下一步

  4. 存储选项卡中,指定要放置迁移的 VM 的虚拟磁盘的存储库,然后单击下一步

    • 将所有虚拟磁盘放置在相同的 SR 上单选按钮默认处于选中状态,并且显示目标池中的默认共享 SR。

    • 单击将虚拟磁盘放置在指定 SR 上以从存储库列表中指定 SR。此选项支持您为迁移的 VM 上的每个虚拟磁盘选择不同的 SR。

  5. 存储网络列表中,在目标池中选择一个将用于实时迁移 VM 的虚拟磁盘的网络。单击下一步

    注意:

    由于性能原因,建议您不要将管理网络用于实时迁移。

  6. 检查配置设置,然后单击完成以开始迁移 VM。

如果要从 7.1 CU2 升级到 8.2 CU1,您可能需要在迁移 VM 后关闭并启动所有 VM,以确保使用新的虚拟化功能。

实时 VDI 迁移

实时 VDI 迁移允许管理员重新定位 VM 虚拟磁盘映像 (VDI),而无需关闭 VM。此功能支持执行管理操作,例如:

  • 将 VM 从便宜的本地存储移至快速灵活且支持阵列的存储中。
  • 将 VM 从开发环境移至生产环境。
  • 在存储层中移动 VM(如果 VM 受到存储容量限制)。
  • 执行存储阵列升级。

限制和注意事项

实时 VDI 迁移受以下限制和注意事项约束

  • 请勿在 Citrix Virtual Desktops 部署中使用存储实时迁移。

  • IPv6 Linux VM 要求 Linux 内核版本高于 3.0。

  • 如果您在具有 vGPU 的 VM 上执行实时 VDI 迁移,则将使用 vGPU 实时迁移。主机必须具有足够的 vGPU 空间,才能在主机上创建 vGPU 实例的副本。如果充分利用 pGPU,则可能无法执行 VDI 迁移。

  • 对保留在同一主机上的 VM 执行 VDI 实时迁移时,该 VM 暂时需要两倍的 RAM 量。

移动虚拟磁盘

  1. 资源窗格中,选择存储虚拟磁盘的 SR,然后单击存储选项卡。

  2. 虚拟磁盘列表中,选择要移动的虚拟磁盘,然后单击移动

  3. 移动虚拟磁盘对话框中,选择要将 VDI 移至的目标 SR。

    注意:

    确保该 SR 具有可容纳另一个虚拟磁盘的充足空间:可用空间在可用 SR 列表中显示。

  4. 单击移动以移动虚拟磁盘。

迁移 VM