本發(fā)明涉及云計算的研究領(lǐng)域,特別涉及一種云資源高效利用的虛擬機遷移方法。
背景技術(shù):
云計算是近年來新興的一種交付服務(wù)模式,提供按需使用的計算、存儲、網(wǎng)絡(luò)等IaaS資源服務(wù)。云計算通過采用虛擬化技術(shù)構(gòu)建龐大的資源池,通過互聯(lián)網(wǎng)為用戶提供計算、存儲、網(wǎng)絡(luò)等IT資源,自云計算的概念提出后,學(xué)術(shù)界和工業(yè)界逐漸展開了廣泛的研究。
在云環(huán)境中,用戶請求創(chuàng)建虛擬機時,首先根據(jù)云平臺中的部署策略完成初始化部署,但是云平臺中的虛擬機并不是永久地存在的。隨著時間的推移,云平臺中的虛擬機會不斷地增加或者減少,或隨著業(yè)務(wù)變化,虛擬機的資源配置不斷地增加或者減少;這樣則會使得虛擬機在物理服務(wù)器中的分布情況發(fā)生較大的改變。通常來說,導(dǎo)致云環(huán)境中虛擬機增加和減少的原因主要有:應(yīng)用系統(tǒng)遷移部署到云環(huán)境中、應(yīng)用系統(tǒng)從云環(huán)境中撤離、由云平臺中的彈性伸縮策略引起的虛擬機結(jié)點的動態(tài)增加以及減少、云環(huán)境中物理服務(wù)器的故障等等。這種變化改變了虛擬機在物理服務(wù)器中的初始部署情況,很有可能會出現(xiàn)虛擬機在部分物理機中過于密集,而在另外一部分的物理機中的分布卻過于稀疏,這樣的情況意味著某些物理機上只運行著少量的虛擬機,物理機中的資源利用率很低,長時間處于這樣的狀態(tài)不利于有效地利用物理資源,造成資源的浪費,同時也不利于節(jié)約能耗。此時,我們需要將多臺物理機中的虛擬機遷移整合到一臺物理機中,緩解許多物理機長期處于資源利用率低的情況。
在現(xiàn)有的虛擬機遷移整合方法中,大多都是考慮一種資源利用率的下限閾值(通常是CPU負(fù)載率),當(dāng)發(fā)現(xiàn)物理機的實際資源利用率低于下限閾值的時候,就將物理機中的虛擬機全部遷移出來,重新部署到其他物理機上,這種通過檢(監(jiān)))測查詢物理機資源利用率的方式有可能會導(dǎo)致過多的虛擬機遷移(即雖然物理機當(dāng)前檢測到的資源利用率較低,但是該物理機上仍然部署著許多的虛擬機,只不過是這些虛擬機實際使用的資源量很少,而虛擬機本身所分配的資源量卻比較大),并且這些遷移整合方法中也較少考慮到平衡物理機各維度資源的使用,即若出現(xiàn)物理機內(nèi)存占用很高,而CPU和網(wǎng)絡(luò)帶寬的使用卻很少,也屬于一種資源的浪費現(xiàn)象。因此,需要有一種資源高效利用的虛擬機動態(tài)遷移方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種云資源高效利用的虛擬機遷移方法,可以有效地整合分布稀疏的虛擬機,并減少整合過程中的虛擬機遷移次數(shù),同時考慮平衡物理服務(wù)器各維度資源的使用,很好地緩解許多物理機長時間處于資源利用率低的情況。
為了達到上述目的,本發(fā)明采用以下技術(shù)方案:
本發(fā)明一種云資源高效利用的虛擬機遷移方法,包括下述步驟:
S1、確定需要進行整合的服務(wù)器集合,將滿足整合條件的多個服務(wù)器,通過遷移其中部分服務(wù)器中的虛擬機來減少活躍物理服務(wù)器的數(shù)量,并使得遷移整合之后的物理服務(wù)器的資源使用盡量地均衡;
S2、采用二分方式劃分待整合的物理服務(wù)器集合;
所述二分方式為:將待整合的服務(wù)器集合劃分為源物理服務(wù)器序列SList和目標(biāo)物理服務(wù)器序列DList;
所述源物理服務(wù)器序列SList為需要將虛擬機遷移出去的物理服務(wù)器序列,所述目標(biāo)物理服務(wù)器序列為接納遷移虛擬機的物理服務(wù)器序列DList;
S3、將源物理服務(wù)器序列SList中的虛擬機遷移到目標(biāo)物理服務(wù)器序列DList中。
作為優(yōu)選的技術(shù)方案,步驟S1中,所述滿足條件的多個服務(wù)器構(gòu)成一個服務(wù)器集合SCSET,該集合中的物理服務(wù)器的空閑資源量小于設(shè)定的閾值SC_low,并且該集合中物理機的數(shù)量大于一個整合參數(shù)scSize。
作為優(yōu)選的技術(shù)方案,考慮CPU、內(nèi)存、網(wǎng)絡(luò)帶寬三種類型的資源,物理服務(wù)器pm已分配的資源量百分比allocatedRate按照CPU、內(nèi)存、網(wǎng)絡(luò)帶寬三者的已分配百分比計算,即
其中cpuC表示物理服務(wù)器pm的CPU總量,pcpu表示物理服務(wù)器pm的空閑CPU資源量,用內(nèi)存、網(wǎng)絡(luò)帶寬同理表示,則服務(wù)器集合SCSET可以表示如下:
SCSET={pm|allocatedRate(pm)≤SC_low}
并且有|SCSET|≥scSize。
作為優(yōu)選的技術(shù)方案,步驟S2中,所述將待整合的服務(wù)器集合劃分為源物理服務(wù)器序列SList和目標(biāo)物理服務(wù)器序列DList具體為:
對于待整合的服務(wù)器集合,按照其中物理機的資源空閑量進行升序排序,然后將排序完的前半部分的物理機作為源物理服務(wù)器序列SList,將后半部分的物理機作為目標(biāo)物理服務(wù)器序列DList,所述空閑資源量是指未分配給虛擬機的資源量,包括空閑的CPU、內(nèi)存和網(wǎng)絡(luò)寬帶之和。
作為優(yōu)選的技術(shù)方案,步驟S3中,所述將源物理服務(wù)器序列SList中的虛擬機遷移到目標(biāo)物理服務(wù)器序列DList中具體為:
S21、遍歷源物理服務(wù)器序列SList,對于其中的每一臺物理機pm,將其中的虛擬機按照整體遷移的方式,在目標(biāo)物理服務(wù)器序列DList中尋找合適的目標(biāo)物理機tpm實施遷移,將pm中的所有虛擬機遷移到tpm中,若沒有合適的物理機則不遷移pm中的任何虛擬機;
S22、繼續(xù)處理下一臺物理機,直至處理完SList中的所有物理機為止,完成虛擬機的遷移的所有過程。
作為優(yōu)選的技術(shù)方案,在步驟S21中,所述在目標(biāo)物理服務(wù)器序列DList中尋找合適的目標(biāo)物理機tpm實施遷移具體為:
計算物理機pm已分配給虛擬機的CPU、內(nèi)存、網(wǎng)絡(luò)帶寬資源量之和,接著在目標(biāo)物理機序列DList中,選擇空閑資源量大于pm已分配的資源量的物理服務(wù)器,包括下述三種情況:
若存在多個滿足條件的物理機,那么選擇其中一個目標(biāo)物理機,使得該物理機在接受pm的虛擬機遷移之后,各類資源的使用最平衡;
若只存在一個滿足條件的物理機,則直接完成遷移;
若不存在滿足條件的物理機,則不遷移pm中的任何虛擬機。
作為優(yōu)選的技術(shù)方案,物理機在接受pm的虛擬機遷移之后,物理服務(wù)器各類資源的均衡程度,使用平衡度來衡量單個物理服務(wù)器各類資源利用均衡程度,各類資源包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬,資源利用率偏度計算如下所示:
其中ri表示物理服務(wù)器p的第i種資源的利用率,表示物理服務(wù)器p上各種資源利用率的平均值,即資源利用率偏度以量化的形式表示物理服務(wù)器p上各種資源利用的均衡程度,偏度值越大,表示各類資源利用率的差別越大,即資源利用平衡度低;偏度值越小,表示各類資源的利用率越接近,資源碎片少,如偏度的最小值是0,此時表示各類資源的利用率都相同,即平衡度最好,此外,還假定,若則skewness(p)=0。
作為優(yōu)選的技術(shù)方案,所述整體遷移方式為將物理機中的所有虛擬機都遷移到同一臺目標(biāo)物理機中。
作為優(yōu)選的技術(shù)方案,所述虛擬機的遷移為動態(tài)遷移的方式,所管理的云物理服務(wù)器集合視不同策略選擇虛擬機的遷移實施,并選擇某業(yè)務(wù)相對空閑期進行遷移,遷移策略分為:
1)對云物理服務(wù)器集合資源的使用狀況和平衡度進行監(jiān)測評估,觸發(fā)動態(tài)遷移條件;
2)云物理服務(wù)器資源調(diào)度的最大時間期限,即云平臺對資源優(yōu)化管理所定義的時間間隔。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:
1、本發(fā)明資源高效利用的虛擬機遷移方法,同時考慮平衡物理服務(wù)器各維度資源的使用,改變傳統(tǒng)云環(huán)境中主要根據(jù)CPU計算負(fù)載量或能耗最小作為遷移虛擬機的依據(jù),使得資源綜合利用率更佳。
2、云環(huán)境物理機經(jīng)一段時間運營,由于各虛擬機應(yīng)用變化,資源利用率不高,本發(fā)明可以有效地整合分布稀疏或不均衡使用的物理機,并減少整合過程中的虛擬機遷移次數(shù),較好地緩解許多物理機較長時間處于資源利用率低的情況。
3、本發(fā)明資源高效利用的虛擬機遷移方法,通過設(shè)置整合條件,以一種二分的方式來遷移整合滿足整合條件的物理機集合,可以有效地整合分布稀疏的虛擬機,并減少整合過程中的虛擬機遷移次數(shù),同時考慮平衡物理服務(wù)器各維度資源的使用,很好地緩解許多物理機長期處于資源利用率低的情況。
附圖說明
圖1是本發(fā)明裝置的方法流程圖。
具體實施方式
下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細(xì)的描述,但本發(fā)明的實施方式不限于此。
實施例
如圖1所示,本實施例云計算中一種資源高效利用的虛擬機遷移方法,包括:
步驟101:確定需要進行整合的服務(wù)器集合
所述整合服務(wù)器為:將滿足整合條件的多個服務(wù)器,通過遷移其中部分服務(wù)器中的虛擬機來減少活躍物理服務(wù)器的數(shù)量,并使得遷移整合之后的物理服務(wù)器的資源使用盡量地均衡;
周期性地檢測云平臺各物理服務(wù)器的資源使用狀態(tài),將已分配給虛擬機的資源量占物理機資源總量百分比allocatedRate低于閾值SC_low的物理服務(wù)器加入集合SCSET中作為需要整合的物理服務(wù)器集合,并且為了避免發(fā)生頻繁的虛擬機遷移,本方法設(shè)置一個整合參數(shù)scSize,當(dāng)滿足|SCSET|≥scSize時,進行后續(xù)的虛擬機遷移整合,否則不實施虛擬機的遷移整合。
如上所述,考慮CPU、內(nèi)存、網(wǎng)絡(luò)帶寬三種類型的資源,物理服務(wù)器pm已分配的資源量百分比按照CPU、內(nèi)存、網(wǎng)絡(luò)帶寬三者的已分配百分比計算,即
其中cpuC表示物理服務(wù)器pm的CPU總量,pcpu表示物理服務(wù)器pm的空閑CPU資源量,內(nèi)存、網(wǎng)絡(luò)帶寬同理表示。則集合SCSET可以表示如下
SCSET={pm|allocatedRate(pm)≤SC_low}
并且有|SCSET|≥scSize。
步驟102:將待整合的服務(wù)器集合劃分為源物理服務(wù)器序列SList和目標(biāo)物理服務(wù)器序列DList兩部分。
所述源物理服務(wù)器序列為需要將虛擬機遷移出去的物理服務(wù)器序列,所述目標(biāo)物理服務(wù)器序列為接納遷移虛擬機的物理服務(wù)器序列;
對于需要進行整合的物理服務(wù)器集合SCSET,首先按照空閑資源量(空閑的CPU、內(nèi)存、網(wǎng)絡(luò)帶寬之和,指的是未分配給虛擬機的資源,是一種靜態(tài)屬性)對SCSET集合中的元素進行升序排序得到SortedSCSET,接著將SortedSCSET中前面一半元素作為源物理機序列SList,將SortedSCSET中后面一半的元素作為目標(biāo)物理機序列DList,這種劃分方式確保了目標(biāo)物理機序列的空閑資源量比源物理機序列的空閑資源量更多。
劃分了源物理機序列和目標(biāo)物理機序列之后,明確了遷移只能從源物理機序列到目標(biāo)物理機序列,很好地避免了一臺虛擬機的多次遷移現(xiàn)象發(fā)生(即在一次遷移過程中,一臺虛擬機被遷移到某臺物理機之后,又再次被遷移到其他的物理機)。
步驟103:將源物理機序列SList中的虛擬機遷移到目標(biāo)物理機序列DList中
遍歷源物理機序列SList,對于其中的每一臺物理機pm,將其中的虛擬機按照整體遷移的方式,即計算pm已分配給虛擬機的CPU、內(nèi)存、網(wǎng)絡(luò)帶寬資源量之和,分別記為AllocatedCPU,AllocatedRAM,AllocatedBW,接著在目標(biāo)物理服務(wù)器序列DList中,選擇空閑資源量大于pm已分配的資源量的物理服務(wù)器tpm,確保能夠容納pm中的虛擬機,這里主要分為三種情況,假設(shè)滿足條件的tpm的集合為tpmSet;
第一種情況:
|tpmSET|>1,即在DList中存在多個物理機滿足上述的條件,那么選擇其中一個目標(biāo)物理機tpm,使得該物理機在接受pm的虛擬機遷移之后,各類資源的使用最平衡,將pm中的虛擬機全部遷移到tpm中,同時將pm切換至休眠模式或者關(guān)閉;
第二種情況:
|tpmSET|=0,即不存在滿足條件的物理機,那么不遷移pm中的任何虛擬機。繼續(xù)處理SList中的下一臺物理機,即在遷移的處理過程中,可能會出現(xiàn)部分的源物理機并沒有實施遷移;
第三種情況:
|tpmSET|=1,即只存在一個滿足條件的物理服務(wù)器tpm,則直接將pm中的所有虛擬機都遷移至tpm中,同時將pm切換至休眠模式或者關(guān)閉;
遍歷源物理機序列SList,繼續(xù)處理下一臺物理機,直至處理完SList中的所有物理機為止,完成虛擬機的遷移的整個過程。
在本實施例中,物理機在接受pm的虛擬機遷移之后,物理服務(wù)器各類資源的均衡程度,使用平衡度來衡量單個物理服務(wù)器各類資源利用均衡程度,各類資源包括CPU、內(nèi)存、網(wǎng)絡(luò)帶寬,資源利用率偏度計算如下所示:
其中ri表示物理服務(wù)器p的第i種資源的利用率,表示物理服務(wù)器p上各種資源利用率的平均值,即資源利用率偏度以量化的形式表示物理服務(wù)器p上各種資源利用的均衡程度,偏度值越大,表示各類資源利用率的差別越大,即資源利用平衡度低;偏度值越小,表示各類資源的利用率越接近,資源碎片少,如偏度的最小值是0,此時表示各類資源的利用率都相同,即平衡度最好,此外,還假定,若則skewness(p)=0。
本發(fā)明實施方式提供的云計算中一種資源高效利用的虛擬機遷移方法,通過設(shè)置整合條件,以一種二分的方式來遷移整合滿足整合條件的物理機集合,可以有效地整合分布稀疏的虛擬機,并減少整合過程中的虛擬機遷移次數(shù),同時考慮平衡物理服務(wù)器各維度資源的使用,很好地緩解許多物理機長期處于資源利用率低的情況。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。