本發明屬于計算機體系內存系統結構領域,具體涉及一種虛擬機在線遷移的調度方法。
背景技術:
:隨著云計算“所付即所需”的模式的迅速興起,云數據中心任務量和規模也在不斷擴大,其電能消耗也隨之增加。據ICTresearch統計,2012我國數據中心能耗高達664.5億度,占當年全國工業用電量的1.8%,到2015年我國數據中心能耗高達1000億度。另外,從AmericanSocietyofHeating,RefrigeratingandAir-ConditioningEngineers(ASHRAE)的數據分析來看,整個數據中心運營成本的75%來源于基礎設施的能量消耗。數據中心的高能耗必然會降低云服務提供商的利潤率,增加碳排放量。高能耗勢必會成為制約未來云數據中心的發展的重要因素,因此如何降低云數據中心能耗是云計算系統可持續發展過程中亟待解決的問題。在研究中,降低云數據中心的功耗的同時,有可能會造成服務質量的下降,進而違背與用戶簽訂的服務等級協議(ServiceLevelAssignment,SLA),這在實際應用中是完全不能接受的。因此研究需要從降低功耗和保證服務質量兩方面入手。在提供IaaS服務的數據中心里,一般是以虛擬機的形式向用戶提供基礎設施資源,用戶可以通過訪問Web界面完成對虛擬機的訪問和資源的請求,這些虛擬機是部署在數據中心的服務器上。虛擬機的存活時間是有限的,當用戶不再需要這些資源時可以卸載相應的虛擬機,隨著用戶長時間在數據中心進行的虛擬機部署,數據中心會開啟很多服務器,相應的隨著虛擬機被卸載,數據中心硬件資源利用率會降的很低,而通過利用虛擬機在線遷移技術則可以大大的提高資源利用率降低IT成本。而當虛擬機被過度集合后,數據中心的響應時間以及服務有效性保障等都有可能無法得到保證,從而違反和用戶簽訂的服務等級協議(SLA),因此未來保證數據中心的服務質量,或者虛擬機被頻繁卸載后,資源利用率會降低,這時需要檢測數據中心的資源使用情況,必要時進行虛擬機的遷移。一般情況下虛擬機在線遷移分為如下四個步驟:1)過載檢測。檢測是否有主機過載,若有,則將該主機上的某個虛擬機遷移出去。2)輕載檢測。檢測是否有主機輕載,若有,則將該主機上全部虛擬機遷移出去并將該主機切換到待機狀態以降低能耗3)虛擬機遷出選擇。判定主機過載后遷出該主機上的哪個虛擬機。4)虛擬機重分配。將所有待遷出的虛擬機分配到其他主機。完整的虛擬機在線遷移策略都會在以上四個方面進行優化。目前,已有一些研究致力于優化在線遷移策略,降低云數據中心功耗。Beloglazov等人提出最小CPU利用率策略,在過載時,需要將一個或多個虛擬機遷移出去,因此需要在該主機上運行的眾多虛擬中做出選擇。最小CPU利用率策略(MinimumCPUUtilization,MCU)既是應用于這個選擇過程的。該策略的核心思想是將CPU利用率最小的虛擬機遷移出去以緩解過載。近年來有很多學者應用該理論做虛擬機在線遷移方面的研究。但是僅僅通過CPU利用率最小者一點做出決定還是有失偏頗,從試驗的效果來說效果不佳,很可能由于只遷移出去了CPU占用率最小的虛擬機而在之后的短時間內重新回到過載狀態。Abawajy等人提出MMT(MinMigrationTime)策略是在所有的虛擬機中首先選擇遷移時間最小的虛擬機,該策略的有點事充分考慮了遷移效率,將遷移帶來的對性能的影響降到最低。但是缺點也很明顯,因為并沒有將與主機資源占用率升高關系最大的虛擬機遷移出去,故不能保證按照該策略遷移后能解決該主機的過載問題,在進行遷移后有可能主機還是維持在過載狀態或瀕臨過載狀態。Anton等人提出了能源感知最佳適應降序算法(PowerAwareBestFitDecreasing,PABFD),為BFD算法在虛擬機安置問題上的推廣。BFD為解決裝箱問題的一種算法,在解決裝箱問題時,其主要思想是:先對“物品”即虛擬機進行降序排列,之后檢查所有非空“箱子”即主機,找到最合適該“物體”的“箱子”并將該物體裝入“箱子”中,如果沒有找到這樣的“箱子”則開啟“空箱”。該算法是專門為云數據中心低功耗問題研究出來的,與本課題的研究對象一致,對本課題的研究起到了重要的指導意義。技術實現要素:本發明要解決的技術問題是,提供一種虛擬機在線遷移的調度方法,在虛擬機在線遷移的過載檢測、輕載檢測、虛擬機遷出選擇以及虛擬機重分配四個步驟上添加改進算法,由于虛擬機在線遷移本身會造成一定能耗,并且會造成服務質量的降低,因此在最大化將輕載主機中的虛擬機遷移出去降低的能耗同時要對遷移有一定限制,避免“過度遷移”帶來的負面影響,以達到在降低能耗的同時保證服務質量。通過基于預測的主機過載檢測策略、動態化且限制遷移的檢測輕載算法、較優化的虛擬機遷出選擇策略以及重分配算法來優化虛擬機在線遷移的過程。一種虛擬機在線遷移的調度方法包括如下步驟:步驟1、每秒記錄一次每臺主機的CPU利用率,以及每臺主機中各個VM的CPU利用率;步驟2、預測下一時刻各個主機是否過載;步驟3、、在判定為過載的主機上選擇與主機CPU利用率上升復關系系數最大的VM遷移出去;步驟4,按照基于閾值的最小CPU利用率法找出低載主機;步驟5,將待遷移VM隊列按照能源感知最佳降序方法進行重新分配。作為優選,步驟2包括如下步驟:步驟2.1,根據主機歷史CPU利用率計算當前時刻的加權回歸曲線;步驟2.2,根據加權回歸曲線計算下一時刻主機的CPU利用率預測值;步驟2.3,根據2.2計算出的預測值判斷下一時刻主機是否會過載,具體判斷方法如下:(1)如果預測值大于等于0.9,判定主機下一時刻過載;(2)如果預測值小于0.9,判定主機下一時刻未過載。作為優選,步驟3包括如下步驟:步驟3.1,將被預測過載的主機上的各個VM的CPU利用率分別組成矩陣計算復相關系數;步驟3.2,根據3.1中得出的各個VM的復相關系數,選取其中數值最大的VM加入待遷移VM隊列。作為優選,步驟4包括如下步驟:步驟4.1,找出云計算中心中CPU利用率最低的那一臺主機;步驟4.2,將該主機的CPU利用率與進過大量實驗得出的最佳閾值0.45進行對比,并判斷該主機是否處于輕載,具體判斷方法如下:(1)如果主機CPU利用率大于等于0.45,則判定其未處于輕載狀態;(2)如果主機CPU利用率大小于0.45,則判定其處于輕載狀態。步驟4.3,將判定為輕載的主機加入待遷移隊列。與現有技術相比,本發明具有以下優點:在最大化虛擬機在線遷移帶來的能耗降低的同時,能夠盡量避免在輕載判定過程中因為不加以限制而成生的“過度遷移”現象,因此相比較于前人的研究成果,本發明遷移策略能夠在能耗上方面有進一步的下降,并且在服務質量方面遠遠優于現有的遷移策略。通過本發明方法可顯著降低云計算中心的能耗,并且相對以往的算法有更低的SLA違反率,也就是有更好的服務質量。附圖說明圖1為整個虛擬機在線遷移方法的流程圖。圖2為本發明方法功耗與無算法、前人研究最佳算法對比實驗結果示意圖;圖3為本發明方法的服務質量的標準:SLA違反率與前人最佳算法對比實驗結果示意圖。具體實施方式為使本發明的目的,技術方案和優點更加清楚明白,下文中將結合附圖對本發明的實施例進行詳細說明。本發明所涉及的是面向虛擬機遷移的高能效遷移策略,以一個具有800個物理節點的云數據中心為例,所有主機模擬為華為FusionServerRH2288H。運行的模擬程序是CloudSim3.0.2,使用的模擬數據是從PlanetLab項目中隨機采集的十天的數據,也就是共十組workload。具體步驟如下:步驟1,每秒記錄一次每臺主機的CPU利用率,以及每臺主機中各個VM的CPU利用率;步驟2,利用局部加權回歸法預測下一時刻各個主機是否過載;步驟2.1,根據主機歷史CPU利用率計算當前時刻的局部加權回歸曲線其中的a,b是由最小二乘法(1)得出的Σi=1nwi(x)(yi-a-bxi)2---(1)]]>其中n為記錄的歷史CPU利用率數量,xi為第i個時刻,yi為第i個時刻該主機的CPU利用率。權重函數wi(x)由(2)得出wi(x)=T(Δi(xk)Δ1(xk))=(1-(xk-xixk-x1)3)3---(2)]]>其中xk為k點時間,xi為i點時間,Δi(xk)為k點到i點的時間差,Δ1(xk)為k點到最初記錄時間的時間差。權重函數中的核心T由(3)得出T(x)(1-|x|3)3,|x|<10,otherwise---(3);]]>其中x為時間。步驟2.2,根據步驟2.1中求出的加權回歸曲線計算下一時刻主機的CPU利用率預測值步驟2.3,根據2.2計算出的預測值判斷下一時刻主機是否會過載,具體判斷方法如下:(1)如果預測值大于等于0.9,判定主機下一時刻過載;(2)如果預測值小于0.9,判定主機下一時刻未過載;步驟3,通過步驟2,在判定為過載的主機上選擇與主機CPU利用率復關系系數最大的VM遷移出去;步驟3.1,將被預測過載的主機上的各個VM的CPU利用率分別組成矩陣計算復相關系數。以一個VM為例,將除該VM以外的同主機VM的CPU利用率歷史組成矩陣表示為X1,X2,…Xn,將該VM的CPU利用率歷史表示為Y,如(4)所示。其中X矩陣里以任意一個元素xa,b為例,其中a為第a臺虛擬機,b為第b個時刻。則xa,b為第a臺虛擬機在b時刻的CPU利用率。yn為當前評估的虛擬機在第n個時刻的CPU利用率。則復相關系數R2如(5)所示。R2=[Σi=1n(yi-y‾)(y^i-y‾)]Σi=1n(yi-y‾)2Σi=1n(y^i-y‾)2=Σi=1n(y^i-y‾)2Σi=1n(yi-y‾)2---(5)]]>其中,yi為在i時刻當前評估的虛擬機的CPU利用率,為當前評估的虛擬機的CPU利用率的平均值。其中的值如(6)所示y^=Xbb=(XTX)-1XTy---(6);]]>步驟3.2,根據3.1中得出的各個VM的復相關系數,選取其中數值最大的VM加入待遷移VM隊列;步驟4,按照基于閾值的最小CPU利用率法找出低載主機;步驟4.1,找出云計算中心中CPU利用率最低的那一臺主機;步驟4.2,將該主機的CPU利用率與進過大量實驗得出的最佳閾值0.45進行對比,并判斷該主機是否處于輕載,具體判斷方法如下:(1)如果主機CPU利用率大于等于0.45,則判定其未處于輕載狀態;(2)如果主機CPU利用率大小于0.45,則判定其處于輕載狀態;步驟4.3,將判定為輕載的主機加入待遷移隊列。步驟5,將待遷移VM隊列按照能源感知最佳降序算法進行重新分配,算法過程如下:下面根據實驗結果再做具體的分析:本發明的虛擬機在線遷移策略主要目的是降低功耗以及盡可能保證服務質量,其中服務質量用SLA(Service-LevelAgreement,服務等級協議)違反率來衡量。如圖2所示:dvfs為一種沒有虛擬機在線遷移的云計算中心低功耗策略,lr_mmt_mu為前人研究中最好的一種基于虛擬機在線遷移的策略,從圖中可以看出,在全部十組Workload中本發明的功耗都遠遠低于dvfs的功耗,同時也略低于lr_mmt_mu。本發明的虛擬機在線遷移策略對服務質量的影響如圖3所示:全部十組Workload的SLA違反率都遠遠低于lr_mmt_mu,這意味著本發明的策略在服務質量這方面上也遠遠優于前人的研究。以上實施例僅為本發明的示例性實施例,不用于限制本發明,本發明的保護范圍由權利要求書限定。本領域技術人員可以在本發明的實質和保護范圍內,對本發明做出各種修改或等同替換,這種修改或等同替換也應視為落在本發明的保護范圍內。當前第1頁1 2 3