趙 君 馬 中
(武漢數字工程研究所 武漢 430205)
?
針對能耗和服務質量的虛擬機整合方法*
趙君馬中
(武漢數字工程研究所武漢430205)
摘要針對云計算數據中心能耗、服務質量問題,設計了一種虛擬機動態(tài)整合方法。該方法主要創(chuàng)新為基于利用率差值的虛擬機選擇算法及基于能效比的虛擬機重分配算法。仿真實驗結果表明該方法與傳統(tǒng)方法相比降低了能耗和服務等級協(xié)議違背率,算法具備有效性。
關鍵詞云計算; 動態(tài)整合; 利用率差值
A Dynamic Consolidation of Virtual Machines Method for Energy and Service Quality
ZHAO JunMA Zhong
(Wuhan Digital Engineering Institute, Wuhan430205)
AbstractFor the energy consumption and service quality problem in cloud computing, a dynamic consolidation of virtual machines method is proposed. The innovation of the method includes virtual machine select algorithm based on utilization difference and virtual machine reallocation algorithm based on the performance/power. The experimental results show that the proposed method can effectively reduce energy and SLA violation compared with the traditional method.
Key Wordscloud computing, dynamic consolidation, utilization difference
Class NumberTP308
1引言
在云計算中,用戶通過按需支付使用虛擬計算資源。相對于購買計算節(jié)點等基礎設施和硬件軟件維護升級的高昂代價,用戶可以將它們計算需求外包給云提供商。云計算模式導致出現包含數以千計主機的數據中心,這些數據中心消耗大量電力能源。一種解決能源消耗有效性的主要途徑是虛擬化技術。虛擬化技術允許云提供者在一個計算節(jié)點上創(chuàng)建多個虛擬機,改善資源利用率和增加投資回報率。通過將空閑計算節(jié)點切換到睡眠模式來減少能耗。進一步來說,通過在線遷移技術來動態(tài)整合虛擬機從而最小化開啟計算節(jié)點數目。
因此,本文主要研究多計算節(jié)點多虛擬機場景下的動態(tài)虛擬機整合方法。針對目前研究上存在的問題,提出兩種優(yōu)化算法,能夠有效降低能耗及
提高服務質量。
2動態(tài)虛擬機整合問題
Nathuji等[1]提出在虛擬數據中心中使用能源管理,提出一種數據中心資源管理系統(tǒng),資源管理系統(tǒng)分為局部和全局兩種策略。在局部上,設計計算節(jié)點操作系統(tǒng)能源管理策略。在全局上,從局部管理器獲取當前資源分配信息,并決策虛擬機放置是否需要調整。Kusic[2]定義虛擬異構數據中心環(huán)境為連續(xù)優(yōu)化問題,提出使用有限超前控制方法解決該問題。然而,與啟發(fā)式方法相比,提出模型基于仿真學習來調整應用。這不適用于基礎設施即服務(IaaS)云提供者。Srikantaiah[3]研究虛擬異構數據中心中多層網絡應用的請求調度問題,目標是在滿足性能需求前提下最小化能耗。提出方法是工作負載類型和應用依賴的。Cardosa等[4]提出一種虛擬異構計算環(huán)境下能耗感知虛擬機分配方法。該方法僅適用于企業(yè)環(huán)境,不支持嚴格服務等級協(xié)議,需要知道應用優(yōu)先級用以定義處理器共享參數等。Jung等[5~6]提出一種多層網頁應用下動態(tài)虛擬機整合方法,該方法使用在線遷移,滿足服務等級協(xié)議要求。該方法只能用于一個網頁應用環(huán)境,不適用于多租戶基礎實施即服務環(huán)境。Berral[7]研究在服務等級協(xié)議中有截止時間的動態(tài)虛擬機整合問題。使用機器學習技術來優(yōu)化能耗和服務等級協(xié)議組合。該方法不適用于具有混合工作負載的環(huán)境。Beloglazov[8]提出一種啟發(fā)式的動態(tài)虛擬機整合框架,通過分析虛擬機CPU利用率的歷史數據來預測虛擬機的CPU利用率,從而整合虛擬機,達到降低能耗的目的。
由相關研究工作可知,針對能耗的虛擬機整合策略主要是將虛擬機放置到盡可能少的計算節(jié)點,然后將沒有虛擬機部署的計算節(jié)點切換到休眠狀態(tài),從而達到降低能耗的目的。主要存在四個方面的研究: 1) 判定何時計算節(jié)點過載,此時需要從該計算節(jié)點遷移走若干個虛擬機; 2) 判定何時計算節(jié)點輕載,此時需要從該計算節(jié)點遷移走所有虛擬機,切換計算節(jié)點為睡眠模式; 3) 選擇過載計算節(jié)點上需要遷移的虛擬機; 4) 為需遷移虛擬機尋找新的放置位置。目前虛擬機動態(tài)整合方法仍有不足和優(yōu)化空間。
3虛擬機整合方法優(yōu)化
針對已有研究存在問題,本文提出兩種優(yōu)化算法。第一種為基于利用率差值的虛擬機選擇算法。第二種為基于能效比的虛擬機重分配算法。
3.1虛擬機選擇算法
本文提出一種基于利用率差值的虛擬機選擇算法(Utilization Difference Virtual Machine Select,UDVMS),能夠更有效地降低能耗和服務等級協(xié)議違背率。
基于利用率差值的虛擬機選擇算法關鍵思想是根據計算節(jié)點CPU利用率和CPU利用率上閾值之間的差值,選擇合適虛擬機進行遷移。一方面,減少虛擬機遷移個數從而降低服務等級協(xié)議違背率;另一方面,保持計算機較高負載工作從而降低能耗。
UDVMS算法具體流程見算法1。
算法1基于利用率差值的虛擬機選擇算法。
輸入:過載計算節(jié)點表H。
輸出:待遷移虛擬機表VM。
步驟1:初始化過載計算節(jié)點表H;初始化待遷移虛擬機表VM為空;初始化各個計算節(jié)點的虛擬機集合,其中Hi上虛擬機集合為Vi;計算出各個計算節(jié)點CPU利用率,其中Hi的CPU利用率需求總和為rui。
步驟2:獲取過載計算節(jié)點表H中當前元素HInd,計算HInd的利用率差值udInd=uInd-ThUInd。
步驟3:初始化HInd的降序排列虛擬機表Vi={Vi,1,Vi,2,…,Vi,j,…,Vi,m};設當前虛擬機索引為vInd;初始化虛擬機緩沖索引ovInd為0。
步驟4:計算差值t=cuInd,vInd-udInd。
步驟5:如果t≥0,存儲vInd到緩存ovInd中。
步驟6:如果t<0,若ovInd不為0、選擇虛擬機Vi,ovInd放入到待遷移虛擬機表VM中且從Vi刪除Vi,ovInd,跳到步驟8;若ovInd為0、選擇虛擬機Vi,1放入到待遷移虛擬機表VM中且從Vi刪除Vi,1。
步驟7:選擇虛擬機表Vi下一個元素。如果遍歷Vi完成,選擇虛擬機Vi,1放入到待遷移虛擬機表VM中且從Vi刪除Vi,1,跳到步驟8;否則跳到步驟4。
步驟8:判斷HInd是否還過載,如果還過載,跳到步驟3;否則執(zhí)行下一步驟。
步驟9:Ind++,如果Ind不大于n,跳到步驟2;否則執(zhí)行下一步驟。
步驟10:算法結束,返回值為待遷移虛擬機表VM。
3.2虛擬機重分配算法
計算節(jié)點核心數越多,內存越大,即越大型計算節(jié)點的能效比越高。本文定義能效比為計算節(jié)點上此時所有處理器的運算負載與計算節(jié)點能耗的比值,具體表現為式(9):
(1)
本文基于能效比思想,提出一種基于能效比的虛擬機重分配算法(Performance/Power Virtual Machine Reallocation,PPVMR)。能更高效地重分配虛擬機,進而更有效降低數據中心能耗及服務質量違背率。
PPVMR算法具體流程見算法2。
算法2基于能效比的虛擬機重分配算法PPVMR。
輸入:待遷移虛擬機表VM。
輸出:虛擬機重分配映射表VToH。
步驟1:初始化可遷移計算節(jié)點表CH為空,將待遷移虛擬機表VM按處理器利用率需求降序排列。
步驟2:獲取待遷移虛擬機表VM當前元素VMvInd,其中當前待虛擬機索引為vInd。
步驟3:獲取可遷移計算節(jié)點表CH當前元素CHInd,其中當前待虛擬機索引為Ind。設置初始能效比最大值MaxInd為-1。
步驟4:查看CHInd是否有足夠處理器、內存、帶寬等資源滿足VMvInd需求,如果滿足,則執(zhí)行步驟5;否則跳到步驟3。
步驟5:假設把VMvInd放置到CHInd上,計算此時CHInd能耗;根據式(9)計算CHInd的能效比ppi,CHInd,并每次比較,保存具有能效比最大值的CHInd索引為MaxInd。
步驟6:選擇可遷移計算節(jié)點表CH下一個元素。如果遍歷CH完成,添加元素(vvInd,,dhMaxInd)到虛擬機重分配映射表VToH中,執(zhí)行下一步驟;否則跳到步驟3。
步驟7:選擇虛擬機表Vi下一個元素。如果遍歷Vi完成,執(zhí)行下一步驟;否則跳到步驟2。
步驟8:算法結束,返回值為虛擬機重分配映射表VToH。
4實驗及性能分析
4.1實驗設置
使用CloudSim[10]仿真平臺驗證本方法。CloudSim是一個云計算環(huán)境仿真框架。仿真一個具有800個異構計算節(jié)點的數據中心,計算節(jié)點一半是HP ProLiant ML110 G4(G4),另一半是HP ProLiant ML110 G5(G5)。
4.2評估指標
本仿真實驗性能指標: 1) E:數據中心能耗; 2) Migrations:虛擬機遷移個數; 3) PDM:遷移導致虛擬機性能下降總和; 4) SLATAH:計算節(jié)點服務等級協(xié)議違背時間; 5) SLAV:服務等級協(xié)議違背率; 6) ESV:能耗和服務等級協(xié)議違背率組合。
4.3工作負載數據
實驗工作負載數據使用PlanetLab[11]提供的真實系統(tǒng)工作負載數據。虛擬機數量超過1000個,處理器利用率測量周期是5min。本文在2011年3月到4月中選擇10天工作負載數據。在仿真中,為虛擬機隨機分配工作負載數據。
4.4仿真結果和分析
本次仿真實驗使用以下四種方法: 1) 使用LR計算節(jié)點過載判定算法、安全參數為1.2,MMT虛擬機選擇算法的虛擬機動態(tài)整合方法(簡寫為LR-MMT-1.2); 2) 改進虛擬機選擇算法使用UDVMS的虛擬機動態(tài)整合方法(簡寫為UDVMS); 3) 改進虛擬機重分配算法使用PPVMR的虛擬機動態(tài)整合方法(簡寫為PPVMR); 4) 同時使用UDVMS及PPVMR的虛擬機動態(tài)整合方法(簡寫為UD-PP)。
圖1~圖6分別是四種算法下E、Migrations、PDM、SLATAH、SLAV和ESV六個指標的評估結果圖。
圖1 四種算法的E指標對比
圖2 四種算法的Migrations指標對比
圖3 四種算法的PDM指標對比
圖4 四種算法的SLATAH指標對比
圖5 四種算法的SLAV指標對比
圖6 四種算法的ESV指標對比
根據以上仿真實驗結果,可以做出以下總結: 1) UDVMS優(yōu)于LR-MMT-1.2; 2) PPVMR優(yōu)于LR-MMT-1.2; 3) UD-PP優(yōu)于LR-MMT-1.2,PPVMR及UDVMS。
5結語
針對現有啟發(fā)式虛擬機整合算法的不足,本文提出綜合UDVMS及PPVMR的UD-PP虛擬機整合算法。使用仿真實驗驗證了算法的有效性,該算法能夠更有效地降低能耗和服務等級協(xié)議違背率。
參 考 文 獻
[1] Nathuji R, Schwan K. VirtualPower: Coord1inated Power Management in Virtualized Enterprise Systems[C]//Proceedings of International Symposium on Operating System Principles (SOSP,2007:265-278.
[2] Kusic D, Kephart J O, Hanson J E, et al. Power and Performance Management of Virtualized Computing Environments Via Lookahead Control[J]. International Conference on Autonomic Computing,2008,12(1):3-12.
[3] Srikantaiah S, Kansal A, Zhao F. Energy aware consolidation for cloud computing[C]//Proceedings of the 2008 conference on Power aware computing and systems USENIX Association,2008:10-10.
[4] Cardosa M, Korupolu M R, Singh A. Shares and utilities based power consolidation in virtualized server environments[C]//Integrated Network Management, 2009. IM’09. IFIP/IEEE International Symposium on IEEE,2009:327-334.
[5] Jung G, Joshi K R, Hiltunen M A, et al. Generating Adaptation Policies for Multi-tier Applications in Consolidated Server Environments[C]//Autonomic Computing, 2008. ICAC’08. International Conference on IEEE,2008:23-32.
[6] Jung G, Joshi K R, Hiltunen M A, et al. A Cost-Sensitive Adaptation Engine for Server Consolidation of Multitier Applications[C]//Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware Springer-Verlag New York, Inc.,2009:163-183.
[7] Berral J L, et al. Towards energy-aware scheduling in data centers using machine learning[C]//Proc. of the 1st International Conference on Energy-Efficient Computing and Networking,2010.
[8] Beloglazov A, Buyya R. Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers[J]. Concurrency & Computation Practice & Experience,2012,24(13):1397-1420.
[9] Corporation S P E. SPECpower_ssj2008 Benchmarks[EB/OL]. http://www.spec.org/power_ssj2008/index.html, 2008.
[10] Calheiros R N, Ranjan R, Beloglazov A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J]. Software practice & Experience,2011,41(1):23-50.
[11] Park K S, Pai V S. CoMon: a mostly-scalable monitoring system for PlanetLab[J]. Acm Sigops Operating Systems Review,2006,40(1):2006.
中圖分類號TP308
DOI:10.3969/j.issn.1672-9722.2016.03.005
作者簡介:趙君,男,博士研究生,高級工程師,研究方向:云計算。
收稿日期:2015年9月3日,修回日期:2015年10月19日