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