Xen和KVM都是開源的虛拟化技術。Xen的實作方法是,運作支援Xen功能的kernel,這個kernel是工作在Xen的控制之下,叫做Domain0,使用這個kernel啟動機器後,你可以在這個機器上使用qemu軟體,虛拟出多個系統。Xen的缺點是,如果你需要更新Xen的版本,你需要重新編譯整個核心,而且稍有設定不慎系統就無法啟動。
相比較,KVM就比較簡化。它不需要重新編譯核心,也不需要對目前kernel做任何修改,它隻是幾個可以動态加載的.ko子產品(kvm和kvm-intel)。它結構更加精簡,代碼量更小,是以出錯的可能性更小。并且在某些方面,性能比Xen更勝一籌。
具體來說,Xen具有以下幾個優勢:
可用資源:Xen的問世要比KVM早4年之久(兩者分别是2003年和2007年)。随着Citrix、Novell、Oracle、Sun、Ret Hat和Virtual Iron等公司在市場領域的實施,就比較容易找到精通Xen的IT技術人員,更容易讓這些技術人員接受Xen相關的教育訓練、更容易得到Xen的咨詢幫助以及獲得Xen證書。企業管理協會(EMA:Enterprise Management Associates)2008年這對虛拟化和管理趨勢的研究報告表明,這些關鍵因素占到那些抱怨缺少必要虛拟化技術資源和技術企業的60%。
平台支援: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等。
實施:Xen的運作和管理都是在Ring 0級别。甚至對于新虛拟機建立,客體機器并不需要像KVM那樣共享記憶體塊、CPU指令或者任何底層的Linux作業系統(雖然偶爾也會越權)。
支援動态遷移:過去在證明VMware ESX比Microsoft Hyper-V優越的最重要的一個觀點也同樣适用于Xen和KVM的比較,但是這是一個很大的問題。與KVM不同,Xen支援非中斷的動态遷移,可以允許動态工作負載平衡和例行維護而幾乎沒有任何當機時間。KVM的固有屬性決定了其肯定有當機時間。
性能:大多數Xen和KVM性能基準的對比都表明 Xen具有更好的處理性能(接近于本地處理),隻有在磁盤I/O方面略遜于KVM。進一步來講,獨立測試表明随着工作負載的增加KVM的性能逐漸下降。通常情況下,在試圖支援四個以上的客體虛拟機時就會崩潰。Xen支援一個客體虛拟機的數量呈線性增長,可以支援30個以上工作負載同時運作。
KVM具有以下幾個優勢:
KVM在Linux整合中優于Xen:即使沒有實施廣泛的 Xen和KVM性能基準研究,仍然有很多理由足以說明Linux上司者(諸如Red Hat和Ubuntu)對待KVM态度的原因。其中最明顯并且最重要的因素就是KVM是Linux核心(2.6版本之後)的一部分,Xen隻是一個安裝在Linux核心下層的一個産品而已。 在過去Xen工作環境的更新檔包不能夠和Linux核心相容。但是如果實施KVM的話,這個問題就可以很容易地得到解決。另外一個選擇KVM的原因是KVM在Linux核心内部部署,這樣可以很容易控制虛拟化程序。
KVM技術愈發成熟:Xen的擁護者們聲稱KVM不如Xen技術成熟,并且缺少某些關鍵特性,如動态遷移和泛虛拟化支援。确實如此,Xen工作環境中的泛虛拟化技術可以使虛拟機的操作更加高效,因為泛虛拟化技術直接和硬體進行互動。然而使用泛虛拟化技術需要修改作業系統,預設Windows的安裝并不支援泛虛拟化工作環境。至于動态遷移,KVM也可以做到,隻是需要安裝正确的KVM版本而已。KVM過去在動态遷移方面确實存在一個問題,但是現在已經解決了。
KVM更加靈活:由于作業系統直接和整合到Linux核心中的虛拟化管理程式互動,是以在任何場景下都可以直接和硬體進行互動,而不需要修改虛拟化的作業系統。這一點非常重要,因為對虛拟機運作來講KVM可以是一個更快的解決方案。KVM需要Pacifica(AMD)或者 Vanderpool(Intel)虛拟化CPU這一事實作在已經不能成為KVM發展的限制條件,因為目前大多數伺服器CPU都有這些處理器。
支援不選擇KVM虛拟化技術的一個原因是Xen相對來講曆史更久一點,産品更加成熟些。但是長遠來看,Xen将會使Linux核心的負擔越來越重,因為Xen缺少很好的整合(并且以後也不會解決這個問題),盡管Xen的開發者們正在積極地解決這個整合問題。
總結,KVM是Linux核心的一部分,而Xen做到最好也無非是整合到Linux中。随着時間的推移,RetHat(目前掌握KVM技術),作為Linux企業市場中份額最大的企業,将會使虛拟化技術的後來者--KVM同Xen一樣功能齊全。我相信未來虛拟化市場必定是KVM的。