Enhanced VMotion Compatibility (EVC) 功能介绍和实战设置 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

什么是Enhanced VMotion Compatibility 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 层面上兼容,如果不兼容,不会允许服务器加入的,提高了自动化程度。

 

特别注意: AMD Intel 之间无法实现 EVC

 

实战上的设置

 

设置上比较简单,请注意以下事项:

 

  1. ESX Server 升级到 3.5.0 Update 2 以上, Virtual Center 升级到 VC 2.5.0 Update 2 以上

  2. BIOS Processor Option 打开 VT XD 二个开关

  3. Cluster EVC 选项上选择 Enable 即可。

 

如果要在旧的 Cluster 启用 EVC 支持,必须将 Cluster 中所有 Host 上的虚拟机全部关闭,实际生产环境中较难做到。我的解决方法是新建一个 Cluster ,将每一台 Host 上的虚拟机热迁到其他 Host 上后,重启这台空闲的 Host ,在 BIOS 中打开 VT XD 开关后,将其移入新建的 Cluster 中,并将原先在其之上的所有虚拟机在热迁回来。每台 Host 均如此操作,直至所有 Host 移入 EVC Enabled Cluster 中。

 

 

参考文章:

 

Enhanced VMotion Compatibility (EVC) processor support