優缺點分析:Hyper-V與vSphere架構對比
微軟和VMware可算是服務器虛擬化的兩大巨頭,VMware在此領域已經超過了10年,而微軟憑借Windows Server產品,也開始在服務器虛擬化領域嶄露頭角。本文,我們將向IT組織者或企業介紹微軟Hyper-V和VMware vSphere之間的架構差異,以及兩者之間的優勢和劣勢。
無論選擇哪種產品,VMware vSphere或是Hyper-V,我們都需要考慮很多因素,但從架構的角度來看,想要選擇合適的服務器虛擬化產品,我們需要重點考慮以下組件:
1.設備驅動程序的架構位置;
2.控制層組件;
3.hypervisor層組件。
一般情況下,有三種類型的虛擬化技術架構:
• Type 2 VMM
• Type 1 VMM
• Hybrid VMM
本文并不會詳細介紹以上所有的技術架構,我們將會著重介紹Type 1 VMM,因為微軟和VMware的服務器虛擬化技術都使用的是Type 1 VMM架構。Type 1 VMM又可以分為兩個子類,分別是Monolithic Hypervisor和Microkernelized Hypervisor。
通常我們把最底層稱為”硬件層“,虛擬化“Hypervisor層”運行在”硬件層“之上。最上層是“控制層”,其作用是控制該層中運行的組件,以及為虛擬機提供必要的組件,以用來與“Hypervisor層”進行通信。
注:“Hypervisor層”有時也稱為”VMM層“或者”VM Kernel層“。
Microkernelized Hypervisor架構
Microkernelized Hypervisor架構被使用于微軟的Hyper-V中。在這種設計中,設備驅動程序并不是hypervisor層的一部分,設備驅動程序是獨立運行的, 其運行在“控制層”。如下圖所示:

Microkernelized Hypervisor架構的優點如下:
• 設備驅動程序并不需要為每個設備納入Hypervisor層或VMM內核;
• 由于微軟并沒有提供用來訪問“hypervisor層”的API,這種做法將被攻擊的面減到最小,因為沒有人可以在“hypervisor層”注入外部代碼;
• 由于設備驅動程序不需要被hypervisor感知,所以該架構所支持的硬件設備非常廣;
• 無需關閉“hypervisor層”來加載設備驅動程序。設備驅動程序可以安裝在運行于“控制層”的操作系統之中。(包括Windows Server 2008 R2以及Windows Server 2012),用于虛擬機訪問“硬件層”中的硬件。
• 在維護和管理設備驅動程序方面,“hypervisor層”的成本更低;
• Microkernelized Hypervisor架構允許你在“控制層”中安裝任何服務器角色,當然,除了服務器虛擬化角色(Hyper-V)外;
• 初始化時間更少。微軟hypervisor的代碼僅有600KB左右,所以,“hypervisor層”無需使用更多的時間來初始化組件。
與此同時,Microkernelized Hypervisor架構也有一些缺點,具體內容如下:
• Microkernelized Hypervisor架構需要在“控制層”安裝操作系統,“hypervisor層”才可以進行操作,這是該架構本身最大的缺點;
• 如果在“控制層”運行的操作系統無故崩潰,那么其他所有的虛擬機也都將崩潰;
• 運行在“控制層”的操作系統需要更多的資源(或者說是開銷),以用來管理虛擬機和“hypervisor層”之間的通信;
• 為了保證Windows系統的安全,在“控制層”運行的操作系統必須及時應用微軟官方的安全更新。作為安全更新的一部分,操作系統將會被重啟,同時,這需要所有虛擬機離線;如果你希望沒有停機時間,可以借助Hyper-V實時遷移功能解決。#p#
Monolithic Hypervisor架構
VMware vSphere所使用的就是Monolithic Hypervisor架構,這需要hypervisor能夠感知和管理設備驅動程序。如下圖所示:

管理程序的設備驅動程序必須開發并包含在 “hypervisor層”,然后才可以開始使用vSphere虛擬化產品。您不能在硬件上運行VMware vSphere,這是不支持的。
VMware vSphere在“hypervisor層”管理其組件,包括資源調度,分布式文件系統等等。用于部署VMware網絡的網絡協議棧組件,同樣由“hypervisor層”管理。存儲堆棧組件允許“控制層”組件訪問存儲設備。
Monolithic Hypervisor架構的優點:
• 控制虛擬化產品的所有組件不需要操作系統支持;
• 在“控制層”運行的組件,不需要安全更新。
Monolithic Hypervisor架構的缺點:
• VMware vSphere不支持運行在硬件上。然而,目前VMware已經提供出了一系列的兼容硬件列表,這份名單可以在這里看到:http://www.vmware.com/resources/compatibility/search.php
• 需要更多的初始化時間。其所取的初始化時間,取決于其包含的的設備驅動程序的大小;
• 由于設備驅動程序初始化作為“hypervisor層”初始化的一部分,任何損壞的外部代碼注入到“hypervisor層”,都可能延遲啟動/初始化,或在某些情況下會導致服務器掛起。