亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種負載預測感知的虛擬機合并與遷移策略

        2022-10-10 09:25:22劉秋菊
        計算機應用與軟件 2022年9期
        關鍵詞:違例裝箱內存

        陳 平 李 攀 劉秋菊

        1(濟源職業(yè)技術學院 河南 濟源 459000) 2(鄭州工程技術學院 河南 鄭州 450044)

        0 引 言

        云數(shù)據(jù)中心利用虛擬化技術可以在物理服務器上部署多個不同性能的虛擬機,以提高整體的資源利用率[1]。虛擬化的一個主要優(yōu)勢是在數(shù)據(jù)中心內可以進行動態(tài)的虛擬機合并來降低能耗,通過將虛擬機合并到更少數(shù)量的物理主機上,并將閑置主機轉換為睡眠模式以提升能效。動態(tài)的虛擬機合并實現(xiàn)了運行時虛擬機在不同主機間的在線遷移[2],尤其在主機處于較低負載或超載狀態(tài)下時,遷移將具有諸多好處。因此,通過遷移操作會使得數(shù)據(jù)中心內的資源管理更加靈活。然而,虛擬機在線遷移對于運行在虛擬機上的應用任務的性能具有負面影響[3]。由于在云服務提供者與其用戶間提供相應的服務質量是至關重要的,所以動態(tài)虛擬機合并應該著重考慮優(yōu)化虛擬機遷移次數(shù)。此時的服務質量需求通常以服務等級協(xié)議SLA來描述,根據(jù)吞吐量或服務的響應時間上的性能表現(xiàn)來定義。

        動態(tài)虛擬機合并可以形式化為裝箱模型,是NP問題。由于裝箱問題僅能在給定物品下最小化箱子數(shù)量,直接應用于虛擬機合并中擁有一定局限性[4]。很多算法也以裝箱思路求解過虛擬機合并問題。然而,這會產生過多的非必要虛擬機遷移,增加SLA違例風險。比較已有工作最小化主機利用數(shù)量,本文將設計一種啟發(fā)式算法同步最小化虛擬機遷移次數(shù)和SLA違例。本文算法進行動態(tài)虛擬機合并主要由兩個階段組成:1) 嘗試將負載最低主機上的所有虛擬機遷移至負載最大主機上;2) 從當前超載或預測在近期會變?yōu)槌d的主機上遷移出部分虛擬機以防止可能的SLA違例。同時,本文算法可以根據(jù)當前和未來的資源請求將遷移虛擬機分配至合適主機上。為了預測負載,本文設計使用了線性回歸LR和K最近鄰回歸KNNR模型預測方法,對未來資源利用率進行預測。為了訓練和測試預測模型,本文通過運行云環(huán)境中的多種現(xiàn)實負載生成歷史數(shù)據(jù)集,并通過實驗驗證了本文算法的有效性。

        1 相關工作

        相關研究中,文獻[5]提出了動態(tài)的服務遷移機制,在給定負載狀態(tài)和降低SLA違例的條件下可以降低物理能力的使用量,算法利用了裝箱啟發(fā)式方法和時序預測技術最小化主機利用量,但并沒有考慮新部署中的虛擬機遷移次數(shù)。文獻[6]利用蟻群系統(tǒng)尋找最優(yōu)解,同步考慮了休眠主機量和遷移次數(shù)。文獻[7]為了避免性能下降,設置門限值防止主機CPU達到100%占用率,將CPU占用率限定在門限值之內。然而,靜態(tài)的門限值設置無法處理動態(tài)的云負載環(huán)境,此時主機上運行的負載類型是多樣的。因此,門限值應該針對不同的負載類型作出相應改變,并允許有效的任務合并。文獻[8]根據(jù)歷史數(shù)據(jù)的靜態(tài)分析設置了自適應的上下限值,而文獻[9]則根據(jù)數(shù)據(jù)中心內不同的應用類型,以最大化資源利用率和負載均衡為目標,提出了新的虛擬機部署算法。

        虛擬機合并問題可以形式化為裝箱問題,裝箱問題即是將若干物品裝入有限數(shù)量的箱子內,并最小化箱子數(shù)量。每臺虛擬機可視為一個物品,每臺主機即為一個箱子。由于裝箱問題的NP難屬性,有效求解方法為啟發(fā)式方法。如:首次適應算法FF將物品放入可容納該物品的第一個箱子中;最佳適應算法BF將物品放入空間最合適的箱子中。此外,F(xiàn)F和BF算法可進一步改進為降序首次適應算法FFD和降序最佳適應算法BFD。然而,經典的裝箱方法并不能直接應用于虛擬機合并問題。原因在于:1) 虛擬機和主機擁有多個維度資源,如CPU、內存和網絡帶寬。若考慮CPU和內存資源的約束,虛擬機合并問題就是典型的二維裝箱問題。2) 虛擬機合并問題可修正為可變箱子(主機)大小的裝箱問題,不同于經典的等同能力箱子的裝箱問題。3) 經典裝箱方法僅最小化箱子數(shù)量,即單目標優(yōu)化。而本文考慮的目標包括虛擬機遷移次數(shù)和SLA違例問題。文獻[10]設計了BFD的改進算法,可以節(jié)省部分能耗。文獻[11]利用FFD的改進算法在功耗和遷移代價間取得均衡。文獻[12]利用改進的FF和BF算法在未考慮性能下降的情況下最小化主機利用量。然而,以上算法多是單一目標的優(yōu)化,沒有在能效和服務性能上作出綜合的考量。

        本文提出一種融合了負載預測機制的虛擬機合并算法UP-VMC,與已有研究相比具有以下幾點優(yōu)勢:1) 算法可以得到能效和SLA違例間的最優(yōu)均衡解,實現(xiàn)動態(tài)的虛擬機合并;2) 為了降低虛擬機遷移量,算法可以根據(jù)當前和未來的資源需求分配遷移虛擬機至目標主機;3) 為了降低SLA違例,算法選擇從當前超載主機或最近未來會變?yōu)槌d的主機上遷移部分虛擬機,避免無用虛擬機遷移;4) 算法利用線性回歸與K最近鄰回歸方法對負載進行預測,可以基于歷史數(shù)據(jù)預測主機和虛擬機的CPU占用率,實現(xiàn)了前瞻性的虛擬機合并。

        2 系統(tǒng)模型

        假設一個云數(shù)據(jù)中心由m臺異構物理主機構成,表示為P={p1,p2,…,pm}。每臺主機擁有D類資源,如CPU、內存、網絡帶寬和存儲能力。多個虛擬機可以通過虛擬機監(jiān)視器部署在一臺主機上。初始情況下,虛擬機通過傳統(tǒng)裝箱方法降序最佳適應算法進行部署。在任意給定的時間,用戶可發(fā)送虛擬機請求,表示為V={v1,v2,…,vn},需要部署至主機上。由于虛擬機和主機請求的資源占用隨著時間發(fā)生變化,初始部署時,需要利用周期性的虛擬機合并算法對虛擬機部署進行優(yōu)化。本文提出的UP-VMC算法即可根據(jù)負載變化對虛擬機部署作出優(yōu)化。圖1是虛擬機合并的系統(tǒng)模型,由兩類代理構成:1) 在主機上全分布的本地代理(Local Agents,LAs);2) 在主節(jié)點上的全局代理(Global Agent,GA)。執(zhí)行過程如下:

        圖1 系統(tǒng)模型

        1) 每個LA周期性監(jiān)測主機上所有虛擬機的當前資源利用率,然后利用回歸預測模型預測虛擬機的未來資源利用率。本文引入線性回歸和K最近鄰回歸進行預測。

        2) GA收集本地代理信息,獲得虛擬機的當前和未來資源利用率情況。

        3) 利用UP-VMC算法,GA生成全局最優(yōu)遷移計劃,并將其發(fā)送虛擬機監(jiān)視器執(zhí)行虛擬機遷移。該指令決定了源主機上的哪些虛擬機需要遷移至對應目標主機。

        4) 接收GA指令后,虛擬機監(jiān)視器VMM執(zhí)行實際虛擬機遷移。

        每臺主機p擁有d維資源能力向量,Cp={Cp,1,Cp,2,…,Cp,d},Cp,d表示主機p的第d維資源能力。每個維度對應一類物理資源,如CPU、內存、網絡帶寬和磁盤存儲。根據(jù)現(xiàn)實負載的資源維度需求,設置|D|=2,考慮二維虛擬機合并問題,并將CPU和內存考慮為主要資源類型。主機p已使用的能力向量表示為Up={Up,1,Up,2,…,Up,d},其中,Up,d表示主機p的資源d的已使用能力。若三個虛擬機部署在同一臺主機上,則該主機已使用的CPU能力為三個虛擬機的CPU占用之和。虛擬機v的總能力向量表示為Cv={Cv,1,Cv,2,…,Cv,d},其中,Cv,d表示虛擬機v在d維資源上的能力。Uv={Uv,1,Uv,2,…,Uv,d}表示虛擬機v已使用的資源能力。由于動態(tài)負載條件下虛擬機的資源利用會隨時間發(fā)生變化,虛擬機部署需要通過UP-VMC算法進行周期性優(yōu)化。表1給出相關符號說明。

        表1 參數(shù)說明

        3 算法的詳細設計

        UP-VMC算法的執(zhí)行過程如算法1所示。UP-VMC算法通過兩個階段進行虛擬機合并優(yōu)化。

        算法1UP-VMC算法

        1. setM1=NULL

        2. forpso∈[Pover,Pover′] do

        3. sortVMsonpsoandVmin ascending order ofUv,mem

        4. forv∈Vmdo

        5. if (pso∈Pover)‖(pso∈Pover′) then

        6. forpde∈P-[Pover,Pover′] do

        7. if (Upde+Uv≤T×Cpde) and (PUpde+PUv≤T×Cpde)

        8.M1←M1∪{(pso,v,pde)}

        9. updateUpsoandUpde

        10. break

        11. if (pso∈Pover)‖(pso∈Pover′) then

        12. switch on the dormantPMp

        13. else break

        14. setM2=NULL

        15. sortPactivein descending ofLoadp

        16. fori=|Pactive| to 1 do

        17.pso←Pactive[i]

        18.Vm←sortVMsonpso,Vpin descending order ofLoadv

        19. forv∈Vmdo

        20.success←false

        21. forpde∈Pactive-psodo

        22. if (Upde+Uv≤T×Cpde) and (PUpde+PUv≤T×Cpde)

        23.M2←M2∪{(pso,v,pde)

        24. updateUpsoandUpde

        25.success←true

        26. break

        27. ifsuccess=false then

        28.M2←null

        29. recoverUpsoandUpde

        30. else switchpsoto the sleep mode

        31.M←M1∪M2

        32. returnM

        第一階段。UP-VMC算法該階段的目標是從超載和預測超載主機遷移虛擬機以最小化SLA違例。若至少有一類資源(CPU或內存)超過總能力,則主機被視為超載主機集合Pover中的成員。若至少一個預測利用率高于可用資源能力,則該主機被視為超載主機集合Pover′中的成員。UP-VMC算法首先從Pover中遷移部分虛擬機,直到沒有超載主機為止。然后,從Pover′中遷移虛擬機以確保在短期內不會出現(xiàn)SLA違例。

        為了預測資源利用率,利用兩種回歸模型進行預測:線性回歸模型LR和K最近鄰回歸模型KNNR。預測模型可以估算主機和虛擬機的CPU和內存的資源利用。UP-VMC算法在動態(tài)的負載條件下主要關注短期的負載預測。LR主機利用歷史資源利用率數(shù)據(jù)并將其估算為線性函數(shù),該函數(shù)給出了當前與未來資源利用率的關系,表示為:

        PUpde=α+βUpde

        (1)

        式中:PUpde和Upde分別表示主機p的預測和當前已使用能力向量;α和β表示回歸因子,分別用于描述Y軸截距和線性斜率。估算回歸因子的常用方法是最小方差法,該方法估算最優(yōu)的直線擬合為觀察輸出值與預測輸出值間的距離最小化。因此,回歸因子可通過以下公式進行估算:

        (2)

        α=y′-βx′

        (3)

        式中:x′代表x1,x2,…,xn的均值;y′代表y1,y2,…,yn的均值。

        利用類似的方法,虛擬機資源利用也可以通過線性函數(shù)預測,表示為當前已使用的能力向量Uv和預測使用的能力向量PUv之間的線性關系式,為:

        PUv=α+βUv

        (4)

        KNNR利用數(shù)據(jù)集的局部均值對資源利用做出預測。局部數(shù)據(jù)量定義為與新的樣本最近的k個樣本。最優(yōu)k值(鄰居數(shù)量)可以通過留一交叉驗證法確定,取值范圍為樣本數(shù)以內。留一交叉驗證法通過每個可能k值的平方冗余之和估算預測準確性;然后,選擇冗余最小的最優(yōu)k值作為K最近鄰回歸的k值。

        UP-VMC從超載或預測超載主機遷移虛擬機時,將根據(jù)以下三種策略進行遷移虛擬機選擇:最小遷移時間策略MMT、最大負載策略MaxL和最小負載策略MinL。

        第二階段。該階段算法將盡可能消除最低載主機,降低活躍主機數(shù)量以節(jié)省能耗。算法的目標是遷移最低載主機上所有虛擬機至最高載主機并釋放低載主機節(jié)省能耗。UP-VMC算法可確保部署遷移虛擬機后目標主機在短期內不會變?yōu)槌d主機。選擇目標主機時,算法將依次負載從高到低順序選擇,直到虛擬機完成遷移。若低載主機上存在至少一個虛擬機無法遷移,則所有均不遷移。是否能夠實現(xiàn)虛擬機遷移,需要考慮不同維度資源的約束。定義主機p的負載為每個資源維度d的資源利用率Rp,d之和,表示為:

        (5)

        式中:Rp,d表示資源利用Up,d與資源能力Cp,d之比。Rp,d計算為:

        Rp,d=Up,d/Cp,d

        (6)

        為了決定低載主機上遷移的虛擬機,算法按虛擬機負載對其作降序排列,因此,第一個選擇遷移的虛擬機即為負載最高的虛擬機。虛擬機v的負載定義為:

        (7)

        式中:Rv,d表示虛擬機v在d維資源上的請求Uv,d與虛擬機的d維資源總能耗Cv,d之比。Rv,d計算如下:

        Rv,d=Uv,d/Cv,d

        (8)

        為了尋找部署遷移虛擬機的目標主機,引入兩種約束避免SLA違例和無用遷移。第一個約束:若主機當前擁有足夠資源容納遷移虛擬機,則允許虛擬機v遷移至目標主機pde。當主機利用率接近100%時,即會產生SLA違例風險。因此,需要設置閾值T限制虛擬機的資源請求量。因此,第一個能力約束為:

        Upde+Uv≤T×Cpde

        (9)

        式中:Cpde表示目標主機pde的總能力向量;Upde表示pde的已使用能力向量;Uv表示虛擬機v已使用能力向量。

        第二個約束確保在虛擬機遷移后目標主機不會變?yōu)槎唐诔d主機,因此,此時UP-VMC算法同時考慮了主機pde和虛擬機v的未來資源能力需求。第二個預測能力約束為:

        PUpde+PUv≤T×Cpde

        (10)

        式中:PUpde表示主機pde的預測使用能力向量;PUv表示虛擬機v的預測使用能力向量。

        UP-VMC算法的目標是通過實現(xiàn)前文所述兩個步驟得到一個最終的虛擬機遷移計劃。在第一階段中,即步驟2-步驟13,步驟2遍歷超載主機集合Pover和預測超載主機集合Pover′,其目標是從這兩個集合中遷移出虛擬機以避免更多的SLA違例。為了實現(xiàn)這一目標,算法首先選擇遷移時間最小的虛擬機進行遷移。由于主機間的網絡帶寬為1 Gbit/s,根據(jù)虛擬機請求的內存利用即可計算出遷移時間。因此,算法以請求內存利用的降序對所有虛擬機進行排序,然后開始虛擬機遷移,即步驟3-步驟4。若源主機仍為超載或預測超載集合中的成員,則再次利用虛擬機遷移選擇策略從該主機選擇遷移虛擬機,即步驟5,重復該過程直到該主機在當前和未來均不是超載主機為止。然后,算法根據(jù)提出的兩個約束選擇重分配虛擬機v的目標主機(步驟6-步驟7)。最后,新的虛擬機部署被添加為遷移計劃M1中的成員,即步驟8。遷移計劃設置為三元組(pso;v;pde),其中:pso為源主機;v為遷移虛擬機;pde為目標主機。若活躍主機沒有足夠資源分配虛擬機v,則開啟一臺休眠主機p,即步驟11-步驟13。

        第二個階段中,即步驟14-步驟30,算法根據(jù)負載的降序對活躍主機進行排序。UP-VMC從列表Pactive中的最后一個主機開始,將負載最低的主機考慮為源主機pso,即步驟16-步驟17。然后,算法嘗試從主機pso上遷移所有虛擬機以釋放pso。為了從pso上選擇優(yōu)先遷移的虛擬機,算法對pso上的所有虛擬機按其負載進行降序排列,即步驟18。為了找到分配遷移虛擬機的目標主機pde,UP-VMC算法從列表Pactive中第一個主機(負載最高主機)開始掃描,即步驟19。若無法部署,繼續(xù)選擇第二臺主機嘗試。算法選擇的目標主機pde需要在當前和短期未來均擁有容納遷移虛擬機的資源,即步驟20。最后,新的虛擬機部署添加為遷移計劃M2中的成員,即步驟23。更新源主機和目標主機的能力以反映遷移后的改變,即步驟24。參數(shù)success用于檢測從源主機上是否所有虛擬機均被遷移,若有至少一個虛擬機未遷移,則所有虛擬機均不作遷移。因此,若success為false,則算法需要移除遷移計劃中的所有三元組并恢復源主機和目標主機的資源能力,即步驟27-步驟29。否則,所有虛擬機遷移后,源主機被轉換為休眠模式,即步驟30。UP-VMC算法的輸出是遷移計劃M,包括兩個階段中的全部遷移三元組,即步驟31-步驟32。

        4 實例分析

        以一個實例說明UP-VMC算法的實現(xiàn)過程?,F(xiàn)在三臺異主機P={p1,p2,p3},五臺虛擬機部署請求,V={v1,v2,v3,v4,v5}。主機的能力向量分別是為:Cp1={12,18},Cp2={6,8},Cp3={8,12},表明主機p1的CPU能力和內存分別為12 GHz和18 GB。虛擬機的能力向量分別為:Cv1={1,1},Cv2={1,4},Cv3={2,2},Cv4={2,2},Cv5={3,4}。Cv1={1,1}表明虛擬機1的CPU和內存消耗分別為1 GHz和1 GB。假設CPU閾值設置為T=0.8。

        UP-VMC算法的第一次迭代中,虛擬機請求的資源占用為:Uv1={0.5,0.7},Uv2={0.5,2},Uv3={0.5,0.5},Uv4={0.5,0.5},Uv5={0.5,0.5}。Uv1={0.5,0.7}表明虛擬機v1請求1 GHz中的0.5 GHz的CPU能力和1 GB內存的0.7 GB?;诔跏嫉奶摂M機部署(圖2(a)),主機的已使用能力向量為:Up1={1,2.7},Up2={0.5,0.5},Up3={1,1}。如:{0.5,0.7}為虛擬機v1請求的CPU和內存元組,{0.5,2}為虛擬機v2請求的能力。那么,主機p1容納這兩個虛擬機后,其占用則為{1,2.7},即請求向量之和。算法首先利用式(3)計算每個主機的負載為:

        (a) 第一次迭代:v3從p2遷移至p1

        (b) 第二次迭代:v4從p3遷移至p1,然后v5遷移

        (c) 第三次迭代:不發(fā)生遷移圖2 實例說明

        類似地,p2和p3的負載分別為:Loadp2≈0.14,Loadp3≈0.20。在第一步,UP-VMC算法沒有找到任一超載和預測超載主機,由于所有主機的當前和預測利用率均未超過主機能力。在第二步,算法根據(jù)當前負載得到主機p2是最低負載主機,為了釋放p2,需要遷移虛擬機v3。

        為了尋找部署v3的目標主機,UP-VMC算法從負載最大主機p1開始掃描,并確定式(9)和式(10)是否成立。

        Up1+Uv3≤T×Cp1={1,2.7}+{0.5,0.5}≤

        0.8×{12,18}={1.5,3.2}≤{9.6,14.4}

        PUp1+PUv3≤T×Cp1={1.2,2.5}+{0.8,1.3}≤

        0.8×{12,18}={2,3.8}≤{9.6,14.4}

        由于主機p1在所有資源維度上均擁有足夠的能力部署虛擬機v3,式(9)條件滿足。同時,如果主機p1的預測能力向量為{1.2,2.5},虛擬機v3的預測需求能力向量為{0.8,1.3},則式(10)條件滿足。

        由于兩個條件均滿足,虛擬機v3可從主機p2遷移至p1。由于p2未部署任一虛擬機,p2可轉換為休眠狀態(tài)節(jié)省能耗 。

        在第二次迭代中,算法未執(zhí)行第一步,由于活躍主機p1和p3不是超載或預測超載主機。在第二步中,假設虛擬機的當前資源需求為:Uv1={1.4,3},Uv2={2,2},Uv3={3,4},Uv4={0.5,0.5},Uv5={0.5,0.6}。根據(jù)當前的虛擬機部署,如圖2(b)所示,主機已使用能力向量為:Up1={6.4,9},Up2={0,0},Up3={1,1.1}。活躍主機的負載為:Loadp1≈1.03,Loadp3≈0.21。由于主機p3負載小于p1,若p1可容納v4和v5,則可將p3轉換為休眠。UP-VMC算法首先從p3上遷移一個擁有最大負載的虛擬機。虛擬機負載由式(7)計算。

        由于v4比v5負載高,UP-VMC算法嘗試將v4遷移至p1。p1需要在當前和未來均有足夠資源能力容納該虛擬機。在PUp1={1,2.5}和PUv4={0.5,0.6}情況下,式(9)和式(10)成立,則p1為目標主機。

        Up1+Uv4≤T×Cp1={6.4,9}+{0.5,0.5}≤

        0.8×{12,18}={6.9,9.5}≤{9.6,14.4}

        PUp1+PUv4≤T×Cp1={1,2.5}+{0.5,0.6}≤

        0.8×{12,18}={1.5,3.1}≤{9.6,14.4}

        因此,v4可遷移至p1,由于主機在當前和未來均擁有足夠資源能力。然后,算法檢測p1是否有足夠資源容納v5,且假設PUv5={0.7,0.5}:

        Up1+Uv5≤T×Cp1={6.4,9}+{0.5,0.6}≤

        0.8×{12,18}={6.9,9.6}≤{9.6,14.4}

        PUp1+PUv5≤T×Cp1={1,2.5}+{0.7,0.5}≤

        0.8×{12,18}={1.7,3}≤{9.6,14.4}

        由于v5可遷移至p1,遷移后p3可轉換為休眠。最后,主機利用量從3減至1。同時,資源需求量增加,兩個休眠主機可以再次開啟。

        5 性能評估

        5.1 實驗環(huán)境搭建

        為了測試算法性能,在CloudSim平臺[13]中進行仿真實驗,構建由M臺異構主機構成的數(shù)據(jù)中心,M大小由負載類型決定,如表2所示,選取PlanetLab[14]和Google[15]兩類負載類型。每種負載類型中,一半主機為HP ProLiant ML110 G4服務器,單核1 860 MIPS,一半主機為HP ProLiant ML110 G5服務器,單核2 660 MIPS。每臺主機擁有兩個核心,4 GB內存和1 GB/s帶寬。虛擬機實例的CPU和內存屬性參考Amazon EC2在平臺中設置,即:High-CPU中等實例(2 500 MIPS,0.85 GB),越大實例(2 000 MIPS,3.75 GB),小型實例(1 000 MIPS,1.7 GB),微型實例(500 MIPS,613 MB)。

        表2 負載流特征

        5.2 評估指標

        1) SLA違例SLAV指標。SLAV是一種獨立的負載指標,用于評估虛擬機部署中SLA的交付情況。SLAV包括主機超載導致的SLA違例SLAVO和由于遷移導致的SLA違例SLAVM。對于云環(huán)境中的虛擬機合并問題而言,兩種SLA違例具有同等的重要性,因此,綜合的SLA違例指標可考慮為兩個參數(shù)的乘積,表示為:

        SLAV=SLAVO×SLAVM

        (11)

        式中:SLAVO表示活躍主機經歷CPU利用率100%所占的時間比例。

        (12)

        式中:M表示主機數(shù)量;Tsi表示主機i經歷的CPU利用率100%(導致SLA違例)的總時間;Tai表示主機i活躍狀態(tài)的總時間。

        SLAVM表示由遷移導致的虛擬機性能下降,度量為:

        (13)

        式中:N表示虛擬機數(shù)量;Cdj表示由于遷移導致的虛擬機j性能下降的估算;Crj表示整個周期中虛擬機j的總CPU請求量。

        2) 能耗指標。該指標表示數(shù)據(jù)中心中物理主機執(zhí)行負載消耗的總體能耗。主機能耗取決于CPU、內存、存儲及網絡帶寬的利用率。研究表明,相比其他資源類型,CPU消耗了最多能源。因此,簡化能耗模型后,主機能耗可表示為其CPU利用率的關系式。實驗中依據(jù)SPECpower試驗床中現(xiàn)實的功耗數(shù)據(jù)。表3給出了在不同的負載條件下兩類主機HP G4和HP G5的功耗情況,可以看出,低載主機轉換為休眠后可降低能耗。

        表3 不同負載條件下主機的功耗 單位:W

        3) 虛擬機遷移量。在線虛擬機遷移涉及在源主機上的CPU處理、源和目標主機間的鏈路帶寬、遷移時的服務停機、遷移時間等多重代價,因此,虛擬機合并過程中需要最小化虛擬機遷移量。

        5.3 比較基準

        將以下啟發(fā)式算法與本文的虛擬機合并算法UP-VMC進行對比分析:

        1) 改進降序最佳適應算法MBFD。該算法利用一個閾值限定目標主機的CPU利用率進行分配虛擬機遷移。若虛擬機和主機的總的已使用能力未超過主機的總能力閾值,則算法將虛擬機v分配至負載最高的主機pde,即式(9)。

        比較UP-VMC,MBFD算法未使用預測模型,僅從超載主機上遷移虛擬機以避免SLA違例。因此,該算法可以通過釋放主機節(jié)省能耗。

        2) 改進降序首次適應算法MFFD。該算法將遷移虛擬機分配至滿足資源需求且不超過CPU能力向量約束的第一臺主機上,即式(10)。

        同時,該算法通過遷移超載主機上的虛擬機最小化SLA違例,也執(zhí)行了UP-VMC的第二階段,基于當前資源需求最小化了活躍主機量。

        3) 主機利用率預測的虛擬機合并算法PUP-VMC。該算法運行機制與本文算法UP-VMC類似,但僅考慮了目標主機的未來資源利用率進行虛擬機分配。因此,算法分配虛擬機v至目標主機pde,若主機pde的預測能力和虛擬機v的請求能力向量不超過主機總能力向量閾值,即:

        PUpde+Uv≤T×Cpde

        (14)

        4) 虛擬機利用率預測的虛擬機合并算法VUP-VMC。該算法運行機制與本文算法UP-VMC類似,但僅考慮了虛擬機的未來資源利用率進行虛擬機分配。虛擬機v可分配至目標主機pde,若主機已使用能力向量與虛擬機的預測需求能力向量不超過主機的總的能力向量閾值,即:

        Upde+PUv≤T×Cpde

        (15)

        5) 貪婪虛擬機合并算法G-VMC。該算法從最低載主機上嘗試遷移出所有虛擬機至最高載主機上,并釋放最低載主機。為了消除不必要的遷移,該算法只要出現(xiàn)一個虛擬機無法遷移,則所有虛擬機均不遷移。

        6) 蟻群優(yōu)化虛擬機合并算法ACS-VMC。一種元啟發(fā)式裝箱算法,利用蟻群覓食過程得到虛擬機遷移計劃,降低能耗和SLA違例風險。

        5.4 虛擬機遷移選擇機制

        引入三種典型的虛擬機遷移選擇機制觀察UP-VMC算法的性能:

        1) 最小遷移時間算法MMT。該算法選擇遷移的是具有最小遷移時間的虛擬機。遷移時間定義為虛擬機的內存除以源/主機間的網絡帶寬。

        2) 最大負載算法MaxL。該算法選擇遷移的虛擬機具有最大的負載Loadv。

        3) 最小負載算法MinL。該算法選擇遷移的虛擬機具有最小的負載Loadv。

        5.5 結果分析

        實驗1觀察虛擬機遷移選擇策略對于性能的影響,結果如圖3和圖4所示。當利用MMT進行虛擬機遷移選擇時,UP-VMC算法可以降低能耗、SLA違例、虛擬機遷移量。此外,利用K最近鄰回歸作為負載預測模型時,UP-VMC算法也可以更好地降低三個性能指標值,顯然K最近鄰回歸比線性回歸可以更準確地對主機和虛擬機的資源利用做出預測。

        (a) SLA違例情況

        (b) 能耗情況

        (c) 虛擬機遷移量圖3 PlanetLab負載流的性能結果-UP-VMC采用不同的虛擬機遷移選擇機制和不同的負載預測模型

        (a) SLA違例情況

        (c) 虛擬機遷移量圖4 GCD負載流的性能結果-UP-VMC采用不同的虛擬機遷移選擇機制和不同的負載預測模型

        實驗2觀察與基準算法的對比結果。先以PlanetLab負載流進行測試。由于越高的CPU利用閾值將導致越高的性能下降和越多的遷移,而低閾值又會增加能耗,因此需要選取合適閾值大小。實驗中在50%~100%范圍內改變閾值取值觀察性能指標值的影響。圖5(a)顯示了七種算法的SLA違例情況。顯然,UP-VMC算法對比其他算法可以更有效地降低SLA違例,這是由于該算法根據(jù)設計的預測模型在將虛擬機遷移至目標主機時不會導致該主機變?yōu)槎唐趦鹊某d主機。此外,UP-VMC算法可以從當前超載和預測超載主機上遷移虛擬機以避免SLA違例。圖5(b)顯示,UP-VMC算法較MFFD可以節(jié)省約71%的能耗,原因在于本文算法可以將虛擬機裝箱至高負載主機,最小化了活躍主機的數(shù)量。圖5(c)顯示了虛擬機合并過程中的虛擬機遷移量。由于資源利用的預測,本文算法有效降低了虛擬機遷移量,且優(yōu)于基準算法。

        (a) SLA違例情況

        (b) 能耗情況

        (c) 虛擬機遷移量圖5 PlanetLab負載流的性能結果

        以GCD負載流同樣進行了一次仿真實驗,仿真過程中,每個虛擬機隨機分配一個負載流。圖6(a)顯示UP-VMC算法比基準算法大大降低了SLA違例,這是由于UP-VMC能夠通過主機和虛擬機的負載預測以及虛擬機遷移不會導致目標主機變?yōu)槌d主機的方式有效避免了SLA違例。圖6(b)顯示,UP-VMC擁有最多的能耗節(jié)省,這是由于UP-VMC通過裝箱虛擬機至更少的主機釋放了低載主機,節(jié)省了能耗。同時,由圖6(c),UP-VMC也得到了最少的虛擬機遷移量,這利于本文算法可以根據(jù)當前和未來的資源占用分配遷移虛擬機,降低了無用虛擬機遷移。

        (a) SLA違例情況

        (b) 能耗情況

        (c) 虛擬機遷移量圖6 GCD負載流的性能結果

        綜合實驗結果分析,負載的動態(tài)變化會直接影響虛擬 機遷移過程。當負載量急劇增加時,虛擬機遷移量也會相應增加,由于在確定的資源能力狀態(tài)下,必須通過虛擬機遷移才能滿足更大的負載需求。在此過程中,資源利用閾值也會影響虛擬機遷移,閾值的增加也會導致遷移量的增加,這是因為此時在相同條件下資源可容納的負載會增多,可允許的遷移也會增加。但是,在虛擬機和主機兩端進行了資源利用預測可以明顯降低虛擬機遷移量,避免動態(tài)負載條件下的不必要遷移。當負載量比較平穩(wěn)或較小時,虛擬機遷移頻率也會較小,因為已有資源能力可以滿足負載需求,無須進行虛擬機遷移。

        綜合圖5和圖6可以發(fā)現(xiàn),閾值的增加會導致能耗的降低,但遷移量和SLA違例會有所增加。因此,在實際環(huán)境中,應該綜合考慮性能優(yōu)化目標來設置合適的閾值。

        6 結 語

        本文提出一種預測感知的虛擬機合并算法。算法將虛擬機合并形式化為多目標向量裝箱問題。為了將虛擬機合并至最小數(shù)量的活躍主機上,算法利用回歸模型同步考慮了主機上的當前負載和未來負載,使得虛擬機遷移過程中在目標主機選擇上可以避免主機在虛擬機遷移后變?yōu)槌d主機,增加SLA違例風險。通過兩類負載類型的仿真測試,證明了本文算法不僅可以降低數(shù)據(jù)中心能耗,還可以同步降低SLA違例和虛擬機遷移量。進一步的研究可集中考慮資源維度更多的虛擬機合并和遷移問題。除了關鍵的CPU資源和內存之外,網絡資源占用和鏈路擁塞也是虛擬機合并過程中可能需要考慮的問題,尤其針對通信密集型應用負載類型而言,可能導致通信鏈路的擁塞,此時若僅考慮CPU和內存資源兩個維度,可能導致最終的虛擬機合并與遷移出現(xiàn)超時問題。

        猜你喜歡
        違例裝箱內存
        中小學生籃球比賽中違例情況的問題分析與執(zhí)裁要點
        體育教學(2022年12期)2023-01-09 17:18:24
        清代補服紋樣使用的違例現(xiàn)象與懲處
        “春夏秋冬”的內存
        當代陜西(2019年13期)2019-08-20 03:54:22
        電機裝箱設計系統(tǒng)解決方案和應用
        三維貨物裝箱問題的研究進展
        基于三維模型的可視化裝箱系統(tǒng)
        河南科技(2015年2期)2015-02-27 14:20:23
        某集團裝箱管理信息系統(tǒng)的分析與設計
        河南科技(2014年4期)2014-02-27 14:06:58
        基于內存的地理信息訪問技術
        上網本為什么只有1GB?
        亚洲综合中文一区二区| 国产女奸网站在线观看| 日韩av在线不卡观看| 亚洲男人免费视频网站| 国产大片内射1区2区| 亚洲色欲色欲www在线播放| 99热成人精品国产免| 国产亚洲精品综合在线网站| 国产高清成人在线观看视频| 国产成人精品一区二区不卡| 一本久到久久亚洲综合| 99久久精品国产一区色| 凌辱人妻中文字幕一区| 亚洲av永久无码精品| 极品美女高潮喷白浆视频| 精品国产一区二区三广区| 精品一二三四区中文字幕| 国产一卡2卡3卡四卡国色天香| 人妻少妇不满足中文字幕| 亚洲精品女优中文字幕| 国产欧美精品aaaaaa片| 亚洲国产成人久久综合电影| 少妇的诱惑免费在线观看| 免费观看一区二区三区视频| 亚洲综合色无码| 永久免费的av在线电影网无码| 国产精品成人av电影不卡| 少妇下面好紧好多水真爽| 日本丰满熟妇videossex一| 亚洲av成人一区二区三区av| av网页在线免费观看| 在线视频中文字幕一区二区三区| 亚洲av福利无码无一区二区| 亚洲熟妇网| 日本精品少妇一区二区| 人妻丰满熟av无码区hd| 欧美黑人乱大交| 青青草免费在线手机视频| 一二三四区中文字幕在线| 欧美成人片一区二区三区| 亚洲高清国产品国语在线观看|