CPU虛擬化、內存虛擬化、I/O虛擬化概念

記錄一下自己對虛擬化的理解。

 

CPU虛擬化:

全虛擬化:主要利用模擬仿真技術,優先級壓縮技術,二進制翻譯技術。Guest OS認爲自己是物理機,會發出ring0級別的指令產生權限異常,異常被vmm捕獲後,陷入模擬仿真。

優先級壓縮技術,使Guest OS運行在ring1下,VMM不能捕捉到敏感指令,所以二進制翻譯將其轉化爲其它架構的指令,使敏感指令和特權指令重合,VMM可以捕捉到異常。

 

半虛擬化:修改Guest OS內核,使Guest OS知道自己是虛擬機,避免虛擬化的執行衝突,通過Hypercall(超級調用)技術直接將指令發送給VMM,讓VMM處理。

全虛擬化

 

硬件輔助虛擬化:主要是Inter的VT-x 和 AMD-V 這兩種技術。讓VMM和Guest OS分別運行在root模式和非root模式下,讓Guest OS的一般指令可以直接發送到硬件,而特權指令會切換到VMM去執行。

 

優缺點:全虛擬化效率低,半虛擬化效率高,但需要修改內核。

 

內存虛擬化:

全虛擬化:主要是運用了影子頁表法。虛擬地址到物理地址的映射是先從VA到PA再到MA,然後通過影子頁表法,將VA和MA通過P2M頁表或者hash函數形成映射,可以減少一個查找的過程。在Guest OS的訪存操作都會發生缺頁中斷,VMM就會捕捉到缺頁異常,從而將其寫入影子頁表中,實現同步。

 

半虛擬化:修改操作系統的代碼,主要運用頁表寫入法,剝奪guest OS寫頁表的權利。當客戶機操作系統創建新頁表,VMM也創建相同的頁表,保存PV與MA的映射關係,當PV發生改變,VMM可直接從頁表裏讀取到MA。

 

硬件輔助虛擬化:MM維護了一個EPT(擴展頁表),通過硬件代替影子頁表,VMM把擴展頁表(EPT)設置到CPU中,客戶機修改客戶機頁表,CPU自動查找客戶機頁表和EPT,完成VA到MA轉換

 

優缺點:全虛擬化效率低,半虛擬化效率高,但需要修改代碼,硬件輔助虛擬化效率高。

 

 

IO虛擬化:

全虛擬化:通過軟件模擬的形式模擬IO設備。

 

半虛擬化:物理硬件資源統一由Hypervisor管理,由Hypervisor提供資源調用接口。虛擬子機通過特定的調用接口與Hypervisor通信,完整I/O資源控制操作。

 

硬件輔助虛擬化:Intel VT-d技術和Passthrough技術通過降低I/O操作中VMM的參與提升了虛擬機的I/O性能, SR-IOV標準在此基礎上支持虛擬機對I/O設備的原生共享。

 

但也增加了虛擬機的I/O延遲。

 

相關文檔資源請自行提取:

鏈接:https://pan.baidu.com/s/14iUZItb1qrqV5lNjRGFbpA 
提取碼:g4oc 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章