文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.036
中文引用格式: 吳軍,張軼君,白光偉. Xen下虛擬機動態遷移優化策略的研究[J].電子技術應用,2015,41(11):128-131.
英文引用格式: Wu Jun,Zhang Yijun,Bai Guangwei. Dynamic optimization research strategy based on Xen virtual machine migration[J].Application of Electronic Technique,2015,41(11):128-131.
0 引言
在虛擬化環境中,動態遷移的虛擬機[1]是一個強大的管理工具,它促進系統維護、負載平衡、容錯及電源管理。由于動態工作負載使得有些節點利用率低下而有些節點卻不堪重負,為了解決虛擬機物理節點之間的負載平衡問題,提出虛擬機遷移策略。
預復制技術[2-3]在高帶寬低負載的環境中性能優越,但處于低帶寬高負載的情況時性能卻表現較弱,導致停機切換時間和總遷移時間較長,影響了虛擬機的正常服務。而本文將傳統預復制技術與相關預測算法、趨勢判斷算法結合,并利用自適應停機閾值機制取代預復制技術固定閾值機制,從而有效減少了遷移過程中的總時間及停機時間。
1 相關工作
最近幾年,國內外很多學者針對預復制技術在低帶寬高負載環境下的運行效率問題提出了很多完善和優化方法。例如Chen Yang[4]等人在2011年提出一個基于內存混合復制方式的動態遷移機制HybMEC,結合按需和內存推送兩種復制方式來提高實時遷移性能;Hai Jin,Li Deng[5]等學者在2014年提出一個適應性壓縮方法模型MECOM,針對不同內存頁面的特征使用相應的壓縮算法來降低頁面傳輸大小。不同于以上各類優化方法,本文從預復制技術如何在低帶寬高負載的環境下有效判斷最優停機時機的角度對虛擬機實時遷移性能進行研究,旨在達到更好的遷移水平。
2 傳統預復制技術介紹及其優劣性分析
隨著虛擬化技術不斷發展,Clark、Nelson等人[2-3]相繼提出了預復制動態遷移技術,預復制的遷移過程如圖1所示(主機A為源主機,主機B為目的主機)。
雖然預拷貝技術在對應用及用戶影響較小的情況下極大減少了停機時間,適合遷移寫操作不頻繁的負載,但該技術仍存在以下問題:例如迭代過程中,進行多次迭代會增加遷移總時間,迭代不足又會增加不必要的停機時間,所以迭代次數的確定受到網絡傳輸帶寬及負載類型的影響;當臟頁率大于或等于頁面傳輸速率時,迭代過程可能進入不收斂狀態等情況。
3 基于Xen虛擬機改進后的遷移機制
在Xen[6]整個遷移過程中,最復雜的部分當屬內存遷移。本文在研究傳統Xen內存遷移機制的基礎上對傳統遷移方案進行了優化。傳統Xen內存遷移機制如圖2所示。
由圖2可知,遷移執行模塊實際負責了整個遷移過程的大部分工作,因而該模塊尤為重要,但在其實現過程中仍有不足之處:(1)在臟頁率較高的情況下,增加了臟頁重復傳輸的概率。(2)在第1輪迭代過程中,不需要傳輸所有的內存頁,因為許多頁在以后的迭代過程中被再次修改,需要再次迭代傳輸。
針對以上不足,本文提出一種改進機制,如圖3所示。除了對內存頁進行信息監控,還通過先使用預測模型對后輪臟頁率進行預測,在此基礎上對臟頁率的變化趨勢進行分析,使之與數據傳輸率進行比較,結合自適應停機閾值機制使虛擬機在低帶寬高負載的環境下也能有很好的表現。
4 改進后Xen遷移算法的實現
4.1 馬爾科夫臟頁預測
預測概率算法使用馬爾科夫模型[7]。本文設定狀態E1表示內存頁沒有被讀、寫,設定狀態E2表示內存頁只讀,設定狀態E3表示內存頁被修改,默認遷移開始前的狀態為E1。相關概念和計算公式如下:
(1)狀態轉移概率矩陣:假定內存頁有n個可能的狀態,即E1,E2,E3…En,本文使用pij表示內存頁的狀態從Ei變成Ej的狀態轉移概率,狀態轉移概率矩陣為:
(2)狀態概率:狀態概率表示內存頁的初始狀態已知,內存頁的狀態轉移k次后變成狀態Ej的概率,且:
由馬爾科夫假設和貝葉斯條件概率公式得:
設定行向量π(k)=[π1(k),π2(k),…πn(k)],由公式得到狀態概率的遞推公式:
由于只需要預測臟頁的狀態概率,本文設置初始狀態行向π(0)=[0,0,1]。
4.2 Mann—Kendall趨勢變化檢驗
當預測出后輪的臟頁率高于網絡傳輸帶寬時,改進后的遷移機制利用Mann—Kendall檢驗模型[8]對臟頁率時間序列進行趨勢分析,以確定停機時間。該模型是一種非參數檢驗類型的時間序列趨勢分析方法,其優點是不要求時間序列符合一定的分布,受異常值的影響較小,而且計算簡便。采用Mann—Kendall模型檢驗臟頁率變化趨勢的過程如下:
(1)假設臟頁率時間序列D={d1,…,dn}無趨勢;
(2)如下計算統計量S:
S為正態分布,其均值為0,方差為:
其中Median為取中值函數,當β>0時說明有上升的趨勢,當β<0則表示下降的趨勢。
4.3 自適應閾值機制的引入
根據上述臟頁率的預測及趨勢分析方法,本文在預拷貝算法固定閾值的基礎上引入了自適應停機閾值機制[8],具體實現如下所述:迭代拷貝過程中,統計每個迭代輪中的臟頁率以構成一個時間序列,在每輪結束時首先對后輪的臟頁率進行預測。若預測出臟頁率大于等于數據傳輸率,則進一步對臟頁率時間序列進行趨勢判斷,若判斷結果為上升或平穩趨勢,則判定后面的迭代輪會進入到“無法收斂”狀態,那么就立即進入停機拷貝階段;否則,說明臟頁率的變化不會導致“無法收斂”狀態,則按原算法繼續進行。通過加入該機制,遷移過程中可以實時監測臟頁率的變化情況,一旦發現有進入“無法收斂”的趨勢就能在達到固定迭代次數閾值之前進行停機拷貝,有效避免拖延總遷移時間,及時控制停機時間。
5 實驗及分析
為了保證實驗環境的穩定性,測試出更精確的實驗結果,測試中構建了一個小的私有云平臺,基本可以滿足Xen虛擬機動態遷移的實驗要求。其中使用兩臺普通PC分別做為源主機Host A和目的主機Host B,另一臺PC作為連接源主機和目的主機的NFS服務器,為動態遷移提供NFS文件共享服務,并且使用了一臺100 M交換機連接這幾臺PC。該實驗環境為3臺PC配置相同的物理主機,CPU是Intel Core i5-3210 M,其工作頻率是2.50 GHz,內存是2 048 M,硬盤是320 G,虛擬平臺為 Xen 4.3.1。
本實驗采用開源系統測試軟件Lmbench為虛擬機測試寫操作任務,使用其bw_mem命令對CPU性能進行測試,同時,修改bw_mem.c的wr函數,通過庫函數usleep對內存寫速度進行調整,借此測試程序為實時遷移中的虛擬機提供如下三種負載:(1)臟頁率上升的寫操作;(2)臟頁率下降的寫操作;(3)臟頁率平穩的寫操作。實驗分為兩種情況:
實驗1:在原配置上啟動虛擬機,其分別運行上述三種負載,從停機時間和總遷移時間兩方面對比傳統算法與改進算法的優劣,如圖4、圖5所示。
實驗2:啟動虛擬機(其運行臟頁率上升負載),利用 Linux流量控制工具TC限制網絡帶寬分別為20 M、30 M、40 M…70 M,在此配置下進行遷移算法對比實驗,結果如圖6、圖7所示。
6 總結
本文在對后輪臟頁率利用馬爾科夫模型進行預測的基礎上,結合Mann-Kendall驗模型對遷移中臟頁率的變化趨勢進行判斷,最后根據判斷結果采用自適應閾值機制確定最優停機時間,更好地解決虛擬機中網絡傳輸帶寬的大小和運行負載的高低對傳統預拷貝技術的影響。同時實驗結果表明,本文提出的優化機制能有效提高虛擬機基于預拷貝算法實時遷移的性能。
參考文獻
[1] 江雪,李小勇.虛擬機動態遷移的研究[J].計算機應用,2008(9):2375-2377.
[2] CLARK C,FRASER K,HAND S,et al.Live migration of virtual machines[C].Proceedings of the 2nd Symposium on Networked Systems Design and Implementation,2005:273-286.
[3] NELSON M,LIM B,HUTCHINES G.Fast transparent migration for virtual machines[C].Proceedings of the USENIX Annual Technical Conference,2005:391-394.
[4] Chen Yang,Huai Jinpeng,Hu Chunming.Live migration of virtual machines based on hybrid memory copy approach[J].Chinese Journal of Computers,2011,34(12):2278-2291.
[5] Hai Jin,Li Deng,Song Wu,et al.MECOM:Live migration ofvirtual machines by adaptively compressing memory pages[J].Future Generation Computer Systems,2014:23-35.
[6] 石磊,鄒德清,金海.Xen虛擬化技術[M]. 武漢:華中科技大學出版社,2009.
[7] 孫國飛,谷建華.基于預拷貝的虛擬機動態內存遷移機制改進[J].計算機工程,2011,13(37):36-39.
[8] 崔勇,林予松.虛擬機實時遷移中自適應閾值機制的研究[J].小型微型計算機系統,2015(3):466-470.