VPS方案选择中Xen和KVM虚拟机程序的对比

分类栏目:建站知识

VPS方案选择中Xen和KVM虚拟机程序的对比

關於XEN和KVM
KVM是一個全虛擬化的解決方案。可以在x86架構的計算機上實現虛擬化功能。但KVM需要CPU中虛擬化功能的支持,隻可在具有虛擬化支持的CPU上運行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。
Xen 也是Linux下的一個虛擬化解決方案,也將很快被編入內核中。Xen的實現方法是運行支持Xen功能的kernel,這個kernel是工作在 Xen的控制之下,叫做Domain0,使用這個kernel啟動機器後,你可以在這個機器上使用qemu軟件,虛擬出多個系統。

Xen和KVM對比
KVM由以色列公司Qumranet開發,已經被Linux核心組織放入Linux的內核裡面,其使用的x86處理器至少需要包含其中一項硬件輔助虛擬化技術(Intel-VT或AMD-V)。
而 Xen是一個外部的Hypervisor程序(虛擬機管理程序);它能夠控制虛擬機和給多個客戶機分配資源,在KVM被寫入Linux內核後,估計Xen 很難再被寫入內核;另一方面,KVM是Linux的一部分, 可使用通常的Linux調度器和內存管理. 這意味著KVM更小更易使用。
此外,Xen同時支持全虛擬化和準虛擬化(需要修改客戶機操作系統,而修改過的客戶機操作系統能有更好的性能),KVM當前不支持準虛擬化。
Xen的缺點是如果你需要更新Xen的版本,你需要重新編譯整個內核,而且,稍有設置不慎,系統就無法啟動。
相比較,KVM就簡化的多瞭。它不需要重新編譯內核,也不需要對當前kernel做任何修改,它隻是幾個可以動態加載的.ko模塊。它結構更加精簡、代碼量更小。所以,出錯的可能性更小。並且在某些方面,性能比Xen更勝一籌。

1.Xen比KVM優越的六大點:
(1)可用資源:Xen的問世要比KVM早4年之久(兩者分別是2003年和2007年)。隨著Citrix、Novell、Oracle、Sun、Ret Hat和Virtual Iron等公司在市場領域的實施,就比較容易找到精通Xen的IT技術人員,更容易讓這些技術人員接受Xen相關的培訓、更容易得到Xen的咨詢幫助以及獲得Xen證書。企業管理協會(EMA:Enterprise Management Associates)2008年這對虛擬化和管理趨勢的研究報告表明,這些關鍵因素占到那些抱怨缺少必要虛擬化技術資源和技術企業的60%。
(2)平臺支持:Xen在新版本中支持更多的主機和客體工作環境,包括泛虛擬化技術、硬件輔助支持以及修改過或未修改過的客體操作系統;對UNIX、Linux和Microsoft  Windows的特定支持;包括芯片組,如x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商傢和Intel嵌入式的支持等。
(3)可管理性:EMA在2009年度針對虛擬系統管理的研究結果表明:對於83%的企業來講,在選擇虛擬化技術過程中,管理是一項非常關鍵或者重要的因素。在對比Xen和KVM時,就可以看到Xen具有一個更加寬泛的第三方配給、備份、存儲管理、P2V、容量規劃、性能監控、進程自動化、安全和其它管理規則的社區,比如Citrix、IBM、CA、Novell或者Platespin、Enomaly、Microsoft以及HP等。.
(4)實施:無論KVM是“第一類”還是“第二類”,這都是語義上的概念。Xen的運行和管理都是在較低級別的(Ring 0)。甚至對於新虛擬機創建,客體機器並不需要像KVM那樣共享內存塊、CPU指令或者任何底層的Linux操作系統(雖然偶爾也會越權)。
(5)KVM不支持動態遷移:過去在證明VMware ESX比Microsoft Hyper-V優越的最重要的一個觀點也同樣適用於Xen和KVM的比較,但是這是一個很大的問題。與KVM不同,Xen支持非中斷的動態遷移,可以允許動態工作負載平衡和例行維護而幾乎沒有任何宕機時間。KVM的固有屬性決定瞭其肯定有宕機時間。
(6)性能:大多數Xen和KVM性能基準的對比都表明Xen具有更好的處理性能(接近於本地處理),隻有在磁盤I/O方面略遜於KVM。進一步來講,獨立測試表明隨著工作負載的增加KVM的性能逐漸下降。通常情況下,在試圖支持四個以上的客體虛擬機時就會崩潰。Xen支持一個客體虛擬機的數量呈線性增長,可以支持30個以上工作負載同時運行。

2.KVM在Linux整【請允許我小小的驕傲,因為有你這樣的依靠。】合中優於Xen
即使沒有實施廣泛的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過去在動態遷移方面確實存在一個問題,但是現在已經解決瞭。
從另外一個角度來講,KVM更加靈活。由於操作系統直接和整合到Linux內核中的虛擬化管理程序交互,所以在任何場景下都可以直接和硬件進行交互,而不需要修改虛擬化的操作系統。這一點非常重要,因為對虛擬機運行來講KV【上帝會把我們身邊最美好的東西拿走,以提醒我們得到的太多】M可以是一個更快的解決方案。KVM需要Pacifica(AMD)或者Vanderpool(Intel)虛擬化CPU這一事實現在已經不能成為KVM發展的限制條件,因為當前大多數服務器CPU都有這些處理器。.