基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法
【專利摘要】本發(fā)明屬于基礎(chǔ)設(shè)施即服務(wù)型(Iaas)云計(jì)算領(lǐng)域,涉及一種基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法;該方法的步驟為:監(jiān)控云計(jì)算環(huán)境中的物理機(jī)和虛擬機(jī)負(fù)載信息,分析每一臺(tái)主機(jī)的負(fù)載周期及變化情況,確定負(fù)載變化的周期;通過具有多適應(yīng)度的混合遺傳算法,算出云環(huán)境中出現(xiàn)的虛擬機(jī)放置組合。本發(fā)明根據(jù)三個(gè)優(yōu)化目標(biāo),計(jì)算得出最優(yōu)化的虛擬機(jī)放置策略,作為最終的結(jié)果;周期性地執(zhí)行本發(fā)明所述算法,通過虛擬機(jī)的動(dòng)態(tài)遷移,實(shí)現(xiàn)虛擬機(jī)合理放置,提高資源利用率,節(jié)省資源。本發(fā)明能解決當(dāng)前云計(jì)算中心中資源利用率不高的問題,適應(yīng)當(dāng)前云計(jì)算中心的自動(dòng)化管理要求。
【專利說明】基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬基礎(chǔ)設(shè)施即服務(wù)型(Iaas)云計(jì)算領(lǐng)域,涉及一種云計(jì)算環(huán)境中的虛擬機(jī)動(dòng)態(tài)調(diào)度技術(shù),具體涉及一種基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法;該方法為一種通過分析、計(jì)算云計(jì)算數(shù)據(jù)中心的監(jiān)控?cái)?shù)據(jù)以指導(dǎo)其中的虛擬機(jī)動(dòng)態(tài)合理放置的方法。
技術(shù)背景
[0002]云計(jì)算作為近年來新興的產(chǎn)業(yè),獲得了科研界和產(chǎn)業(yè)界的廣泛關(guān)注。所述云計(jì)算主要?jiǎng)澐譃槿N類型:基礎(chǔ)設(shè)施即服務(wù)、平臺(tái)即服務(wù)、軟件即服務(wù)。在基礎(chǔ)設(shè)施即服務(wù)型的云計(jì)算環(huán)境中,虛擬機(jī)的合理放置問題一直未得到有效的解決。
[0003]目前,在“基礎(chǔ)設(shè)施即服務(wù)(IaaS)”型的云計(jì)算環(huán)境下,用戶購買的虛擬機(jī)需求是各不相同的,所表現(xiàn)出的負(fù)載特征也是各不相同的;最普遍的歸類方法有三種,即CPU密集型、磁盤I/o密集型、網(wǎng)絡(luò)密集型。若同一臺(tái)物理機(jī)上承載的虛擬機(jī)為同一種類型,例如同為CPU密集型,則各個(gè)虛擬機(jī)之間會(huì)競(jìng)爭(zhēng)CPU資源的使用,而其它的資源(磁盤、網(wǎng)絡(luò)等)利用率就會(huì)偏低,上述狀況造成因?yàn)楦?jìng)爭(zhēng)而使得服務(wù)質(zhì)量不高,同時(shí)因?yàn)檎w利用率的偏低而造成資源的浪費(fèi),且能源會(huì)產(chǎn)生不必要的損耗。一般情況下,一個(gè)普通的300W服務(wù)器一年能耗約為2628千瓦時(shí),同時(shí)需要748千瓦時(shí)的額外電量用于冷卻。在云計(jì)算環(huán)境下,降低能耗節(jié)約成本對(duì)互聯(lián)網(wǎng)數(shù)據(jù)中心有著重要的意義。
[0004]雖然目前已有一些關(guān)于云計(jì)算環(huán)境下虛擬機(jī)調(diào)度的技術(shù),但是上述技術(shù)普遍存在一些問題,主要有:
[0005](I)基于服務(wù)器整體的負(fù)載情況,沒有考慮到負(fù)載的差異性;通常該類調(diào)度技術(shù)使用的參數(shù)為服務(wù)器整體的負(fù)載,所述整體的負(fù)載由各項(xiàng)負(fù)載分別計(jì)算得出,如此的計(jì)算方法就不能分辨出負(fù)載的差異性,一個(gè)CPU密集型的應(yīng)用和一個(gè)網(wǎng)絡(luò)密集型的應(yīng)用可能表現(xiàn)出同樣高的相對(duì)負(fù)載,但其的特征顯然是不同的,也不應(yīng)該同樣地對(duì)待,而應(yīng)該差別對(duì)待;
[0006](2)采用單一的評(píng)判機(jī)制;當(dāng)前的一些技術(shù)在對(duì)虛擬機(jī)調(diào)度方法的評(píng)判上,普遍只采用一個(gè)評(píng)判指標(biāo),這樣會(huì)造成調(diào)度時(shí)顧此失彼,不能綜合考慮,往往造成調(diào)度時(shí)優(yōu)化了一項(xiàng)參數(shù),但惡化其它參數(shù)的情況;云計(jì)算環(huán)境下虛擬機(jī)動(dòng)態(tài)調(diào)度技術(shù)需要配合虛擬機(jī)的遷移使用,若只考慮性能優(yōu)化值,可能會(huì)造成巨大的虛擬機(jī)遷移成本;
[0007](3)性能優(yōu)化幅度;當(dāng)前的云計(jì)算環(huán)境下虛擬機(jī)動(dòng)態(tài)調(diào)度技術(shù)的優(yōu)化效果不佳,性能提升幅度不大,沒有對(duì)具有周期性負(fù)載特征的應(yīng)用進(jìn)行相應(yīng)的優(yōu)化。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺陷和不足提供一種基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法;其通過獲取云計(jì)算數(shù)據(jù)中心的監(jiān)控?cái)?shù)據(jù),分析其中的CPU利用率、網(wǎng)絡(luò)利用率、磁盤利用率這三個(gè)維度的負(fù)載參數(shù),使其中某維度負(fù)載利用率高的虛擬機(jī)與利用率低的虛擬機(jī)遷移至同一臺(tái)物理機(jī),達(dá)到合理配置資源、提高資源利用率。該方法能克服現(xiàn)有技術(shù)的云計(jì)算環(huán)境下資源利用率不高,且現(xiàn)有虛擬機(jī)動(dòng)態(tài)調(diào)度技術(shù)不能很好地優(yōu)化資源利用率的缺陷,
[0009]本發(fā)明中所述的云計(jì)算屬于云計(jì)算中的基礎(chǔ)設(shè)施即服務(wù)領(lǐng)域;本發(fā)明針對(duì)的云計(jì)算環(huán)境為具有明顯周期性的應(yīng)用,若虛擬機(jī)負(fù)載率周期性較低,則可能造成本發(fā)明所獲結(jié)果不穩(wěn)定。
[0010]本發(fā)明的方法包括:監(jiān)控云計(jì)算環(huán)境中的物理機(jī)和虛擬機(jī)負(fù)載信息及特征提取,分析每一臺(tái)主機(jī)的負(fù)載周期及變化情況,確定負(fù)載變化的周期;通過具有多適應(yīng)度的混合遺傳算法,算出云環(huán)境中可能出現(xiàn)的虛擬機(jī)放置組合;其流程圖如圖1所示,
[0011](I)獲取虛擬機(jī)各項(xiàng)負(fù)載、獲取虛擬原始放置信息;
[0012](2)分步運(yùn)行本發(fā)明中所述算法;
[0013](3)將結(jié)果與原始放置信息作比較;
[0014](4)檢測(cè)結(jié)果是否達(dá)到優(yōu)化目標(biāo),若“是”則進(jìn)行下一步,若“否”則返回步驟(2);
[0015](5)計(jì)算遷移成本是否過高,若“是”則直接“結(jié)束”,若“否”則進(jìn)行下一步;
[0016](6)根據(jù)結(jié)果對(duì)虛擬機(jī)進(jìn)行遷移。
[0017]具體而言,本發(fā)明的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,其具體步驟為:
[0018](I)向歷史監(jiān)控?cái)?shù)據(jù)庫發(fā)起請(qǐng)求,獲得所有虛擬機(jī)的各項(xiàng)負(fù)載參數(shù),對(duì)周期性的應(yīng)用以一個(gè)周期為單位;對(duì)實(shí)際環(huán)境中常見應(yīng)用以24小時(shí)為單位;
[0019](2)進(jìn)行多適應(yīng)度混合遺傳算法的準(zhǔn)備工作:計(jì)算出“多適應(yīng)度”中的子適應(yīng)度函數(shù)1、子適應(yīng)度函數(shù)2、子適應(yīng)度函數(shù)3,通過其線性組合得出總的適應(yīng)度函數(shù);
[0020](3)初始化遺傳算法的種群,生成200-500個(gè)個(gè)體;
[0021](4)通過總適應(yīng)度函數(shù),進(jìn)行遺傳算法中的迭代過程;根據(jù)對(duì)精度和時(shí)間權(quán)衡,可迭代500-2000代;
[0022](5)根據(jù)遺傳算法的迭代結(jié)果,得出最終的動(dòng)態(tài)調(diào)度方案;
[0023](6)根據(jù)結(jié)果得出的動(dòng)態(tài)調(diào)度方案,進(jìn)行虛擬機(jī)的遷移;此時(shí)本發(fā)明所述過程結(jié)束,得出的最終虛擬機(jī)配置方案為當(dāng)前最優(yōu)方案;
[0024](7)根據(jù)虛擬機(jī)負(fù)載的變化情況,每24小時(shí)運(yùn)行一次本發(fā)明所述算法,以保證資源利用率長(zhǎng)期保持在最優(yōu)化狀態(tài)。
[0025]本發(fā)明方法的核心為獲取多維度的負(fù)載,且采用多適應(yīng)度的遺傳算法以達(dá)到兼顧不同優(yōu)化指標(biāo)的目的;為了合理分配云計(jì)算環(huán)境中的資源、達(dá)到優(yōu)化資源使用率的目的,本發(fā)明采用以下算法步驟,分步獲得三個(gè)維度的負(fù)載指標(biāo)作為輸入,通過混合遺傳算法的選擇、變異、進(jìn)化等過程,綜合考慮物理機(jī)使用數(shù)量、負(fù)載平衡率、遷移成本這三個(gè)指標(biāo),最后獲得一次合理的虛擬機(jī)動(dòng)態(tài)遷移策略;
[0026]本發(fā)明中,所述算法具有如下3個(gè)可優(yōu)化的目標(biāo):(I)所占用的物理機(jī)數(shù)量最少;
(2)負(fù)載互補(bǔ);(3)需遷移的虛擬機(jī)數(shù)量最少;
[0027]其中,所述(I)和(2)占主要權(quán)重,(3)為次要權(quán)重;
[0028]上述三個(gè)優(yōu)化目標(biāo)對(duì)應(yīng)了三個(gè)子適應(yīng)度函數(shù),將該三個(gè)子適應(yīng)度函數(shù)的結(jié)果進(jìn)行混合后,得到遺傳算法中個(gè)體選擇函數(shù)所需的適應(yīng)度值;
[0029]本發(fā)明中,對(duì)于物理機(jī)和虛擬機(jī)的特征提取,為:設(shè)pm代表云中物理機(jī)總數(shù),vm代表云中虛擬機(jī)總數(shù),Counti代表遺傳算法中第i個(gè)染色體里所占用的物理機(jī)數(shù)量,P為遺傳
算法群體中個(gè)體數(shù),則第I個(gè)子適應(yīng)度函數(shù)的計(jì)算方法為:
【權(quán)利要求】
1.一種基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,所述的方法包括:監(jiān)控云計(jì)算環(huán)境中的物理機(jī)和虛擬機(jī)負(fù)載信息及特征提取,分析每一臺(tái)主機(jī)的負(fù)載周期及變化情況,確定負(fù)載變化的周期;通過具有多適應(yīng)度的混合遺傳算法,算出云環(huán)境中可能出現(xiàn)的虛擬機(jī)放置組合,其包括步驟: (1)向歷史監(jiān)控?cái)?shù)據(jù)庫發(fā)起請(qǐng)求,獲得所有虛擬機(jī)的各項(xiàng)負(fù)載參數(shù),對(duì)周期性的應(yīng)用以一個(gè)周期為單位;對(duì)實(shí)際環(huán)境中常見應(yīng)用以24小時(shí)為單位; (2)進(jìn)行多適應(yīng)度混合遺傳算法的準(zhǔn)備工作:計(jì)算出“多適應(yīng)度”中的子適應(yīng)度函數(shù)1、子適應(yīng)度函數(shù)2、子適應(yīng)度函數(shù)3,通過其線性組合得出總的適應(yīng)度函數(shù); (3)初始化遺傳算法的種群,生成200-500個(gè)個(gè)體; (4)通過總適應(yīng)度函數(shù),進(jìn)行遺傳算法中的迭代過程;根據(jù)對(duì)精度和時(shí)間權(quán)衡,可迭代500-2000 代; (5)根據(jù)遺傳算法的迭代結(jié)果,得出最終的動(dòng)態(tài)調(diào)度方案; (6)根據(jù)結(jié)果得出的動(dòng)態(tài)調(diào)度方案,進(jìn)行虛擬機(jī)的遷移,所述過程結(jié)束,得出最終虛擬機(jī)配置方案; (7)根據(jù)虛擬機(jī)負(fù)載的變化情況,每24小時(shí)運(yùn)行一次所述算法,保證資源利用率保持最優(yōu)化狀態(tài)。
2.如權(quán)利要求1所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,對(duì)于物理機(jī)和虛擬機(jī)的特征提取中,設(shè)Pm為云中物理機(jī)總數(shù),vm為云中虛擬機(jī)總數(shù),counti為遺傳算法中第i個(gè)染色體里所占用的物理機(jī)數(shù)量,P為遺傳算法群體中個(gè)體數(shù)。
3.如權(quán)利要求1所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,所述的子適應(yīng)度函數(shù)I通過下述公式計(jì)算得:
4.如權(quán)利要求1中所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于:所述的子適應(yīng)度函數(shù)2通過下述公式計(jì)算得::
5.如權(quán)利要求1中所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,所述的子適應(yīng)度函數(shù)3通過下述公式計(jì)算得:
6.如權(quán)利要求1中所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,所述的總適應(yīng)度函數(shù)通過下述公式計(jì)算得:
Ei = xEn+yEi2+zEi3
其中 x+y+z=l (9)。
7.如權(quán)利要求1或6所述的基于混合遺傳算法的云計(jì)算虛擬機(jī)動(dòng)態(tài)調(diào)度方法,其特征在于,通過總適應(yīng)度函數(shù)的計(jì)算,得出每一種放置策略的適度度,其中最高的適應(yīng)度放置策略在遺傳算法中進(jìn)化并保留至下一代,最終得的適應(yīng)度最高的放置策略為最優(yōu)化的虛擬機(jī)放置策略。
【文檔編號(hào)】G06N3/12GK103576829SQ201210271831
【公開日】2014年2月12日 申請(qǐng)日期:2012年8月1日 優(yōu)先權(quán)日:2012年8月1日
【發(fā)明者】吳杰, 陳實(shí), 呂智慧 申請(qǐng)人:復(fù)旦大學(xué)