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