虛擬化技術基礎

2021-09-13 12:08:31 字數 2618 閱讀 6630

2023年,ibm公司開發出世界上第乙個虛擬機器---system360。

2023年,ibm繼續推出了system370,標誌著虛擬化技術的成熟。

以上都是大型機上的虛擬機器。之後,隨著硬體的發展,虛擬化技術在小型機上也得到了應用。

2023年,disco系統實現了共享記憶體的大規模處理器系統上執行桌面作業系統。2023年,disco系統的開發者繼續在此之上研究虛擬化技術,並成立了vmware公司。

再後來隨著硬體廠商的硬體提供虛擬化的支援後,虛擬化技術獲得更強大的支援,效能有了明顯的提公升。

1、完全虛擬化技術(full virtualization)

全虛擬化平台就跟物理機一樣,作業系統不需要做任何修改就能夠在該平台上執行。作業系統完全察覺不到自己執行在乙個虛擬機器之中。作業系統能夠像操作物理機的cpu、io裝置、記憶體一樣操作虛擬機器的虛擬cpu、虛擬io裝置、虛擬記憶體。

vmm(vmm:virtual machine monitor,虛擬監視器,通常虛擬機器都會有乙個虛擬層,我們將這個虛擬層稱為vmm)能夠正確處理客戶機所有可能的指令,也就是所虛擬的處理器的規範手冊上定義的所有指令。

完全虛擬化經歷了軟體輔助的完全虛擬化和硬體輔助的完全虛擬化。

(1)、軟體輔助虛擬化技術

優先順序壓縮技術(ring compression):目前大多數的cpu都一種特權級模式,我們以x86為例,x86的保護模式分為ring0/1/2/3等四個特權級,作業系統一般使cpu處於保護模式下,然後自己執行在ring0級別,應用程式執行在ring3級別。特權級壓縮技術,使vmm執行於ring0級別,然後使虛擬機器中的os執行在ring1或者ring3級別,使應用程式執行ring3級別,分為ring0/1/3模型和ring0/3/3模型。當虛擬機器中的作業系統執行某些特權指令(只能執行在ring0級別)時,由於其本身沒有執行ring0級別,這個時候就會觸發異常,vmm執行在ring0級別就會截獲這些異常, 並模擬執行這些指令,然後將執行結果返回給虛擬機器中的作業系統。但是,由於x86體系,某些特權指令,如果沒有ring0環境下執行的話,cpu並不會引發異常,而是直接忽略該指令的執行,這就造成了,這些指令的不會產生異常,而vmm也不能捕獲異常,然後模擬執行該指令,從而產生了後面的二進位制**翻譯技術。

(我們將那些能夠觸發異常的指令稱為可虛擬化指令,不能觸發異常的指令稱為不可虛擬化指令,下同)

二進位制**翻譯技術(binary translation):我們知道,ring compression只能完成那些可虛擬化指令的虛擬化,但是不能完成不可虛擬化指令的虛擬化,從而導致了二進位制**翻譯技術的產生。二進位制**翻譯技術通過掃瞄虛擬機器中的作業系統的二進位制**,將不可虛擬化的指令轉化為可虛擬化指令。vmm對虛擬機器中的作業系統的二進位制**進行掃瞄,一旦發現需要處理的指令就將其轉化為可虛擬化的指令塊,然後這些指令塊與vmm合作訪問資源或者觸發異常,讓vmm進一步處理。

通過ring compression和binary translation技術相結合的方式,從而實現了完全虛擬化。如下圖,

(2)、硬體輔助的完全虛擬化

硬體輔助的完全虛擬化技術就是在cpu上引入乙個新的特權級或者新的執行模式,該特權級能夠捕獲所有的特殊指令。目前主要就是intel的vt-x(virtualization technology)技術和amd的svm(secure virtual machine)技術。我們以vt-x技術為例,

vmm執行於vt-x這個特權級上,我們稱之為ring-1層。 然後作業系統可以依舊停留在ring0,這樣就能夠讓作業系統依舊停留在之前的本身應該存在的乙個層級,從而使作業系統能夠執行任何指令,而當作業系統執行一些觸發異常或者不觸發異常的特權指令的時候,cpu自動切換到該ring-1模式下,從而使vmm能夠捕獲所有的異常和執行失敗的訊號,進而處理。

(2)、半虛擬化技術

半虛擬化技術要求修改作業系統核心,使一些特殊指令轉化為對vmm的hypercall呼叫,從而使vmm能夠模擬所有的指令。由於需要修改作業系統,所以該技術適用性較差。

1、hypervisor架構或者裸機架構

在該架構下,虛擬化軟體直接裝在裸機上對物理資源進行管理,作業系統安裝在虛擬化層之上,應用程式安裝在作業系統層之上。此外,還有乙個服務控制台,或者說乙個特殊的作業系統,完成對虛擬化層的配置和控制。例如:xen就是這種架構。

2、宿主型架構(hosted)

宿主型架構是在作業系統之上安裝 虛擬化軟體,依靠作業系統對物理資源進行管理,虛擬化軟體向作業系統申請各種資源,然後執行虛擬機器之中的os。例如:vmware workstation。

3、混合型架構

混合虛擬化架構將乙個核心級驅動器插入到宿主作業系統核心。這個驅動器作為虛擬硬體管理器來協調虛擬機器和宿主作業系統之間的硬體訪問。 

虛擬化技術

虛擬化技術可以提供硬體,軟體上的虛擬化,從而節省成本。特別是對於需要修改或者隱藏操作細節的場景,虛擬化技術更加重要。容器化技術是可以用於替代容器化技術的,但是兩者確實可以融合,取長補短的。這裡容器化技術一般使用docker。vps基本上都是基於虛擬化技術的,例如vultr就是基於kvm核心虛擬化技術...

虛擬化技術

伺服器虛擬化 虛擬機器遷移 隔離技術 儲存虛擬化 網路虛擬化 桌面虛擬化 如果你開始閱讀這篇文章,就預設你了解什麼是馮諾伊曼結構。下圖就是經典的馮諾伊曼結構,有輸入輸出,有儲存器,有 cpu,而其中又有控制單元也有運算單元 alu。這些就構成基本的計算機硬體系統了。而所謂虛擬化技術指的就是,希望能在...

虛擬化技術

intel tsx ni 最白話的解釋就是乙個 執行緒鎖定判定邏輯的硬體加速,以前是在軟體層執行的,現在是硬體層了,方便程式設計和提公升執行效率 官方資料指出作用是能夠提公升多執行緒運算效能 vpro應該是商用機器上才會有支援,主要是提供mis從遠端管理機器,例如修補程式等,即使機器在關機的狀能,也...