11.2. 迁移限制
在某些情况下,迁移虚拟机涉及其他限制。迁移限制通常随块迁移、配置磁盘或一个或多个虚拟机在 Compute 节点上访问物理硬件而出现。
CPU 限制
源和目标 Compute 节点必须具有相同的 CPU 架构。例如,红帽不支持将虚拟机从 x86_64 CPU 迁移到 ppc64le CPU。在某些情况下,源和目标 Compute 节点的 CPU 必须完全匹配,如使用 CPU 主机传递的虚拟机。在所有情况下,目标节点的 CPU 功能必须是源节点上 CPU 功能的超集。此外,当虚拟机使用 CPU 固定时,源节点上使用的 NUMA 节点必须以目标 Compute 节点上的相同 NUMA 节点为目标,且 NUMA 节点必须为空。
内存限制
目标 Compute 节点必须有足够可用的 RAM。内存超额订阅可能导致迁移失败。此外,使用 NUMA 拓扑的虚拟机在目标 Compute 节点的相同 NUMA 节点上必须有足够可用的 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 中还有一些实时迁移限制:
- 迁移期间没有新操作:为了在源和目标节点上的虚拟机副本之间实现状态一致性,Red Hat OpenStack Platform 必须在实时迁移期间阻止新操作。否则,如果写入内存的速度比实时迁移复制内存状态的速度更快,则实时迁移可能要很长时间或可能永远不会结束。
-
非一致内存访问 (NUMA):在以前的发行版本中,不建议在使用 NUMA 拓扑配置时迁移虚拟机。目前,
nova可使用 NUMA 拓扑完全迁移虚拟机,但受到一些限制。 - CPU 固定:当某个类别使用 CPU 固定时,该类别将 NUMA 拓扑隐式引入虚拟机,并将其 CPU 和内存映射到特定主机 CPU 和内存。简单 NUMA 拓扑和 CPU 固定之间的差异在于 NUMA 使用多种 CPU 内核,而 CPU 固定使用特定 CPU 内核。有关其他详细信息,请参阅 CPU 固定。
-
数据平面开发套件 (DPDK):当虚拟机使用 DPDK 时,如使用
dpdk-netdev运行 Open vSwitch 的虚拟机,该虚拟机也使用施加 NUMA 拓扑的大页面,使得nova将虚拟机固定到 NUMA 节点上。
nova 可以迁移使用 NUMA、CPU 固定和 DPDK 的虚拟机。但是,目标 Compute 节点在虚拟机在源 Compute 节点上使用的相同 NUMA 节点上必须具有足够的容量。例如,如果某虚拟机在 overcloud-compute-0 上使用 NUMA 0,则在将该虚拟机迁移到 overcloud-compute-1 时,必须确保 overcloud-compute-1 在 NUMA 0 上有足够的容量来支持虚拟机以便使用实时迁移。
阻止实时迁移的限制
在某些情况下,虚拟机配置会阻止在 Red Hat OpenStack Platform 中进行实时迁移:
-
单根输入/输出虚拟化 (SR-IOV):您可以将 SR-IOV 虚拟功能 (VF) 分配给虚拟机。但是,这会阻止实时迁移。与一般的规网络设备不同,SR-IOV VF 网络设备没有永久固定的 MAC 地址。每当 Compute 节点重启,或
nova-scheduler将虚拟机迁移到新的 Compute 节点时,VF 网络设备都会收到新的 MAC 地址。因此,nova无法在 OpenStack Platform 15 中实时迁移使用 SR-IOV 的虚拟机。必须冷迁移使用 SR-IOV 的虚拟机。 -
PCI 透传(passthrough):QEMU/KVM 虚拟机监控程序支持将 Compute 节点上的 PCI 设备附加到虚拟机。PCI 透传允许虚拟机对 PCI 设备进行独占访问,就像是以物理方式附加到虚拟机的操作系统一样。但是,由于 PCI 透传涉及物理地址,
nova不支持在 OpenStack Platform 15 中使用 PCI 透传实时迁移虚拟机。