1. 程式人生 > >虛擬化技術(平臺虛擬化)(讀書筆記)

虛擬化技術(平臺虛擬化)(讀書筆記)

         虛擬化就是通過恰當的基礎設施建設,從管理層面將資源的功能從資源的實體上分離出來,從而達到更加靈活、專業、低成本地使用資源的目的。也可以說是把物理資源轉變為邏輯上可以管理的資源,以打破物理結構的壁壘。虛擬化技術就其本質而言屬於一種資源管理技術,它將硬體、軟體、網路、儲存等硬體裝置隔離開來,使使用者能更合理、更充分地控制與管理的各種資源。

虛擬化主要分如下三類:

一、  平臺虛擬化

二、  資源虛擬化

三、  應用程式虛擬化

1、 平臺虛擬化

         平臺虛擬化技術,通過使用控制程式,隱藏特定計算平臺的實際物理特性,為使用者提供抽象的、統一的、虛擬的計算環境,稱為虛擬機器(virtual machine)。虛擬機器負責一個在硬體平臺上模擬多個獨立的和實際硬體相同的虛擬機器硬體系統,其中每個虛擬硬體系統均可執行不同的作業系統。虛擬機器中執行的作業系統被成為客戶作業系統(Host OS),客戶作業系統將通過虛擬機器監視VMM來訪問實際的物理資源。執行虛擬機器的真實系統稱為主機系統。平臺虛擬化技術可以細分為6個子類。

(1)     完全虛擬化

          完全虛擬化使用一個虛擬機器,它在客戶端作業系統和原始硬體之間使用Hypervisor共享底層硬體和進行協調。如下圖,Hypervisor(VMM)是關鍵,在客戶作業系統和裸硬體之間進行協調。底層硬體並不由作業系統所擁有,而是由作業系統通過Hyervisor共享。


完全虛擬化的速度比硬體模擬的速度要快,但是其效能要低於裸硬體,因為中間經過了Hypervisor的協調過程。完全虛擬化最大優點是作業系統無需任何修改就可以直接執行,唯一的限制是作業系統必須要支援底層硬體。

總結:這種虛擬化技術對底層硬體進行了模擬。這使得一個作業系統能夠直接執行在硬體上的應用程式也可以執行在虛擬機器上,支援多種子作業系統。

(2)     超虛擬化

        它與完全虛擬化類似,使用Hypervisor來實現對底層硬體的共享訪問,將與虛擬化有關的程式碼整合到了作業系統本身,如下圖,這種技術不再需要重新編譯或捕獲特權指令,因為作業系統本身在虛擬化程序中會相互緊密協作。


超虛擬化技術需要為Hypervisor修改客戶作業系統,這是他的一個缺點。但是超虛擬化提供了與未經虛擬化的系統相接近的效能。與完全虛擬化類似,超虛擬化技術可以同時支援多個不同的作業系統。

(3)     硬體輔助虛擬化

        硬體輔助虛擬化是一種對計算機或作業系統的虛擬。虛擬化對使用者隱藏了真實的計算機硬體,表現出另一個抽象計算平臺。

硬體虛擬化與應用所在的作業系統無關,只與系統硬體相關。硬體虛擬模式的優點是100%物理隔離和安全,不佔用任何系統資源。缺點是操作相對複雜,最小粒度是一顆CPU,而且在進行分割槽資源變更的時候,移出CPU的分割槽需要重啟作業系統。

(4)     部分虛擬化

         模擬了部分底層硬體。最關鍵的特徵是地址空間的虛擬化,從而保證為虛擬機器提供它們自己的地址空間。它比完全虛擬化更加容易實現,在沒有硬體輔助的基礎上,半虛擬化的子作業系統在網路和磁碟I/O方面是最高效能的虛擬機器。但是在半虛擬化虛擬機器中執行的作業系統如果不做大量的修改,則無法執行,虛擬機器向下相容能力較弱,也不是非常便攜。

(5)     作業系統級虛擬化

        作業系統級虛擬化技術是在作業系統本身上實現伺服器的虛擬化,作業系統的虛擬化技術支援單個作業系統,並可以將獨立的伺服器相互簡單的隔離開來。如下圖,


X86架構中,作業系統提供了4個特權級(0環~3環)如下圖。0環用於執行作業系統核心;1環和2環用於作業系統服務;3環用於應用程式,以及分段和分頁的記憶體保護機制。但目前多數作業系統只使用了0環和3環兩個特權級,對應地存在兩種特權特權解除方式:0/1/3模型(VMM執行在0環,作業系統執行在1環,應用程式在3環)和0/3模型(VMM執行在0環,作業系統和應用程式在3環)。

作業系統的虛擬化要求對作業系統的核心進行一些修改。虛擬化將0環上的許可權通過在某一環中植入虛擬機器,來取得CUP、記憶體和I/O資源的訪問。


總結:這種虛擬化是基於一個作業系統的,資源很有限而且效率很高,只需要管理和更新一個作業系統。不支援同時執行不同系列的作業系統,安全性較差。

(6)     本地虛擬化

          這種虛擬化是x86架構虛擬化技術中的最新技術,又被稱為混合虛擬化。這種型別的虛擬化是完全虛擬化或者半虛擬化與I/O加速技術的結合。與完全虛擬化相同,子作業系統不需要修改就可以直接安裝。它的優勢是用硬體而不是軟體中的捕獲模擬技術來處理不可虛擬的命令。有選擇的應用了記憶體和I/O加速技術。

參考文獻:

[1]黎連業.雲端計算基礎與使用技術.出版社:清華大學出版社.