13.2. 迁移限制

在某些情况下,迁移虚拟机涉及其他限制。迁移限制通常随块迁移、配置磁盘或一个或多个虚拟机在 Compute 节点上访问物理硬件而出现。

CPU 限制

源和目标 Compute 节点必须具有相同的 CPU 架构。例如,红帽不支持将虚拟机从 x86_64 CPU 迁移到 ppc64le CPU。在某些情况下,源和目标 Compute 节点的 CPU 必须完全匹配,如使用 CPU 主机传递的虚拟机。在所有情况下,目标节点的 CPU 功能必须是源节点上 CPU 功能的超集。

内存限制

目标 Compute 节点必须有足够可用的 RAM。内存超额订阅可能导致迁移失败。

块迁移限制

迁移使用 Compute 节点上本地存储磁盘的虚拟机所花的时间,比迁移使用基于共享存储卷(如 Red Hat Ceph Storage)的虚拟机要长得多。

这是因为,nova 默认在 Compute 节点之间通过 control plane 网络逐块迁移本地磁盘。相反,使用 Red Hat Ceph Storage 等共享存储的卷的实例不必迁移卷,因为每个 Compute 节点已经能够访问共享存储。

注意

由迁移占用大量 RAM 的本地磁盘或虚拟机而导致的 control plane 网络中的网络拥塞可能影响使用 control plane 网络的其他系统(如 RabbitMQ)的性能。

只读驱动器迁移限制

仅在驱动器同时具有读取写入功能时,支持迁移。例如,nova 无法迁移 CD-ROM 驱动器或只读配置驱动器。但是,nova 可迁移同时具有读取和写入功能的驱动器,包括格式为 vfat 等的配置驱动器。

实时迁移限制

另外还有一些实时迁移限制:

  • 迁移期间没有新操作:为了在源和目标节点上的虚拟机副本之间实现状态一致性,Red Hat OpenStack Platform 必须在实时迁移期间阻止新操作。否则,如果写入内存的速度比实时迁移复制内存状态的速度更快,则实时迁移可能要很长时间或可能永远不会结束。
  • 用 NUMA 固定 CPU:来源和目的地 Compute 节点必须最少是 RHOSP 16.0。
  • 目的地 Compute 节点容量:目的地 Compute 节点必须有足够的容量来托管您要迁移的虚拟机 (VM)。
  • SR-IOV 实时迁移: 使用基于 SR-IOV 的网络接口的实例可实时迁移。如果实时迁移实例连接了直接模式 SR-IOV 网络接口,则在直接模式接口脱离和重新连接时会导致网络停机。

阻止实时迁移的限制

在以下情况下,虚拟机配置会阻止在 Red Hat OpenStack Platform 中进行实时迁移:

  • PCI 透传(passthrough):QEMU/KVM 虚拟机监控程序支持将 Compute 节点上的 PCI 设备附加到虚拟机。PCI 透传允许虚拟机对 PCI 设备进行独占访问,就像是以物理方式附加到虚拟机的操作系统一样。但是,由于 PCI 透传涉及物理地址,所以nova 不支持在 OpenStack Platform 16.0 中使用 PCI 透传实时迁移虚拟机。