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

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

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