云數(shù)據(jù)中心中一種能量高效的虛擬機遷移方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及云數(shù)據(jù)中心中一種能量高效的虛擬機迀移 方法。
【背景技術(shù)】
[0002] 云計算是從集群、網(wǎng)格和效用計算發(fā)展而來,它是當(dāng)前數(shù)據(jù)中心動態(tài)地提供計算 資源的一種新范式。伴隨著使用付費模型的應(yīng)用,大量的計算資源和存儲資源放置在云端, 用戶可以方便地根據(jù)自己的需求從云端獲取和使用這些資源并為之付費。這樣就使得用戶 可以專注于應(yīng)用程序的開發(fā),將他們從配置服務(wù)器硬件和管理系統(tǒng)軟件等低級任務(wù)中解放 出來,極大地提高了工作效率,降低了用戶的開發(fā)成本。
[0003] 隨著云用戶數(shù)量的不斷增長,大量的云數(shù)據(jù)中心開始涌現(xiàn),由此而帶來的云數(shù)據(jù) 中心能耗問題正引起人們的密切關(guān)注。目前,平均一個云數(shù)據(jù)中心消耗的電能就相當(dāng)于 25000戶家庭一年的用電量。據(jù)估計,到2020年,云數(shù)據(jù)中心消耗的電能將會占到全球電能 消耗的2%。數(shù)據(jù)中心的高能耗不僅會導(dǎo)致用戶使用成本的增加,更重要的是還會引發(fā)全球 變暖的環(huán)境問題。因此,如何實現(xiàn)云數(shù)據(jù)中心服務(wù)性能的逐步提升的同時減少數(shù)據(jù)中心的 能耗成為學(xué)術(shù)界研究的熱點問題。虛擬化技術(shù)由于其能夠在同一個硬件主機上多路復(fù)用虛 擬機以實現(xiàn)硬件資源共享的特征,正被應(yīng)用于數(shù)據(jù)中心節(jié)能問題的研究。通過對數(shù)據(jù)中心 物理主機上各類資源的虛擬化,在物理主機上運行多個共享物理機資源的虛擬機來負責(zé)處 理不同用戶提交的任務(wù),這樣既增強了物理機的功能又隔離了各個任務(wù)之間的聯(lián)系。因而, 如果將一些物理機上的虛擬機轉(zhuǎn)移到另外一些物理機上,不僅可以提高物理機的資源利用 率,還可以關(guān)閉處于空轉(zhuǎn)狀態(tài)的主機以節(jié)省能耗。隨著虛擬機迀移技術(shù)的不斷發(fā)展,虛擬機 在不同主機之間的實時迀移成為現(xiàn)實。那么,對于云數(shù)據(jù)中心資源消耗少的物理主機,就可 以使用虛擬機實時迀移技術(shù)將在它上面運行著的虛擬機全部迀移到其他的物理主機上,然 后關(guān)閉該物理主機,降低數(shù)據(jù)中心的能耗。但是,虛擬機的迀移也會消耗系統(tǒng)資源引起能 耗的增加,同時也會降低系統(tǒng)的服務(wù)質(zhì)量;另外,由于云用戶對于資源需求往往是動態(tài)變化 的,在利用虛擬機實時迀移技術(shù)完成服務(wù)器聚集之后,負載的動態(tài)變化特性會導(dǎo)致宿主主 機內(nèi)的虛擬機資源需求總和超出物理機的資源容量,造成系統(tǒng)阻塞、服務(wù)響應(yīng)時間變長,違 反云用戶和云服務(wù)提供者之間協(xié)商制定的服務(wù)水平協(xié)議(SLA)。因此,如何通過虛擬機實時 迀移技術(shù)來減少云數(shù)據(jù)中心活動主機的數(shù)量同時盡可能地滿足SLA成為實現(xiàn)云數(shù)據(jù)中心 節(jié)能急需解決的問題。
[0004] 經(jīng)對現(xiàn)有文獻檢索發(fā)現(xiàn),相關(guān)文獻如下:
[0005] Beloglazov Anton 于 2〇11 年在《Concurrency Computat. :PractExper》中的 "Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in Cloud data centers" 一文,將虛擬機聚集過程分成四步,即(I)判斷一個主機在何時成為過載主機, (2)從過載主機中選擇應(yīng)該迀移出去的虛擬機,(3)判斷一個主機在何時成為輕載主機并 選擇其上的所有虛擬機,(4)放置這些待迀移的虛擬機。為了找出過載主機,文章中提出了 絕對中位差法(MD),四分差法(IR),局部回歸(LR)和魯棒局部回歸法(RLR)。對于虛擬 機的選擇,文中提出了最小迀移時間法(MMT),隨機選擇(RC)和最大相關(guān)性法(MC)。另外, 文中將CPU利用率最低的主機判定為輕載主機(SM),使用PABFD算法放置待迀移的虛擬機, 該算法旨在將虛擬機放置到功耗增加最少的物理主機上。文中的實驗結(jié)果表明LR/SM/MMT/ PABFD這樣的組合策略的性能要高于其它方法。
[0006] Abbas Horri 于 2014 年在《J Supercomput》中的 "Novel resource allocation algorithms to performance and energy efficiency in cloud computing" 一文,提出 VDT算法用于虛擬機聚集過程中的輕載物理主機選擇,該算法將物理機的CPU利用率與該 物理主機上的虛擬機數(shù)量進行加權(quán)求和并選擇所求得的和值最小的主機作為輕載主機;另 外,提出UMC算法用于為待迀移的虛擬機尋找宿主主機,即為待迀移的虛擬機選擇與其相 關(guān)性最小的物理主機作為其宿主主機。實驗結(jié)果表明在虛擬機迀移數(shù)量和服務(wù)質(zhì)量上都比 組合策略(LR/SM/MMT/PABFD)有較大的提高。
[0007] 綜上所述,雖然云數(shù)據(jù)中心的節(jié)能和系統(tǒng)的服務(wù)質(zhì)量在不斷改善,但是還有一些 問題有待于進一步的研究:
[0008] 1.雖然已有研究表明,數(shù)據(jù)中心物理主機的能耗和CPU利用率成正比,但是如果 僅從CPU利用率或者CPU利用率與虛擬機數(shù)量加權(quán)和的角度來判定輕載主機,對于由異構(gòu) 節(jié)點組成的數(shù)據(jù)中心來說,不同的物理節(jié)點上的CPU利用率的比較就失去了意義;另外,由 于異構(gòu)物理主機節(jié)點的初始能耗不同,對于利用率相近的異構(gòu)主機節(jié)點,按照上述方法選 擇輕載主機顯然不是最有利于數(shù)據(jù)中心的節(jié)能。因此,輕載主機的判定方法必須考慮到主 機節(jié)點能量異構(gòu)的特點,同時能夠體現(xiàn)出關(guān)閉該主機對云數(shù)據(jù)中心節(jié)能的貢獻。
[0009] 2.上述的PABFD方法從物理主機能量增加最小的角度來放置待迀移的虛擬機,但 是該方法在異構(gòu)節(jié)點的數(shù)據(jù)中心將趨向于將虛擬機集中于絕對容量較大的主機節(jié)點上。這 樣,當(dāng)主機的負載變動變化時,這些主機更容易出現(xiàn)過資源需求超出主機容量的情況,導(dǎo)致 主機過載,服務(wù)質(zhì)量下降。因此,在放置虛擬機時必須考慮到負載的動態(tài)特性和虛擬機數(shù)量 對于主機狀態(tài)的影響。
[0010] 3.對于大規(guī)模的云數(shù)據(jù)中心,上述的UMC算法在為每一個虛擬機選擇宿主主機 時都必須遍歷所有的物理主機并計算相關(guān)性系數(shù),算法的時間成本較高,且實時性也無法 保證。因此,需要設(shè)計滿足實時性要求的算法。
【發(fā)明內(nèi)容】
[0011] 針對現(xiàn)有技術(shù)的上述缺陷,本發(fā)明提供了云數(shù)據(jù)中心中一種能量高效的虛擬機迀 移方法。所述方法包括以下步驟:
[0012] 步驟a :云數(shù)據(jù)中心物理主機和虛擬機資源使用的監(jiān)測:在每個物理主機節(jié)點上 運行著的虛擬機管理器對該物理機以及運行在該物理機內(nèi)的虛擬機的資源使用情況進行 實時監(jiān)控,并且每隔一段時間記錄一次當(dāng)前物理主機的CPU資源使用狀態(tài);
[0013] 步驟b :云數(shù)據(jù)中心過載主機的判斷:過載主機的判斷是根據(jù)本地管理器中記錄 的物理主機的CPU資源利用率日志,利用資源預(yù)測方法來預(yù)測該物理主機上運行著的虛擬 機使用的CPU資源的總和是否將會超過該物理主機容量的情況;
[0014] 步驟c :云數(shù)據(jù)中心過載物理主機的處理:如果存在過載主機,則在該過載主機中 選擇正在運行著的虛擬機,按照虛擬機迀移策略對選中的虛擬機進行迀移,直到該過載主 機恢復(fù)到正常工作狀態(tài);如果沒有監(jiān)測到過載主機,則返回到步驟b繼續(xù)監(jiān)測;
[0015] 步驟d :云數(shù)據(jù)中心輕載物理主機的判定:根據(jù)云數(shù)據(jù)中心各個物理主機的CPU使 用情況,找出輕載狀態(tài)的物理機,然后將其上運行著的所有虛擬機使用虛擬機迀移策略迀 移出去,最后關(guān)閉該物理主機以實現(xiàn)云數(shù)據(jù)中心的節(jié)能;若在輕載主機上運行著的虛擬機 中存在一個或者多個虛擬機找不到可用的宿主主機,則不進行虛擬機迀移,該輕載主機繼 續(xù)運行;該過程反復(fù)迭代直到數(shù)據(jù)中心不再出現(xiàn)過載主機才停止。
[0016] 優(yōu)選地,所述步驟c中的虛擬機迀移策略的具體過程如下:
[0017] 首先根據(jù)各個虛擬機當(dāng)前的CPU使用量對等待迀移的虛擬機進行升序排列,得到 虛擬機迀移列表VMlist。然后對數(shù)據(jù)中心的各個物理主機按照其當(dāng)前的CPU利用率進行降 序排列,得到候選主機列表PMlist。為了避免出現(xiàn)重復(fù)迀移的情況,那些需要迀移虛擬機的 主機不在候選主機之列;同時,考慮到不影響輕載主機的判定,所有候選主機的CPU利用率 都大于給定閾值THL。然后根據(jù)虛擬機列表VMlist和候選主機列表PMlist中的順序,對于 一個物理主機是否接受虛擬機的判斷規(guī)則如下:
[0018] 假定物理主機的當(dāng)前CPU利用率為,而此時在該物理主機上運行著的虛擬機 數(shù)量為N,s代表不使物理主機性能下降的安全參數(shù),y代表該物理機上剩余的可用CPU資 源。那么物理主機狀態(tài)可以分為三種情況進行討論,如下所示,
[0019] 則待接受的虛擬機在物理主機中的CPU利用率要小于
[0020] 則待接受的虛擬機在物理主機中的CPU利用率要大于
[0021] 則待接受的虛擬機在物理主機中的CPU利用率要接近或者等于
[0022] 在上述的三種情況中,假定被接受的虛擬機在滿足上述條件的同時,其資源需求 不會超出物理主機的可用資源容量,即不會導(dǎo)致物理主機處于過載狀態(tài)。這樣,在遍歷完待 迀移的虛擬機列表VMlist后,所有的虛擬機都完成迀移。
[0023] 優(yōu)選地,所述步驟d中的輕載主機判定過程如下:
[0024] 根據(jù)數(shù)據(jù)中心各個物理主機的CPU利用率情況,設(shè)定一個CPU利用率的下限值 THL,將所有CPU利用率處于該閾值以下的主機標(biāo)記為候選主機,得到一個候選主機集合。 對于該集合中的每個主機,計算其功耗的平均值pZwe,計算式如下:
[0025]
[0026] 上式中,Pj代表候選主機集合中主機j的能耗,M和表主機j中當(dāng)前運行著的虛 擬機的數(shù)量。然后,通過比較巧""的大小,選擇候選主機集合中^/胃值最大的主機作為輕載 主機。
[0027] 本發(fā)明的有益效果:
[0028] 本發(fā)明考