李廬 哈焱
摘要:隨著個(gè)人計(jì)算機(jī)系統(tǒng)性能的顯著提升以及X86架構(gòu)的服務(wù)器系統(tǒng)的廣泛使用,實(shí)驗(yàn)室的服務(wù)器設(shè)備面臨計(jì)算機(jī)資源閑置的問題,如何充分挖掘利用現(xiàn)有設(shè)備的潛力,在不新增硬件的前提下實(shí)現(xiàn)更多的功能、提供多種服務(wù),這些都成為廣為關(guān)注的問題。本文就目前新型的虛擬機(jī)技術(shù)在提高實(shí)驗(yàn)室現(xiàn)有服務(wù)器設(shè)備使用的使用效率,充分發(fā)揮現(xiàn)有的計(jì)算資源,如何深入挖掘服務(wù)器功能等方面的問題進(jìn)行了相關(guān)研究。
關(guān)鍵詞:硬件;虛擬機(jī)技術(shù);服務(wù)器
中圖分類號(hào): TP391.9? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)11-0210-03
Application of Virtual Machine Technology in Experimental Server
LI Lu1, HA Yan2
(1.Dean's Office, Anhui University of Finance & Economics, Bengbu 233030, China; 2.Asset Management Division, Bengbu College, Bengbu 233030, China)
Abstract: With the significant improvement of the performance of personal computer system and the widespread use of x86 architecture server system, the server equipment in the laboratory is facing the problem of idle computer resources. How to fully exploit the potential of existing equipment, achieve more functions and provide a variety of services without adding new hardware has become a widely concerned problem. In this paper, the new virtual machine technology in improving the use efficiency of the existing server equipment in the laboratory, give full play to the existing computing resources, and how to deeply mine the server functions and other issues are studied.
Key words: hardware; virtual machine technology; server
1 引言
Intel和AMD均認(rèn)識(shí)到開發(fā)新型虛擬機(jī)技術(shù)的迫切需求,借助新型中央處理器,從硬件層上直接支持虛擬機(jī)的技術(shù)浮出水面。這種虛擬機(jī)技術(shù)在不增加CPU工作負(fù)荷的情況下,實(shí)現(xiàn)更為穩(wěn)定和高效的虛擬機(jī)應(yīng)用。它可以使個(gè)人用戶僅用一臺(tái)PC即可同時(shí)運(yùn)行多個(gè)獨(dú)立平臺(tái),并分別進(jìn)行多媒體制作、游戲、上網(wǎng)沖浪等應(yīng)用而無不干擾。即使某個(gè)平臺(tái)宕機(jī)也無須重啟計(jì)算機(jī),不會(huì)對(duì)其他平臺(tái)上的操作產(chǎn)生任何影響。通過虛擬遷移服務(wù)器來確保其提供服務(wù)的連續(xù)運(yùn)行,實(shí)現(xiàn)硬件資源的優(yōu)化分配,將應(yīng)用程序與硬件平臺(tái)隔離以提高其運(yùn)行的穩(wěn)定性,便于管理和系統(tǒng)轉(zhuǎn)移[1]。
2 硬件級(jí)虛擬機(jī)技術(shù)
2.1 何為硬件級(jí)虛擬化技術(shù)
所謂硬件級(jí)虛擬化技術(shù),就是通過擴(kuò)展處理器的功能,實(shí)現(xiàn)對(duì)虛擬機(jī)軟件的直接支持,以及為虛擬機(jī)提供更為直接控制硬件的手段,它直接推動(dòng)了新一輪優(yōu)化硬件效率和數(shù)據(jù)處理能力的浪潮。處理器制造商Intel公司將虛擬技術(shù)(VT)整合到新推出的所有CPU中,包括推出的Pentium D 雙核CPU、Itanium2以及64位的Xeon處理器中。而AMD公司也開發(fā)基于其自身處理器平臺(tái)的虛擬機(jī)技術(shù)[2]。
2.2 硬件級(jí)虛擬機(jī)技術(shù)的功能
(1) 天然的防火墻和防病毒功能
在獨(dú)立的虛擬機(jī)中,你不必?fù)?dān)心來自網(wǎng)絡(luò)的黑客和病毒的入侵,虛擬機(jī)會(huì)給你一個(gè)安全的家園。硬件級(jí)虛擬機(jī)在關(guān)閉前,將運(yùn)行過程中改變的系統(tǒng)信息提取出來獨(dú)立保存,而不是直接改寫整個(gè)系統(tǒng)參數(shù)。這樣可以有效防止系統(tǒng)被病毒感染或運(yùn)行一些難以刪除的插件程序。在重新啟動(dòng)虛擬機(jī)后,可以有選擇的加載系統(tǒng)信息,不必再為病毒等問題而困擾。
(2) 系統(tǒng)加密
Intel的LaGrande技術(shù)借助Vanderpool可以提供硬件支持的安全加密功能,同時(shí)可以根據(jù)認(rèn)證的需要設(shè)置不同的加密強(qiáng)度。通過VMM管理和加密不同的虛擬機(jī)分區(qū),將每個(gè)虛擬機(jī)設(shè)置為不同的權(quán)限級(jí)別,以阻止其他虛擬機(jī)上的程序?qū)用懿糠值脑L問。
(3) 快速重建系統(tǒng)
如果你是電腦玩家,熱衷于折騰各類軟件,不必再擔(dān)心操作系統(tǒng)被破壞,也無需反復(fù)的克隆重裝系統(tǒng),只要使用重建系統(tǒng)功能即可將虛擬機(jī)恢復(fù)如初。
(4) 管理數(shù)字辦公室
在辦公環(huán)境中,最讓系統(tǒng)管理員苦惱的莫過于對(duì)辦公室中每臺(tái)PC的管理。每臺(tái)終端上創(chuàng)建的多個(gè)虛擬機(jī)中,其中將其中一臺(tái)虛擬機(jī)設(shè)置為管理虛擬機(jī),專門用于對(duì)該用戶的管理。這樣,管理員只需要借助網(wǎng)絡(luò)即可實(shí)現(xiàn)對(duì)PC的管理,如圖1所示。
3 Intel Vanderpool硬件虛擬機(jī)技術(shù)
Intel公司針對(duì)基于純軟件技術(shù)的虛擬機(jī)的諸多問題,開發(fā)出基于處理器芯片的硬件支持虛擬機(jī)技術(shù)。該技術(shù)2005年春季開始研發(fā),至今已經(jīng)基本成熟,其正式代號(hào)為Vanderpool。Vanderpool包括兩種技術(shù)標(biāo)準(zhǔn):基于IA32處理器的VT-x技術(shù)以及基于安騰(Itanium)架構(gòu)的VT-i。Vanderpool要實(shí)現(xiàn)的核心目標(biāo)就是提高虛擬機(jī)的運(yùn)行效率,即客戶端與VMM的雙向數(shù)據(jù)轉(zhuǎn)換效率[3]。
3.1 Vanderpool的核心特色
(1) 新型、更高權(quán)限級(jí)別的VMM
虛擬機(jī)中客戶操作系統(tǒng)和應(yīng)用軟件均可以在其原先設(shè)計(jì)的權(quán)限級(jí)別上運(yùn)行,同時(shí)VMM擁有控制硬件平臺(tái)的相應(yīng)權(quán)限[4]。通過解決運(yùn)行權(quán)限級(jí)別問題可以降低客戶操作系統(tǒng)與主操作系統(tǒng)發(fā)生沖突的可能性,簡(jiǎn)化VMM的控制,提高對(duì)客戶操作系統(tǒng)的兼容性能。
(2) 獨(dú)立的VMM
通過將VMM和操作系統(tǒng)進(jìn)行隔離,即使客戶操作系統(tǒng)的內(nèi)核未做相應(yīng)的改造也可以與VMM協(xié)調(diào)工作[5]。該技術(shù)的優(yōu)點(diǎn)對(duì)于虛擬機(jī)軟件開發(fā)商顯得尤為突出。在進(jìn)行虛擬機(jī)軟件開發(fā)時(shí),程序員不需要再煞費(fèi)苦心的為支持某個(gè)專用操作系統(tǒng)而大量改寫其軟件代碼,也不再需要因?yàn)橛布到y(tǒng)的更新而完全重新開發(fā)VMM。
(3) 基于硬件的指令轉(zhuǎn)換
由相應(yīng)的硬件設(shè)備完成客戶操作系統(tǒng)與VMM間的數(shù)據(jù)和指令的轉(zhuǎn)換。與以往純粹軟件轉(zhuǎn)換的方式相比,采用硬件轉(zhuǎn)換的方式避免了大量、復(fù)雜的軟件運(yùn)算,執(zhí)行效率更高。借助硬件設(shè)備來實(shí)現(xiàn)VMM與硬件設(shè)備的數(shù)據(jù)轉(zhuǎn)換可以顯著提高每個(gè)虛擬機(jī)的邏輯獨(dú)立性,從而實(shí)現(xiàn)多個(gè)虛擬機(jī)間的安全隔離。
(4) 基于硬件的內(nèi)存保護(hù)
將處理器狀態(tài)信息保存在VMM和客戶操作系統(tǒng)專用的內(nèi)存區(qū)域中。這種方式可以提高指令的轉(zhuǎn)換速度,同時(shí)確保程序的完整性[6]。
3.2 Vanderpool的技術(shù)研究
Intel針對(duì)不同架構(gòu)處理器使用的兩種虛擬技術(shù)。VT-x用于IA32架構(gòu)的處理器,VT-I提供基于安騰(Itanium)處理器的虛擬技術(shù)。借助新型微處理器的支持,實(shí)現(xiàn)更為靈活穩(wěn)定的虛擬機(jī)。下面分別介紹IA32和IA64架構(gòu)的安騰處理器針對(duì)支持虛擬機(jī)的新設(shè)計(jì)。
(1)? VT-x技術(shù)
VT-x技術(shù)是通過虛擬機(jī)擴(kuò)展(VMX)的技術(shù)來擴(kuò)充現(xiàn)有IA32架構(gòu)的CPU操作方式[7]。使用這種新的CPU操作方式,可以從根本上解決以前虛擬機(jī)運(yùn)行中的“環(huán)混淆”的問題,而不需要對(duì)客戶操作系統(tǒng)的內(nèi)核進(jìn)行任何改寫。這樣,在虛擬機(jī)上可以廣泛使用各種操作系統(tǒng)。VMX包含有兩種全新的CPU操作方式:VMX根操作(root operation)和VMX非根操作(non-root operation)。圖2中綠色環(huán)表示了VMX根操作用于處理VMM與客戶系統(tǒng)之間的操作,它將具體的VMM與每臺(tái)虛擬機(jī)進(jìn)行隔離。
VMX的根操作運(yùn)行模式相當(dāng)于沒有使用虛擬技術(shù)的普通IA32 的運(yùn)行狀態(tài)。VMM運(yùn)行使用根操作,而客戶系統(tǒng)使用非根操作。這樣可以使客戶操作系統(tǒng)的運(yùn)行級(jí)別提升為0級(jí)別,即操作系統(tǒng)級(jí)別[8]。而VMM則可以使用任意運(yùn)行級(jí)別,如圖3所示。
另外,VT-x定義了兩種新的轉(zhuǎn)換方式:VMM至客戶系統(tǒng)的信息轉(zhuǎn)換稱為“VM進(jìn)入”,而從客戶系統(tǒng)到VMM的信息轉(zhuǎn)換稱為“VM退出”。使用這種數(shù)據(jù)及指令的轉(zhuǎn)換方式可以直接簡(jiǎn)化虛擬機(jī)軟件的設(shè)計(jì)編寫工作量,減少系統(tǒng)調(diào)用的延時(shí)。同時(shí)還可以為VMM和每臺(tái)虛擬機(jī)分配各自專屬的內(nèi)存空間,使其可以完全獨(dú)立使用這些內(nèi)存,如圖4所示。
(2) VT-i技術(shù)
安騰平臺(tái)上的虛擬機(jī)技術(shù)借助擴(kuò)展安騰處理器狀態(tài)寄存器以及擴(kuò)展處理器抽象層(Processor abstraction layer)固件來實(shí)現(xiàn)。對(duì)安騰處理器最主要的擴(kuò)展是在CPU中增加了一個(gè)處理器狀態(tài)位,即在處理器狀態(tài)寄存器(PSR processor status register)中增加一個(gè)新的數(shù)據(jù)位,該數(shù)據(jù)位命名為PSR.vm,所有四個(gè)運(yùn)行級(jí)別都可以用0至3的PSR.vm的數(shù)值來標(biāo)識(shí)[9]。處理器抽象層的擴(kuò)展則為VMM提供了一個(gè)可編程的接口,將一些VMM頻繁進(jìn)行的某些高頻操作定義為專用的處理過程。
4 AMD的Pacifica硬件虛擬技術(shù)
4.1 Pacifica虛擬機(jī)技術(shù)
為了應(yīng)對(duì)Intel的挑戰(zhàn),AMD開發(fā)了用于其自身CPU平臺(tái)的虛擬機(jī)技術(shù)Pacifica。Pacifica的特色在于,它更多的是針對(duì)AMD微處理器的專用設(shè)計(jì)而開發(fā)的,充分挖掘Athlon64 及 Opteron系列 CPU的潛力。首先,Pacifica采用了新型的內(nèi)存管理技術(shù),借助CPU上的專用寄存器調(diào)度每臺(tái)虛擬機(jī)使用內(nèi)存。其次,使用了一種“設(shè)備排斥向量”(device exclusion Vector),專門用于虛擬機(jī)管理需要使用DMA(direct memory access)模式的設(shè)備。
4.2 Pacifica虛擬機(jī)技術(shù)實(shí)現(xiàn)
AMD在K8系列的CPU上使用嵌套頁表(NPT)來復(fù)用集成在處理器上的內(nèi)存控制器單元CR3[10],這為pacifica控制虛擬機(jī)內(nèi)存提供了捷徑。借助NPT,每臺(tái)虛擬機(jī)都可以擁有一個(gè)專屬的CR3寄存器,從而為虛擬機(jī)虛擬出一個(gè)獨(dú)立的內(nèi)存空間。虛擬機(jī)控制和管理內(nèi)存不再需要借助軟件轉(zhuǎn)換,從而提高虛擬機(jī)的運(yùn)行速度[11]。另外一個(gè)支持硬件級(jí)虛擬機(jī)的技術(shù)是改進(jìn)了VMM對(duì)DMA的控制。DMA技術(shù)的設(shè)計(jì)初衷是創(chuàng)建一個(gè)內(nèi)存與外部設(shè)備間的高速直連傳輸通道,以降低CPU控制外部設(shè)備數(shù)據(jù)傳輸?shù)墓ぷ髁?。如果每臺(tái)虛擬機(jī)使用DMA同時(shí)讀寫一個(gè)設(shè)備或內(nèi)存的同一數(shù)據(jù)區(qū),必然會(huì)發(fā)生系統(tǒng)混亂和數(shù)據(jù)丟失。DEV則可以解決這個(gè)問題,它指引虛擬機(jī)是否可以訪問內(nèi)存的哪些頁表,管理每個(gè)客戶操作系統(tǒng)有序的獨(dú)立訪問各種外部設(shè)備,包括磁盤、顯卡等,即支持多個(gè)虛擬機(jī)并發(fā)使用DMA處理同一個(gè)設(shè)備。
5 結(jié)束語
虛擬機(jī)技術(shù)為虛擬化帶來了春天,同時(shí)也為擁有大量服務(wù)器的實(shí)驗(yàn)室?guī)硪粋€(gè)全新的世界。正如DOS時(shí)代,在單任務(wù)世界中工作,生活顯得就是如此簡(jiǎn)單。
參考文獻(xiàn):
[1] 申寶敏,王雅卓.VMware的高可用性技術(shù)在高校信息系統(tǒng)中的應(yīng)用[J].無線互聯(lián)科技,2015(10):140-141.
[2] 周雪梅,茍鈺,黃健.虛擬機(jī)服務(wù)器在計(jì)算機(jī)實(shí)驗(yàn)教學(xué)和管理的應(yīng)用[J].實(shí)驗(yàn)室科學(xué),2019,22(3):107-110.
[3] 張鵬.Xen全虛擬化機(jī)制下Pcnet虛擬網(wǎng)卡I/O性能的評(píng)估與優(yōu)化[D].南京:東南大學(xué),2010.
[4] Tim Lindholm Frank Yellin. Java虛擬機(jī)規(guī)范[M].北京:機(jī)械工業(yè)出版社,2013.
[5] Bill Venners. The Lean,Mean Virtual Machine[J].Java World,1996(6) .
[6] 張晨曦.計(jì)算機(jī)體系結(jié)構(gòu)[M].北京:高等教育出版社,2000.
[7] 付賽平.XEN外設(shè)完全虛擬化機(jī)制可擴(kuò)展性研究[D].南京:東南大學(xué),2009.
[8] 周天陽,朱俊虎,王清賢.基于VMM的Rootkit及其檢測(cè)技術(shù)研究[J].計(jì)算機(jī)科學(xué),2011,38(12):77-81.
[9] Bill Blunden.楊濤等譯.虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn):C/C++[M].北京:機(jī)械工業(yè)出版社,2003.
[10] 徐志大.硬件輔助虛擬機(jī)(HVM)rootkit的實(shí)現(xiàn)與探測(cè)[C].第十八屆全國信息保密學(xué)術(shù)會(huì)議,2008.
[11] 金成植.編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)[M].北京:高等教育出版社,2000.
【通聯(lián)編輯:梁書】