一種基于運行時長的云計算平臺虛擬機調(diào)度方法
【專利摘要】本發(fā)明涉及一種基于運行時長的云計算平臺虛擬機調(diào)度方法,能夠減少SLA違反次數(shù),清空低載的物理機使之轉(zhuǎn)換為低能耗狀態(tài),提高物理機的CPU利用率,同時也能達到減少虛擬機遷移次數(shù),避免不合理的虛擬機遷移的作用,從而做到低能耗和高能效的有益效果。
【專利說明】
-種基于運行時長的云計算平臺虛擬機調(diào)度方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設及一種基于運行時長的云計算平臺虛擬機調(diào)度方法,屬于云計算和能耗
技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 云計算是網(wǎng)格計算、分布式計算、并行計算、效用計算、網(wǎng)絡存儲、虛擬化、負載均 衡等傳統(tǒng)計算機技術(shù)和網(wǎng)絡技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡把多個成本相對較低的 計算實體整合成一個具有強大計算能力的完美系統(tǒng),并借助5曰曰5、?曰曰5、1曰曰5、15?等先進的 商業(yè)模式把運強大的計算能力分布到終端用戶手中。云計算的一個核屯、理念就是通過不斷 提高"云"的處理能力,進而減少用戶終端的處理負擔,最終使用戶終端簡化成一個單純的 輸入輸出設備,并能按需享受"云"的強大計算處理能力。
[0003] 云計算技術(shù)的興起,也為傳統(tǒng)數(shù)據(jù)中屯、的建設帶來了新思路。云計算正在分擔越 來越多的傳統(tǒng)數(shù)據(jù)中屯、的工作負載。有預測指出,到2016年,接近=分之二的工作負載將在 云端處理。未來云端的工作負載量將超過傳統(tǒng)數(shù)據(jù)中屯、的負載量。
[0004] 與傳統(tǒng)數(shù)據(jù)中屯、相比,云化的數(shù)據(jù)中屯、提供的是彈性服務,可根據(jù)用戶的需求在 一個超大的資源池中動態(tài)分配和釋放資源,不需要為每個用戶預留峰值資源,因而資源利 用率可大大提高;并且云數(shù)據(jù)中屯、擁有更多用戶,可W將成本分攤到更多的服務器中。用戶 所使用的云資源可W根據(jù)其應用的需要進行調(diào)整和動態(tài)伸縮,能夠有效地滿足應用和用戶 大規(guī)模增長的需要。進入云計算時代,IT將從自給自足模式轉(zhuǎn)變?yōu)橐?guī)?;\行,傳統(tǒng)小型數(shù) 據(jù)中屯、被超大規(guī)模的云化數(shù)據(jù)中屯、取代將是一種必然。
[0005] 然而大型數(shù)據(jù)中屯、的建設伴隨著高耗能的問題來到,大量電能中有50% W上被用 于IT設備、制冷系統(tǒng)和配電供電系統(tǒng),數(shù)據(jù)中屯、節(jié)能技術(shù)成為數(shù)據(jù)中屯、的核屯、競爭力之一。 選擇綠色數(shù)據(jù)中屯、可從W下S個方面考慮:1、IT設備節(jié)能;2、制冷系統(tǒng)節(jié)能;3、UPS電源。其 中IT設備節(jié)能是指,在相同負載下,通過虛擬化、自動休眠和計算能力調(diào)用等提高物理機里 服務器的使用率,從而降低平均使用成本。
[0006] 虛擬化是指通過虛擬化技術(shù),把一臺物理機虛擬為多臺邏輯計算機,也就是我們 所說的虛擬機。目前常見的提高物理機的CPU使用率的方式是虛擬機的整合,通過考慮負 載,網(wǎng)絡帶寬,傳輸延遲等因素,制定相應整合遷移算法,從過載的物理機中遷出指定的虛 擬機,清空低載物理機中的虛擬機,不僅達到提高物理機的使用率,同時也能減少SLA違反 次數(shù),最終達到低能耗和高能效的效果。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明所要解決的技術(shù)問題是提供一種通過考慮虛擬機運行時長來進行虛擬機 遷移整合工作,能夠減少SLA違反次數(shù),減少活躍的物理機的數(shù)目,解決云計算中高能耗、資 源利用率低等問題,達到低能耗和高能效效果的基于運行時長的云計算平臺虛擬機調(diào)度方 法。
[0008] 本發(fā)明為了解決上述技術(shù)問題采用W下技術(shù)方案:本發(fā)明設計了一種基于運行時 長的云計算平臺虛擬機調(diào)度方法,包括如下步驟:
[0009] 步驟001.將云計算平臺中的各個虛擬機隨機分配至N個物理機當中,然后進入步 驟002;
[0010] 步驟002.針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使用率, 進而分別獲得各個物理機的CPU使用率,然后進入步驟003;
[0011] 步驟003.查找N個物理機當中,CPU使用率超過預設CPU使用率上限闊值的各個物 理機,構(gòu)成過載物理機集合Pwer,相應N個物理機當中的其余物理機構(gòu)成非過載物理機集合 Pl ;然后初始化g= 1,g= { 1、…、G},G表示過載物理機集合Pover中物理機的個數(shù),并進入步驟 004;
[0012] 步驟004 .針對過載物理機集合Pnver中第g個物理機,分別針對該物理機當中的各 個虛擬機,獲得由當前時刻開始至虛擬機釋放時刻之間的時長,分別作為該物理機當中各 個虛擬機的運行時長,并選擇最長運行時長所對應的虛擬機,作為過載物理機集合Pwer中 第g個物理機的待遷移虛擬機,然后進入步驟005 ;
[0013] 步驟005.根據(jù)非過載物理機集合Pi中各個物理機的CPU使用率,分別獲得非過載 物理機集合Pi中各個物理機、不超過預設CPU使用率上限闊值的剩余CPU使用率Bh,然后進入 步驟006,其中,h={l、…、H},H表示非過載物理機集合Pi中物理機的個數(shù);
[0014] 步驟006.針對非過載物理機集合Pi中各個物理機,分別獲得物理機中各個虛擬機 由當前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行 時長,進而分別獲得非過載物理機集合Pi中各個物理機的運行時長化,然后進入步驟007;
[0015] 步驟007.針對非過載物理機集合Pi中各個物理機,根據(jù)Bh與化的比值,分別獲得非 過載物理機集合Pi中各個物理機的最優(yōu)選擇參數(shù)Qh,并針對各個最優(yōu)選擇參數(shù)Qh按從小至 大的順序進行排序,選擇第一個最優(yōu)選擇參數(shù)所對應的物理機,作為過載物理機集合Pcver 中第g個物理機中待遷移虛擬機的目的物理機,然后進入步驟008;
[0016] 步驟008.判斷過載物理機集合Pnver中第g個物理機中待遷移虛擬機的CPU使用率, 是否小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入 步驟OlO;否則進入步驟009;
[0017] 步驟009.針對非過載物理機集合Pi,選擇最優(yōu)選擇參數(shù)排序中下一個最優(yōu)選擇參 數(shù)所對應的物理機,更新作為過載物理機集合Pnver中第g個物理機中待遷移虛擬機的目的 物理機,并返回步驟008;
[0018] 步驟010.將過載物理機集合Pnver中第g個物理機中的待遷移虛擬機,遷移至其對 應的目的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU 使用率,進而分別獲得各個物理機的CPU使用率,并進入步驟Ol 1;
[0019] 步驟Oll .判斷過載物理機集合Pover中第g個物理機的CPU使用率是否超過預設CPU 使用率上限闊值,是則返回步驟004;否則進入步驟012;
[0020] 步驟012.判斷g是否等于G,是則進入步驟013;否則用g的值加1針對g進行更新,并 返回步驟004;
[0021] 步驟013.查找N個物理機當中,CPU使用率低于預設CPU使用率下限闊值的各個物 理機,構(gòu)成低載物理機集合Punder,相應N個物理機當中的其余物理機構(gòu)成非低載物理機集合 P2;然后進入步驟014;
[0022] 步驟014.針對低載物理機集合Punder中各個物理機,分別獲得物理機中各個虛擬機 由當前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行 時長,進而分別獲得低載物理機集合Punder中各個物理機的運行時長,再針對低載物理機集 合Punder中各個物理機按運行時長由大至小順序進行排序,初始化m= 1,Im= 1,k= 1,同時初 始化低載物理機集合Punder中第m個物理機中的待遷移虛擬機集合Wm為空,然后進入步驟 015 ;其中m= { 1、…、M},M表示低載物理機集合Punder中物理機的個數(shù);Im= { 1、…、Lm},Lm表示 低載物理機集合Punder中第m個物理機中虛擬機的個數(shù);k= { 1、…、K},K表示非低載物理機集 合P2中物理機的個數(shù);
[0023] 步驟015 .將低載物理機集合Punder中第m個物理機中的所有虛擬機構(gòu)成待對比集合 Um,然后進入步驟016;
[0024] 步驟016 .針對低載物理機集合Punder中第m個物理機,將該物理機的第Im個虛擬機 放入Wm集合當中,然后進入步驟017 ;
[0025] 步驟017.采用步驟005至步驟007的方法,分別獲得非低載物理機集合P2中各個物 理機的最優(yōu)選擇參數(shù)a ' n,并針對各個最優(yōu)選擇參數(shù)a ' n按從小至大的順序進行排序,選擇第 k個最優(yōu)選擇參數(shù)所對應的物理機,作為低載物理機集合Punder中第m個物理機中第Im個虛擬 機的目的物理機,然后進入步驟018;
[00%] 步驟018.判斷低載物理機集合Punder中第m個物理機中第Im個虛擬機的CPU使用率, 是否小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入 步驟020;否則進入步驟019;
[0027] 步驟019.判斷k是否等于K,是則將低載物理機集合Punder中第m個物理機中的第Im 個虛擬機由Wm集合移出,并進入步驟021;否則用k的值加1針對k進行更新,并針對非低載物 理機集合P2,選擇最優(yōu)選擇參數(shù)排序中第k個最優(yōu)選擇參數(shù)所對應的物理機,更新作為低載 物理機集合Punder中第m個物理機中第Im個虛擬機的目的物理機,并返回步驟018;
[0028] 步驟020.將低載物理機集合Punder中第m個物理機中第Im個虛擬機,遷移至其對應 的目的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使 用率,進而分別獲得各個物理機的CPU使用率,并進入步驟021;
[0029] 步驟021.判斷Im是否等于Lm,是則進入步驟022;否則用Im的值加1針對Im進行更 新,并返回步驟016;
[0030] 步驟022.判斷Wm集合中的元素是否與待對比集合Um中的元素相同,是則進入步驟 023;否則針對低載物理機集合Punder中的第m個物理機,回滾步驟015至步驟021對其的所有 操作,然后進入步驟023;
[0031] 步驟023.判斷m是否等于M,是則云計算平臺虛擬機調(diào)度方法結(jié)束;否則用m的值加 1針對m進行更新,并定義Im等于1,再返回步驟015。
[0032] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述針對N個物理機,分別獲得各個物理機當中 各個虛擬機的CPU使用率,進而分別獲得各個物理機的CPU使用率,具體包括如下步驟:
[0033] 步驟aOl.針對N個物理機,首先分別獲得各個物理機當中各個虛擬機的CPU使用率 ,,然后進入步驟曰〇2;其中,n= {1、…、N},in= {1、、In} ,In表示N個物理機當中第n個物理 機中虛擬機的個數(shù),馬,,。表示N個物理機當中第n個物理機中第in個虛擬機的CPU使用率;
[0034] 步驟a02.根據(jù)各個物理機當中各個虛擬機的CPU使用率馬,,?,,按如下公式;
[0035]
[0036] 分別獲得各個物理機的CPU使用率An。
[0037] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述虛擬機上由當前時刻開始至虛擬機釋放時 刻之間的時長,通過如下步驟獲得:
[0038] 步驟bOl.根據(jù)如下公式:
[0039] t'r = aXDr+b
[0040] 獲得虛擬機上第r個任務的運行時長tr,然后進入步驟b02;其中,a、b為根據(jù)任務 類型所設的預設參數(shù),r=U、…、R},R表示虛擬機上任務的數(shù)量,Dr表示虛擬機上第r個任 務所需的數(shù)據(jù)量;
[0041 ] 步驟b02.根據(jù)如下公式:
[0042]
[0043] 獲得虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長t。
[0044] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟004中,針對過載物理機集合Pnver中第 g個物理機,選擇該物理機中最長運行時長所對應的虛擬機,作為過載物理機集合Pnver中第 g個物理機的待遷移虛擬機過程中,若該物理機中存在至少兩個最長運行時長所分別對應 的虛擬機,則隨機選擇其中一個最長運行時長所對應的虛擬機,作為過載物理機集合Pcver 中第g個物理機的待遷移虛擬機。
[0045] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟007中,所述針對各個最優(yōu)選擇參數(shù)Oh 按從小至大的順序進行排序,其中,若存在至少兩個相同的最優(yōu)選擇參數(shù)時,則該各個相同 的最優(yōu)選擇參數(shù)之間隨機進行排序。
[0046] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟014中,針對低載物理機集合Punder中各 個物理機,按運行時長由大至小順序進行排序過程中,若存在至少兩個運行時長相同的物 理機時,則針對該各個運行時長相同的物理機之間,按其CPU使用率由大至小的順序進行排 序;進而實現(xiàn)低載物理機集合Punder中各個物理機的排序。
[0047] 本發(fā)明所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法及控制方法采用W 上技術(shù)方案與現(xiàn)有技術(shù)相比,具有W下技術(shù)效果:本發(fā)明所設計基于運行時長的云計算平 臺虛擬機調(diào)度方法,能夠減少SLA違反次數(shù),清空低載的物理機使之轉(zhuǎn)換為低能耗狀態(tài),提 高物理機的CPU利用率,同時也能達到減少虛擬機遷移次數(shù),避免不合理的虛擬機遷移的作 用,從而做到低能耗和高能效的有益效果。
【附圖說明】
[0048] 圖1是本發(fā)明設計的基于運行時長的云計算平臺虛擬機調(diào)度方法的流程示意圖。
【具體實施方式】
[0049] 下面結(jié)合說明書附圖對本發(fā)明的【具體實施方式】作進一步詳細的說明。
[0050]如圖I所示,本發(fā)明所設計的一種基于運行時長的云計算平臺虛擬機調(diào)度方法,在 實際應用過程當中,具體包括如下步驟:
[0051 ] 步驟001.將云計算平臺中的各個虛擬機隨機分配至N個物理機當中,然后進入步 驟002。
[0052] 步驟002.針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使用率, 進而分別獲得各個物理機的CPU使用率,然后進入步驟003。
[0053] 上述針對N個物理機,分別獲得各個物理機當中各個虛擬機的CPU使用率,進而分 別獲得各個物理機的CPU使用率,具體包括如下步驟:
[0054] 步驟aOl.針對N個物理機,首先分別獲得各個物理機當中各個虛擬機的CPU使用率 A,./..,然后進入步驟曰〇2;其中,n=u、…、N},in=U、、In} ,In表示N個物理機當中第n個物理 機中虛擬機的個數(shù),A,.,表示N個物理機當中第n個物理機中第in個虛擬機的CPU使用率。 [0化日]步驟a02.根據(jù)各個物理機當中各個虛擬機的CPU使用率Am。,按如下公式:
[0化6]
[0057]分別獲得各個物理機的CPU使用率An。
[0化引步驟003.查找N個物理機當中,CPU使用率超過預設CPU使用率上限闊值的各個物 理機,構(gòu)成過載物理機集合Pwer,相應N個物理機當中的其余物理機構(gòu)成非過載物理機集合 Pl ;然后初始化g= 1,g= { 1、…、G},G表示過載物理機集合Pover中物理機的個數(shù),并進入步驟 004。
[0059] 步驟004 .針對過載物理機集合Pnver中第g個物理機,分別針對該物理機當中的各 個虛擬機,獲得由當前時刻開始至虛擬機釋放時刻之間的時長,分別作為該物理機當中各 個虛擬機的運行時長,并選擇最長運行時長所對應的虛擬機,作為過載物理機集合Pwer中 第g個物理機的待遷移虛擬機,然后進入步驟005。
[0060] -般情況下,一個活躍的物理機中會存在多個虛擬機,每一個虛擬機也會執(zhí)行多 個任務。一個任務的運行時長,即虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長, 可W由基于歷史數(shù)據(jù)得到的函數(shù)獲得。運種函數(shù)是可W依據(jù)的,因為真正的云計算中確實 會有一些相同的任務在重復地運行,而單個虛擬機上的任務與運行該任務所需要的數(shù)據(jù)量 一般成線性關(guān)系。因此,上述虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長,通過 如下步驟獲得:
[0061 ] 步驟bOl.根據(jù)如下公式:
[0062] t'r = aXDr+b
[0063] 獲得虛擬機上第r個任務的運行時長tr,然后進入步驟b02;其中,a、b為根據(jù)任務 類型所設的預設參數(shù),r=U、…、R},R表示虛擬機上任務的數(shù)量,Dr表示虛擬機上第r個任 務所需的數(shù)據(jù)量。
[0064] 步驟b02.根據(jù)如下公式:
[00 化]
[0066]獲得虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長t。
[0067] 并且上述步驟004中,針對過載物理機集合Pnver中第g個物理機,選擇該物理機中 最長運行時長所對應的虛擬機,作為過載物理機集合Pover中第g個物理機的待遷移虛擬機 過程中,若該物理機中存在至少兩個最長運行時長所分別對應的虛擬機,則隨機選擇其中 一個最長運行時長所對應的虛擬機,作為過載物理機集合Pover中第g個物理機的待遷移虛 擬機。
[0068] 步驟005.根據(jù)非過載物理機集合Pi中各個物理機的CPU使用率,分別獲得非過載 物理機集合Pi中各個物理機、不超過預設CPU使用率上限闊值的剩余CPU使用率Bh,然后進入 步驟006,其中,h={l、…、H},H表示非過載物理機集合Pi中物理機的個數(shù)。
[0069] 步驟006.針對非過載物理機集合Pi中各個物理機,分別獲得物理機中各個虛擬機 由當前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行 時長,進而分別獲得非過載物理機集合Pi中各個物理機的運行時長化,然后進入步驟007。
[0070] 步驟007.針對非過載物理機集合Pi中各個物理機,根據(jù)Bh與化的比值,分別獲得非 過載物理機集合Pi中各個物理機的最優(yōu)選擇參數(shù)Qh,并針對各個最優(yōu)選擇參數(shù)Qh按從小至 大的順序進行排序,選擇第一個最優(yōu)選擇參數(shù)所對應的物理機,作為過載物理機集合Pcver 中第g個物理機中待遷移虛擬機的目的物理機,然后進入步驟008。
[0071] 步驟008.判斷過載物理機集合Pnver中第g個物理機中待遷移虛擬機的CPU使用率, 是否小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入 步驟010;否則進入步驟009。
[0072] 步驟009.針對非過載物理機集合Pi,選擇最優(yōu)選擇參數(shù)排序中下一個最優(yōu)選擇參 數(shù)所對應的物理機,更新作為過載物理機集合Pnver中第g個物理機中待遷移虛擬機的目的 物理機,并返回步驟008。
[0073] 步驟010.將過載物理機集合Pnver中第g個物理機中的待遷移虛擬機,遷移至其對 應的目的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU 使用率,進而分別獲得各個物理機的CPU使用率,并進入步驟Ol 1。
[0074] 步驟Oll .判斷過載物理機集合Pover中第g個物理機的CPU使用率是否超過預設CPU 使用率上限闊值,是則返回步驟004;否則進入步驟012。
[0075] 步驟012.判斷g是否等于G,是則進入步驟013;否則用g的值加1針對g進行更新,并 返回步驟004。
[0076] 步驟013.查找N個物理機當中,CPU使用率低于預設CPU使用率下限闊值的各個物 理機,構(gòu)成低載物理機集合Punder,相應N個物理機當中的其余物理機構(gòu)成非低載物理機集合 P2;然后進入步驟014。
[0077] 步驟014.針對低載物理機集合Punder中各個物理機,分別獲得物理機中各個虛擬機 由當前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行 時長,進而分別獲得低載物理機集合Punder中各個物理機的運行時長,再針對低載物理機集 合Punder中各個物理機按運行時長由大至小順序進行排序,其中,針對低載物理機集合Punder 中各個物理機,按運行時長由大至小順序進行排序過程中,若存在至少兩個運行時長相同 的物理機時,則針對該各個運行時長相同的物理機之間,按其CPU使用率由大至小的順序進 行排序;進而實現(xiàn)低載物理機集合Punder中各個物理機的排序;然后初始化m= 1,Im= 1,k = 1,同時初始化低載物理機集合Punder中第m個物理機中的待遷移虛擬機集合Wm為空,然后進 入步驟015;其中m= U、…、M},M表示低載物理機集合Punder中物理機的個數(shù);Im= U、…、 Lm},Lm表示低載物理機集合Punder中第m個物理機中虛擬機的個數(shù);k= U、…、K},K表示非低 載物理機集合P2中物理機的個數(shù)。
[0078] 步驟015 .將低載物理機集合Punder中第m個物理機中的所有虛擬機構(gòu)成待對比集合 Um,然后進入步驟016。
[0079] 步驟016 .針對低載物理機集合Punder中第m個物理機,將該物理機的第Im個虛擬機 放入Wm集合當中,然后進入步驟017。
[0080] 步驟017.采用步驟005至步驟007的方法,分別獲得非低載物理機集合P2中各個物 理機的最優(yōu)選擇參數(shù)a ' n,并針對各個最優(yōu)選擇參數(shù)a ' n按從小至大的順序進行排序,選擇第 k個最優(yōu)選擇參數(shù)所對應的物理機,作為低載物理機集合Punder中第m個物理機中第Im個虛擬 機的目的物理機,然后進入步驟018。
[0081 ] 步驟018.判斷低載物理機集合Punder中第m個物理機中第Im個虛擬機的CPU使用率, 是否小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入 步驟020;否則進入步驟019。
[0082] 步驟019.判斷k是否等于K,是則將低載物理機集合Punder中第m個物理機中的第Im 個虛擬機由Wm集合移出,并進入步驟021;否則用k的值加1針對k進行更新,并針對非低載物 理機集合P2,選擇最優(yōu)選擇參數(shù)排序中第k個最優(yōu)選擇參數(shù)所對應的物理機,更新作為低載 物理機集合Punder中第m個物理機中第Im個虛擬機的目的物理機,并返回步驟018。
[0083] 步驟020.將低載物理機集合Punder中第m個物理機中第Im個虛擬機,遷移至其對應 的目的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使 用率,進而分別獲得各個物理機的CPU使用率,并進入步驟021。
[0084] 步驟021.判斷Im是否等于Lm,是則進入步驟022;否則用Im的值加1針對Im進行更 新,并返回步驟016。
[0085] 步驟022.判斷Wm集合中的元素是否與待對比集合Um中的元素相同,是則進入步驟 023;否則針對低載物理機集合Punder中的第m個物理機,回滾步驟015至步驟021對其的所有 操作,然后進入步驟023。
[0086] 步驟023.判斷m是否等于M,是則云計算平臺虛擬機調(diào)度方法結(jié)束;否則用m的值加 1針對m進行更新,并定義Im等于1,再返回步驟015。
[0087] 上述技術(shù)方案所設計基于運行時長的云計算平臺虛擬機調(diào)度方法,能夠減少SLA 違反次數(shù),清空低載的物理機使之轉(zhuǎn)換為低能耗狀態(tài),提高物理機的CPU利用率,同時也能 達到減少虛擬機遷移次數(shù),避免不合理的虛擬機遷移的作用,從而做到低能耗和高能效的 有益效果。
[0088] 上面結(jié)合附圖對本發(fā)明的實施方式作了詳細說明,但是本發(fā)明并不限于上述實施 方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可W在不脫離本發(fā)明宗旨的前提下 做出各種變化。
【主權(quán)項】
1. 一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于,包括如下步驟: 步驟001.將云計算平臺中的各個虛擬機隨機分配至N個物理機當中,然后進入步驟 002; 步驟002 .針對N個物理機中,分別獲得各個物理機當中各個虛擬機的WU使用率,進而 分別獲得各個物理機的CPU使用率,然后進入步驟003; 步驟003.查找N個物理機當中,CPU使用率超過預設CPU使用率上限闊值的各個物理機, 構(gòu)成過載物理機集合Paver,相應N個物理機當中的其余物理機構(gòu)成非過載物理機集合Pi ;然 后初始化g = 1,g= {1、…、G},G表示過載物理機集合Pwer中物理機的個數(shù),并進入步驟004; 步驟004 .針對過載物理機集合Pnver中第g個物理機,分別針對該物理機當中的各個虛擬 機,獲得由當前時刻開始至虛擬機釋放時刻之間的時長,分別作為該物理機當中各個虛擬 機的運行時長,并選擇最長運行時長所對應的虛擬機,作為過載物理機集合Paver中第g個物 理機的待遷移虛擬機,然后進入步驟005 ; 步驟005.根據(jù)非過載物理機集合Pi中各個物理機的CPU使用率,分別獲得非過載物理機 集合Pi中各個物理機、不超過預設CPU使用率上限闊值的剩余CPU使用率Bh,然后進入步驟 006,其中,h ={ 1、…、H},Η表示非過載物理機集合Pi中物理機的個數(shù); 步驟006.針對非過載物理機集合Pi中各個物理機,分別獲得物理機中各個虛擬機由當 前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行時 長,進而分別獲得非過載物理機集合Pi中各個物理機的運行時長化,然后進入步驟007; 步驟007.針對非過載物理機集合Pi中各個物理機,根據(jù)Bh與化的比值,分別獲得非過載 物理機集合Pi中各個物理機的最優(yōu)選擇參數(shù)Qh,并針對各個最優(yōu)選擇參數(shù)ah按從小至大的 順序進行排序,選擇第一個最優(yōu)選擇參數(shù)所對應的物理機,作為過載物理機集合Paver中第g 個物理機中待遷移虛擬機的目的物理機,然后進入步驟008; 步驟008.判斷過載物理機集合Pnver中第g個物理機中待遷移虛擬機的CPU使用率,是否 小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入步驟 010;否則進入步驟009; 步驟009.針對非過載物理機集合Pi,選擇最優(yōu)選擇參數(shù)排序中下一個最優(yōu)選擇參數(shù)所 對應的物理機,更新作為過載物理機集合Pnver中第g個物理機中待遷移虛擬機的目的物理 機,并返回步驟008; 步驟010 .將過載物理機集合Pnver中第g個物理機中的待遷移虛擬機,遷移至其對應的目 的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使用率, 進而分別獲得各個物理機的CPU使用率,并進入步驟011; 步驟011 .判斷過載物理機集合Paver中第g個物理機的CPU使用率是否超過預設CPU使用 率上限闊值,是則返回步驟004;否則進入步驟012; 步驟012.判斷g是否等于G,是則進入步驟013;否則用g的值加1針對g進行更新,并返回 步驟004; 步驟013.查找N個物理機當中,CPU使用率低于預設CPU使用率下限闊值的各個物理機, 構(gòu)成低載物理機集合Punder,相應N個物理機當中的其余物理機構(gòu)成非低載物理機集合P2 ;然 后進入步驟014; 步驟014.針對化載物理機集合Punder中各個物理機,分別獲得物理機中各個虛擬機由當 前時刻開始至虛擬機釋放時刻之間的時長,并將最長運行時長作為對應物理機的運行時 長,進而分別獲得低載物理機集合Punder中各個物理機的運行時長,再針對低載物理機集合 Punder中各個物理機按運行時長由大至小順序進行排序,初始化m= 1,lm= 1,k= 1,同時初始 化低載物理機集合Punder中第m個物理機中的待遷移虛擬機集合恥為空,然后進入步驟015; 其中Π 1={1、···、Μ},M表示低載物理機集合Punder中物理機的個數(shù);lm= { 1、· · ·、Lm},Lm表示低載 物理機集合Punder中第m個物理機中虛擬機的個數(shù);k={l、···、",Κ表示非低載物理機集合P2 中物理機的個數(shù); 步驟015 .將低載物理機集合Punder中第m個物理機中的所有虛擬機構(gòu)成待對比集合Um, 然后進入步驟016; 步驟016 .針對低載物理機集合Punder中第m個物理機,將該物理機的第lm個虛擬機放入Wm 集合當中,然后進入步驟017; 步驟017.采用步驟005至步驟007的方法,分別獲得非低載物理機集合P2中各個物理機 的最優(yōu)選擇參數(shù)α'η,并針對各個最優(yōu)選擇參數(shù)α'η按從小至大的順序進行排序,選擇第k個 最優(yōu)選擇參數(shù)所對應的物理機,作為低載物理機集合Punder中第m個物理機中第lm個虛擬機 的目的物理機,然后進入步驟018; 步驟018.判斷低載物理機集合Punder中第m個物理機中第lm個虛擬機的CPU使用率,是否 小于其所對應目的物理機不超過預設CPU使用率上限闊值的剩余CPU使用率,是則進入步驟 020;否則進入步驟019; 步驟019.判斷k是否等于K,是則將低載物理機集合Punder中第m個物理機中的第lm個虛 擬機由Wm集合移出,并進入步驟021;否則用k的值加1針對k進行更新,并針對非低載物理機 集合P2,選擇最優(yōu)選擇參數(shù)排序中第k個最優(yōu)選擇參數(shù)所對應的物理機,更新作為低載物理 機集合Punder中第m個物理機中第lm個虛擬機的目的物理機,并返回步驟018; 步驟020 .將低載物理機集合Punder中第m個物理機中第lm個虛擬機,遷移至其對應的目 的物理機當中,然后針對N個物理機中,分別獲得各個物理機當中各個虛擬機的CPU使用率, 進而分別獲得各個物理機的CPU使用率,并進入步驟021; 步驟021.判斷l(xiāng)m是否等于Lm,是則進入步驟022;否則用lm的值加1針對進行更新,并返 回步驟016; 步驟022 .判斷Wm集合中的元素是否與待對比集合Um中的元素相同,是則進入步驟023; 否則針對低載物理機集合Punder中的第m個物理機,回滾步驟015至步驟021對其的所有操作, 然后進入步驟023; 步驟023.判斷m是否等于M,是則云計算平臺虛擬機調(diào)度方法結(jié)束;否則用m的值加1針 對m進行更新,并定義lm等于1,再返回步驟015。2.根據(jù)權(quán)利要求1所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于: 所述針對N個物理機,分別獲得各個物理機當中各個虛擬機的CPU使用率,進而分別獲得各 個物理機的CPU使用率,具體包括如下步驟: 步驟aOl.針對N個物理機,首先分別獲得各個物理機當中各個虛擬機的CPU使用率.馬,,,, 然后進入步驟曰〇2;其中,n = {1、···、N},in= {1、、In},In表示N個物理機當中第η個物理機中 虛擬機的個數(shù),成表示Ν個物理機當中第η個物理機中第in個虛擬機的CPU使用率; 步驟a02.根據(jù)各個物理機當中各個虛擬機的CPU使用率/?",,按如下公式: 分別獲得各個物理機的CPU使用率An。3. 根據(jù)權(quán)利要求1所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于, 所述虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長,通過如下步驟獲得: 步驟bOl.根據(jù)如下公式: t'r = aXDr+b 獲得虛擬機上第r個任務的運行時長tr,然后進入步驟b02;其中,a、b為根據(jù)任務類型所 設的預設參數(shù),'={1、-,、1?},1?表示虛擬機上任務的數(shù)量,0,表示虛擬機上第'個任務所需 的數(shù)據(jù)量; 步驟b02.根據(jù)如下公式:獲得虛擬機上由當前時刻開始至虛擬機釋放時刻之間的時長t。4. 根據(jù)權(quán)利要求1所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于, 所述步驟004中,針對過載物理機集合Pnver中第g個物理機,選擇該物理機中最長運行時長 所對應的虛擬機,作為過載物理機集合Pnver中第g個物理機的待遷移虛擬機過程中,若該物 理機中存在至少兩個最長運行時長所分別對應的虛擬機,則隨機選擇其中一個最長運行時 長所對應的虛擬機,作為過載物理機集合Pwer中第g個物理機的待遷移虛擬機。5. 根據(jù)權(quán)利要求1所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于: 所述步驟007中,所述針對各個最優(yōu)選擇參數(shù)ah按從小至大的順序進行排序,其中,若存在 至少兩個相同的最優(yōu)選擇參數(shù)時,則該各個相同的最優(yōu)選擇參數(shù)之間隨機進行排序。6. 根據(jù)權(quán)利要求1所述一種基于運行時長的云計算平臺虛擬機調(diào)度方法,其特征在于: 所述步驟014中,針對低載物理機集合Punder中各個物理機,按運行時長由大至小順序進行排 序過程中,若存在至少兩個運行時長相同的物理機時,則針對該各個運行時長相同的物理 機之間,按其CPU使用率由大至小的順序進行排序;進而實現(xiàn)低載物理機集合Punder中各個物 理機的排序。
【文檔編號】G06F9/50GK105847385SQ201610248661
【公開日】2016年8月10日
【申請日】2016年4月20日
【發(fā)明人】付雄, 趙慶, 鄧松, 程春玲, 王俊昌, 周代明, 厲道梅
【申請人】南京郵電大學, 揚州萊斯信息技術(shù)有限公司