楊耀明
摘要:現(xiàn)階段,計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)以日新月異的發(fā)展態(tài)勢(shì)逐漸在人們的生產(chǎn)和生活中扎根。隨著現(xiàn)代科技的推廣和普及,虛擬化技術(shù)也不斷憑借其科技優(yōu)勢(shì)在各行各業(yè)得到廣泛應(yīng)用。通過(guò)虛擬機(jī)集群,能夠最大限度地對(duì)現(xiàn)有服務(wù)器資源進(jìn)行有效整合和利用,從而使得數(shù)據(jù)中心的耗電量可以控制在一個(gè)合理的范圍內(nèi),充分踐行綠色發(fā)展理念。在虛擬機(jī)集群的戰(zhàn)略部署中,對(duì)于系統(tǒng)虛擬化性能的投入控制至關(guān)重要。如何通過(guò)對(duì)現(xiàn)有虛擬化方案的完善,對(duì)虛擬機(jī)性能進(jìn)行優(yōu)化,實(shí)現(xiàn)趨利避害的最大化效果,成為了虛擬機(jī)技術(shù)應(yīng)用的關(guān)鍵。該文在混合虛擬機(jī)技術(shù)的基礎(chǔ)上,對(duì)虛擬機(jī)性能的優(yōu)化進(jìn)行了研究,希望能夠?yàn)橄嚓P(guān)工作人員提供借鑒。
關(guān)鍵詞:混合虛擬機(jī)技術(shù);虛擬機(jī)性能;優(yōu)化方案
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)03-0244-02
1 虛擬機(jī)和系統(tǒng)虛擬化技術(shù)
1.1 系統(tǒng)虛擬化技術(shù)
作為虛擬化技術(shù)中的重要成員,系統(tǒng)虛擬化是通過(guò)虛擬化,將物理計(jì)算機(jī)一臺(tái)變多臺(tái)的虛擬計(jì)算機(jī)系統(tǒng)。眾所周知,在傳統(tǒng)的計(jì)算機(jī)體系中,單一的物理硬件平臺(tái)只能對(duì)應(yīng)一個(gè)相應(yīng)的操作系統(tǒng),也就是說(shuō),電腦物理硬件中所有的資源都有一個(gè)特定的操作系統(tǒng)獨(dú)占。但是,這樣所造成的明顯后果就是全球數(shù)據(jù)資源的利用效率低下,而能源消耗的大部分幾乎都集中在了操作系統(tǒng)的空閑運(yùn)行上。但是,虛擬化技術(shù)的應(yīng)用,能夠有效改善現(xiàn)狀,實(shí)現(xiàn)資源利用效率的最大化,尤其是系統(tǒng)虛擬化技術(shù),更是實(shí)現(xiàn)了物理硬件平臺(tái)與操作系統(tǒng)一對(duì)多的運(yùn)行模式,使得資源的利用效率不斷提升。為了順利實(shí)現(xiàn)系統(tǒng)的虛擬化,在傳統(tǒng)的物理硬件層和操作層之間,插入虛擬化層,使得單一的物理平臺(tái)被虛擬化,從而形成許多不同的虛擬化平臺(tái),同時(shí)為每一個(gè)虛擬平臺(tái)配置相對(duì)獨(dú)立的CPU內(nèi)存以及其他必要設(shè)備等虛擬硬件,從而營(yíng)造出相對(duì)獨(dú)立的執(zhí)行環(huán)境,從專(zhuān)業(yè)角度講,也就是虛擬機(jī)監(jiān)控器(VMM),其中VMM是Virtual Machine Monitor的簡(jiǎn)寫(xiě)。而這個(gè)通過(guò)虛擬化所形成的平臺(tái),被稱(chēng)為虛擬機(jī)(VM),也就是Virtual Machine。在虛擬機(jī)中,運(yùn)行的操作系統(tǒng)即是虛擬機(jī)操作系統(tǒng),也叫做客戶(hù)機(jī)操作系統(tǒng)(Guest Operating System)。在這種模式下,操作系統(tǒng)的運(yùn)行具有獨(dú)立性和差異性。
1.2 現(xiàn)有的系統(tǒng)虛擬化方案
現(xiàn)階段,基于軟件的完全虛擬化方案十分常見(jiàn)。在這種虛擬化方案下,虛擬平臺(tái)和現(xiàn)實(shí)平臺(tái)具有一致性,虛擬機(jī)的操作系統(tǒng)在無(wú)需調(diào)整的情況下即可正常運(yùn)行,對(duì)于虛擬CPU、虛擬內(nèi)存以及虛擬I/O設(shè)備的操作與CPU、內(nèi)存和I/O設(shè)備的操作也具有一致性。立足于實(shí)現(xiàn)的角度,指令在經(jīng)過(guò)VMM的正確處理以后,對(duì)虛擬機(jī)進(jìn)行指令下達(dá),從而實(shí)現(xiàn)對(duì)虛擬機(jī)的有效控制。在基于軟件的完全虛擬化方案下,該技術(shù)的使用無(wú)需對(duì)操作系統(tǒng)進(jìn)行修改,所以VMM的指令只能是二進(jìn)制機(jī)器碼。與此同時(shí),由于傳統(tǒng)CPU架構(gòu)具有不可虛擬化,所以,系統(tǒng)內(nèi)部會(huì)存在很多虛擬化的敏感指令。這種系統(tǒng)虛擬化的典型代表有Bochs、QEMU、Vmware、Workstation、SkyEye、Wine等。
硬件輔助虛擬化也是系統(tǒng)虛擬化方案中的典型代表,是一種具有完整意義的虛擬化方法,在這種方案下,問(wèn)題解決模式是通過(guò)增加層次來(lái)實(shí)現(xiàn)的,內(nèi)存和外部設(shè)備的訪(fǎng)問(wèn)也是通過(guò)指令才能完成。截獲處理器指令級(jí)別的同時(shí),VMM就會(huì)營(yíng)造出與真實(shí)主機(jī)相差無(wú)幾的環(huán)境。從而實(shí)現(xiàn)虛擬機(jī)的無(wú)縫運(yùn)行?,F(xiàn)階段,基于硬件的輔助虛擬化方案在x86和x86-84架構(gòu)中有著廣泛應(yīng)用。Intel中的VT-x、VT-d、EPT等技術(shù)都是其中的典型代表。
準(zhǔn)虛擬化技術(shù)是通過(guò)對(duì)虛擬機(jī)操作系統(tǒng)內(nèi)核的代碼修改,有效避免虛擬化敏感指令,回避虛擬化漏洞、使得VMM對(duì)物理資源虛擬化得以實(shí)現(xiàn)的技術(shù)。在這種方案下,環(huán)壓縮技術(shù)是典型手段,是將虛擬化層(VMM)插入到傳統(tǒng)操作層和物理硬件層之間的主要方法。Xen平臺(tái)是應(yīng)用準(zhǔn)虛擬化技術(shù)最典型的代表,阿里巴巴、華為等云計(jì)算服務(wù)提供商都是以Xen平臺(tái)的虛擬化方案為基礎(chǔ)的。
1.3 不同虛擬化方案之間的優(yōu)缺點(diǎn)
完全虛擬化方案的優(yōu)勢(shì)在于實(shí)現(xiàn)虛擬機(jī)和物理機(jī)平臺(tái)的互異性的,物理硬件與虛擬平臺(tái)實(shí)現(xiàn)了一對(duì)多的關(guān)系,成本控制效果十分明顯。與此同時(shí),虛擬機(jī)操作系統(tǒng)不需要為了迎合虛擬技術(shù)而做出修改,使得其普適性十分強(qiáng)。但是其缺點(diǎn)也十分致命,其缺點(diǎn)在于性能的急速下降。完全虛擬化的運(yùn)行新能最高也只能達(dá)到非虛擬化環(huán)境下的三分之一,在實(shí)際使用的范圍也將局限在小型底層系統(tǒng)的開(kāi)發(fā)和調(diào)試。
與完全虛擬化技術(shù)相比,硬件輔助虛擬化技術(shù)使得系統(tǒng)虛擬化的設(shè)計(jì)和實(shí)現(xiàn)更加簡(jiǎn)化,完全虛擬化的性能瓶頸也得到打破,其兼容性好,性能提高,可靠性得到強(qiáng)化,系統(tǒng)設(shè)計(jì)得以簡(jiǎn)化是主要的優(yōu)點(diǎn),為系統(tǒng)的運(yùn)行營(yíng)造成了更大的擴(kuò)展空間,軟件運(yùn)行環(huán)境的靈活性不斷提高,為業(yè)務(wù)的連續(xù)性需求提高了可靠保障,對(duì)于控制潛在漏洞和風(fēng)險(xiǎn)至關(guān)重要。但是硬件輔助虛擬化技術(shù)并不是十全十美的,其中,部分虛擬化語(yǔ)義尚未完全覆蓋,虛擬化擴(kuò)展性能的普適性還需要加強(qiáng)等都是其顯著缺點(diǎn)。
與前兩者相比,準(zhǔn)虛擬化技術(shù)具有兩大優(yōu)勢(shì):其一表現(xiàn)在純軟件虛擬化的層面上,虛擬化技術(shù)的成本控制能夠得到最優(yōu)的解決方案,比如消除冗余代碼、減少地址空間切換、控制內(nèi)存復(fù)印等;其二表現(xiàn)在虛擬層和上層操作系統(tǒng)之間的語(yǔ)義鴻溝(Semantic Gap)得以消除,有效地提高了整個(gè)系統(tǒng)的管理效率。所謂的語(yǔ)義鴻溝(Semantic Gap),是指VMM不能獲取虛擬系統(tǒng)內(nèi)部運(yùn)行狀態(tài),不能進(jìn)行資源最優(yōu)調(diào)配的一種現(xiàn)象。但是在準(zhǔn)虛擬化技術(shù)的實(shí)際開(kāi)發(fā)和應(yīng)用過(guò)程中,修改VMM是最核心手段,也是最大的問(wèn)題所在。
2 Xen虛擬化平臺(tái)
如下圖1所示,Xen虛擬化平臺(tái)的核心組件包括VMM和特權(quán)虛擬機(jī)。VMM直接在硬件之上運(yùn)行,負(fù)責(zé)各種虛擬化資源的管理,下層虛擬機(jī)的運(yùn)行接口也由VMM來(lái)負(fù)責(zé)。在Xen虛擬化平臺(tái)上,運(yùn)行的虛擬機(jī)既可以是PVM(PVM是準(zhǔn)虛擬化虛擬機(jī)Paravirtualized Virtual Machine的英文縮寫(xiě)),也可能是HVM(HVM是指硬件輔助虛擬化虛擬機(jī)Hardware-assisted Virtual Machine的英文縮寫(xiě))。雖然PVM的內(nèi)部運(yùn)行經(jīng)過(guò)虛擬化修改,而HVM未經(jīng)修改,但是在使用過(guò)程中,用戶(hù)控件程序都無(wú)需作出變動(dòng)。在實(shí)際使用過(guò)程中,Xen支持的硬件平臺(tái)有很多,x86-32、x86-64、IA64等都是主要的官方的版本支持。另外,Embedded XEN on ARM platforms這一非官方架構(gòu)也得到了Xen的支持。由此可見(jiàn),Xen軟件具有很強(qiáng)的可移植性,同時(shí)支持硬件輔助虛擬技術(shù)和準(zhǔn)虛擬化技術(shù),應(yīng)用群體十分廣泛,開(kāi)源社區(qū)的支持力量強(qiáng)大等特點(diǎn)。
圖1 Xen虛擬化架構(gòu)
3 基于混合虛擬化技術(shù)的虛擬機(jī)性能優(yōu)化
3.1 混合虛擬化的總體設(shè)計(jì)
運(yùn)用混合虛擬化方案對(duì)虛擬機(jī)的性能進(jìn)行優(yōu)化,是現(xiàn)階段的重要研究課題。在實(shí)踐中,其核心設(shè)計(jì)思想為,在硬件輔助虛擬機(jī)容器中運(yùn)行準(zhǔn)虛擬化操作系統(tǒng),將準(zhǔn)虛擬化和硬件輔助虛擬化相互結(jié)合,實(shí)現(xiàn)二者的優(yōu)勢(shì)互補(bǔ),不斷對(duì)虛擬機(jī)的性能進(jìn)行優(yōu)化,提高總體性能。在實(shí)現(xiàn)過(guò)程中,CPU和內(nèi)存的虛擬化,有賴(lài)于硬件輔助虛擬化技術(shù)來(lái)實(shí)現(xiàn),對(duì)于I/O的虛擬化,需要在硬件輔助虛擬化技術(shù)的基礎(chǔ)上,引入準(zhǔn)虛擬化技術(shù)來(lái)處理,從而有效降低I/O在事件處理過(guò)程中“陷入—模擬執(zhí)行”發(fā)生就幾率,減少不必要的成本投入。在實(shí)際中,Hybrid PVM和Hybrid HVM是混合虛擬化技術(shù)比較可行的方案,雖然目標(biāo)相同,但是實(shí)現(xiàn)細(xì)節(jié)、實(shí)際的可操作性都具有明顯的差異性。
3.2 Xen虛擬化平臺(tái)下混合虛擬化方案的實(shí)現(xiàn)
關(guān)于Hybrid PVM和Hybrid HVM,二者的共同目標(biāo)是在HVM容器中運(yùn)行已經(jīng)優(yōu)化過(guò)的準(zhǔn)虛擬化操作系統(tǒng),讓硬件輔助虛擬化技術(shù)和準(zhǔn)虛擬化技術(shù)實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),優(yōu)化虛擬機(jī)的性能。從工程角度講,Hybrid HVM的可行性更高,在Xen虛擬化平臺(tái)下,借由此方案進(jìn)行混合虛擬系統(tǒng)的開(kāi)發(fā),能夠?yàn)榉桨傅目刹僮餍蕴峁┍U?。為了保證其能夠順利實(shí)施,應(yīng)該在VMM中添加混合虛擬化功能,和混合虛擬化功能發(fā)揮作用的接口。其中,主要的技術(shù)點(diǎn)在于硬件輔助頁(yè)表、中斷處理路徑以及設(shè)備驅(qū)動(dòng)。
4 結(jié)束語(yǔ)
隨著計(jì)算機(jī)技術(shù)的不斷進(jìn)步,虛擬化技術(shù)應(yīng)運(yùn)而生,對(duì)于計(jì)算機(jī)技術(shù)的發(fā)展起到了重要推動(dòng)作用。而所謂的系統(tǒng)虛擬化,即System Virtualization,則是虛擬化技術(shù)中的重要一支,它以整個(gè)計(jì)算機(jī)為抽象粒度,對(duì)于提高資源的利用效率,減少能耗有著重要意義?,F(xiàn)階段,全新的數(shù)據(jù)中心部署和管理方式對(duì)于系統(tǒng)虛擬化技術(shù)提出了更高的要求,對(duì)于提高管理工作的高效和便捷意義重大,筆者根據(jù)現(xiàn)階段的新形勢(shì),對(duì)混合虛擬化技術(shù)的虛擬機(jī)性能優(yōu)化方案進(jìn)行了探討,現(xiàn)實(shí)意義十分深遠(yuǎn)。
參考文獻(xiàn):
[1] 臺(tái)遠(yuǎn)方. MIPS架構(gòu)混合虛擬化系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)與性能優(yōu)化[D].北京:中國(guó)科學(xué)院大學(xué),2014.
[2] 朱良偉.面向性能優(yōu)化的虛擬機(jī)熱遷移技術(shù)研究[D].杭州:浙江大學(xué),2014.