專利名稱:虛擬主機合并方法與管理實體主機的制作方法
技術領域:
本發(fā)明是關于ー種虛擬主機(virtual machine)合并方法與管理實體主機 ^manager physical machineノ 。
背景技術:
如今,由于云計算(cloud computing)的趨勢,數(shù)據(jù)中心(data center)比以往更為重要。典型的數(shù)據(jù)中心包含數(shù)百或數(shù)千個實體主機(physicalmachine),諸如服務器 (server)。每ー實體主機可容納多個虛擬主機在其上運行。數(shù)據(jù)中心的用戶可租借虛擬主機執(zhí)行其軟件應用程序。對于數(shù)據(jù)中心的業(yè)者而言,此基于虛擬主機的架構比直接基于實體主機的架構更容易管理且更有效益。具有多個虛擬主機的實體主機可同時服務多個用戶。經(jīng)由虛擬主機比經(jīng)由實體主機更容易實行用戶可用的資源限額。此外,虛擬主機比實體主機更穩(wěn)健,因為虛擬主機可在實體主機發(fā)生故障的情況下遷移至另ー實體主機,而不中斷提供至用戶的服務。對于運行大規(guī)模數(shù)據(jù)中心的業(yè)者而言,電費是ー項沉重的負擔。電カ消耗成本占整個硬件架構的總運營成本的比例可高達20%。時鐘頻率的減小以及處理器的功率管理模式并無太大幫助,因為實體主機的一些組件(諸如存儲器及硬盤)的功率消耗不受時鐘頻率及處理器的功率管理模式影響,節(jié)省電能的最佳方式為完全切斷冗余實體主機的電源。
發(fā)明內容
本發(fā)明提供一種虛擬主機合并方法。所述方法試圖在不使個別虛擬主機的效能降級的情況下使所需實體主機的數(shù)目最小化。換言之,所述方法試圖憑借將虛擬主機合并至最小數(shù)目的存活實體主機上而使待關機的冗余實體主機的數(shù)目最大化。本發(fā)明也提供一種用于虛擬主機合并的管理實體主機。所述管理實體主機執(zhí)行上文提及的虛擬主機合并方法。所述管理實體主機試圖使虛擬主機合并所需的虛擬主機遷移次數(shù)最小化。另外,所述管理實體主機平行遷移虛擬主機,因此使完成所有虛擬主機遷移所需的時間最小化。根據(jù)本發(fā)明的ー實施例,本發(fā)明提供一種虛擬主機合并方法。所述方法由管理實體主機執(zhí)行。一網(wǎng)絡連接所述管理實體主機與多個伺服實體主機(serverphysical machine)。多個虛擬主機在所述伺服實體主機上運行。伺服實體主機提供N種資源且虛擬主機消耗資源。N為預設正整數(shù)。所述方法包含以下步驟。所述管理實體主機將所述伺服實體主機分類為冗余實體主機及存活實體主機,其中在冗余實體主機上運行的虛擬主機可根據(jù)ー交錯 N 維優(yōu)配遞減填充算法(interleaved N-dimensional best-fit decreasing packing algorithm)而成功地遷移至存活實體主機。所述管理實體主機根據(jù)交錯N維優(yōu)配遞減填充算法及網(wǎng)絡拓撲(network topology)決定在所述冗余實體主機上運行的所述虛擬主機至所述存活實體主機的遷移路徑。所述管理實體主機基于所述遷移路徑?jīng)Q定在所述冗余實體主機上運行的所述虛擬主機的平行遷移序列。所述管理實體主機根據(jù)所述平行遷移序列將在所述冗余實體主機上運行的所述虛擬主機平行地遷移至所述存活實體主機。根據(jù)本發(fā)明的另ー實施例,本發(fā)明提供ー種管理實體主機。所述管理實體主機包含一存儲器及耦接至所述存儲器的ー處理器。所述處理器執(zhí)行上文提及的虛擬主機合并方法,且將所述方法的步驟所產(chǎn)生并由所述步驟使用的數(shù)據(jù)(諸如遷移路徑及平行遷移序列)儲存在存儲器中。一種虛擬主機合并方法,由一管理實體主機執(zhí)行,其中一網(wǎng)絡連接所述管理實體主機與多個伺服實體主機,多個虛擬主機在所述伺服實體主機上運行,所述伺服實體主機提供N種資源且所述虛擬主機消耗所述資源,N為預設正整數(shù),其特征在干,所述方法包括所述管理實體主機將所述伺服實體主機分類為冗余實體主機及存活實體主機,其中在所述冗余實體主機上運行的所述虛擬主機可根據(jù)ー交錯N維優(yōu)配遞減填充算法而成功地遷移至所述存活實體主機;所述管理實體主機根據(jù)所述交錯N維優(yōu)配遞減填充算法及所述網(wǎng)絡的形態(tài)決定在所述冗余實體主機上運行的所述虛擬主機至所述存活實體主機的遷移路徑;所述管理實體主機基于所述遷移路徑?jīng)Q定在所述冗余實體主機上運行的所述虛擬主機的平行遷移序列;以及所述管理實體主機根據(jù)所述平行遷移序列將在所述冗余實體主機上運行的所述虛擬主機平行地遷移至所述存活實體主機。所述的方法,還包括根據(jù)ー維優(yōu)配遞減填充算法針對每ー個i估計容納所有所述虛擬主機的第i資源的消耗所需的所述伺服實體主機的數(shù)量Mi,其中1 <= i <=N;以及當M*K< P時觸發(fā)所述虛擬主機合井,其中M為所有Mi中的最大值,K為預設常數(shù)且P為所述伺服實體主機的數(shù)目。所述的方法,其中所述對應于Mi的ー維優(yōu)配遞減填充算法包括假定所有所述伺服實體主機皆為空機,其中無虛擬主機;將所有所述虛擬主機置于ー隊列中,并按所述第i資源的所述消耗的遞減次序將所述隊列中的所述虛擬主機排序;自所述隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所述第i資源的所述消耗的具有所述第i資源的最小剰余容量的所述伺服實體主機;自所述所指派伺服實體主機的所述第i資源的所述剩余容量中減去所述所取出虛擬主機的所述第i資源的所述消耗,憑此更新所述所指派伺服實體主機的所述第i資源的所述剩余容量;以及若所述隊列不為空則返回自所述隊列取出第一個虛擬主機的步驟,其中Mi為在所述ー維優(yōu)配遞減填充算法中用于容納所有所述虛擬主機的所述伺服實體主機的數(shù)目。所述的方法,其中將所述伺服實體主機分類的步驟包括按資源利用率次序將所有所述伺服實體主機排序;將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機,且將所述排序后的伺服實體主機的后面(p-i)個分類為所述存活實體主機,其中i為整數(shù)且1 < = i < = P,P為所有所述伺服實體主機的數(shù)目;以及
根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。所述的方法,其中將所述伺服實體主機分類的步驟包括將所有所述伺服實體主機排序,其中依照所述排序次序,具有至少ー個滿足ー預設條件的虛擬主機的所述伺服實體主機位于無滿足所述預設條件的虛擬主機的所述伺服實體主機之后,且無滿足所述預設條件的虛擬主機的所述伺服實體主機按資源利用率次序排序;將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機,且將所述排序后的伺服實體主機之后面(p-i)個分類為所述存活實體主機,其中i為整數(shù)且1 < = i < = P,P為所有所述伺服實體主機的數(shù)目;以及根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。所述的方法,其中所述交錯N維優(yōu)配遞減填充算法包括基于所有所述虛擬主機的所述資源的消耗,計算對應于每一所述資源的一標準化因子;基于所述標準化因子,計算在所述冗余實體主機上運行的每一所述虛擬主機的所述資源的標準化消耗以及在所述冗余實體主機上運行的每一所述虛擬主機的代表性消耗;根據(jù)每一所述虛擬主機的所述資源的所述標準化消耗,將在所述冗余實體主機上運行的每一所述虛擬主機置于ー或多個隊列中;按所述代表性消耗的遞減次序將每一所述隊列中的所述虛擬主機排序;檢查所有所述隊列,若所有所述隊列為空,則傳回一成功結果;根據(jù)對應于所述資源的剰余容量的標準化總和,自所述隊列中選擇ー隊列;自所述選定隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;若不存在可容納所述所取出的虛擬主機的所有所述資源的所述消耗的存活實體主機,則傳回一失敗結果;以及返回至檢查所有所述隊列的步驟。所述的方法,其中自所有所述存活實體主機的所述第i資源的容量之和中減去所有所述虛擬主機的所述第i資源的所述消耗之和,接著將所述減法的結果除以所述存活實體主機的數(shù)目, 憑此計算對應于所述第i資源的所述標準化因子,其中i為整數(shù)且1 < = i < = N ;將每一所述虛擬主機的所述第i資源的所述消耗除以對應于所述第i資源的所述標準化因子,憑此計算在所述冗余實體主機上運行的每一所述虛擬主機的所述第i資源的所述標準化消耗;在所述冗余實體主機上運行的每一所述虛擬主機的所述代表性消耗為該虛擬主機的所述資源的所述標準化消耗中的最大標準化消耗;將所述存活實體主機的所述第i資源的所述剩余容量之和除以對應于所述第i資源的所述標準化因子,憑此計算對應于所述第i資源的剰余容量的所述標準化總和。所述的方法,其中總共存在N個隊列,所述N個隊列與所述N種資源之間存在ー對一映射關系,且所述將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中的步驟包括將在所述冗余實體主機上運行的每一所述虛擬主機置于對應干與該虛擬主機的所述代表性消耗對應的所述資源的所述隊列中;且自所述隊列中選擇ー隊列的步驟包括對應于與最小的所述剩余容量標準化總和對應的所述資源的所述隊列除外,定義包括其余N-I個所述隊列的一集合;以及在所述集合中的每ー隊列的第一個虛擬主機之中,選擇具有最大的代表性消耗的第一個虛擬主機所在的隊列。所述的方法,其中總共存在N* (N-I)個隊列,每一所述隊列對應于所述N種資源中的兩者的不同排列,且所述將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中的步驟包括對于在所述冗余實體主機上運行的每一所述虛擬主機,當該虛擬主機的所述第i 資源的所述標準化消耗大于該虛擬主機的第j資源的所述標準化消耗時,將該虛擬主機置于對應于先是所述第i資源隨后是所述第j資源的排列的隊列中,其中j為整數(shù),1 <= j <=N且j不等于i ;且自所述隊列中選擇ー隊列的步驟其特征在干,包括選擇對應于先是與最大的所述剩余容量標準化總和對應的資源隨后是與最小的所述剩余容量標準化總和對應的資源的排列的隊列;且自所述選定隊列中取出第一個虛擬主機的步驟包括自所有所述隊列移除所述所取出的虛擬主機。所述的方法,其中指派所述所取出的虛擬主機的步驟包括計算每一所述存活實體主機的所述代表性剰余容量,其中每一所述存活實體主機的所述代表性剰余容量為該存活實體主機的所述資源的標準化剰余容量的最小值,該存活實體主機的每一所述資源的所述標準化剰余容量是將該存活實體主機的該資源的所述剩余容量除以對應于該資源的所述標準化因子而計算產(chǎn)生;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;以及自所述所指派實體主機的所述資源的所述剩余容量中減去所述所取出虛擬主機的所述資源的所述消耗,憑此更新所述所指派實體主機的所述資源的所述剩余容量。所述的方法,其中每一所述遷移路徑對應于在所述冗余實體主機上運行的虛擬主機其中之一,該遷移路徑的起點為該虛擬主機在上面運行的所述冗余實體主機,且該遷移路徑的目的地為所述交錯N維優(yōu)配遞減填充算法所指派的對應于該虛擬主機的所述存活實體主機,該遷移路徑的其余部分是根據(jù)所述網(wǎng)絡的所述形態(tài)而決定。所述的方法,其中決定所述平行遷移序列的步驟包括定義ー沖突圖,其中所述沖突圖的每ー節(jié)點表示所述遷移路徑其中之一,每一所述節(jié)點具有ー權重表示將對應于該節(jié)點的所述虛擬主機遷移至對應的所述存活實體主機CN 102541244 A
所需的估計時間,若對應于所述沖突圖其中兩個節(jié)點的所述兩個遷移路徑有任何部分重迭,則所述兩個節(jié)點之間存在ー聯(lián)機;在所述沖突圖上使用一最大節(jié)點著色算法來找出ー種所述節(jié)點的著色方式,使得所述著色方式的各顏色的權重總和在所有可能的著色方式之中為最小,其中每一所述顏色的所述權重為該顏色的所述節(jié)點的所述權重的最大值;以及將對應于每一所述顏色的所述節(jié)點的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中。所述的方法,其中決定所述平行遷移序列的步驟包括根據(jù)所述遷移路徑及所述網(wǎng)絡的所述形態(tài)定義一有向圖;在所述有向圖中找出不相交路徑的一最大集合,且將對應于所述最大集合的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;自所述有向圖移除對應于所述最大集合的聯(lián)機;以及若所述有向圖中仍存在至少ー個聯(lián)機,則返回找出所述最大集合的步驟。所述的方法,其中決定所述平行遷移序列的步驟包括根據(jù)所述遷移路徑定義一二分圖;在所述二分圖中找出一最大匹配,且將對應于所述最大匹配的所述遷移路徑作為 ー批遷移路徑添加至所述平行遷移序列中;自所述二分圖移除對應于所述最大匹配的聯(lián)機;以及若所述二分圖中仍存在至少ー個聯(lián)機,則返回找出所述最大匹配的步驟。所述的方法,其中遷移在所述冗余實體主機上運行的所述虛擬主機的步驟包括選擇所述平行遷移序列中的第一批遷移路徑;根據(jù)所述選定批次的所述遷移路徑將對應于所述選定批次的所述虛擬主機平行遷移至所述存活實體主機;以及若在所述選定批次之后存在至少ー批遷移路徑,則選擇所述平行遷移序列中的下一批遷移路徑并返回至遷移對應于所述選定批次的所述虛擬主機的步驟。一種用于虛擬主機合并的管理實體主機,其中一網(wǎng)絡連接所述管理實體主機與多個伺服實體主機,多個虛擬主機在所述伺服實體主機上運行,所述伺服實體主機提供N種資源且所述虛擬主機消耗所述資源,N為預設正整數(shù),所述管理實體主機包括一存儲器及耦接至所述存儲器的ー處理器,其中所述處理器將所述伺服實體主機分類為冗余實體主機及存活實體主機,其中在所述冗余實體主機上運行的所述虛擬主機可根據(jù)ー交錯N維優(yōu)配遞減填充算法而成功地遷移至所述存活實體主機;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法及所述網(wǎng)絡的形態(tài)決定在所述冗余實體主機上運行的所述虛擬主機至所述存活實體主機的遷移路徑;所述處理器將所述遷移路徑儲存于所述存儲器中;所述處理器基于所述遷移路徑?jīng)Q定在所述冗余實體主機上運行的所述虛擬主機的一平行遷移序列,且將所述平行遷移序列儲存于所述存儲器中;所述處理器根據(jù)所述平行遷移序列將在所述冗余實體主機上運行的所述虛擬主機平行地遷移至所述存活實體主機。
所述的管理實體主機,其中所述處理器根據(jù)ー維優(yōu)配遞減填充算法針對每ー個i 估計容納所有所述虛擬主機的第i資源的消耗所需的所述伺服實體主機的數(shù)量Mi,l < = i く= N ;當< P時所述處理器觸發(fā)所述虛擬主機合井,M為所有Mi中的最大值,K為預設常數(shù)且P為所述伺服實體主機的數(shù)目。所述的管理實體主機,其中所述對應于Mi的ー維優(yōu)配遞減填充算法包括假定所有所述伺服實體主機皆為空機,其中無虛擬主機;將所有所述虛擬主機置于ー隊列中,并按所述第i資源的所述消耗的遞減次序將所述隊列中的所述虛擬主機排序;自所述隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所述第i資源的所述消耗的具有所述第i資源的最小剰余容量的所述伺服實體主機;自所述所指派伺服實體主機的所述第i資源的所述剩余容量中減去所述所取出虛擬主機的所述第i資源的所述消耗,憑此更新所述所指派伺服實體主機的所述第i資源的所述剩余容量;以及若所述隊列不為空則返回自所述隊列取出第一個虛擬主機的步驟,其中Mi為在所述ー維優(yōu)配遞減填充算法中用于容納所有所述虛擬主機的所述伺服實體主機的數(shù)目。所述的管理實體主機,其中為了將所述伺服實體主機分類,所述處理器按資源利用率次序將所有所述伺服實體主機排序;所述處理器將所述排序后的伺服實體主機的前i 個分類為所述冗余實體主機且將所述排序后的伺服實體主機的后面(P_i)個分類為所述存活實體主機,i為整數(shù)且1 < = i < = P,P為所有所述伺服實體主機的數(shù)目;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。所述的管理實體主機,其中為了將所述伺服實體主機分類,所述處理器將所有所述伺服實體主機排序,依照所述排序次序,具有至少ー個滿足ー預設條件的虛擬主機的所述伺服實體主機位于無滿足所述預設條件的虛擬主機的所述伺服實體主機之后,且無滿足所述預設條件的虛擬主機的所述伺服實體主機按資源利用率次序排序;所述處理器將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機且將所述排序后的伺服實體主機的后面(P-i)個分類為所述存活實體主機,i為整數(shù)且1 < = i < = P,P為所有所述伺服實體主機的數(shù)目;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。所述的管理實體主機,其中所述交錯N維優(yōu)配遞減填充算法包括基于所有所述虛擬主機的所述資源的消耗,計算對應于每一所述資源的一標準化因子;基于所述標準化因子,計算在所述冗余實體主機上運行的每一所述虛擬主機的所述資源的標準化消耗以及在所述冗余實體主機上運行的每一所述虛擬主機的代表性消耗;根據(jù)每一所述虛擬主機的所述資源的所述標準化消耗,將在所述冗余實體主機上運行的每一所述虛擬主機置于ー或多個隊列中;
按所述代表性消耗的遞減次序將每一所述隊列中的所述虛擬主機排序;檢查所有所述隊列,若所有所述隊列為空,則傳回一成功結果;根據(jù)對應于所述資源的剰余容量的標準化總和,自所述隊列中選擇ー隊列;自所述選定隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;若不存在可容納所述所取出的虛擬主機的所有所述資源的所述消耗的存活實體主機,則傳回一失敗結果;以及返回至檢查所有所述隊列的步驟。所述的管理實體主機,其中所述處理器自所有所述存活實體主機的所述第i資源的容量之和中減去所有所述虛擬主機的所述第i資源的所述消耗之和,接著所述處理器將所述減法的結果除以所述存活實體主機的數(shù)目,憑此計算對應于所述第i資源的所述標準化因子,i為整數(shù)且1 < = i < = N ;所述處理器將每一所述虛擬主機的所述第i資源的所述消耗除以對應于所述第i資源的所述標準化因子,憑此計算在所述冗余實體主機上運行的每一所述虛擬主機的所述第i資源的所述標準化消耗;在所述冗余實體主機上運行的每一所述虛擬主機的所述代表性消耗為該虛擬主機的所述資源的所述標準化消耗中的最大標準化消耗;所述處理器將所述存活實體主機的所述第i資源的所述剩余容量之和除以對應于所述第i資源的所述標準化因子,憑此計算對應于所述第i資源的剰余容量的所述標準化總和。所述的管理實體主機,其中總共存在N個隊列,且所述N個隊列與所述N種資源之間存在一対一映射關系;當將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中吋,所述處理器將在所述冗余實體主機上運行的每一所述虛擬主機置于對應干與該虛擬主機的所述代表性消耗對應的所述資源的所述隊列中;當自所述多個隊列中選擇所述隊列吋,所述處理器定義ー集合,所述集合包括所述N-I個隊列,對應于與最小的所述剩余容量標準化總和對應的所述資源的所述隊列除外;且所述處理器在所述集合中的每ー隊列的第一個虛擬主機之中,選擇具有最大的代表性消耗的第一個虛擬主機所在的隊列。所述的管理實體主機,其中總共存在N*(N_1)個隊列,且每一所述隊列對應于所述N種資源中的兩者的不同排列;當將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中吋,對于在所述冗余實體主機上運行的每一所述虛擬主機,在該虛擬主機的所述第i資源的所述標準化消耗大于該虛擬主機的第j資源的所述標準化消耗吋,所述處理器將該虛擬主機置于對應于先是所述第i資源隨后是所述第j資源的排列的隊列中,其中j為整數(shù),1 <= j <= N且 j不等于i ;當自所述多個隊列中選擇所述隊列吋,所述處理器選擇對應于先是與最大的所述剰余容量標準化總和對應的所述資源隨后是與最小的所述剩余容量標準化總和對應的所述資源的排列的隊列;當自所述選定隊列中取出所述第一個虛擬主機吋,所述處理器自所有所述隊列移除所述所取出的虛擬主機。所述的管理實體主機,其中為了指派所述所取出的虛擬主機,所述處理器計算每一所述存活實體主機的所述代表性剰余容量,其中每一所述存活實體主機的所述代表性剩余容量為該存活實體主機的所述資源的標準化剰余容量的最小值;所述處理器將該存活實體主機的每一所述資源的所述剩余容量除以對應于該資源的所述標準化因子,憑此計算該存活實體主機的每一所述資源的所述標準化剰余容量;所述處理器將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剩余容量的所述存活實體主機;所述處理器自所述所指派實體主機的所述資源的所述剩余容量中減去所述所取出虛擬主機的所述資源的所述消耗,憑此更新所述所指派實體主機的所述資源的所述剩余容量。所述的管理實體主機,其中每一所述遷移路徑對應于在所述冗余實體主機上運行的虛擬主機其中之一,該遷移路徑的起點為該虛擬主機在上面運行的所述冗余實體主機, 且該遷移路徑的目的地為所述交錯N維優(yōu)配遞減填充算法所指派的對應于該虛擬主機的所述存活實體主機,所述處理器根據(jù)所述網(wǎng)絡的所述形態(tài)決定該遷移路徑的其余部分。所述的管理實體主機,其中為了決定所述平行遷移序列,所述處理器定義ー沖突圖并將所述沖突圖儲存于所述存儲器中,其中所述沖突圖的每ー節(jié)點表示所述遷移路徑其中之一,每一所述節(jié)點具有ー權重表示將對應于該節(jié)點的所述虛擬主機遷移至對應的所述存活實體主機所需的估計時間,若對應于所述沖突圖其中兩個節(jié)點的所述兩個遷移路徑有任何部分重迭,則所述兩個節(jié)點之間存在ー聯(lián)機;所述處理器在所述沖突圖上使用一最大節(jié)點著色算法來找出ー種所述節(jié)點的著色方式,使得所述著色方式的各顏色的權重總和在所有可能的著色方式之中為最小,其中每一所述顏色的所述權重為該顏色的所述節(jié)點的所述權重的最大值;所述處理器將對應于每一所述顏色的所述節(jié)點的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中。所述的管理實體主機,其中為了決定所述平行遷移序列,所述處理器根據(jù)所述遷移路徑及所述網(wǎng)絡的所述形態(tài)定義一有向圖,并將所述有向圖儲存于所述存儲器中;所述處理器在所述有向圖中找出不相交路徑的一最大集合,且將對應于所述最大集合的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;所述處理器自所述有向圖移除對應于所述最大集合的聯(lián)機;若所述有向圖中仍存在至少ー個聯(lián)機,則所述處理器返回找出所述最大集合的步驟。所述的管理實體主機,其中為了決定所述平行遷移序列,所述處理器根據(jù)所述遷移路徑定義一二分圖并將所述二分圖儲存于所述存儲器中;所述處理器在所述二分圖中找出一最大匹配,且將對應于所述最大匹配的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;所述處理器自所述二分圖移除對應于所述最大匹配的聯(lián)機;若所述二分圖中仍存在至少ー個聯(lián)機,則所述處理器返回找出所述最大匹配的步驟。所述的管理實體主機,其中為了遷移在所述冗余實體主機上運行的所述虛擬主機,所述處理器選擇所述平行遷移序列中的第一批遷移路徑;所述處理器根據(jù)所述選定批次的所述遷移路徑將對應于所述選定批次的所述虛擬主機平行遷移至所述存活實體主機; 若在所述選定批次之后存在至少ー批遷移路徑,則所述處理器選擇所述平行遷移序列中的下一批遷移路徑,并返回至遷移對應于所述選定批次的所述虛擬主機的步驟。
16
概括而言,以上實施例所提供的用于虛擬主機合并的方法及管理實體主機嘗試在不使個別虛擬主機的效能降級的情況下將可關機的冗余實體主機數(shù)目最大化。所述方法及管理實體主機嘗試憑借平行化遷移序列而將完成所有虛擬主機遷移所需的時間最小化。所述方法及管理實體主機使用二分搜尋法以找出存活實體主機的最佳數(shù)目。所述方法及管理實體主機將具有輕負載的伺服實體主機分類為冗余實體主機以盡量減少待遷移的虛擬主機數(shù)目。此外,所述方法及管理實體主機以交錯優(yōu)配遞減方式將虛擬主機填充至存活實體主機中以取得更佳的合并結果,諸如負載平衡。
圖1為本發(fā)明一實施例的數(shù)據(jù)中心硬件架構的示意圖;圖2為本發(fā)明一實施例用于虛擬主機合并的管理實體主機的示意圖;圖3為本發(fā)明一實施例虛擬主機合并方法的流程圖;圖4至圖10為本發(fā)明實施例的虛擬主機合并方法的更詳細流程圖;圖IlA至圖IlH為本發(fā)明一實施例的平行遷移序列產(chǎn)生ー實例的示意圖。符號標識110:網(wǎng)絡120:管理實體主機122 處理器 124:存儲器
0133]130伺服實體主機0134]310--360流程步驟0135]410--460流程步驟0136]510--590流程步驟0137]605--650流程步驟0138]710--730流程步驟0139]810--850流程步驟0140]910--950流程步驟1010-1040 流程步驟
具體實施例方式圖1為本發(fā)明ー實施例數(shù)據(jù)中心的硬件架構的示意圖。在所述架構中,網(wǎng)絡110連接管理實體主機120與多個伺服實體主機130。每ー伺服實體主機130可容納在其上運行之一或多個虛擬主機。每ー伺服實體主機提供N種不同資源,諸如處理器周期(processor cycles)、存儲器、網(wǎng)絡頻寬等。N為預設正整數(shù)。虛擬主機利用且消耗由實體主機提供的資源。本實施例的目標之ー是盡可能將所有虛擬主機合并至數(shù)量最少的實體主機上,并使遷移虛擬主機所需的時間最小化。在虛擬主機合并之后關閉冗余實體主機的電源原則上有助于減少數(shù)據(jù)中心的電カ成本。此實施例的虛擬主機合并在某種程度上類似于已知的向量裝箱(vector binpacking)問題。每ー伺服實體主機130可用ー個N維向量表示,此向量的每ー元素對應于伺服實體主機所提供的一種資源的剰余容量。類似地,每一虛擬主機可用ー個N維向量表示,此向量的每ー元素對應于虛擬主機的一種資源的消耗。上述虛擬主機合并問題的輸入為表示伺服實體主機及虛擬主機的向量,以及伺服實體主機與虛擬主機之間的容納關系(accommodation mapping)的詳細記錄。為了解決虛擬主機合并問題,所有伺服實體主機必須分類為冗余實體主機及存活實體主機,接著在冗余實體主機上運行的虛擬主機必須遷移至存活實體主機。為獲得最大效率,待關閉的冗余實體主機數(shù)目應該最大化,而被遷移的虛擬主機數(shù)目以及遷移虛擬主機所需的時間應該最小化。已知向量裝箱問題與本實施例的虛擬主機合并問題之間存在許多差異。第一,已知向量裝箱問題中的箱子起初均為空箱,而此實施例的虛擬主機合并問題中的伺服實體主機起初已經(jīng)由在其上運行的虛擬主機部分地填充。每一存活實體主機的每ー資源的初始剩余容量可能會不同。第二,此實施例的虛擬主機合并考慮到負載平衡。存活實體主機最終剰余容量應該盡可能相等。第三,某些虛擬主機可能因為其沉重負載而且不能承受遷移所導致的效能下降而不應遷移。此實施例的虛擬主機合并考慮到此類虛擬主機。第四,此實施例的虛擬主機合并憑借將遷移序列平行化而使遷移虛擬主機所需的時間最小化。圖2為圖1中的管理實體主機120的示意圖。管理實體主機120包含存儲器IM 及耦接至存儲器124的處理器122。處理器122執(zhí)行圖3至圖10中說明的虛擬主機合并方法的每ー步驟以及所有計算。處理器122將上文提及的虛擬主機合并方法的步驟所使用的以及在所述步驟中產(chǎn)生的數(shù)據(jù)儲存在存儲器124中。舉例而言,存儲器IM可儲存表示伺服實體主機及虛擬主機的上文提及的N維向量、伺服實體主機與虛擬主機之間的容納關系的詳細記錄、以及上文提及的虛擬主機合并方法所產(chǎn)生的隊列、遷移路徑、圖形及平行遷移序列。圖3為本發(fā)明此實施例中虛擬主機合并方法的流程圖。首先,管理實體主機檢查是否適宜觸發(fā)虛擬主機合并(步驟310)。若此時不適合觸發(fā)虛擬主機合并,則流程結束。 若此時適合觸發(fā)虛擬主機合并,則管理實體主機將伺服實體主機分類為冗余實體主機及存活實體主機,使得存活實體主機可容納所有虛擬主機,剩下的冗余實體主機會被關閉電源以節(jié)省電カ(步驟320)。管理實體主機根據(jù)ー個交錯N維優(yōu)配遞減填充算法及網(wǎng)絡形態(tài)決定在冗余實體主機上運行的虛擬主機至存活實體主機的遷移路徑(步驟330)。所述管理實體主機基于所述遷移路徑?jīng)Q定在冗余實體主機上運行的虛擬主機的平行遷移序列(步驟 340)。所述管理實體主機根據(jù)平行遷移序列將在冗余實體主機上運行的虛擬主機平行地遷移至存活實體主機(步驟350)。接下來,管理實體主機切斷冗余實體主機的電源以節(jié)省電力成本(步驟360)。稍后將說明上文提及的各步驟的細節(jié)。在步驟310中,針對所有i計算一系列數(shù)字(M1、M2.....MN),其中1 <= i < =
N。數(shù)字Mi為根據(jù)一個ー維優(yōu)配遞減填充算法(one-dimensionalbest-fit decreasing packing algorithm)所推算的容納所有虛擬主機的第i資源的消耗所需的伺服實體主機的估計數(shù)量。舉例而言,若資源中的第三者為存儲器,則數(shù)字M3為根據(jù)ー維優(yōu)配遞減填充算法所估計的容納所有虛擬主機存儲器的總消耗所需的伺服實體主機的數(shù)量。接下來,計
算數(shù)字M,其中M = maX{Ml、M2.....匪}。管理實體主機在M*K < P時觸發(fā)虛擬主機合井,
其中K為預設常數(shù)且P為伺服實體主機的數(shù)目。由于ー維優(yōu)配遞減填充算法僅考慮伺服實體主機的單ー資源的資源容量以及虛擬主機的單ー資源的資源消耗,所以估計數(shù)量Mi稍為不準確。常數(shù)K的ー個目的為補償估計誤差。常數(shù)K的另一目的為設定用于觸發(fā)虛擬主機合并的臨限值。圖4為對應于Mi的上文提及的ー維優(yōu)配遞減填充算法的流程圖。首先,假定所有伺服實體主機皆為空機,其中都沒有虛擬主機在運行(步驟410)。將所有虛擬主機置于隊列中并按第i種資源的消耗的遞減次序將隊列中的虛擬主機排序(步驟420)。接下來,自隊列中取出第一個虛擬主機(步驟430)。將所取出的虛擬主機指派至可容納所取出的虛擬主機的第i資源的消耗的具有最小的第i資源剩余容量的伺服實體主機(步驟440)。步驟440中僅考慮伺服實體主機的第i資源的容量及所取出的虛擬主機的第i資源的消耗, 而完全忽略其它資源的容量及其它資源的消耗。一個伺服實體主機的一種資源的初始剩余容量等于此伺服實體主機的此資源的滿載容量。在本發(fā)明的該實施例中,將伺服實體主機的每ー種資源的滿載容量定義為此伺服實體主機的同一種資源的總量的一個預設百分比。此預設百分比未必是100%。實驗已證明,當伺服實體主機的資源的利用率接近100%吋,伺服實體主機的電カ消耗會呈指數(shù)式增長。對于每一伺服實體主機的每ー種資源,都有ー個理想臨限值,諸如70^,80%或90%, 只要資源利用率不超過對應的理想臨限值,電カ消耗就不會呈現(xiàn)指數(shù)式增長。伺服實體主機的理想臨限值可憑借實驗獲得。上文提及的每ー伺服實體主機的每ー資源的預設百分比等于此伺服實體主機的同一種資源的理想臨限值。接下來,自所指派伺服實體主機的第i資源的剰余容量減去所取出虛擬主機的第 i資源的消耗,以更新所指派伺服實體主機的第i資源的剰余容量(步驟450)。接下來,檢查隊列是否為空(步驟460)。若隊列不為空則返回至步驟430。估計數(shù)量Mi為在圖4中說明的對應于第i資源的ー維優(yōu)配遞減填充算法中用于容納所有虛擬主機的伺服實體主機的數(shù)目。圖5為繪示圖3中步驟320中的伺服實體主機分類的細節(jié)的流程圖。首先,按資源利用率次序將所有伺服實體主機排序(步驟510)。伺服實體主機的資源利用率可以若干方式定義。舉例而言,資源利用率可定義為伺服實體主機的每ー種資源的利用率百分比中的最大值。或者,資源利用率可定義為伺服實體主機的每ー種資源的利用率百分比的總和或平均值。當使用上文提及的資源利用率定義其中之一吋,伺服實體主機必須按資源利用率的遞增次序排序?;蛘?,伺服實體主機的資源利用率可定義為此伺服實體主機的每ー種資源的上文提及的理想臨限值與此伺服實體主機的相同資源的利用率百分比之間的差的總和。當使用此資源利用率定義吋,伺服實體主機必須按資源利用率的遞減次序排序??赡軙袧M足預設的“不可移動”條件的一些虛擬主機,諸如非常忙的虛擬主機或有沉重負載的虛擬主機。在此情況下,此類虛擬主機不應遷移,且具有此類虛擬主機的伺服實體主機應分類為存活實體主機。當存在一或多個滿足預設條件的虛擬主機吋,步驟510 中的排序會稍有不同,使具有至少ー個滿足預設條件的虛擬主機的伺服實體主機的排序次序在無滿足預設條件的虛擬主機的伺服實體主機之后。無滿足預設條件的虛擬主機的伺服實體主機則按如上文論述的資源利用率次序排序。接下來,初始化變數(shù)L及R (步驟520)。用二分搜尋法找出已排序的伺服實體主機中的劃分點,將伺服實體主機分類為冗余實體主機及存活實體主機。變量L表示二分搜尋法搜尋范圍的起點,而變量R表示二分搜尋法搜尋范圍的終點。變量L的初始值為圖3中步驟310中使用的數(shù)目M,且變量R的初始值為所有伺服實體主機的數(shù)目P。接下來,檢查變量R是否大于變量L (步驟530)。若變量R小于或等于變量L,則流程結束。若變量R大于變量L,則計算變量L及R的平均值i (步驟M0)。去掉平均值i 的小數(shù)部分使得i為整數(shù)且1 < = i < = P。接下來,將排序后的伺服實體主機之前i個分類為冗余實體主機,并且將排序后的伺服實體主機的后面(P_i)個分類為存活實體主機 (步驟陽0)。執(zhí)行交錯N維優(yōu)配遞減填充算法以了解在冗余實體主機上運行的虛擬主機是否可成功遷移至存活實體主機(步驟560),且接著檢查交錯N維優(yōu)配遞減填充算法所傳回的結果(步驟570)。若所傳回的結果為成功,則將變量L設定為Hl (步驟580)并返回至步驟530。若所傳回的結果為失敗,則將變量R設定為i (步驟590)并返回至步驟530。步驟530-590的回路中的二分搜尋法可根據(jù)交錯N維優(yōu)配遞減填充算法找出可以使在冗余實體主機上運行的虛擬主機成功遷移至存活實體主機的最大i。冗余實體主機及存活實體主機的最終劃分是由步驟550的最后一次執(zhí)行所決定。圖3的步驟330的遷移路徑是由步驟530-590的回路中交錯N維優(yōu)配遞減填充算法的最后一次成功執(zhí)行所決定。圖6為圖5的步驟560所執(zhí)行的交錯N維優(yōu)配遞減填充算法的流程圖。首先,基于所有虛擬主機的資源的消耗計算對應于每一資源的標準化因子(步驟60幻。自所有存活實體主機的第i資源的容量總和中減去所有虛擬主機的第i資源的消耗總和,接著將上述減法結果除以存活實體主機的數(shù)目,憑此計算對應于第i資源的標準化因子,其中i為整數(shù)且 1 <= i <= N。接下來,基于標準化因子計算在冗余實體主機上運行的每一虛擬主機的資源的標準化消耗以及在冗余實體主機上運行的每一虛擬主機的代表性消耗(步驟607)。對于在冗余實體主機上運行的任一虛擬主機,可將此虛擬主機的第i資源的消耗除以對應于第i資源的標準化因子,以計算此虛擬主機的第i資源的標準化消耗。舉例而言,若一虛擬主機的
資源消耗的N維向量為(vl、v2.....vN),則此虛擬主機的資源的標準化消耗為(ν1/η1、ν2/
n2.....νΝ/ηΝ),其中ni為對應于第i資源的標準化因子,1 < = i < = N。在冗余實體主
機上運行的每一虛擬主機的代表性消耗為此虛擬主機的所有資源的標準化消耗中的最大標準化消耗。舉例而言,若標準化消耗v3/n3為一虛擬主機的標準化消耗的N維向量(vl/
nUv2/n2.....νΝ/ηΝ)其中的最大值,則標準化消耗v3/n3為此此虛擬主機的代表性消耗。
代表性消耗表示虛擬主機的整體資源消耗。接下來,根據(jù)每一虛擬主機的資源的標準化消耗,將在冗余實體主機上運行的每一虛擬主機置于ー或多個隊列中(步驟610)。上述隊列總共有N個,且這N個隊列與N種資源之間存在一対一映射關系。將在冗余實體主機上運行的每一虛擬主機置于對應于與此虛擬主機的代表性消耗相對應的資源的隊列中。舉例而言,若某一虛擬主機的代表性消耗為此虛擬主機的第二種資源的標準化消耗,則將此虛擬主機置于對應于N種資源中的第二種資源的第二隊列中。每ー個虛擬主機置于ー個隊列中。接下來,按代表性消耗的遞減次序將每ー隊列中的虛擬主機排序(步驟61 。換言之,第i隊列中的虛擬主機按對應于第i資源的標準化消耗vi/ni的遞減次序排序。接下來,檢查所有隊列以了解是否所有隊列為空(步驟620)。若所有隊列為空,則表示在冗余實體主機上運行的所有虛擬主機已成功地填充至存活實體主機中,傳回成功結果(步驟625)。否則,根據(jù)對應于上述資源的剰余容量的標準化總和而自所述隊列中選擇 ー隊列(步驟630)。為了自所述隊列中選擇ー隊列,管理實體主機的處理器將每ー種資源的所有存活實體主機的剰余容量總和除以對應于此資源的標準化因子,憑此計算對應于每ー種資源的剰余容量的標準化總和。舉例而言,對應于第i資源的剰余容量的標準化總和是將存活實體主機的第i資源的剰余容量之和除以對應于第i資源的標準化因子ni而計算產(chǎn)生。管理實體主機的處理器可定義ー個包括N-I個隊列的集合,除了對應于與最小的所述剩余容量標準化總和對應的資源的隊列以外,此集合包括其余的N-I個隊列。管理實體主機的處理器在此集合中的每ー個隊列的第一個虛擬主機之中,選擇具有最大的代表性消耗的第一個虛擬主機所在的隊列。接下來,自選定的隊列中取出第一個虛擬主機(步驟63 。上文提及的選擇準則保證上述選定的隊列非空。上文提及的隊列的交錯選擇確保了將虛擬主機平衡地填充至存活實體主機中。接下來,檢查以了解是否存在任何可容納所取出虛擬主機的所有資源的消耗的存活實體主機(步驟640)。若不存在可容納所取出虛擬主機的所有資源的消耗的存活實體主機,則傳回失敗結果(步驟650)。否則,將所取出虛擬主機指派至可容納所取出虛擬主機的所有資源的消耗的具有最小代表性剰余容量的存活實體主機(步驟64 并返回至步驟620。為了指派所取出的虛擬主機,管理實體主機的處理器必須計算每一存活實體主機的代表性剰余容量。每一存活實體主機的代表性剰余容量為此實體主機的所有資源的標準化剰余容量其中的最小值。若要計算某一個實體主機的某一種資源的標準化剰余容量,可將此實體主機的此資源的剰余容量除以對應于此資源的標準化因子。舉例而言,若某ー個存活實體主機的資源的剰余容量的N維向量為(pl,p2,...,pN),則此實體主機的資源的標準化剰余容量為(pl/nl, ρ2/η2, · · ·,pN/nN),其中ni為對應于第i資源的標準化因子, 1 < = i < = N。此實體主機的代表性剰余容量為標準化剰余容量(pl/nl,p2/n2,. . .,pN/ nN)其中的最小值。將步驟635中取出的虛擬主機指派至可容納所取出的虛擬主機的所有資源的消耗的具有最小代表性剰余容量的存活實體主機。此優(yōu)配策略有助于平衡虛擬主機在存活實體主機上的負載分布。管理實體主機的處理器會自所指派的實體主機的資源的剰余容量中減去所取出的虛擬主機的資源消耗,以更新所指派的實體主機的資源的剩余容里。圖6的交錯N維優(yōu)配遞減填充算法具有兩個可選實施方案。第一可選方案已在上文中論述。下文描述第二可選方案。第二可選方案在步驟610、630及635中不同于第一可選方案。在步驟610中,總共存在N*(N-1)個隊列。每ー隊列對應于N種資源中的兩者的不同排列。舉例而言,當N = 3且資源為處理器周期、存儲器及網(wǎng)絡頻寬時,三種資源中的任意兩者共有六種不同排列, 即{處理器,存儲器}、{處理器,網(wǎng)絡}、{存儲器,處理器}、{存儲器,網(wǎng)絡}、{網(wǎng)絡,處理器}及{網(wǎng)絡,存儲器}。上文提及的范例中存在六個隊列,且六個隊列與六種排列之間存在一対一映射關系。對于在冗余實體主機上運行的每ー個虛擬主機,只要此虛擬主機的第i 資源的標準化消耗大于第j資源的標準化消耗,就會被置于對應于先是第i資源隨后是第 j資源的排列的隊列中。其中i及j均為整數(shù),l<=i<=N,l<=j<=Nii不等于j。舉例而言,若某一虛擬主機的網(wǎng)絡頻寬的標準化消耗大于虛擬主機的存儲器的標準化消耗,則虛擬主機被置于對應于{網(wǎng)絡,存儲器}排列的隊列中。在第二可選方案中,ー個虛擬主機可被置于多個隊列中,因為ー個虛擬主機可能同時滿足多個隊列的準則。在步驟630中,管理實體主機的處理器選擇對應于先是與最大的剰余容量標準化總和對應的資源隨后是與最小的剰余容量標準化總和對應的資源的排列的隊列。舉例而言,在每ー資源的剰余容量標準化總和中,若處理器周期的剰余容量標準化總和為最大而且網(wǎng)絡頻寬的剰余容量標準化總和為最小,則管理實體主機的處理器選擇對應于{處理器,網(wǎng)絡}排列的隊列。第二可選方案中隊列的交錯選擇也可保證選定的隊列非空。在步驟635中,除了自選定隊列中取出第一個虛擬主機外,管理實體主機的處理器也自所有隊列移除所取出的虛擬主機,因為所取出的虛擬主機也可能存在于其它隊列中。圖6中的其它步驟在第一可選方案及第ニ可選方案兩者之中皆相同。在冗余實體主機上運行的虛擬主機至存活實體主機的遷移路徑是由圖5中步驟 560中執(zhí)行的交錯N維優(yōu)配遞減填充算法的最后一次成功執(zhí)行所決定。每ー遷移路徑對應在冗余實體主機上運行的虛擬主機其中之一。每ー遷移路徑的起點為對應的虛擬主機在上面運行的冗余實體主機,而且此遷移路徑的目的地為交錯N維優(yōu)配遞減填充算法的最后ー 次成功執(zhí)行所指派的對應此虛擬主機的存活實體主機。每ー遷移路徑的其余部分可根據(jù)網(wǎng)絡形態(tài)決定。舉例而言,每ー遷移路徑的其余部分可通過諸如交換器(switch)及路由器 (router)等網(wǎng)絡的路由組件,甚至通過由網(wǎng)絡連接的其它實體主機。圖7為根據(jù)本發(fā)明的ー實施例的圖3中步驟340中決定平行遷移序列的流程圖。 首先,定義ー沖突圖(conflict graph)(步驟710)。沖突圖的每ー節(jié)點表示遷移路徑其中之一。沖突圖的每ー節(jié)點具有ー權重,此權重表示將對應于特定節(jié)點的虛擬主機遷移至對應的存活實體主機所需的估計時間。由于遷移虛擬主機所需的時間主要花費在傳輸虛擬主機的存儲器內容上,所以可基于虛擬主機的存儲器消耗及遷移路徑的網(wǎng)絡頻寬來估計遷移虛擬主機所需的時間。若對應于沖突圖中兩個節(jié)點的兩個遷移路徑有任何部分重迭,則這兩個節(jié)點之間存在ー聯(lián)機。沖突圖中的聯(lián)機意謂對應于聯(lián)機末端處的兩個節(jié)點的兩個虛擬主機由于其遷移路徑的重迭部分而不能平行遷移。接下來,在沖突圖上使用最大節(jié)點著色算法(maximum vertex-coloringalgorithm)來找出ー種包括所有節(jié)點的著色方式,使得此著色方式的各顏色的權重總和在所有可能的著色方式之中為最小(步驟720)。其中每ー顏色的權重定義為此顏色的所有節(jié)點的權重的最大值。舉例而言,若沖突圖中某一些節(jié)點由最大節(jié)點著色算法涂繪為黃色,則黃色的權重為所有黃色節(jié)點的權重的最大值。由于同一聯(lián)機末端處的兩個節(jié)點始終由最大節(jié)點著色算法以不同顔色涂繪,所以對應于同一顏色的節(jié)點的虛擬主機可平行遷移,因為其遷移路徑中不存在沖突。接下來,將對應于每ー種顏色的節(jié)點的遷移路徑作為ー批遷移路徑添加至平行遷移序列中(步驟730)。換言之,將對應于同一顏色的節(jié)點的遷移路徑作為一批遷移路徑添加至平行遷移序列中。將對應于另ー顏色的節(jié)點的遷移路徑作為另ー批遷移路徑添加至平行遷移序列中,依此類推。圖7中的流程可用于決定具有最小遷移時間的平行遷移序列。然而,步驟720的計算復雜度為NP-hard。一個數(shù)據(jù)中心可能具有數(shù)千個虛擬主機等待遷移,步驟720在此情況下可能會花費過多時間。為了加速平行遷移序列的決定,必須簡化此問題。圖8為根據(jù)本發(fā)明的另ー實施例的圖3中步驟340中決定平行遷移序列的流程圖。在此實施例中,憑借假定遷移每一虛擬主機所需的時間相同來簡化問題。首先,根據(jù)遷移路徑及網(wǎng)絡形態(tài)定義一有向圖(directed graph)(步驟810)。有向圖的節(jié)點包含冗余實體主機及存活實體主機,以及(若有必要)諸如交換器及路由器等網(wǎng)絡的路由組件。上述有向圖其中的聯(lián)機是由上述遷移路徑所定義。接下來,在有向圖中找出不相交路徑的最大集合(maximum set of disjointpaths)(步驟 820)。此為演算圖形理論(algorithmic graph theory)中的已知問題,目前已存在許多已知算法,可用在有向圖中找出不相交路徑的最大集合。每ー個不相交路徑的最大集合對應于一組可平行遷移的虛擬主機。接下來,將對應于此不相交路徑的最大集合的遷移路徑作為ー批遷移路徑添加至平行遷移序列中(步驟830)。自有向圖移除對應于此不相交路徑的最大集合的聯(lián)機(步驟840)。檢查以了解是否有向圖中仍存在至少一個聯(lián)機(步驟850)。若有向圖中仍存在至少ー個聯(lián)機,則返回至步驟820。圖9為根據(jù)本發(fā)明的另ー實施例的圖3中步驟340中決定平行遷移序列的流程圖。在此實施例中,憑借假定遷移每一虛擬主機所需的時間相同,而且兩個遷移路徑只要其起點實體主機不同且其目的地實體主機也不同就不重迭,來進一步簡化問題。以上簡化適用于ー些簡單網(wǎng)絡,諸如憑借単一開關連接的多個伺服實體主機。首先,根據(jù)遷移路徑定義 ー個二分圖(bipartite graph)(步驟910)。此二分圖的節(jié)點為冗余實體主機及存活實體主機。若存在自ー冗余實體主機至一存活實體主機的一遷移路徑,則此冗余實體主機與此存活實體主機之間存在ー聯(lián)機。接下來,在二分圖中找出ー個最大匹配(maximum matching)(步驟920)。此也為演算圖形理論中的已知問題,已經(jīng)有許多已知算法可用在二分圖中以找出最大匹配。每ー 最大匹配對應于一組可平行遷移的虛擬主機。接下來,將對應于此最大匹配的遷移路徑作為ー批遷移路徑添加至平行遷移序列中(步驟930)。自二分圖移除對應于此最大匹配的聯(lián)機(步驟940)。檢查以了解是否二分圖中仍存在至少ー個聯(lián)機(步驟950)。若二分圖中仍存在至少ー個聯(lián)機,則返回至步驟920。圖10為繪示根據(jù)本發(fā)明的ー實施例的圖3中步驟350中的平行遷移的流程圖。 所述平行遷移可依據(jù)圖7、圖8或圖9的流程所決定的平行遷移序列。如上文論述,平行遷移序列包含一或多批遷移路徑。首先,選擇平行遷移序列中的第一批遷移路徑(步驟 1010)。根據(jù)選定批次的遷移路徑將對應于選定批次的虛擬主機平行遷移至存活實體主機 (步驟1020)。接下來,檢查以了解在目前的選定批次之后是否存在至少ー批遷移路徑(步驟1030)。若在目前的選定批次之后存在至少ー批遷移路徑,則選擇平行遷移序列中的下一批遷移路徑并返回至步驟1020(步驟1040)。圖IlA至圖IlH說明根據(jù)圖9的流程決定平行遷移序列的ー范例。如圖IlA所示, 此實例包含四個冗余實體主機、三個存活實體主機以及十個待遷移的虛擬主機。圖IlA至圖IlH的二分圖其中的每ー個聯(lián)機對應一條遷移路徑。首先,將對應于圖IlB所示的三個聯(lián)機的遷移路徑作為第一批遷移路徑添加至平行遷移序列。接下來,如圖IlC所示移除三個聯(lián)機。接下來,將對應于圖IlD所示的三個聯(lián)機的遷移路徑作為第二批遷移路徑添加至平行遷移序列。如圖IlE所示移除三個聯(lián)機。接下來,將對應于圖IlF所示的兩個聯(lián)機的遷移路徑作為第三批遷移路徑添加至平行遷移序列。如圖IlG所示移除兩個聯(lián)機。最后,將對應于圖IlH所示的最后兩個聯(lián)機的遷移路徑作為第四批遷移路徑添加至平行遷移序列。概括而言,以上實施例所提供的用于虛擬主機合并的方法及管理實體主機嘗試在不使個別虛擬主機的效能降級的情況下將可關機的冗余實體主機數(shù)目最大化。所述方法及管理實體主機嘗試憑借平行化遷移序列而將完成所有虛擬主機遷移所需的時間最小化。所述方法及管理實體主機使用二分搜尋法以找出存活實體主機的最佳數(shù)目。所述方法及管理實體主機將具有輕負載的伺服實體主機分類為冗余實體主機以盡量減少待遷移的虛擬主機數(shù)目。此外,所述方法及管理實體主機以交錯優(yōu)配遞減方式將虛擬主機填充至存活實體主機中以取得更佳的合并結果,諸如負載平衡。雖然本發(fā)明已以實施例公開如上,然其并非用以限定本發(fā)明,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種虛擬主機合并方法,由一管理實體主機執(zhí)行,其中一網(wǎng)絡連接所述管理實體主機與多個伺服實體主機,多個虛擬主機在所述伺服實體主機上運行,所述伺服實體主機提供N種資源且所述虛擬主機消耗所述資源,N為預設正整數(shù),其特征在干,所述方法包括所述管理實體主機將所述伺服實體主機分類為冗余實體主機及存活實體主機,其中在所述冗余實體主機上運行的所述虛擬主機可根據(jù)ー交錯N維優(yōu)配遞減填充算法而成功地遷移至所述存活實體主機;所述管理實體主機根據(jù)所述交錯N維優(yōu)配遞減填充算法及所述網(wǎng)絡的形態(tài)決定在所述冗余實體主機上運行的所述虛擬主機至所述存活實體主機的遷移路徑;所述管理實體主機基于所述遷移路徑?jīng)Q定在所述冗余實體主機上運行的所述虛擬主機的平行遷移序列;以及所述管理實體主機根據(jù)所述平行遷移序列將在所述冗余實體主機上運行的所述虛擬主機平行地遷移至所述存活實體主機。
2.如權利要求1所述的方法,其特征在于,還包括根據(jù)ー維優(yōu)配遞減填充算法針對每ー個i估計容納所有所述虛擬主機的第i資源的消耗所需的所述伺服實體主機的數(shù)量Mi,其中1 <= i <=N;以及當淋K < P時觸發(fā)所述虛擬主機合井,其中M為所有Mi中的最大值,K為預設常數(shù)且P 為所述伺服實體主機的數(shù)目。
3.如權利要求2所述的方法,其特征在干,所述對應于Mi的ー維優(yōu)配遞減填充算法包括假定所有所述伺服實體主機皆為空機,其中無虛擬主機;將所有所述虛擬主機置于ー隊列中,并按所述第i資源的所述消耗的遞減次序將所述隊列中的所述虛擬主機排序;自所述隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所述第i資源的所述消耗的具有所述第i資源的最小剰余容量的所述伺服實體主機;自所述所指派伺服實體主機的所述第i資源的所述剩余容量中減去所述所取出虛擬主機的所述第i資源的所述消耗,憑此更新所述所指派伺服實體主機的所述第i資源的所述剩余容量;以及若所述隊列不為空則返回自所述隊列取出第一個虛擬主機的步驟,其中Mi為在所述 ー維優(yōu)配遞減填充算法中用于容納所有所述虛擬主機的所述伺服實體主機的數(shù)目。
4.如權利要求1所述的方法,其特征在干,將所述伺服實體主機分類的步驟包括 按資源利用率次序將所有所述伺服實體主機排序;將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機,且將所述排序后的伺服實體主機的后面(P_i)個分類為所述存活實體主機,其中i為整數(shù)且1 < = i < = P, P為所有所述伺服實體主機的數(shù)目;以及根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。
5.如權利要求1所述的方法,其特征在干,將所述伺服實體主機分類的步驟包括將所有所述伺服實體主機排序,其中依照所述排序次序,具有至少ー個滿足ー預設條件的虛擬主機的所述伺服實體主機位于無滿足所述預設條件的虛擬主機的所述伺服實體主機之后,且無滿足所述預設條件的虛擬主機的所述伺服實體主機按資源利用率次序排序;將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機,且將所述排序后的伺服實體主機之后面(P-i)個分類為所述存活實體主機,其中i為整數(shù)且1 < = i < = P, P為所有所述伺服實體主機的數(shù)目;以及根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。
6.如權利要求1所述的方法,其特征在干,所述交錯N維優(yōu)配遞減填充算法包括 基于所有所述虛擬主機的所述資源的消耗,計算對應于每一所述資源的一標準化因子;基于所述標準化因子,計算在所述冗余實體主機上運行的每一所述虛擬主機的所述資源的標準化消耗以及在所述冗余實體主機上運行的每一所述虛擬主機的代表性消耗;根據(jù)每一所述虛擬主機的所述資源的所述標準化消耗,將在所述冗余實體主機上運行的每一所述虛擬主機置于ー或多個隊列中;按所述代表性消耗的遞減次序將每一所述隊列中的所述虛擬主機排序; 檢查所有所述隊列,若所有所述隊列為空,則傳回一成功結果; 根據(jù)對應于所述資源的剰余容量的標準化總和,自所述隊列中選擇ー隊列; 自所述選定隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;若不存在可容納所述所取出的虛擬主機的所有所述資源的所述消耗的存活實體主機, 則傳回一失敗結果;以及返回至檢查所有所述隊列的步驟。
7.如權利要求6所述的方法,其特征在干自所有所述存活實體主機的所述第i資源的容量之和中減去所有所述虛擬主機的所述第i資源的所述消耗之和,接著將所述減法的結果除以所述存活實體主機的數(shù)目,憑此計算對應于所述第i資源的所述標準化因子,其中i為整數(shù)且1 <= i < = N ;將每一所述虛擬主機的所述第i資源的所述消耗除以對應于所述第i資源的所述標準化因子,憑此計算在所述冗余實體主機上運行的每一所述虛擬主機的所述第i資源的所述標準化消耗;在所述冗余實體主機上運行的每一所述虛擬主機的所述代表性消耗為該虛擬主機的所述資源的所述標準化消耗中的最大標準化消耗;將所述存活實體主機的所述第i資源的所述剩余容量之和除以對應于所述第i資源的所述標準化因子,憑此計算對應于所述第i資源的剰余容量的所述標準化總和。
8.如權利要求7所述的方法,其特征在干,總共存在N個隊列,所述N個隊列與所述N 種資源之間存在一対一映射關系,且所述將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中的步驟包括將在所述冗余實體主機上運行的每一所述虛擬主機置于對應干與該虛擬主機的所述代表性消耗對應的所述資源的所述隊列中; 且自所述隊列中選擇ー隊列的步驟包括對應于與最小的所述剩余容量標準化總和對應的所述資源的所述隊列除外,定義包括其余N-I個所述隊列的一集合;以及在所述集合中的每ー隊列的第一個虛擬主機之中,選擇具有最大的代表性消耗的第一個虛擬主機所在的隊列。
9.如權利要求7所述的方法,其特征在于,總共存在N*(N-I)個隊列,每一所述隊列對應于所述N種資源中的兩者的不同排列,且所述將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中的步驟包括對于在所述冗余實體主機上運行的每一所述虛擬主機,當該虛擬主機的所述第i資源的所述標準化消耗大于該虛擬主機的第j資源的所述標準化消耗時,將該虛擬主機置于對應于先是所述第i資源隨后是所述第j資源的排列的隊列中,其中j為整數(shù),1 <= j < = N且j不等于i ;且自所述隊列中選擇ー隊列的步驟其特征在干,包括選擇對應于先是與最大的所述剩余容量標準化總和對應的資源隨后是與最小的所述剰余容量標準化總和對應的資源的排列的隊列;且自所述選定隊列中取出第一個虛擬主機的步驟包括 自所有所述隊列移除所述所取出的虛擬主機。
10.如權利要求6所述的方法,其特征在干,指派所述所取出的虛擬主機的步驟包括 計算每一所述存活實體主機的所述代表性剰余容量,其中每一所述存活實體主機的所述代表性剰余容量為該存活實體主機的所述資源的標準化剰余容量的最小值,該存活實體主機的每一所述資源的所述標準化剰余容量是將該存活實體主機的該資源的所述剩余容量除以對應于該資源的所述標準化因子而計算產(chǎn)生;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;以及自所述所指派實體主機的所述資源的所述剩余容量中減去所述所取出虛擬主機的所述資源的所述消耗,憑此更新所述所指派實體主機的所述資源的所述剩余容量。
11.如權利要求1所述的方法,其特征在于,每一所述遷移路徑對應于在所述冗余實體主機上運行的虛擬主機其中之一,該遷移路徑的起點為該虛擬主機在上面運行的所述冗余實體主機,且該遷移路徑的目的地為所述交錯N維優(yōu)配遞減填充算法所指派的對應于該虛擬主機的所述存活實體主機,該遷移路徑的其余部分是根據(jù)所述網(wǎng)絡的所述形態(tài)而決定。
12.如權利要求11所述的方法,其特征在于,決定所述平行遷移序列的步驟包括 定義ー沖突圖,其中所述沖突圖的每ー節(jié)點表示所述遷移路徑其中之一,每一所述節(jié)點具有ー權重表示將對應于該節(jié)點的所述虛擬主機遷移至對應的所述存活實體主機所需的估計時間,若對應于所述沖突圖其中兩個節(jié)點的所述兩個遷移路徑有任何部分重迭,則所述兩個節(jié)點之間存在ー聯(lián)機;在所述沖突圖上使用一最大節(jié)點著色算法來找出ー種所述節(jié)點的著色方式,使得所述著色方式的各顏色的權重總和在所有可能的著色方式之中為最小,其中每一所述顏色的所述權重為該顏色的所述節(jié)點的所述權重的最大值;以及將對應于每一所述顏色的所述節(jié)點的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中。
13.如權利要求11所述的方法,其特征在于,決定所述平行遷移序列的步驟包括 根據(jù)所述遷移路徑及所述網(wǎng)絡的所述形態(tài)定義一有向圖;在所述有向圖中找出不相交路徑的一最大集合,且將對應于所述最大集合的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中; 自所述有向圖移除對應于所述最大集合的聯(lián)機;以及若所述有向圖中仍存在至少ー個聯(lián)機,則返回找出所述最大集合的步驟。
14.如權利要求11所述的方法,其特征在于,決定所述平行遷移序列的步驟包括 根據(jù)所述遷移路徑定義一二分圖;在所述二分圖中找出一最大匹配,且將對應于所述最大匹配的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;自所述二分圖移除對應于所述最大匹配的聯(lián)機;以及若所述二分圖中仍存在至少ー個聯(lián)機,則返回找出所述最大匹配的步驟。
15.如權利要求1所述的方法,其特征在于,遷移在所述冗余實體主機上運行的所述虛擬主機的步驟包括選擇所述平行遷移序列中的第一批遷移路徑;根據(jù)所述選定批次的所述遷移路徑將對應于所述選定批次的所述虛擬主機平行遷移至所述存活實體主機;以及若在所述選定批次之后存在至少ー批遷移路徑,則選擇所述平行遷移序列中的下ー批遷移路徑并返回至遷移對應于所述選定批次的所述虛擬主機的步驟。
16.一種用于虛擬主機合并的管理實體主機,其特征在干,一網(wǎng)絡連接所述管理實體主機與多個伺服實體主機,多個虛擬主機在所述伺服實體主機上運行,所述伺服實體主機提供N種資源且所述虛擬主機消耗所述資源,N為預設正整數(shù),所述管理實體主機包括一存儲器及耦接至所述存儲器的ー處理器,其中所述處理器將所述伺服實體主機分類為冗余實體主機及存活實體主機,其中在所述冗余實體主機上運行的所述虛擬主機可根據(jù)ー交錯N維優(yōu)配遞減填充算法而成功地遷移至所述存活實體主機;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法及所述網(wǎng)絡的形態(tài)決定在所述冗余實體主機上運行的所述虛擬主機至所述存活實體主機的遷移路徑;所述處理器將所述遷移路徑儲存于所述存儲器中;所述處理器基于所述遷移路徑?jīng)Q定在所述冗余實體主機上運行的所述虛擬主機的一平行遷移序列,且將所述平行遷移序列儲存于所述存儲器中;所述處理器根據(jù)所述平行遷移序列將在所述冗余實體主機上運行的所述虛擬主機平行地遷移至所述存活實體主機。
17.如權利要求16所述的管理實體主機,其特征在干,所述處理器根據(jù)ー維優(yōu)配遞減填充算法針對每ー個i估計容納所有所述虛擬主機的第i資源的消耗所需的所述伺服實體主機的數(shù)量Mi,l <= i <= N ;當淋K < P時所述處理器觸發(fā)所述虛擬主機合井,M為所有Mi中的最大值,K為預設常數(shù)且P為所述伺服實體主機的數(shù)目。
18.如權利要求17所述的管理實體主機,其特征在干,所述對應于Mi的ー維優(yōu)配遞減填充算法包括假定所有所述伺服實體主機皆為空機,其中無虛擬主機;將所有所述虛擬主機置于ー隊列中,并按所述第i資源的所述消耗的遞減次序將所述隊列中的所述虛擬主機排序;自所述隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所述第i資源的所述消耗的具有所述第i資源的最小剰余容量的所述伺服實體主機;自所述所指派伺服實體主機的所述第i資源的所述剩余容量中減去所述所取出虛擬主機的所述第i資源的所述消耗,憑此更新所述所指派伺服實體主機的所述第i資源的所述剩余容量;以及若所述隊列不為空則返回自所述隊列取出第一個虛擬主機的步驟,其中Mi為在所述 ー維優(yōu)配遞減填充算法中用于容納所有所述虛擬主機的所述伺服實體主機的數(shù)目。
19.如權利要求16所述的管理實體主機,其特征在于,為了將所述伺服實體主機分類, 所述處理器按資源利用率次序將所有所述伺服實體主機排序;所述處理器將所述排序后的伺服實體主機的前i個分類為所述冗余實體主機且將所述排序后的伺服實體主機的后面 (P-i)個分類為所述存活實體主機,i為整數(shù)且1 < = i <= P,P為所有所述伺服實體主機的數(shù)目;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大i。
20.如權利要求16所述的管理實體主機,其特征在于,為了將所述伺服實體主機分類, 所述處理器將所有所述伺服實體主機排序,依照所述排序次序,具有至少ー個滿足ー預設條件的虛擬主機的所述伺服實體主機位于無滿足所述預設條件的虛擬主機的所述伺服實體主機之后,且無滿足所述預設條件的虛擬主機的所述伺服實體主機按資源利用率次序排序;所述處理器將所述排序后的伺服實體主機之前i個分類為所述冗余實體主機且將所述排序后的伺服實體主機的后面(P-i)個分類為所述存活實體主機,i為整數(shù)且1 < = i < = P,P為所有所述伺服實體主機的數(shù)目;所述處理器根據(jù)所述交錯N維優(yōu)配遞減填充算法找出可使在所述冗余實體主機上運行的所述虛擬主機成功遷移至所述存活實體主機的最大io
21.如權利要求16所述的管理實體主機,其特征在干,所述交錯N維優(yōu)配遞減填充算法包括基于所有所述虛擬主機的所述資源的消耗,計算對應于每一所述資源的一標準化因子;基于所述標準化因子,計算在所述冗余實體主機上運行的每一所述虛擬主機的所述資源的標準化消耗以及在所述冗余實體主機上運行的每一所述虛擬主機的代表性消耗;根據(jù)每一所述虛擬主機的所述資源的所述標準化消耗,將在所述冗余實體主機上運行的每一所述虛擬主機置于ー或多個隊列中;按所述代表性消耗的遞減次序將每一所述隊列中的所述虛擬主機排序;檢查所有所述隊列,若所有所述隊列為空,則傳回一成功結果;根據(jù)對應于所述資源的剰余容量的標準化總和,自所述隊列中選擇ー隊列;自所述選定隊列中取出第一個虛擬主機;將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;若不存在可容納所述所取出的虛擬主機的所有所述資源的所述消耗的存活實體主機, 則傳回一失敗結果;以及返回至檢查所有所述隊列的步驟。
22.如權利要求21所述的管理實體主機,其特征在干,所述處理器自所有所述存活實體主機的所述第i資源的容量之和中減去所有所述虛擬主機的所述第i資源的所述消耗之和,接著所述處理器將所述減法的結果除以所述存活實體主機的數(shù)目,憑此計算對應于所述第i資源的所述標準化因子,i為整數(shù)且1 < = i < = N ;所述處理器將每一所述虛擬主機的所述第i資源的所述消耗除以對應于所述第i資源的所述標準化因子,憑此計算在所述冗余實體主機上運行的每一所述虛擬主機的所述第i資源的所述標準化消耗;在所述冗余實體主機上運行的每一所述虛擬主機的所述代表性消耗為該虛擬主機的所述資源的所述標準化消耗中的最大標準化消耗;所述處理器將所述存活實體主機的所述第i資源的所述剩余容量之和除以對應于所述第i資源的所述標準化因子,憑此計算對應于所述第i資源的剰余容量的所述標準化總和。
23.如權利要求22所述的管理實體主機,其特征在干,總共存在N個隊列,且所述N個隊列與所述N種資源之間存在一対一映射關系;當將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中吋,所述處理器將在所述冗余實體主機上運行的每一所述虛擬主機置于對應干與該虛擬主機的所述代表性消耗對應的所述資源的所述隊列中;當自所述多個隊列中選擇所述隊列吋,所述處理器定義ー集合,所述集合包括所述N-I 個隊列,對應于與最小的所述剩余容量標準化總和對應的所述資源的所述隊列除外;且所述處理器在所述集合中的每ー隊列的第一個虛擬主機之中,選擇具有最大的代表性消耗的第一個虛擬主機所在的隊列。
24.如權利要求22所述的管理實體主機,其特征在于,總共存在N*(N-I)個隊列,且每一所述隊列對應于所述N種資源中的兩者的不同排列;當將在所述冗余實體主機上運行的所述虛擬主機置于所述隊列中吋,對于在所述冗余實體主機上運行的每一所述虛擬主機,在該虛擬主機的所述第i資源的所述標準化消耗大于該虛擬主機的第j資源的所述標準化消耗吋,所述處理器將該虛擬主機置于對應于先是所述第i資源隨后是所述第j資源的排列的隊列中,其中j為整數(shù),1 <= j <= N且j不等于i;當自所述多個隊列中選擇所述隊列吋,所述處理器選擇對應于先是與最大的所述剩余容量標準化總和對應的所述資源隨后是與最小的所述剩余容量標準化總和對應的所述資源的排列的隊列;當自所述選定隊列中取出所述第一個虛擬主機吋,所述處理器自所有所述隊列移除所述所取出的虛擬主機。
25.如權利要求21所述的管理實體主機,其特征在干,為了指派所述所取出的虛擬主機,所述處理器計算每一所述存活實體主機的所述代表性剰余容量,其中每一所述存活實體主機的所述代表性剰余容量為該存活實體主機的所述資源的標準化剰余容量的最小值; 所述處理器將該存活實體主機的每一所述資源的所述剩余容量除以對應于該資源的所述標準化因子,憑此計算該存活實體主機的每一所述資源的所述標準化剰余容量;所述處理器將所述所取出的虛擬主機指派至可容納所述所取出的虛擬主機的所有所述資源的所述消耗的具有最小代表性剰余容量的所述存活實體主機;所述處理器自所述所指派實體主機的所述資源的所述剩余容量中減去所述所取出虛擬主機的所述資源的所述消耗,憑此更新所述所指派實體主機的所述資源的所述剩余容量。
26.如權利要求16所述的管理實體主機,其特征在于,每一所述遷移路徑對應于在所述冗余實體主機上運行的虛擬主機其中之一,該遷移路徑的起點為該虛擬主機在上面運行的所述冗余實體主機,且該遷移路徑的目的地為所述交錯N維優(yōu)配遞減填充算法所指派的對應于該虛擬主機的所述存活實體主機,所述處理器根據(jù)所述網(wǎng)絡的所述形態(tài)決定該遷移路徑的其余部分。
27.如權利要求沈所述的管理實體主機,其特征在干,為了決定所述平行遷移序列,所述處理器定義ー沖突圖并將所述沖突圖儲存于所述存儲器中,其中所述沖突圖的每ー節(jié)點表示所述遷移路徑其中之一,每一所述節(jié)點具有ー權重表示將對應于該節(jié)點的所述虛擬主機遷移至對應的所述存活實體主機所需的估計時間,若對應于所述沖突圖其中兩個節(jié)點的所述兩個遷移路徑有任何部分重迭,則所述兩個節(jié)點之間存在ー聯(lián)機;所述處理器在所述沖突圖上使用一最大節(jié)點著色算法來找出ー種所述節(jié)點的著色方式,使得所述著色方式的各顏色的權重總和在所有可能的著色方式之中為最小,其中每一所述顏色的所述權重為該顏色的所述節(jié)點的所述權重的最大值;所述處理器將對應于每一所述顏色的所述節(jié)點的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中。
28.如權利要求沈所述的管理實體主機,其特征在干,為了決定所述平行遷移序列,所述處理器根據(jù)所述遷移路徑及所述網(wǎng)絡的所述形態(tài)定義一有向圖,并將所述有向圖儲存于所述存儲器中;所述處理器在所述有向圖中找出不相交路徑的一最大集合,且將對應于所述最大集合的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;所述處理器自所述有向圖移除對應于所述最大集合的聯(lián)機;若所述有向圖中仍存在至少ー個聯(lián)機,則所述處理器返回找出所述最大集合的步驟。
29.如權利要求沈所述的管理實體主機,其特征在干,為了決定所述平行遷移序列,所述處理器根據(jù)所述遷移路徑定義一二分圖并將所述二分圖儲存于所述存儲器中;所述處理器在所述二分圖中找出一最大匹配,且將對應于所述最大匹配的所述遷移路徑作為ー批遷移路徑添加至所述平行遷移序列中;所述處理器自所述二分圖移除對應于所述最大匹配的聯(lián)機;若所述二分圖中仍存在至少ー個聯(lián)機,則所述處理器返回找出所述最大匹配的步驟。
30.如權利要求16所述的管理實體主機,其特征在干,為了遷移在所述冗余實體主機上運行的所述虛擬主機,所述處理器選擇所述平行遷移序列中的第一批遷移路徑;所述處理器根據(jù)所述選定批次的所述遷移路徑將對應于所述選定批次的所述虛擬主機平行遷移至所述存活實體主機;若在所述選定批次之后存在至少ー批遷移路徑,則所述處理器選擇所述平行遷移序列中的下一批遷移路徑,并返回至遷移對應于所述選定批次的所述虛擬主機的步驟。
全文摘要
本發(fā)明提供一種虛擬主機合并方法與管理實體主機。所述方法由所述管理實體主機執(zhí)行。一網(wǎng)絡連接管理實體主機與多個伺服實體主機。多個虛擬主機在所述伺服實體主機上運行。所述方法包含以下步驟。管理實體主機將伺服實體主機分類為冗余實體主機及存活實體主機。管理實體主機決定在冗余實體主機上運行的虛擬主機至存活實體主機的遷移路徑。管理實體主機基于所述遷移路徑?jīng)Q定在冗余實體主機上運行的虛擬主機的平行遷移序列。管理實體主機根據(jù)所述平行遷移序列將在冗余實體主機上運行的虛擬主機平行地遷移至存活實體主機。
文檔編號G06F1/32GK102541244SQ20111014439
公開日2012年7月4日 申請日期2011年5月26日 優(yōu)先權日2010年12月23日
發(fā)明者劉效飛, 姜瑞豪, 洪哲倫, 闕志克 申請人:財團法人工業(yè)技術研究院