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

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

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