1. 程式人生 > >再說xen 和 kvm

再說xen 和 kvm

xen kvm

相關資料已經足夠多了,網上其他的文章多數年代久遠,謬誤百出,本文希望盡力以正視聽。


第一部分 Xen


xen是一個開源虛擬化軟件,以超虛擬化起家,目前同時支持兩種虛擬化技術,包括超虛擬化和裸金屬虛擬化。


所謂超虛擬化,也叫半虛擬化,hypervisor盡可能的復用宿主機資源,避免虛擬化帶來的損耗,所以性能比全虛擬化要好。


但是xen的半虛擬化必須對客戶機操作系統進行修改,出於競爭關系,這通常被宣傳kvm優越性的輿論認為是一個缺點。其實xen的半虛擬化可以近似看作是一種原始的容器技術,docker也需要對操作系統進行顯性的修改,並沒有人認為這是缺點,因為docker發明了配套的鏡像和倉庫。所以從現在看,需要對客戶機操作系統進行修改,並不能算是xen半虛擬化的缺點。xen的半虛擬化真正的缺點是隔離不夠徹底,不夠安全。每次xen發生的重大漏洞,幾乎都與半虛擬化有關。docker將容器發揚光大,也同樣面臨不夠安全的問題。


所謂裸金屬虛擬化,指hypervisor直接運行在硬件之上,調度硬件資源。而寄居架構的虛擬化則是操作系統嵌套,目前所有的桌面級虛擬化軟件都是寄居架構。

通常認為,裸金屬虛擬化性能和穩定要勝過寄居式虛擬化技術。因為裸金屬虛擬化下的hypervisor更精簡,專為虛擬化而生。實際上,在CPU性能普遍過剩的年代,xen全虛擬化與kvm的單實例性能不相上下,差距在5%以內,xen甚至因為架構原因在多實例情況下的穩定性上更有優勢。


xen 的hypervisor管理程序被稱為dom0,實際上一個特權虛擬機,負責調度底層的hypervisor和轉發特權指令。其他普通虛擬機稱為domU。微軟的hyper-V技術跟xen架構高度相似,至今被認為是微軟借與思傑技術合作而抄襲得來。


xen當時在整個虛擬化領域實力,雖然不及vmware和IBM,在企業虛擬化市場並不算成功,高峰時期份額在15%-20%左右,但憑借開源的優勢,另辟蹊徑開辟了vps以及稍後的雲計算領域。早期的vps廠商、谷歌、亞馬遜、阿裏雲等巨頭都曾是xen大客戶,都運行著數以百萬計的實例,xen高峰時期的市場占有率在90%-95%。


xen 是開源虛擬化的先鋒,起源很早,當時世界上開源虛擬化技術幾乎沒有,白茫茫一片,intel VT技術也遠未普及。

於是xen自身實現了一整套虛擬化生態,包括指令模擬翻譯,設備模擬,資源調度等等。隨著技術的發展,開源界先後出現了qemu、libvirt等優秀工具後,xen沒有及時調整,導致包袱越來越大,代碼難以維護。每次xen漏洞爆發後,損失的不光是聲譽,還有市場份額。


另外,思傑並不是一個很好的技術領導,總在商業化和開源之間搖擺,手中的王牌xen/xenserver以及cloudstack都被悉數敗光,在紅帽的強力宣傳下,於是kvm 逐漸崛起,xen敗局已定。


第二部分 kvm


kvm是Linux內核的一個模塊,它把linux kernel當作是hypervisor,自己僅僅負責簡單的任務,其代碼也是十分精簡。通常配合qemu、libvirt和virtio等工具使用,是近年來主流的虛擬化技術。


kvm是一種典型的寄居式的全虛擬化技術,得益於紅帽的深厚的內核功底和領導能力,經過多年優化,目前是市場上性能最好也最被看好的虛擬化技術。kvm也順勢成稱為openstack的首選hypervisor和一等公民。


與xen不同,kvm是專屬linux的虛擬化技術,kvm雖然有寄居架構的劣勢,但解耦的非常好,kvm負責核心部分,kernel負責硬件調度、qemu負責硬件模擬,libvirt負責網絡、存儲等。在非常簡單靈活的同時,又能有針對性的優化,linux kernel又非常成熟健壯,所以整體穩定性和性能都非常好。


kvm的崛起離不開紅帽的持續投資和身體力行的強力推薦,也有政治的成分,據稱linus大神不喜歡xen運行在kernel之上,


kvm的缺點也非常明顯,寄居架構不再多說,架構分散,細節對技術人員要求較高。管理工具都比較重型,對企業虛擬化不友好。


目前kvm的市場份額日新月異,尤其是在日益膨脹的雲計算領域,谷歌、亞馬遜、阿裏等巨頭紛紛轉向kvm,超越取代xen是遲早的事情。


第三部分 vmware


vmware不多說,是最早的x86虛擬化廠商,是傳統企業虛擬化領域的霸主。技術成熟穩定,非開源,性能較好,vmware vsphere是典型的裸金屬虛擬化技術。


vmware成功之處在於起步早,產品體驗好,深入人心,生態完善。爆款vmware workstation 是IT技術人桌面虛擬化首選,不會vmware都不好意思說自己是搞IT的。


vmware的缺點是免費產品閹割嚴重,商業授權昂貴,也不符合軟件行業的開源趨勢,並且隨著雲計算市場的膨脹,企業虛擬化市場逐漸萎縮


跟微軟類似,vmware很可能會逐漸沒落。不同之處在於,微軟是個胖子,大力改革,可能在別處獲得新生從而成功轉型。而vmware專耕一處,轉型可能性比較小。






再說xen 和 kvm