專利名稱:一種多虛擬機(jī)遷移調(diào)度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多虛擬機(jī)遷移的調(diào)度方法,主要涉及到在多虛擬機(jī)遷移過程中,對(duì)虛擬機(jī)遷移的目標(biāo)宿主機(jī)進(jìn)行選擇的策略,以及對(duì)多虛擬機(jī)的遷移順序進(jìn)行規(guī)劃的策略,屬于虛擬化及云計(jì)算技術(shù)領(lǐng)域。
背景技術(shù):
目前,隨著虛擬化技術(shù)在云計(jì)算等領(lǐng)域的廣泛應(yīng)用,虛擬機(jī)在服務(wù)器、數(shù)據(jù)中心上大量運(yùn)行,對(duì)虛擬機(jī)的管理需求逐漸凸顯出來。當(dāng)前虛擬機(jī)的管理需求包含多個(gè)方面。比如,優(yōu)化虛擬機(jī)部署以降低服務(wù)器的功耗;優(yōu)化虛擬機(jī)部署以提高物理CPU的利用率;將內(nèi)存相似度大的虛擬機(jī)遷移到同一宿主機(jī),利用基于內(nèi)容的頁(yè)面共享技術(shù)(CBPS),使多個(gè)虛 擬機(jī)共享宿主機(jī)物理內(nèi)存,以節(jié)省宿主機(jī)內(nèi)存資源,提高宿主機(jī)內(nèi)存使用效率,等。以上幾種虛擬機(jī)管理需求,都涉及到多虛擬機(jī)遷移。多虛擬機(jī)的遷移過程,具有一定開銷,因此針對(duì)不同情況下的多虛擬機(jī)遷移,各種調(diào)度算法的研究成為當(dāng)前虛擬化和云計(jì)算領(lǐng)域的研究執(zhí)占。目前的虛擬機(jī)調(diào)度算法,有針對(duì)宿主機(jī)的負(fù)載均衡進(jìn)行調(diào)度的,也有針對(duì)宿主機(jī)的資源利用率情況進(jìn)行調(diào)度的,還有些調(diào)度算法,將內(nèi)存相似的虛擬機(jī)通過遷移放置在同一臺(tái)宿主機(jī)上,以共享宿主機(jī)內(nèi)存。這些調(diào)度算法,不管是采用靜態(tài)的算法還是動(dòng)態(tài)的算法,都主要集中于解決“如何完成調(diào)度目標(biāo)”,并沒有注重如何降低多虛擬機(jī)在遷移過程中的開銷。隨著云計(jì)算的大規(guī)模應(yīng)用,在集群服務(wù)器或者數(shù)據(jù)中心,虛擬機(jī)的數(shù)量越來越多,涉及多虛擬機(jī)的遷移的開銷越來越大。如果多虛擬機(jī)的調(diào)度方法能有效降低多虛擬機(jī)遷移的總的遷移次數(shù),并在遷移次數(shù)相同的情況下,進(jìn)而降低總的遷移時(shí)間,將直接降低整個(gè)系統(tǒng)中虛擬機(jī)總的停機(jī)次數(shù)和停機(jī)時(shí)間,對(duì)于提高系統(tǒng)的整體服務(wù)質(zhì)量有重要意義。本發(fā)明就是針對(duì)多虛擬機(jī)遷移,提出一種調(diào)度方法以降低系統(tǒng)的總的遷移次數(shù)和遷移時(shí)間。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種多虛擬機(jī)遷移的調(diào)度方法,該方法的輸入是虛擬機(jī)的聚類,聚類的劃分方式根據(jù)特定的遷移目標(biāo)決定(比如根據(jù)內(nèi)存相似度計(jì)算而決定通過遷移將內(nèi)存相似度大虛擬機(jī)遷移到一臺(tái)宿主機(jī)),方法的功能是為每個(gè)虛擬機(jī)聚類選擇合適的宿主機(jī),并為全部需要遷移的虛擬機(jī)設(shè)計(jì)合適的遷移順序。該調(diào)度方法使多虛擬機(jī)的遷移總次數(shù)盡可能小,在相同遷移次數(shù)條件下,使遷移總時(shí)間盡可能小,從而是遷移過程,系統(tǒng)的總開銷降低,提高系統(tǒng)的服務(wù)質(zhì)量。根據(jù)本發(fā)明的一個(gè)方面,提供了一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于包括步驟一.用戶在主控節(jié)點(diǎn)機(jī)器上,輸入多虛擬機(jī)的目標(biāo)聚類。目標(biāo)聚類的劃分,由用戶根據(jù)多虛擬機(jī)遷移的目標(biāo)進(jìn)行決定。同一聚類的虛擬機(jī),最終將遷移到同一臺(tái)目標(biāo)宿主機(jī)上。步驟二 .主控節(jié)點(diǎn)通過向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,通過宿主機(jī)節(jié)點(diǎn)反饋,獲取到系統(tǒng)里全部宿主機(jī)節(jié)點(diǎn)的信息,以及宿主機(jī)上運(yùn)行的全部虛擬機(jī)的信息。步驟三.根據(jù)步驟一和步驟二所取得的信息,主控節(jié)點(diǎn)調(diào)用“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射。步驟四.主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,收集各宿主機(jī)節(jié)點(diǎn)的負(fù)載情況。步驟五.主控節(jié)點(diǎn),依據(jù)步驟三確定的遷移映射和步驟四收集到的宿主機(jī)負(fù)載信息,依據(jù)“遷移順序決定算法“,為多虛擬機(jī)安排遷移順序,并發(fā)出指令,控制各相關(guān)宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移。
圖I是本發(fā)明的多虛擬機(jī)遷移調(diào)度方法的系統(tǒng)總體框架圖。圖2是本發(fā)明的多虛擬機(jī)遷移調(diào)度方法的具體流程圖。圖3是本發(fā)明的一種實(shí)施實(shí)例的具體流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。本發(fā)明的主要思想是,在給定遷移目標(biāo)的條件下,為系統(tǒng)內(nèi)多虛擬機(jī)的遷移,選擇合適的目標(biāo)宿主機(jī)并安排合適的遷移順序,優(yōu)先降低系統(tǒng)總的遷移次數(shù),其次降低總的遷移時(shí)間,以提高系統(tǒng)的整體服務(wù)質(zhì)量。這在當(dāng)前云計(jì)算時(shí)代,虛擬機(jī)被普遍采用的情況下,具有很廣泛的應(yīng)用價(jià)值。本發(fā)明的技術(shù)方案如下一種多虛擬機(jī)遷移的調(diào)度方法,其系統(tǒng)的總體的框架如圖I所示。其中宿主機(jī)節(jié)點(diǎn)作為虛擬機(jī)運(yùn)行的機(jī)器載體,通過虛擬機(jī)監(jiān)控器運(yùn)行了多個(gè)虛擬機(jī),是多虛擬機(jī)遷移的主要場(chǎng)所。主控節(jié)點(diǎn)作為調(diào)度方法的運(yùn)行載體,讀取用戶輸入的虛擬機(jī)目標(biāo)聚類信息,并獲取各宿主機(jī)節(jié)點(diǎn)的信息(包括宿主機(jī)的配置信息和其上面所運(yùn)行的虛擬機(jī)的信息等)。根據(jù)這些已知情況,調(diào)用目標(biāo)宿主機(jī)選擇算法,輸出合適的多虛擬機(jī)的遷移策略,由控制模塊按照該策略,發(fā)送虛擬機(jī)遷移指令給各宿主機(jī)節(jié)點(diǎn),控制各節(jié)點(diǎn)機(jī)間的多虛擬機(jī)遷移。多虛擬機(jī)遷移的調(diào)度方法,主要體現(xiàn)在主控節(jié)點(diǎn)上,調(diào)度方法的具體流程如圖2所示。該方法包含以下步驟步驟201.用戶在主控節(jié)點(diǎn)機(jī)器上,輸入多虛擬機(jī)的目標(biāo)聚類。目標(biāo)聚類的劃分,由用戶根據(jù)多虛擬機(jī)遷移的目標(biāo)進(jìn)行決定。同一聚類的虛擬機(jī),最終將遷移到同一臺(tái)目標(biāo)宿主機(jī)上。步驟202.主控節(jié)點(diǎn)通過向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,通過主機(jī)節(jié)點(diǎn)反饋,獲取到系統(tǒng)里全部宿主機(jī)節(jié)點(diǎn)的信息,以及宿主機(jī)上運(yùn)行的全部虛擬機(jī)的信息。步驟203.根據(jù)步驟201和步驟202所取得的信息,主控節(jié)點(diǎn)調(diào)用“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射。步驟204.主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,收集各宿主機(jī)節(jié)點(diǎn)的負(fù)載情況。
步驟205.主控節(jié)點(diǎn),依據(jù)步驟203確定的遷移映射和步驟204收集到的宿主機(jī)負(fù)載信息,依據(jù)“遷移順序決定算法“,為多虛擬機(jī)安排遷移順序,并發(fā)出指令,控制各相關(guān)宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移。其中,步驟201中輸入的虛擬機(jī)的目標(biāo)聚類,由用戶提供。用戶根據(jù)虛擬機(jī)遷移的目標(biāo),設(shè)定虛擬機(jī)的聚類,同一聚類的虛擬機(jī),最終將被遷移到同一臺(tái)宿主機(jī)。這種方式,保證了本發(fā)明的調(diào)度方法的廣泛適用性。用戶可以根據(jù)不同的應(yīng)用場(chǎng)景,來劃分虛擬機(jī)的聚類,比如根據(jù)虛擬機(jī)間的內(nèi)存相似性,根據(jù)虛擬機(jī)的資源使用特性,根據(jù)負(fù)載均衡的要求,
坐寸o其中,步驟202中,主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)收集的信息,具體包括宿主機(jī)的各種硬件配置信息,宿主機(jī)能承載的最大虛擬機(jī)數(shù)量,宿主機(jī)當(dāng)前運(yùn)行的全部虛擬機(jī)的系統(tǒng)版本、CPU配置、內(nèi)存大小、虛擬機(jī)編號(hào)。在主控節(jié)點(diǎn)端,給每個(gè)虛擬機(jī)數(shù)據(jù)表項(xiàng),填寫以上信 息,并將宿主機(jī)編號(hào)也記錄在表項(xiàng)中,此時(shí)收集的宿主機(jī)編號(hào),即是虛擬機(jī)的源宿主機(jī)編號(hào)。在主控節(jié)點(diǎn)中,同時(shí)會(huì)為每個(gè)宿主機(jī)維護(hù)一個(gè)記錄。其中,步驟203中,“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)目標(biāo)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射,此過程分為2步走。首先,采用遍歷方式,從虛擬機(jī)聚類到宿主機(jī)的映射解空間中,選擇使系統(tǒng)總的遷移次數(shù)最少的映射的集合(因?yàn)榭赡艽嬖诙鄠€(gè)虛擬機(jī)聚類到宿主機(jī)的映射方式,具有相同的遷移總次數(shù))。其次,在這些總遷移次數(shù)最少的映射集合中,選擇遷移總流量最小的映射。這是因?yàn)?,即使是相同的遷移次數(shù),由于遷移的虛擬機(jī)不同,流量也會(huì)不同。本步驟形成的虛擬機(jī)聚類到宿主機(jī)的映射,直接決定了每個(gè)聚類中的虛擬機(jī)應(yīng)該遷移到的目標(biāo)宿主機(jī),也就是決定了全部虛擬機(jī)的遷移路徑,不過并沒有決定多虛擬機(jī)遷移的先后順序。其中,步驟204中,收集宿主機(jī)的負(fù)載情況,由主控節(jié)點(diǎn)完成。主控節(jié)點(diǎn)向各宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,各宿主機(jī)節(jié)點(diǎn)反饋各自的cpu、內(nèi)存、虛擬機(jī)數(shù)量等使用數(shù)據(jù)后,被主控節(jié)點(diǎn)記錄在相應(yīng)的表項(xiàng)中。其中,步驟205中,根據(jù)步驟204收集到的負(fù)載信息,對(duì)步驟203計(jì)算出的遷移映射進(jìn)行進(jìn)一步處理。依據(jù)一定的原則,安排多虛擬機(jī)遷移的先后順序,并據(jù)此發(fā)出指令,控制各宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移。依據(jù)的原則,可以多樣,比如依據(jù)最小負(fù)載宿主機(jī)優(yōu)先遷入,或者最大負(fù)載宿主機(jī)優(yōu)先遷出等。同時(shí),還可以兼顧到網(wǎng)絡(luò)和并行處理的要求。3、優(yōu)點(diǎn)及功效本發(fā)明是一種多虛擬機(jī)遷移調(diào)度的方法,它與現(xiàn)有技術(shù)相比,具有以下主要的優(yōu)點(diǎn)和功效(1)從系統(tǒng)宏觀的角度,控制了多虛擬機(jī)遷移的總次數(shù)和總時(shí)間,使遷移的效率更高,填補(bǔ)了相關(guān)領(lǐng)域的空白。(2)由于本發(fā)明的算法思想具有一定的普適性,同時(shí)調(diào)度方法將虛擬機(jī)聚類作為輸入,與算法的計(jì)算過程剝離,不同的遷移目的,只需要修改輸入的虛擬機(jī)聚類即可,使本方法的調(diào)度方法具有比較廣泛的適用性。比如可以用于基于內(nèi)存相似性的虛擬機(jī)遷移,也可以用于基于負(fù)載均衡的虛擬機(jī)遷移,算法的思想甚至還可以用于路徑選擇等超越了虛擬機(jī)遷移的領(lǐng)域。本發(fā)明所需要的硬件設(shè)備如圖I所示,要求宿主機(jī)能支持虛擬化技術(shù),并要求宿主機(jī)之間是通過網(wǎng)絡(luò)互連的,能直接通信,不需要經(jīng)過中間節(jié)點(diǎn)。虛擬機(jī)監(jiān)控器無(wú)要求,目前流行的主流產(chǎn)品均可,差別只在于修改個(gè)別函數(shù)接口。為簡(jiǎn)化遷移過程,最好要求宿主機(jī)及其虛擬機(jī)監(jiān)控器都是同構(gòu)的。當(dāng)然異構(gòu)的也可以,差別在于遷移過程會(huì)稍復(fù)雜,這并不涉及到本發(fā)明的核心部分。下面以一實(shí)例進(jìn)行詳細(xì)說明。本實(shí)例所用到本發(fā)明的調(diào)度方法,具體步驟分為5步,如圖3所示。步驟301.用戶在主控節(jié)點(diǎn)機(jī)器上,輸入多虛擬機(jī)的目標(biāo)聚類。目標(biāo)聚類的劃分,由用戶根據(jù)多虛擬機(jī)遷移的目標(biāo)進(jìn)行決定。同一聚類的虛擬機(jī),最終將遷移到同一臺(tái)目標(biāo)宿主機(jī)上。本實(shí)例中依據(jù)內(nèi)存相似性,將內(nèi)存相似性較大的虛擬機(jī)劃分為一個(gè)聚類,以將它們遷移到同一個(gè)宿主機(jī)上,便于宿主機(jī)內(nèi)存共享。
步驟302.主控節(jié)點(diǎn)通過向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,通過宿主機(jī)節(jié)點(diǎn)反饋,獲取到系統(tǒng)里全部宿主機(jī)節(jié)點(diǎn)的信息,以及宿主機(jī)上運(yùn)行的全部虛擬機(jī)的信息,記錄在主控節(jié)點(diǎn)中。步驟303.根據(jù)步驟301和步驟302所取得的信息,主控節(jié)點(diǎn)調(diào)用“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射?!澳繕?biāo)宿主機(jī)選擇算法“,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射?!澳繕?biāo)宿主機(jī)選擇算法“的思想是在虛擬機(jī)聚類到目標(biāo)宿主機(jī)的所有映射中(稱之為”遷移映射“),利用堆棧,采用遍歷的方式,選擇總的遷移次數(shù)最少的映射,形成一個(gè)集合,然后從這個(gè)集合中,選擇一個(gè)使總的遷移時(shí)間最下的映射,即作為最終的目標(biāo)宿主機(jī)選擇策略。虛擬機(jī)聚類到目標(biāo)宿主機(jī)的一種映射,其思路是優(yōu)先將虛擬機(jī)聚類映射到本聚類虛擬機(jī)的源宿主機(jī)上(對(duì)于一種映射f,選擇其中一臺(tái)宿主機(jī)即可),如果對(duì)應(yīng)宿主機(jī)已經(jīng)被之前的聚類全部占用,則在剩下還未被映射到的宿主機(jī)中挑選X臺(tái)(X可以設(shè)置),然后一一嘗試。對(duì)于最后一個(gè)處理的聚類,可以將剩余的空閑宿主機(jī)全部嘗試映射一次。X的值可設(shè)置,增加了算法的靈活性。X值越大,映射集合F越大,最終的解最優(yōu)的可能性越大,同時(shí)算法的遍歷次數(shù)越多,復(fù)雜度更大。步驟304.主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,收集各宿主機(jī)節(jié)點(diǎn)的當(dāng)前負(fù)載情況。步驟305.主控節(jié)點(diǎn),依據(jù)步驟303確定的遷移映射和步驟304收集到的宿主機(jī)負(fù)載信息,依據(jù)“遷移順序決定算法“,為多虛擬機(jī)安排遷移順序,并發(fā)出指令,控制各相關(guān)宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移。本實(shí)例中步驟305,首先根據(jù)步驟303選擇的遷移映射生成所有虛擬機(jī)的遷移路徑,每個(gè)遷移路徑表示為一個(gè)〈虛擬機(jī)編號(hào),源宿主機(jī)號(hào),目標(biāo)宿主機(jī)號(hào)〉的三元組,然后依據(jù)最小負(fù)載宿主機(jī)優(yōu)先遷入的原則,進(jìn)行排序。遷移路徑的排序方法是,按照當(dāng)前負(fù)載由小到大的順序,以“目標(biāo)宿主機(jī)”為關(guān)鍵字對(duì)三元組排序。最后,依據(jù)排序后的結(jié)果,執(zhí)行三元組所代表的排序任務(wù)。為保證系統(tǒng)的實(shí)時(shí)性,可以設(shè)置在每臺(tái)宿主機(jī)都遷入過一次后,更新一次當(dāng)前負(fù)載情況,依據(jù)更新后的宿主機(jī)負(fù)載,再次排序,然后繼續(xù)執(zhí)行剩下的遷移。最后所應(yīng)說明的是以上實(shí)施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于包括 步驟一.用戶在主控節(jié)點(diǎn)機(jī)器上,輸入多虛擬機(jī)的目標(biāo)聚類。目標(biāo)聚類的劃分,由用戶根據(jù)多虛擬機(jī)遷移的目標(biāo)進(jìn)行決定。同一聚類的虛擬機(jī),最終將遷移到同一臺(tái)目標(biāo)宿主機(jī)上。
步驟二.主控節(jié)點(diǎn)通過向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,通過宿主機(jī)節(jié)點(diǎn)反饋,獲取到系統(tǒng)里全部宿主機(jī)節(jié)點(diǎn)的信息,以及宿主機(jī)上運(yùn)行的全部虛擬機(jī)的信息。
步驟三.根據(jù)步驟一和步驟二所取得的信息,主控節(jié)點(diǎn)調(diào)用“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射。
步驟四.主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,收集各宿主機(jī)節(jié)點(diǎn)的負(fù)載情況。
步驟五.主控節(jié)點(diǎn),依據(jù)步驟三確定的遷移映射和步驟四收集到的宿主機(jī)負(fù)載信息,依據(jù)“遷移順序決定算法“,為多虛擬機(jī)安排遷移順序,并發(fā)出指令,控制各相關(guān)宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移。
2.根據(jù)權(quán)利要求I所述的一種一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于步驟一中所述的“用戶在主控節(jié)點(diǎn)機(jī)器上,輸入多虛擬機(jī)的目標(biāo)聚類”是指輸入的虛擬機(jī)的目標(biāo)聚類,由用戶提供。用戶根據(jù)虛擬機(jī)遷移的目標(biāo),設(shè)定虛擬機(jī)的聚類,同一聚類的虛擬機(jī),最終將被遷移到同一臺(tái)宿主機(jī)。這種方式,保證了本發(fā)明的調(diào)度方法的廣泛適用性。用戶可以根據(jù)不同的應(yīng)用場(chǎng)景,來劃分虛擬機(jī)的聚類,比如根據(jù)虛擬機(jī)間的內(nèi)存相似性,根據(jù)虛擬機(jī)的資源使用特性,根據(jù)負(fù)載均衡的要求,等。
3.根據(jù)權(quán)利要求I所述的一種一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于步驟二中所述的“主控節(jié)點(diǎn)通過向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,通過宿主機(jī)節(jié)點(diǎn)反饋,獲取到系統(tǒng)里全部宿主機(jī)節(jié)點(diǎn)的信息,以及宿主機(jī)上運(yùn)行的全部虛擬機(jī)的信息“是指主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)收集的信息,具體包括宿主機(jī)的各種硬件配置信息,宿主機(jī)能承載的最大虛擬機(jī)數(shù)量,宿主機(jī)當(dāng)前運(yùn)行的全部虛擬機(jī)的系統(tǒng)版本、CPU配置、內(nèi)存大小、虛擬機(jī)編號(hào)。在主控節(jié)點(diǎn)端,給每個(gè)虛擬機(jī)數(shù)據(jù)表項(xiàng),填寫以上信息,并將宿主機(jī)編號(hào)也記錄在表項(xiàng)中,此時(shí)收集的宿主機(jī)編號(hào),即是虛擬機(jī)的源宿主機(jī)編號(hào)。在主控節(jié)點(diǎn)中,同時(shí)會(huì)為每個(gè)宿主機(jī)維護(hù)一個(gè)記錄。
4.根據(jù)權(quán)利要求I所述的一種一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于步驟三中所述的“根據(jù)步驟一和步驟二所取得的信息,主控節(jié)點(diǎn)調(diào)用‘目標(biāo)宿主機(jī)選擇算法’,為虛擬機(jī)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射“是指“目標(biāo)宿主機(jī)選擇算法“,為虛擬機(jī)目標(biāo)聚類選擇合適的目標(biāo)宿主機(jī),形成虛擬機(jī)到目標(biāo)宿主機(jī)的遷移映射,此過程分為2步走。首先,采用遍歷方式,從虛擬機(jī)聚類到宿主機(jī)的映射解空間中,選擇使系統(tǒng)總的遷移次數(shù)最少的映射的集合(因?yàn)榭赡艽嬖诙鄠€(gè)虛擬機(jī)聚類到宿主機(jī)的映射方式,具有相同的遷移總次數(shù))。其次,在這些總遷移次數(shù)最少的映射集合中,選擇遷移總流量最小的映射。這是因?yàn)?,即使是相同的遷移次數(shù),由于遷移的虛擬機(jī)不同,流量也會(huì)不同。本步驟形成的虛擬機(jī)聚類到宿主機(jī)的映射,直接決定了每個(gè)聚類中的虛擬機(jī)應(yīng)該遷移到的目標(biāo)宿主機(jī),也就是決定了全部虛擬機(jī)的遷移路徑,不過并沒有決定多虛擬機(jī)遷移的先后順序。
5.根據(jù)權(quán)利要求I所述的一種一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于步驟四中所述的“主控節(jié)點(diǎn)向宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,收集各宿主機(jī)節(jié)點(diǎn)的負(fù)載情況“是指收集宿主機(jī)的負(fù)載情況,由主控節(jié)點(diǎn)完成。主控節(jié)點(diǎn)向各宿主機(jī)節(jié)點(diǎn)發(fā)出請(qǐng)求,各宿主機(jī)節(jié)點(diǎn)反饋各自的CPU、內(nèi)存、虛擬機(jī)數(shù)量等使用數(shù)據(jù)后,被主控節(jié)點(diǎn)記錄在相應(yīng)的表項(xiàng)中。
6.根據(jù)權(quán)利要求I所述的一種一種多虛擬機(jī)遷移的調(diào)度方法,其特征在于步驟五中所述的“主控節(jié)點(diǎn),依據(jù)步驟三確定的遷移映射和步驟四收集到的宿主機(jī)負(fù)載信息,用“遷移順序決定算法“,為多虛擬機(jī)安排遷移順序,并發(fā)出指令,控制各相關(guān)宿主機(jī)節(jié)點(diǎn)按照順序執(zhí)行遷移”是指根據(jù)步驟四收集到的負(fù)載信息,對(duì)步驟三計(jì)算出的遷移映射進(jìn)一步處理。依據(jù)一定原則,安排多虛擬機(jī)遷移的順序,并據(jù)此發(fā)出指令,控制各宿主機(jī)節(jié)點(diǎn)按順序執(zhí)行遷移。依據(jù)的原則可以多樣,比如依據(jù)最小負(fù)載宿主機(jī)優(yōu)先遷入,或者最大負(fù)載宿主機(jī)優(yōu)先遷出等。同時(shí),還可以兼顧到網(wǎng)絡(luò)和并行處理的要求。
全文摘要
本發(fā)明涉及一種多虛擬機(jī)遷移的調(diào)度方法,在多虛擬機(jī)遷移過程中,對(duì)虛擬機(jī)遷移的目標(biāo)宿主機(jī)進(jìn)行選擇的策略,并對(duì)多虛擬機(jī)的遷移順序進(jìn)行規(guī)劃的策略,包括讀取虛擬機(jī)劃分的目標(biāo)聚類信息;獲取系統(tǒng)內(nèi)宿主機(jī)信息及其上運(yùn)行的全部虛擬機(jī)的信息計(jì)算虛擬機(jī)聚類到目標(biāo)宿主機(jī)的合適的映射,以為虛擬機(jī)選擇合適的目標(biāo)宿主機(jī);收集宿主機(jī)的負(fù)載情況;根據(jù)負(fù)載和遷移映射,安排多虛擬機(jī)的遷移順序,并控制執(zhí)行。本發(fā)明從系統(tǒng)宏觀的角度,控制了多虛擬機(jī)遷移的總次數(shù)和總時(shí)間,使遷移效率更高。由于本發(fā)明的算法思想具有一定的普適性,同時(shí)由于將虛擬機(jī)聚類作為輸入,與算法的計(jì)算過程相剝離,具有比較廣泛的適用性。
文檔編號(hào)G06F9/48GK102968344SQ201210488210
公開日2013年3月13日 申請(qǐng)日期2012年11月26日 優(yōu)先權(quán)日2012年11月26日
發(fā)明者肖利民, 程賢初, 張振中, 藺波, 秦靜超, 劉宇航 申請(qǐng)人:北京航空航天大學(xué)