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