什么是Enhanced VMotion Compatibility (EVC)?增强型 vMotion 兼容性
可以使用增强型 vMotion 兼容性 (Enhanced vMotion Compatibility, EVC) 功能帮助确保群集内主机的 vMotion 兼容性。EVC 可以确保群集内的所有主机向虚拟机提供相同的 CPU 功能集,即使这些主机上的实际 CPU 不同也是如此。使用 EVC 可避免因 CPU 不兼容而导致通过 vMotion 迁移失败。
在“群集设置”对话框中配置 EVC。配置 EVC 时,请将群集中的所有主机处理器配置为提供基准处理器的功能集。这种基准功能集称为 EVC 模式。EVC 利用 AMD-V Extended Migration 技术(适用于 AMD 主机)和 Intel FlexMigration 技术(适用于 Intel 主机)屏蔽处理器功能,以便主机可提供早期版本的处理器的功能集。EVC 模式必须等同于群集中具有最小功能集的主机的功能集,或为主机功能集的子集。
EVC 只会屏蔽影响 vMotion 兼容性的处理器功能。启用 EVC 不会妨碍虚拟机利用更快处理器速度、更多 CPU 内核或在较新的主机上可能可用的硬件虚拟化支持。
EVC 无法在任何情况下都阻止虚拟机访问隐藏的 CPU 功能。未遵循 CPU 供应商推荐的功能检测方法的应用程序可能在 EVC 环境中会行为异常。此类行为异常的应用程序未遵照 CPU 供应商建议,无法支持 VMware EVC。
通过CPU硬件底层支持的在线热迁移方案(Intel 通过Flex Migration实现,AMD通过Extended Migration实现),允许虚拟层面上支持CPUID 掩码功能,屏蔽某些CPU功能,通过强制CPU指令集兼容来实现不同CPU系列之间的在线热迁。
看起来有些不是很好理解,简单举个例子吧。大家都知道Vmotion功能在实战中的意义是非常重要的,但是Vmotion对于CPU的要求比较苛刻,对于不同系列CPU是无法自动实现Vmotion的功能,比如在HP 380G4和HP380G5之间不通过人工修改是绝对无法实现Vmotion的。在VI的实施过程中,会碰到一个群组里面的服务器CPU不同的情况。比如三个月前买的服务器是基于Intel 53xx的CPU,由于应用的扩大,需要给群组添加新的服务器,而新购买的服务器是基于Intel 54xx的CPU,由于Intel 54xx CPU 增加了SSE4.1指令集,导致新服务器加入群组后,无法实现虚拟机从旧服务器到新服务器的在线热迁(VMotion)。
没有EVC之前,解决方案是通过手工计算CPU Masking,逐个修改每个虚拟机的配置文件或者全局修改VC服务器上的vpxd.cfg 来实现不同系列CPU之间兼容性的问题。
这样做的缺点是需要人工设计对于群组中所有服务器兼容的CPU Masking,并且,当群组中有新的服务器加入后,为了避免可能的不兼容情况,需要再次手工计算一个新的CPU Masking。
当VI推出EVC 之后,以上所有的手工工作都由VC和ESX Server完成了。vmware通过和CPU厂商的合作,通过在硬件底层上直接支持CPUID 掩码功能。
这样的好处显而易见,一是避免了繁琐的人工干预部分,提高了系统的稳定性。二是当群组中有新的服务器加入的话,VC 会自动判别是否新服务器与群组在Vmotion层面上兼容,如果不兼容,不会允许服务器加入的,提高了自动化程度。
|