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