vCenter Server 的 CPU 兼容性检查可比较源主机上可用的 CPU 功能、虚拟机可访问的功能子集以及目标主机上可用的功能。不使用 EVC 时,不管虚拟机是否能够访问这些功能,主机的用户级功能之间存在任何不匹配都会阻止迁移。但是,仅当虚拟机可以访问目标主机未提供的功能时,主机的内核级功能间的不匹配才会阻止迁移。
用户级功能是虚拟机应用程序使用的非特权指令。这些指令包括 SSE3、SSSE3、SSE4.1、SSE4.2 和 AES。因为它们属于跳过虚拟化层的用户级指令,如果在通过 vMotion 迁移后出现不匹配,这些指令可能会导致应用程序不稳定。
内核级功能是虚拟机操作系统使用的特权指令。这些指令包括 AMD No eXecute (NX) 和 Intel eXecute Disable (XD) 安全功能。
尝试通过 vMotion 迁移虚拟机时,会出现以下情况之一:
- 目标主机功能集与虚拟机的 CPU 功能集相匹配。满足 CPU 兼容性要求,可继续通过 vMotion 迁移。
- 虚拟机的 CPU 功能集包含目标主机不支持的功能。不满足 CPU 兼容性要求,无法继续通过 vMotion 迁移。
注: 通过为集群中运行的所有虚拟机提供“基准”功能集,EVC 解决了这些不兼容问题。此基准功能集会向虚拟机隐藏集群主机 CPU 之间的差异。
- 目标主机支持虚拟机的功能集,且在虚拟机的功能集中找不到其他用户级功能(如 SSE4.1)。不满足 CPU 兼容性要求,无法继续通过 vMotion 迁移。
注: 对于 EVC 集群中主机之间的迁移,将忽略此类不兼容情况。
- 目标主机支持虚拟机的功能集,且在虚拟机的功能集中找不到其他内核级功能(例如 NX 或 XD)。满足 CPU 兼容性要求,可继续通过 vMotion 迁移。虚拟机保持启动状态时会保留其 CPU 功能集,从而可以自由迁移回原始主机。但是,如果重新引导虚拟机,它将从新主机中获取新的功能集。如果尝试将该虚拟机迁移回原始主机,此过程可能会导致 vMotion 不兼容。