14.3. 在 Compute 节点间迁移虚拟机实例
有时,您需要将实例从一个 Compute 节点迁移到 overcloud 中的另一个 Compute 节点,以执行维护、重新平衡工作负载或替换失败节点。
- Compute 节点维护
- 如果您需要临时将 Compute 节点退出服务,例如,执行硬件维护或修复,内核升级和软件更新,您可以将 Compute 节点上运行的实例迁移到另一个 Compute 节点。
- Compute 节点失败
- 如果 Compute 节点应该失败,且您需要服务或替换它,您可以将失败的 Compute 节点中的实例迁移到健康的 Compute 节点。
- Compute 节点失败
- 如果 Compute 节点已经失败,您可以撤离实例。您可以使用与 Compute 节点失败前相同的名称、UUID、网络地址和其他分配的资源,从另一个 Compute 节点上的原始镜像重建实例。
- 工作负载重新平衡
- 您可以将一个或多个实例迁移到另一个 Compute 节点,以重新平衡工作负载。例如,您可以在 Compute 节点上整合实例以节省电源,将实例迁移到与其他联网资源更接近的 Compute 节点,以减少延迟,或在 Compute 节点上分发实例以避免热点并增加弹性。
director 配置所有 Compute 节点以提供安全迁移。所有 Compute 节点还需要一个共享的 SSH 密钥,以便每个主机的用户在迁移过程中能够访问其他 Compute 节点。director 使用 OS::TripleO::Services::NovaCompute
可组合服务创建该密钥。默认情况下,可组合服务是所有 Compute 角色中包含的主要服务之一。有关更多信息,请参阅 Director 安装和使用 指南中的 可组合服务和自定义角色。
如果您有一个正常工作的 Compute 节点,并且您要为备份目的制作实例副本,或者将实例复制到其他环境中,请按照 Director 安装和使用指南中的 将虚拟机导入到 overcloud 中的步骤进行操作。
14.3.1. 迁移类型
Red Hat OpenStack Platform (RHOSP)支持以下类型的迁移。
冷迁移
冷迁移或非实时迁移涉及在从源 Compute 节点迁移到目标 Compute 节点之前关闭正在运行的实例。

冷迁移涉及实例的一些停机时间。迁移的实例维护对同一卷和 IP 地址的访问。
冷迁移要求源和目标 Compute 节点都正在运行。
实时迁移
实时迁移涉及将实例从源 Compute 节点移到目标 Compute 节点,而不将其关闭,同时保持状态一致性。

实时迁移实例需要很少或没有明显的停机时间。但是,实时迁移会在迁移操作期间影响性能。因此,在迁移时,实例应该从关键路径中获取。
实时迁移会影响正在移动的工作负载的性能。红帽不支持在实时迁移过程中增加数据包丢失、网络延迟、内存延迟或网络带宽、存储 IO 或 CPU 频率降低。
实时迁移要求源和目标 Compute 节点都在运行。
在某些情况下,实例无法使用实时迁移。如需更多信息,请参阅 迁移限制。
撤离
如果需要迁移实例,因为源 Compute 节点已经失败,您可以撤离实例。
14.3.2. 迁移限制
迁移限制通常随块迁移、配置磁盘或者一个或多个实例访问 Compute 节点上的物理硬件而发生。
CPU 约束
源和目标 Compute 节点必须具有相同的 CPU 架构。例如,红帽不支持将实例从 ppc64le
CPU 迁移到 x86_64
CPU。
不支持在不同 CPU 型号间迁移。在某些情况下,源和目标 Compute 节点的 CPU 必须完全匹配,如使用 CPU 主机透传的实例。在所有情况下,目标节点的 CPU 功能必须是源节点上 CPU 功能的超集。
内存限制
目标 Compute 节点必须有足够的可用 RAM。内存超额订阅可能会导致迁移失败。
块迁移限制
迁移使用 Compute 节点上本地存储的磁盘的实例所花费的时间比迁移使用共享存储的卷支持的实例要长得多,如 Red Hat Ceph Storage。这是因为 OpenStack Compute (nova)默认通过 control plane 网络在 Compute 节点间迁移本地磁盘块。相反,使用共享存储的卷支持的实例(如 Red Hat Ceph Storage)不必迁移卷,因为每个 Compute 节点已经能够访问共享存储。
由迁移消耗大量 RAM 的本地磁盘或实例导致的 control plane 网络中的网络拥塞可能会影响使用 control plane 网络的其他系统的性能,如 RabbitMQ。
只读驱动器迁移限制
只有在驱动器同时具有读写功能时,才支持迁移驱动器。例如,OpenStack Compute (nova)无法迁移 CD-ROM 驱动器或只读配置驱动器。但是,OpenStack Compute (nova)可以迁移具有读写功能的驱动器,包括带有驱动器格式(如 vfat
)的配置驱动器。
实时迁移限制
在某些情况下,实时迁移实例涉及额外的限制。
实时迁移会影响正在移动的工作负载的性能。红帽不提供在实时迁移过程中提高数据包丢失、网络延迟、内存延迟或降低网络带宽、内存带宽、存储 IO 或 CPU 性能的支持。
- 在迁移过程中没有新操作
- 要在源和目标节点上的实例副本之间实现状态一致性,RHOSP 必须在实时迁移过程中防止新操作。否则,如果写入内存的速度比实时迁移复制内存状态更快,实时迁移可能需要很长时间或可能永远不会结束。
- 使用 NUMA 固定 CPU
-
计算配置中的
NovaSchedulerEnabledFilters
参数必须包含AggregateInstanceExtraSpecsFilter
和NUMATopologyFilter
的值。 - 多单元云
- 在多单元云中,您可以将实例实时迁移到同一单元中的不同主机上,但不能在单元格中实时迁移。
- 浮动实例
-
在实时迁移浮动实例时,如果目标 Compute 节点上的
NovaComputeCpuSharedSet
配置与源 Compute 节点上的NovaComputeCpuSharedSet
配置不同,则实例不会分配给目标 Compute 节点上配置为共享(unpinned)实例的 CPU。因此,如果您需要实时迁移浮动实例,您必须为专用(固定)实例配置具有相同 CPU 映射的所有 Compute 节点,或将主机聚合用于共享实例。 - 目标 Compute 节点容量
- 目标 Compute 节点必须有足够的容量来托管您要迁移的实例。
- SR-IOV 实时迁移
- 具有基于 SR-IOV 的网络接口的实例可以实时迁移。使用直接模式 SR-IOV 网络接口实时迁移实例会导致网络停机。这是因为在迁移过程中需要分离和重新附加直接模式接口。
- ML2/OVN 部署中的数据包丢失
ML2/OVN 不支持在没有数据包丢失的情况下进行实时迁移。这是因为 OVN 无法处理多个端口绑定,因此不知道何时迁移端口。
要在实时迁移过程中尽量减少数据包丢失,请将 ML2/OVN 部署配置为在迁移完成后在目标主机上宣布实例:
parameter_defaults: ComputeExtraConfig: nova::workarounds::enable_qemu_monitor_announce_self: true
Copy to clipboardCopiedparameter_defaults: ComputeExtraConfig: nova::workarounds::enable_qemu_monitor_announce_self: true
- ML2/OVS 部署上的实时迁移
要在 ML2/OVS 部署中实时迁移实例时数据包丢失,请将 ML2/OVS 部署配置为启用网络服务(neutron)实时迁移事件,并在迁移完成后声明目标主机上的实例:
parameter_defaults: NetworkExtraConfig: neutron::server::notifications::nova::live_migration_events: true ComputeExtraConfig: nova::workarounds::enable_qemu_monitor_announce_self: true
Copy to clipboardCopiedparameter_defaults: NetworkExtraConfig: neutron::server::notifications::nova::live_migration_events: true ComputeExtraConfig: nova::workarounds::enable_qemu_monitor_announce_self: true
阻止实时迁移的限制
您无法实时迁移使用以下功能的实例。
- PCI 透传
- QEMU/KVM 虚拟机监控程序支持将 Compute 节点上的 PCI 设备附加到实例。使用 PCI 透传为实例提供对 PCI 设备的独占访问权限,其显示和行为就像它们被物理附加到实例的操作系统一样。但是,因为 PCI 透传涉及直接访问物理设备,QEMU/KVM 不支持使用 PCI 透传进行实例实时迁移。
- 端口资源请求
您无法实时迁移使用具有资源请求的端口的实例,如保证的最小带宽 QoS 策略。使用以下命令检查端口是否有资源请求:
openstack port show <port_name/port_id>
Copy to clipboardCopied$ openstack port show <port_name/port_id>
14.3.3. 准备迁移
在迁移一个或多个实例之前,您需要确定 Compute 节点名称和要迁移的实例的 ID。
流程
识别源 Compute 节点主机名和目标 Compute 节点主机名:
source ~/overcloudrc openstack compute service list
Copy to clipboardCopied(undercloud)$ source ~/overcloudrc (overcloud)$ openstack compute service list
列出源 Compute 节点上的实例,并找到您要迁移的实例或实例的 ID:
openstack server list --host <source> --all-projects
Copy to clipboardCopied(overcloud)$ openstack server list --host <source> --all-projects
将
<source>
替换为源 Compute 节点的名称或 ID。可选: 如果要将实例从源 Compute 节点迁移到节点上执行维护,您必须禁用该节点,以防止调度程序在维护期间将新实例分配给节点:
openstack compute service set <source> nova-compute --disable
Copy to clipboardCopied(overcloud)$ openstack compute service set <source> nova-compute --disable
将
<source
> 替换为源 Compute 节点的主机名。
14.3.4. 冷迁移实例
冷迁移实例涉及停止实例并将其移动到另一个 Compute 节点。冷迁移有助于实时迁移无法促进的迁移方案,如迁移使用 PCI 直通的实例。调度程序自动选择目标 Compute 节点。如需更多信息,请参阅 迁移限制。
流程
要冷迁移实例,请输入以下命令关闭并移动实例:
openstack server migrate <instance> --wait
Copy to clipboardCopied(overcloud)$ openstack server migrate <instance> --wait
-
将
<instance
> 替换为要迁移的实例的名称或 ID。 -
如果迁移本地存储的卷,则指定
--block-migration
标记。
-
将
- 等待迁移完成。等待实例迁移完成后,您可以检查迁移状态。如需更多信息,请参阅 检查迁移状态。
检查实例的状态:
openstack server list --all-projects
Copy to clipboardCopied(overcloud)$ openstack server list --all-projects
"VERIFY_RESIZE"状态表示您需要确认或恢复迁移:
如果迁移按预期工作,请确认它:
openstack server resize --confirm <instance>
Copy to clipboardCopied(overcloud)$ openstack server resize --confirm <instance>
将
<instance
> 替换为要迁移的实例的名称或 ID。"ACTIVE"状态表示实例已就绪。如果迁移无法正常工作,请恢复它:
openstack server resize --revert <instance>
Copy to clipboardCopied(overcloud)$ openstack server resize --revert <instance>
将
<instance
> 替换为实例的名称或 ID。
重启实例:
openstack server start <instance>
Copy to clipboardCopied(overcloud)$ openstack server start <instance>
将
<instance
> 替换为实例的名称或 ID。可选:如果您为维护禁用了源 Compute 节点,您必须重新启用该节点,以便可以把新实例分配给该节点:
openstack compute service set <source> nova-compute --enable
Copy to clipboardCopied(overcloud)$ openstack compute service set <source> nova-compute --enable
将
<source
> 替换为源 Compute 节点的主机名。
14.3.5. 实时迁移实例
实时迁移将实例从源 Compute 节点移动到目标 Compute 节点,停机时间最少。实时迁移可能并不适用于所有实例。如需更多信息,请参阅 迁移限制。
流程
要实时迁移实例,请指定实例和目标 Compute 节点:
openstack server migrate <instance> --live-migration [--host <dest>] --wait
Copy to clipboardCopied(overcloud)$ openstack server migrate <instance> --live-migration [--host <dest>] --wait
-
将
<instance
> 替换为实例的名称或 ID。 将
<dest>
替换为目标 Compute 节点的名称或 ID。注意openstack server migrate
命令涵盖使用共享存储迁移实例,这是默认设置。指定用于迁移本地存储的卷的--block-migration
标志:openstack server migrate <instance> --live-migration [--host <dest>] --wait --block-migration
Copy to clipboardCopied(overcloud)$ openstack server migrate <instance> --live-migration [--host <dest>] --wait --block-migration
-
将
确认实例正在迁移:
openstack server show <instance>
Copy to clipboardCopied(overcloud)$ openstack server show <instance> +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | ... | ... | | status | MIGRATING | | ... | ... | +----------------------+--------------------------------------+
- 等待迁移完成。等待实例迁移完成后,您可以检查迁移状态。如需更多信息,请参阅 检查迁移状态。
检查实例的状态,以确认迁移是否成功:
openstack server list --host <dest> --all-projects
Copy to clipboardCopied(overcloud)$ openstack server list --host <dest> --all-projects
将
<dest>
替换为目标 Compute 节点的名称或 ID。可选:如果您为维护禁用了源 Compute 节点,您必须重新启用该节点,以便可以把新实例分配给该节点:
openstack compute service set <source> nova-compute --enable
Copy to clipboardCopied(overcloud)$ openstack compute service set <source> nova-compute --enable
将
<source
> 替换为源 Compute 节点的主机名。
14.3.6. 检查迁移状态
迁移涉及迁移完成前的几个状态转换。在正常运行的迁移期间,迁移状态通常会有如下变换:
- Queued : 计算服务接受迁移实例的请求,并且迁移处于待处理状态。
- Preparing: Compute 服务正在准备迁移实例。
- Running: 计算服务正在迁移实例。
- post-igrating : 计算服务已在目标 Compute 节点上构建实例,并在源 Compute 节点上释放资源。
- completed : Compute 服务已完成迁移实例,并在源 Compute 节点上释放资源。
流程
检索实例的迁移 ID 列表:
nova server-migration-list <instance>
Copy to clipboardCopied$ nova server-migration-list <instance> +----+-------------+----------- (...) | Id | Source Node | Dest Node | (...) +----+-------------+-----------+ (...) | 2 | - | - | (...) +----+-------------+-----------+ (...)
将
<instance
> 替换为实例的名称或 ID。显示迁移的状态:
nova server-migration-show <instance> <migration_id>
Copy to clipboardCopied$ nova server-migration-show <instance> <migration_id>
-
将
<instance
> 替换为实例的名称或 ID。 将
<migration_id
> 替换为迁移的 ID。运行
nova server-migration-show
命令返回以下示例输出:+------------------------+--------------------------------------+ | Property | Value | +------------------------+--------------------------------------+ | created_at | 2017-03-08T02:53:06.000000 | | dest_compute | controller | | dest_host | - | | dest_node | - | | disk_processed_bytes | 0 | | disk_remaining_bytes | 0 | | disk_total_bytes | 0 | | id | 2 | | memory_processed_bytes | 65502513 | | memory_remaining_bytes | 786427904 | | memory_total_bytes | 1091379200 | | server_uuid | d1df1b5a-70c4-4fed-98b7-423362f2c47c | | source_compute | compute2 | | source_node | - | | status | running | | updated_at | 2017-03-08T02:53:47.000000 | +------------------------+--------------------------------------+
Copy to clipboardCopied+------------------------+--------------------------------------+ | Property | Value | +------------------------+--------------------------------------+ | created_at | 2017-03-08T02:53:06.000000 | | dest_compute | controller | | dest_host | - | | dest_node | - | | disk_processed_bytes | 0 | | disk_remaining_bytes | 0 | | disk_total_bytes | 0 | | id | 2 | | memory_processed_bytes | 65502513 | | memory_remaining_bytes | 786427904 | | memory_total_bytes | 1091379200 | | server_uuid | d1df1b5a-70c4-4fed-98b7-423362f2c47c | | source_compute | compute2 | | source_node | - | | status | running | | updated_at | 2017-03-08T02:53:47.000000 | +------------------------+--------------------------------------+
提示OpenStack 计算服务会根据要复制的剩余内存字节数来测量迁移的进度。如果这个数字没有随着时间的推移而减少,迁移可能无法完成,计算服务可能会中止。
-
将
有时,实例迁移需要很长时间或遇到错误。如需更多信息,请参阅故障排除迁移。
14.3.7. 清空实例
如果要将实例从死机或关闭的 Compute 节点移动到同一环境中的新主机,您可以撤离它。
撤离过程会破坏原始实例,并使用原始镜像、实例名称、UUID、网络地址以及原始实例分配的任何其他资源在另一个 Compute 节点上重建它。
如果实例使用共享存储,则不会在撤离过程中重新构建实例根磁盘,因为该磁盘仍然可以被目标 Compute 节点访问。如果实例不使用共享存储,则目标 Compute 节点上也会重新构建实例根磁盘。
-
您只能在 Compute 节点被隔离时执行撤离,并且 API 报告 Compute 节点的状态为"down"或"forced-down"。如果 Compute 节点没有报告为"down"或"forced-down",则
evacuate
命令会失败。 - 要执行撤离,您必须是云管理员。
14.3.7.1. 清空一个实例
您可以一次撤离一个实例。
流程
确认实例没有运行:
openstack server list --host <node> --all-projects
Copy to clipboardCopied(overcloud)$ openstack server list --host <node> --all-projects
-
将
<node
> 替换为托管实例的 Compute 节点的名称或 UUID。
-
将
确认主机 Compute 节点已被隔离或关闭:
openstack baremetal node show <node>
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack baremetal node show <node>
-
将
<node
> 替换为托管要撤离实例的 Compute 节点的名称或 UUID。要执行撤离,Compute 节点必须处于down
或forced-down
状态。
-
将
禁用 Compute 节点:
openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
-
将
<node
> 替换为要撤离实例的 Compute 节点的名称。 -
将
<disable_host_reason
> 替换为您为什么禁用 Compute 节点的详情。
-
将
撤离实例:
nova evacuate [--password <pass>] <instance> [<dest>]
Copy to clipboardCopied(overcloud)[stack@director ~]$ nova evacuate [--password <pass>] <instance> [<dest>]
可选:将
<pass
> 替换为访问 evacuated 实例所需的管理密码。如果没有指定密码,则生成随机密码并在撤离完成后输出。注意只有在临时实例磁盘存储在本地虚拟机监控程序磁盘时,才会更改密码。如果实例托管在共享存储上,或者附加了 Block Storage 卷,则不会更改密码,且不会显示错误消息来告知您密码没有被改变。
-
将
<instance
> 替换为要撤离的实例的名称或 ID。 可选:将 &
lt;dest
> 替换为要撤离实例的 Compute 节点的名称。如果没有指定目标 Compute 节点,计算调度程序会为您选择一个。您可以使用以下命令查找可能的 Compute 节点:openstack hypervisor list
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack hypervisor list
可选:在恢复时启用 Compute 节点:
openstack compute service set \ <node> nova-compute --enable
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack compute service set \ <node> nova-compute --enable
-
将
<node
> 替换为要启用的 Compute 节点的名称。
-
将
14.3.7.2. 清空主机上的所有实例
您可以撤离指定 Compute 节点上的所有实例。
流程
确认要撤离的实例没有运行:
openstack server list --host <node> --all-projects
Copy to clipboardCopied(overcloud)$ openstack server list --host <node> --all-projects
-
将
<node
> 替换为托管要撤离实例的 Compute 节点的名称或 UUID。
-
将
确认主机 Compute 节点已被隔离或关闭:
openstack baremetal node show <node>
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack baremetal node show <node>
-
将
<node
> 替换为托管要撤离实例的 Compute 节点的名称或 UUID。要执行撤离,Compute 节点必须处于down
或forced-down
状态。
-
将
禁用 Compute 节点:
openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
-
将
<node
> 替换为 Compute 节点的名称,以便从中撤离实例。 -
将
<disable_host_reason
> 替换为您为什么禁用 Compute 节点的详情。
-
将
撤离指定 Compute 节点上的所有实例:
nova host-evacuate [--target_host <dest>] <node>
Copy to clipboardCopied(overcloud)[stack@director ~]$ nova host-evacuate [--target_host <dest>] <node>
可选:将
<dest
> 替换为目标 Compute 节点的名称,以撤离实例。如果没有指定目的地,计算调度程序会为您选择一个。您可以使用以下命令查找可能的 Compute 节点:openstack hypervisor list
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack hypervisor list
-
将
<node
> 替换为 Compute 节点的名称,以便从中撤离实例。
可选:在恢复时启用 Compute 节点:
openstack compute service set \ <node> nova-compute --enable
Copy to clipboardCopied(overcloud)[stack@director ~]$ openstack compute service set \ <node> nova-compute --enable
-
将
<node
> 替换为要启用的 Compute 节点的名称。
-
将
14.3.8. 迁移故障排除
实例迁移过程中可能会出现以下问题:
- 迁移过程遇到错误。
- 迁移过程永远不结束。
- 迁移后实例的性能会下降。
14.3.8.1. 在迁移过程中出错
以下问题可使迁移操作进入错误
状态:
- 使用不同版本的 Red Hat OpenStack Platform (RHOSP)运行集群。
- 指定无法找到的实例 ID。
-
您尝试迁移的实例
处于错误状态
。 - Compute 服务正在关闭。
- 发生争用情形。
-
实时迁移进入
失败
状态。
当实时迁移进入失败
状态时,通常会随之进入错误
状态。以下常见问题可能导致失败
状态:
- 目标 Compute 主机不可用。
- 发生调度程序异常。
- 由于计算资源不足,重新构建过程失败。
- 服务器组检查失败。
- 源 Compute 节点上的实例在迁移到目标 Compute 节点完成前被删除。
14.3.8.2. 永不结束的实时迁移
实时迁移可能无法完成,这会使迁移处于 持续运行
状态。实时迁移从未完成的一个常见原因是对源 Compute 节点上运行的实例的客户端请求创建更改的速度快于计算服务可以将其复制到目标 Compute 节点的速度。
使用以下方法之一应对这种情况:
- 中止实时迁移。
- 强制实时迁移完成。
中止实时迁移
如果实例状态变化比迁移步骤将其复制到目标节点更快,且您不想临时暂停实例操作,您可以中止实时迁移。
流程
检索实例的迁移列表:
nova server-migration-list <instance>
Copy to clipboardCopied$ nova server-migration-list <instance>
将
<instance
> 替换为实例的名称或 ID。中止实时迁移:
nova live-migration-abort <instance> <migration_id>
Copy to clipboardCopied$ nova live-migration-abort <instance> <migration_id>
-
将
<instance
> 替换为实例的名称或 ID。 -
将
<migration_id
> 替换为迁移的 ID。
-
将
强制实时迁移完成
如果实例状态变化比迁移步骤将其复制到目标节点更快,并且希望临时暂停实例操作来强制迁移完成,您可以强制完成实时迁移过程。
强制完成实时迁移可能导致明显的停机时间。
流程
检索实例的迁移列表:
nova server-migration-list <instance>
Copy to clipboardCopied$ nova server-migration-list <instance>
将
<instance
> 替换为实例的名称或 ID。强制实时迁移完成:
nova live-migration-force-complete <instance> <migration_id>
Copy to clipboardCopied$ nova live-migration-force-complete <instance> <migration_id>
-
将
<instance
> 替换为实例的名称或 ID。 -
将
<migration_id
> 替换为迁移的 ID。
-
将
14.3.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 已经具有使用了一些资源的实例,则实例可能会正确运行,但性能将下降。如需更多信息,请参阅 迁移限制。