基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法
【專利摘要】本發(fā)明公開了一種基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法,主要解決現(xiàn)有云計算數(shù)據(jù)中心環(huán)境下遷移方案優(yōu)化目標(biāo)單一的問題。其實現(xiàn)步驟為:1)通過OpenFlow控制器收集云數(shù)據(jù)中心中服務(wù)器和虛擬機的相關(guān)信息,分析虛擬機負(fù)載周期及變化情況;2)根據(jù)基于信息素擴散的蟻群算法計算出新的虛擬機位置;3)由OpenFlow控制器收集的路由信息和新的虛擬機位置;4)根據(jù)路由信息和新的虛擬機位置利用Dijkstra算法計算出合適的遷移路徑,完成對虛擬機調(diào)度。本發(fā)明能夠?qū)崿F(xiàn)云數(shù)據(jù)中心整體能耗降低和負(fù)載均衡這兩個優(yōu)化目標(biāo),可用于在OpenFlow框架下利用改進(jìn)的蟻群算法對虛擬機進(jìn)行調(diào)度。
【專利說明】基于OpenFIow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于云計算【技術(shù)領(lǐng)域】,涉及一種云數(shù)據(jù)中心虛擬機調(diào)度方法,可用于在 OpenFlow框架下利用改進(jìn)的蟻群算法對虛擬機進(jìn)行調(diào)度,從而實現(xiàn)數(shù)據(jù)中心的整體能耗降 低和負(fù)載的均衡。
【背景技術(shù)】
[0002] 隨著一批新型互聯(lián)網(wǎng)業(yè)務(wù)的興起以及大眾接入帶寬的快速增長,數(shù)據(jù)中心網(wǎng)絡(luò)流 量呈現(xiàn)迅速增長的態(tài)勢。互聯(lián)網(wǎng)業(yè)務(wù)對數(shù)據(jù)中心乃至互聯(lián)網(wǎng)提出了越來越高的傳輸質(zhì)量要 求,包括大帶寬、安全保障、靈活調(diào)度、智能管理等。在這樣的趨勢下出現(xiàn)了各種各樣的解 決方案,OpenFlow技術(shù)便是應(yīng)運而生地一種新型網(wǎng)絡(luò)交換模型,它完全顛覆了原有路由和 數(shù)據(jù)使用同一平面的做法,采用控制和數(shù)據(jù)轉(zhuǎn)發(fā)分離的模式將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分 離,從而實現(xiàn)網(wǎng)絡(luò)流量的靈活控制,為核心網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供了良好的平臺。特別是針 對當(dāng)前云計算數(shù)據(jù)中心環(huán)境下智能化控制能力有限且缺乏統(tǒng)一標(biāo)準(zhǔn)的問題,采用OpenFlow 技術(shù)可以更加有效地處理云計算數(shù)據(jù)中心中控制信息的交互和資源的分配。
[0003] 由于云計算等技術(shù)的應(yīng)用,大量的計算和交互將在服務(wù)器間完成,不同數(shù)據(jù)中心 服務(wù)器間的橫向流量大大增加。未來的數(shù)據(jù)中心網(wǎng)絡(luò)越來越趨向于由虛擬機和服務(wù)器群組 成,即一臺服務(wù)器同時運行多個虛擬機的方式為一個或者多個客戶提供服務(wù)。這樣客戶從 形式上就可以獲得幾乎無限的資源。從云服務(wù)提供商角度考慮,如何在保證數(shù)據(jù)中心整體 負(fù)載平衡的前提下,降低數(shù)據(jù)中心的整體能耗就是一個重要的問題,合理地調(diào)整虛擬機放 置的位置是解決這一問題的重要途徑。
[0004] 當(dāng)前虛擬機調(diào)度技術(shù)主要分為兩類:基于數(shù)據(jù)中心負(fù)載平衡的調(diào)度方法和基于數(shù) 據(jù)中心節(jié)能的調(diào)度方法。第一類方法主要目的是均衡數(shù)據(jù)中心各服務(wù)器的資源,這些資源 包括CPU、內(nèi)存、磁盤容量等,此方法通過將虛擬機從高資源利用率的服務(wù)器遷移到低資源 利用率的服務(wù)器,實現(xiàn)數(shù)據(jù)中心整體性能的均衡。由于數(shù)據(jù)中心服務(wù)器數(shù)目有限,單純使用 該方法會導(dǎo)致承載虛擬機的服務(wù)器數(shù)目增加,限制數(shù)據(jù)中心的擴展。第二類方法主要目的 是降低數(shù)據(jù)中心整體的能耗,此方法通過將虛擬機從多個低利用率服務(wù)器遷移到單個服務(wù) 器上,減少處于工作狀態(tài)的服務(wù)器數(shù)目,從而實現(xiàn)數(shù)據(jù)中心節(jié)能的目的。但這可能會導(dǎo)致數(shù) 據(jù)中心中某一服務(wù)器資源利用率過高,影響數(shù)據(jù)中心的整體性能。因此如果只采用單一方 法進(jìn)行調(diào)度,會使得調(diào)度時不能充分考慮系統(tǒng)的綜合性能,在優(yōu)化某一性能指標(biāo)的同時造 成其他性能指標(biāo)的惡化,影響到數(shù)據(jù)中心整體運行。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于針對上述已有技術(shù)的不足,提出一種在OpenFlow框架下云數(shù) 據(jù)中心虛擬機調(diào)度方法,以均衡負(fù)載、降低能耗,提高數(shù)據(jù)中心的性能。
[0006] 實現(xiàn)本發(fā)明目的的技術(shù)方案是:收集云數(shù)據(jù)中心中服務(wù)器和虛擬機的負(fù)載信息, 分析虛擬機負(fù)載周期及變化情況,確定進(jìn)行遷移的時間間隔;根據(jù)基于信息素擴散的蟻群 算法計算出虛擬機調(diào)度方案;通過OpenFlow控制器計算出合適的遷移路徑。具體步驟包括 如下:
[0007] (1)由OpenFlow控制器收集云數(shù)據(jù)中心中服務(wù)器和虛擬機的負(fù)載信息,該負(fù)載信 息包括:服務(wù)器總數(shù)S,處于運行狀態(tài)的服務(wù)器數(shù)目S',虛擬機總數(shù)V,虛擬機i的位置變 量X ij,當(dāng)虛擬機i放置在服務(wù)器j,Xij取1,否則為0,虛擬機i所需的CPU資源Ri,服務(wù)器 j能夠提供的CPU資源虛擬機i所需的磁盤容量T i ;
[0008] (2)將收集的負(fù)載信息作為蟻群算法的輸入,計算出蟻群算法的啟發(fā)因子矩陣 n、信息素濃度矩陣T,由這兩個參數(shù)得到選擇函數(shù)矩陣p ;
[0009] (3)根據(jù)選擇函數(shù)矩陣P產(chǎn)生200?500個虛擬機位置序列,每個位置序列表示一 只螞蟻,構(gòu)成螞蟻種群;
[0010] ⑷根據(jù)步驟⑶中得到的位置序列,設(shè)定如下判斷條件:
【權(quán)利要求】
1. 一種基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法,其特征在于包括以下步驟: (1) 由OpenFlow控制器收集云數(shù)據(jù)中心中服務(wù)器和虛擬機的負(fù)載信息,該負(fù)載信息包 括:服務(wù)器總數(shù)S,處于運行狀態(tài)的服務(wù)器數(shù)目S',虛擬機總數(shù)V,虛擬機i的位置變量Xij, 當(dāng)虛擬機i放置在服務(wù)器j,Xu取1,否則為0,虛擬機i所需的CPU資源Ri,服務(wù)器j能夠 提供的CPU資源?_,虛擬機i所需的磁盤容量Ti ; (2) 將收集的負(fù)載信息作為蟻群算法的輸入,計算出蟻群算法的啟發(fā)因子矩陣η、信 息素濃度矩陣τ,由這兩個參數(shù)得到選擇函數(shù)矩陣ρ; (3) 根據(jù)選擇函數(shù)矩陣ρ產(chǎn)生200?500個虛擬機位置序列,每個位置序列表示一只螞 蟻,構(gòu)成螞蟻種群; (4) 根據(jù)步驟(3)中得到的位置序列,設(shè)定如下判斷條件:
其中,式表示每個虛擬機i只能放置在一臺服務(wù)器j上;式表示服務(wù)器j上所有虛擬機 的CPU資源之和不能超過服務(wù)器j提供的CPU資源; (5) 根據(jù)步驟(4)設(shè)定的條件,判斷步驟(3)中得到的位置序列是否滿足式和式;若滿 足,則更新虛擬機位置序列,迭代次數(shù)加1 ;若不滿足,則保持當(dāng)前位置,迭代次數(shù)加1 ;重復(fù) 步驟(3)到(5),進(jìn)行蟻群算法的迭代,設(shè)迭代次數(shù)是500?1000 ; (6) 根據(jù)蟻群算法的迭代結(jié)果和OpenFlow控制器收集的路由信息,由Dijkstra算法確 定出遷移路徑,完成虛擬機的調(diào)度; (7) 根據(jù)虛擬機和服務(wù)器的負(fù)載信息變化,每24小時運行一次上述過程,保證系統(tǒng)處 于優(yōu)化狀態(tài)。
2. 如權(quán)利要求1中所述的基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法,其特征在 于:步驟(2)所述的啟發(fā)因子矩陣η,通過以下公式計算:
其中,服務(wù)器j上的剩余資源利用率《,=1 -,服務(wù)器j上資源利用率與 Ir/? 系統(tǒng)平均資源利用率的差值絕對值^ ,m表示系統(tǒng)的平均資源利用率, ,YjR^Xii - - - "1 =Y-J_>S表不服務(wù)器總數(shù),V表不虛擬機總數(shù),Ri表不虛擬機i所需的CPU資 iSxCi 源,表示服務(wù)器j能夠提供的CPU資源,Ti表示虛擬機i所需的磁盤容量。
3. 如權(quán)利要求1中所述的基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法,其特征在 于:所述步驟(2)中的信息素濃度矩陣τ,通過以下公式計算:
式中τu(t)表示第t次迭代時配對(i,j)上的總信息素濃度,配對(i,j)表示虛擬機i放置到服務(wù)器j上;P表示信息素的衰減速率;是第k只螞蟻在本次循環(huán)中留在配對 (i,j)上的信息素濃度;Q表示計算能力預(yù)測值的權(quán)重函數(shù),B表示系統(tǒng)資源利用率的標(biāo)準(zhǔn) 差,忍,E表示系統(tǒng)中處于工作狀態(tài)的服務(wù)器所占比例,£ =工,S表示服務(wù)器總 IsJ s 數(shù),Si表示處于運行狀態(tài)的服務(wù)器數(shù)目。
4. 如權(quán)利要求1中所述的基于OpenFlow框架下云數(shù)據(jù)中心虛擬機調(diào)度方法,其特征在 于:所述步驟(3)在一次迭代中的選擇函數(shù)p,通過以下公式計算:
式中α和β分別表示信息素濃度和啟發(fā)因子的權(quán)重,Tabuk為第k只螞蟻的禁忌列 表,即不能選擇的服務(wù)器集合。
【文檔編號】G06F9/455GK104317646SQ201410571245
【公開日】2015年1月28日 申請日期:2014年10月23日 優(yōu)先權(quán)日:2014年10月23日
【發(fā)明者】顧華璽, 劉炫璋, 楊銀堂, 王坤, 王曦, 余曉衫 申請人:西安電子科技大學(xué)