Enhanced VMotion Compatibility (EVC) 功能介绍和实战设置
什么是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
实战上的设置
设置上比较简单,请注意以下事项:
- ESX Server升级到3.5.0 Update 2以上,Virtual Center升级到VC 2.5.0 Update 2以上
- 在BIOS中Processor Option中
打开VT 和XD 二个开关 - 在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
本文转自VMSKY rolandliu http://bbs.vmsky.com/viewthread.php?tid=18295&highlight=EVC