迁移虚拟机
您可以通过使用实时迁移或存储实时迁移来移动正在运行的虚拟机的虚拟磁盘映像 (VDI),而无需任何虚拟机停机时间。
实时迁移和存储实时迁移
以下各节介绍了实时迁移和存储实时迁移的兼容性要求和限制。
实时迁移
实时迁移在所有 XenServer 版本中均可用。当虚拟机的磁盘 (VDI) 位于两个主机共享的存储上时,此功能使您能够将正在运行的虚拟机从一个主机移动到另一个主机。池维护功能(例如高可用性和滚动池升级 (RPU))可以使用实时迁移自动移动虚拟机。这些功能允许工作负载均衡、基础架构弹性以及服务器软件升级,而无需任何虚拟机停机时间。
在虚拟机实时迁移期间,其内存通过网络在两个主机之间作为数据流传输。迁移流压缩功能会压缩此数据流,从而加快慢速网络上的内存传输。此功能默认禁用,但可以通过使用 XenCenter 或 xe CLI 进行更改。有关详细信息,请参阅 池属性 - 高级 和 池参数。或者,您可以在使用命令行迁移虚拟机时启用压缩。有关详细信息,请参阅 虚拟机命令 中的 vm-migrate 命令。
并行主机疏散功能通过并行而不是顺序地将虚拟机从主机中移出,从而加快主机疏散时间(在主机更新期间)。默认情况下,此功能处于启用状态,虚拟机以 10 个为一批并行迁移。您可以在 /etc/xapi.conf 文件中更改默认批处理大小。
注意:
存储只能在同一池中的主机之间共享。因此,虚拟机只能迁移到同一池中的主机。
存储实时迁移
注意:
- 存储迁移不能用于非持久性虚拟机。
- 存储实时迁移不能用于已启用更改块跟踪的虚拟机。在尝试存储实时迁移之前,请禁用更改块跟踪。
- 存储实时迁移不能用于其 VDI 位于 GFS2 或 XFS SR 上的虚拟机,无论是在同一池内还是在池之间。
- 但是,您可以手动将 VDI 复制到同一池中的另一个 SR。
存储实时迁移允许将虚拟机从一个主机移动到另一个主机,即使虚拟机的磁盘不在两个主机之间共享的存储上。因此,存储在本地存储上的虚拟机可以不中断地进行迁移,并且虚拟机可以从一个池移动到另一个池。此功能使系统管理员能够:
-
在 XenServer 池之间重新平衡虚拟机(例如,从开发环境到生产环境)。
-
升级和更新独立的 XenServer 主机,而无需任何虚拟机停机。
-
升级 XenServer 服务器硬件。
注意:
将虚拟机从一个主机迁移到另一个主机可保留虚拟机的状态。状态信息包括定义和标识虚拟机的信息以及历史性能指标,例如 CPU 和网络使用情况。
为了提高安全性,您可以关闭 XenServer 主机管理界面上的 TCP 端口 80。但是,如果未安装热修复程序 XS82ECU1033,则无法将虚拟机从 Citrix Hypervisor 8.2 CU1 池迁移到已关闭端口 80 的 XenServer 池。为此,请在您的 Citrix Hypervisor 8.2 CU1 池上安装 XS82ECU1033,或暂时打开 XenServer 池上的端口 80。有关如何关闭端口 80 的更多信息,请参阅 限制端口 80 的使用。
兼容性要求
使用实时迁移或存储实时迁移迁移虚拟机时,虚拟机和服务器必须满足以下兼容性要求。
一般要求:
-
目标主机必须安装与源主机相同或更新版本的 XenServer。对于运行相同版本 XenServer 的主机,此要求还包括确保目标主机具有与源主机相同或更新级别的更新。
-
必须在您要迁移的每个 Windows 虚拟机上安装适用于 Windows 的 XenServer VM Tools。
-
您不能同时迁移源位置在同一池中的三个以上虚拟机。
CPU 要求:
-
如果源主机和目标主机的 CPU 不同,则目标主机必须至少与源主机具有相同的功能。通常,这意味着目标主机具有相同或更新的 CPU。
- 如果您在同一池中迁移,池会自动尝试使 VM 兼容。
- 如果您在池之间迁移,则必须确保 VM 与目标池中的功能集兼容。
-
您无法在 AMD 和 Intel 处理器之间实时迁移 VM。
内存要求:
-
目标主机必须具有足够的备用内存容量,或者能够使用动态内存控制释放足够的容量。如果内存不足,迁移将无法完成。
-
仅限存储迁移:源池中的主机必须具有足够的备用内存容量来运行正在迁移的已暂停 VM。此要求使得已暂停的 VM 可以在迁移过程中的任何时候启动。
磁盘空间要求:
-
仅限存储迁移:目标存储必须有足够的可用磁盘空间来容纳传入的 VM。所需的可用空间可以是 VDI 大小(不含快照)的三倍。如果空间不足,迁移将无法完成。
-
源存储必须有足够的可用磁盘空间,以便在迁移期间创建 VM VDI 的临时快照。如果空间不足,迁移将无法完成。所需的可用空间可以是 VM 磁盘大小的两倍。
限制和注意事项
实时迁移和存储实时迁移受以下限制和注意事项的约束。使用“移动 VM”向导将已关机的 VM 移动到另一个 SR 受与存储迁移(实时或离线)相同的限制:
- 存储迁移不能用于由 Machine Creation Services 创建的 VM。
- 使用 PCI 直通设备的 VM 无法迁移(NVIDIA SR-IOV GPU 除外)。有关更多信息,请参阅 使用支持 SR-IOV 的网卡。
- 带有连接的 vUSB 的 VM 无法迁移。
- 设置了参数
no-migrate的虚拟机无法迁移。 - 您不能使用存储实时迁移来迁移已启用更改块跟踪的虚拟机。在尝试存储实时迁移之前,请禁用更改块跟踪。有关更多信息,请参阅更改块跟踪。
- 将
on-boot选项设置为reset的虚拟机无法迁移。有关更多信息,请参阅Intellicache。 - 如果您使用高可用性功能,并且正在迁移的虚拟机被标记为受保护,则如果操作导致不满足 HA 约束,您可能会在实时迁移期间收到警告。
- 迁移期间,虚拟机性能会降低。
- 虚拟机迁移的完成时间取决于虚拟机的内存占用及其活动。此外,VDI 的大小和 VDI 的存储活动会影响使用存储实时迁移进行迁移的虚拟机。附加了 vGPU 的虚拟机在暂停时会迁移整个 vGPU 状态。我们建议您在管理网络上使用快速网卡以减少停机时间,特别是对于具有大量内存的 vGPU。
- 如果实时迁移失败,例如发生网络错误,源主机上的虚拟机可能会立即进入停止状态。
使用 XenCenter® 迁移虚拟机
-
在“资源”窗格中,选择虚拟机并执行以下操作之一:
-
要使用实时迁移或存储实时迁移来迁移正在运行或已暂停的虚拟机,请在“VM”菜单上,单击“迁移到服务器”,然后单击“迁移 VM 向导…”。此操作将打开“迁移 VM”向导。
-
要移动已停止的虚拟机:在“VM”菜单上,选择“移动 VM…”。此操作将打开“移动 VM”向导。
-
-
在“目标池”窗格中,从“目标”列表中选择独立服务器或池。如果您想将虚拟机的磁盘放置在服务器的本地存储上,请从底部列表中选择服务器。单击“下一步”。
-
在“存储”窗格中,指定要放置已迁移虚拟机的虚拟磁盘的存储库,然后单击“下一步”。
-
“将所有已迁移的虚拟磁盘放置在同一 SR 上”单选按钮默认处于选中状态,并显示目标池上的默认共享 SR。
-
单击“将已迁移的虚拟磁盘放置到指定的 SR 上”以从“存储库”列表中指定 SR。此选项允许您为已迁移虚拟机上的每个虚拟磁盘选择不同的 SR。
-
-
如果您正在跨池迁移虚拟机,请在网络窗格中将虚拟机的虚拟网络接口映射到目标池或独立服务器中的网络,然后单击下一步。
-
在存储迁移网络窗格中,选择目标池上将用于虚拟机虚拟磁盘实时迁移的网络。单击下一步。
注意:
出于性能原因,建议您不要将管理网络用于实时迁移。
-
如果您正在同一池中的服务器之间迁移虚拟机,请使用内存迁移网络窗格选择将用于虚拟机内存实时迁移的网络。单击下一步。
注意:
出于性能原因,建议您不要将管理网络用于实时迁移。
-
查看配置设置,然后单击完成以开始迁移虚拟机。
如果您正在升级 XenServer 版本,则在迁移虚拟机后,可能需要关闭并启动所有虚拟机,以确保启用新的虚拟化功能。
实时 VDI 迁移
实时 VDI 迁移允许管理员在不关闭虚拟机的情况下重新定位虚拟机的虚拟磁盘映像 (VDI)。此功能支持以下管理操作:
- 将虚拟机从廉价的本地存储移动到快速、弹性、阵列支持的存储。
- 将虚拟机从开发环境移动到生产环境。
- 当虚拟机受存储容量限制时,在不同存储层之间移动。
- 执行存储阵列升级。
限制和注意事项
实时 VDI 迁移受以下限制和注意事项的约束
-
存储迁移不能用于非持久性虚拟机。
-
IPv6 Linux 虚拟机需要 Linux 内核版本高于 3.0。
-
如果您对具有 vGPU 的虚拟机执行实时 VDI 迁移,则会使用 vGPU 实时迁移。主机必须有足够的 vGPU 空间来在主机上创建 vGPU 实例的副本。如果 pGPU 已完全占用,则可能无法进行 VDI 迁移。
-
当您对仍在同一主机上的虚拟机执行 VDI 实时迁移时,该虚拟机暂时需要两倍的 RAM。
移动虚拟磁盘
-
在“资源”窗格中,选择存储虚拟磁盘的 SR,然后单击“存储”选项卡。
-
在“虚拟磁盘”列表中,选择要移动的虚拟磁盘,然后单击“移动”。
-
在“移动虚拟磁盘”对话框中,选择要将 VDI 移动到的目标 SR。
注意:
确保 SR 有足够的空间容纳另一个虚拟磁盘:可用空间显示在可用 SR 列表中。
-
单击“移动”以移动虚拟磁盘。