天天看點

第六講:CPU虛拟化

  虛拟化技術的分類主要有伺服器虛拟化、存儲虛拟化、網絡虛拟化、應用虛拟化。

  伺服器虛拟化技術按照虛拟對象來分,可分為:CPU虛拟化、記憶體虛拟化、I/O虛拟化;

          按照虛拟化程度可分為:全虛拟化、半虛拟化、硬體輔助虛拟化。

  将不同的虛拟化對象和程度組合,可得出 9種 不同的伺服器虛拟化技術。

  首先詳細介紹下伺服器虛拟化之CPU虛拟化,後續講解中再詳細介紹記憶體虛拟化及I/O虛拟化。

  二、CPU虛拟化

  ·CPU全虛拟化技術

  主要采用優先級壓縮技術(Ring Compression)和 二進制代碼翻譯技術(Binary Translation)。優先級壓縮技術讓VMM和Guest 運作在不同的特權級下。

  對X86架構而言,即VMM運作在最高特權級别Ring 0下,Guest OS 運作在Ring 1 下,使用者應用運作在Ring 3下。是以 Guest OS 的核心指令無法直接下達

  到計算機系統硬體執行,而是需要經過 VMM 的捕獲和模拟執行(部分難以虛拟化的指令需要通過 Binary Translation技術進行轉換)。

  

第六講:CPU虛拟化

  ·CPU半虛拟化技術

  主要采用Hypercall 技術。Guest OS 的部分代碼被改變,進而使Guest OS會将和特權指令相關的操作都轉換為發給VMM的Hypercall(超級調用),由VMM繼續進行處理。而Hypercall支援的批處理和異步這兩種優化方式,使得通過Hypercall 能得到近似于實體機的速度。

   

第六講:CPU虛拟化

  ·CPU硬體輔助虛拟化技術

  目前主要有Intel 的VT-x和AMD的AMD-V這兩種技術。其核心思想都是通過引入新的指令和運作模式,使VMM和Guest OS分别運作在不同模式(ROOT 模式和非ROOT模式)下,且Guest OS 運作在Ring 0 下。通常情況下,Guest OS 的核心指令可以直接下達到計算機系統硬體執行,而不需要經過VMM。當Guest OS執行到特殊指令的時候,系統會切換到VMM,讓VMM來處理特殊指令。

第六講:CPU虛拟化

  CPU的虛拟化技術可以單CPU模拟多CPU并行,允許一個平台同時運作多個作業系統,并且應用程式都可以在互相獨立的空間内運作而互不影響,

  進而顯著提高計算機的工作效率。

第六講:CPU虛拟化

  GuestOS負責第2級排程,即線程或程序在VCPU上的排程(将核心線程映射到相應的虛拟CPU上。)

  VMM(Virtual Machine Monitor)負責第1級排程,即VCPU在實體處理單元上的排程。

  兩級排程的排程政策和機制不存在依賴關系。VMM負責實體處理器資源在各個虛拟機之間的配置設定和排程,本質上即把各個虛拟機中的VCPU按照一定的政策和機制排程在實體處理單元上,可以采用任意的政策來配置設定實體資源,滿足虛拟機的不同需求。

繼續閱讀