本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種集群虛擬機(jī)的資源調(diào)度方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)的快速發(fā)展。操作系統(tǒng)的虛擬化技術(shù)日益成熟,虛擬化系統(tǒng)允許多個(gè)操作系統(tǒng)并發(fā)運(yùn)行在同一物理主機(jī)上,使用相同的硬件,且互不影響。
多個(gè)虛擬機(jī)可以組成集群,集群系統(tǒng)以其低廉的成本、強(qiáng)大的運(yùn)算能力和容錯(cuò)機(jī)制逐漸成為了計(jì)算機(jī)行業(yè)的焦點(diǎn)。但是由于虛擬機(jī)內(nèi)運(yùn)行的應(yīng)用程序存在差異性以及宿主物理主機(jī)性能存在差異性,這在集群的運(yùn)行中可能會(huì)造成資源負(fù)載的失衡,影響應(yīng)用的正常運(yùn)行。
因此,如何在集群中解決資源的負(fù)載失衡問題,維持高效的資源利用率,是本領(lǐng)域技術(shù)人員目前需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種集群虛擬機(jī)的資源調(diào)度方法,可以有效解決在集群中資源的負(fù)載失衡問題,維持高效的資源利用率。
為解決上述技術(shù)問題,本發(fā)明提供了如下技術(shù)方案:
一種集群虛擬機(jī)的資源調(diào)度方法,包括:
采集集群中各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù);
根據(jù)所述資源利用率參數(shù)和預(yù)設(shè)的物理主機(jī)篩選策略,確定需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī);
確定所述目標(biāo)物理主機(jī)中的需要進(jìn)行遷移的目標(biāo)虛擬機(jī);
根據(jù)所述資源利用率參數(shù)確定目標(biāo)宿主機(jī);
將所述目標(biāo)虛擬機(jī)遷移到所述目標(biāo)宿主機(jī)上。
優(yōu)選地,所述根據(jù)所述資源利用率參數(shù)和預(yù)設(shè)的物理主機(jī)篩選策略,確定需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī),包括:
根據(jù)所述資源利用率參數(shù),通過線性回歸模型判斷各所述物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前的所述第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率情況,并預(yù)測(cè)各所述物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之后的第二預(yù)設(shè)時(shí)間段內(nèi)的資源利用率趨勢(shì);
根據(jù)各所述物理主機(jī)的資源利用率趨勢(shì)和預(yù)設(shè)資源利用率閾值,確定所述目標(biāo)物理主機(jī)。
優(yōu)選地,所述根據(jù)所述資源利用率參數(shù),通過線性回歸模型判斷各所述物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前的所述第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率情況,并預(yù)測(cè)各所述物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之后的第二預(yù)設(shè)時(shí)間段內(nèi)的資源利用率趨勢(shì),包括:
選取任一所述物理主機(jī)在所述第一預(yù)設(shè)時(shí)間段內(nèi)的n個(gè)時(shí)刻的資源利用率參數(shù):x1、x2、x3…xn,n為不小于3的整數(shù);
預(yù)測(cè)該物理主機(jī)在所述第二預(yù)設(shè)時(shí)間段內(nèi)的n+1時(shí)刻的資源利用率參數(shù)為xn+1=β1x1+β2x2+β3x3+…+βnxn+ε,其中,n為不小于3的整數(shù),ε為獨(dú)立同分布的隨機(jī)變量,βn為時(shí)間序列的參數(shù)。
優(yōu)選地,所述根據(jù)各所述物理主機(jī)的資源利用率趨勢(shì)和預(yù)設(shè)資源利用率閾值,確定所述目標(biāo)物理主機(jī),包括:
若預(yù)測(cè)的所述物理主機(jī)的資源利用率趨勢(shì)是該物理主機(jī)的資源利用率不斷增加,且在預(yù)設(shè)的第三時(shí)間段內(nèi)超過了所述預(yù)設(shè)資源利用率閾值,則判定該物理主機(jī)為目標(biāo)物理主機(jī);
若預(yù)測(cè)的該物理主機(jī)的資源利用率趨勢(shì)是該物理主機(jī)的資源利用率不斷減少,且在所述預(yù)設(shè)的第三時(shí)間段內(nèi)低于所述預(yù)設(shè)資源利用率閾值,則判定該物理主機(jī)為非目標(biāo)物理主機(jī)。
優(yōu)選地,所述確定所述目標(biāo)物理主機(jī)中的需要進(jìn)行遷移的目標(biāo)虛擬機(jī),包括:
獲取所述目標(biāo)物理主機(jī)中的各虛擬機(jī)的CPU使用率cR和內(nèi)存大小mS;
計(jì)算各所述虛擬機(jī)的CPU使用率和對(duì)應(yīng)虛擬機(jī)的內(nèi)存大小的比值,記作vLoad,則有vLoad=cR/mS;
對(duì)各所述虛擬機(jī)的vLoad自大到小進(jìn)行排序;
選取前m個(gè)vLoad對(duì)應(yīng)的虛擬機(jī)作為目標(biāo)虛擬機(jī),m為不小于1的整數(shù),其中,
將m個(gè)目標(biāo)虛擬機(jī)遷移出后,該目標(biāo)物理主機(jī)的資源利用率符合預(yù)設(shè)的物理主機(jī)資源利用率正常利用標(biāo)準(zhǔn)。
優(yōu)選地,所述根據(jù)所述資源利用率參數(shù)確定目標(biāo)宿主機(jī),包括:
篩選在當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù)小于預(yù)設(shè)的資源利用率下限值的物理主機(jī)作為目標(biāo)宿主機(jī)機(jī)群;
采用加權(quán)隨機(jī)的方式在所述目標(biāo)宿主機(jī)機(jī)群中選擇目標(biāo)宿主機(jī)。
優(yōu)選地,所述將所述目標(biāo)虛擬機(jī)遷移到所述目標(biāo)宿主機(jī)上,包括:
根據(jù)所述m個(gè)目標(biāo)虛擬機(jī)對(duì)應(yīng)的vLoad的大小,依次分配目標(biāo)宿主機(jī)并進(jìn)行目標(biāo)虛擬機(jī)遷移。
與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有以下優(yōu)點(diǎn):
本發(fā)明所提供的集群虛擬機(jī)的資源調(diào)度方法,包括:采集集群中各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù);根據(jù)資源利用率參數(shù)和預(yù)設(shè)的物理主機(jī)篩選策略,確定需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī);確定目標(biāo)物理主機(jī)中的需要進(jìn)行遷移的目標(biāo)虛擬機(jī);根據(jù)資源利用率參數(shù)確定目標(biāo)宿主機(jī);將目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)上。通過一段時(shí)間內(nèi)的物理主機(jī)的資源利用率參數(shù)可以獲知該物理主機(jī)的資源利用情況,并根據(jù)預(yù)設(shè)的物理主機(jī)篩選策略,篩選出需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī),然后將該目標(biāo)物理主機(jī)中的目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)中,通過對(duì)虛擬機(jī)的動(dòng)態(tài)遷移,可以將資源利用率高的目標(biāo)物理主機(jī)上的虛擬機(jī)遷移到其他物理主機(jī)(目標(biāo)宿主機(jī))上,實(shí)現(xiàn)集群中物理主機(jī)的動(dòng)態(tài)負(fù)載均衡,充分利用集群中的各種物理資源,從而解決了集群中資源的負(fù)載失衡問題,維持了高效的資源利用率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一種具體實(shí)施方式所提供的集群虛擬機(jī)的資源調(diào)度方法流程圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種集群虛擬機(jī)的資源調(diào)度方法,可以有效解決在集群中資源的負(fù)載失衡問題,維持高效的資源利用率。
為了使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做詳細(xì)的說(shuō)明。
在以下描述中闡述了具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實(shí)施方式的限制。
請(qǐng)參考圖1,圖1為本發(fā)明一種具體實(shí)施方式所提供的集群虛擬機(jī)的資源調(diào)度方法流程圖。
本發(fā)明的一種具體實(shí)施方式提供了一種集群虛擬機(jī)的資源調(diào)度方法,包括:
S11:采集集群中各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù)。
采集集群中各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前的n個(gè)時(shí)間周期的資源利用率,這本實(shí)施方式中,物理主機(jī)的資源利用率用來(lái)表征物理主機(jī)的負(fù)載情況。
S12:根據(jù)資源利用率參數(shù)和預(yù)設(shè)的物理主機(jī)篩選策略,確定需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī)。
在本實(shí)施方式中,所謂的預(yù)設(shè)的物理主機(jī)篩選策略指的是根據(jù)各物理主機(jī)的資源利用率,判斷各物理主機(jī)的負(fù)載是否達(dá)到了一個(gè)上限值,若某物理主機(jī)的負(fù)載達(dá)到了該上限值則表示此時(shí)由于該物理主機(jī)的負(fù)載過高,可能會(huì)引起集群負(fù)載失衡。
S13:確定目標(biāo)物理主機(jī)中的需要進(jìn)行遷移的目標(biāo)虛擬機(jī)。
S14:根據(jù)資源利用率參數(shù)確定目標(biāo)宿主機(jī)。
S15:將目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)上。
通過一段時(shí)間內(nèi)的物理主機(jī)的資源利用率參數(shù)可以獲知該物理主機(jī)的資源利用情況,并根據(jù)預(yù)設(shè)的物理主機(jī)篩選策略,篩選出需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī),然后將該目標(biāo)物理主機(jī)中的目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)中,通過對(duì)虛擬機(jī)的動(dòng)態(tài)遷移,可以將資源利用率高的目標(biāo)物理主機(jī)上的虛擬機(jī)遷移到其他物理主機(jī)(目標(biāo)宿主機(jī))上,實(shí)現(xiàn)集群中物理主機(jī)的動(dòng)態(tài)負(fù)載均衡,充分利用集群中的各種物理資源,從而解決了集群中資源的負(fù)載失衡問題,維持了高效的資源利用率。
在上述實(shí)施方式的基礎(chǔ)上,本發(fā)明一種實(shí)施方式中,根據(jù)資源利用率參數(shù)和預(yù)設(shè)的物理主機(jī)篩選策略,確定需要進(jìn)行虛擬機(jī)遷移的目標(biāo)物理主機(jī),包括:
根據(jù)資源利用率參數(shù),通過線性回歸模型判斷各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之前的第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率情況,并預(yù)測(cè)各物理主機(jī)在當(dāng)前時(shí)間點(diǎn)之后的第二預(yù)設(shè)時(shí)間段內(nèi)的資源利用率趨勢(shì)。
其中,選取任一物理主機(jī)在第一預(yù)設(shè)時(shí)間段內(nèi)的n個(gè)時(shí)刻的資源利用率參數(shù):x1、x2、x3…xn,n為不小于3的整數(shù);預(yù)測(cè)該物理主機(jī)在第二預(yù)設(shè)時(shí)間段內(nèi)的n+1時(shí)刻的資源利用率參數(shù)為xn+1=β1x1+β2x2+β3x3+…+βnxn+ε,其中,n為不小于3的整數(shù),ε為獨(dú)立同分布的隨機(jī)變量,βn為時(shí)間序列的參數(shù)。
根據(jù)各物理主機(jī)的資源利用率趨勢(shì)和預(yù)設(shè)資源利用率閾值,確定目標(biāo)物理主機(jī)。其包括:若預(yù)測(cè)的物理主機(jī)的資源利用率趨勢(shì)是該物理主機(jī)的資源利用率不斷增加,且在預(yù)設(shè)的第三時(shí)間段內(nèi)超過了預(yù)設(shè)資源利用率閾值,則判定該物理主機(jī)為目標(biāo)物理主機(jī);若預(yù)測(cè)的該物理主機(jī)的資源利用率趨勢(shì)是該物理主機(jī)的資源利用率不斷減少,且在預(yù)設(shè)的第三時(shí)間段內(nèi)低于預(yù)設(shè)資源利用率閾值,則判定該物理主機(jī)為非目標(biāo)物理主機(jī)。
即通過線性回歸模型判斷當(dāng)前時(shí)間點(diǎn)之間一段時(shí)間內(nèi)的一物理主機(jī)的負(fù)載情況,并以此來(lái)預(yù)測(cè)該物理主機(jī)未來(lái)一段時(shí)間內(nèi)的負(fù)載時(shí)增加還是減少,進(jìn)而確定需要遷移虛擬機(jī)的物理主機(jī)。當(dāng)預(yù)測(cè)一物理主機(jī)未來(lái)的資源利用率趨勢(shì)是不斷增加的,且在一定的時(shí)間內(nèi)超過了預(yù)設(shè)的資源利用率閾值,則表示其內(nèi)的虛擬機(jī)需要進(jìn)行遷移;若預(yù)測(cè)到一物理主機(jī)未來(lái)的資源利用率趨勢(shì)是減小的,可在一定的時(shí)間內(nèi)其資源利用率不會(huì)超過該預(yù)設(shè)的資源利用率閾值,則表示該物理主機(jī)的虛擬機(jī)無(wú)需進(jìn)行遷移。
在本實(shí)施方式中,采用線性回歸模型對(duì)物理主機(jī)未來(lái)的負(fù)載趨勢(shì)進(jìn)行預(yù)估,避免了瞬時(shí)負(fù)載峰值觸發(fā)虛擬機(jī)遷移的情況的出現(xiàn),同時(shí)可以對(duì)資源利用率不斷上升的物理主機(jī)內(nèi)的虛擬機(jī)提前進(jìn)行遷移。
在本發(fā)明的一種實(shí)施方式中,確定目標(biāo)物理主機(jī)中的需要進(jìn)行遷移的目標(biāo)虛擬機(jī),包括:
獲取目標(biāo)物理主機(jī)中的各虛擬機(jī)的CPU使用率cR和內(nèi)存大小mS;計(jì)算各虛擬機(jī)的CPU使用率和對(duì)應(yīng)虛擬機(jī)的內(nèi)存大小的比值,記作vLoad,則有vLoad=cR/mS;對(duì)各虛擬機(jī)的vLoad自大到小進(jìn)行排序;選取前m個(gè)vLoad對(duì)應(yīng)的虛擬機(jī)作為目標(biāo)虛擬機(jī),m為不小于1的整數(shù),其中,將m個(gè)目標(biāo)虛擬機(jī)遷移出后,該目標(biāo)物理主機(jī)的資源利用率符合預(yù)設(shè)的物理主機(jī)資源利用率正常利用標(biāo)準(zhǔn)。
在本實(shí)施方式中,對(duì)于目標(biāo)虛擬機(jī)的選擇上,采用了資源加權(quán)比的方法,使虛擬機(jī)進(jìn)行遷移時(shí)占用的寬帶盡量少。這是由于虛擬機(jī)的動(dòng)態(tài)遷移需要拷貝內(nèi)存數(shù)據(jù),同時(shí)需要追蹤被修改的內(nèi)存頁(yè),重新進(jìn)行發(fā)送,因此,內(nèi)存占用量大的虛擬機(jī)需要更長(zhǎng)的時(shí)間進(jìn)行遷移。為了減少開銷,在本實(shí)施方式中,對(duì)目標(biāo)物理主機(jī)中的虛擬機(jī)的CPU使用率和內(nèi)存大小進(jìn)行比值計(jì)算,該比值記作vLoad,由此可知,vLoad越大,則虛擬機(jī)遷移開銷越小。但是當(dāng)目標(biāo)物理主機(jī)需要進(jìn)行虛擬機(jī)遷移時(shí),并不需要將所有的虛擬機(jī)進(jìn)行遷移,因此,在本實(shí)施方式中,對(duì)vLoad進(jìn)行排序,選取vLoad較大的前m個(gè)虛擬機(jī)作為目標(biāo)虛擬機(jī)進(jìn)行遷移,其中,將m個(gè)目標(biāo)虛擬機(jī)遷移出后,該目標(biāo)物理主機(jī)的資源利用率符合預(yù)設(shè)的物理主機(jī)資源利用率正常利用標(biāo)準(zhǔn),即將這m個(gè)目標(biāo)虛擬機(jī)遷移出后,該目標(biāo)物理主機(jī)的負(fù)載負(fù)荷正常負(fù)載情況,這樣,既能實(shí)現(xiàn)物理主機(jī)的動(dòng)態(tài)負(fù)載均衡問題,又能保證較少的遷移開銷。
在本發(fā)明的一種實(shí)施方式中,根據(jù)資源利用率參數(shù)確定目標(biāo)宿主機(jī),包括:篩選在當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù)小于預(yù)設(shè)的資源利用率下限值的物理主機(jī)作為目標(biāo)宿主機(jī)機(jī)群;采用加權(quán)隨機(jī)的方式在目標(biāo)宿主機(jī)機(jī)群中選擇目標(biāo)宿主機(jī)。
其中,將目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)上,包括:根據(jù)m個(gè)目標(biāo)虛擬機(jī)對(duì)應(yīng)的vLoad的大小,依次分配目標(biāo)宿主機(jī)并進(jìn)行目標(biāo)虛擬機(jī)遷移。
在本實(shí)施方式中,首先選取所有性能較高且負(fù)載較輕的物理主機(jī)作為目標(biāo)宿主機(jī)機(jī)群,選擇的標(biāo)準(zhǔn)即當(dāng)前時(shí)間點(diǎn)之前第一預(yù)設(shè)時(shí)間段內(nèi)的資源利用率參數(shù)小于預(yù)設(shè)的資源利用率下限值,該下限值可以根據(jù)實(shí)際情況進(jìn)行設(shè)定。采用加權(quán)隨機(jī)的方式選擇目標(biāo)宿主機(jī),能夠更好的實(shí)現(xiàn)對(duì)資源的平均分配。通過各個(gè)物理主機(jī)的CPU的使用率的不同,賦予不同的物理主機(jī)不同的權(quán)值,CPU空閑的物理主機(jī)擁有更高的分配權(quán)值。設(shè)目標(biāo)宿主機(jī)機(jī)群中的物理主機(jī)vi的CPU使用率為ui,該物理主機(jī)的權(quán)值wi=1-ui,物理主機(jī)vi的被選擇的概率當(dāng)觸發(fā)遷移之后,根據(jù)物理主機(jī)被選擇的概率,隨機(jī)分配給遷移虛擬機(jī),可以避免群聚效應(yīng),使資源在集群中平衡分配。
綜上所述,本發(fā)明所提供的集群虛擬機(jī)的資源調(diào)度方法,將目標(biāo)物理主機(jī)中的目標(biāo)虛擬機(jī)遷移到目標(biāo)宿主機(jī)中,通過對(duì)虛擬機(jī)的動(dòng)態(tài)遷移,可以將資源利用率高的目標(biāo)物理主機(jī)上的虛擬機(jī)遷移到其他物理主機(jī)(目標(biāo)宿主機(jī))上,實(shí)現(xiàn)集群中物理主機(jī)的動(dòng)態(tài)負(fù)載均衡,充分利用集群中的各種物理資源,從而解決了集群中資源的負(fù)載失衡問題,維持了高效的資源利用率。尤其是采用線性回歸模塊對(duì)物理主機(jī)的負(fù)載情況的預(yù)測(cè),避免了瞬時(shí)峰值造成的不必要的虛擬機(jī)遷移,也可以對(duì)資源利用率不斷上升的物理主機(jī)中的虛擬機(jī)進(jìn)行提前的遷移;根據(jù)CPU使用率和內(nèi)存大小的比值關(guān)系排序,找出需要遷移且遷移過程中可能消耗寬帶最小的虛擬機(jī)進(jìn)行遷移,減少了虛擬機(jī)遷移帶來(lái)的額外資源開銷;采用加權(quán)隨機(jī)的方式選擇目標(biāo)宿主機(jī),避免了過多的虛擬機(jī)遷移到同一目標(biāo)宿主機(jī)上發(fā)生的群聚現(xiàn)象,達(dá)到了集群內(nèi)物理主機(jī)的資源的動(dòng)態(tài)平衡。
以上對(duì)本發(fā)明所提供一種集群虛擬機(jī)的資源調(diào)度方法進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。