11.8. 迁移故障排除
虚拟机迁移期间可能会出现多种问题:
- 迁移过程遇到错误。
- 迁移过程永远不结束。
- 迁移后虚拟机性能下降
迁移期间出错
以下问题可使迁移操作进入错误
状态:
- 使用不同版本的 OpenStack 运行集群。
- 指定的虚拟机 ID 找不到。
-
您尝试迁移的虚拟机处于
错误
状态。 - Compute 服务正在关闭。
- 发生争用情形。
-
实时迁移进入
失败
状态。
当实时迁移进入失败
状态时,通常会随之进入错误
状态。以下常见问题可能导致失败
状态:
- 目标 Compute 主机不可用。
- 发生调度程序异常。
- 由于计算资源不足,重新构建过程失败。
- 服务器组检查失败。
- 源 Compute 节点上的虚拟机在完成迁移到目标 Compute 节点之前被删除。
永不结束的实时迁移
实时迁移可能无法及时完成,使迁移一直处于运行
状态。实时迁移永远完不成的常见原因是对源 Compute 节点上运行的虚拟机的客户端请求的变化速度快于 nova 将其复制到目标 Compute 节点的速度。
应对此情形有几种方式:
- 中止实时迁移。
- 强制实时迁移完成。
中止实时迁移
如果虚拟机的状态变化比迁移步骤将其复制到目标节点更快,且您不想临时暂停虚拟机的操作,则可中止实时迁移步骤。
检索虚拟机的迁移列表:
$ nova server-migration-list [vm]
用虚拟机名称或 ID 替换
[vm]
。中止实时迁移:
$ nova live-migration-abort [vm] [migration]
用虚拟机的名称或 ID 替换
[vm]
,用迁移 ID 替换[migration]
。
强制实时迁移完成
如果虚拟机的状态变化比迁移步骤将其复制到目标节点更快,且您想临时暂停虚拟机的操作以强制迁移完成,则可强制完成实时迁移步骤。
强制完成实时迁移可能导致明显的停机时间。
检索虚拟机的迁移列表:
$ nova server-migration-list [vm]
用虚拟机名称或 ID 替换
[vm]
。强制实时迁移完成:
$ nova live-migration-force-complete [vm] [migration]
用虚拟机名称或 ID 替换
[vm]
。用迁移 ID 替换[migration]
。
迁移后虚拟机性能下降
对于使用 NUMA 拓扑的虚拟机,源和目标 Compute 节点必须具有相同的 NUMA 拓扑和配置。目标 Compute 节点的 NUMA 拓扑必须有足够的资源可用。如果源和目标 Compute 节点之间的 NUMA 配置不同,实时迁移可能在虚拟机性能下降时成功。例如,如果源 Compute 节点将 NIC 1 映射到 NUMA 节点 0,但目标 Compute 节点将 NIC 1 映射到 NUMA 节点 5,则迁移后,虚拟机可能通过总线将网络流量从第一个 CPU 路由到第二个 CPU,并使用 NUMA 节点 5 将流量路由到 NIC 1—从而导致预期的行为,但性能降低。同样,如果源 Compute 节点上的 NUMA 节点 0 有足够可用的 CPU 和 RAM,但目标 Compute 节点上的 NUMA 节点 0 已经有使用部分资源的虚拟机,则虚拟机可能运行正常,但性能会降低。请参见 第 11.2 节 “迁移限制”了解更多详细信息。