姚棟杰,丁維龍,徐 揚
1(北方工業(yè)大學 數(shù)據(jù)工程研究院,北京 100144)
2(大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點實驗室,北京 100144)
3(北京易華錄信息技術(shù)股份有限公司,北京 100043)
虛擬化技術(shù)是構(gòu)建云平臺的關(guān)鍵.現(xiàn)在國內(nèi)外的主流云平臺都是采用虛擬化技術(shù)搭建.虛擬化技術(shù)的廣泛應(yīng)用,節(jié)約了成本,提高了物理資源整體運行的效率.虛擬化技術(shù)越來越多的應(yīng)用于生產(chǎn)環(huán)境,使得虛擬機的快速高效部署、有效的使用和管理虛擬資源,成為現(xiàn)在人們普遍關(guān)注的焦點.隨著虛擬化技術(shù)的發(fā)展、應(yīng)用的創(chuàng)新和市場需求的變化,單一虛擬化平臺難以滿足全時全域的優(yōu)質(zhì)服務(wù)需求和靈活多樣的個性化定制需求[1],因此虛擬環(huán)境向多元化集成化發(fā)展.人們利用多虛擬化平臺的意義在于能夠充分利用各平臺的優(yōu)點,減少單平臺故障造成的業(yè)務(wù)影響,同時也可以更好地適應(yīng)不同服務(wù)的負載[2].
多虛擬化平臺的使用給人們帶來了方便,同時也帶來了更多的挑戰(zhàn):(1)各虛擬化平臺之間的核心技術(shù)不能互相兼容,對異構(gòu)虛擬化平臺下的虛擬機資源難于進行統(tǒng)一管理.因此,在管理及監(jiān)控虛擬化平臺時,沒有統(tǒng)一接口進行訪問,導致數(shù)據(jù)顯示時無法統(tǒng)一.(2)異構(gòu)虛擬化平臺下,遷移虛擬機或者調(diào)整虛擬資源時的操作,需要轉(zhuǎn)換為實際平臺的操作,很難完成即時在線調(diào)整.因此,在實例化虛擬機時,如果不能合理的選擇一個虛擬化平臺進行資源分配,那么就會造成資源的嚴重浪費.
針對虛擬機資源的統(tǒng)一管理,本文提出一體化模型,首先將虛擬機資源進行抽象處理并定義實體,然后利用這些實體進行建模,通過模型來管理虛擬機;針對虛擬資源的分配,本文提出一種基于粒子群算法的二級平衡度分配策略,在實例化虛擬機時,根據(jù)虛擬化平臺下虛擬資源的使用情況選擇合理的宿主平臺,從而使資源被最大化利用.
本文組織結(jié)構(gòu)如下:第2節(jié)介紹相關(guān)工作;第3節(jié)主要介紹一體化模型及二級平衡度分配策略;第4節(jié)通過實際環(huán)境驗證模型的可行性及二級平衡度分配策略的高效性;最后給出總結(jié)和展望.
本文的研究動機來源于某市局公安的云平臺管理系統(tǒng),該系統(tǒng)主要是基于KVM和VMWare兩類虛擬化平臺,并且平臺由物理服務(wù)器和不同的存儲服務(wù)器組成.基于遺留原因,存在現(xiàn)有上述兩類平臺單獨運行,各自管理自己的虛擬機問題.從系統(tǒng)管理員的視角,用戶無法對平臺整體進行統(tǒng)一管理,并且在創(chuàng)建虛擬機操作時,需要考慮各虛擬化平臺的選擇.基于上面的原因,本文主要工作是在異構(gòu)虛擬化資源管理平臺基礎(chǔ)上,實現(xiàn)對虛擬機進行一體化管理,并且在資源管理平臺上實現(xiàn)虛擬機合理的選擇宿主平臺,系統(tǒng)邏輯框架圖如圖1所示.
圖1 系統(tǒng)邏輯框架圖
目前,在虛擬化操作系統(tǒng)方面,各廠家的Hypervisor之間是不能互相兼容的.在虛擬資源管理方面,尚無高效統(tǒng)一的模型進行管理.謝浩安等[3]提出異構(gòu)虛擬化平臺的統(tǒng)一資源管理的解決辦法及統(tǒng)一云管理平臺和云服務(wù)引擎的設(shè)計,但是對虛擬資源的分配和使用情況沒有進一步的探討.虛擬機調(diào)度是提高云基礎(chǔ)設(shè)施資源利用率的重要途徑,對于虛擬機的資源調(diào)用和分配,已經(jīng)做過很多的相關(guān)工作,目前虛擬機調(diào)度的研究主要集中于資源利用率[4],負載均衡[5],以及QoS[6]等,很多研究都沒有充分考慮資源開銷,特別是應(yīng)考慮異構(gòu)環(huán)境下的資源利用.袁文成等[7]提出一種面向虛擬資源的云計算資源管理機制,通過對虛擬資源的劃分、預(yù)留及調(diào)到策略,為用戶提供有效的IaaS服務(wù),但是他們并沒有涉及到異構(gòu)環(huán)境下的多維虛擬資源.李晨暉等[8]提出一種基于多Agent的異構(gòu)云計算環(huán)境下資源管理模型,能較好地實現(xiàn)異構(gòu)云計算平臺之間的數(shù)據(jù)和應(yīng)用的互操作和可移植問題,但是他們主要研究異構(gòu)云下的應(yīng)用,對資源的調(diào)度和分配沒有給出充分的驗證.朱亞會等[9]提出一種基于資源利用率均衡的虛擬機調(diào)度模型VMSM-RB,將虛擬機調(diào)度問題抽象為不定維向量裝箱問題,但是對于異構(gòu)虛擬化平臺下虛擬資源的分配問題沒有進一步的涉及.朱澤民等[10]從QoS(服務(wù)質(zhì)量)方面出發(fā),提出一種基于改進蟻群算法用于實現(xiàn)虛擬資源的調(diào)度算法,但是文中主要是從服務(wù)質(zhì)量出發(fā),對于虛擬資源的分配考慮的較少.周東清等[11]提出一個多維資源的利用率模型來解決異構(gòu)云平臺下能源最小化的虛擬機部署問題,但是他們對平臺的虛擬資源只限于內(nèi)存和CPU.Ren等人提出一種云計算環(huán)境下的動態(tài)均衡負載算法[12],通過預(yù)測決定何時遷移虛擬機,可以避免因瞬時負載過高而觸發(fā)的遷移,然而并無在異構(gòu)虛擬化平臺下進行驗證.
本文綜合相關(guān)工作,在異構(gòu)虛擬化平臺的前提下,基于一體化資源管理平臺,對虛擬機資源統(tǒng)一管理和分配,旨在最大化虛擬資源利用率.
本模塊中主要提出一體化虛擬資源模型,該模型用于異構(gòu)環(huán)境下統(tǒng)一描述和管理虛擬機資源.本節(jié)是從虛擬機視角,管理虛擬資源.
虛擬機一般是由網(wǎng)絡(luò)、鏡像、虛擬機的規(guī)格及支持的Hypervisor構(gòu)成,因此虛擬機模型的邏輯組成如圖2.故對虛擬機進行四元組定義:VM=
圖2 虛擬機模型邏輯圖
其中,元組是有不同的實體組成的,實體定義如下:
1)屬性實體:Profile=
2)鏡像實體:ImageEnterty=
3)虛擬機規(guī)格實體:VMFormat=
4)網(wǎng)絡(luò)實體:Network=
通過該模型,可以在異構(gòu)虛擬化平臺下的虛擬機進行增、刪、改、查等操作,并且可以查看虛擬機在不同平臺下的運行狀況,以及不同平臺下虛擬資源利用率,對操作及運維管理人員非常的簡潔方便.
異構(gòu)虛擬化平臺下,如果在實例化虛擬機時只是單純的考慮內(nèi)存、CPU等單一虛擬資源的利用率,就會導致該虛擬資源使用過高,其他虛擬資源沒有充分利用,從而造成虛擬資源的嚴重浪費,如圖3所示.因此,在實例化虛擬機的時候,如何才能在充分利用異構(gòu)虛擬化平臺下虛擬資源的同時,又使得平臺下單臺物理機的資源最大化利用?PSO[13]具有算法運行速度快和實現(xiàn)簡單以及對內(nèi)存和CPU速度要求都較低等優(yōu)點,故本文基于PSO算法,主要通過2個層面來闡述資源利用率問題,首先從單一平臺下的物理機資源出發(fā),考慮每臺物理機多維虛擬資源均衡利用;然后再從虛擬化平臺層面考慮虛擬資源,使得虛擬化平臺的多維虛擬資源均衡利用.最終達到不僅使得單一平臺下每臺物理機的資源最大化利用,更使得不同平臺下總的虛擬資源最大化利用.
圖3 平臺下的資源占用率
實例化虛擬機時,對于虛擬資源分配問題,可以理解為二層的多維裝箱問題:首先選擇虛擬化平臺,然后選擇平臺下的物理機.本文是在VMSM-RB[9]模型的基礎(chǔ)上進一步改進,將平臺選擇加入模型中,模型定義如下:
定義1.虛擬資源占用量.是對異構(gòu)虛擬化平臺下已用虛擬資源的統(tǒng)計,包括平臺資源占用量和物理機資源占用量.
假設(shè)表示平臺i上第j臺物理服務(wù)器上面的第m維資源總量,表示虛擬機z需要分配的第m維資源的量,此處的m主要考慮3種資源,即m={vcpu,vmemory,vdisk}.虛擬資源總量:
其中,i表示第i個平臺,j表示平臺下的第j臺物理服務(wù)器,i、j的取值為{1,2,3,… },ai和bj都是布爾函數(shù)值,ai={0,1},如果ai值為1,則表示第i個平臺被選中,值為0,表示平臺i未被選中,同理可知bj.比如,若要獲取平臺1下面的虛擬資源總量時,則由:
可得a1=1,bj=1,虛擬資源總量表達式如下:
物理機資源占用量為,則平臺資源總的占用量為:
虛擬機z部署到物理機j上時的資源占用量為:
其中,ai表示布爾值函數(shù)值,ai定義如上.
比如:當z分配到平臺2下的第3臺物理機,則:
定義2.資源利用率.虛擬資源占用量與虛擬資源總量的比值,分為物理機資源利用率和平臺資源利用率.將一臺虛擬機實例化后,物理機資源利用率會變化,平臺的資源利用率也會變化,因此首先定義物理機資源利用率:
平臺資源利用率:
物理機資源利用率平均值:
平臺資源利用率平均值:
定義3.資源平衡度.由兩部分表示,一部分表示物理機資源平衡度,另一部分是表示物理機所在的平臺資源平衡度.
物理機資源平衡度由式(4)和式(6)可得:
平臺資源平衡度由式(5)和式(7)可得:
當平衡度越小時,表示資源分配越均衡,資源利用率越高.由于本文是從異構(gòu)虛擬化平臺和平臺下物理機兩個層次來分析資源利用率,因此將兩個資源平衡度作為衡量總體資源利用率的參考點,本文首先將BH作為一個粒子,基于粒子群算法,求出每個平臺下最合適的解,然后由求的得解與平臺資源平衡度作為一個二維的數(shù)組,再結(jié)合平衡度的思想,找出最優(yōu)解.引入PSO公式如下:
是粒子的速度是當前粒子的位置表示當前粒子目前搜索到的最好位置表示整個粒子群搜索到的最好位置.m是慣性權(quán)重,rand()介于(0,1)之間的隨機數(shù).c1,c2是學習因子.
基于上述給出的定義,本文給出資源分配方法,其主要思想如下:首先將BH作為粒子群中的粒子,找出該平臺下最優(yōu)的調(diào)度策略;然后將BH與該平臺下的BP作為一個二元組;再利用平衡度的思想進行計算,再次求出一個二級平衡度,此時二級平衡度最小的,就是最優(yōu)的虛擬機分配策略.具體的算法實現(xiàn)如算法1所示.
2) for iin n//n為平臺數(shù)量.3) 初始化粒子群,設(shè)置種群大小N,算法執(zhí)行的迭代次數(shù)InterNum.4) 根據(jù)適應(yīng)度調(diào)節(jié)微粒子速度和位置.5) 將未被部署的虛擬機加入.6) 計算每個粒子的適應(yīng)度值,并更新最佳位置.7) 重復(fù)4)~6)迭代InterNum次.8) 獲取平臺下的最優(yōu)BHi.9) 記錄下BHi下物理機j.10) 根據(jù)的數(shù)值,計算出PHi.11) 將BHi與BPi作為一個二元組,即
本模型是基于虛擬資源進行建立的,并且在資源管理平臺上對其進行實現(xiàn),資源管理平臺邏輯框架參考圖1.用戶在分配虛擬機時,資源管理平臺首先會獲取用戶所分配虛擬機的VMFormat數(shù)據(jù),同時將各個異構(gòu)化平臺的虛擬資源進行更新一下,放入平臺資源池中;其次取出單個平臺資源池中每個平臺資源數(shù)據(jù),并根據(jù)虛擬機的VMFormat數(shù)據(jù)進行計算,獲取物理機資源平衡度最小的物理機和平臺資源平衡度,再將該二元組數(shù)據(jù)重新計算一個平衡度,將數(shù)據(jù)返回給平臺資源池;然后循環(huán)判斷平臺資源池,并返回計算數(shù)據(jù);最后將平臺資源池中二級平衡度最小的平臺,作為虛擬機分配的宿主平臺,并且進行創(chuàng)建虛擬機.
實驗環(huán)境是異構(gòu)虛擬化平臺KVM和VMware,對可用虛擬資源統(tǒng)計,主要是計算節(jié)點上的CPU和Memory以及存儲服務(wù)器的磁盤大小,對控制節(jié)點的CPU和物理機上面的磁盤大小,將不包括在內(nèi).搭建后對兩平臺的資源統(tǒng)計列表如表1至表3.
圖4 一體化模型實現(xiàn)的流程圖
表1 KVM虛擬化平臺配置
表2 VMware虛擬化平臺配置
表3 平臺資源統(tǒng)計
表4是對虛擬機規(guī)格的定義,利用這些規(guī)格進行分配虛擬機.
表4 虛擬機規(guī)格
實驗1是與隨機分配環(huán)境下進行對比,數(shù)據(jù)是在多次實驗結(jié)果后將平臺和物理機的資源利用率進行求平均值獲得.實驗2是與VMSM-RB模型進行平臺資源的對比.實驗中主要進行衡量的數(shù)據(jù)有:平臺的資源利用率、平臺下物理機的資源利用率及采用二級平衡度分配策略后它們的資源利用率.
實驗1按上述的實驗配置,實驗步驟設(shè)計如下:首先選擇M3和M5這2種虛擬機規(guī)格來進行實驗;每次分配10臺虛擬機,其中,這兩種規(guī)格下虛擬機各分配5臺;其次借助zabbix監(jiān)控軟件,獲取不同平臺下每臺物理機的CPU、內(nèi)存及存儲服務(wù)器的使用狀況,計算出平臺資源利用率及平臺下物理機的資源利用率;然后按照每次保持10臺的增長速度進行分配,直到虛擬機增長到40臺,最后會將多次監(jiān)控獲取的數(shù)據(jù)求平均值,將統(tǒng)計結(jié)果放入表5及表6中.
表5是在隨機分配的情況下進行試驗的結(jié)果.表6是在調(diào)用本文所述的二級平衡度分配策略之后獲取的試驗結(jié)果.
表5 隨機分配下的資源利用率
表6 采用二級平衡度策略下的資源利用率
圖5是在表5、6的基礎(chǔ)上,將上述數(shù)據(jù)整合在一個圖中進行更直觀的對比.
圖5 資源利用率對比圖
由表5、表6可知,虛擬機分配數(shù)量較少時,資源的利用率也比較少,隨著虛擬機數(shù)量的增長,資源利用率也隨之增長.圖5給出了兩種情況下的對比圖.對于平臺虛擬資源,在分配相同數(shù)量虛擬機的情況下,采用二級平衡度分配策略使得平臺虛擬資源利用率大約提高了3%;對于平臺下物理機的虛擬資源,當分配相同數(shù)量的虛擬機時,采用二級平衡度分配策略,使得物理機虛擬資源利用率大約提高了5%.
虛擬資源的平衡度是衡量資源利用率的重要因素,平衡度越小,說明資源利用率越高,虛擬機分配越合理.為了合理的表達平衡度有效值的降低的,本次采用平衡度與平均利用率的比值進行描述,稱為綜合平衡度.平臺和物理機的平衡度在使用二級平衡度分配策略后,與隨機分配下的平衡度相比較,兩者都降低了約0.25,如圖6所示,因此,在平衡度方面也證明了虛擬資源利用率有了明顯的提高.
圖6 資源平衡度性比圖
實驗2實驗步驟設(shè)計如下:首先選擇M2和M4這2種虛擬機規(guī)格來進行實驗; 每次分配10臺虛擬機,其中,這兩種規(guī)格下虛擬機各分配5臺;然后借助zabbix監(jiān)控軟件,獲取相應(yīng)的參數(shù),并計算出平臺資源利用率及平臺下物理機的資源利用率;然后按照每次保持10臺的增長速度進行分配,直到虛擬機增長到40臺,最后,將多次監(jiān)控獲取的結(jié)果進行求平均值,根據(jù)平均值進行數(shù)據(jù)的可視化,如圖7所示.
圖7 平臺綜合平衡度
VMSM-RB模型主要考慮物理機多維資源的利用率,它的局限在于單臺物理機資源利用率很高,而平臺總資源利用率較低.本次實驗首先是按照VMSMRB模型來分配虛擬機,然后在分配相同類型虛擬機時,按照二級平衡度分配策略進行分配虛擬機,對比平臺資源利用率.由圖7可知,二級平衡度分配策略的綜合平衡度比VMSM-RB減小,因此,二級平衡度策略能夠更好的充分利用異構(gòu)平臺下的虛擬資源.
本文給出一體化模型來管理異構(gòu)平臺下的虛擬機,并在此基礎(chǔ)上提出基于粒子群算法的二級平衡度分配策略.實驗表明,該分配策略與隨機分配策略相比較,能夠使得平臺下物理機資源得到了均衡分配,又使得異構(gòu)虛擬化平臺下虛擬資源利用率有了明顯的提高.
1 徐愛萍,吳笛,徐武平,等.實時多任務(wù)異構(gòu)云計算平臺負載均衡算法.中國科學技術(shù)大學學報,2016,46(3):215-221.
2 陳海波,夏虞斌,糜澤羽.跨云計算的機遇、挑戰(zhàn)與研究展望.中國計算機學會通訊,2017,3.
3 謝浩安,張國強,白龍東.一種支持異構(gòu)虛擬資源的統(tǒng)一管理 模 型 設(shè) 計 與 實 現(xiàn).硅 谷,2014,(16):45-46,43.[doi:10.3969/j.issn.1671-7597.2014.16.041]
4 Barros A,Brito A,Brasileiro F,et al.Optimizing resource utilization in private clouds with an opportunistic approach.Proceedings of the 2nd IEEE Latin American Conference on Cloud Computing and Communications.Maceio,Brazil.2013.21-22.
5 Soni G,Kalra M.A novel approach for load balancing in cloud data center.Proceedings of 2014 IEEE International Advance Computing Conference.Gurgaon,India.2014.807-812.
6 Li H F,Ge S Y,Zhang L.A QoS-based scheduling algorithm for instance-intensive workflows in cloud environment.Proceedings of the 26th Chinese Control and Decision Conference.Changsha,China.2014.4094-4099.
7 袁文成,朱怡安,陸偉.面向虛擬資源的云計算資源管理機制.西北工業(yè)大學學報,2010,28(5):704-708.
8 李晨暉,張興旺,崔建明,等.一種基于異構(gòu)云計算平臺的資源管理模型.情報理論與實踐,2013,36(1):104-108.
9 朱亞會,陳丹,莊毅.云數(shù)據(jù)中心資源利用率均衡的虛擬機調(diào)度算法.小型微型計算機系統(tǒng),2017,38(2):232-237.
10 朱澤民,張青.基于多維QoS和云計算的資源負載均衡調(diào)度研究.計算機測量與控制,2013,21(1):263-265,281.
11 周東清,佀慶乾.異構(gòu)云平臺中能源有效的虛擬機部署研究.計算機科學,2015,42(3):81-84,116.[doi:10.11896/j.issn.1002-137X.2015.03.017]
12 Ren HZ,Lan YH,Yin C.The load balancing algorithm in cloud computing environment.Proceedings of the 2nd International Conference on Computer Science and Network Technology.Changchun,China.2012.925-928.
13 Kumar D,Raza Z.A PSO based VM resource scheduling model for cloud computing.Proceedings of 2015 IEEE International Conference on Computational Intelligence &Communication Technology.Ghaziabad,India.2015.213-219.