陶文林?于復(fù)生
摘 要:本文提出一種利用專家系統(tǒng)建立虛擬機部署和遷移機制的方法。該方法以CLIPS語言作為框架,并結(jié)合專家系統(tǒng)的特點對虛擬機的部署和遷移機制進行改進,提出基于不同業(yè)務(wù)特點的負載平滑預(yù)測的部署策略,和基于臟頁預(yù)測匹配的遷移策略,適用于復(fù)雜環(huán)境的云環(huán)境下虛擬機的管理,通過模擬測試驗證了該機制有效性。
關(guān)鍵詞:專家系統(tǒng);虛擬機;部署;遷移;平滑預(yù)測
虛擬機的部署和遷移是云計算應(yīng)用的重要課題。虛擬機的遷移需要在保持虛擬機運行的同時,把它從一臺主機轉(zhuǎn)移到另一臺主機上,以靈活調(diào)配計算資源。目前,虛擬機遷移和部署的比較先進的方法主要有“快速預(yù)拷貝技術(shù)”和“負載均衡部署機制”等??焖兕A(yù)拷貝技術(shù)通過判斷在遷移過程中頻繁改動的內(nèi)存頁面,決定是否在最后一輪迭代中傳輸,以降低內(nèi)存臟頁率,達到快速遷移的目的。
專家系統(tǒng)由于能在一定程度上解決不確定性,能有效地模擬人類專家的各種判斷能力并能學(xué)習(xí)新規(guī)則、新知識等特點而越來越被廣泛應(yīng)用。本文在此基礎(chǔ)上對虛擬機部署機制進行改進,提出利用專家系統(tǒng)的方法,對虛擬機的部署和遷移進行一體化調(diào)度,智能地選擇合適的主機和時機對虛擬機進行部署和遷移,探索了基于專家系統(tǒng)的云環(huán)境下虛擬機智能部署和遷移機制和方法,詳述了專家系統(tǒng)的設(shè)計原理。
一、改進的基于均衡負載的虛擬機部署機制
1. 虛擬機部署機制
云計算域內(nèi)的調(diào)度中心接受用戶的部署請求,選擇虛擬機模板,根據(jù)其業(yè)務(wù)特征計算出負載量,并向域內(nèi)的宿主機發(fā)出資源請求廣播,宿主機對自身的當前和下一時刻負載進行檢測,判斷是否達到部署要求,并反饋給調(diào)度中心。
不同的用戶業(yè)務(wù)對虛擬機的各類資源的使用頻度不同,例如,需要進行科學(xué)計算的業(yè)務(wù)對虛擬機的CPU資源需求較大;需要進行文件備份存儲的業(yè)務(wù)對虛擬機的磁盤空間和吞吐率需求較大。因此在本專家系統(tǒng)中需要定義這類業(yè)務(wù)相關(guān)的資源需求指標,將CPU、內(nèi)存、磁盤空間、磁盤吞吐率、網(wǎng)絡(luò)帶寬五類負載加權(quán)求和示意如下:
W(cpu)+W(mem)+W(dfree)+W(dThroughput)+W(bandwidth)=1 ①
各權(quán)值W用戶或管理員定義后存在事實庫中。
2.負載預(yù)測算法
虛擬機的負載情況具有一定的一貫性,過去的負載情況會影響未來的負載值(占用率)。相關(guān)文獻對虛擬機的負載預(yù)測機制進行了一些探索,較為多見的是采用時間序列模型對負載進行預(yù)測。
本文采用時間序列平滑預(yù)測法中的霍爾特雙參數(shù)線性指數(shù)平滑法預(yù)測下一時刻的虛擬機負載量?;魻柼仉p參數(shù)線性指數(shù)平滑法屬于線性二次指數(shù)平滑法,該方法的優(yōu)點是可以用不同的平滑參數(shù)對負載值序列的兩種因素進行平滑,具有很大的靈活性。宿主機負載的預(yù)測值為:
S1=αx1+(1-α)(St-1+bt-1) ②
b1=γ(S1-St-1)+(1-γ)bt-1 ③
Ft+m=St+btm ④
α、γ為平滑參數(shù),F(xiàn)t為實際測得負載值,m為預(yù)測時刻數(shù),②③式是平滑公式,②式利用前一期的趨勢值bt-1直接修正平滑值St;③式是用來修正趨勢項bt,趨勢值用相鄰兩次平滑值之差來表示,可以利用平滑系數(shù)γ對兩次相鄰平滑值之差進行修正。
由系統(tǒng)管理員根據(jù)經(jīng)驗在專家系統(tǒng)中設(shè)置α、γ的值。根據(jù)本算法可求出某臺宿主機的負載預(yù)測值,再組成UDP報文反饋給調(diào)度中心。
3.宿主機選擇策略
根據(jù)用戶業(yè)務(wù)特點靈活計算虛擬機的資源需求,再由負載預(yù)測算法求出該宿主機各類資源的未來負載預(yù)測值,經(jīng)UDP報文反饋給調(diào)度中心后,由本專家系統(tǒng)進行匹配。
根據(jù)相關(guān)文獻的思想,首先利用預(yù)定義的資源需求權(quán)值W,求出各宿主機的資源可用率Hn:
Hn=W(cpu)(1-Cn)+ W(mem)(1-Mn)+ W(dfree)(1-DRn)+ W(dThroughput)(1-DTn)+ W(bandwidth)(1-Bn) ⑤
Cn、Mn、DRn、DTn、Bn分別是CPU、內(nèi)存、磁盤空間、磁盤吞吐率、網(wǎng)絡(luò)帶寬負載預(yù)測值。
調(diào)度中心的專家系統(tǒng)將所有參數(shù)讀入事實庫,匹配規(guī)則已定義好并存在知識庫內(nèi),利用內(nèi)置的推理機進行匹配,調(diào)整和優(yōu)化,選擇最合適的宿主機,最后將虛擬機快速拷貝到選定宿主機上。用戶或管理員可以根據(jù)業(yè)務(wù)需要和管理效率自行設(shè)置知識庫,隨著云計算業(yè)務(wù)規(guī)模的擴大,可以制定復(fù)雜的匹配規(guī)則。一個簡單的示例匹配規(guī)則如下:
(1)同一虛擬機業(yè)務(wù)的W(cpu)、W(mem)相差超過閥值,則重定義之,再計算H值;
(2)同一虛擬機業(yè)務(wù)的W(dThr-
oughput)、W(bandwidth) 相差超過閥值,
或W(dThroughput)> W(bandwidth)則重定義之,再計算H值;
(3)同一虛擬機業(yè)務(wù)的W(band-
width)、W(mem)相差超過閥值,則重定義之,再計算H值;
(4)兩個H值接近的宿主機,優(yōu)先匹配網(wǎng)絡(luò)帶寬的F值較大者,即提高該主機的H值;
(5)同一宿主機,某資源的W 值最大,而對應(yīng)的F值高于警戒閥值,則該機H值置為0。
二、改進的快速預(yù)拷貝機制
1.快速預(yù)拷貝機制
有學(xué)者提出了一種較新的虛擬機快速預(yù)拷貝方法,通過記錄內(nèi)存頁面的改動情況,用概率預(yù)測的思想篩選出改動頻繁的臟頁面,將它們安排在快速拷貝的最后一輪迭代中傳輸,避免了無謂的重復(fù)傳輸,從而節(jié)省帶寬,加快遷移速度。
這種新的與拷貝方法將修改頻繁的頁歸入工作集(Writable Working Set,WWS)內(nèi),根據(jù)內(nèi)存頁面的訪問情況,用概率預(yù)測原理預(yù)測頁面變臟的概率,較高的臟頁再次被修改的概率也高,概率較高的頁面被歸入工作集內(nèi),暫不傳輸。
2. 臟頁篩選預(yù)測策略
預(yù)測臟頁的概率一般比較復(fù)雜,但在專家系統(tǒng)中,可以定義很多預(yù)測臟頁的規(guī)則,形成知識庫供專家系統(tǒng)推理,一個簡單的示例預(yù)測規(guī)則如下:
(1)相鄰地址的頁面屬于工作集,則該頁面設(shè)為高臟頁率(>50%);
(2)監(jiān)控到連續(xù)兩次被修改的頁面歸入工作集;
(3)前一時刻剛修改過的頁面設(shè)為高臟頁率(>50%);
(4)閥值時間段T1內(nèi)的發(fā)生過3次修改的頁面歸入工作集;
(5)閥值時間段T2內(nèi)一直沒有修改過的頁面設(shè)定臟頁率(>40%);
(6)閥值時間段T2外,每一時刻沒有修改過的頁面,臟頁率累加5%;
(7)臟頁率>60%的頁面歸入工作集。
該套規(guī)則庫的策略比較保守,工作集會比較大,但能有效減少頁面的重復(fù)傳送率,在虛擬機拷貝的末期,傳輸量會很大。專家系統(tǒng)的知識庫對用戶限定權(quán)限開放,系統(tǒng)管理員無需專業(yè)的程序設(shè)計技能,就可以根據(jù)云計算業(yè)務(wù)情況自行定義和修改規(guī)則,存入知識庫,大大方便了云計算系統(tǒng)的管理。
本文中的專家系統(tǒng)采用CLIPS為主設(shè)計語言。CLIPS即“C語言集成產(chǎn)生式系統(tǒng)”,是一種基于規(guī)則的、多范例的專家系統(tǒng)編程語言,可移植性高。
先經(jīng)過充分的系統(tǒng)需求分析論證,接著與行業(yè)專家(云平臺管理、網(wǎng)絡(luò)、軟件、用戶業(yè)務(wù))廣泛接觸,獲取虛擬機部署和遷移的要求和規(guī)則描述,以及各類元素的知識表達,開始構(gòu)建事實庫和知識庫。部分事實庫代碼如下:
自定義模板描述虛擬機
(deftemplate MAIN::device
(slot name (type Dom0))
(slot status (allowed-values on off)))
設(shè)置待部署虛擬機出事狀態(tài)為開on
(deffacts MAIN::device-information
(device(name Dom0)(status on))
(device)name Dom1)(status on))
(device)name Dom2)(status on)))
通過偵測器模塊偵測實時負載和臟頁率
(deftemplate MAIN:: Detector
(slot name(type Dom0_Det))
(slot state(allowed-values dirtypage
low-load-valus
high-load-valus)
(default Preset_value))
三、實驗與分析
CLIPS本身用C語言編寫,因此很容易嵌入到其他高級語言中,特別是VC++平臺。為了方便進行技術(shù)驗證實驗,采用直接嵌入方式,把CLIPS的源代碼嵌入到C++程序中,經(jīng)過修改,可以在VC++平臺內(nèi)重新編譯鏈接。
模擬試驗環(huán)境建立在4臺計算機構(gòu)成的局域網(wǎng)上,每臺主機都運行安裝了Xen4.1.2的Fedora 16,其中一臺主機模擬為調(diào)度中心,并安裝了CLIPS平臺和專家系統(tǒng)的原型。另3臺作為模擬為待部署的宿主機,其上運行各類常見應(yīng)用程序。所有主機通過一臺千兆交換機相連,處于同一個云計算域內(nèi)。
實驗中對3個虛擬機模板進行不同組合,同時進行部署和遷移。做9次部署和遷移,每臺虛擬機模板各取平均值,在式②③中設(shè)α=0.37、γ=0.38。宿主機選擇策略中的權(quán)值相差閥值選為0.4,負載預(yù)測值的警戒閥值選為85%,設(shè)臟頁率監(jiān)控時間段T1 =5,T2=10。
本文系統(tǒng)的虛擬機部署時間比傳統(tǒng)方法發(fā)生首次遷移時間明顯縮短,而遷移時間比傳統(tǒng)方法略有降低,說明本系統(tǒng)中一定程度上是有效的。
四、結(jié)論
利用專家系統(tǒng)技術(shù)建立的基于負責預(yù)測的虛擬機部署和基于臟頁預(yù)測的虛擬機遷移方法提高了資源分配的靈活性和管理的便利性,緩解了計算資源分配的不合理問題。專家系統(tǒng)中的知識庫和一些參數(shù)對系統(tǒng)管理員和用戶有限開放,可以根據(jù)實際情況進行調(diào)整,在很大程度上提高了云計算調(diào)度中心的管理效率。
參考文獻:
[1]馬 飛,劉 峰,李竹伊.云計算環(huán)境下虛擬機快速實時遷移方法[J].北京郵電大學(xué)學(xué)報,2012(01).
[2]何增輝.基于預(yù)測機制的負載均衡模型的研究[D].鄭州:鄭州大學(xué),2010.
(作者單位:蘇州市職業(yè)大學(xué))