專利名稱:一種虛擬機(jī)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種虛擬機(jī)調(diào)度方法,可優(yōu)化虛擬化計算環(huán)境的性能、降低系統(tǒng)能耗,
屬于分布式系統(tǒng)和計算機(jī)網(wǎng)絡(luò)領(lǐng)域。
背景技術(shù):
云計算模型把計算看成是等同于水電的資源。計算用戶只需要購買在線的計算服務(wù)而不必建設(shè)機(jī)房購買服務(wù)器,因此節(jié)省了投資、降低了成本。其發(fā)展前景得到了工業(yè)界的廣泛認(rèn)同。從云計算服務(wù)提供商的角度看,這涉及到建立和維護(hù)大型數(shù)據(jù)中心,其中有很多問題需要解決。 一個問題是負(fù)載波動和節(jié)能之間的矛盾一方面,用戶對計算資源的需求動態(tài)變化,數(shù)據(jù)中心需要足夠的服務(wù)器以容納峰值負(fù)載;另一方面,大型數(shù)據(jù)中心的服務(wù)器數(shù)量龐大,電能成本驚人,如何降低其能耗非常重要。 除物理改造現(xiàn)有數(shù)據(jù)中心和在新建時采取節(jié)能方法外,由虛擬化催生的服務(wù)器整合技術(shù)提供了另一種降低數(shù)據(jù)中心能耗的方法。多個服務(wù)(一般是高峰期互相錯開的)被包裝在各自的虛擬機(jī)中,共享一臺物理服務(wù)器 一-只要物理服務(wù)器能滿足這些服務(wù)的總需求即可。雖然這種方法提高了資源利用率,但是,準(zhǔn)確把握服務(wù)的負(fù)載規(guī)律,確定服務(wù)總需求的峰值是非常困難的,或者是不可能的。對于這個問題,有研究成功利用虛擬機(jī)的熱遷移技術(shù)在物理服務(wù)器過載時,把其上的某些服務(wù)轉(zhuǎn)移到負(fù)載較輕的物理服務(wù)器上以緩解上述問題。這種方法能適應(yīng)負(fù)載升高時的變化,然而在負(fù)載降低的時候不能保證服務(wù)器整合的效果。綜上所述,現(xiàn)有的方法無法兼顧負(fù)載均衡和服務(wù)器整合帶來的節(jié)能效果。
發(fā)明內(nèi)容
本發(fā)明的目的是,針對目前虛擬化數(shù)據(jù)中心對節(jié)能和負(fù)載均衡不能兼顧的問題,提供一種虛擬機(jī)調(diào)度方法,該方法基于裝箱算法,在系統(tǒng)負(fù)載較高的情況下均衡負(fù)載保證服務(wù)質(zhì)量;在負(fù)載較低的情況下進(jìn)行服務(wù)器整合,保持較低的能耗;通過集中的決策點進(jìn)行計算,使虛擬機(jī)按照負(fù)載的變化在物理機(jī)上實現(xiàn)優(yōu)化組合,從而達(dá)到負(fù)載均衡和節(jié)能的雙重目標(biāo)。 為了實現(xiàn)這個目標(biāo),本發(fā)明的技術(shù)構(gòu)思為系統(tǒng)中的物理服務(wù)器可以認(rèn)為是同構(gòu)的。同構(gòu)是指服務(wù)器體系結(jié)構(gòu)相同,性能也相同CPU的型號,數(shù)量相同;內(nèi)存的容量相同;網(wǎng)絡(luò)接口性能相同。雖然一個大型數(shù)據(jù)中心里的物理服務(wù)器可能不完全同構(gòu),但是可以將這些服務(wù)器按照同構(gòu)關(guān)系劃分成不同的管理域。
邏輯上,系統(tǒng)方案的構(gòu)成包括 1)虛擬機(jī)分布在各物理服務(wù)器上,向用戶提供計算服務(wù),每臺物理服務(wù)器上可運(yùn)行多個虛擬機(jī)。 2)虛擬機(jī)管理器每臺物理服務(wù)器上運(yùn)行著一個虛擬機(jī)管理器,為虛擬機(jī)提供運(yùn)行平臺。
3)物理機(jī)監(jiān)控器每臺物理服務(wù)器上運(yùn)行著一個物理機(jī)監(jiān)控器,其功能有二 (1)監(jiān)視功能,用于定期搜集該物理服務(wù)器上各虛擬機(jī)的負(fù)載,即搜集每臺虛擬機(jī)對各種資源的占用情況,例如占用物理服務(wù)器CPU資源的百分比、內(nèi)存資源的百分比等;并將搜集的信息發(fā)送給虛擬機(jī)調(diào)度器。(2)控制功能,用于根據(jù)虛擬機(jī)調(diào)度器發(fā)來的調(diào)度指令遷移虛擬機(jī)或休眠物理服務(wù)器。
4)虛擬機(jī)調(diào)度器虛擬機(jī)調(diào)度器運(yùn)行在系統(tǒng)中一臺專門的監(jiān)控主機(jī)上(不必與其
他物理服務(wù)器同構(gòu)),收集從各監(jiān)視器發(fā)送來的虛擬機(jī)負(fù)載情況;它的任務(wù)是維護(hù)系統(tǒng)全
局的運(yùn)行情況,根據(jù)需要做出調(diào)度。 本發(fā)明的技術(shù)方案為 —種虛擬機(jī)調(diào)度方法,其步驟為 1)物理機(jī)監(jiān)控器定期搜集物理服務(wù)器上各虛擬機(jī)的負(fù)載并將其發(fā)送到虛擬機(jī)調(diào)度器; 2)虛擬機(jī)調(diào)度器定期將各虛擬機(jī)當(dāng)前負(fù)載數(shù)據(jù)與系統(tǒng)狀態(tài)中所保存的負(fù)載數(shù)據(jù)進(jìn)行對比,判斷出負(fù)載發(fā)生變化的虛擬機(jī)及其所在的物理服務(wù)器; 3)虛擬機(jī)調(diào)度器采用裝箱算法對負(fù)載發(fā)生變化的虛擬機(jī)進(jìn)行調(diào)整,得到虛擬機(jī)與物理服務(wù)器的目標(biāo)對應(yīng)關(guān)系; 4)虛擬機(jī)調(diào)度器比較虛擬機(jī)與物理服務(wù)器的當(dāng)前對應(yīng)關(guān)系和目標(biāo)對應(yīng)關(guān)系,生成一虛擬機(jī)調(diào)度計劃;如果調(diào)度計劃中需要調(diào)用處于休眠狀態(tài)的某物理服務(wù)器,則虛擬機(jī)調(diào)度器向物理機(jī)監(jiān)控器發(fā)出一喚醒該物理服務(wù)器的喚醒指令;
5)物理機(jī)監(jiān)控器根據(jù)虛擬機(jī)調(diào)度計劃對虛擬機(jī)進(jìn)行調(diào)度。 進(jìn)一步的,所述方法中,完成所述對虛擬機(jī)進(jìn)行調(diào)度后,虛擬機(jī)調(diào)度器向所述物理機(jī)監(jiān)控器發(fā)出對當(dāng)前空載物理服務(wù)器的休眠指令。 進(jìn)一步的,所述方法中,對于負(fù)載升高的虛擬機(jī),所述虛擬機(jī)調(diào)度器將其所在物理
服務(wù)器中最小的虛擬機(jī)依次取出,對于負(fù)載降低的虛擬機(jī),所述虛擬機(jī)調(diào)度器將其從所在
物理服務(wù)器中取出;然后所述虛擬機(jī)調(diào)度器采用裝箱算法對取出的虛擬機(jī)進(jìn)行調(diào)整,得到
虛擬機(jī)與物理服務(wù)器的目標(biāo)對應(yīng)關(guān)系。 進(jìn)一步的,所述物理服務(wù)器為同構(gòu)物理服務(wù)器。 進(jìn)一步的,如果所述物理服務(wù)器為異構(gòu)物理服務(wù)器,則根據(jù)同構(gòu)關(guān)系將物理服務(wù)
器劃分為多個管理域,每一管理域中所包括的物理服務(wù)器為同構(gòu)物理服務(wù)器。 進(jìn)一步的,所述裝箱算法為在線裝箱算法。 進(jìn)一步的,所述虛擬機(jī)調(diào)度器內(nèi)包括一狀態(tài)維護(hù)模塊,所述狀態(tài)維護(hù)模塊根據(jù)各
物理機(jī)監(jiān)控器搜集的虛擬機(jī)負(fù)載數(shù)據(jù)獲得系統(tǒng)全局的負(fù)載信息,更新系統(tǒng)狀態(tài)。 進(jìn)一步的,所述虛擬機(jī)調(diào)度器定期運(yùn)行頻率小于所述物理機(jī)監(jiān)控器定期運(yùn)行頻率。 進(jìn)一步的,所述虛擬機(jī)調(diào)度器根據(jù)各虛擬機(jī)當(dāng)前的負(fù)載數(shù)據(jù)估計虛擬機(jī)未來的負(fù)載,所述虛擬機(jī)調(diào)度器將虛擬機(jī)未來的負(fù)載與所保存的負(fù)載數(shù)據(jù)進(jìn)行對比,判斷出負(fù)載數(shù)據(jù)發(fā)生變化的虛擬機(jī)及其所在的物理服務(wù)器。 進(jìn)一步的,所述估計虛擬機(jī)未來的負(fù)載方法為虛擬機(jī)調(diào)度器取所述物理機(jī)監(jiān)控
器最近幾次發(fā)來的某虛擬機(jī)負(fù)載數(shù)據(jù)中的最大值作為該虛擬機(jī)的未來負(fù)載。 本方案的工作機(jī)制如下
4
虛擬機(jī)調(diào)度器定期運(yùn)行,搜集來自物理機(jī)監(jiān)控器定期報告的各虛擬機(jī)的負(fù)載數(shù)據(jù)。根據(jù)這些數(shù)據(jù),它首先估計虛擬機(jī)未來的負(fù)載(例如,取最近幾次測量值的最大值);然后利用裝箱算法得出虛擬機(jī)的調(diào)整列表,并轉(zhuǎn)化為遷移指令下發(fā)給各個物理機(jī)監(jiān)控器。物理機(jī)監(jiān)控器根據(jù)遷移指令執(zhí)行虛擬機(jī)遷移,如果遷移目標(biāo)是一部休眠狀態(tài)的物理服務(wù)器,先將此物理服務(wù)器喚醒。完成調(diào)度后,最后虛擬機(jī)調(diào)度器休眠空閑的物理服務(wù)器。下面分階段說明調(diào)度器每個周期的工作過程。
第一階段計算調(diào)度計劃 在本階段,在虛擬機(jī)的預(yù)測負(fù)載和系統(tǒng)當(dāng)前布局(即系統(tǒng)當(dāng)前狀態(tài)虛擬機(jī)與物理服務(wù)器的對應(yīng)關(guān)系)的基礎(chǔ)上,虛擬機(jī)調(diào)度器利用裝箱算法計算出調(diào)度計劃。具體而言,裝箱算法的輸入包括系統(tǒng)中所有虛擬機(jī)的負(fù)載、系統(tǒng)當(dāng)前虛擬機(jī)與物理服務(wù)器的對應(yīng)關(guān)系;輸出是由一組虛擬機(jī)遷移列表組成的調(diào)度計劃。 本方案用如下的方法把問題轉(zhuǎn)化為裝箱問題把物理服務(wù)器看作大小為1的箱子;把虛擬機(jī)看作物品,大小等于虛擬機(jī)各資源類型的負(fù)載與物理服務(wù)器容量比值的最大值(例如,一個虛擬機(jī)的各類負(fù)載與物理服務(wù)器容量的比值分別是CPU二 30%,內(nèi)存=25%,網(wǎng)絡(luò)10 = 5%,磁盤10 = 3%,那么這個虛擬機(jī)物品的大小就是0. 3);在計算物品大小時,物理服務(wù)器的容量可比真實容量稍小,如內(nèi)存取實際內(nèi)存數(shù)的90%或更少,目的是預(yù)留一小部分空間以吸收負(fù)載的瞬時波動;虛擬機(jī)在物理服務(wù)器上運(yùn)行,則看成是物品在箱子中。如此,問題轉(zhuǎn)化為裝箱問題如何把這些物品裝入到箱子中,使得所用箱子數(shù)最少。一方面裝箱的解法保證了虛擬機(jī)的負(fù)載能得到滿足,另一方面,裝箱算法努力讓所使用的箱子(物理服務(wù)器)盡可能少;等同于讓盡可能多的服務(wù)器空載休眠。裝箱算法有很多種,它們在最優(yōu)近似度和計算復(fù)雜度方面都各不相同。這里可以根據(jù)系統(tǒng)動態(tài)性的需要選擇適合的裝箱算法來處理。 裝箱算法的輸出是物品(虛擬機(jī))與箱子(物理服務(wù)器)的對應(yīng)關(guān)系。將該對應(yīng)關(guān)系和系統(tǒng)當(dāng)前對應(yīng)關(guān)系比較,可知虛擬機(jī)的位置變化情況,這些變化情況可表示為一個集合,每個元素形如某虛擬機(jī)從物理服務(wù)器A遷移到物理服務(wù)器B)。這個集合就是調(diào)度計劃。
第二階段實施調(diào)度計劃 根據(jù)調(diào)度計劃,若有必要,調(diào)度器先喚醒即將承擔(dān)負(fù)載的物理服務(wù)器。然后向物理機(jī)監(jiān)控器發(fā)出遷移虛擬機(jī)的指令,并等待調(diào)度完成。
第三階段休眠空載物理服務(wù)器 調(diào)度完成之后,若干物理服務(wù)器將處于空載的狀態(tài);調(diào)度器向其上的監(jiān)控器發(fā)出休眠命令。
與現(xiàn)有技術(shù)相比,本發(fā)明的效果包括兩方面 —是裝箱算法會消除物理服務(wù)器過載的情況,解決系統(tǒng)中的熱點問題,具有負(fù)載均衡的效果。 二是隨負(fù)載的變化分配數(shù)據(jù)中心的物理服務(wù)器,處于空閑的物理服務(wù)器被休眠,而休眠能耗只有運(yùn)行能耗的幾十分之一,因此在非高峰時期能節(jié)省大量不必要的能源開銷;
圖1表示數(shù)據(jù)中心的系統(tǒng)結(jié)構(gòu)示意圖;
圖2表示實施案例的系統(tǒng)邏輯結(jié)構(gòu)圖;
圖3表示物理機(jī)監(jiān)控器軟件的數(shù)據(jù)流圖;
圖4表示虛擬機(jī)調(diào)度器軟件的數(shù)據(jù)流圖; 圖5表示虛擬機(jī)調(diào)度器軟件中,虛擬機(jī)調(diào)度模塊的算法流程圖。
具體實施例方式
現(xiàn)以一虛擬化數(shù)據(jù)中心為例,詳細(xì)說明該方案的實施方式。 數(shù)據(jù)中心的系統(tǒng)結(jié)構(gòu)示意如圖1所示。物理服務(wù)器同時接入調(diào)度專用局域網(wǎng)和數(shù) 據(jù)中心局域網(wǎng),前者承載遷移流量和調(diào)度指令,后者承載業(yè)務(wù)流量;監(jiān)控主機(jī)接入調(diào)度專用 局域網(wǎng);物理服務(wù)器通過存儲區(qū)域網(wǎng)絡(luò)或IP網(wǎng)絡(luò)(圖中未示出)連接到集中存儲設(shè)備,為 虛擬機(jī)提供存儲。 虛擬機(jī)調(diào)度方案的邏輯結(jié)構(gòu)如圖2所示。虛擬機(jī)管理器軟件將物理服務(wù)器虛擬成 多個虛擬機(jī),構(gòu)成了虛擬化數(shù)據(jù)中心的應(yīng)用運(yùn)行平臺;而物理機(jī)監(jiān)控器軟件調(diào)用虛擬機(jī)管 理器軟件完成對物理服務(wù)器的狀態(tài)監(jiān)視和控制;虛擬機(jī)調(diào)度器一方面從物理機(jī)監(jiān)控器搜集 全系統(tǒng)的負(fù)載信息,另一方面向它發(fā)送遷移指令和休眠/喚醒指令。物理機(jī)監(jiān)控器包括狀 態(tài)報告模塊和命令處理模塊兩部分(如圖3所示),其中狀態(tài)報告模塊定期(如l分鐘)從 虛擬機(jī)管理器獲取本機(jī)上所有虛擬機(jī)的負(fù)載信息,然后通過網(wǎng)絡(luò)匯報給虛擬機(jī)調(diào)度器;命 令處理模塊等待來自虛擬機(jī)調(diào)度器的調(diào)度指令,得到指令后調(diào)用虛擬機(jī)管理器實施。虛擬 機(jī)調(diào)度器則由狀態(tài)維護(hù)模塊、系統(tǒng)狀態(tài)、虛擬機(jī)調(diào)度模塊三部分組成(如圖4所示);其中 狀態(tài)維護(hù)模塊根據(jù)各物理機(jī)監(jiān)控器獲得系統(tǒng)全局的負(fù)載信息更新系統(tǒng)狀態(tài),并淘汰掉過舊 的歷史信息,使系統(tǒng)狀態(tài)不致過度膨脹又包含足夠信息;虛擬機(jī)調(diào)度模塊定期從系統(tǒng)狀態(tài) 計算調(diào)度計劃(或調(diào)整列表),運(yùn)行頻率低于物理機(jī)監(jiān)控器報告負(fù)載的頻率。虛擬機(jī)調(diào)度模 塊的算法流程圖如圖5所示。其具體過程在發(fā)明內(nèi)容一章中已描述。這里介紹調(diào)度中可用 的裝箱算法。 與傳統(tǒng)的裝箱問題不同,本方案中的物品大小(虛擬機(jī)負(fù)載)是變化的;而且在初 始狀態(tài),物品已經(jīng)在箱子中;把物品全部拿出來重新裝入箱子(物理服務(wù)器)會引起大量遷 移是難以接受的。本算法的思路是以當(dāng)前裝箱狀態(tài)為基礎(chǔ),用數(shù)量有限的調(diào)整(遷移)達(dá) 到優(yōu)化效果。 本算法在一種在線裝箱算法(參考G. Gambosi, A. Postiglione, and M. Talamo, "Algorithms for the relaxed online bin-packing model,"SIAM J.Comput. Issue 5, vol. 30,2000.)的基礎(chǔ)上進(jìn)行了改進(jìn)。原算法的思路是將物品按大小分成T、 S、 L、 B四個 類型(為了簡單起見,后續(xù)表述用字母代表該類型的物品),其大小范圍分別處于(0,l/3]、 (1/3, 1/2]、 (1/2, 2/3]、 (2/3, 1]之中。為使最優(yōu)近似度1. 5得以保證,S和S放一起,B單 獨(dú)放,L和T放一起,T和T或L放一起;并且在處理新物品時確保最多存在一個只裝了 S的 箱子;最多存在一個剩余空間大于1/3的、只裝著T物品的箱子。但是,原算法不涉及物品 大小變化。為了解決物品變化時的處理,我們依次考察大小發(fā)生變化的所有物品,及時調(diào)整 所在箱子的物品,以保證原算法的限制條件得以滿足,保證理論的最優(yōu)近似度。舉例說明某物品從L變成了 B,那么我們判斷該物品所在箱子是否有T物品,如果有,把這些T物品取 出作為新物品放入;再如,某物品從B變成了 S,我們把,S從這個箱子中取出作為新物品放 入。 為了處理方便,我們引入物品組G的概念同箱子的若干T物品可組成一個G,箱
子中的兩個G大小之和必大于1/3。 按照內(nèi)部物品類型,箱子可分為7種類型 B-只裝了一個B物品的箱子 L-只裝了一個L物品的箱子 LT-裝了一個L物品和若干個T物品的箱子 S-只裝了一個S物品的箱子 SS-裝了兩個S物品的箱子 LS-裝了一個L物品和一個S物品的箱子 T-裝了若干個T物品的箱子,這類箱子可分為兩種一是剩余空間少于1/3的,記 為FT ;另一種是剩余空間不少于1/3的記為UT。 為了描述方便,用ULLT表示剩余空間小于1/3的LT箱或L箱。另外,再定義一組 操作 new (x):取一個空箱,放入物品(組)x
move (x, b):將物品(組)x放入b箱
hot (b):檢查b箱中物品大小是否超過1 f i 1 lwith (x) , x是一個T物品或物品組G :若存在ULLT箱,則把物品(組)x放入 之;否則若存在UT箱則把物品(組)放入之;否則new(x) f ill (b) , b是一個L箱或LT箱循環(huán)執(zhí)行以下步驟,直到b的剩余空間小于1/3 或系統(tǒng)中不再有T箱為止若存在UT箱,從UT中取一個G放入b ;否則從T箱取一個G放 入b insert_S-item(x) , x是一個S物品若存在S箱,則move (x, b),否則new(x)
release (b) , b是 一 個箱子循環(huán)執(zhí)行直到b為空,取b中物品組G,執(zhí)行 fillwith(G) adjust (b) , b是一個L箱或LT箱第一步,循環(huán)執(zhí)行以下步驟直到hot (b)為假
取b中任意G, fillwith(G);第二步,若b的空間大于1/3, fill(b) 基于以上定義,下面給出了一部分關(guān)于改進(jìn)后的裝箱算法描述 依次考察在發(fā)生變化的所有物品item,記物品所在的箱子為ob,根據(jù)物品大小發(fā)
生變化的不同情況(用X — Y表示物品從類型X變成類型Y)分別處理 B —L:fill(ob)B —S:if3b G S-bin then move (item, b);
B — T :if 3 b G ULLT-bin then move (item, b)
else if曰b G UT-bin then move (item, b)
L — B :release (ob);
L — L :adjust(ob);
L — S :release (ob);
7
if3b G S-bin then move (item, b); L —T:ifgT-bin then while 3 b e UT-bin do move (g, b) , g e ob else while日b G ULLT-bin do move (g, b) , g e ob S —B:if3xE (S-item, ob) then insert S-item(x); 這里x G (S-item,ob)指x是ob中的一個S物品,后面看到的(L-item,ob)表達(dá)類似的含義。 S —L:if3xG (S-item, ob) then insert S-item(x); fill(ob); S —T:if3x e (S_item, ob) and 3 b e S-bin the翻ve(x,b); if3b G ULLT-bin then move (item, b) else if曰b G UT-bin then move (item, b) else if 3 x G (S-item, ob) then new (item) T —B:if3xE (L-item, ob) then fill(訓(xùn)(x)); release (ob); T —L:if3x G (L-item, ob) and x 6 = item then fill(new(x)); adjust (ob); T — S :if 3x e (L-item, ob) then insert S-item(item) ;fill (bin(x)); else if日b e S-bin then while 3b' G UT-bin and 3 g G ob do move (g, b'); move (item, b); else release (ob); T — T :if 3L-item in ob then adjust (ob); else if hot(ob)then fillwith(item); else while gap (ob) , 1 = 3 and 3 b G UT-bin do move (g, b) , g G b。
權(quán)利要求
一種虛擬機(jī)調(diào)度方法,其步驟為1)物理機(jī)監(jiān)控器定期搜集物理服務(wù)器上各虛擬機(jī)的負(fù)載并將其發(fā)送到虛擬機(jī)調(diào)度器;2)虛擬機(jī)調(diào)度器定期將各虛擬機(jī)當(dāng)前負(fù)載數(shù)據(jù)與系統(tǒng)狀態(tài)中所保存的負(fù)載數(shù)據(jù)進(jìn)行對比,判斷出負(fù)載發(fā)生變化的虛擬機(jī)及其所在的物理服務(wù)器;3)虛擬機(jī)調(diào)度器采用裝箱算法對負(fù)載發(fā)生變化的虛擬機(jī)進(jìn)行調(diào)整,得到虛擬機(jī)與物理服務(wù)器的目標(biāo)對應(yīng)關(guān)系;4)虛擬機(jī)調(diào)度器比較虛擬機(jī)與物理服務(wù)器的當(dāng)前對應(yīng)關(guān)系和目標(biāo)對應(yīng)關(guān)系,生成一虛擬機(jī)調(diào)度計劃;如果調(diào)度計劃中需要調(diào)用處于休眠狀態(tài)的某物理服務(wù)器,則虛擬機(jī)調(diào)度器向物理機(jī)監(jiān)控器發(fā)出一喚醒該物理服務(wù)器的喚醒指令;5)物理機(jī)監(jiān)控器根據(jù)虛擬機(jī)調(diào)度計劃對虛擬機(jī)進(jìn)行調(diào)度。
2. 如權(quán)利要求1所述的方法,其特征在于完成所述對虛擬機(jī)進(jìn)行調(diào)度后,虛擬機(jī)調(diào)度 器向所述物理機(jī)監(jiān)控器發(fā)出對當(dāng)前空載物理服務(wù)器的休眠指令。
3. 如權(quán)利要求1或2所述的方法,其特征在于對于負(fù)載升高的虛擬機(jī),所述虛擬機(jī)調(diào)度 器將其所在物理服務(wù)器中最小的虛擬機(jī)依次取出,對于負(fù)載降低的虛擬機(jī),所述虛擬機(jī)調(diào) 度器將其從所在物理服務(wù)器中取出;然后所述虛擬機(jī)調(diào)度器采用裝箱算法對取出的虛擬機(jī) 進(jìn)行調(diào)整,得到虛擬機(jī)與物理服務(wù)器的目標(biāo)對應(yīng)關(guān)系。
4. 如權(quán)利要求3所述的方法,其特征在于所述物理服務(wù)器為同構(gòu)物理服務(wù)器。
5. 如權(quán)利要求3所述的方法,其特征在于如果所述物理服務(wù)器為異構(gòu)物理服務(wù)器,則 根據(jù)同構(gòu)關(guān)系將物理服務(wù)器劃分為多個管理域,每一管理域中所包括的物理服務(wù)器為同構(gòu) 物理服務(wù)器。
6. 如權(quán)利要求3所述的方法,其特征在于所述裝箱算法為在線裝箱算法。
7. 如權(quán)利要求1所述的方法,其特征在于所述虛擬機(jī)調(diào)度器內(nèi)包括一狀態(tài)維護(hù)模塊, 所述狀態(tài)維護(hù)模塊根據(jù)各物理機(jī)監(jiān)控器搜集的虛擬機(jī)負(fù)載數(shù)據(jù)獲得系統(tǒng)全局的負(fù)載信息, 更新系統(tǒng)狀態(tài)。
8. 如權(quán)利要求1或7所述的方法,其特征在于所述虛擬機(jī)調(diào)度器定期運(yùn)行頻率小于所 述物理機(jī)監(jiān)控器定期運(yùn)行頻率。
9. 如權(quán)利要求8所述的方法,其特征在于所述虛擬機(jī)調(diào)度器根據(jù)各虛擬機(jī)當(dāng)前的負(fù)載 數(shù)據(jù)估計虛擬機(jī)未來的負(fù)載,所述虛擬機(jī)調(diào)度器將虛擬機(jī)未來的負(fù)載與所保存的負(fù)載數(shù)據(jù) 進(jìn)行對比,判斷出負(fù)載數(shù)據(jù)發(fā)生變化的虛擬機(jī)及其所在的物理服務(wù)器。
10. 如權(quán)利要求9所述的方法,其特征在于所述估計虛擬機(jī)未來的負(fù)載方法為虛擬機(jī) 調(diào)度器取所述物理機(jī)監(jiān)控器最近幾次發(fā)來的某虛擬機(jī)負(fù)載數(shù)據(jù)中的最大值作為該虛擬機(jī) 的未來負(fù)載。
全文摘要
本發(fā)明公開了一種虛擬機(jī)調(diào)度方法,屬于計算機(jī)網(wǎng)絡(luò)領(lǐng)域。本方法為1)在每臺物理服務(wù)器上運(yùn)行一物理機(jī)監(jiān)控器,用于定期搜集各虛擬機(jī)的負(fù)載并將其發(fā)送到虛擬機(jī)調(diào)度器,以及接收并執(zhí)行虛擬機(jī)調(diào)度器發(fā)來的指令;2)虛擬機(jī)調(diào)度器定期判斷出負(fù)載數(shù)據(jù)發(fā)生變化的虛擬機(jī)及其所在的物理服務(wù)器;3)虛擬機(jī)調(diào)度器采用裝箱算法對負(fù)載數(shù)據(jù)發(fā)生變化的虛擬機(jī)進(jìn)行調(diào)整,得到虛擬機(jī)與物理服務(wù)器的目標(biāo)對應(yīng)關(guān)系;4)虛擬機(jī)調(diào)度器比較虛擬機(jī)與物理服務(wù)器的當(dāng)前對應(yīng)關(guān)系和目標(biāo)對應(yīng)關(guān)系,生成一虛擬機(jī)調(diào)度計劃;5)物理機(jī)監(jiān)控器根據(jù)虛擬機(jī)調(diào)度計劃對虛擬機(jī)進(jìn)行調(diào)度。與現(xiàn)有技術(shù)相比,本發(fā)明具有負(fù)載均衡的效果,同時休眠處于空閑的物理服務(wù)器,進(jìn)一步降低能耗。
文檔編號G06F1/32GK101719081SQ20091023836
公開日2010年6月2日 申請日期2009年12月1日 優(yōu)先權(quán)日2009年12月1日
發(fā)明者宋維佳, 羅海鵬, 肖臻, 陳曙威, 陳琪 申請人:北京大學(xué)