KVM虛擬化漸趨成熟 可與XEN和Vmware比肩
虛擬化技術企業數據中心整合、云計算,特別是云計算基礎設施服務即IaaS服務中,已經成為一個至關重要的技術??梢哉f,虛擬化技術是絕大多數IaaS服務的基礎。在虛擬化方面有很多種解決方案:如VMware ESXi、微軟HyperV,開源的如VirtualBox、Xen和KVM。作為公有云服務和私有云建設的核心技術,虛擬化一直受到業內關注,也因此一直在發展和進步。。早期國外云主機服務商和幾乎所有國內云主機服務商一直使用Xen虛擬化技術, 而KVM憑借其近幾年的發展被linkcloud和眾多新興的國外IaaS公司所采用。KVM和Xen孰優孰劣?本文對此做一探討。
KVM作為linux虛擬化技術的后起之秀,憑借其性能和實施的簡易性,以及對Linux重量級的持續支持,已經受到許多linux廠商-包括Red Hat和Canonical等的青睞。昔日的老大哥XEN的技術倡導者們則聲稱XEN的性能強勁,并且擁有一個廣泛的管理工具和能夠交付卓越性能,以及其它諸多優點。筆者對KVM和XEN分別進行了測試比較。
首先我們來看XEN陣營的支持者的理由。作為開源的虛擬化技術,對比Xen和KVM可以看到,Xen以5個優勢領先:更好的可用資源、平臺支持、可管理性、實施、性能基準。
可用資源:Xen的問世要比KVM早4年之久(兩者分別是2003年和2007年)。隨著Citrix、Novell、Oracle、Sun、Ret Hat和Virtual Iron等公司在市場領域的實施,就比較容易找到精通Xen的IT技術人員,更容易讓這些技術人員接受Xen相關的培訓、更容易得到Xen的咨詢幫助以及獲得Xen證書。
平臺支持:Xen在新版本中支持更多的主機和客體工作環境,包括泛虛擬化技術、硬件輔助支持以及修改過或未修改過的客體操作系統;對UNIX、Linux和Microsoft Windows的特定支持;包括芯片組,如x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商家和Intel嵌入式的支持等。
可管理性:EMA在2009年度針對虛擬系統管理的研究結果表明:對于83%的企業來講,在選擇虛擬化技術過程中,管理是一項非常關鍵或者重要的因素。在對比Xen和KVM時,就可以看到Xen具有一個更加寬泛的第三方配給、備份、存儲管理、P2V、容量規劃、性能監控、進程自動化、安全和其它管理規則的社區,比如Citrix、IBM、CA、Novell或者Platespin、Enomaly、Microsoft以及HP等。
實施:無論KVM是"第一類"還是"第二類",這都是語義上的概念。Xen的運行和管理都是在較低級別的(Ring 0)。甚至對于新虛擬機創建,客體機器并不需要像KVM那樣共享內存塊、CPU指令或者任何底層的Linux操作系統(雖然偶爾也會越權)。
性能:大多數Xen和KVM性能基準的對比都表明Xen具有更好的處理性能(接近于本地處理),只有在磁盤I/O方面略遜于KVM。進一步來講,獨立測試表明隨著工作負載的增加KVM的性能逐漸下降。通常情況下,在試圖支持四個以上的客體虛擬機時就會崩潰。Xen支持一個客體虛擬機的數量呈線性增長,可以支持30個以上工作負載同時運行。
但是眾多廠商作為支持KVM的支持陣營,究竟是什么吸引了他們呢?他們力捧的KVM究竟勝在哪里?
筆者發現即使沒有實施廣泛的Xen和KVM性能基準研究,仍然有很多理由足以說明Linux領導者(諸如Red Hat和Ubuntu)對待KVM態度的原因。其中最明顯并且最重要的因素就是KVM是Linux內核的一部分,Xen是一個安裝在Linux內核下層的獨立內核。
為什么這一點如此重要呢?其之所以重要是因為在過去Xen工作環境的補丁包不能夠和Linux內核兼容。但是如果實施KVM的話,這個問題就可以很容易地得到解決。另外一個選擇KVM的原因是KVM在Linux內核內部部署,這樣可以很容易控制虛擬化進程。
Xen的擁護者們聲稱KVM不如Xen技術成熟,并且缺少某些關鍵特性,如動態遷移和泛虛擬化支持。確實如此,Xen工作環境中的泛虛擬化技術可以使虛擬機的操作更加高效,因為泛虛擬化技術直接和硬件進行交互。然而使用泛虛擬化技術需要修改操作系統,默認Windows的安裝并不支持泛虛擬化工作環境。至于動態遷移,KVM也可以做到,只是需要安裝正確的KVM版本而已。KVM過去在動態遷移方面確實存在一個問題,但是現在已經解決了。
據LinkCloud介紹,KVM更加靈活。由于操作系統直接和整合到Linux內核中的虛擬化管理程序交互,所以在任何場景下都可以直接和硬件進行交互,而不需要修改虛擬化的操作系統。這一點非常重要,因為對虛擬機運行來講KVM可以是一個更快的解決方案。KVM需要Pacifica(AMD)或者Vanderpool(Intel)虛擬化CPU這一事實現在已經不能成為KVM發展的限制條件,因為當前大多數服務器CPU都有這些處理器。
支持不選擇KVM虛擬化技術的一個可信原因是Xen相對來講歷史更久一點,產品更加成熟些。但是長遠來看,Xen將會使Linux內核的負擔越來越重,因為Xen缺少很好的整合(并且以后也不會解決這個問題),盡管Xen的開發者們正在積極地解決這個整合問題。
最后一點是KVM是Linux內核的一部分,而Xen做到最好也無非是整合到Linux中。隨著時間的推移,Ret Hat(目前掌握KVM技術),作為Linux企業市場中份額最大的企業,將會使虛擬化技術的后來者--KVM同Xen一樣功能齊全。我相信未來虛擬化市場必定是KVM的。
LinkCloud介紹,KVM在Linux整合中要優于Xen。它不需要重新編譯內核,也不需要對當前kernel做任何修改,它只是幾個可以動態加載的.ko模塊。它結構更加精簡、代碼量更小。所以,出錯的可能性更小。并且在某些方面,性能比Xen更勝一籌。
目前國內的企業大都是運用XEN技術運營,特別是幾乎所有的云主機服務商,包括阿里云,盛大云,萬網云等,而使用KVM就只有linkcloud一家,據筆者了解,linkcloud的技術團隊做云計算運營的時間比較久,其08年就在國內率先使用XEN來做規?;纳虡I運營,直至11年該團隊創立linkcloud后率先使用KVM為基礎運營云主機,作為一家引領行業運營技術的技術團隊,其舉動是否暗示了未來的虛擬化市場是KVM占主導地位?結論尚未可知。linkcloud率先在國內使用KVM來運營,是否能因為采納該項技術而提高產品的競爭力,更好的服務于客戶,或對行業技術趨勢起到引領作用,讓我們拭目以待!