站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Hyper-V 簡述

前言

[Wikipedia - Hypervisor] 為一介於軟體與韌體中一層極小的程式碼可以提供動態的硬體資源配置及彈性設定和管理虛擬資源,又可細分為 Type 1 及 Type 2。

CPU Privileged Mode (CPU 特權模式)

CPU Privileged Mode (CPU 特權模式) 可分為 Ring 0 ~ 3 等 4 種層級

 Ring 3 - Application
 Ring 2
 Ring 1 - Guest OS (透過 Binary Tranlation 技術來使 OS 可在 Ring1 層運作)
 Ring 0 - Hypervisor (Virtual Machine Monitor, VMM) 用來控制硬體 CPU、I/O、Memory...等

全虛擬化 (Full Virtualization): 因為 x86 CPU 架構規劃問題有多許 CPU 指令必須在 Ring 0 下才能執行,傳統作法上也都將作業系統安裝在硬體上使其能存取 Ring 0,使用 Binary Translation 技術使虛擬化指令能在 Ring 0 下執行,全擬化的好處是作業系統不必進行任何修改便可使用,所以支援的作業系統種類也是最多的,代表性廠商例如 VMware。

半虛擬化 (Para-Virtualization): 採用 修改作業系統的核心 植入 Hypercall 使得原本不能被虛擬化的指令可以透過 Hypercall Interface 像硬體提出請求,其優點是可以把 CPU、I/O 的損耗降低且理論上效能會勝過全虛擬化,但最大的缺點也就是必須修改作業系統核心才行,因此支援作業系統種類相對減少許多,代表性廠商例如 Microsoft Hyper-V (Parent Partition) 及 Citrix XenServer (Domain0) 。

CPU 硬體輔助虛擬化 (Hardware Assisted Virtualization):新一代的 CPU 如 Intel-VT(Vanderpool)、AMD-V(Pacifica) 便有此功能,透過加上 Root Mode (Ring -1) 技術使VMM 調整至最底層的 Ring -1 而作業系統則維持原來的 Ring 0,因此當硬體具備 CPU 硬體輔助虛擬化功能後便不在需要在計較使用的是半或全虛擬化的產品了因為採用此技術後基本上在效能上也不會有太大的差別了,全虛擬化產品便不需要做 Binary Translation 而半虛擬化產品則不需要修改作業系統的核心。

Hyper-V 運作架構

Hyper-V 虛擬化運作架構主要分成三層分別是 Hypervisor、Root Partition、Child Partition,當然其中又有其它的元件來協同運作,在我們看Hyper-V 運作架構圖時,可能會看到一些名詞的縮寫,以下為概要說明:

Hypervisor: 負責掌管最後的硬體資源存取,以及相關硬體資源的調度。

Root/Parent Partition: 簡單來說就是 Host OS 並執行虛擬化堆疊的任務,把子分割區送過來存取硬體裝置的需求,送給 Hypervisor 進行硬體資源的存取。

Child Partition: 簡單來說就是 Guest OS,也就是運作於虛擬化平台上的虛擬主機,當需要存取硬體資源時為透過 VMBus 將存取需求送給 Root Partition。

千言萬語不如一圖解千文,我們來看看官方相關的 Hyper-V 運作架構圖就可以一目了然了:

How Installing the Hyper-V Role Changes Architecture Windows Server 2008 R2 Detailed Hyper-V Architecture 圖片來源:[Windows Server 2008 R2: Hyper-V Component Architecture]

Hyper-V High Level Architecture 圖片來源: [MSDN - Hyper-V Architecture]

參考

[Intel-VT - Intel® Virtualization Technology]

[維基百科 - X86虛擬化]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com