專利名稱:虛擬機遷移控制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及虛擬機遷移控制方法和裝置。
背景技術(shù):
隨著信息系統(tǒng)技術(shù)的不斷發(fā)展,數(shù)據(jù)在企業(yè)的應(yīng)用越來越廣,如何提高信息系統(tǒng)的高可用性(HA, High Availability),成為建設(shè)穩(wěn)健的計算機系統(tǒng)的首要任務(wù)之一。HA通常指,通過盡量縮短因日常維護操作(計劃)和突發(fā)的系統(tǒng)崩潰(非計劃)所導(dǎo)致的停機時間,以提高系統(tǒng)和應(yīng)用的可用性。傳統(tǒng)保護方案花費成本高并且實現(xiàn)起來過于復(fù)雜,目前行業(yè)的技術(shù)趨勢是使用虛擬化技術(shù)。虛擬化技術(shù)是一種將底層硬件設(shè)備與上層操作系統(tǒng)、應(yīng)用程序分離的去耦合技術(shù),如圖1所示,引入虛擬機監(jiān)控器(VMM,Virtual Machine Monitor)層直接管理底層硬件資源,創(chuàng)建與底層硬件無關(guān)的虛擬機(VM,Virtual Machine)供上層操作系統(tǒng)和應(yīng)用程序使用。虛擬化技術(shù)打破了物理硬件和操作系統(tǒng)間的硬性連接。當(dāng)下的計算機是專為運行單個操作系統(tǒng)而設(shè)計的,大部分計算機資源遠未得到充分利用。借助虛擬化機制可在單臺物理機上運行多個虛擬機,每個虛擬機都可以共享同一臺物理機的資源并運行不同的操作系統(tǒng)。虛擬化一臺物理機僅僅是開始,如果將跨數(shù)百臺互連的物理機和存儲設(shè)備進行擴展,可以構(gòu)建一個完整的虛擬基礎(chǔ)架構(gòu)。無需為每個應(yīng)用程序永久性地分配服務(wù)器、存儲空間或網(wǎng)絡(luò)帶寬。與之相對,硬件資源會根據(jù)需要動態(tài)分配到所需的位置。虛擬基礎(chǔ)架構(gòu)是一種企業(yè)級解決方案,可提供流暢、強大的計算能力,從而最大限度地利用資源和節(jié)約成本。基于虛擬化基礎(chǔ)架構(gòu),當(dāng)虛擬化環(huán)境中的硬件或者操作系統(tǒng)發(fā)生故障時,可以提供統(tǒng)一且經(jīng)濟高效的故障切換保護,大大提高了可用性?,F(xiàn)有技術(shù)主要通過在保護主機上未待遷移的主機預(yù)留指定資源量(如CPU和內(nèi)存量),來保證遷移到保護主機的虛擬機的有足夠的資源量?,F(xiàn)有技術(shù)僅在保護主機有足夠的未預(yù)留資源時,才允許虛擬機遷移到保護主機。當(dāng)保護主機無足夠資源量預(yù)留給待遷移的虛擬機(即待遷移虛擬機當(dāng)前所使用資源量大于保護主機的剩余未預(yù)留資源)時,通常拒絕遷移該虛擬機到保護主機。在這種情況下,故障主機上的虛擬機無法立即恢復(fù),導(dǎo)致了業(yè)務(wù)中斷,并且中斷時間不可控。
發(fā)明內(nèi)容
本發(fā)明實施例提供虛擬機遷移控制方法和裝置,以期盡量提高虛擬機的高可用性,盡量避免業(yè)務(wù)中斷。本發(fā)明一方面提供一種虛擬機遷移控制方法,可包括監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,所述第一虛擬機運行于第一主機上;若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上。結(jié)合第一方面,在第一種可能的實施方式中,所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量或所述第二主機剩余的實際資源量。結(jié)合第一方面或第一方面的第一種可能的實施方式,在第二種可能的實施方式中,所述方法還包括監(jiān)測所述第一虛擬機的使用資源量;所述若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,包括若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,且第二主機剩余的資源量小于第一虛擬機的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述第一虛擬機上運行的部分或全部非核心應(yīng)用在所述第一虛擬機遷移到所述第二主機之前或之后被裁減掉。結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式,在第三種可能的實施方式中,所述方法還包括若所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量,則若所述第一主機發(fā)生了故障,且所述第二主機當(dāng)前剩余的未預(yù)留資源量小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則縮減N個虛擬機的預(yù)留資源量;若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量大于或等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述N個虛擬機為運行于所述第二主機上的虛擬機,所述N為正整數(shù),所述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量。結(jié)合第一方面的第三種可能的實施方式,在第四種可能的實施方式中,所述方法還包括若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量仍小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則裁減掉M個虛擬機上運行的部分或者全部非核心應(yīng)用,將所述第一虛擬機遷移到所述第二主機上,其中,所述M個虛擬機為運行于所述第二主機上的虛擬機,所述M為正整數(shù)。結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式或第一方面的第三種可能的實施方式或第一方面的第四種可能的實施方式,在第五種可能的實施方式中,所述監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,包括周期性的監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,將設(shè)定時長內(nèi)監(jiān)測到的所述第一虛擬機上運行的核心應(yīng)用的使用資源量的平均值或最大值或最小值,作為監(jiān)測到的所述第一虛擬機上運行的核心應(yīng)用的使用資源量。結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式或第一方面的第三種可能的實施方式或第一方面的第四種可能的實施方式或第一方面的第五種可能的實施方式,在第六種可能的實施方式中,所述核心應(yīng)用包括操作系統(tǒng)和指定應(yīng)用。本發(fā)明第二方面提供一種虛擬機遷移控制裝置,包括監(jiān)測單元,監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,所述第一虛擬機運行于第一主機上;遷移控制單元,用于若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于所述監(jiān)測單元監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上。結(jié)合第二方面,在第一種可能的實施方式中,所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量或所述第二主機剩余的實際資源量。結(jié)合第二方面或第二方面的第一種可能的實施方式,在第二種可能的實施方式中,所述監(jiān)測單元還用于,監(jiān)測所述第一虛擬機的使用資源量;所述遷移控制單元具體用于,若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,且第二主機剩余的資源量小于第一虛擬機的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述第一虛擬機上運行的部分或全部非核心應(yīng)用在所述第一虛擬機遷移到所述第二主機之前或之后被裁減掉。結(jié)合第二方面或第二方面的第一種可能的實施方式或第二方面的第二種可能的實施方式,在第三種可能的實施方式中,所述遷移控制單元還用于,若所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量,則若所述第一主機發(fā)生了故障,且所述第二主機當(dāng)前剩余的未預(yù)留資源量小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則縮減N個虛擬機的預(yù)留資源量;若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量大于或等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述N個虛擬機為運行于所述第二主機上的虛擬機,所述N為正整數(shù),所述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量。結(jié)合第二方面的第三種可能的實施方式,在第四種可能的實施方式中,所述遷移控制單元還用于,若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量仍小于所述監(jiān)測單元監(jiān)測出的所述核心應(yīng)用的使用資源量,則裁減掉M個虛擬機上運行的部分或者全部非核心應(yīng)用,將所述第一虛擬機遷移到所述第二主機上,其中,所述M個虛擬機為運行于所述第二主機上的虛擬機,所述M為正整數(shù)??梢钥闯?,本發(fā)明實施例提供的技術(shù)方案中,通過監(jiān)測運行于第一主機上的第一虛擬機上運行的核心應(yīng)用的使用資源量;若第一主機發(fā)生故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的上述核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上。由于首先考慮的是第一虛擬機上運行的核心應(yīng)用的使用資源量,這樣相對于現(xiàn)有虛擬機遷移機制,能夠提高故障主機上運行的虛擬機成功遷移到保護主機的幾率,有利于提高虛擬機的高可用性,并且有利于避免相關(guān)業(yè)務(wù)中斷。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的一種虛擬化系統(tǒng)的示意圖;圖2是本發(fā)明實施例提供的一種虛擬化集群系統(tǒng)的示意圖;圖3是本發(fā)明實施例提供的一種虛擬機遷移控制方法的流程示意圖;圖4是本發(fā)明實施例提供的另一種虛擬機遷移控制方法的流程示意圖;圖5_a是本發(fā)明實施例提供的另一種虛擬化集群系統(tǒng)的示意圖;圖5_b是本發(fā)明實施例提供的另一種虛擬化集群系統(tǒng)的示意圖;圖5-c是本發(fā)明實施例提供的另一種虛擬化集群系統(tǒng)的示意圖;圖6是本發(fā)明實施例提供的另一種虛擬化集群系統(tǒng)的示意圖;圖7是本發(fā)明實施例提供的虛擬機遷移控制裝置的示意圖;圖8是本發(fā)明實施例提供的計算機系統(tǒng)能夠的示意圖。
具體實施例方式本發(fā)明實施例提供虛擬機遷移控制方法和裝置,以期盡量提高虛擬機的高可用性,盡量避免業(yè)務(wù)中斷。為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。以下分別進行詳細說明。本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三” “第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。下面先對一些概念進行介紹。主機是使用虛擬化軟件的計算機。由于使用了虛擬化軟件,計算機有了虛擬層,可以運行多臺虛擬機。主機提供虛擬機使用的CPU和內(nèi)存等資源,并使虛擬機能夠訪問存儲器和網(wǎng)絡(luò)。群集可看成是一組共享資源和管理接口的主機。例如圖2所示,集群可包括中心服務(wù)器(Center Sever)和多臺主機。向群集添加主機時,主機的資源會成為群集資源的一部分。Center Sever可集中管理群集中的各主機,并可提供便捷的控制和基本的服務(wù),如訪問控制、性能監(jiān)控和配置等。Center Sever可根據(jù)系統(tǒng)管理員設(shè)定的策略,管理主機的虛擬機分配,以及給定主機內(nèi)虛擬機的資源分配。利用多臺主機搭建成一個群集,群集對其中的所有主機提供HA保護。主機上的虛擬層軟件可監(jiān)控物理機狀況,一旦物理機出現(xiàn)故障,Center Sever可根據(jù)一定的策略,在具有備用資源量的其它主機上自動重啟故障物理機中受影響的虛擬機。當(dāng)有多個主機出現(xiàn)故障時,保護主機可能會出現(xiàn)資源不足的情況。在這種情況下,虛擬機遷移到保護主機上,可利用虛擬頁技術(shù)減少相同物理頁,利用虛擬內(nèi)存技術(shù)將內(nèi)存換出到磁盤上等各種技術(shù)滿足HA要求,但可能劣化保護主機上其它原有虛擬機的性能。本發(fā)明虛擬機遷移控制方法的一個實施例,可包括監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,第一虛擬機運行于第一主機上;若第一主機發(fā)生了故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的上述核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上,其中,第二主機為第一虛擬機的保護主機。參見圖3,圖3是本發(fā)明實施例提供的一種虛擬機遷移控制方法的流程示意圖,參見圖3,本發(fā)明實施例提供的一種虛擬機遷移控制方法可以包括以下內(nèi)容301、監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,第一虛擬機運行于
第一主機上。在本發(fā)明一些實施例中,可周期性(周期可能是等時長或非等時長的)或在指定事件的觸發(fā)下的監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,將設(shè)定時長內(nèi)(設(shè)定時長內(nèi)可能記性進行了多次監(jiān)測)監(jiān)測到的第一虛擬機上運行的核心應(yīng)用的使用資源量的平均值(或最大值或最小值或任意一次監(jiān)測到的使用資源量),作為監(jiān)測到的第一虛擬機上運行的核心應(yīng)用的使用資源量。302、若第一主機發(fā)生故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的上述核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上。其中,第二主機為第一虛擬機的保護主機??蓪⒌诙鳈C作為第一主機上運行的所有虛擬機的保護主機,此場景下,第二主機可看做是第一主機的保護主機,或也可將第二主機作為第一主機上運行的部分虛擬機的保護主機,當(dāng)然此場景下第二主機也可看做是第一主機的其中一個保護主機。在本發(fā)明一些實施例中,第二主機剩余的資源量可為第二主機剩余的未預(yù)留資源量或第二主機剩余的實際資源量。其中,第二主機可能為其上運行的部分或全部虛擬機分別預(yù)留一定的資源量,當(dāng)然,這些虛擬機實際上可能未完全使用對應(yīng)預(yù)留的資源量??赏ㄟ^監(jiān)測第二主機上的部分或全部虛擬機的使用資源量,來了解第二主機上的部分或全部虛擬機實際的使用資源量??赏ㄟ^監(jiān)測第二主機上的部分或全部虛擬機上運行的核心應(yīng)用的使用資源量,來了解第二主機上的部分或全部虛擬機上運行的核心應(yīng)用的使用資源量。在本發(fā)明各實施例中,核心應(yīng)用可包括操作系統(tǒng)和指定應(yīng)用(當(dāng)然指定應(yīng)用可以沒有),其中,指定應(yīng)用例如為用戶所指定的應(yīng)用和/或業(yè)務(wù)需求所指定的應(yīng)用,其中,業(yè)務(wù)需求指定的應(yīng)用可能是核心業(yè)務(wù)對應(yīng)的應(yīng)用和/或緊急業(yè)務(wù)對應(yīng)的應(yīng)用。例如,第一虛擬機(或其它虛擬機)的核心應(yīng)用可包括第一虛擬機(或其它虛擬機)操作系統(tǒng)和指定應(yīng)用(指定應(yīng)用可以沒有),其中該指定應(yīng)用例如為第一虛擬機(或其它虛擬機)上用戶指定的應(yīng)用和/或業(yè)務(wù)需求指定的應(yīng)用,其中,該業(yè)務(wù)需求指定的應(yīng)用可能是第一虛擬機(或其它虛擬機)上運行的與核心業(yè)務(wù)對應(yīng)的應(yīng)用和/或緊急業(yè)務(wù)對應(yīng)的應(yīng)用。可以理解,本發(fā)明的各實施例所指資源可為虛擬資源或物理資源,其中虛擬資源可包括虛擬CPU和虛擬內(nèi)存,當(dāng)然還可包括虛擬機需使用的其它虛擬資源;物理資源可包括物理CPU和物理內(nèi)存,當(dāng)然還可包括虛擬機需使用的其它物理資源。
在本發(fā)明的一些實施例中,還可進一步監(jiān)測第一虛擬機的使用資源量;若第一主機發(fā)生了故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的第一虛擬機的核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上可包括若第一主機發(fā)生了故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的第一虛擬機核心應(yīng)用的使用資源量,且第二主機剩余的資源量小于第一虛擬機的使用資源量,則將第一虛擬機遷移到第二主機上,其中,第一虛擬機上運行的部分或全部非核心應(yīng)用(其中,非核心應(yīng)用指的是除核心應(yīng)用外的其它應(yīng)用)在第一虛擬機遷移到第二主機之前或之后被裁減掉。在本發(fā)明的一些實施例中,若第二主機剩余的資源量為第二主機剩余的未預(yù)留資源量,則若第一主機發(fā)生了故障,且第二主機當(dāng)前剩余的未預(yù)留資源量小于監(jiān)測出的第一虛擬機的核心應(yīng)用的使用資源量,則縮減N個虛擬機的預(yù)留資源量;若縮減上述N個虛擬機的預(yù)留資源量之后,使得第二主機當(dāng)前剩余的未預(yù)留資源量大于或等于監(jiān)測出的第一虛擬機核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上,其中,上述N個虛擬機為運行于第二主機上的虛擬機,上述N為正整數(shù),上述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量。在本發(fā)明的一些實施例中,進一步的,若縮減了上述N個虛擬機的預(yù)留資源量之后,使得第二主機當(dāng)前剩余的未預(yù)留資源量仍小于監(jiān)測出的第一虛擬機核心應(yīng)用的使用資源量,則裁減掉M個虛擬機上運行的部分或者全部非核心應(yīng)用,將第一虛擬機遷移到第二主機上,其中,上述M個虛擬機為運行于第二主機上的虛擬機,上述M為正整數(shù)。在本發(fā)明的一些實施例中,若第二主機剩余的資源量為第二主機剩余的實際資源量,則若第一主機發(fā)生了故障,且第二主機當(dāng)前剩余的實際資源量小于監(jiān)測出的第一虛擬機的核心應(yīng)用的使用資源量,則可裁減掉X個虛擬機上運行的部分或者全部非核心應(yīng)用,將第一虛擬機遷移到第二主機上,其中,上述X個虛擬機為運行于第二主機上的虛擬機,上述X為正整數(shù)。在本發(fā)明的另一些實施例中,若第二主機剩余的資源量為第二主機剩余的實際虛擬資源量,則若第一主機發(fā)生了故障,且第二主機當(dāng)前剩余的實際虛擬資源量小于監(jiān)測出的第一虛擬機的核心應(yīng)用的使用資源量,則可擴展第二主機的虛擬資源量(擴展第二主機的虛擬資源量之后,可認為第二主機當(dāng)前剩余的實際虛擬資源量,大于或者等于監(jiān)測出的第一虛擬機或第一虛擬機的核心應(yīng)用的使用資源量),將第一虛擬機遷移到第二主機上,其中,第一虛擬機上運行的部分或全部非核心應(yīng)用在第一虛擬機遷移到第二主機之前或之后可以被裁減掉。其中,擴展第二主機的虛擬資源量后,第二主機的虛擬資源量和物理資源量之間比例可能高于1:1,例如第二主機的虛擬資源量和物理資源量之間比例可能變成2:1或其它比例??梢钥闯觯景l(fā)明實施例提供的技術(shù)方案中,通過監(jiān)測運行于第一主機上的第一虛擬機上運行的核心應(yīng)用的使用資源量;若第一主機發(fā)生故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的上述核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上。由于首先考慮的是第一虛擬機上運行的核心應(yīng)用的使用資源量,這樣相對與現(xiàn)有虛擬機遷移機制,能夠提高故障主機上的虛擬機成功遷移幾率,這樣有利于提高虛擬機的高可用性,并且有利于避免相關(guān)業(yè)務(wù)中斷。為便于更好的理解和實施本發(fā)明實施例的上述方案,下面舉例一些應(yīng)用場景進行詳細說明。參見圖4,圖4是本發(fā)明實施例提供的另一種虛擬機遷移控制方法的流程示意圖,參見圖4,本發(fā)明實施例提供的另一種虛擬機遷移控制方法可以包括以下內(nèi)容401、監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量和第一虛擬機的使用資源量。在本發(fā)明一些實施例中,可周期性(周期可能是等時長或非等時長的)或在指定事件的觸發(fā)下的監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,將設(shè)定時長內(nèi)監(jiān)測到的第一虛擬機上運行的核心應(yīng)用的使用資源量的平均值(或最大值或最小值或任意一次監(jiān)測到的使用資源量),作為監(jiān)測到的第一虛擬機上運行的核心應(yīng)用的使用資源量。在本發(fā)明一些實施例中,可周期性(周期可能是等時長或非等時長的)或在指定事件的觸發(fā)下的監(jiān)測第一虛擬機的使用資源量,將設(shè)定時長內(nèi)監(jiān)測到的第一虛擬機上的使用資源量的平均值(或最大值或最小值或任意一次監(jiān)測到的使用資源量),作為監(jiān)測到的第一虛擬機的使用資源量。402、若第一主機發(fā)生故障,判斷第二主機當(dāng)前剩余的未預(yù)留資源量是否大于或等于監(jiān)測出的第一虛擬機的使用資源量;若否,則執(zhí)行步驟403 ;若是,則執(zhí)行步驟408。403、判斷第二主機當(dāng)前剩余的未預(yù)留資源量是否大于或等于監(jiān)測出的第一虛擬機核心應(yīng)用的使用資源量;若否,則執(zhí)行步驟404 ;若是,則執(zhí)行步驟407。404、縮減第二主機上運行的N個虛擬機的預(yù)留資源量;其中,上述N為正整數(shù)。在本發(fā)明的一些實施例中,上述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量,或者,上述N個虛擬機中的部分或全部虛擬機所運行的應(yīng)用對應(yīng)非核心業(yè)務(wù)或非緊急業(yè)務(wù)。在本發(fā)明一些實施例中,可為每個虛擬機預(yù)留一定資源量,并可將虛擬機的預(yù)留資源量記錄到對應(yīng)的配置文件中。其中,在初始化過程中可為每個虛擬機設(shè)定預(yù)留資源量,該設(shè)定預(yù)留資源量可記錄到配置文件,后續(xù)可修改配置文件中記錄的預(yù)留資源量。在本發(fā)明一些實施例中,可根據(jù)虛擬機實際的使用資源量得到虛擬機的最佳預(yù)留資源量,例如,預(yù)留資源量Y作為虛擬機的最佳預(yù)留資源量,或者可比較預(yù)留資源量Y和對應(yīng)配置文件中當(dāng)前記錄的預(yù)留資源量,若預(yù)留資源量Y大于或等于對應(yīng)配置文件中當(dāng)前記錄的預(yù)留資源量,則可將對應(yīng)配置文件中當(dāng)前記錄的預(yù)留資源量作為該虛擬機的最佳預(yù)留資源量,若預(yù)留資源量Y小于對應(yīng)配置文件中當(dāng)前記錄的預(yù)留資源量,則可將預(yù)留資源量Y作為該虛擬機的最佳預(yù)留資源量。其中,預(yù)留資源量Y為設(shè)定時長內(nèi)監(jiān)測到的該虛擬機(或該虛擬機上運行的核心應(yīng)用)的使用資源量的平均值(或者最大值或最小值或任意I次監(jiān)測到的使用資源量)。若得到了虛擬機的最佳預(yù)留資源量,則可將該最佳預(yù)留資源量記錄到對應(yīng)的配置文件。在本發(fā)明的一些實施例中,可以不縮減第二主機上運行的所有虛擬機的預(yù)留資源量,例如在進行預(yù)留資源量調(diào)整前,將計算出每個虛擬機的最佳預(yù)留資源量和當(dāng)前預(yù)留量相減,得出該虛擬機可縮減的資源量。例如假設(shè)第二主機上已運行有虛擬機1、虛擬機2和虛擬機3,內(nèi)存預(yù)留情況如下虛擬機I當(dāng)前的預(yù)留資源量為3GB,虛擬機I的最佳預(yù)留資源量為3GB (虛擬機I可縮減的資源量為0GB)。虛擬機2當(dāng)前的預(yù)留資源量為6GB,虛擬機2的最佳預(yù)留資源量為3GB (虛擬機2可縮減的資源量為3GB)。虛擬機3當(dāng)前的預(yù)留資源量為5GB,虛擬機3的最佳預(yù)留資源量為4GB (虛擬機2可縮減的資源量為1GB)。將可縮減的資源量按大小排序,可從可縮減出最大資源量的虛擬機開始調(diào)整預(yù)留資源量,直到滿足需求即停止預(yù)留資源量調(diào)整。以上舉例為例,首先調(diào)整虛擬機2的預(yù)留資源量,若能滿足資源需求則停止調(diào)整,否則,繼續(xù)調(diào)整虛擬機3的預(yù)留,依此類推,直到調(diào)整完第二主機上的所有虛擬機的預(yù)留。這樣的調(diào)整方式可減少需調(diào)整虛擬機的個數(shù),進一步縮小了故障影響范圍;在多個虛擬機同時遷移時,避免每次都對第二主機上已運行的所有虛擬機都調(diào)整一遍對應(yīng)的預(yù)留資源量,每次可能僅調(diào)整第二主機上已運行部分虛擬機即可滿足資源預(yù)留需求。405、判斷縮減第二主機上運行的N個虛擬機的預(yù)留資源量之后,第二主機當(dāng)前剩余的未預(yù)留資源量是否大于或等于監(jiān)測出的第一虛擬機核心應(yīng)用的使用資源量;若否,則執(zhí)行步驟406 ;若是,則執(zhí)行步驟407 ;406、擴展第二主機的虛擬資源量;其中,擴展第二主機的虛擬資源量之后,可認為第二主機當(dāng)前剩余的實際虛擬資源量,大于或者等于監(jiān)測出的第一虛擬機或第一虛擬機的核心應(yīng)用的使用資源量。其中,擴展第二主機的虛擬資源量后,第二主機的虛擬資源量和物理資源量之間比例可能高于1:1,例如第二主機的虛擬資源量和物理資源量之間比例可能變成2:1或其它比例。407、裁減掉第一虛擬機上的部分或全部非核心應(yīng)用。408、將第一虛擬機遷移到第二主機上。參見圖5-a 圖5-c,在本發(fā)明的一些實施例中,可通過在各虛擬機中部署代理程序4002,并可在Center Server部署管理程序4001 (如圖5_a所示),或在某個主機上部署管理程序4001 (如圖5-b所示),或者可單獨部署管理程序4001 (如圖5-c所示),利用代理程序4002和管理程序4001協(xié)作,實現(xiàn)虛擬機的遷移控制。在本發(fā)明的一些實施例中,代理程序4002可主要功能可包括實時監(jiān)控虛擬機的資源使用情況并通知管理程序4001 ;根據(jù)管理程序4001的指示按需裁剪虛擬機上的非核心應(yīng)用。管理程序4001可與Center Sever保持網(wǎng)絡(luò)連接,主要功能可包括記錄用戶指定的虛擬機核心應(yīng)用;記錄虛擬機的使用資源量,記錄虛擬機上的核心應(yīng)用的使用資源量(可包括CPU和內(nèi)存等);與Center Sever通信修改虛擬機配置文件以調(diào)整相應(yīng)虛擬機配置的預(yù)留資源量;通知代理程序4002裁剪掉虛擬機的非核心應(yīng)用等。
若基于參見圖5_a或圖5_b或圖5_c所不集群架構(gòu),在本發(fā)明的一些實施例中,集群啟動后首先進入初始化階段,在該初始化階段各單元完成各自數(shù)據(jù)初始化。管理程序4001可記錄用戶指定的虛擬機的核心應(yīng)用,并可為沒有設(shè)置預(yù)留資源量的虛擬機配置預(yù)留資源量。初始化階段完成后,集群進入監(jiān)控階段。在該階段,各代理程序4002可周期性地監(jiān)測它所在虛擬機的資源使用情況,并且,通過通道向管理程序4001傳送監(jiān)測到的虛擬機的資源量;管理程序記錄各代理發(fā)送的虛擬機使用資源量,以作為后續(xù)選擇資源調(diào)整策略時作為依據(jù)。當(dāng)某主機發(fā)生故障時,管理程序4001可能失去與相應(yīng)代理程序4002的通信,管理程序4001可通過調(diào)用相應(yīng)應(yīng)用程序接口,向Center Sever查詢故障主機上的虛擬機的當(dāng)前狀態(tài)。若故障主機上的虛擬機全部成功遷移到其它主機,管理程序4001可繼續(xù)監(jiān)控,否則進入資源調(diào)節(jié)階段(例如步驟40Γ步驟406所示資源調(diào)節(jié)方式)。在資源調(diào)節(jié)階段結(jié)束后,管理程序4001可通知Center Server重新遷移故障主機上的虛擬機,遷移成功后相應(yīng)代理程序4002重啟并進入監(jiān)控階段。 下面舉例一個更為具體的例子進行說明。例如圖6所示,假設(shè)群集中有兩臺主機,其中一臺是將會發(fā)生故障的故障主機,另一臺是提供保護的保護主機。其中,保護主機上有三個正在運行的虛擬機W1、虛擬機W2、虛擬機W3,故障主機上有一臺運行的虛擬機W4 ;每臺虛擬機上都運行著代理程序;當(dāng)故障主機發(fā)生故障時,虛擬機W4將要遷移到保護主機上,例如下表I所示(本舉例場景中的以內(nèi)存資源為例):表I
權(quán)利要求
1.一種虛擬機遷移控制方法,其特征在于,包括: 監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,所述第一虛擬機運行于第一主機上; 若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量或所述第二主機剩余的實際資源量。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述方法還包括: 監(jiān)測所述第一虛擬 機的使用資源量; 所述若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,包括: 若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,且第二主機剩余的資源量小于第一虛擬機的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述第一虛擬機上運行的部分或全部非核心應(yīng)用在所述第一虛擬機遷移到所述第二主機之前或之后被裁減掉。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于, 所述方法還包括: 若所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量,則若所述第一主機發(fā)生了故障,且所述第二主機當(dāng)前剩余的未預(yù)留資源量小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則縮減N個虛擬機的預(yù)留資源量;若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量大于或等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述N個虛擬機為運行于所述第二主機上的虛擬機,所述N為正整數(shù),所述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述方法還包括: 若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量仍小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則裁減掉M個虛擬機上運行的部分或者全部非核心應(yīng)用,將所述第一虛擬機遷移到所述第二主機上,其中,所述M個虛擬機為運行于所述第二主機上的虛擬機,所述M為正整數(shù)。
6.根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于,所述監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,包括:周期性的監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,將設(shè)定時長內(nèi)監(jiān)測到的所述第一虛擬機上運行的核心應(yīng)用的使用資源量的平均值或最大值或最小值,作為監(jiān)測到的所述第一虛擬機上運行的核心應(yīng)用的使用資源量。
7.根據(jù)權(quán)利要求1至6任一項所述的方法,其特征在于,所述核心應(yīng)用包括操作系統(tǒng)和指定應(yīng)用。
8.—種虛擬機遷移控制裝置,其特征在于,包括:監(jiān)測單元,監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,所述第一虛擬機運行于第一主機上; 遷移控制單元,用于若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于所述監(jiān)測單元監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上。
9.根據(jù)權(quán)利要求8所述的虛擬機遷移控制裝置,其特征在于, 所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量或所述第二主機剩余的實際資源量。
10.根據(jù)權(quán)利要求8或9所述的虛擬機遷移控制裝置,其特征在于, 所述監(jiān)測單元還用于,監(jiān)測所述第一虛擬機的使用資源量; 所述遷移控制單元具體用于,若所述第一主機發(fā)生了故障,且所述第二主機剩余的資源量大于或者等于監(jiān)測出的所述核心應(yīng)用的使用資源量,且第二主機剩余的資源量小于第一虛擬機的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述第一虛擬機上運行的部分或全部非核心應(yīng)用在所述第一虛擬機遷移到所述第二主機之前或之后被裁減掉。
11.根據(jù)權(quán)利要求8至10任一項所述的虛擬機遷移控制裝置,其特征在于, 所述遷移控制單元還用于,若所述第二主機剩余的資源量為所述第二主機剩余的未預(yù)留資源量,則若所述第一主機發(fā)生了故障,且所述第二主機當(dāng)前剩余的未預(yù)留資源量小于監(jiān)測出的所述核心應(yīng)用的使用資源量,則縮減N個虛擬機的預(yù)留資源量;若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量大于或等于監(jiān)測出的所述核心應(yīng)用的使用資源量,則將所述第一虛擬機遷移到所述第二主機上,其中,所述N個虛擬機為運行于所述第 二主機上的虛擬機,所述N為正整數(shù),所述N個虛擬機中的部分或全部虛擬機的實際使用資源量小于其對應(yīng)的預(yù)留資源量。
12.根據(jù)權(quán)利要求11所述的虛擬機遷移控制裝置,其特征在于,所述遷移控制單元還用于,若縮減所述N個虛擬機的預(yù)留資源量之后,使得所述第二主機當(dāng)前剩余的未預(yù)留資源量仍小于所述監(jiān)測單元監(jiān)測出的所述核心應(yīng)用的使用資源量,則裁減掉M個虛擬機上運行的部分或者全部非核心應(yīng)用,將所述第一虛擬機遷移到所述第二主機上,其中,所述M個虛擬機為運行于所述第二主機上的虛擬機,所述M為正整數(shù)。
全文摘要
本發(fā)明實施例公開了虛擬機遷移控制方法和裝置。其中,一種虛擬機遷移控制方法可包括監(jiān)測第一虛擬機上運行的核心應(yīng)用的使用資源量,其中,第一虛擬機運行于第一主機上;若第一主機發(fā)生了故障,且第二主機剩余的資源量大于或者等于監(jiān)測出的核心應(yīng)用的使用資源量,則將第一虛擬機遷移到第二主機上。本發(fā)明實施例提供的技術(shù)方案,有利于提高虛擬機的高可用性,有利于避免業(yè)務(wù)中斷。
文檔編號G06F9/455GK103077079SQ20121058710
公開日2013年5月1日 申請日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者顏開, 秦翼, 劉賀 申請人:華為技術(shù)有限公司