李俊
摘要:為了實現(xiàn)計算機實驗室的資源的優(yōu)化配置以及利用效率的提升,該文選擇Hybrid HVM方案設(shè)計構(gòu)建基于Xen虛擬化的計算機實驗室整體框架,以重構(gòu)和語義獲取的方式來對虛擬機控制與管理。采取虛擬硬件輔助頁四級頁表控制機制,以虛擬機任務(wù)調(diào)度總時間為目標,虛擬事件并行處理機制為導(dǎo)向,構(gòu)建資源調(diào)度算法,通過實驗表明,該算法對虛擬機的性能影響較小,耗費時間短,提高了計算機實驗室運行與管理的效率。
關(guān)鍵詞: 虛擬技術(shù);Xen;資源配置;算法
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)06-0163-04
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展與進步,學校招生規(guī)模的不斷擴大,學生的人數(shù)呈現(xiàn)快速發(fā)展,通過現(xiàn)有設(shè)備發(fā)揮出資源的最大化,成為當前學校教學與管理的實踐的需求。在學校計算機的教學與管理環(huán)節(jié),依靠計算機實驗室,培養(yǎng)出適合當代社會需要的復(fù)合型人才,對學生的專業(yè)知識與能力的提升起到很重要的作用。計算機實驗室作為高等教育實踐活動的一個十分重要的場所,如何構(gòu)建一個高效的計算機處理機制、資源優(yōu)化配置方式,實驗室的管理機制更合理,實驗室的隊伍不斷加強,在有限的資源下得到最大計算機利用效率成為一直研究的問題[1,2,3]。受到計算機實驗室中的計算機數(shù)量較多,數(shù)據(jù)處理繁雜等因素的影響,現(xiàn)有的條件下管理模式存在很大的缺陷,造成整個實驗室的利用率降低,管理水平存在明顯的不足,很容易在運行管理環(huán)節(jié)出現(xiàn)故障,不及時的進行故障的處理與維修很容易造成實驗室事故的發(fā)生。
為了有效地提高計算機實驗室資源的有效配置,提高管理的效率,設(shè)備的故障發(fā)生的概率降至最低,本文基于虛擬化技術(shù)引入到計算機實驗室的設(shè)計與建設(shè)的過程中,構(gòu)建實驗的整體實驗教學平臺,設(shè)計了計算機資源分配的調(diào)度算法,有效地提高了實驗室的教學服務(wù)能力與水平,實驗室管理效率得到最優(yōu)。
1 虛擬計算機實驗室
1.1虛擬化技術(shù)
虛擬化技術(shù)始于對分時(Time Sharing)操作系統(tǒng)的需求[4]。虛擬化技術(shù)通過虛擬機來實現(xiàn)其功能的,通過在虛擬的環(huán)境中進行資源狀態(tài)的模擬后實現(xiàn)資源的有效管理與控制。虛擬化技術(shù)可以通過內(nèi)存的虛擬化來完成內(nèi)存容量的擴大,利用虛擬內(nèi)存的進程尋址的方式完成對多個CPU的模擬虛擬操作,在同一個平臺上運行多個操作系統(tǒng)。在不同區(qū)域內(nèi)每一個運行程序都相互隔離,使得資源的利用率得到提升。虛擬機管理器(VMM)的主要功能在于管理系統(tǒng)資源與客戶的操作系統(tǒng)。從系統(tǒng)架構(gòu)上來講,虛擬機管理器在操作系統(tǒng)與物理硬件間存在,每一個虛擬機上都存在一個模擬的硬件虛擬環(huán)境空間。通過虛擬機可以將不同的虛擬計算機定義在同一的計算機上,使得運營的資金成本以及空間成本降低,解決了系統(tǒng)開發(fā)與一致的難度問題。
對于虛擬化來講,其主要的虛擬技術(shù)包含了指令級虛擬化、硬件級虛擬化、操作系統(tǒng)級虛擬化、程序庫級虛擬化以及編程語言級虛擬化等分類。虛擬機管理器作為多多個計算機管理,通過VMM將不同的計算機位置分為混合模式((Hybrid Model)、主機模式(Hosted-based Mode)、獨立監(jiān)視器模式(Stand-alone Hypervisor Model),如圖1所示。
虛擬化技術(shù)通過一些特權(quán)指令的方式執(zhí)行操作產(chǎn)生陷入(Trap),下層的VMM對該指令進行執(zhí)行后,真實的內(nèi)存與處理器寄存器的相關(guān)信息被操作系統(tǒng)虛擬機利用后進行反饋,保證了VMM完全控制虛擬機,彼此間相互隔離。VMware和Xen是虛擬機的代表,是作為混合模式的一種模式,模擬了虛擬I/O設(shè)備的運行過程,并提供了基礎(chǔ)的虛擬服務(wù)功能。將虛擬技術(shù)應(yīng)用在計算機實驗室的設(shè)計與建設(shè)的環(huán)節(jié),對實驗環(huán)節(jié)的構(gòu)建產(chǎn)生很大的影響,可以靈活地滿足學生的實驗要求與實踐環(huán)境。
1.2虛擬化計算機實驗室總體框架
為了構(gòu)建虛擬化的計算機實驗室,本文設(shè)計采取的是混合虛擬化的設(shè)計思想,通過虛擬化的操作系統(tǒng)運行與硬件輔助虛擬機器上,實現(xiàn)虛擬化計算機的整體性能的提升。本文采用x86/x86_64 CPU中的虛擬化擴展頁表(EPT)和虛擬化拓展指令VT-x來共同對數(shù)據(jù)進行處理,從而實現(xiàn)整個計算機實驗室環(huán)境的數(shù)據(jù)處理。通過引入虛擬中斷以及事件通道等虛擬化技術(shù)對I/O 虛擬化事件進行處理,避免了在進行事件處理過程中出現(xiàn)“陷入-模擬執(zhí)行”的問題,降低了事件處理內(nèi)存的利用率,保證了吞吐率。虛擬化技術(shù)本文選擇Hybrid HVM方案,可以有效地對系統(tǒng)內(nèi)存的入侵性降低,調(diào)試便利,可行性度高。如圖2所示,為該方案的框架結(jié)構(gòu)。
本文提出基于Xen 虛擬化平臺下的虛擬化的計算機實驗室設(shè)計與建設(shè),該方案主要對每一個計算機融合了虛擬化的工作特性,增加了虛擬功能的系統(tǒng)接口。如圖3所示,為本文設(shè)計的關(guān)于虛擬化的計算機實驗室的體系結(jié)構(gòu)。
在本文設(shè)計中國,將事件處理機制,傳輸通道,網(wǎng)絡(luò)交換進行分層后,虛擬實驗室的物理服務(wù)器作為數(shù)據(jù)處理服務(wù)器的主機,以虛擬為容器中的單元,建立各個資源群,每一個資源群進行數(shù)據(jù)的存儲與運算的處理,為虛擬服務(wù)器提供服務(wù)。與Xen虛擬監(jiān)控器對虛擬主機的上運行的每一個操作系統(tǒng)進行監(jiān)控與控制。當事件發(fā)生后,以語義的獲取與重構(gòu)的方式完成了數(shù)據(jù)的處理。該實驗室的整體結(jié)構(gòu)框架模式遠小于操作系統(tǒng)代碼數(shù)量,具有更小的可信基;在運行的過程中,虛擬機單元是彼此獨立的,具有更高的隔離性能;
2 基于虛擬化技術(shù)的計算機資源優(yōu)化配置
2.1硬件輔助虛擬化虛擬機頁表設(shè)計
本文設(shè)計的虛擬化計算機實驗室的內(nèi)存虛擬化技術(shù)可以利用Xen技術(shù)對其進行EPT操作控制,虛擬機表控制機制的開啟后進行事件的寫入。寫操作環(huán)節(jié)物理頁錯誤,很容導(dǎo)致VM exit,該種控制機制虛擬機的感知能力較弱。如圖4所示,本文設(shè)計的關(guān)于內(nèi)存虛擬化的技術(shù)方案,該方案通過在原有的虛擬機原型基礎(chǔ)上進行地址的邏輯翻譯后,四級頁表機制是虛擬化硬件輔助頁采用的機制,虛擬機操作系統(tǒng)采用兩級頁表機制。當前的二級頁表的物理地址才去的為CR3寄存器,并與相應(yīng)虛擬地址進行相互疊加后更新得到最新的二級頁表地址信息。在頁表中,物理基址與虛擬地址的物理基址偏移后完成新的地址的獲得。通過硬件輔助頁表內(nèi)的管理單元進行當前的物理地址的翻譯后,得到了內(nèi)存中存在的最新的地址信息。在進行虛擬機的地址訪問與信息交互的過程中,通過該輔助頁表完成了每一個虛擬機物理地址的翻譯后,虛擬機接收到該數(shù)據(jù)信息。二級頁表與四級頁表的操作機制在虛擬機的操作過程中,地址翻譯的過程基本一致。
該虛擬機的操作系統(tǒng)的硬件輔助頁的頁表設(shè)計方案,主要的工作通過硬件來完成操作。該情況下使得在虛擬機操作執(zhí)行的流程中避免了陷入到虛擬監(jiān)控器中,該機制具有很好的虛擬資源的控制機制。
在虛擬機操作的過程中,很容易產(chǎn)生一些頁表中出現(xiàn)文件寫入或者創(chuàng)建,該事件頁表的執(zhí)行操作在于系統(tǒng)的調(diào)用。當惡意程序?qū)?nèi)核的相關(guān)數(shù)據(jù)進行惡意的更改,例如修改函數(shù)的地址等操作。目標的虛擬機與該系統(tǒng)進行相互隔離后,利用事件獲取機制來對系統(tǒng)進行調(diào)用,從而實現(xiàn)虛擬機的管理。本文對頁表的數(shù)據(jù)操作事件的截取采取快速系統(tǒng)調(diào)用的方式,具體的計算流程與代碼如下所示,首選進行保存內(nèi)核入口的數(shù)據(jù)信息到寄存器中后,定義一個新的地址,來完成對相關(guān)虛擬機的初始值的修改操作。這樣就形成了一個操作頁的錯誤,根據(jù)該也標的錯誤信息尋址比較,假若該地址與定義的新地址相同,則說明該頁表進行了快速調(diào)用操作。反之,則缺頁表出現(xiàn)異常需要進行調(diào)用。完成調(diào)用后,寄存器存儲想的地址標號后就可以查詢到相關(guān)的調(diào)用代碼。
input: page一fault-addr (缺頁地址)
VMEXIT happens in the target VM;
if (the exit reason is not page fault) then
other exception handler
end if
if (page-fault-addr != inexit addr) then
the normal handler of page fault
end if
filter the system call about file operation
reconstruct the arguments about file operation
write the file operation information into the shared page and notify the management domain
set ETP as the original SYSENTER—EIP—MSR
the target domain continue to execute
2.2虛擬機資源調(diào)度算法
根據(jù)虛擬機存在中斷請求以及事件通道機制的共同作用,該系統(tǒng)中虛擬機的“陷入-模擬執(zhí)行”不會被I/O 事件處理機制進行影響,從而中斷處理路徑的長度大大縮短,使得CPU計算的效率大大提升。本文對虛擬化的I/O 虛擬化進行優(yōu)化,結(jié)合虛擬中斷機制以及事件通道機制共同作用下來對負載下虛擬機的處理機制設(shè)計。虛擬化中斷通過該事件通道來完成數(shù)據(jù)的處理與分發(fā),為了使得Xen虛擬管理器中斷分發(fā)給另外的虛擬處理器,針對其他的虛擬管理器進行標識后完成對應(yīng)中斷事件通道的處理,使得第一個虛擬處理器上不進行虛擬終端綁定半虛擬化內(nèi)核。
由于特殊的原因可能存在于某個虛擬處理器上被半虛擬化內(nèi)核進行中斷靜態(tài)綁定操作,pin和free為虛擬中斷的兩種狀態(tài),第一種只能進行特定虛擬處理的數(shù)據(jù)分發(fā);第二種狀態(tài)可以進行自由動態(tài)的數(shù)據(jù)分發(fā)。如圖5所示,顯示了基虛擬器中斷分發(fā)過程,該過程經(jīng)過閾值與計數(shù)器間的比對統(tǒng)計分析后,獲取得到下一個虛擬處理器是否接受中斷遷移操作。
針對當前虛擬機的調(diào)度來講Xen常用的算法為Credit調(diào)度算法,但是該算法在多個虛擬機的結(jié)構(gòu)的計算機實驗室計算中,沒有充分地考慮到多個虛擬機的并行運行的關(guān)系,知識基于對不得處理器以及時間來進行數(shù)據(jù)的處理,面向多個虛擬機的并行調(diào)度問題存在很大的不足。為了能夠更好地對計算機虛擬化實驗室進行系統(tǒng)資源進行分配,滿足不同人員的性能需求,使得事件處理時間最小。本文針對虛擬機管理器的調(diào)度算法進行改進,設(shè)計出符合并行任務(wù)請求的調(diào)度控制機制,滿足并行任務(wù)運行的時間最小,整體性能得到提升。
對于N個虛擬機系統(tǒng)來講,虛擬機集合可以表示為,其中,根據(jù)并行結(jié)構(gòu)模型對該虛擬機的事件進行描述。
定義虛擬機上的每個第i層,第j個任務(wù)節(jié)點為,每一個節(jié)點虛擬機訪問的時間為。對于一個虛擬機實驗室來講,包含了多個任務(wù)并行管理。定義該虛擬機訪問的層數(shù)為I,在每一層上有個任務(wù)并行操作管理。假設(shè)虛擬實驗室具有M個任務(wù)數(shù),在某個時間點上任務(wù)數(shù)正在執(zhí)行定義為。實驗室中存在K個虛擬機操作系統(tǒng),在進行任務(wù)并行處理的虛擬機的數(shù)目為,該條件下存在:;在實驗室虛擬機管理系統(tǒng)中,對并行任務(wù)的虛擬機進行系統(tǒng)的分配定義為;表示VMM對不同的虛擬機進行內(nèi)核分配;針對每一個任務(wù)的內(nèi)核分配可以用來表示。當虛擬機上有事件驅(qū)動響應(yīng)后,轉(zhuǎn)入到該虛擬機的調(diào)度算法進行任務(wù)分配與處理。
當虛擬機事件進行數(shù)據(jù)分發(fā)過程中,在首層的任務(wù)節(jié)點上,不同的虛擬機接收到分配來的數(shù)據(jù)信息后,將其轉(zhuǎn)發(fā)到不同的處理內(nèi)核上。當?shù)?層的節(jié)點數(shù)目大于當前虛擬機的個數(shù)K情況下,則第一層的任務(wù)節(jié)點進行分批處理。假設(shè)總共虛擬機數(shù)目大于等于每一層的任務(wù)節(jié)點數(shù)目,采取并發(fā)處理的方式來完成多批次任務(wù)的處理直到分發(fā)完成。此時總的時間為:
假設(shè)為并發(fā)任務(wù)完成的總體時間,為每一個并發(fā)任務(wù)的處理時間,在某個時間內(nèi)不同的任務(wù)處理,且沒一個任務(wù)存在彼此的依賴關(guān)系,以分配因子對不同層次上的任務(wù)進行注意分配到實驗室虛擬機上,處理器上與相互對應(yīng),保證在相同的時間點上進行任務(wù)的處理。當同一個層次上并行任務(wù)較多,并發(fā)處理機制采取分步的形式進行處理。當N<|D|時,為了完成實驗室內(nèi)的虛擬機的資源的分配,N個虛擬機獲取得到每一個處理器上分配而來的數(shù)據(jù)信息后,對該虛擬機上的任務(wù)進行監(jiān)測后,當該任務(wù)完成后,可以進行位于同一個層次上的虛擬機的任務(wù)處理。此時的總的時間為:
其中表示了處于第i層的任務(wù)分配參數(shù),因此可以得到并行任務(wù)調(diào)度算法的總的處理時間如下所示:
為了對虛擬機任務(wù)調(diào)度達到并行處理最大化,監(jiān)測每一個任務(wù)節(jié)點的關(guān)聯(lián)性,當下一層任務(wù)基點處理完畢后,進入到相同任務(wù)節(jié)點下的操作,避免了因為等待同一層下的不相干的任務(wù)處理使得內(nèi)核的利用效率得到提升。
2.3虛擬機資源調(diào)度算法流程
如圖6所示,為本文設(shè)計的虛擬機并行任務(wù)調(diào)度算法流程。
從該流程中可以看出,在實驗室的多位虛擬機的運行管理過程中,以一個虛擬機系統(tǒng)作為調(diào)度單元,每一個單元都對應(yīng)著一個Domain。當虛擬機事件驅(qū)動后,產(chǎn)生一個調(diào)度任務(wù),該任務(wù)如果是一個串行的任務(wù),可以采取原有的調(diào)度算法;當不同的虛擬機同時任務(wù)進行分發(fā)的情況下,采取本文設(shè)計的算法。當進入到并行算法調(diào)度模式下,分配每一個虛擬內(nèi)核來進行任務(wù)資源的分配與調(diào)度,實現(xiàn)多任務(wù)的調(diào)度執(zhí)行控制與管理。
當虛擬機任務(wù)進行數(shù)據(jù)發(fā)送后,調(diào)度的方法根據(jù)事件的種類來進行判定,本文定義如下枚舉結(jié)構(gòu):
Structure Scheduling Enumeration Structure
typedef enum{
COM, // commom tasks.
CON, // concurrent tasks.
}TaskType;
本文對虛擬機多個任務(wù)并行處理的算法如下代碼所示:
Input: V– set of tasks
Output: The time and result of tasks have finished.
When parallel mission coming,
Initialize Vi.
For each map i do
Vs = Vi.
If Vi <= N, then
Assign a PCPU to each task.
Else
While (Vs>0) do
Choose N unhandled tasks;
Assign a PCPU to each of them;
Vs= Vs-N.
End While.
End If.
End For.
3 實驗驗證
為了驗證本文虛擬計算機設(shè)計的合理性與調(diào)度資源的可靠性,本文選擇的實驗平臺為X額n7550處理器,頻率為3.16GHz,服務(wù)器為DDR3的6GB,硬盤為2TB。虛擬化硬件采取Xen4.1.3作為虛擬機器,實驗室管理的機器為兩臺。配置好Xen與操作系統(tǒng)后,當系統(tǒng)在客戶端進行運行后,相應(yīng)的進程會進行創(chuàng)建后,使得寄存器CR3的內(nèi)容更新,系統(tǒng)出現(xiàn)中斷,在當前的進程中找不對虛擬機系統(tǒng)入口,主要的原因在于虛擬機創(chuàng)建不合適,如圖7所示,顯示了該虛擬機事件中斷獲取進程:
當實驗室的虛擬機操作開始后,新的進程號直接確立后,使得在該系統(tǒng)上進行相應(yīng)的進程調(diào)取,利用硬件輔助虛擬機頁表的相關(guān)事件操作方式完成調(diào)用,完成事件觸發(fā),使得虛擬機系統(tǒng)關(guān)閉,整個系統(tǒng)的監(jiān)控機制觸發(fā)。
本文選擇實驗室部署虛擬和沒有虛擬機的計算機虛擬系統(tǒng)作對比分析,測試工具選擇PCMark軟件。
從圖中可以得到該虛擬機系統(tǒng)對其影響較小,內(nèi)存的讀寫,復(fù)制以及文件的加解密的性能影響都低于百分之一,對實驗室的虛擬機管理與控制更有效。采取本文所涉及的硬件虛擬機頁表設(shè)計方案是可行的,性能的損耗在規(guī)定的范圍之內(nèi)。
為了判定本文設(shè)計的調(diào)度算法,構(gòu)造了四個并行任務(wù)程序:點乘,π估算,RC4密鑰查找和N-體問題[5,6]。在實驗室中,創(chuàng)建不同數(shù)量虛擬機,進行本文的調(diào)度算法性能的測試,對于不同的串行任務(wù)與并行任務(wù)來講,虛擬機的數(shù)量影響調(diào)度算法的性能。每一個虛擬機上設(shè)定兩個串行任務(wù)和4個并行任務(wù),算法整體迭代次數(shù)為109。在Xen上設(shè)定虛擬機的數(shù)目后,對內(nèi)核資源事件發(fā)送請求進行調(diào)度,得到如圖8所示的性能圖。可以看出該算法下的多個判定依據(jù)都得到降低,分別降低了25.61%,23.06%,28.60%,26.27%。改進后的調(diào)度算法,對任務(wù)資源進行分配到物理處理器中,使得需要較小的時間來完成多個任務(wù)。有效地提升了實驗室計算的效率
4 結(jié)束語
針對現(xiàn)有計算機實驗室的投資與資源不足的問題,為了更好地利用計算機資源,構(gòu)建一個開放式的實驗平臺,提高教學質(zhì)量與資源優(yōu)化水平,本文基于虛擬化的設(shè)計技術(shù),構(gòu)建虛擬計算機實驗室,滿足實驗環(huán)節(jié)的多樣化需求,構(gòu)建虛擬實驗室的整體框架結(jié)構(gòu),并提出了基于虛擬化的實驗室的資源優(yōu)化配置算法,通過計算實驗證明該算法與結(jié)構(gòu)的優(yōu)越性,為高校計算機實驗教學環(huán)境與資源的優(yōu)化提供了幫助。隨著現(xiàn)有設(shè)備的開發(fā)與設(shè)計,學生的實踐得到最大拓展。隨著虛擬化技術(shù)的不斷完善與發(fā)展,現(xiàn)代高校的計算機實驗室的建設(shè)與發(fā)展在虛擬化技術(shù)的作用下更好地滿足社會發(fā)展的需求,促進高校計算機學科更好地發(fā)展。
參考文獻:
[1] 姜麗偉.教學實驗設(shè)備使用與管理的優(yōu)化[J].實驗技術(shù)與管理,2011,28(10):206-208.
[2] Biun A.Virtualization techniques: A methodical review of Xen and KVM [C]//Communication in Computer and Information Science,2011:399-410,
[3] Carbone, Martim. Secure and robust monitoring of virtual machines through guest-assisted introspection [C].Lecture Notes in Computer Science,2012:22-41
[4] 項國富,金海,鄒德清,陳學.基于虛擬化的安全監(jiān)控[J].軟件學報,2012(2):12-17.
[5] 曲文濤,李明祿,翁楚良,跨虛擬機的可信檢測[J].計算機科學與探索,2010(2).
[6] 李超. Xen VMX虛擬網(wǎng)卡的研究和模型改進[D]. 上海:上海交通大學, 2008:11-12.
[7] 石磊,鄒德清.金海. Xen 虛擬化技術(shù) [M].武漢:華中科技大學出版社,2009:220-226.
[8] 金海,鐘阿林,吳松,等.多核環(huán)境下虛擬機VCPU 調(diào)度研究問題與挑戰(zhàn)[J].計算機研究與發(fā)展, 2011, 48(7):1216-1224.
[9] 白志青,張銀.實驗室信息管理系統(tǒng)(LIMS)綜述[J].科技情報開發(fā)與經(jīng)濟,2007,17(12):36-39.
[10] 江平,王錚.開放式計算機實驗室監(jiān)控管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2007,12(11):125-128.
[11] 呂斯特.陳奮譯.虛擬化技術(shù)指南[M].北京:機械工業(yè)出版社,2011.