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