由於採用技術的不同,系統
虛擬化不僅僅包括全
虛擬化、半
虛擬化和硬體輔助
虛擬化。完整來看,可以將系統
虛擬化分為五大類:
硬體**(emulation
)簡介:
屬於hosted模式,在物理機的作業系統上建立乙個模擬硬體的程式(hardware vm)來**所想要的硬體,並在此程式上跑虛擬機器,而且虛擬機器內部的客戶作業系統(guest os)無需修改。知名的產品有bochs,qemu和微軟的virtual pc(它還使用少量的全
虛擬化技術)
圖1. 硬體**架構圖
· 優點:
guest os無需修改,而且非常適合用於作業系統開發,也利於進行韌體和硬體的協作開發。韌體開發人員可以使用目標硬體 vm 在**環境中對自己的實際**進行驗證,而不需要等到硬體實際可用的時候。 ·
缺點:速度非常慢,有時速度比物理情況慢100倍以上。 ·
未來:因為速度的問題,漸趨頹勢,但是還應該有一席之地。 全
虛擬化(full virtulization
)簡介:
主要是在客戶作業系統和硬體之間捕捉和處理那些對
虛擬化敏感的特權指令,使客戶作業系統無需修改就能執行,速度會根據不同的實現而不同,但大致能滿足使用者的需求。這種方式是業界現今最成熟和最常見的,而且屬於 hosted 模式和 hypervisor 模式的都有,知名的產品有
ibm
cp/cms,virtualbox,kvm,vmware workstation和vmware esx(它在其4.0版,被改名為vmware vsphere)。
圖2. 全
虛擬化架構圖 ·
優點:guest os無需修改,速度和功能都非常不錯,更重要的是使用非常簡單,不論是 vmware 的產品,還是sun(oracle?)的 virtualbox。 ·
缺點:基於hosted模式的全虛擬產品效能方面不是特別優異,特別是i/o方面。 ·
未來:因為使用這種模式,不僅guest os免於修改,而且將通過引入硬體輔助
虛擬化技術來提高其效能,我個人判斷,在未來全
虛擬化還是主流。 半
虛擬化(parairtulization
)· 簡介:它與完全
虛擬化有一些類似,它也利用hypervisor來實現對底層硬體的共享訪問,但是由於在hypervisor 上面執行的guest os已經整合與半
虛擬化有關的**,使得guest os能夠非常好地配合hyperivosr來實現
虛擬化。通過這種方法將無需重新編譯或捕獲特權指令,使其效能非常接近物理機,其最經典的產品就是xen,而且因為微軟的hyper-v所採用技術和xen類似,所以也可以把hyper-v歸屬於半
虛擬化。
圖3. 半
虛擬化架構圖 ·
優點:這種模式和全
虛擬化相比,架構更精簡,而且在整體速度上有一定的優勢。 ·
缺點:需要對guest os進行修改,所以在使用者體驗方面比較麻煩。 ·
未來:我覺得其將來應該和現在的情況比較類似,在公有雲(比如amazon ec2)平台上應該繼續占有一席之地,但是很難在其他方面和類似vmware vsphere這樣的全
虛擬化產品競爭,同時它也將會利用硬體輔助
虛擬化技術來提高速度,並簡化架構。
硬體輔助
虛擬化(hardware assisted virtualization
)簡介:
intel/amd等硬體廠商通過對部分全
虛擬化和半
虛擬化使用到的軟體技術進行硬體化(具體將在下文詳述)來提高效能。硬體輔助
虛擬化技術常用於優化全
虛擬化和半
虛擬化產品,而不是獨創一派,最出名的例子莫過於vmware workstation,它雖然屬於全
虛擬化,但是在它的6.0版本中引入了硬體輔助
虛擬化技術,比如intel的vt-x和amd的amd-v。現在市面上的主流全
虛擬化和半
虛擬化產品都支援硬體輔助
虛擬化,包括virtualbox,kvm,vmware esx和xen。
優點:通過引入硬體技術,將使
虛擬化技術更接近物理機的速度。
缺點:現有的硬體實現不夠優化,還有進一步提高的空間。
未來:因為通過使用硬體技術不僅能提高速度,而且能簡化
虛擬化技術的架構,所以預見硬體技術將會被大多數
虛擬化產品所採用。
作業系統級
虛擬化(operating system level virtualization
)簡介:
這種技術通過對伺服器作業系統進行簡單地隔離來實現
虛擬化,主要用於vps。主要的技術有parallels virtuozzo containers / openvz,unix-like系統上的chroot和solaris上的zone等。
圖4. 作業系統級架構圖 ·
優點:因為它是對作業系統進行直接的修改,所以實現成本低而且效能不錯。 ·
缺點:在資源隔離方面表現不佳,而且對guest os的型號和版本有限定。 ·
未來:不明朗,我覺得除非有革命性技術誕生,否則還應該屬於小眾,比如vps。
五大類之間比較
根據個人的經驗,我在效能,使用者體驗和使用場景這三方面對這五大類進行了比較,具體請看下圖:
表1. 系統
虛擬化五大類之間的比較
在我觀察看來,今後x86
虛擬化技術的發展將會以硬體輔助
虛擬化技術為主,同時以全
虛擬化和半
虛擬化技術為輔。
XEN 半虛擬化 全虛擬化
半虛擬化,支援通過 http ftp nfs 方式進行安裝。全虛擬化,支援通過 iso檔案 光碟機 網路pxe 安裝。半虛擬化的意思是需要修改被虛擬系統的核心,以實現系統能被完美的虛擬在xen上面。完全虛擬化則是不需要修改系統核心則可以直接執行在xen上面。pv vs.fv pv para vrit...
半虛擬化和全虛擬化的區別
1.全虛擬化比半虛擬化技術先出來 2.全虛擬化,客戶機認為自己執行在硬體之上,優點 不需對客戶機作業系統進行修改 缺點 消耗資源大 3.半虛擬化,客戶機知道自己是執行在虛擬機器上,缺點 需要對客戶機作業系統進行修改,所以對不能修改的系統 windows系統 不支援 優點 消耗資源小效能好,4.隨著,...
半虛擬化概念簡單介紹
半虛擬化 用軟體介面來代替實際的硬體的功能。比如,半虛擬化提供一組虛擬化呼叫,當在虛擬作業系統中的程序需要使用系統呼叫時,這個時候程序就會向虛擬機器管理程式請求這組虛擬化的呼叫,來達到類似於系統呼叫的效果。半虛擬化的缺點 安裝在半虛擬化的環境中的作業系統需要了解虛擬機器的api,實際執行的時候,需要...