本發(fā)明涉及虛擬機(jī)化管理技術(shù)領(lǐng)域,特別是涉及一種虛擬機(jī)的在線遷移方法及裝置。
背景技術(shù):
隨著科技的進(jìn)步,技術(shù)的發(fā)展,國(guó)產(chǎn)化大數(shù)據(jù)虛擬化軟件越來(lái)越受銀行、政府、部隊(duì)及各大企業(yè)的關(guān)注,隨之而來(lái)的就是虛擬化軟件的更新?lián)Q代,客戶(hù)最關(guān)注的莫過(guò)于在不影響業(yè)務(wù)正常運(yùn)行的情況下更換虛擬化軟件??蛻?hù)業(yè)務(wù)運(yùn)行的載體是虛擬機(jī),在更換過(guò)虛擬化軟件平臺(tái)之后,如何將源服務(wù)器上運(yùn)行的虛擬機(jī)在不影響業(yè)務(wù)運(yùn)行,且最小化遷移時(shí)間和停機(jī)時(shí)間的情況下,將虛擬機(jī)遷移到目標(biāo)服務(wù)器上成為了關(guān)鍵性的問(wèn)題。
現(xiàn)有技術(shù)中,在實(shí)現(xiàn)虛擬機(jī)的遷移過(guò)程中,有離線或在線遷移的方法,但是上述方法均存在以下問(wèn)題:在遷移過(guò)程中虛擬機(jī)服務(wù)不可用且不可用的時(shí)間較長(zhǎng)。
由此可見(jiàn),在虛擬機(jī)遷移過(guò)程中,如何保證虛擬機(jī)服務(wù)在源服務(wù)器上的最大程度的使用,以降低虛擬機(jī)的停機(jī)時(shí)間是本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種虛擬機(jī)的在線遷移方法及裝置,用于保證虛擬機(jī)服務(wù)在源服務(wù)器上的最大程度的使用,以降低虛擬機(jī)的停機(jī)時(shí)間。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種虛擬機(jī)的在線遷移方法,包括:
對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理;
虛擬機(jī)在上述源服務(wù)器上運(yùn)轉(zhuǎn)時(shí),將所述虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)全部拷貝至所述目標(biāo)服務(wù)器;
當(dāng)所述虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)中的內(nèi)存數(shù)據(jù)的變化規(guī)模達(dá)到預(yù)定標(biāo)準(zhǔn)時(shí),將當(dāng)前的臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中,直至所述虛擬機(jī)的當(dāng)前臟頁(yè)的數(shù)量小于預(yù)定值;
將所述源服務(wù)器停機(jī),并將最后一循環(huán)的臟頁(yè)和所述源服務(wù)器的當(dāng)前工作狀態(tài)復(fù)制到所述目標(biāo)服務(wù)器中;
控制所述虛擬機(jī)從所述源服務(wù)器遷移至所述目標(biāo)服務(wù)器。
優(yōu)選地,所述將當(dāng)前的臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中具體為:將當(dāng)前的臟頁(yè)按照預(yù)篩選規(guī)則篩選出目標(biāo)臟頁(yè),并將所述目標(biāo)臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中;
其中,所述預(yù)篩選規(guī)則包括:?jiǎn)未窝h(huán)內(nèi)的所述目標(biāo)臟頁(yè)的數(shù)量小于或等于預(yù)定數(shù)量、單次循環(huán)內(nèi)的所述目標(biāo)臟頁(yè)的數(shù)量小于新產(chǎn)生的臟頁(yè)的數(shù)量。
優(yōu)選地,還包括:在每次循環(huán)結(jié)束后,統(tǒng)計(jì)預(yù)拷貝的循環(huán)次數(shù),如果所述循環(huán)次數(shù)達(dá)到預(yù)定次數(shù),則直接進(jìn)入將所述源服務(wù)器停機(jī)的步驟。
優(yōu)選地,還包括:統(tǒng)計(jì)所述虛擬機(jī)的同一個(gè)進(jìn)程在執(zhí)行寫(xiě)操作時(shí)所對(duì)應(yīng)的調(diào)度次數(shù),如果所述調(diào)度次數(shù)超過(guò)預(yù)調(diào)度次數(shù),則停止調(diào)度所述進(jìn)程。
優(yōu)選地,所述對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理具體包括:
配置所述目標(biāo)服務(wù)器的存儲(chǔ)器和網(wǎng)絡(luò)資源;
在所述目標(biāo)服務(wù)器上預(yù)保留所述虛擬機(jī)運(yùn)行所需的存儲(chǔ)資源。
優(yōu)選地,所述控制所述虛擬機(jī)從所述源服務(wù)器遷移至所述目標(biāo)服務(wù)器具體包括:
將所述虛擬機(jī)的虛擬磁盤(pán)從所述源服務(wù)器上解鎖,并將所述虛擬磁盤(pán)鎖定在所述目標(biāo)服務(wù)器上;
啟動(dòng)所述目標(biāo)服務(wù)器,并將所述虛擬機(jī)所需的存儲(chǔ)資源和網(wǎng)絡(luò)資源相連接。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種虛擬機(jī)的在線遷移裝置,包括:
預(yù)處理模塊,用于對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理;
虛擬機(jī)監(jiān)控模塊,用于所述虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)中的內(nèi)存數(shù)據(jù)的變化規(guī)模達(dá)到預(yù)定標(biāo)準(zhǔn)時(shí),將當(dāng)前的臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中,直至所述虛擬機(jī)的當(dāng)前臟頁(yè)的數(shù)量小于預(yù)定值;將所述源服務(wù)器停機(jī),并將最后一循環(huán)的臟頁(yè)和所述源服務(wù)器的當(dāng)前工作狀態(tài)復(fù)制到所述目標(biāo)服務(wù)器中;
遷移模塊,用于控制所述虛擬機(jī)從所述源服務(wù)器遷移至所述目標(biāo)服務(wù)器。
優(yōu)選地,所述虛擬機(jī)監(jiān)控模塊將當(dāng)前的臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中具體為:所述虛擬機(jī)監(jiān)控模塊將當(dāng)前的臟頁(yè)按照預(yù)篩選規(guī)則篩選出目標(biāo)臟頁(yè),并將所述目標(biāo)臟頁(yè)復(fù)制到所述目標(biāo)服務(wù)器中;
其中,所述預(yù)篩選規(guī)則包括:?jiǎn)未窝h(huán)內(nèi)的所述目標(biāo)臟頁(yè)的數(shù)量小于或等于預(yù)定數(shù)量、單次循環(huán)內(nèi)的所述目標(biāo)臟頁(yè)的數(shù)量小于新產(chǎn)生的臟頁(yè)的數(shù)量。
優(yōu)選地,還包括:
第一統(tǒng)計(jì)模塊,用于在每次循環(huán)結(jié)束后,統(tǒng)計(jì)預(yù)拷貝的循環(huán)次數(shù),如果所述循環(huán)次數(shù)達(dá)到預(yù)定次數(shù),則觸發(fā)所述遷移模塊。
優(yōu)選地,還包括:
第二統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)所述虛擬機(jī)的同一個(gè)進(jìn)程在執(zhí)行寫(xiě)操作時(shí)所對(duì)應(yīng)的調(diào)度次數(shù),如果所述調(diào)度次數(shù)超過(guò)預(yù)調(diào)度次數(shù),則停止調(diào)度所述進(jìn)程。
本發(fā)明所提供的虛擬機(jī)的在線遷移方法,通過(guò)預(yù)拷貝技術(shù),實(shí)現(xiàn)虛擬機(jī)的在線遷移,從而不影響為用戶(hù)提供服務(wù),另外,在每一次循環(huán)過(guò)程中,只有當(dāng)前內(nèi)存數(shù)據(jù)的變換規(guī)模達(dá)到第一預(yù)定標(biāo)準(zhǔn)時(shí)才進(jìn)行臟頁(yè)的復(fù)制,從而有效地控制循環(huán)次以降低復(fù)制臟頁(yè)所帶來(lái)的時(shí)間消耗。同時(shí),隨著循環(huán)次數(shù)的增加,每一次循環(huán)所需要復(fù)制的臟頁(yè)數(shù)量就會(huì)明顯減少,當(dāng)臟頁(yè)的數(shù)量減小至預(yù)定值時(shí)才真正停機(jī),停機(jī)之后,將最后一循環(huán)中的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器。由此可見(jiàn),本發(fā)明所需的停機(jī)時(shí)間就是最后一循環(huán)中臟頁(yè)復(fù)制所消耗的時(shí)間,相比于現(xiàn)有技術(shù)來(lái)說(shuō),在停機(jī)前期,本方法不影響虛擬機(jī)向用戶(hù)提供服務(wù),且停機(jī)時(shí)間大大縮短。此外,本發(fā)明所提供的虛擬機(jī)的在線遷移裝置,效果如上。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例,下面將對(duì)實(shí)施例中所需要使用的附圖做簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種虛擬機(jī)的在線遷移方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種s12的流程圖;
圖3為本發(fā)明實(shí)施例提供的一種虛擬機(jī)的在線遷移裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下,所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)范圍。
本發(fā)明的核心是提供一種虛擬機(jī)的在線遷移方法及裝置,用于保證虛擬機(jī)服務(wù)在源服務(wù)器上的最大程度的使用,以降低虛擬機(jī)的停機(jī)時(shí)間。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
圖1為本發(fā)明實(shí)施例提供的一種虛擬機(jī)的在線遷移方法的流程圖。如圖1所示,該方法包括:
s10:對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理。
在具體實(shí)施中,接收到遷移指令時(shí),根據(jù)遷移指令中對(duì)應(yīng)的源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理。這里的虛擬機(jī)所在的操作系統(tǒng)可以是window系統(tǒng),或者是linux系統(tǒng)。
作為優(yōu)選地實(shí)施方式,對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理具體包括:
配置目標(biāo)服務(wù)器的存儲(chǔ)器和網(wǎng)絡(luò)資源;
在目標(biāo)服務(wù)器上預(yù)保留虛擬機(jī)運(yùn)行所需的存儲(chǔ)資源。
s11:虛擬機(jī)在源服務(wù)器上運(yùn)轉(zhuǎn)時(shí),將虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)全部拷貝至目標(biāo)服務(wù)器。
本步驟是預(yù)拷貝的首次循環(huán),在首次循環(huán)中,把虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)全部拷貝至目標(biāo)服務(wù)器,此時(shí),目標(biāo)服務(wù)器上就存儲(chǔ)了當(dāng)前虛擬機(jī)的內(nèi)存數(shù)據(jù)。
上述所述的預(yù)拷貝(pre-copy)技術(shù),其邏輯步驟與在線遷移幾乎完全一致。不同的是,為了保證遷移過(guò)程中虛擬機(jī)服務(wù)的可用,遷移過(guò)程僅有非常短暫的停機(jī)時(shí)間。
s12:當(dāng)虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)中的內(nèi)存數(shù)據(jù)的變化規(guī)模達(dá)到預(yù)定標(biāo)準(zhǔn)時(shí),將當(dāng)前的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中,直至虛擬機(jī)的當(dāng)前臟頁(yè)的數(shù)量小于預(yù)定值。
圖2為本發(fā)明實(shí)施例提供的一種s12的流程圖。如圖2所示,s12具體包括:
s120:判斷虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)中的內(nèi)存數(shù)據(jù)的變化規(guī)模是否達(dá)到預(yù)定標(biāo)準(zhǔn),如果是,則進(jìn)入s121,如果否,則進(jìn)入s122。
s121:將當(dāng)前的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中,進(jìn)入s122。
s122:判斷虛擬機(jī)的當(dāng)前臟頁(yè)的數(shù)量是否小于預(yù)定值,如果是,進(jìn)入s13,如果否,則返回s120。
本實(shí)施例所述的預(yù)定標(biāo)準(zhǔn)可以是存在變化的內(nèi)存數(shù)據(jù)的數(shù)量,即臟頁(yè)數(shù)量達(dá)到第一閾值;或者是存在變化的內(nèi)存數(shù)據(jù)的數(shù)量與內(nèi)存數(shù)據(jù)的總量的比值,即臟頁(yè)數(shù)量與內(nèi)存數(shù)據(jù)的總量的比值達(dá)到第一閾值。
如果預(yù)定標(biāo)準(zhǔn)為臟頁(yè)的數(shù)量達(dá)到第一閾值,則步驟s120中,就是判斷當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)相比,發(fā)生變化的內(nèi)存數(shù)據(jù)的數(shù)量是否達(dá)到第一閾值,即臟頁(yè)的數(shù)量是否達(dá)到第一閾值。例如,本次循環(huán)中,發(fā)生變換的內(nèi)存數(shù)據(jù)為99,即臟頁(yè)的數(shù)據(jù)量為99,而第一閾值為100,則步驟s120的判斷結(jié)果就為否。如果本次循環(huán)中,發(fā)生變換的內(nèi)存數(shù)據(jù)為200,即臟頁(yè)的數(shù)據(jù)量為200,而第一閾值為100,則步驟s120的判斷結(jié)果就為是。可以理解的是,步驟s120,可以減小循環(huán)的次數(shù),控制循環(huán)次數(shù)的目的是為了減小無(wú)效的復(fù)制臟頁(yè)所帶來(lái)的時(shí)間消耗。
隨著循環(huán)次數(shù)的增加,每一次循環(huán)所需要復(fù)制的臟頁(yè)數(shù)量就會(huì)明顯減少,臟頁(yè)數(shù)量減小,則復(fù)制所耗費(fèi)的時(shí)間就會(huì)逐漸變短,那么內(nèi)存數(shù)據(jù)就沒(méi)有足夠的時(shí)間發(fā)生變化,從而滿(mǎn)足當(dāng)前臟頁(yè)數(shù)量小于預(yù)定值的條件,即停止循環(huán),達(dá)到停機(jī)的條件。
s13:將源服務(wù)器停機(jī),并將最后一循環(huán)的臟頁(yè)和源服務(wù)器的當(dāng)前工作狀態(tài)復(fù)制到目標(biāo)服務(wù)器中。
步驟s10-s12中,虛擬機(jī)保持在源服務(wù)器上運(yùn)行,并未停機(jī),因此,不影響為用戶(hù)提供服務(wù),而進(jìn)入步驟s13中,就需要停機(jī),但是最后一循環(huán)中臟頁(yè)數(shù)量較少,因此復(fù)制臟頁(yè)的時(shí)間就會(huì)很短,從而很大程度上縮短了停機(jī)的時(shí)間。
為了讓本領(lǐng)域技術(shù)人員更加清楚本發(fā)明所提供的方法的有效性,下文將以具體數(shù)值說(shuō)明。例如內(nèi)存數(shù)據(jù)的總量為1000,如果按照現(xiàn)有技術(shù)中,在線遷移時(shí),需要停機(jī),然后將全部?jī)?nèi)存數(shù)據(jù)復(fù)制至目標(biāo)服務(wù)器,這一過(guò)程中,所需要的時(shí)間就是復(fù)制1000個(gè)內(nèi)存數(shù)據(jù)所消耗的時(shí)間。而利用本發(fā)明所提供的方法,當(dāng)停機(jī)時(shí),只需要復(fù)制50個(gè)(預(yù)定值為50)內(nèi)存數(shù)據(jù),這一過(guò)程中,所需要的時(shí)間就是復(fù)制50個(gè)內(nèi)存數(shù)據(jù)所消耗的時(shí)間。很顯然,本方法所需的停機(jī)時(shí)間遠(yuǎn)遠(yuǎn)小于現(xiàn)有技術(shù)所需要的停機(jī)時(shí)間。
s14:控制虛擬機(jī)從源服務(wù)器遷移至目標(biāo)服務(wù)器。
作為優(yōu)選地實(shí)施方式,本步驟具體包括:
將虛擬機(jī)的虛擬磁盤(pán)從源服務(wù)器上解鎖,并將虛擬磁盤(pán)鎖定在目標(biāo)服務(wù)器上;
啟動(dòng)目標(biāo)服務(wù)器,并將虛擬機(jī)所需的存儲(chǔ)資源和網(wǎng)絡(luò)資源相連接。
本實(shí)施例提供的虛擬機(jī)的在線遷移方法,通過(guò)預(yù)拷貝技術(shù),實(shí)現(xiàn)虛擬機(jī)的在線遷移,從而不影響為用戶(hù)提供服務(wù),另外,在每一次循環(huán)過(guò)程中,只有當(dāng)前內(nèi)存數(shù)據(jù)的變換規(guī)模達(dá)到第一預(yù)定標(biāo)準(zhǔn)時(shí)才進(jìn)行臟頁(yè)的復(fù)制,從而有效地控制循環(huán)次以降低復(fù)制臟頁(yè)所帶來(lái)的時(shí)間消耗。同時(shí),隨著循環(huán)次數(shù)的增加,每一次循環(huán)所需要復(fù)制的臟頁(yè)數(shù)量就會(huì)明顯減少,當(dāng)臟頁(yè)的數(shù)量減小至預(yù)定值時(shí)才真正停機(jī),停機(jī)之后,將最后一循環(huán)中的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器。由此可見(jiàn),本發(fā)明所需的停機(jī)時(shí)間就是最后一循環(huán)中臟頁(yè)復(fù)制所消耗的時(shí)間,相比于現(xiàn)有技術(shù)來(lái)說(shuō),在停機(jī)前期,本方法不影響虛擬機(jī)向用戶(hù)提供服務(wù),且停機(jī)時(shí)間大大縮短。
在上述實(shí)施例的基礎(chǔ)上,作為一種優(yōu)選地實(shí)施方式,將當(dāng)前的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中具體為:
將當(dāng)前的臟頁(yè)按照預(yù)篩選規(guī)則篩選出目標(biāo)臟頁(yè),并將目標(biāo)臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中;
其中,預(yù)篩選規(guī)則包括:?jiǎn)未窝h(huán)內(nèi)的目標(biāo)臟頁(yè)的數(shù)量小于或等于預(yù)定數(shù)量、單次循環(huán)內(nèi)的目標(biāo)臟頁(yè)的數(shù)量小于新產(chǎn)生的臟頁(yè)的數(shù)量。
本實(shí)施例中,為了減小臟頁(yè)的無(wú)效復(fù)制,在單次循環(huán)中,限制了要復(fù)制的臟頁(yè)的數(shù)量。例如,單次循環(huán)中,有100個(gè)臟頁(yè),但是本次循環(huán)中,并不是全部將這100個(gè)臟頁(yè)復(fù)制到目標(biāo)服務(wù)器,而是選取預(yù)定數(shù)量的臟頁(yè)復(fù)制,如果預(yù)定數(shù)量為50,則本次循環(huán)中,只復(fù)制其中的50個(gè)。
另外一種情況,如果新產(chǎn)生的臟頁(yè)的數(shù)量為40,則本次循環(huán)中的目標(biāo)臟頁(yè)的數(shù)量不可以超過(guò)40。
在具體實(shí)施中,上述兩個(gè)規(guī)則可以只滿(mǎn)足其中一個(gè)即可,或者兩個(gè)都要滿(mǎn)足,本實(shí)施例不再贅述。
作為一種優(yōu)選地實(shí)施方式,預(yù)定數(shù)量為45。
在上述實(shí)施例的基礎(chǔ)上,作為一種優(yōu)選地實(shí)施方式,還包括:在每次循環(huán)結(jié)束后,統(tǒng)計(jì)預(yù)拷貝的循環(huán)次數(shù),如果循環(huán)次數(shù)達(dá)到預(yù)定次數(shù),則直接進(jìn)入將源服務(wù)器停機(jī)的步驟。
本實(shí)施例中,為了防止停機(jī)之前所消耗的時(shí)間過(guò)多,則限制了循環(huán)次數(shù),如果循環(huán)次數(shù)達(dá)到預(yù)定次數(shù),即使沒(méi)有達(dá)到s12中的條件,也要進(jìn)入停機(jī)的步驟。優(yōu)選地,預(yù)定次數(shù)可以為25次。
作為一種優(yōu)選地實(shí)施方式,還包括:統(tǒng)計(jì)虛擬機(jī)的同一個(gè)進(jìn)程在執(zhí)行寫(xiě)操作時(shí)所對(duì)應(yīng)的調(diào)度次數(shù),如果調(diào)度次數(shù)超過(guò)預(yù)調(diào)度次數(shù),則停止調(diào)度進(jìn)程。
在預(yù)拷貝過(guò)程中,臟頁(yè)的產(chǎn)生對(duì)于停機(jī)時(shí)間的長(zhǎng)短具有重要影響,為了防止臟頁(yè)高頻率的產(chǎn)生,則本實(shí)施例中,如果一個(gè)進(jìn)程在執(zhí)行寫(xiě)操作時(shí)所對(duì)應(yīng)的調(diào)度次數(shù)超過(guò)預(yù)調(diào)度次數(shù),則停止調(diào)度該進(jìn)程。該方法可以直接降低預(yù)拷貝過(guò)程中內(nèi)存變臟的速度,其代價(jià)是對(duì)虛擬機(jī)上的進(jìn)程運(yùn)行進(jìn)行了一定的限制。優(yōu)選地,預(yù)調(diào)度次數(shù)可以為30次。
上文中對(duì)于虛擬機(jī)的在線遷移方法對(duì)應(yīng)的實(shí)施例進(jìn)行了詳細(xì)的描述,本發(fā)明還提供一種虛擬機(jī)的在線遷移裝置,由于裝置部分的實(shí)施例與方法部分的實(shí)施例相互對(duì)應(yīng),因此裝置部分的實(shí)施例請(qǐng)參見(jiàn)方法部分的實(shí)施例的描述,這里暫不贅述。
圖3為本發(fā)明實(shí)施例提供的一種虛擬機(jī)的在線遷移裝置的結(jié)構(gòu)圖。如圖3所示,該裝置包括:
預(yù)處理模塊10,用于對(duì)源服務(wù)器和目標(biāo)服務(wù)器進(jìn)行遷移前的預(yù)處理;
虛擬機(jī)監(jiān)控模塊11,用于虛擬機(jī)的當(dāng)前內(nèi)存數(shù)據(jù)與上一循環(huán)中的內(nèi)存數(shù)據(jù)的變化規(guī)模達(dá)到預(yù)定標(biāo)準(zhǔn)時(shí),將當(dāng)前的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中,直至虛擬機(jī)的當(dāng)前臟頁(yè)的數(shù)量小于預(yù)定值;將源服務(wù)器停機(jī),并將最后一循環(huán)的臟頁(yè)和源服務(wù)器的當(dāng)前工作狀態(tài)復(fù)制到目標(biāo)服務(wù)器中;
遷移模塊12,用于控制虛擬機(jī)從源服務(wù)器遷移至目標(biāo)服務(wù)器。
本實(shí)施例提供的虛擬機(jī)的在線遷移裝置,通過(guò)預(yù)拷貝技術(shù),實(shí)現(xiàn)虛擬機(jī)的在線遷移,從而不影響為用戶(hù)提供服務(wù),另外,在每一次循環(huán)過(guò)程中,只有當(dāng)前內(nèi)存數(shù)據(jù)的變換規(guī)模達(dá)到第一預(yù)定標(biāo)準(zhǔn)時(shí)才進(jìn)行臟頁(yè)的復(fù)制,從而有效地控制循環(huán)次以降低復(fù)制臟頁(yè)所帶來(lái)的時(shí)間消耗。同時(shí),隨著循環(huán)次數(shù)的增加,每一次循環(huán)所需要復(fù)制的臟頁(yè)數(shù)量就會(huì)明顯減少,當(dāng)臟頁(yè)的數(shù)量減小至預(yù)定值時(shí)才真正停機(jī),停機(jī)之后,將最后一循環(huán)中的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器。由此可見(jiàn),本發(fā)明所需的停機(jī)時(shí)間就是最后一循環(huán)中臟頁(yè)復(fù)制所消耗的時(shí)間,相比于現(xiàn)有技術(shù)來(lái)說(shuō),在停機(jī)前期,本方法不影響虛擬機(jī)向用戶(hù)提供服務(wù),且停機(jī)時(shí)間大大縮短。
作為優(yōu)選地實(shí)施方式,虛擬機(jī)監(jiān)控模塊11將當(dāng)前的臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中具體為:虛擬機(jī)監(jiān)控模塊將當(dāng)前的臟頁(yè)按照預(yù)篩選規(guī)則篩選出目標(biāo)臟頁(yè),并將目標(biāo)臟頁(yè)復(fù)制到目標(biāo)服務(wù)器中;
其中,預(yù)篩選規(guī)則包括:?jiǎn)未窝h(huán)內(nèi)的目標(biāo)臟頁(yè)的數(shù)量小于或等于預(yù)定數(shù)量、單次循環(huán)內(nèi)的目標(biāo)臟頁(yè)的數(shù)量小于新產(chǎn)生的臟頁(yè)的數(shù)量。
作為優(yōu)選地實(shí)施方式,還包括:
第一統(tǒng)計(jì)模塊,用于在每次循環(huán)結(jié)束后,統(tǒng)計(jì)預(yù)拷貝的循環(huán)次數(shù),如果循環(huán)次數(shù)達(dá)到預(yù)定次數(shù),則觸發(fā)遷移模塊。
作為優(yōu)選地實(shí)施方式,還包括:
第二統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)虛擬機(jī)的同一個(gè)進(jìn)程在執(zhí)行寫(xiě)操作時(shí)所對(duì)應(yīng)的調(diào)度次數(shù),如果調(diào)度次數(shù)超過(guò)預(yù)調(diào)度次數(shù),則停止調(diào)度進(jìn)程。
以上對(duì)本發(fā)明所提供的虛擬機(jī)的在線遷移方法及裝置進(jìn)行了詳細(xì)介紹。說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。應(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)。
還需要說(shuō)明的是,在本說(shuō)明書(shū)中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。