虛擬化的概念在近些年收到了很大程度上的普及,求其原因很簡單:虛擬化能夠最大程度利用資源,為企業(yè)節(jié)約成本。目前市面較受歡迎的虛擬架構(gòu)主要有KVM、XEN和VMware,其中,KVM和XEN都是免費開源的,而VMware則是付費的,所以,此次筆者只對比KVM、XEN之間的差別。
如果給KVM、XEN簡單歸類的話,KVM是完全虛擬化技術(shù)又叫硬件輔助虛擬化技術(shù)(Full Virtualization)。相反,XEN是半虛擬化技術(shù)(paravirtualization),也叫做準(zhǔn)虛擬化技術(shù)。
全虛擬化技術(shù)(左)與半虛擬化技術(shù)(右)
KVM是在虛擬機和硬件之間加了一個軟件層--Hypervisor,或者叫做虛擬機管理程序(VMM),KVM的hypervisor是直接運行在物理硬件之上的。XEN是在全虛擬化的基礎(chǔ)上,把客戶操作系統(tǒng)進行了修改,增加了一個專門的API,使客戶操作系統(tǒng)集成了虛擬化方面的代碼,該方法無需重新編譯或引起陷阱,因為操作系統(tǒng)自身能夠與虛擬進程進行很好的協(xié)作。
KVM架構(gòu)
也有人將KVM架構(gòu)分解為兩部分:KVM驅(qū)動,即linux kernel的一個模塊和Qemu,即用于模擬虛擬機的用戶空間組件,提供I/O設(shè)備模型,訪問外設(shè)的途徑。其最大的優(yōu)勢在于KVM使用Linux內(nèi)核集成的,所以速度較快,同時,KVM是完全虛擬的,所以不需要區(qū)分pv和hvm,可以安裝各種Linux發(fā)行版和Windows發(fā)行版,可以運行在支持虛擬化擴展的X86和X86-64硬件架構(gòu)上。
XEN實際上出現(xiàn)的時間要早于KVM,它是由劍橋大學(xué)開發(fā)的,一個開源的虛擬機監(jiān)視器。半虛擬化架構(gòu)決定了它注定不是真正的虛擬機,只是自己運行了一個內(nèi)核的例子,同時區(qū)分Xen+pv+和Xen+hvm,其中pv只支持Linux,而hvm則支持Windows系統(tǒng)。除此之外,XEN還擁有更好的可用資源、平臺支持、可管理性、實施、支持動態(tài)遷移和性能基準(zhǔn)等優(yōu)勢。
目前來看,從性能和成熟度上而言,XEN要優(yōu)于KVM,但是紅帽等公司在KVM上的投入也越來越多,但諸如AWS、阿里云等云服務(wù)提供商仍然使用的XEN半虛擬化技術(shù),XEN也積累了很多優(yōu)秀的解決方案,穩(wěn)定性更優(yōu),而KVM最大的好處就在于它是與Linux內(nèi)核集成的,可以說KVM與ESX擁有相同的架構(gòu),這也讓KVM今年得到大批用戶的支持。
虛擬化拓撲架構(gòu)圖(圖片來源sinosoft)
在網(wǎng)絡(luò)技術(shù)、云計算迅速發(fā)展的今天,數(shù)據(jù)量迅速增加,虛擬化技術(shù)也得到了發(fā)展的土壤,甚至可以說云技術(shù)就是新型的虛擬化技術(shù)。無論軟件虛擬化還是硬件虛擬化都受到企業(yè)的關(guān)注,而虛擬化所帶來的降低企業(yè)TCO,快速部署等優(yōu)勢也讓其需求不斷增加。
未來虛擬化技術(shù)將想著開源的XEN與KVM發(fā)展,還是閉源的VMware更勝一籌,在開源的世界中,XEN能否守住陣營,KVM又將如何發(fā)展都值得我們關(guān)注。