1. 程式人生 > >虛擬化相關概念與技術整理(1)——關於VMM型別

虛擬化相關概念與技術整理(1)——關於VMM型別

做虛擬化相關的工作也有一段時間了,抽出時間把做過的專案和常用的技術梳理一下,能加深理解也能提高。

這篇文章本來打算和以前一樣用英文來寫,發現太過於耗費時間,畢竟不是母語寫作,還是有點難度的。

這篇文章主要總結和介紹一下關於VMM的分類:

按照虛擬平臺分類, 可以分為全虛擬化(Full Virtualization)和半虛擬化(Para Virtualization)。

1)全虛擬化:簡單來說,就是無需對執行在虛擬化平臺上的OS做任何修改;

1,軟體輔助的全虛擬化

       常見做法就是優先順序壓縮(Ring Compression)二進位制程式碼翻譯(Binary Translation)。

      優先順序壓縮: 簡單來說就是讓guest OS跑在較VMM的ring 0 低的優先順序ring 1 上,當需要執行特權指令時就觸發異常,被VMM截獲。

      二進位制程式碼翻譯:我的理解就是VMM對於guest的二進位制程式碼,發現需要處理的guest指令就將其翻譯成支援虛擬化的指令。

2,硬體輔助完全虛擬化

       軟體輔助的虛擬化,就相當於在系統上打補丁,x86廠商嘗試在硬體的層面來改善這個問題,就是在硬體本身加入足夠的虛擬化功能,

可以截獲作業系統對於敏感資源和敏感指令的操作,從而向VMM報告異常。

       比如說intel的VT-x, 在處理器中引入一個特殊的模式,作業系統一旦進入該模式,無法察覺該模式,但是任何操作都會被該模式報告VMM。

2)半虛擬化:在原始碼級別修改指令以迴避虛擬化漏洞,簡單來說,就是執行在虛擬化平臺上的OS是被動過手腳的。

典型的做法就是修改OS的相關處理器程式碼,讓出ring 0 ,或者定製指定的I/O協議,以期提高讀寫效率。

按照VMM的實現架構分類,可以分為Hypervisor模型、宿主模型和混合模型。

1)Hypervisor模型

       在這種架構裡面,VMM可以視為一個具有虛擬化功能的作業系統,即管理物理資源和虛擬環境的建立、管理。

       優點: 效率高;  缺點:只支援部分型號裝置,需要重寫驅動或者協議。

典型產品:VMware ESX server3, KVM

2)宿主模型

       宿主機OS管理物理資源,VMM作為宿主機OS的一個獨立的核心模組來提供虛擬化功能。

       VMM通過呼叫宿主OS的相關服務來獲取資源,創建出來的虛擬機器也作為宿主OS的一個程序來參與排程。

      優點:個人理解就是充分利用現有的OS的device driver,無需重寫;物理資源的管理直接利用宿主OS來完成。

       缺點: 效率不夠高,安全性一般、依賴於VMM和宿主OS的安全性。

典型產品: VMware server , VMware workstation,virtual  PC, virtual server,

3)混合模型

       顧名思義,混合模型就是上述兩種模型的混合體。

       VMM處在最底層,擁有全部物理資源,但是與Hypervisor模型不同的是,大部分I/O裝置是由一個執行在特權虛擬機器中的特權OS來管理的。

       CPU和Memory的虛擬化依然由VMM來完成,而I/O的虛擬化則由VMM和特權OS來共同完成。

      混合模型集合了上述兩種模型的優點,但是缺點就是經常需要在VMM與特權OS之間進行上下文切換,開銷較大。

典型產品: window server 2008之hyper-v, Xen,