15.8. 迁移故障排除
实例迁移过程中可能会出现以下问题:
- 迁移过程遇到错误。
- 迁移过程永远不结束。
- 迁移后实例的性能会下降。
15.8.1. 迁移过程中的错误
以下问题可使迁移操作进入错误
状态:
- 使用不同版本的 Red Hat OpenStack Platform (RHOSP)运行集群。
- 指定无法找到的实例 ID。
-
您尝试迁移的实例
处于错误状态
。 - Compute 服务正在关闭。
- 发生争用情形。
-
实时迁移进入
失败
状态。
当实时迁移进入失败
状态时,通常会随之进入错误
状态。以下常见问题可能导致失败
状态:
- 目标 Compute 主机不可用。
- 发生调度程序异常。
- 由于计算资源不足,重新构建过程失败。
- 服务器组检查失败。
- 源 Compute 节点上的实例会在迁移到目标 Compute 节点之前被删除。
15.8.2. 永不结束实时迁移
实时迁移可能无法完成,这会使迁移保持 持续运行
状态。实时迁移从未完成的一个常见原因是,对源 Compute 节点上运行的实例的客户端请求创建的变化速度快于计算服务可以将其复制到目标 Compute 节点。
使用以下方法之一解决这种情况:
- 中止实时迁移。
- 强制实时迁移完成。
中止实时迁移
如果实例状态变化比迁移步骤将其复制到目标节点更快,且您不想临时暂停实例操作,您可以中止实时迁移。
流程
检索实例的迁移列表:
$ openstack server migration list --server <instance>
将
<instance
> 替换为实例的名称或 ID。中止实时迁移:
$ openstack server migration abort <instance> <migration_id>
-
将
<instance
> 替换为实例的名称或 ID。 -
将
<migration_id
> 替换为迁移的 ID。
-
将
强制实时迁移完成
如果实例状态变化比迁移步骤将其复制到目标节点更快,并且希望临时挂起实例操作来强制迁移完成,您可以强制完成实时迁移过程。
强制完成实时迁移可能导致明显的停机时间。
流程
检索实例的迁移列表:
$ openstack server migration list --server <instance>
将
<instance
> 替换为实例的名称或 ID。强制实时迁移完成:
$ openstack server migration force complete <instance> <migration_id>
-
将
<instance
> 替换为实例的名称或 ID。 -
将
<migration_id
> 替换为迁移的 ID。
-
将
15.8.3. 迁移后实例性能降级
对于使用 NUMA 拓扑的实例,源和目标 Compute 节点必须具有相同的 NUMA 拓扑和配置。目标 Compute 节点的 NUMA 拓扑必须具有足够的可用资源。如果源和目标 Compute 节点之间 NUMA 配置不相同,则实时迁移可能会在实例性能下降的同时成功。例如,如果源 Compute 节点将 NIC 1 映射到 NUMA 节点 0,但目标 Compute 节点会将 NIC 1 映射到 NUMA 节点 5,在迁移实例后,可以将流量从第一个 CPU 路由到一个 NUMA 节点 5 的第二个 CPU,以将流量路由到 NIC 1。这可能导致预期的行为,但会降低性能。同样,如果源 Compute 节点上的 NUMA 节点 0 有足够的可用 CPU 和 RAM,但目的地 Compute 节点上的 NUMA 节点 0 已经具有使用了一些资源的实例,则实例可能会正确运行,但性能将下降。如需更多信息,请参阅 迁移限制。