亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

云計算中基于多目標優(yōu)化的虛擬機放置方法

文檔序號:10488796閱讀:574來源:國知局
云計算中基于多目標優(yōu)化的虛擬機放置方法
【專利摘要】本發(fā)明公開云環(huán)境中基于多目標優(yōu)化的虛擬機放置方法,基于各虛擬機資源需求的當前信息和未來預測信息,在多個虛擬機和多個物理節(jié)點之間動態(tài)建立新映射,既保證各應用服務質(zhì)量,又能極大改善新的虛擬機放置方案中各物理節(jié)點的穩(wěn)定性,同時,在虛擬機從舊放置狀態(tài)轉(zhuǎn)向新放置狀態(tài)的過程中避免大量虛擬機的遷移。通過本發(fā)明的方案,能夠在多虛擬機重新放置時保證服務質(zhì)量,具有較小的虛擬機遷移次數(shù),同時保證各物理節(jié)點具有較長的穩(wěn)定時間。
【專利說明】
云計算中基于多目標優(yōu)化的虛擬機放置方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及云計算領(lǐng)域,尤其涉及云環(huán)境中一種基于多目標優(yōu)化的虛擬機放置方 法。
【背景技術(shù)】
[0002] 云計算服務為用戶提供數(shù)據(jù)處理、存儲等計算資源,用戶可以在其申請到的虛擬 資源中部署或運行應用程序,而不需要了解計算資源提供過程的細節(jié)。而系統(tǒng)虛擬化技術(shù) 使得資源的動態(tài)配置成為可能,實現(xiàn)資源的按需分配,提高資源利用率。隨著數(shù)據(jù)中心規(guī)模 的日益增大,云平臺服務器的數(shù)目不斷增加,而用戶應用的資源需求也在不斷地變化,急需 提高云平臺的動態(tài)資源調(diào)度能力,在保證用戶應用的服務質(zhì)量的前提下最大化資源利用 率。
[0003] 目前常常采用約束規(guī)劃、遺傳算法等解決上述問題,但是忽略云平臺中各物理節(jié) 點的負載穩(wěn)定性因素,造成新的虛擬機放置方式中物理節(jié)點在不久的將來又重新出現(xiàn)新的 資源熱點或應用負載過重等狀態(tài),激發(fā)新的資源配置請求,導致頻繁的虛擬機迀移而造成 應用性能下降等問題。

【發(fā)明內(nèi)容】

[0004] 本發(fā)明的目的在于提供一種能使云平臺內(nèi)物理節(jié)點具有較長穩(wěn)定時間的虛擬機 放置方法。
[0005] 為解決上述問題,本發(fā)明云計算中基于多目標優(yōu)化的虛擬機放置方法采用了如下 技術(shù)方案:
[0006] 云計算中基于多目標優(yōu)化的虛擬機放置方法,包括如下步驟:
[0007] Sl、將云平臺中虛擬機和物理節(jié)點的映射關(guān)系采用組編碼的方式來表示;
[0008] S2、為遺傳算法建立初始代種群,種群大小為PSIZE,所述初始代種群用于產(chǎn)生新 的子代個體,其中,個體即為染色體;
[0009] S3、執(zhí)行遺傳算法,生成最后一代第GSIZE代種群;
[0010] S4、在最后一代第GSIZE代種群中,選出Tgain值最大的個體,該個體即為新的虛擬 機放置方案的組編碼;
[0011] 其中,Tgain=TtwtafsrNumtfzgatMitXTwiBMS]
[0012] 桐為該個體包含的所有已使用的物理節(jié)點的穩(wěn)定時間的最小值,
[0013] 為將個體所描述的所有虛擬機的放置方式和虛擬機的當前放置方式進 行比較,具有不同放置方式的虛擬機的個數(shù),
[0014] TwESMS]為系統(tǒng)常量。
[0015] 進一步的,步驟Sl具體包括:
[0016] SlO:將放置有虛擬機的物理節(jié)點Pj上的虛擬機Vil, Vi2,···,Vik整體表示為組編碼Pj {ViI,Vi2,…,Vik},或者PjS j,集合Sj = {Vi1,Vi2,…,Vik}),
[0017] 其中丨1,丨2,.",丨1^[1,捫』為云平臺中虛擬機總數(shù)目,_]_[[1,]\1],]\1為云平臺中物 理節(jié)點總數(shù)目;
[0018] 將放置有虛擬機的物理節(jié)點匕的節(jié)點狀態(tài)定義為"已使用",S# Φ ;沒有放置任何 虛擬機的物理節(jié)點匕的節(jié)點狀態(tài)定義為"未使用",Sj= Φ ;
[0019] Sll:將云平臺中所有物理節(jié)點的組編碼按照物理節(jié)點的序號依次排列,形成一個 個體編碼,所述個體編碼表示為如下表達式:
[0020] (PiSi,P2S2, . . .,PmSm) (1)
[0021]
[0022]
[0023]進一步的,步驟S2具體包括:
[0024] S20:將云平臺中多個虛擬機和物理節(jié)點的當前映射狀態(tài)用組編碼方式描述出來, 作為初始代種群的一個個體;
[0025] S21:隨機生成PSIZE-I種虛擬機在物理節(jié)點上的不同的放置方案,每個虛擬機放 置方案對應的組編碼均作為初始代種群的一個個體。
[0026]進一步的,步驟S3具體包括:
[0027] S30:將步驟S2中生成的初始代種群作為父代種群;
[0028] S31:所述父代種群以交叉概率pc、變異概率pv遺傳生成2XPSIZE個子代個體;
[0029] S32:將所述2 X PSIZE個子代個體和PSIZE個父代個體合并成包含3 X PSIZE個個體 的集合PSet,使用NSGA-II算法對該集合pSet中的個體進行分級排序,形成排序隊列 pQueue,取出排序隊列pQueue中頭PSIZE個個體,作為新一代種群;
[0030] S33:如果遺傳的種群代數(shù)未達到GSIZE,則將新一代種群作為父代種群,轉(zhuǎn)到步驟 S31〇
[0031] 進一步的,步驟S31具體包括:
[0032] S310:從父代種群中隨機選擇兩個個體chml和chm2,以交叉概率pc進行交叉操作, 如果這兩個個體交叉,則轉(zhuǎn)到步驟S311,否則,轉(zhuǎn)到步驟S310;
[0033] S311:在個體chml中隨機選擇一個已使用的物理節(jié)點Pi,在個體chm2中隨機選擇 一個已使用的物理節(jié)點Pj,交換這兩個物理節(jié)點Pi、Pj上的虛擬機,并相應修改個體chml和 chm2的組編碼表示;
[0034] S312:如果個體chml中物理節(jié)點Pi上的某個虛擬機和其它物理節(jié)點Pk上的某個虛 擬機相同,則將物理節(jié)點Pk的狀態(tài)由"已使用"變成"未使用",并為物理節(jié)點Pk上的每一個虛 擬機分別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置 節(jié)點,新的放置節(jié)點必須有足夠的空閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點, 則在未使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體Chml 的組編碼表示,得到一個個體chml \
[0035] S313:如果個體chm2中物理節(jié)點Pj上的某個虛擬機和其它物理節(jié)點Pi上的某個虛 擬機相同,則將物理節(jié)點Pi的狀態(tài)由"已使用"變成"未使用",并為物理節(jié)點Pi上的每一個虛 擬機分別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置 節(jié)點,新的放置節(jié)點必須有足夠的空閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點, 則在未使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體chm2 的組編碼表示,得到一個個體chm2 \
[0036] S314:將個體chml'以變異概率pv進行變異,如果該個體chml'進行變異,則轉(zhuǎn)入步 驟S315,否則,將個體chml'作為子代的一個個體,轉(zhuǎn)入步驟S318;
[0037] S315:在個體chin"中隨機選擇一個已使用的物理節(jié)點Ps,將物理節(jié)點P s的狀態(tài)由 "已使用"變成"未使用",并為物理節(jié)點Ps上的每一個虛擬機分別按照首次適應算法在已使 用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,新的放置節(jié)點必須有足夠的空 閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物 理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體chml'的組編碼表示,得到子代的一個個 體chml'';
[0038] S316:將個體chm2'以變異概率pv進行變異,如果該個體chm2'進行變異,則轉(zhuǎn)入步 驟S317,否則,將個體chm2'作為子代的一個個體,轉(zhuǎn)入步驟S318;
[0039] S317:在個體chm2>中隨機選擇一個已使用的物理節(jié)點Pt,將物理節(jié)點P t的狀態(tài)由 "已使用"變成"未使用",并為物理節(jié)點Pt上的每一個虛擬機分別按照首次適應算法在已使 用的按節(jié)點序號排列的物理節(jié)點隊列上找到新的放置節(jié)點,新的放置節(jié)點必須有足夠的空 閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物 理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體chm2'的組編碼表示,得到子代的一個個 體chm2,,;
[0040] S318:如果得到的子代個體總數(shù)小于2XPSIZE,轉(zhuǎn)入步驟S310。
[0041 ]進一步的,步驟S32具體包括:
[0042] S320:計算集合pSet中每個個體里包含的每個已使用的物理節(jié)點的穩(wěn)定時間,已 使用的物理節(jié)點Pj的穩(wěn)定時間計算如下:基于放置在物理節(jié)點匕上的各虛擬機的負載預測 信息,從當前時刻到未來物理節(jié)點匕第一次出現(xiàn)負載過重狀態(tài)的時刻之間的時間間隔即為 該物理節(jié)點Pj的穩(wěn)定時間;
[0043] S321:計算集合pSet中每個個體的穩(wěn)定時間,個體的穩(wěn)定時間為該個體包含的所 有已使用的物理節(jié)點的穩(wěn)定時間的最小值;
[0044] S322:計算集合pSet中每個個體的迀移次數(shù),將個體所描述的所有虛擬機的放置 方式和虛擬機的當前放置方式進行比較,具有不同放置方式的虛擬機的個數(shù)即為個體的迀 移次數(shù);
[0045] S323:以個體的穩(wěn)定時間和個體的迀移次數(shù)為兩個目標,使用NSGA-II算法對集合 pSet中的個體進行分級和排序,挑選出最優(yōu)的PSIZE個個體,這些個體具有較長的穩(wěn)定時間 和較少的迀移次數(shù)。
[0046] 本發(fā)明云計算中基于多目標優(yōu)化的虛擬機放置方法,基于應用虛擬機的負載預測 信息,通過上述步驟,選取能使云平臺中各物理節(jié)點在未來較長時間內(nèi)保持負載穩(wěn)定性的 虛擬機放置方法,這樣既保證虛擬機應用的服務質(zhì)量,又保證新的虛擬機放置方式中各物 理節(jié)點在未來較長時間內(nèi)不會出現(xiàn)新的資源熱點或應用負載過重狀態(tài),避免虛擬機的頻繁 迀移,同時,從虛擬機的當前分布狀態(tài)到這種新的虛擬機放置方式之間的狀態(tài)轉(zhuǎn)換只需較 少的虛擬機迀移次數(shù)。
【附圖說明】
[0047]圖1為本發(fā)明云計算中基于多目標優(yōu)化的虛擬機放置方法的系統(tǒng)框架圖;
[0048]圖2為本發(fā)明云計算中基于多目標優(yōu)化的虛擬機放置方法的組編碼方式的示意 圖;
[0049] 圖3為本發(fā)明云計算中基于多目標優(yōu)化的虛擬機放置方法的交叉遺傳的過程示意 圖。
【具體實施方式】
[0050] 為了進一步理解本發(fā)明,下面結(jié)合實施例對本發(fā)明優(yōu)選實施方案進行描述,但是 應當理解,這些描述只是為進一步說明本發(fā)明的特征和優(yōu)點,而不是對本發(fā)明權(quán)利要求的 限制。
[0051] 本發(fā)明的基本思想是:將虛擬機和物理節(jié)點的當前映射狀態(tài)采用組編碼方式表 示,并將之作為初始代種群的一個個體。隨機產(chǎn)生初始代種群的其它PSIZE-I個個體?;?初始代種群,以個體的穩(wěn)定時間和迀移次數(shù)為優(yōu)化目標,執(zhí)行遺傳算法,生成GSIZE代種群。 在第GSIZE代種群中,選出T gain值最大的個體,該個體即為新的虛擬機放置方案的組編碼。
[0052 ]其中,Tgain = IX櫞NunFHzgat孅 X Tv曬刪|司
[0053]為了實現(xiàn)上述方案,在一個實施例中,本發(fā)明的方法采用了如下步驟:
[0054]步驟1:建立初始種群,種群大小為PSIZE,將虛擬機和物理節(jié)點的當前映射狀態(tài)用 組編碼方式表示出來,如圖2所示實例方法,隨機生成初始代種群中其它PSIZE-I個個體,隨 機生成其它PSIZE-I個個體的方式具體地包含以下子步驟。
[0055] 步驟1.1:隨機生成虛擬機Vi的一個放置目標,即物理節(jié)點Pj,若虛擬機V i與物理節(jié) 點Pj同時滿足公式(1)和公式(2),則慮擬機的放詈目標為Pj,X ij值由0變?yōu)?;
[0056]
[0057]
[0058] 其中,布爾變量Xkj = 1,表示虛擬機Vk已放置在物理節(jié)點Pj上,否則,Xkj = 0表示虛 擬機Vk未放置在物理節(jié)點Pj上,表示虛擬機Vk申請的處理器資源數(shù)量,表示物理 節(jié)點Pj所能提供的處理器資源總量,表示虛擬機Vk申請的內(nèi)存資源數(shù)量,表示物 理節(jié)點Pj所能提供的內(nèi)存資源總量。
[0059] 步驟1.2:若在步驟1.1中虛擬機Vi和物理節(jié)點Pj不滿足公式(1)或者公式(2),則按 照首次適應算法為虛擬機V 1在已使用的按節(jié)點序號排列的物理節(jié)點隊列中找到新的放置 節(jié)點,并同時滿足公式(1)和公式(2),若找不到,則在未使用的按節(jié)點序號排列的物理節(jié)點 隊列中找到新的放置節(jié)點;
[0060] 步驟1.3:按照步驟1.1和步驟1.2為剩下的虛擬機隨機產(chǎn)生放置的物理節(jié)點,形成 初始化種群的一個個體;
[0061 ] 步驟1.4:重復執(zhí)行步驟1.1、步驟1.2和步驟1.3,一共生成PSIZE-I個個體。
[0062]步驟2:以步驟1生成的初始代種群為基礎(chǔ),以個體的穩(wěn)定時間和迀移次數(shù)為優(yōu)化 目標,執(zhí)行遺傳算法,生成GSIZE代種群;
[0063] 具體步驟如下:
[0064] 步驟2.1:隨機選擇兩個個體,以交叉概率p。進行交叉操作,即,產(chǎn)生一個0到100之 間的隨機數(shù)ranNuml,如果ranNuml/100>p。,則這兩個個體進行交叉操作,否則,這兩個個體 不進行交叉操作,重新選擇要交叉的兩個個體;
[0065]步驟2.2:如果這兩個個體交叉,則隨機選擇兩個個體中的交叉點,即已使用的物 理節(jié)點,互換這兩個物理節(jié)點上放置的虛擬機,交叉后,若交叉點上的某個虛擬機和其它物 理節(jié)點Pi上的某個虛擬機相同,則將物理節(jié)點Pi的狀態(tài)由"已使用"變成"未使用",并為物理 節(jié)點Pi上的每一個虛擬機分別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點 隊列中尋找新的放置節(jié)點,如果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物 理節(jié)點隊列中尋找新的放置節(jié)點。個體交叉過程如圖3所示實例方法,兩個個體交叉生成兩 個子代個體;
[0066] 步驟2.3:對新產(chǎn)生的每個個體以變異概率pv進行變異,即,產(chǎn)生一個0到100之間 的隨機數(shù)ranNum2,如果ranNum2/100〈pv,則對該個體進行變異操作;否則對該個體不進行 變異操作;
[0067]步驟2.4:如果對個體進行變異操作,則在該個體中隨機選擇一個已使用的物理節(jié) AP1,將物理節(jié)點狀態(tài)由"已使用"變成"未使用",并為該物理節(jié)點P1上每一個虛擬機分 別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,如 果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié) 點。
[0068] 步驟2.5:重復步驟2.1、步驟2.2、步驟2.3和步驟2.4,一共產(chǎn)生2 X PSIZE個子代個 體。
[0069] 步驟2.6:將上述步驟產(chǎn)生的2 X PSIZE個子代個體和PSIZE個父代個體合并成一個 大的集合pSet。
[0070]步驟2.7:計算集合pSet中每個個體的穩(wěn)定時間1>($飽_]和迀移次數(shù)Num伸隨!離。 為該個體包含的所有已使用的物理節(jié)點的穩(wěn)定時間的最小值,燦_通_為將個體 所描述的所有虛擬機的放置方式和虛擬機的當前放置方式進行比較,具有不同放置方式的 虛擬機的個數(shù)。而已使用的物理節(jié)點Pj的穩(wěn)定時間計算如下:基于放置在物理節(jié)點P j上的各 虛擬機的負載預測信息,從當前時刻到未來物理節(jié)點匕第一次出現(xiàn)負載過重狀態(tài)的時刻之 間的時間間隔即為該物理節(jié)點匕的穩(wěn)定時間。
[0071] 步驟2.8:為每個個體計算Num',計算公式如公式(3)所示。
[0072] Num' = N-NumtHffltMSi+1 (3)
[0073]其中,N為云平臺中虛擬機總數(shù)目,為個體的迀移次數(shù)。
[0074] 步驟2.9:基于每個個體的穩(wěn)定時間T仰穩(wěn)a擱和Nun^,利用NSGA-II算法為集合PSet 中的每個個體計算支配等級,支配等級從1開始編號,第二個支配等級是2,依次類推,支配 等級越低,個體越被優(yōu)先選擇作為子代個體;對處于同一支配等級內(nèi)的個體計算其擁擠距 離,并將同一支配等級內(nèi)的個體按照擁擠距離的大小進行降序排列,擁擠距離越大,個體越 被優(yōu)先作為子代個體。
[0075] 步驟2.10:按照每個個體的支配等級的升序和擁擠距離的降序?qū)蟨Set中所有 個體進行排序,并選擇最優(yōu)的PSIZE個個體作為子代個體。
[0076] 步驟2.11:將子代個體作為新的父代個體,重復上述各步驟,再生成新的子代個 體,直至產(chǎn)生第GSIZE代種群。
[0077] 步驟3:在最后一代即第GSIZE代種群中,選出Tgain值最大的個體,該個體即為新的 虛擬機放置方案的組編碼。
[0078] 其中,Tgain=IX?i_rNunFHzt5aiMitXTv_Ms]
[0079] 以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對 于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行 若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
【主權(quán)項】
1. 云計算中基于多目標優(yōu)化的虛擬機放置方法,其特征在于,包括如下步驟: 51、 將云平臺中虛擬機和物理節(jié)點的映射關(guān)系采用組編碼的方式來表示; 52、 為遺傳算法建立初始代種群,種群大小為PSIZE,所述初始代種群用于產(chǎn)生新的子 代個體,其中,個體即為染色體; 53、 執(zhí)行遺傳算法,生成最后一代即第GSIZE代種群; 54、 在最后一代即第GSIZE代種群中,選出Tgain值最大的個體,該個體即為新的虛擬機放 置方案的組編碼; 其中,Tgain = Tt(?g雨胸-NmiFf倘a勢激XTvM進if胸 T抑穩(wěn)酣fs]為該個體包含的所有已使用的物理節(jié)點的穩(wěn)定時間的最小值, Num胃胃為將個體所描述的所有虛擬機的放置方式和虛擬機的當前放置方式進行比 較,具有不同放置方式的虛擬機的個數(shù), Twiaiifg]為系統(tǒng)常量。2. 根據(jù)權(quán)利要求1所述的基于多目標優(yōu)化的虛擬機放置方法,其特征在于,步驟S1具體 包括: S10:將放置有虛擬機的物理節(jié)點Pj上的虛擬機Vii,Vi2,…,V化整體表示為組編碼Pj{Vii, Vi2,...,V化},或者P品,集合Sj = {Vii,Vi2,...,Vik}, 其中il,i2,…,ike[l,N],N為云平臺中虛擬機總數(shù)目,je[l,M],M為云平臺中物理節(jié) 點總數(shù)目; 將放置有虛擬機的物理節(jié)點門的節(jié)點狀態(tài)定義為"已使用",Φ ;沒有放置任何虛擬 機的物理節(jié)點門的節(jié)點狀態(tài)定義為"未使思',&= Φ ; S11:將云平臺中所有物理節(jié)點的組編碼按照物理節(jié)點的序號依次排列,形成一個個體 編碼,所述個體編碼表示為如下表達式: (PiSi,P2S2,. ..,PmSm) (1) 其中,馬η馬二與Vi,J G [l:,i幻,i單J ,13. 根據(jù)權(quán)利要求1所述的基于多目標優(yōu)化的虛擬機放置方法,其特征在于,步驟S2具體 包括: S20:將云平臺中多個虛擬機和物理節(jié)點的當前映射狀態(tài)用組編碼方式描述出來,作為 初始代種群的一個個體; S21:隨機生成PSIZE-1種虛擬機在物理節(jié)點上的不同的放置方案,每個虛擬機放置方 案對應的組編碼均作為初始代種群的一個個體。4. 根據(jù)權(quán)利要求1所述的基于多目標優(yōu)化的虛擬機放置方法,其特征在于,步驟S3具體 包括: S30:將步驟S2中生成的初始代種群作為父代種群; S31:所述父代種群W交叉概率Pc、變異概率pv遺傳生成2XPSIZE個子代個體; S32:將所述2 X PSIZE個子代個體和PSIZE個父代個體合并成包含3 X PSIZE個個體的集 合pSet,使用NSGA-II算法對該集合pSet中的個體進行分級排序,形成排序隊列pQueue,取 出排序隊列P如eue中頭PSIZE個個體,作為新一代種群; S33:如果遺傳的種群代數(shù)未達到GSIZE,則將新一代種群作為父代種群,轉(zhuǎn)到步驟S31。5. 根據(jù)權(quán)利要求4所述的基于多目標優(yōu)化的虛擬機放置方法,其特征在于,步驟S31具 體包括: S310:從父代種群中隨機選擇兩個個體chml和chm2,W交叉概率Pc進行交叉操作,如果 運兩個個體交叉,則轉(zhuǎn)到步驟S311,否則,轉(zhuǎn)到步驟S310; S311:在個體chml中隨機選擇一個已使用的物理節(jié)點Pi,在個體chm2中隨機選擇一個已 使用的物理節(jié)點Pj,交換運兩個物理節(jié)點Pi、Pj上的虛擬機,并相應修改個體chml和chm2的 組編碼表示; S312:如果個體chml中物理節(jié)點Pi上的某個虛擬機和其它物理節(jié)點Pk上的某個虛擬機 相同,則將物理節(jié)點Pk的狀態(tài)由"已使用'變成"未使思',并為物理節(jié)點P止的每一個虛擬機 分別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點, 新的放置節(jié)點必須有足夠的空閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在 未使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體chml的組 編碼表示,得到一個個體chml >; S313:如果個體chm2中物理節(jié)點Pj上的某個虛擬機和其它物理節(jié)點Pi上的某個虛擬機 相同,則將物理節(jié)點Pi的狀態(tài)由"已使用'變成"未使思',并為物理節(jié)點Pi上的每一個虛擬機 分別按照首次適應算法在已使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點, 新的放置節(jié)點必須有足夠的空閑資源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在 未使用的按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,并相應修改個體chm2的組 編碼表示,得到一個個體chm2>; S314:將個體chml > W變異概率Pv進行變異,如果該個體chml >進行變異,則轉(zhuǎn)入步驟 S315,否則,將個體chml >作為子代的一個個體,轉(zhuǎn)入步驟S318; S315:在個體chml >中隨機選擇一個已使用的物理節(jié)點Ps,將物理節(jié)點Ps的狀態(tài)由"已使 用"變成"未使用",并為物理節(jié)點Ps上的每一個虛擬機分別按照首次適應算法在已使用的 按節(jié)點序號排列的物理節(jié)點隊列中尋找新的放置節(jié)點,新的放置節(jié)點必須有足夠的空閑資 源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物理節(jié) 點隊列中尋找新的放置節(jié)點,并相應修改個體chml >的組編碼表示,得到子代的一個個體 chml"; S316 :將個體chm2 > W變異概率Pv進行變異,如果該個體chm2 >進行變異,則轉(zhuǎn)入步驟 S317,否則,將個體chm2 >作為子代的一個個體,轉(zhuǎn)入步驟S318; S317:在個體chm2 >中隨機選擇一個已使用的物理節(jié)點Pt,將物理節(jié)點Pt的狀態(tài)由"已使 用"變成"未使用",并為物理節(jié)點Pt上的每一個虛擬機分別按照首次適應算法在已使用的 按節(jié)點序號排列的物理節(jié)點隊列上找到新的放置節(jié)點,新的放置節(jié)點必須有足夠的空閑資 源來容納新的虛擬機,如果找不到新的放置節(jié)點,則在未使用的按節(jié)點序號排列的物理節(jié) 點隊列中尋找新的放置節(jié)點,并相應修改個體chm2>的組編碼表示,得到子代的一個個體 chm2"; S318:如果得到的子代個體總數(shù)小于2 X PSIZE,轉(zhuǎn)入步驟S310。6. 根據(jù)權(quán)利要求4所述的基于多目標優(yōu)化的虛擬機放置方法,其特征在于,步驟S32具 體包括: S320:計算集合pSet中每個個體里包含的每個已使用的物理節(jié)點的穩(wěn)定時間,已使用 的物理節(jié)點Pj的穩(wěn)定時間計算如下:基于放置在物理節(jié)點門上的各虛擬機的負載預測信息, 從當前時刻到未來物理節(jié)點門第一次出現(xiàn)負載過重狀態(tài)的時刻之間的時間間隔即為該物 理節(jié)點門的穩(wěn)定時間; S321:計算集合pSet中每個個體的穩(wěn)定時間,個體的穩(wěn)定時間為該個體包含的所有已 使用的物理節(jié)點的穩(wěn)定時間的最小值; S322:計算集合pSet中每個個體的遷移次數(shù),將個體所描述的所有虛擬機的放置方式 和虛擬機的當前放置方式進行比較,具有不同放置方式的虛擬機的個數(shù)即為個體的遷移次 數(shù); S323:W個體的穩(wěn)定時間和個體的遷移次數(shù)為兩個目標,使用NSGA-II算法對集合pSet 中的個體進行分級和排序,挑選出最優(yōu)的PSIZE個個體,運些個體具有較長的穩(wěn)定時間和較 少的遷移次數(shù)。
【文檔編號】G06F9/455GK105843666SQ201510869992
【公開日】2016年8月10日
【申請日】2015年12月1日
【發(fā)明人】鄧莉, 姚力
【申請人】武漢科技大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1