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