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