一種云計算數(shù)據(jù)中心離線節(jié)能調度的方法與裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種實現(xiàn)數(shù)據(jù)中心離線節(jié)能調度的方法及裝置,所述方法包括:本發(fā)明實施例針對的應用場景為離線調度,即調度系統(tǒng)知曉一段時間內前來的所有任務以及其生命周期,調度的時候可以從全局出發(fā)統(tǒng)籌規(guī)劃數(shù)據(jù)中心虛擬機的分配方案以達到降低數(shù)據(jù)中心能耗的效果。調度系統(tǒng)首先對虛擬機任務請求按照其開始使用時間升序排列任務,并按此順序分配。在分配虛擬機任務請求的時候以物理服務器的編號為優(yōu)先級,依次把優(yōu)先級高的物理服務器分配滿了之后再考慮分配優(yōu)先級次高的物理服務器。這樣通過對物理機資源合理有效的利用,使物理服務器的總的開機時間降低,從而達到降低數(shù)據(jù)中心能耗的目的。
【專利說明】一種云計算數(shù)據(jù)中心離線節(jié)能調度的方法與裝置
1.【技術領域】
[0001]本發(fā)明涉及計算機通信【技術領域】,特別涉及一種實現(xiàn)降低數(shù)據(jù)中心能耗的方法及裝置。
2.【背景技術】
[0002]本發(fā)明涉及云計算數(shù)據(jù)中心節(jié)能的技術。云計算時代,如何對數(shù)據(jù)中心的資源進行高效和經(jīng)濟的管理是一個具有挑戰(zhàn)性的問題。數(shù)據(jù)中心消耗了大量的能源,同時帶來了環(huán)境污染。因此設計合理的節(jié)能調度算法對數(shù)據(jù)中心的資源進行管理,降低數(shù)據(jù)中心的能耗、減少運營成本、減少能源消耗對環(huán)境的污染具有十分重要的意義。雖然當前已經(jīng)存在一些數(shù)據(jù)中心節(jié)能調度算法如輪叫調度算法,Modified Best Fit Decreasing(MBFD)算法,但它們沒有具體考慮虛擬機任務的生命周期或與我們設計的算法的應用場景不一樣,所以很難達到理想效果。
[0003]輪叫調度算法的技術方案:輪叫調度是最常用的調度算法,該算法把接收到的虛擬機任務請求依次分配到每個物理 服務器以達到負載均衡的效果。該算法的優(yōu)點是簡單易行,不過當物理服務器資源大小或虛擬機任務請求的大小不一樣的時候,該算法效果會差一些。
[0004]輪叫調度算法輪轉的物理服務器是已經(jīng)開啟的物理服務器。將物理服務器依次編號,輪叫調度算法首先將第一個虛擬機任務請求分配給編號為I的物理服務器,當?shù)诙€虛擬機任務請求到來的時候將請求分配給第二個物理機,依次類推,每分配一個虛擬機任務請求后,都將下一次要分配的物理服務器的編號加1,直到物理服務器的編號指向最后一個物理服務器,這時再從新分配虛擬機任務請求給第一個物理服務器。如果分配給某個物理機失敗,即資源不夠則編號加I繼續(xù)尋找物理服務器,如果所有物理服務器都分配失敗,則新開啟一臺物理機分配,并將該物理機加入輪詢隊伍。最開始的時候只開啟一臺物理機。
[0005]Modified Best Fit Decreasing (MBFD)算法的技術方案:該算法是 AntonBeloglazov 等在 Energy-Aware Resource Allocation Heuristics for EfficientManagement of Data Centersfor Cloud Computing中提出的數(shù)據(jù)中心節(jié)能算法,該算法的主要思想是首先將虛擬機任務請求根據(jù)CPU容量大小進行降序排列,然后依次從隊首將虛擬機任務請求取出,再遍歷所有物理服務器,找到資源足夠分配該虛擬機的那些物理服務器,依次計算這些物理服務器分配該虛擬機任務請求后增加的能耗,然后將虛擬機任務請求分配到增加能耗最小的物理服務器。
[0006]在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:1、上述的節(jié)能調度方法沒有考慮虛擬機任務請求和物理機資源異構的情況。2、沒有考慮虛擬機任務的生命周期。3、與本算法的應用場景不一樣,本算法考慮的是對于離線任務的分配,主要適合虛擬機任務請求都是預訂的應用場景。
[0007]因此本發(fā)明設計一個考慮虛擬機生命周期的離線不延時算法,在對數(shù)據(jù)中心資源進行管理的時候考慮了虛擬機任務請求的生命周期,算法針對的應用場景為所以虛擬機任務請求都是離線的情況,即調度系統(tǒng)知曉一段時間內前來的所有虛擬機任務以及其生命周期。同時算法調度的虛擬機資源和物理機資源也包括很多種類型。
3.
【發(fā)明內容】
[0008]本發(fā)明的應用場景是用戶提交使用虛擬機的請求給調度系統(tǒng),調度系統(tǒng)接收到用戶提交的虛擬機任務請求,根據(jù)任務請求的需求和當前云數(shù)據(jù)中心的物理服務器的資源使用情況找到合適的物理服務器,然后將相應請求的虛擬機部署在該物理服務器上供用戶使用。節(jié)能算法主要是判定將哪個虛擬機請求分配到哪個物理服務器上,并結合適當?shù)倪w移,使數(shù)據(jù)中心開啟的物理服務器的數(shù)量降低,讓整個數(shù)據(jù)中心消耗的能耗盡量最少。
[0009]用戶提交的請求包括的信息有請求的開始時間、請求的持續(xù)時間、請求的虛擬機的規(guī)格大小。
[0010]圖1描述了云數(shù)據(jù)中心調度算法的應用場景。算法每個階段和步驟的含義可以簡單描述如下:
[0011]I)提交虛擬機請求:用戶根據(jù)自己的需要,將需要使用的虛擬機任務請求通過云服務商提供的網(wǎng)頁提交給調度系統(tǒng);
[0012]2)找到最佳資源點:調度系統(tǒng)根據(jù)自己的調度算法結合物理服務器的使用情況和虛擬機任務請求的信息,在數(shù)據(jù)中心找到合適的資源,將請求分配給該資源;
[0013]3)執(zhí)行調度任務:在找到最佳資源后,需要完成相應的虛擬機的部署,以及物理服務器相應的開關機等一系列功能;
[0014]4)更新資源信息 :物理服務器分配資源后,當前數(shù)據(jù)中心的物理服務器的使用信息會發(fā)生變化,調度系統(tǒng)需要從監(jiān)控系統(tǒng)(專門負責監(jiān)控數(shù)據(jù)中心里資源的使用情況)中獲取物理服務器最新信息并更新。
[0015]本發(fā)明涉及到的能耗模型:
[0016]根據(jù)上面的測試數(shù)據(jù)和結果同時結合其它已有研究成果,可以得出結論:物理服務器的功率是與CPU的利用率成正比關系的。獲取CPU利用率為O時的功率值Pmin和CPU利用率為100%時的能耗值Pmax得出物理服務器功率和CPU利用率之間的關系如下:
[0017]P = Pmin+(Pmax-Pmin)(I)
[0018]其中P為物理服務器的功率,Pmin為物理服務器的利用率為O時的功率,Pmax為物理服務器的利用率為100%時的功率,u為物理服務器的利用率。
[0019]物理服務器在一段時間內消耗的總能耗值為:
[0020]E = ^ Ρ{μ{?^)--⑵
[0021]其中E為物理服務器在時間h到時間這段時間的能耗消耗總和。P(u(t))為關于利用率U的函數(shù),而u (t)為關于時間t的函數(shù),為了方便計算物理服務器的能耗,本論文認為物理服務器在分配了某個虛擬機任務請求后,它的利用率一直是一個定值,不會發(fā)生變化,直到有新的虛擬機分配到該物理機或有虛擬機從該物理機上離開。所以公式(2)中的P(u(t))可以直接和公式(I)中的P直接等同。則公式(2)可以簡化為:
[0022]E = PX (trt0) (3)
[0023]在分配了虛擬機到物理服務器后,本發(fā)明假設虛擬機實際使用的CPU大小就是虛擬機提交請求時要求的大小,所以分配虛擬機后物理服務器增加的CPU利用率計算方式為:
[0024]
【權利要求】
1.為了統(tǒng)一需求規(guī)格和簡化調度管理,本發(fā)明提出一致化的資源視圖,本發(fā)明使用的資源包括8種規(guī)格的虛擬機和3種規(guī)格的物理機。物理服務器資源總共有三類(Typel、Type2、Type3),虛擬機資源有8類(1、2、3、4、5、6、7、8)。其中虛擬機類型1、2、3只能分配在物理服務器Typel上,虛擬機類型4、5、6只能分配在物理服務器Type2上,虛擬機類型7、8只能分配在物理服務器Type3上。詳見表1和表2。 表1虛擬機8種規(guī)格
2.資源初始化方法:包括生成虛擬機請求信息和物理機信息及設置最長運行時間間隙。虛擬機請求信息是初始化的時候把所有請求都一次性全部生成,包括請求的編號、請求的開始時間、請求的結束時間、請求使用的資源的大小(CPU)。初始化物理機的時候把他們每個時隙的物理機可用資源初始化為物理機的最大資源,初始時所有物理機都是處于關機狀態(tài)。
3.資源能耗模型和計算方法:針對在線資源調度,本發(fā)明建議了物理機和虛擬機能耗模型,以及與利用率和運行時間相關的能耗計算公式,詳見說明書。
4.資源分類排隊方法:把虛擬機的請求按照他們所應分配的物理機類型分別分成多個隊列。物理機也根據(jù)他們不同的類型分成多個隊列。這樣在調度的時候不同虛擬機隊列都依次與他們所對應的不同物理機隊列一對應。這種方法還可以拓展至更多種類的資源。
5.物理服務器開啟方法:一開 始每種類型的物理機隊列中的物理機都只有一臺,當分配不能成功的時候再考慮增加物理機,當使用的物理機達到數(shù)據(jù)中心提供的物理機數(shù)量上限時,則拒絕虛擬機任務請求。分配成功時如果該物理機是關機狀態(tài),則將物理服務器開啟。更新物理機上相應時隙的剩余資源大小。同時將虛擬機請求從請求隊列中刪除,并加入刪除隊列。
6.物理機的優(yōu)先級確定方式:對于同一類型的物理機,以編號確定其優(yōu)先級。一旦物理機的編號確定,它的優(yōu)先級就定了。
7.虛擬機分配方法:首先確定虛擬機任務請求的類型,調度系統(tǒng)首先對虛擬機任務請求按照其容量大小(綜合考慮CPU,內存和存儲容量大小)降序排列任務,并按此順序分配。然后將他分配到對應類型的物理機隊列中優(yōu)先級最高的那個物理機,如果該物理機的資源足夠即分配成功,否則取出下一個優(yōu)先級次高的物理機進行分配,直至分配成功。由于每次分配的時候都是從優(yōu)先級最高的那個物理機上分配,所以總能保證把一個物理機服務器分配滿后再使用下一個物理機。
8.延時分配方法:如果物理機隊列中的所有物理機都不能成功分配,則首先考慮將虛擬機的開始時間延后一個時隙,再嘗試重新分配,如果此時能分配成功則分配,如果不能則再繼續(xù)將虛擬機的開始時間延后一個時隙嘗試分配,直到虛擬機的開始時間達到最大可延遲的時間為止。如果此時都還不能成功分配,則為延時分配失敗。延時分配失敗后,此時查看是否還有可用物理機資源,有則新開一臺物理機,將虛擬機分配在該物理機上。同時將該物理機加入相應類型隊列的末尾。如果沒有物理機資源了,則拒絕虛擬機任務請求。
9.虛擬機遷移方法:每隔一段時間都要進行虛擬機遷移,具體遷移時間由數(shù)據(jù)中心的負載和具體業(yè)務特征決定,一般可設定為每天晚上用戶使用虛擬機高峰期過后的時間段,遷移次數(shù)不宜太多以避免系統(tǒng)震蕩導致的不穩(wěn)定性。具體遷移算法如下,將虛擬機數(shù)量最少的物理服務器上面的虛擬機依次取出,并重新分配到其他物理服務器上,如果該物理服務器的虛擬機全部取出則繼續(xù)取虛擬機數(shù)量次小的物理服務器上面的虛擬機進行遷移,直到不能遷移為止。
10.虛擬機刪除:查看刪除隊列中的請求,如果有請求的結束時間已到,則將請求從物理機刪除。如果該物理服務器上沒有其他虛擬機運行,則將物理服務器關機。然后將該請求從刪除隊列中刪除。
【文檔編號】G06F9/455GK103577265SQ201210258818
【公開日】2014年2月12日 申請日期:2012年7月25日 優(yōu)先權日:2012年7月25日
【發(fā)明者】田文洪 申請人:田文洪