徐勝超,熊茂華,葉力洪
(廣州華商學院 數(shù)據(jù)科學學院,廣東 廣州 511300)
虛擬機遷移是綠色節(jié)能云數(shù)據(jù)中心的構造的關鍵技術,可以使云數(shù)據(jù)中心的物理資源充分利用起來,提高云服務提供商的服務質量,降低企業(yè)成本,所以近年來得到了廣泛的研究[1?4].
虛擬機遷移的過程非常復雜,一類是以Cloudsim云模擬器工具包為平臺及其相關研究的虛擬機遷移模型[5?11],另外一大類是通過智能算法完成虛擬機遷移各個過程的優(yōu)化,例如貪心算法[12]、粒子群優(yōu)化算法[13]、螢火蟲群優(yōu)化算法[14]、遺傳算法[15]、蟻群算法[16]和蛙跳算法[17]等.2012~2017年國內外提出的虛擬機遷移模型在遷移的時候考慮的因素固定在某個單獨維度(比如宿主機的CPU的利用率、內存的大小和剩余磁盤空間)[10?12],2018~2020年提出的虛擬機遷移模型考慮的因素呈現(xiàn)多維趨勢(比如同時考慮宿主機的網(wǎng)絡帶寬、處理器溫度情況、主頻大小、磁盤空間和網(wǎng)絡接口等),甚至也考慮軟件因素(宿主機的負載情況).同時最近三年云數(shù)據(jù)中心的能量消耗模型的設計也在不斷的改進,不斷地更加接近于真實的能量消耗,例如文獻[2]中提到的花授粉算法的虛擬機遷移模型,文獻[3]中提到的容器云的虛擬機遷移模型,文獻[16]中提到的改進的蟻群算法的虛擬機遷移模型.
上述所描述的虛擬機遷移策略都取得了較好的效果,但是大部分都以單虛擬機遷移為主要研究對象.近年來也有少量的以多虛擬機遷移為對象的研究,考慮的是多個虛擬機同時遷移時間、遷移次數(shù)和通信代價等指標.多虛擬機遷移策略可以在一定程度少減少遷移次數(shù),從而間接地降低物理主機的能量消耗,也有自己的優(yōu)點[18?19],近三年來的多虛擬機遷移模型的提出越來越少,云計算平臺的虛擬化技術逐步在向容器技術和邊緣計算技術轉化.
在目前多虛擬機遷移策略的研究中,并沒有考慮當時的云數(shù)據(jù)中心的資源的運行狀態(tài),也沒有對多虛擬機遷移的時間和通信成本進行建模分析從而導致了比較低的遷移效果[20?21].另外虛擬機在線遷移后對物理主機的響應時間的影響也是值得考慮的問題.針對上述分析,提出了一種基于組的多虛擬機遷移策略GBM-VMM(Group Based Multi-virtual Machine Migration Model),是一種多虛擬機遷移模式,在虛擬機組選擇的過程中,考慮了虛擬機遷移的時間代價和額外的能量消耗對主機響應時間的影響,根據(jù)資源的運行狀態(tài)及剩余虛擬機的連接度(Degree of Connection,DoC)來完成候選遷移虛擬機組的形成.GBMVMM虛擬機遷移策略通過Cloudsim工具包來實現(xiàn)和仿真,仿真結果表明遷移時間代價、總體遷移代價和物理主機的響應時間都比較小,對其他企業(yè)構造節(jié)能綠色云數(shù)據(jù)中心具有很好的參考價值.
1.1多虛擬機遷移問題定義當云數(shù)據(jù)中心的物理主機的資源超負載運行的時候,虛擬機遷移過程將啟動,把虛擬機從超負載的物理主機遷移到另外一臺正常的物理主機之上.不同的遷移策略將產生不同的遷移過程,這些遷移結果將直接影響到云數(shù)據(jù)中心的各個性能指標.圖1為2個不同的虛擬機遷移策略,單虛擬機遷移和多虛擬機遷移.
圖1 2種不同的虛擬機遷移模型
圖1中物理主機1超負載,運行的多個虛擬機需要遷移到另外一個節(jié)點.按照圖1a的辦法單虛擬機模式,VM3被選擇出來并遷移到物理主機2,這是因為物理主機1和物理主機2位置上比較接近,通信成本低.物理主機的位置距離可以根據(jù)常見的方法進行計算[22].其次,選擇遷移VM4,由于物理主機2沒有足夠的資源容納VM4,所以將物理主機3作為目標主機.可以看出,存在物理主機選擇問題和虛擬機選擇問題,這也是上述提到的虛擬機遷移過程中的前2個步驟:物理主機狀態(tài)檢測和虛擬機選擇.但是VM3和VM4分別遷移到了物理主機2和物理主機3,遷移了2次,通信量較大,間接增加了硬件能量消耗.在圖1b中,VM3和VM4同時都遷移到物理主機3,該過程保證了比較低的通信量,而且只遷移了一次,降低了遷移次數(shù).
1.2多虛擬機遷移描述為了完成虛擬機在處理任務時候的相互合作,虛擬機之間有頻繁的通信.因此,采用一個無向圖G(V,E)來描述虛擬機之間的關聯(lián)性.圖2中的無向圖G(V,E)中頂點表示了虛擬機,邊表示了虛擬機之間的通信量的大小.一個虛擬機的屬性可以通過其源物理主機、CPU的內核個數(shù)和內存的需求3個元素表示,即(PM src,vci,vmi).不失一般性,可以假設在同一個物理主機上的虛擬機是連接在一起,在不同的物理主機上的虛擬機可能是有關聯(lián)性.圖2表示了虛擬機遷移的模型,(PM1,2,2 000)的含義是該虛擬機在物理主機PM1上,對CPU的資源需求是2個核心,內存2 000 MiB,邊上的數(shù)字表示通信代價的權值.PM1有5個虛擬機:VM1~VM5,{VM3,VM4}、{VM1,VM5}、{VM2}分別組成3組.
圖2 多虛擬機遷移模型的元組表示
1.3GBM-VMM遷移代價分析為了便于研究虛擬機遷移過程中的時間代價、虛擬機遷移額外能量消耗代價,分別設計以下數(shù)學模型.
遷移時間代價 在虛擬機選擇中,在線遷移技術一般采用預復制策略.在線遷移時,從源物理主機到目標物理主機過程中內存中的臟頁面通過不停地迭代而傳輸,虛擬機遷移時間越長,消耗物理資源就越多,對網(wǎng)絡通信帶寬的影響就越大.因此,采用遷移時間代價來描述虛擬機遷移的代價.
假設預復制算法中持續(xù)了ni+1次循環(huán),虛擬機VMi在第k次循環(huán)中數(shù)據(jù)的轉化量與傳輸時間分別記為vi,k和Ti,k(0≤k≤ni).v0=memi*vi,k(k≠0)的產生是由以前的循環(huán)輪次中的臟頁面來確定,所以有vi,k=r i*Ti,k-1(1≤k≤n)i,r i表示臟頁面的傳輸速率,且表示了網(wǎng)絡帶寬.因此,時間Ti的計算公式
其中,ni可以根據(jù)內存的閾值memth來計算,當超過閾值時,整個循環(huán)迭代過程將停止,ni的計算公式
虛擬機在遷移過程中的下載時間
其中,Td_i是轉化剩下的內存臟頁面的時間,Tresume_i是將虛擬機恢復到目標主機消耗的時間.因此,整個虛擬機VMi遷移的時間代價
能量消耗代價 表示虛擬機在處理任務的時候物理主機產生的額外的能量消耗情況,用虛擬機的資源利用效率來表示.虛擬機的資源利用效率是隨著應用程序負載的變化而動態(tài)變化.例如,需要從超負載物理主機遷移虛擬機的時候,虛擬機處于高密集性任務狀態(tài),其資源使用利用效率非常高.同時,值得注意的是虛擬機資源利用效率還與歷史數(shù)據(jù)密切相關,在過去一段時間具有高資源利用效率的虛擬機一直處于高密集性任務狀態(tài),將來也可能一直要處于高密集性任務狀態(tài).因此,虛擬機的能量消耗代價
其中,ucpuj和u RAMj分別表示了虛擬機在時刻j的處理器利用效率需求和內存的利用效率需求,t表示了虛擬機遷移的時刻,T表示了虛擬機的歷史數(shù)據(jù)的持續(xù)時間.這里使用了虛擬機的歷史數(shù)據(jù)的平均資源利用效率情況,歷史數(shù)據(jù)可以從樣本數(shù)據(jù)中獲取.在持續(xù)的T時間段內,Δt表示了時間間隔.值得注意的是Cost_E(VMgroup)不一定是具體的能量消耗值,是通過虛擬機的利用效率情況所表示的額外代價.
2.1遷移代價目標值的定義由于很難尋找到同時滿足2個遷移代價最小的組選擇策略,因此,可以把2個指標進行綜合,從而達到簡化的目的.定義Cost_mig(VMGroup)和Cost_E(VMGroup)的權重來作為整體遷移代價.Cost_mig(VMGroup)和E(VMGroup)通過標準化來排除其之間的差異,所以整體遷移代價的目標值Cost_integrated,
其中,γ是用來控制變量的權重,γ∈[0,1].Cost_integrated的最小值為基于組的多虛擬機遷移模型最合適的遷移組.
2.2遷移代價計算過程采用了貪心策略的方式來確定最優(yōu)虛擬機組的選擇過程.對于一個多虛擬機遷移,存在多個分組的可能性.例如圖2中PM1上有3個虛擬機機(VM3,VM4,VM5)需要遷移,有5種分組方法:partition1={{VM3},{VM4},{VM5}},partition2={{VM3,VM4},{VM5}},partition3={{VM3},{VM4,VM5}},parti?tion4={{VM3VM5},{VM4}},partition5={{VM3,VM4,VM5}}.因此,必須計算出所有的分組情況,并獲得最優(yōu)的組選擇解決辦法.
為了保證虛擬機遷移的低通信量,必須將在具有同樣連接的虛擬機遷移到一個相同的物理主機上.從圖2可以看出,partition4不滿足同一連接條件.
算法Algorithm1給了具體的Cost_integrated值的計算步驟和VMGroup i的選擇步驟.為了避免頻繁的虛擬機遷移操作,GBM-VMM中必須設置物理資源安全范圍(Resource Safe Range,SR).當虛擬機遷移之后,如果資源的占用情況還在SR的范圍內,表明該物理主機上的虛擬機遷移結束.
在虛擬機遷移模型工作過程中,物理主機1上的可選擇的虛擬機組按照圖2中的方式環(huán)繞.圖2中整個物理主機1的資源是(PM1,16,16 000),checkAvailable()函數(shù)中SR的范圍是[Low,high]=[0.5,0.6],θ邊界值的取值是0.5.availableResource()函數(shù)用來確定物理主機的資源在容納了新遷移的虛擬機后是否超過了SR的上限.checkConnected()函數(shù)用來確定虛擬機是否具有同一連接.針對每一個分組,計算出虛擬機組VMGroupi選擇的最小代價值Cost_integrated.
Algorithm1偽代碼如下:
Algorithm 1.CCMS(Calculate Cost and Migration Scheme)
在輸入?yún)?shù)中,AdjVM,remVM分別表示了被選擇了的虛擬機VMi的相鄰的虛擬機,remVM表示了組內所剩余的虛擬機列表.在輸出參數(shù)中,PMdist,VMmig分別表示源目標物理主機、即將遷移的虛擬機.PMList表示了所有的物理主機列表.
2.3最優(yōu)虛擬機組的選擇過程整個基于組的多虛擬機遷移模型GBM-VMM的偽代碼如算法Algo?rithm2.因為只有遷移代價最小的VMGroupi可以滿足虛擬機遷移的條件,所以算法Algorithm2專門用來計算遷移代價最?。糃ost_integrated_VMGroup i,VMmig,PMdist>,當在所有的分組獲得了最小Cost_integrated,這樣就完成了虛擬機遷移的目標物理主機選擇和虛擬機選擇的2個過程.
首先選擇所有可能虛擬機組VMGroup i作為候選遷移對象,然后啟動虛擬機組選擇策略,該策略必須包括所有的可能情況,這樣可以防止最優(yōu)遷移策略的丟失.需要轉化超負載物理主機的虛擬機關聯(lián)圖在所有的虛擬機組進行選擇.選擇后該物理主機資源必須在SR的范圍內,而且剩余的虛擬機的連接度(De?gree of Connection,DoC)達到一個邊界值.值得注意的是虛擬機組也可能存在有單虛擬機選擇的情況.算法Algorithm2的偽代碼描述了虛擬機組選擇的具體過程.
物理主機PMk上的虛擬機的數(shù)量反映了被選擇的虛擬機組的狀態(tài).checkAvailable()函數(shù)用來確定虛擬機遷移完成后物理主機的資源是否在處于SR的范圍內.θ(0<θ<1)表示了連接度DoC必須要達到的邊界值.checkConnectNum()函數(shù)用來檢查相對于剩余的虛擬機,連接在一起的虛擬機的數(shù)量是否達到了θ邊界值.
如果上述條件都滿足,那么虛擬機組選擇將進入到下一步,如果沒有虛擬機組滿足條件,那么使物理主機PMk上的每個虛擬機都作為虛擬機選擇組VMGroup i.
3.1實驗環(huán)境的構造GBM-VMM虛擬機遷移策略以Cloudsim模擬器工具包作為云數(shù)據(jù)中心的仿真環(huán)境.性能比較對象為FPA-VMM[2]和ACO-VMM[16]2個虛擬機遷移策略,比較其之間的遷移時間代價和額外能量消耗代價.此外,虛擬機遷移額外產生的開銷可以用物理主機響應時間來表示.因為物理主機響應時間是體現(xiàn)云數(shù)據(jù)中心的資源是否充足的體現(xiàn),所以響應時間也作為GBM-VMM的測試指標.FPAVMM為單虛擬機遷移模型,利用花授粉算法來完成虛擬機的遷移.ACO-VMM是2018年提出的比較先進的虛擬機遷移模型[16].
按照文獻[23]的方式設置參數(shù)k,完成云數(shù)據(jù)中心的物理主機的網(wǎng)絡拓撲構造,如表1所示.網(wǎng)絡帶寬為1Gib?s-1.物理主機之間的位置距離Distance大小通過文獻[22]的方式來計算,通過觀察樣本數(shù)據(jù)可以得知,在strtucture1條件下可選擇的VMGroup大約有148個.
模擬了4個類型的物理主機如表2所示.采用先來先服務的(First Come First Service,F(xiàn)CFS)的方式來完成虛擬機放置.
3.2實驗參數(shù)設置云客戶端可以是一個Web應用程序或者其他一個具有不同類型工作負載的應用程序,用來反映不同的虛擬機請求類型(虛擬機個數(shù)為600~3 000).在虛擬機遷移預復制算法中,虛擬機之間帶寬的平均值是10 MiBps,標準差是1 MiBps,概率是0.75.在實驗中,臟頁面的速率設置為100 MiBps,虛擬機之間的通信量可以按照文獻[24]的方式來參考.memth設置為100 MiB,Tresume_i設置為20 ms.
設置SR的范圍為[0.5,0.8],將參數(shù)θ的值設置為0.4.在公式(6)和公式(7)中λ表示了權重,使得數(shù)據(jù)的統(tǒng)計更加精確,設置λ=0.3,T=3 600 s,Δt=30 s,意味著歷史數(shù)據(jù)選擇為近1 h,時間間隔是30 s.在式(9)中計算Cost_integrated的過程中,設置γ=0.5.
3.3實驗結果與性能分析
遷移時間代價 首先測試和比較了FPA-VMM[2]和ACO-VMM[16]2個虛擬機遷移策略之間的遷移時間代價,4種拓撲結構下的遷移時間結果比較如表3所示.
從表3~5中可以看出,GBM-VMM少數(shù)情況與FPA-VMM和ACO-VMM遷移策略的性能基本類似,但是多數(shù)情況性能比較好.當虛擬機數(shù)較少時,F(xiàn)PA-VMM遷移時間代價最小.但隨著虛擬機數(shù)增加,GBMVMM的遷移時間代價小于FPA-VMM遷移和ACO-VMM遷移.這是因為當超負載物理主機數(shù)增加時,單虛擬機遷移沒有多虛擬機遷移高效,虛擬機遷移次數(shù)大大增加,所以遷移時間代價自然超過了基于組的多虛擬機遷移.
表4 拓撲2結構下的遷移時間代價 單位:s
表5 拓撲3結構下的遷移時間代價 單位:s
總體遷移代價 比較在3種網(wǎng)絡拓撲結構下GBM-VMM,F(xiàn)PA-VMM和ACO-VMM3個虛擬機遷移策略的總體遷移代價Cost_integrated.從表6~8中可以看出GBM-VMM比FPA-VMM與ACO-VMM總體遷移代價較小.隨著虛擬機數(shù)的增加,GBM-VMM遷移模型中的總體遷移代價基本呈線性增加,F(xiàn)PA-VMM模型的總體遷移代價增加.這是因為單虛擬機遷移的策略不能獲得最優(yōu)的虛擬機選擇結果,導致了那些有關聯(lián)的虛擬機遷移到了不同的物理主機之上,這樣間接地增加了總體遷移代價.
表6 拓撲1結構下總體遷移代價
表7 拓撲2結構下總體遷移代價
表8 拓撲3結構下總體遷移代價
物理主機響應時間 由于虛擬機遷移后會額外增加物理主機的功率消耗,從而會影響到系統(tǒng)的響應時間.比較了GBM-VMM,F(xiàn)PA-VMM和ACO-VMM 3個虛擬機遷移策略的響應時間,比較網(wǎng)絡為拓撲1.
圖3顯示了實驗結果.當t=50 s的時候,系統(tǒng)的響應時間較快,此時物理主機的資源非常缺少,客戶端得不到快速響應.同時,虛擬機遷移過程開始啟動,從圖3中可以看出,物理主機執(zhí)行了2次遷移,響應時間2次較快.
從圖3中還可以看出,ACO-VMM模型的響應時間隨著虛擬機遷移發(fā)生降低很快,但是響應時間受虛擬機遷移過程中影響也很大.GBM-VMM模型的響應時間相對比較平穩(wěn),都一直保持在300 ms內,表明GBM-VMM虛擬機遷移模型可以較好地保證云數(shù)據(jù)中心的可靠性,提高云服務質量.
圖3 3個虛擬機遷移策略的響應時間比較
提出了基于組的多虛擬機遷移模型GBM-VMM,主要考慮遷移過程中的遷移時間和虛擬機遷移額外功耗最小從而保證了云數(shù)據(jù)中心的最優(yōu)性能.GBM-VMM是一種多虛擬機遷移模型,將多個虛擬機形成組的方式同時遷移到目標物理主機,提出了最優(yōu)虛擬機組選擇算法,與單虛擬機遷移方式相比較,可以更好地節(jié)省通信量.實驗結果表明,與ACO-VMM和FPA-VMM相比較,GBM-VMM遷移模式有遷移代價小和云數(shù)據(jù)中心客戶端響應時間少等優(yōu)點.