入滑動(dòng)窗口,定義滑動(dòng)窗口的更新周期 為w,w值也表征著窗口大小,是一個(gè)連續(xù)的時(shí)間單元。
[0056] 在該連續(xù)時(shí)間單元內(nèi),將節(jié)點(diǎn)負(fù)載值按照固定時(shí)間間隔進(jìn)行采樣,采用隊(duì)列形式 組織緩沖池來(lái)保存采樣數(shù)據(jù),當(dāng)下一個(gè)更新周期到來(lái)時(shí),當(dāng)前緩沖區(qū)插入到隊(duì)尾,頭緩沖區(qū) 將作為下一個(gè)窗口的接收數(shù)據(jù)。
[0057] 對(duì)于上線閾值觸發(fā),在窗口內(nèi),設(shè)定一個(gè)最大超出次數(shù)Mmax,當(dāng)節(jié)點(diǎn)負(fù)載連續(xù)超出 閾值的次數(shù)小于M max時(shí),滑動(dòng)窗口不會(huì)觸發(fā)報(bào)警,當(dāng)節(jié)點(diǎn)負(fù)載連續(xù)超出閾值的次數(shù)大于Mmax 時(shí),滑動(dòng)窗口發(fā)生報(bào)警,利用時(shí)間序列預(yù)測(cè)法的AR模型對(duì)節(jié)點(diǎn)負(fù)載的下一個(gè)值進(jìn)行預(yù)測(cè),當(dāng) 預(yù)測(cè)值仍然超出閾值時(shí),觸發(fā)迀移,否則,不觸發(fā)迀移。
[0058] 對(duì)于下線閾值觸發(fā),在窗口內(nèi),同樣設(shè)定一個(gè)最大低于次數(shù)Nmax,當(dāng)節(jié)點(diǎn)負(fù)載連續(xù) 低于閾值的次數(shù)小于N max時(shí),滑動(dòng)窗口不會(huì)觸發(fā)報(bào)警,當(dāng)節(jié)點(diǎn)負(fù)載連續(xù)低于閾值的次數(shù)大于 Nmax時(shí),滑動(dòng)窗□發(fā)生告警,利用時(shí)間序列預(yù)測(cè)法的AR模型對(duì)節(jié)點(diǎn)負(fù)載的下一個(gè)值進(jìn)行預(yù) 測(cè),當(dāng)預(yù)測(cè)值仍然低于閾值時(shí),觸發(fā)迀移,否則,不觸發(fā)迀移。
[0059] 第二,源節(jié)點(diǎn)中待迀移的虛擬機(jī)的選取:
[0060] 節(jié)點(diǎn)滿足虛擬機(jī)迀移觸發(fā)條件后,就需要從節(jié)點(diǎn)選取虛擬機(jī)進(jìn)行迀移,虛擬機(jī)選 取只是針對(duì)滿足上線觸發(fā)條件的,滿足下線觸發(fā)條件的節(jié)點(diǎn)上的虛擬機(jī)都要被迀移。
[0061] 虛擬機(jī)的選取策略就是決定從源節(jié)點(diǎn)上選取哪些虛擬機(jī)進(jìn)行迀移。在選取虛擬機(jī) 前,必須確保該虛擬機(jī)實(shí)例保存在NFS共享存儲(chǔ)中,在此基礎(chǔ)上才能實(shí)現(xiàn)在線迀移。
[0062] 進(jìn)行虛擬機(jī)的迀移必須要考慮用戶服務(wù)質(zhì)量,而用戶服務(wù)質(zhì)量主要取決于服務(wù)器 CPU使用率,盡量選擇CPU使用率高的虛擬機(jī)進(jìn)行迀移,剩下的用戶才能享用更多的CPU資 源,虛擬機(jī)CPU使用率是第一個(gè)考慮因素。
[0063] 其次,在選擇虛擬機(jī)迀移的時(shí)候要考慮率迀移成本,迀移成本主要由迀移時(shí)間決 定。
[0064] 虛擬機(jī)在線迀移過(guò)程中,目的節(jié)點(diǎn)會(huì)根據(jù)共享存儲(chǔ)里的待迀移虛擬機(jī)文件生成一 個(gè)虛擬機(jī),然后源節(jié)點(diǎn)將待迀移虛擬機(jī)的內(nèi)存向目的節(jié)點(diǎn)拷貝,同時(shí)記錄下內(nèi)存臟頁(yè),內(nèi)存 拷貝結(jié)束后,開始拷貝內(nèi)存臟頁(yè),直到大部分的內(nèi)存同步后,暫停待迀移虛擬機(jī),將該虛擬 機(jī)未同步的內(nèi)存及CHJ狀態(tài)同步到目的節(jié)點(diǎn)上,之后目的節(jié)點(diǎn)上的虛擬機(jī)開始運(yùn)行,在迀移 過(guò)程中虛擬機(jī)內(nèi)存的使用是第二個(gè)考慮因素。
[0065]定義一個(gè)節(jié)點(diǎn)上每個(gè)虛擬機(jī)CPU使用量占該節(jié)點(diǎn)CPU總量的百分比為Ci,虛擬機(jī)內(nèi) 存使用量占該節(jié)點(diǎn)內(nèi)存總量的百分比為Mi,Ui為CPU使用率和內(nèi)存使用率的比值,即: Ui = Ci/Mi
[0066] 在選取虛擬機(jī)的時(shí),該虛擬機(jī)的Ci越大越好,Mi越小越好,即Ui越大越好。
[0067] 在選取虛擬機(jī)前,先將該節(jié)點(diǎn)上虛擬機(jī)的仏進(jìn)行排序,選取U最大的虛擬機(jī)進(jìn)行迀 移。
[0068]第三,目的節(jié)點(diǎn)的選?。?br>[0069] 在迀移中,目的節(jié)點(diǎn)的選取是尤為重要,它直接影響系統(tǒng)數(shù)據(jù)中心運(yùn)行節(jié)點(diǎn)的負(fù) 載均衡情況。
[0070] 如果選取的目的節(jié)點(diǎn)不合理,可能導(dǎo)致不必要的迀移,或者二次迀移,從而增加系 統(tǒng)運(yùn)行負(fù)擔(dān)及系統(tǒng)能耗。
[0071] 經(jīng)過(guò)虛擬機(jī)迀移觸發(fā)以及待迀移虛擬機(jī)的選取,將待迀移的虛擬機(jī)構(gòu)成集合V = m,v2,...,Vn),選擇第二等級(jí)的節(jié)點(diǎn)構(gòu)成資源池0=(&,&,...,C n),本文中用CPU使用率、 內(nèi)存、網(wǎng)絡(luò)帶寬的三維向量〈CPU,Mem,Net〉來(lái)描述虛擬機(jī)和目的節(jié)點(diǎn)的資源。
[0072]定義迀移虛擬機(jī)i對(duì)目的節(jié)點(diǎn)j的資源需求向量Dijvm= (dijcpu,dijmem,dijnet),計(jì)算 公式如下: di jcpu = CPUi-need/ ( CPUj-total-CPUj-use-CPU j-reserve ) dijmem -MeiTli-need/ ( Mem j-total_MeiTlj-use_Menij_ reserve ) di jnet - Neti need/ (Νθ? j total-Νθ? j_use-Νθ? j-reserve )
[0073] i_need表示虛擬機(jī)i所需的CPU資源、內(nèi)存資源、帶寬資源,j_total表示節(jié)點(diǎn)j的 CPU資源、內(nèi)存資源、帶寬資源的總量,j_use表示節(jié)點(diǎn)j的CPU資源、內(nèi)存資源、帶寬資源已使 用量,j_r es erve表示節(jié)點(diǎn)j的CPU資源、內(nèi)存資源、帶寬資源的預(yù)留量。
[0074] 只有dijc;pu,dijme3m,dijne3t的值均在(0,1)時(shí),才能滿足迀移虛擬機(jī)對(duì)節(jié)點(diǎn)的資源需 求。如果這三個(gè)值有一個(gè)大于1,則該節(jié)點(diǎn)不能作為該虛擬機(jī)的目的節(jié)點(diǎn),將該節(jié)點(diǎn)從此虛 擬機(jī)的迀移目的節(jié)點(diǎn)集合中刪除,剩余的節(jié)點(diǎn)構(gòu)成該虛擬機(jī)迀移的資源池。
[0075]根據(jù)虛擬機(jī)對(duì)CPU、內(nèi)存以及網(wǎng)絡(luò)帶寬的需求比例關(guān)系,設(shè)定權(quán)值向量W= (Wi,W2, W3),對(duì)三種資源需求進(jìn)行加權(quán)計(jì)算,得到虛擬機(jī)i對(duì)節(jié)點(diǎn)j的需求量Si j: Si j = Di(其中 W1+W2+W3 = 1)
[0076] Sij在(0,1)內(nèi),Si j越大,將該虛擬機(jī)迀移至該節(jié)點(diǎn)后,該節(jié)點(diǎn)的狀態(tài)越趨近于達(dá)到 上限。
[0077]這樣的迀移,會(huì)導(dǎo)致其他虛擬機(jī)的較小而無(wú)法找到合適的目的節(jié)點(diǎn),擁有更多 資源的節(jié)點(diǎn)卻無(wú)法接收到迀移的虛擬機(jī),無(wú)法滿足負(fù)載均衡。
[0078]在此,定義虛擬機(jī)i對(duì)節(jié)點(diǎn)j的匹配度M1J: Mij = l_Sij
[0079] Mij也在(0,1)內(nèi),Mij越大,虛擬機(jī)i對(duì)該節(jié)點(diǎn)j的需求越高,虛擬機(jī)迀移到該節(jié)點(diǎn)的 可能性越大,虛擬機(jī)i和節(jié)點(diǎn)j的匹配度越高。
[0080] 資源多,性能好的節(jié)點(diǎn)能匹配到相對(duì)多的虛擬機(jī),此時(shí)就容易引起群聚效應(yīng),為避 免群聚效應(yīng)的發(fā)生,采用概率輪盤來(lái)進(jìn)行目的節(jié)點(diǎn)的選擇。
[0081] 定義虛擬機(jī)i最終選擇目的節(jié)點(diǎn)j的概率為:
[0082] 1^為虛擬機(jī)i對(duì)節(jié)點(diǎn)j的匹配度。
[0083]共有η個(gè)目的節(jié)點(diǎn)可以選取。其中,
[0084] 虛擬機(jī)i可以根據(jù)選擇節(jié)點(diǎn)j的概率制定概率輪盤,如圖6所示,每個(gè)迀移的虛擬機(jī) 都有一個(gè)選擇概率輪盤,在實(shí)現(xiàn)過(guò)程中,可以通過(guò)一個(gè)(〇,1)的隨機(jī)數(shù)字來(lái)判斷所在的區(qū) 間,實(shí)現(xiàn)虛擬機(jī)目的節(jié)點(diǎn)的選取。
[0085] 由圖6可知,資源越多、性能越好的節(jié)點(diǎn)在輪盤上占用的空間越大,指針最后指向 該區(qū)域的可能性也就越大,從而該節(jié)點(diǎn)被選為目的節(jié)點(diǎn)的概率較大。而資源少的節(jié)點(diǎn)在輪 盤上占用的空間少,被選為目的節(jié)點(diǎn)的概率也就小。這樣,很大程度上改善了系統(tǒng)負(fù)載均 衡,也在一定程度上減少了群聚效應(yīng)的發(fā)生。
[0086]以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點(diǎn)。上述實(shí)施例和 說(shuō)明中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會(huì)有 各種變化和改進(jìn),均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種新的云環(huán)境虛擬機(jī)調(diào)度方法,其特征在于: 該發(fā)明根據(jù)虛擬機(jī)迀移的特點(diǎn),分別對(duì)虛擬機(jī)迀移的觸發(fā)機(jī)制、源節(jié)點(diǎn)中待迀移的虛 擬機(jī)的選取以及目的節(jié)點(diǎn)的選擇三個(gè)問題進(jìn)行研究以及說(shuō)明,最后通過(guò)概率輪盤來(lái)決定最 終的選擇,提高了云平臺(tái)的穩(wěn)定性,有助于提高工作效率,減少硬件損耗。2. 如權(quán)利要求1所示的一種新的云環(huán)境虛擬機(jī)調(diào)度方法,其特征在于:虛擬機(jī)迀移的觸 發(fā)機(jī)制,通過(guò)節(jié)點(diǎn)在滿負(fù)載情況下的電能消耗、空閑情況下節(jié)點(diǎn)電能消耗占滿負(fù)載情況下 電能消耗的比例等因素得出節(jié)點(diǎn)在某一時(shí)間內(nèi)電能消耗曲線圖,得出負(fù)載過(guò)高或過(guò)低的節(jié) 點(diǎn)都應(yīng)該進(jìn)行虛擬機(jī)迀移的結(jié)論。利用CPU使用率、內(nèi)存使用率及加權(quán)因子W得出某一節(jié)點(diǎn) 的工作負(fù)載,以當(dāng)前節(jié)點(diǎn)負(fù)載大小決定是否觸發(fā)虛擬機(jī)迀移。3. 如權(quán)利要求1所示的一種新的云環(huán)境虛擬機(jī)調(diào)度方法,其特征在于:源節(jié)點(diǎn)中待迀移 的虛擬機(jī)的選取,在待迀移節(jié)點(diǎn)內(nèi)部,以每個(gè)虛擬機(jī)CPU使用量占該節(jié)點(diǎn)CPU總量的百分比 為是否迀移的第一考慮因素,CPU使用量占比大者能耗大,優(yōu)先迀移;以虛擬機(jī)內(nèi)存使用量 占該節(jié)點(diǎn)內(nèi)存總量的百分比為次要因素,內(nèi)存占比小者迀移時(shí)間短,優(yōu)先迀移。4. 如權(quán)利要求1所示的一種新的云環(huán)境虛擬機(jī)調(diào)度方法,其特征在于:目的節(jié)點(diǎn)的選 取,根據(jù)CHJ使用量、內(nèi)存、網(wǎng)絡(luò)帶寬三者共同決定,為避免群聚效應(yīng),使用概率輪盤來(lái)平衡 系統(tǒng)負(fù)載。 定義虛擬機(jī)i最終選擇目的節(jié)點(diǎn)j的概率為Pij:共有η個(gè)目的節(jié)點(diǎn)可以選取。其中,虛擬機(jī)i根據(jù)選擇節(jié)點(diǎn)j的概率制定概率輪盤,每個(gè)迀移的虛擬機(jī)都有一個(gè)選擇概率輪 盤,在實(shí)現(xiàn)過(guò)程中,可以通過(guò)一個(gè)(0,1)的隨機(jī)數(shù)字來(lái)判斷所在的區(qū)間,實(shí)現(xiàn)虛擬機(jī)目的節(jié) 點(diǎn)的選取。
【專利摘要】本發(fā)明提供了一種新的云環(huán)境虛擬機(jī)調(diào)度算法,可以提高云平臺(tái)主機(jī)資源利用率,維持系統(tǒng)的負(fù)載均衡并減少能量消耗。本發(fā)明根據(jù)虛擬機(jī)遷移的特點(diǎn),分別對(duì)待遷移節(jié)點(diǎn)的選擇、節(jié)點(diǎn)中虛擬機(jī)的選擇以及目的節(jié)點(diǎn)的選擇三個(gè)問題進(jìn)行研究以及說(shuō)明,對(duì)系統(tǒng)能耗、CPU資源、內(nèi)存資源、帶寬資源進(jìn)行綜合考慮,最后通過(guò)概率輪盤來(lái)決定最終的選擇。本發(fā)明可以提高云平臺(tái)的穩(wěn)定性,有助于提高工作效率,減少硬件損耗。
【IPC分類】G06F9/50, G06F9/48, G06F9/455
【公開號(hào)】CN105607947
【申請(qǐng)?zhí)枴緾N201510954125
【發(fā)明人】鄧正宏, 孫巖, 付明月, 黃一杰, 李學(xué)強(qiáng)
【申請(qǐng)人】西北工業(yè)大學(xué)
【公開日】2016年5月25日
【申請(qǐng)日】2015年12月11日