選擇開(kāi)源hypervisor之前需要問(wèn)的幾個(gè)問(wèn)題
在選擇開(kāi)源hypervisor時(shí),有兩大選擇:Xen或者KVM。Citrix XenServer以及Oracle VM基于Xen,而Red Hat和Ubuntu基于KVM。Xen在Linux平臺(tái)下使用情況良好,但是從2011年起Xen不再包含在Linux內(nèi)核中,而且用戶需要對(duì)內(nèi)核打補(bǔ)丁,并在現(xiàn)有Linux發(fā)行版的基礎(chǔ)上進(jìn)行一些配置才能使用。相反,自從2007年起,KVM已經(jīng)被包含在了Linux內(nèi)核之中。盡管Xen推出時(shí)間更長(zhǎng),但是業(yè)界專家認(rèn)為KVM已經(jīng)取得了長(zhǎng)足的進(jìn)步。
不確定哪一種hypervisor是數(shù)據(jù)中心的正確選擇?本文的FAQ將為你提供做出正確決定所需要的相關(guān)知識(shí)。
Xen和KVM是同一類型的hypervisor嗎?
Xen是x86平臺(tái)下的一個(gè)開(kāi)源的虛擬機(jī)監(jiān)視器,KVM hypervisor是KVM的虛擬化層。 Xen屬于type-1 hypervisor因?yàn)樗凶约旱膬?nèi)核,而KVM屬于type-2 hypervisor,因?yàn)樗褂昧肆硪粋€(gè)主機(jī)操作系統(tǒng)的內(nèi)核。Xen使用它自己的內(nèi)核用于線程以及虛擬機(jī)調(diào)度,而KVM使用Linux內(nèi)核進(jìn)行上述操作。
哪些特性是Xen具備而KVM所沒(méi)有的呢,反之亦然?
Xen提供了關(guān)鍵應(yīng)用程序接口,應(yīng)用二進(jìn)制接口并支持分布式管理任務(wù)組接口。Xen還提供了在線遷移并支持共享存儲(chǔ),能夠進(jìn)行服務(wù)器整合。KVM并非總是支持在線遷移,但是其最新版本的確提供了該功能。
可能Xen相對(duì)于KVM最大的優(yōu)勢(shì)就是與生俱來(lái)的半虛擬化,不需要進(jìn)行仿真虛擬機(jī)就能夠高效運(yùn)行。不需要模擬或者虛擬模擬硬件,客戶機(jī)能夠感知hypervisor而且能夠高效運(yùn)行。KVM hypervisor不支持半虛擬化,必須模擬KVM虛擬機(jī)所生成的指令。然而為使用半虛擬化,你需要修改操作系統(tǒng)。默認(rèn)的Windows安裝無(wú)法在半虛擬化環(huán)境中使用。
Xen與KVM各自的優(yōu)缺點(diǎn)有哪些?
每種hypervisor都有各自的優(yōu)缺點(diǎn)。通常認(rèn)為KVM易于配置與維護(hù),你只需要加載Linux內(nèi)核中的一個(gè)模塊。一旦模塊被加載后,就可以創(chuàng)建虛擬機(jī)了。KVM的精簡(jiǎn)架構(gòu)同樣對(duì)企業(yè)Linux服務(wù)器的管理員具有吸引力。
然而,Xen是用于部署、備份、存儲(chǔ)管理、P2V、容量規(guī)劃、性能監(jiān)控、流程自動(dòng)化以及安全性的第三方生態(tài)系統(tǒng)。使用KVM,客戶機(jī)共享內(nèi)存塊,CPU指令集以及底層的Linux操作系統(tǒng),這意味著KVM會(huì)遇到性能、延遲、安全性、可擴(kuò)展性以及隔離問(wèn)題,而像Xen這樣的裸金屬hypervisor并不會(huì)遇到上述問(wèn)題。
大多數(shù)Xen vs.KVM的性能基準(zhǔn)測(cè)試顯示Xen的處理性能更好,但是KVM在磁盤(pán)I/O方面要?jiǎng)龠^(guò)Xen。