摘 要:介紹了在WindowsServer2008中的虛擬化技術(shù)Hyper-V的主要功能和核心特性,并簡(jiǎn)單介紹了Hyper-V對(duì)虛擬化技術(shù)發(fā)展的重要意義。
關(guān)鍵詞:虛擬化 Hyper-V 服務(wù)器
1 Hyper-V介紹
Hyper-V是微軟最新推出的一種服務(wù)器虛擬化解決方案,Hyper-V中內(nèi)嵌了在線遷移、HA(高穩(wěn)定性)等高級(jí)特性。
1.1Hyper-V的架構(gòu)
Hyper-V是一個(gè)位于硬件和操作系統(tǒng)之間的軟件層,可以用于對(duì)Windows和非Windows操作系統(tǒng)進(jìn)行虛擬化。Hyper-V基于虛擬機(jī)管理器的虛擬化平臺(tái),整合了操作系統(tǒng),允許動(dòng)態(tài)地添加物理和虛擬資源。Hyper-V采用微內(nèi)核的架構(gòu),兼顧了安全性和性能的要求。Hyper-V底層的Hypervisor運(yùn)行在最局的特權(quán)級(jí)別下,微軟將其稱為root mode),而虛擬機(jī)的OS內(nèi)核和驅(qū)動(dòng)運(yùn)行在ring 0,應(yīng)用程序運(yùn)行在ring 3下,這種架構(gòu)就不需要采用復(fù)雜的BT(二進(jìn)制特權(quán)指令翻譯)技術(shù)。另外,Hyper-V底層的Hypervisor代碼量很小,不包含任何第三方的驅(qū)動(dòng),非常精簡(jiǎn),所以安全性更高。Hyper-V采用基于VMbus(—種新的虛擬化I/O結(jié)構(gòu))的高速內(nèi)存總線架構(gòu),來(lái)自虛擬機(jī)的硬件請(qǐng)求(顯卡、鼠標(biāo)、磁盤(pán)、網(wǎng)絡(luò)),可以直接經(jīng)過(guò)虛擬服務(wù)客戶端(Virtual Service Client,簡(jiǎn)稱VSC),通過(guò)VMbus總線發(fā)送到父分區(qū)的虛擬服務(wù)提供程序(Virtual Service Provider,簡(jiǎn)稱VSP),VSP調(diào)用對(duì)應(yīng)的設(shè)備驅(qū)動(dòng),直接訪問(wèn)硬件。
在Windows虛擬化架構(gòu)中,每一個(gè)子分區(qū)中都可以擁有一個(gè)自己的操作系統(tǒng),它們可以是32位或64位的WindowsServer2003、WindowsServer2008甚至可以是Linux。而VSP必須運(yùn)行包含了Hyper-V技術(shù)的WindowsServer2008版本(OS64Bit)。父分區(qū)包含一個(gè)虛擬棧,提供了用于管理和自動(dòng)化操作的組件。這個(gè)父分區(qū)就是宿主系統(tǒng)(Host OS),在全新的Windows虛擬化架構(gòu)中它也被包含在分區(qū)之中。
1.2Hyper-V的核心特性
作為新一代的管理程序虛擬化平臺(tái),Hyper-V擁有眾多獨(dú)有的優(yōu)異功能,其新特性主要表現(xiàn)在以下幾個(gè)方面。
1.2.1改善系統(tǒng)架構(gòu)
在微軟Hyper-V架構(gòu)中,Hypervisor層直接運(yùn)行于物理服務(wù)器硬件之上。Hyper-V采用基于VMbus的高速內(nèi)存總線架構(gòu),所有的虛擬分區(qū)都通過(guò)Hypervisor與硬件通信。Hyper-V通過(guò)VMbus總線可以提供高效的分區(qū)間通信機(jī)制,并在此基礎(chǔ)上創(chuàng)建高性能的虛擬I/O架構(gòu),并且充分利用Windows驅(qū)動(dòng)模型,提供廣泛的硬件支持。
這種新的架構(gòu)帶來(lái)了以下幾方面的好處:①由于虛擬機(jī)能夠通過(guò)Hypervisor與硬件通信,減少了發(fā)送I/O請(qǐng)求所需要的開(kāi)銷(xiāo),極大的提高了虛擬機(jī)的性能;②通過(guò)使用新的虛擬服務(wù)供應(yīng)程序/虛擬服務(wù)客戶端(VSP/VSC)架構(gòu),Hyper-V增強(qiáng)了核心資源的訪問(wèn)和使用,例如磁盤(pán)、網(wǎng)絡(luò)以及視頻;③新的虛擬交換功能和新的硬件共享體系結(jié)構(gòu)以實(shí)現(xiàn)對(duì)服務(wù)器更好的管理,使服務(wù)器工作效率更高;④因?yàn)椴恍枰惭b第三方軟件或驅(qū)動(dòng)產(chǎn)品,兼容性和穩(wěn)定性得到極大的提高,同時(shí)可以為虛擬機(jī)提供新硬件的支持。
1.2.2對(duì)稱多處理器(SMP)支持
Hyper-V支持4CPU的WindowsServer2008虛擬機(jī),和2CPU的WindowsServer2003虛擬機(jī)。這個(gè)特性使得虛擬化技術(shù)不僅可以用于類(lèi)似于郵件服務(wù)器和文件服務(wù)器等不需要消耗大量的處理器資源的服務(wù)器,還可以用于數(shù)據(jù)庫(kù)服務(wù)器等需要消耗大量的處理器資源的服務(wù)器進(jìn)行虛擬化。通常,多處理器操作系統(tǒng)內(nèi)核和驅(qū)動(dòng)會(huì)采用自旋鎖(Spin Lock,類(lèi)似于互斥鎖,但是保持時(shí)間更短)的機(jī)制(其原理如圖2所示),傳統(tǒng)的虛擬處理器是按照時(shí)間片進(jìn)行調(diào)度的。如果在保持自旋鎖的時(shí)候競(jìng)爭(zhēng)虛擬處理器,則其他虛擬處理器就要自旋很長(zhǎng)時(shí)間,導(dǎo)致CPU循環(huán)的浪費(fèi),降低了虛擬機(jī)的性能。Windows Server 2008內(nèi)核以及Hyper-V Hypervisor中設(shè)計(jì)者加入了一個(gè)創(chuàng)新設(shè)計(jì),盡可能防止出現(xiàn)自旋鎖的長(zhǎng)時(shí)間等待條件,如果確實(shí)存在長(zhǎng)時(shí)間等待條件,也會(huì)有效地加以檢測(cè)并對(duì)其進(jìn)行處理。這個(gè)方法叫做自旋鎖啟發(fā)方法,未實(shí)現(xiàn)自旋鎖啟發(fā)方法的虛擬機(jī)作系統(tǒng)將停在一個(gè)緊湊循環(huán)上旋轉(zhuǎn)以等待其他虛擬處理器釋放自旋鎖,通常這個(gè)旋轉(zhuǎn)可能會(huì)阻塞其中一個(gè)硬件CPU,從而降低了虛擬化性能。而在自旋鎖啟發(fā)式操作系統(tǒng)中,自旋鎖代碼會(huì)在將要發(fā)生旋轉(zhuǎn)時(shí)通過(guò)Hypercall API通知Hypervisor管理程序,這樣Hypervisor管理程序就可以立即調(diào)度執(zhí)行另一個(gè)虛擬處理器并降低不必要的CPU使用。Hyper-V還還在調(diào)度程序和內(nèi)存虛擬化邏輯上進(jìn)行了優(yōu)化以使它們?cè)诖蠖鄶?shù)臨界區(qū)中都不會(huì)被鎖定,從而確保多處理器系統(tǒng)能夠獲得很好的延展性。
2 結(jié)束語(yǔ)
使用Hyper-V虛擬化平臺(tái)可以通過(guò)增加硬件的利用率降低運(yùn)行和維護(hù)物理服務(wù)器的成本??梢詼p少運(yùn)行服務(wù)器工作負(fù)載所需的硬件數(shù)量。通過(guò)減少設(shè)置硬件和軟件以及再現(xiàn)測(cè)試環(huán)境所需的時(shí)間提高開(kāi)發(fā)和測(cè)試效率。提高服務(wù)器可用性,而無(wú)需使用物理計(jì)算機(jī)。增加或減少服務(wù)器資源以響應(yīng)所需的更改。
除Hyper-V自身的優(yōu)點(diǎn)之外,隨著以Intel和AMD為代表的越來(lái)越多的硬件和軟件廠商在推出的新產(chǎn)品中加入對(duì)虛擬化技術(shù)的支持,將大大地加快虛擬化技術(shù)被廣大用戶接受的進(jìn)程,勢(shì)必會(huì)進(jìn)_步推動(dòng)以Hyper-V為代表的虛擬化技術(shù)被廣泛地應(yīng)用到各個(gè)領(lǐng)域。
參考文獻(xiàn)
[1] Erik Giesa.虛擬化的優(yōu)勢(shì)[J].世界電信,2007(1).
[2] Michael Otey.Windows Server 2008 Hyper-V一瞥[J].Windows IT PRO Magazine(國(guó)際中文版),2008(6).
[3] Intel Corporation 2008.系統(tǒng)虛擬化——原理與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2009.
[4] 金海.計(jì)算系統(tǒng)虛擬化————原理與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
作者簡(jiǎn)介:楊浩源,專(zhuān)業(yè):信息與計(jì)算科學(xué),學(xué)校:湖南人文科技學(xué)院。