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