虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法和虛擬機(jī)系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法和虛擬機(jī)系統(tǒng),涉及虛擬機(jī)【技術(shù)領(lǐng)域】。該方法包括:在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ)區(qū),記錄拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成對(duì)應(yīng)的I/O操作位圖;待初始磁盤(pán)鏡像拷貝完畢暫停源端虛擬機(jī),拷貝I/O操作位圖至目的存儲(chǔ)區(qū);啟動(dòng)目的端虛擬機(jī),保留并拷貝源端磁盤(pán)鏡像至目的存儲(chǔ)區(qū)。該方法和系統(tǒng),一方面通過(guò)I/O操作位圖來(lái)記錄源端磁盤(pán)鏡像從源端拷貝到目的端期間,源端磁盤(pán)鏡像所發(fā)生的變化,避免磁盤(pán)鏡像多次拷貝,縮短了虛擬機(jī)遷移的總時(shí)間;同時(shí),完成磁盤(pán)鏡像與I/O操作位圖的拷貝,即可啟動(dòng)目的端的虛擬機(jī),顯著減少了虛擬機(jī)由源端切換到目的端的運(yùn)行時(shí)間。
【專利說(shuō)明】虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法和虛擬機(jī)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)【技術(shù)領(lǐng)域】,特別涉及一種虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法和虛擬機(jī)系統(tǒng)。
【背景技術(shù)】
[0002]虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的方法,現(xiàn)有的技術(shù)包括:
[0003]技術(shù)一:Xen組織提出的采用多輪迭代的方式實(shí)現(xiàn)虛擬機(jī)的磁盤(pán)鏡像的遷移。整個(gè)過(guò)程共經(jīng)歷N輪迭代,第一輪拷貝整個(gè)磁盤(pán)鏡像,在剩余的N-1個(gè)階段,每輪傳輸上一輪傳輸過(guò)程中產(chǎn)生變化的磁盤(pán)文件,直到達(dá)到設(shè)定的條件,停機(jī)并同步剩余的磁盤(pán)文件;圖1A不出傳統(tǒng)熱遷移的時(shí)間軸。
[0004]技術(shù)二:廣域網(wǎng)環(huán)境下虛擬機(jī)磁盤(pán)鏡像的在線遷移。首先將磁盤(pán)鏡像拷貝到目的端存儲(chǔ),并保持源端虛擬機(jī)運(yùn)行;同時(shí)記錄源端磁盤(pán)鏡像在拷貝過(guò)程中發(fā)生的變化;拷貝完成后暫停源端虛擬機(jī),將發(fā)生變化的數(shù)據(jù)在目的端恢復(fù),并啟動(dòng)目的端虛擬機(jī)。圖1B示出廣域網(wǎng)熱遷移的時(shí)間軸。
[0005]但是,現(xiàn)有技術(shù)都存在一定的問(wèn)題和弊端。
[0006]技術(shù)一的問(wèn)題:采用多輪迭代的方式實(shí)現(xiàn)虛擬機(jī)的磁盤(pán)鏡像的遷移導(dǎo)致遷移總時(shí)間較長(zhǎng),長(zhǎng)時(shí)間占據(jù)計(jì)算與帶寬資源,特別是在廣域網(wǎng)的環(huán)境下完成虛擬機(jī)遷移,這種影響會(huì)更加明顯。
[0007]技術(shù)二的問(wèn)題:廣域網(wǎng)環(huán)境下虛擬機(jī)磁盤(pán)鏡像的在線遷移避免了多次迭代拷貝磁盤(pán)鏡像,但需要等待目的端磁盤(pán)鏡像將所發(fā)生變化的數(shù)據(jù)復(fù)原之后,才能啟動(dòng)目的端虛擬機(jī),造成虛擬機(jī)由源端切換到目的端運(yùn)行的時(shí)間(停機(jī)等待時(shí)間)過(guò)長(zhǎng),可能會(huì)影響業(yè)務(wù)的連續(xù)性。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術(shù)中存在問(wèn)題,并因此針對(duì)所述問(wèn)題中的至少一個(gè)問(wèn)題提出了一種新的技術(shù)方案。
[0009]本發(fā)明的一個(gè)目的是提供一種用于虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的技術(shù)方案。
[0010]根據(jù)本發(fā)明的第一方面,提供了一種虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法,包括:
[0011]在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ)區(qū),記錄拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成對(duì)應(yīng)的I/o操作位圖;
[0012]待初始磁盤(pán)鏡像拷貝完畢暫停源端虛擬機(jī),拷貝I/o操作位圖至目的存儲(chǔ)區(qū);
[0013]啟動(dòng)目的端虛擬機(jī),保留并拷貝源端磁盤(pán)鏡像至目的存儲(chǔ)區(qū)。
[0014]可選地,I/O操作位圖為二進(jìn)制文件,用來(lái)記錄磁盤(pán)鏡像從源存儲(chǔ)區(qū)拷貝到目的存儲(chǔ)區(qū)期間磁盤(pán)鏡像發(fā)生的變化,文件的每位對(duì)應(yīng)磁盤(pán)鏡像的一個(gè)數(shù)據(jù)區(qū),根據(jù)源端磁盤(pán)鏡像和目的端磁盤(pán)鏡像在數(shù)據(jù)區(qū)是否內(nèi)容一致設(shè)置為I或O。[0015]可選地,該方法還包括:
[0016]監(jiān)測(cè)到對(duì)目的端磁盤(pán)鏡像的讀取操作;
[0017]查詢所述I/O操作位圖,判斷源端磁盤(pán)鏡像與目的端磁盤(pán)鏡像在要讀取區(qū)域上的數(shù)據(jù)是否一致;
[0018]若一致,則直接由目的端磁盤(pán)鏡像返回所述要讀取數(shù)據(jù);
[0019]若不一致,則從源端磁盤(pán)鏡像返回要讀取數(shù)據(jù)。
[0020]可選地,該方法還包括:
[0021]監(jiān)測(cè)到對(duì)目的端磁盤(pán)鏡像的寫(xiě)入操作,直接將數(shù)據(jù)寫(xiě)入目的端磁盤(pán)鏡像的數(shù)據(jù)區(qū);
[0022]更新所述I/O操作位圖,使得虛擬機(jī)系統(tǒng)讀取所述數(shù)據(jù)區(qū)時(shí),直接從所述目的端磁盤(pán)鏡像返回?cái)?shù)據(jù)。
[0023]根據(jù)本發(fā)明的另一方面,提供一種虛擬機(jī)系統(tǒng),包括:
[0024]虛擬機(jī)遷移模塊:用于在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ)區(qū);待初始磁盤(pán)鏡像拷貝完畢暫停源端虛擬機(jī),拷貝I/o操作位圖至目的存儲(chǔ)區(qū);
[0025]I/O監(jiān)測(cè)模塊,用于監(jiān)測(cè)磁盤(pán)鏡像在所述拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,記錄拷貝期間源端磁盤(pán)鏡像發(fā)生的變化生成對(duì)應(yīng)的I/o操作位圖;當(dāng)目的端磁盤(pán)鏡像啟動(dòng)后,根據(jù)系統(tǒng)對(duì)目的端磁盤(pán)鏡像的I/o操作,查詢或更新I/O操作位圖的信息;
[0026]數(shù)據(jù)獲取模塊,用于如果所述I/O監(jiān)測(cè)模塊判斷需要訪問(wèn)的數(shù)據(jù)區(qū)在磁盤(pán)鏡像的拷貝過(guò)程中發(fā)生了變化,從源端磁盤(pán)鏡像獲取發(fā)生變化的數(shù)據(jù)信息。
[0027]可選地,I/O操作位圖為二進(jìn)制文件,用來(lái)記錄磁盤(pán)鏡像從所述源存儲(chǔ)區(qū)拷貝到所述目的存儲(chǔ)區(qū)期間磁盤(pán)鏡像發(fā)生的變化,文件的每位對(duì)應(yīng)磁盤(pán)鏡像的一個(gè)數(shù)據(jù)區(qū),根據(jù)源端磁盤(pán)鏡像和目的端磁盤(pán)鏡像在所述數(shù)據(jù)區(qū)是否內(nèi)容一致設(shè)置為I或O。
[0028]可選地,I/O監(jiān)測(cè)模塊如果監(jiān)測(cè)到對(duì)目的端磁盤(pán)鏡像的讀取操作,則查詢所述I/O操作位圖,判斷所述源端磁盤(pán)鏡像與所述目的端磁盤(pán)鏡像在要讀取區(qū)域上數(shù)據(jù)是否一致;若一致,則直接由所述目的端磁盤(pán)鏡像返回要讀取數(shù)據(jù)至所述I/o監(jiān)測(cè)模塊;若不一致,則從所述源端磁盤(pán)鏡像返回要讀取數(shù)據(jù)至所述I/o監(jiān)測(cè)模塊。
[0029]可選地,I/O監(jiān)測(cè)模塊如果監(jiān)測(cè)到對(duì)所述目的端磁盤(pán)鏡像的寫(xiě)入操作,直接將數(shù)據(jù)寫(xiě)入所述目的端磁盤(pán)鏡像的數(shù)據(jù)區(qū),更新所述I/o操作位圖,使得虛擬機(jī)系統(tǒng)讀取所述數(shù)據(jù)區(qū)時(shí),直接從所述目的端磁盤(pán)鏡像返回?cái)?shù)據(jù)。
[0030]本發(fā)明的一個(gè)優(yōu)點(diǎn)在于,采用I/O操作位圖來(lái)記錄源端磁盤(pán)鏡像從源端拷貝到目的端期間源端磁盤(pán)鏡像所發(fā)生的變化,避免了磁盤(pán)鏡像的多次拷貝,縮短了虛擬機(jī)的遷移時(shí)間。
[0031]通過(guò)以下參照附圖對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的其它特征及其優(yōu)點(diǎn)將會(huì)變得清楚。
【專利附圖】
【附圖說(shuō)明】
[0032]構(gòu)成說(shuō)明書(shū)的一部分的附圖描述了本發(fā)明的實(shí)施例,并且連同說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。
[0033]參照附圖,根據(jù)下面的詳細(xì)描述,可以更加清楚地理解本發(fā)明,其中:[0034]圖1A示出傳統(tǒng)熱遷移的時(shí)間軸。
[0035]圖1B示出廣域網(wǎng)熱遷移的時(shí)間軸。
[0036]圖2示出根據(jù)本發(fā)明的虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法的一個(gè)實(shí)施例的流程圖。
[0037]圖3示出根據(jù)本發(fā)明的虛擬機(jī)遷移一個(gè)實(shí)施例的系統(tǒng)結(jié)構(gòu)圖。
[0038]圖4示出虛擬機(jī)遷移過(guò)程中縮短停機(jī)等待時(shí)間的一個(gè)優(yōu)化算法的流程圖。
[0039]圖5示出根據(jù)本發(fā)明實(shí)施例的方案與現(xiàn)有技術(shù)實(shí)現(xiàn)虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的時(shí)間進(jìn)度對(duì)比圖。
【具體實(shí)施方式】
[0040]現(xiàn)在將參照附圖來(lái)詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說(shuō)明,否則在這些實(shí)施例中闡述的部件和步驟的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。
[0041]同時(shí),應(yīng)當(dāng)明白,為了便于描述,附圖中所示出的各個(gè)部分的尺寸并不是按照實(shí)際的比例關(guān)系繪制的。
[0042]以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說(shuō)明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。
[0043]對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為授權(quán)說(shuō)明書(shū)的一部分。
[0044]在這里示出和討論的所有示例中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實(shí)施例的其它示例可以具有不同的值。
[0045]應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。
[0046]圖2示出根據(jù)本發(fā)明的虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法的一個(gè)實(shí)施例的流程圖。
[0047]如圖2所示,步驟202,在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ),并記錄拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成對(duì)應(yīng)的I/o操作位圖。
[0048]步驟204,待初始磁盤(pán)鏡像拷貝完畢暫停源端虛擬機(jī),拷貝I/O操作位圖至目的存儲(chǔ)區(qū)域存儲(chǔ)。
[0049]步驟206,啟動(dòng)目的端虛擬機(jī),保留并拷貝源端磁盤(pán)鏡像至目的端存儲(chǔ),使系統(tǒng)能夠訪問(wèn)到發(fā)生變化的數(shù)據(jù)區(qū)。
[0050]上述實(shí)施例中,采用I/O操作位圖來(lái)記錄源端磁盤(pán)鏡像從源端拷貝到目的端期間源端磁盤(pán)鏡像所發(fā)生的變化,避免了磁盤(pán)鏡像的多次拷貝,縮短了虛擬機(jī)的遷移時(shí)間。
[0051]圖3示出根據(jù)本發(fā)明的虛擬機(jī)遷移一個(gè)實(shí)施例的系統(tǒng)結(jié)構(gòu)圖。如圖3所示,在該實(shí)施例中,虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移系統(tǒng)由實(shí)施虛擬化的物理主機(jī)300、磁盤(pán)鏡像所在的源存儲(chǔ)區(qū)32與目的存儲(chǔ)區(qū)33構(gòu)成。物理主機(jī)300上實(shí)現(xiàn)了 VMM31。
[0052]VMl的磁盤(pán)鏡像(VI版):從源存儲(chǔ)區(qū)拷貝至目的存儲(chǔ)區(qū)的初始磁盤(pán)鏡像,也稱為目的端磁盤(pán)鏡像;
[0053]VMl的磁盤(pán)鏡像(V2版):上述拷貝結(jié)束后,源端磁盤(pán)鏡像所處的狀態(tài),也稱為源端磁盤(pán)鏡像;
[0054]I/O操作位圖:1/0操作位圖是一個(gè)二進(jìn)制文件,用來(lái)記錄磁盤(pán)鏡像從源存儲(chǔ)區(qū)拷貝到目的存儲(chǔ)區(qū)這段時(shí)間磁盤(pán)鏡像發(fā)生的變化,文件的每位對(duì)應(yīng)磁盤(pán)鏡像的一個(gè)數(shù)據(jù)區(qū),根據(jù)源端磁盤(pán)鏡像和目的端磁盤(pán)鏡像在所述數(shù)據(jù)區(qū)是否內(nèi)容一致設(shè)置為I或O。例如,若磁盤(pán)鏡像Vl與V2在該數(shù)據(jù)區(qū)內(nèi)容一致,則該位為0,否則該位置I。也可以若磁盤(pán)鏡像Vl與V2在該數(shù)據(jù)區(qū)內(nèi)容一致,則該位也可以為1,否則該位置O。
[0055]其中,VMM31包括:
[0056]虛擬機(jī)遷移模塊311,位于VMM (虛擬機(jī))上,用于將虛擬機(jī)的磁盤(pán)鏡像拷貝至目的存儲(chǔ)區(qū),及I/o操作位圖的拷貝;
[0057]I/O監(jiān)測(cè)模塊312,位于VMM上,通過(guò)監(jiān)測(cè)磁盤(pán)鏡像在拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成I/o操作位圖;當(dāng)目的端磁盤(pán)鏡像啟動(dòng)后,根據(jù)系統(tǒng)對(duì)目的端磁盤(pán)鏡像的I/O操作,查詢或更新I/o操作位圖的信息,實(shí)現(xiàn)了虛擬機(jī)遷移過(guò)程中縮短停機(jī)等待時(shí)間的優(yōu)化方法。
[0058]數(shù)據(jù)獲取模塊313,位于VMM上,當(dāng)I/O監(jiān)測(cè)模塊判斷需要訪問(wèn)的數(shù)據(jù)區(qū)在磁盤(pán)鏡像的拷貝過(guò)程中發(fā)生了變化,則數(shù)據(jù)獲取模塊從源端的磁盤(pán)鏡像返回發(fā)生變化的數(shù)據(jù)信
肩、O
[0059]該實(shí)施例中,在VMM31上加載I/O監(jiān)測(cè)模塊312與數(shù)據(jù)獲取模塊313,并引入I/O操作位圖,在拷貝磁盤(pán)鏡像至目的存儲(chǔ)區(qū)期間,I/o監(jiān)測(cè)模塊312通過(guò)I/O操作位圖記錄源存儲(chǔ)區(qū)中磁盤(pán)鏡像發(fā)生變化的數(shù)據(jù)區(qū)域;同時(shí)保留源端磁盤(pán)鏡像,數(shù)據(jù)獲取模塊313能夠訪問(wèn)到磁盤(pán)鏡像拷貝期間發(fā)生變化數(shù)據(jù)區(qū)域。
[0060]I/O監(jiān)測(cè)模塊312例如以插件的方式安裝在VMM31上,通過(guò)監(jiān)測(cè)磁盤(pán)鏡像在拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成I/o操作位圖;當(dāng)目的端磁盤(pán)鏡像啟動(dòng)后,根據(jù)對(duì)系統(tǒng)目的端磁盤(pán)鏡像的I/O操作,查詢或更新I/O操作位圖的信息,實(shí)現(xiàn)了虛擬機(jī)遷移過(guò)程中縮短停機(jī)等待時(shí)間的優(yōu)化方法。
[0061]數(shù)據(jù)獲取模塊313也可以以插件的方式安裝在VMM31上,當(dāng)I/O監(jiān)測(cè)模塊312判斷需要訪問(wèn)的數(shù)據(jù)區(qū)在磁盤(pán)鏡像的拷貝過(guò)程中發(fā)生了變化,則數(shù)據(jù)獲取模塊313從源端的磁盤(pán)鏡像返回發(fā)生變化的數(shù)據(jù)信息。
[0062]上述實(shí)施例提供的虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的系統(tǒng),在拷貝磁盤(pán)鏡像至目的存儲(chǔ)期間通過(guò)I/o操作位圖記錄源端存儲(chǔ)中磁盤(pán)鏡像發(fā)生變化的數(shù)據(jù)區(qū)域;同時(shí)保留源端磁盤(pán)鏡像,使系統(tǒng)能夠訪問(wèn)到磁盤(pán)拷貝期間發(fā)生變化數(shù)據(jù)區(qū)域。這種實(shí)現(xiàn)方法用空間換時(shí)間,避免了磁盤(pán)鏡像的循環(huán)拷貝,更快的實(shí)現(xiàn)了虛擬機(jī)的在線遷移。
[0063]圖4示出虛擬機(jī)遷移過(guò)程中縮短停機(jī)等待時(shí)間(虛擬機(jī)由源端切換至目的端運(yùn)行時(shí)間)的優(yōu)化算法流程圖。
[0064]如圖4所示,步驟402,采用該優(yōu)化算法,一旦I/O位圖拷貝至目的端存儲(chǔ)后,即可立即啟動(dòng)目的端虛擬機(jī),并暫停源端虛擬機(jī)。
[0065]步驟404,I/O監(jiān)測(cè)到對(duì)虛擬機(jī)的I/O操作,后續(xù)流程分為對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的讀取操作與對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的寫(xiě)入操作。
[0066]對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的讀取操作具體操作流程如下:
[0067]步驟406,位于VMM上的I/O監(jiān)測(cè)模塊監(jiān)測(cè)到對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的讀取操作,I/o監(jiān)測(cè)模塊查詢I/O操作位圖,判斷源端磁盤(pán)鏡像與目的端磁盤(pán)鏡像在讀取的區(qū)域上數(shù)據(jù)是否一致。
[0068]步驟408,若源端磁盤(pán)鏡像與目的端磁盤(pán)鏡像在讀取的區(qū)域上數(shù)據(jù)一致,則直接由目的端磁盤(pán)鏡像返回需要讀取的數(shù)據(jù)至I/o監(jiān)測(cè)模塊。
[0069]步驟410,若源端磁盤(pán)鏡像與目的端磁盤(pán)鏡像在讀取的區(qū)域上數(shù)據(jù)不一致,則判斷需要訪問(wèn)的數(shù)據(jù)區(qū)在磁盤(pán)鏡像的拷貝過(guò)程中發(fā)生了變化,由數(shù)據(jù)獲取模塊從源端磁盤(pán)鏡像返回?cái)?shù)據(jù)至I/o監(jiān)測(cè)模塊。同時(shí)更新目的端磁盤(pán)位于該區(qū)域的數(shù)據(jù),并修改I/O操作位圖(步驟412)。
[0070]對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的寫(xiě)入操作具體操作流程如下:
[0071]步驟414,位于VMM上的I/O監(jiān)測(cè)模塊監(jiān)測(cè)到對(duì)目的端虛擬機(jī)磁盤(pán)鏡像的寫(xiě)入操作,I/o監(jiān)測(cè)模塊直接將數(shù)據(jù)寫(xiě)入目的端磁盤(pán)鏡像的數(shù)據(jù)區(qū);
[0072]步驟416,I/O監(jiān)測(cè)模塊更新I/O操作位圖,使得下次系統(tǒng)讀取這段區(qū)域時(shí),直接從目的端返回?cái)?shù)據(jù)。
[0073]上述實(shí)施例中,在啟動(dòng)目的端虛擬機(jī)同時(shí)保留源磁盤(pán)鏡像,使系統(tǒng)能夠訪問(wèn)到磁盤(pán)拷貝期間發(fā)生變化數(shù)據(jù)區(qū)域,這種空間換時(shí)間的方法,減少了由源端切換到目的端運(yùn)行的時(shí)間。
[0074]圖5示出根據(jù)本發(fā)明實(shí)施例的方案與現(xiàn)有技術(shù)實(shí)現(xiàn)虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的時(shí)間進(jìn)度對(duì)比圖。本發(fā)明實(shí)施例的方案一方面通過(guò)I/o操作位圖來(lái)記錄源端磁盤(pán)鏡像從源端拷貝到目的端期間,源端磁盤(pán)鏡像所發(fā)生的變化,避免磁盤(pán)鏡像多次拷貝(如虛線標(biāo)注的區(qū)間一所示)縮短了虛擬機(jī)遷移的總時(shí)間;同時(shí),提出了一套縮短停機(jī)等待時(shí)間的算法,采用該算法后,一旦完成磁盤(pán)鏡像與I/o操作位圖的拷貝,即可立即啟動(dòng)目的端的虛擬機(jī)(如虛線標(biāo)注的區(qū)間二所示),顯著減少了虛擬機(jī)由源端切換到目的端運(yùn)行的時(shí)間。
[0075]本公開(kāi)提出了一種實(shí)現(xiàn)虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移的系統(tǒng)和方法,一方面通過(guò)I/O操作位圖來(lái)記錄源端磁盤(pán)鏡像從源端拷貝到目
[0076]的端期間,源端磁盤(pán)鏡像所發(fā)生的變化,避免磁盤(pán)鏡像多次拷貝,縮短了虛擬機(jī)遷移的總時(shí)間;同時(shí),提出了一套縮短停機(jī)等待時(shí)間的方案,采用該方案后,一旦完成磁盤(pán)鏡像與I/o操作位圖的拷貝,即可立即啟動(dòng)目的端的虛擬機(jī),顯著減少了虛擬機(jī)由源端切換到目的端運(yùn)行的時(shí)間。
[0077]至此,已經(jīng)詳細(xì)描述了根據(jù)本發(fā)明的虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法和虛擬機(jī)系統(tǒng)。為了避免遮蔽本發(fā)明的構(gòu)思,沒(méi)有描述本領(lǐng)域所公知的一些細(xì)節(jié)。本領(lǐng)域技術(shù)人員根據(jù)上面的描述,完全可以明白如何實(shí)施這里公開(kāi)的技術(shù)方案。
[0078]可能以許多方式來(lái)實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。例如,可通過(guò)軟件、硬件、固件或者軟件、硬件、固件的任何組合來(lái)實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。用于所述方法的步驟的上述順序僅是為了進(jìn)行說(shuō)明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說(shuō)明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。
[0079]雖然已經(jīng)通過(guò)示例對(duì)本發(fā)明的一些特定實(shí)施例進(jìn)行了詳細(xì)說(shuō)明,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,以上示例僅是為了進(jìn)行說(shuō)明,而不是為了限制本發(fā)明的范圍。本領(lǐng)域的技術(shù)人員應(yīng)該理解,可在不脫離本發(fā)明的范圍和精神的情況下,對(duì)以上實(shí)施例進(jìn)行修改。本發(fā)明的范圍由所附權(quán)利要求來(lái)限定。
【權(quán)利要求】
1.一種虛擬機(jī)磁盤(pán)鏡像跨存儲(chǔ)熱遷移實(shí)現(xiàn)方法,其特征在于,包括: 在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ)區(qū),記錄所述拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,生成對(duì)應(yīng)的I/o操作位圖; 待所述初始磁盤(pán)鏡像拷貝完畢暫停所述源端虛擬機(jī),拷貝所述I/o操作位圖至所述目的存儲(chǔ)區(qū); 啟動(dòng)目的端虛擬機(jī),保存并拷貝所述源端磁盤(pán)鏡像至目的存儲(chǔ)區(qū)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述I/O操作位圖為二進(jìn)制文件,用來(lái)記錄磁盤(pán)鏡像從所述源存儲(chǔ)區(qū)拷貝到所述目的存儲(chǔ)區(qū)期間源端磁盤(pán)鏡像發(fā)生的變化,文件的每位對(duì)應(yīng)磁盤(pán)鏡像的一個(gè)數(shù)據(jù)區(qū),根據(jù)所述源端磁盤(pán)鏡像和目的端磁盤(pán)鏡像在所述數(shù)據(jù)區(qū)是否內(nèi)容一致設(shè)置為I或O。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 監(jiān)測(cè)到對(duì)目的端磁盤(pán)鏡像的讀取操作; 查詢所述I/o操作位圖,判斷所述源端磁盤(pán)鏡像與所述目的端磁盤(pán)鏡像在要讀取區(qū)域上的數(shù)據(jù)是否一致; 若一致,則直接由所述目的端磁盤(pán)鏡像返回所述要讀取數(shù)據(jù); 若不一致,則 從所述源端磁盤(pán)鏡像返回所述要讀取數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 監(jiān)測(cè)到對(duì)所述目的端磁盤(pán)鏡像的寫(xiě)入操作,直接將數(shù)據(jù)寫(xiě)入所述目的端磁盤(pán)鏡像的數(shù)據(jù)區(qū); 更新所述I/O操作位圖,使得虛擬機(jī)系統(tǒng)讀取所述數(shù)據(jù)區(qū)時(shí),直接從所述目的端磁盤(pán)鏡像返回?cái)?shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目的存儲(chǔ)區(qū)位于所述目的端虛擬機(jī);所述源存儲(chǔ)區(qū)位于所述源端虛擬機(jī)。
6.—種虛擬機(jī)系統(tǒng),其特征在于,包括: 虛擬機(jī)遷移模塊:用于在源端虛擬機(jī)運(yùn)行時(shí)拷貝初始磁盤(pán)鏡像至目的存儲(chǔ)區(qū);待所述初始磁盤(pán)鏡像拷貝完畢暫停所述源端虛擬機(jī),拷貝所述I/O操作位圖至所述目的存儲(chǔ)區(qū); I/O監(jiān)測(cè)模塊,用于監(jiān)測(cè)磁盤(pán)鏡像在所述拷貝期間源端磁盤(pán)鏡像發(fā)生的變化,記錄所述拷貝期間源端磁盤(pán)鏡像發(fā)生的變化生成對(duì)應(yīng)的I/O操作位圖;當(dāng)目的端磁盤(pán)鏡像啟動(dòng)后,根據(jù)系統(tǒng)對(duì)所述目的端磁盤(pán)鏡像的I/O操作,查詢或更新所述I/O操作位圖的信息; 數(shù)據(jù)獲取模塊,用于如果所述I/o監(jiān)測(cè)模塊判斷需要訪問(wèn)的數(shù)據(jù)區(qū)在磁盤(pán)鏡像的拷貝過(guò)程中發(fā)生了變化,從源端磁盤(pán)鏡像獲取發(fā)生變化的數(shù)據(jù)信息。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述I/O操作位圖為二進(jìn)制文件,用來(lái)記錄磁盤(pán)鏡像從所述源存儲(chǔ)區(qū)拷貝到所述目的存儲(chǔ)區(qū)期間磁盤(pán)鏡像發(fā)生的變化,文件的每位對(duì)應(yīng)磁盤(pán)鏡像的一個(gè)數(shù)據(jù)區(qū),根據(jù)源端磁盤(pán)鏡像和目的端磁盤(pán)鏡像在所述數(shù)據(jù)區(qū)是否內(nèi)容一致設(shè)置為I或O。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述I/O監(jiān)測(cè)模塊如果監(jiān)測(cè)到對(duì)目的端磁盤(pán)鏡像的讀取操作,則查詢所述I/O操作位圖,判斷所述源端磁盤(pán)鏡像與所述目的端磁盤(pán)鏡像在要讀取區(qū)域上數(shù)據(jù)是否一致;若一致,則直接由所述目的端磁盤(pán)鏡像返回要讀取數(shù)據(jù)至所述I/o監(jiān)測(cè)模塊;若不一致,則從所述源端磁盤(pán)鏡像返回要讀取數(shù)據(jù)至所述I/O監(jiān)測(cè)模塊。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述I/O監(jiān)測(cè)模塊如果監(jiān)測(cè)到對(duì)所述目的端磁盤(pán)鏡像的寫(xiě)入操作,直接將數(shù)據(jù)寫(xiě)入所述目的端磁盤(pán)鏡像的數(shù)據(jù)區(qū),更新所述I/o操作位圖,使得虛擬機(jī)系統(tǒng)讀取所述數(shù)據(jù)區(qū)時(shí),直接從所述目的端磁盤(pán)鏡像返回?cái)?shù)據(jù)。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述目的存儲(chǔ)區(qū)位于所述目的端虛擬機(jī);所述源存儲(chǔ) 區(qū)位于所述源端虛擬機(jī)。
【文檔編號(hào)】G06F9/48GK103902368SQ201310170706
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2013年5月10日 優(yōu)先權(quán)日:2012年12月24日
【發(fā)明者】黃喆 申請(qǐng)人:中國(guó)電信股份有限公司