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