虛擬機磁盤存儲數(shù)據(jù)遷移方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種虛擬機磁盤存儲數(shù)據(jù)遷移方法和系統(tǒng)。方法包括:源端主機監(jiān)控全部虛擬機磁盤的讀寫操作;當(dāng)監(jiān)控到寫操作,將臟數(shù)據(jù)重定向到中間節(jié)點,并將臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;當(dāng)監(jiān)控到針對臟數(shù)據(jù)的讀操作,從中間節(jié)點讀取臟數(shù)據(jù);源端主機與目的端主機交互完成待遷移虛擬機的遷移過程;源端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作;源端主機將第一臟數(shù)據(jù)記錄表發(fā)送給目的端主機;源端主機從中間節(jié)點上讀取第二臟數(shù)據(jù),并同步到不遷移虛擬機磁盤上;目的端主機啟動新的虛擬機,根據(jù)第一臟數(shù)據(jù)記錄表將第一臟數(shù)據(jù)同步到新的虛擬機上。本發(fā)明提高了虛擬機讀寫性能,縮短了虛擬機在線遷移時間。
【專利說明】虛擬機磁盤存儲數(shù)據(jù)遷移方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),尤其涉及一種虛擬機磁盤存儲數(shù)據(jù)遷移方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著計算機技術(shù)以及通信技術(shù)的不斷發(fā)展,計算機虛擬化技術(shù)展現(xiàn)出巨大的資源整合優(yōu)勢。計算機虛擬化技術(shù)是一種將計算機底層硬件設(shè)備與上層操作系統(tǒng)、應(yīng)用程序分離的去耦合方法,其引入的虛擬機監(jiān)控器直接管理底層硬件資源,抽象出的虛擬計算機稱為虛擬機,是具備計算機功能的特殊應(yīng)用程序。
[0003]現(xiàn)有技術(shù)在進行虛擬機在線遷移時,通常采用將虛擬機磁盤存儲數(shù)據(jù)直接拷貝到目的端主機的方式,例如后拷貝技術(shù)等。具體來說,源端主機首先將待遷移虛擬機的全部磁盤存儲數(shù)據(jù)發(fā)送到目的端主機,并且記錄在數(shù)據(jù)發(fā)送過程中新寫入待遷移虛擬機的數(shù)據(jù),這些新寫入待遷移虛擬機的數(shù)據(jù)稱為臟數(shù)據(jù),數(shù)據(jù)發(fā)送完成后,在目的端主機上運行虛擬機,并且源端主機將臟數(shù)據(jù)循環(huán)發(fā)送到目的端主機。
[0004]然而,現(xiàn)有技術(shù)中,在線遷移過程為讀操作的過程,源端主機上的虛擬機的讀寫操作會與在線遷移過程競爭源端主機有限的磁盤I/o資源,既造成了虛擬機讀寫性能的下降,又導(dǎo)致虛擬機在線遷移時間的延長。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種虛擬機磁盤存儲數(shù)據(jù)遷移方法和系統(tǒng),用以解決源端主機上虛擬機的讀寫操作與在線遷移過程競爭源端主機磁盤I/o資源的問題,提高了虛擬機讀寫性能,縮短了虛擬機在線遷移時間。
[0006]本發(fā)明提供一種虛擬機磁盤存儲數(shù)據(jù)遷移方法,其中,包括:
[0007]源端主機確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程;
[0008]所述源端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù);
[0009]所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移;
[0010]所述源端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作;
[0011]所述源端主機將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機;
[0012]所述源端主機從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述源端臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上;
[0013]所述目的端主機啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
[0014]本發(fā)明還提供一種虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng),其中,包括:
[0015]源端主機,用于:
[0016]確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程;
[0017]開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù);
[0018]與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移;
[0019]停止監(jiān)控全部虛擬機磁盤的讀寫操作;
[0020]將所述臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機;
[0021]從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上;
[0022]所述目的端主機,用于:
[0023]啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
[0024]由上述方法可知,本發(fā)明通過將針對源端主機上所有虛擬機的寫操作重定向到中間節(jié)點,釋放了源端主機部分磁盤I/o資源,使得釋放的這部分磁盤I/O資源可以用于源端主機上待遷移虛擬機的遷移過程,從而提高了虛擬機讀寫性能,縮短了虛擬機在線遷移時間。
【專利附圖】
【附圖說明】
[0025]圖1為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移方法實施例一提供的流程示意圖;
[0026]圖2為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移方法實施例二提供的信令流程示意圖;
[0027]圖3為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例一提供的結(jié)構(gòu)示意圖;
[0028]圖4為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例二提供的結(jié)構(gòu)示意圖;
[0029]圖5為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例三提供的結(jié)構(gòu)示意圖。
【具體實施方式】
[0030]圖1為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移方法實施例一提供的流程示意圖。如圖1所示,本實施例的方法可以包括:
[0031]步驟101:源端主機確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程。
[0032]步驟102:所述源端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù)。
[0033]具體來說,中間節(jié)點為具有讀寫能力的存儲設(shè)備,可以是物理主機,也可以是虛擬機,總之,該中間節(jié)點不會占用源端主機的磁盤I/o資源。另外,源端主機上可包括一個或多個待遷移虛擬機,還可以包括一個或多個不遷移虛擬機。
[0034]步驟103:所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移。
[0035]具體來說,在所述源端主機與目的端主機交互前,目的端主機為待遷移虛擬機分配磁盤、CPU、內(nèi)存、網(wǎng)絡(luò)資源。其中,虛擬機狀態(tài)數(shù)據(jù)可以包括:CPU、內(nèi)存以及網(wǎng)絡(luò)狀態(tài)等數(shù)據(jù)。并且虛擬機狀態(tài)數(shù)據(jù)后于虛擬機磁盤存儲數(shù)據(jù)在線遷移。
[0036]步驟104:所述源端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作。
[0037]具體來說,步驟104中源端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作是指,不再將寫入源端主機上的虛擬機的數(shù)據(jù)重定向到中間節(jié)點,讀取相應(yīng)數(shù)據(jù)時,到相應(yīng)的存儲位置中讀取,具體的,步驟104前產(chǎn)生的臟數(shù)據(jù)從中間節(jié)點讀取。
[0038]步驟105:所述源端主機將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機。
[0039]具體來說,所述第一臟數(shù)據(jù)表中記錄的是待遷移虛擬機臟數(shù)據(jù)的索引信息。第一臟數(shù)據(jù)記錄表具體實現(xiàn)方式可以有:比特表(bitmap)、鍵值對表(key-value map)、哈希表
坐寸ο
[0040]步驟106:所述源端主機從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述源端臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上。
[0041]具體來說,步驟105與步驟106可以同時進行,也可以先執(zhí)行步驟105再執(zhí)行步驟106,還可以先執(zhí)行步驟106,再執(zhí)行步驟105,本實施例并不限定。
[0042]步驟107:所述目的端主機啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
[0043]具體來說,目的端主機啟動的新的虛擬機與源端主機的待遷移虛擬機相對應(yīng),新的虛擬機是指源端主機的待遷移虛擬機遷移到目的端主機后形成的虛擬機。另外,步驟105先于步驟107執(zhí)行,步驟106與步驟107可以同時進行,也可以先執(zhí)行步驟106再執(zhí)行步驟107,還可以先執(zhí)行步驟107,再執(zhí)行步驟106,本實施例并不限定。
[0044]源端主機與目的端主機做好虛擬機在線遷移準(zhǔn)備后,源端主機監(jiān)控源端全部虛擬機的讀寫操作,在監(jiān)控到寫操作時,則將臟數(shù)據(jù)重定向到中間節(jié)點,在監(jiān)控到讀操作時,則根據(jù)數(shù)據(jù)存儲的位置讀取數(shù)據(jù)。
[0045]本實施例中,通過將針對源端主機上所有虛擬機的寫操作重定向到中間節(jié)點,釋放了源端主機部分磁盤I/o資源,使得釋放的這部分磁盤I/O資源可以用于源端主機上的虛擬機的遷移過程,從而提高了虛擬機讀寫性能,縮短了虛擬機在線遷移時間。
[0046]在上述實施例的基礎(chǔ)上,進一步的,所述源端主機將所述臟數(shù)據(jù)對應(yīng)重定向到與所述全部虛擬機磁盤中各虛擬機磁盤對應(yīng)的中間節(jié)點上。
[0047]具體來說,是將源端主機上不同的虛擬機對應(yīng)到不同的中間節(jié)點。
[0048]通過將源端主機上不同的虛擬機的臟數(shù)據(jù)重定向到不同的中間節(jié)點,可以降低針對中間節(jié)點寫入或讀取臟數(shù)據(jù)時操作的復(fù)雜程度,優(yōu)化各虛擬機與中間節(jié)點存儲空間的對應(yīng)關(guān)系。
[0049]在上述實施例的基礎(chǔ)上,進一步的,所述源端主機根據(jù)所述第二臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上,并且刪除所述第二臟數(shù)據(jù)記錄表中對應(yīng)的記錄。若所述源端主機在確定讀操作命中所述第二臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
[0050]具體來說,源端主機在進行臟數(shù)據(jù)同步時,每同步一條臟數(shù)據(jù),都對應(yīng)刪除該臟數(shù)據(jù)在第二臟數(shù)據(jù)記錄表中的記錄。在下一次讀取該臟數(shù)據(jù)時,都只在源端主機上讀取該臟數(shù)據(jù),而不需要在中間節(jié)點上讀取該臟數(shù)據(jù)。
[0051]通過該方法可釋放所述第二臟數(shù)據(jù)對應(yīng)中間節(jié)點的存儲空間,優(yōu)化了源端主機在讀取臟數(shù)據(jù)時的操作。
[0052]在上述實施例的基礎(chǔ)上,進一步的,所述目的端主機根據(jù)所述第一臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第一臟數(shù)據(jù)同步到所述新的虛擬機上,并且刪除所述第一臟數(shù)據(jù)記錄表中對應(yīng)的記錄。若所述目的端主機在確定讀操作命中所述第一臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
[0053]具體來說,該方法對應(yīng)于前述方法,此處不再贅述。
[0054]在上述實施例的基礎(chǔ)上,進一步的,所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之前,所述目的端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作。其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在目的端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù)。所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之后,所述目的端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作。所述目的端主機根據(jù)所述目的端臟數(shù)據(jù)記錄表將對應(yīng)的臟數(shù)據(jù)同步到虛擬機磁盤上。
[0055]具體來說,該方法與源端主機將源端全部虛擬機的讀操作重定向到中間節(jié)點相對應(yīng),此處不再贅述。
[0056]圖2為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移方法實施例二提供的信令流程示意圖。如圖2所示,本實施例的方法可以包括:
[0057]步驟201:目的端主機為遷移的虛擬機分配磁盤、CPU、內(nèi)存、網(wǎng)絡(luò)資源,做好遷移準(zhǔn)備,等待源端連接,同時監(jiān)控磁盤讀寫并將寫操作重定向到中間節(jié)點。
[0058]步驟202:源端主機開始監(jiān)控源端主機上全部虛擬機磁盤的讀寫操作,并將源端全部虛擬機的寫操作重定向到中間節(jié)點,同時將源端全部虛擬機的寫操作所針對的磁盤位置和數(shù)據(jù)長度記錄到臟數(shù)據(jù)記錄表中。并監(jiān)控源端全部虛擬機的讀操作,在步驟209之前,如果源端主機查詢臟數(shù)據(jù)記錄表發(fā)現(xiàn)讀操作針對臟數(shù)據(jù),則從中間節(jié)點讀取臟數(shù)據(jù)。
[0059]步驟203:源端主機向目的端主機發(fā)送遷移請求,接收到允許遷移的應(yīng)答之后,開始向目的端主機傳輸待遷移虛擬機磁盤存儲數(shù)據(jù)。
[0060]步驟204:目的端主機接收源端主機發(fā)送的請求,返回允許遷移應(yīng)答。之后開始接收源端主機發(fā)送來的待遷移虛擬機的磁盤存儲數(shù)據(jù)。
[0061]步驟205:源端主機將待遷移虛擬機的存儲數(shù)據(jù)在線遷移到目的端主機。
[0062]步驟206:在線遷移待遷移虛擬機的存儲數(shù)據(jù)結(jié)束后,在線遷移待遷移虛擬機的內(nèi)存、CPU以及網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)。
[0063]步驟207:待遷移虛擬機的內(nèi)存、CPU以及網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)在線遷移結(jié)束后,源端主機將針對待遷移虛擬機的臟數(shù)據(jù)記錄表發(fā)送至目的端主機,發(fā)送完畢在源端暫停該待遷移虛擬機。
[0064]步驟208:目的端主機接收該臟數(shù)據(jù)表,在目的端啟動新的虛擬機,從此之后,所有針對所述新的虛擬機的新的寫操作都在目的端執(zhí)行。同時目的端主機開始監(jiān)測目的端新的虛擬機的磁盤讀寫。
[0065]步驟209:源端主機根據(jù)臟數(shù)據(jù)記錄表,將位于中間節(jié)點的針對不遷移虛擬機的臟數(shù)據(jù)同步至源端,同步過程中,不斷清除已同步數(shù)據(jù)的磁盤對應(yīng)位置在臟數(shù)據(jù)表中的記錄。在此過程中,不遷移虛擬機的寫操作都在源端執(zhí)行,如果寫操作命中臟數(shù)據(jù)記錄,則清除該對應(yīng)記錄。同時,如果讀操作命中臟數(shù)據(jù)記錄,則需要從中間節(jié)點讀取該臟數(shù)據(jù),并將該臟數(shù)據(jù)同步寫入到源端上虛擬機磁盤對應(yīng)位置并清除對應(yīng)臟數(shù)據(jù)記錄。
[0066]步驟210 (與步驟209同時進行):目的端主機根據(jù)臟數(shù)據(jù)記錄表,將位于中間節(jié)點的全部虛擬機的臟數(shù)據(jù)同步到目的端。同步過程中,不斷清除已同步數(shù)據(jù)的磁盤對應(yīng)位置在臟數(shù)據(jù)表中的記錄。在此過程中,新的虛擬機的寫操作都在目的端執(zhí)行,如果寫操作命中臟數(shù)據(jù)記錄,則清除該對應(yīng)記錄。同時,如果讀操作命中臟數(shù)據(jù)記錄,則需要從中間節(jié)點讀取該臟數(shù)據(jù),并將該臟數(shù)據(jù)同步寫入到目的端磁盤對應(yīng)位置且清除對應(yīng)臟數(shù)據(jù)記錄。
[0067]由上述方法可知,本發(fā)明通過將針對源端主機上所有虛擬機的寫操作重定向到中間節(jié)點,釋放了源端主機部分磁盤I/o資源,使得釋放的這部分磁盤I/O資源可以用于源端主機上待遷移虛擬機的遷移過程,從而提高了虛擬機讀寫性能,縮短了虛擬機在線遷移時間。
[0068]在上述實施例的基礎(chǔ)上,進一步的,所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之前,所述目的端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作。其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在目的端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù)。所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之后,所述目的端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作。所述目的端主機根據(jù)所述目的端臟數(shù)據(jù)記錄表將對應(yīng)的臟數(shù)據(jù)同步到虛擬機磁盤上。
[0069]具體來說,該方法與源端主機將源端全部虛擬機的讀操作重定向到中間節(jié)點相對應(yīng),此處不再贅述。
[0070]圖3為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例一提供的結(jié)構(gòu)示意圖。如圖3所示,該系統(tǒng)包括源端主機11以及目的端主機12。
[0071]源端主機11,用于:
[0072]確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程;
[0073]開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù);
[0074]與目的端主機12交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移;
[0075]停止監(jiān)控全部虛擬機磁盤的讀寫操作;
[0076]將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機12;
[0077]從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述源端臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上。
[0078]目的端主機12,用于:
[0079]啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
[0080]本實施例的系統(tǒng),可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0081]下面采用兩個具體的實施例,對圖3所示的系統(tǒng)結(jié)構(gòu)進行詳細說明。
[0082]圖4為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例二提供的結(jié)構(gòu)示意圖。如圖4所示,該系統(tǒng)包括:源端主機11、目的端主機12、中間節(jié)點13、待遷移虛擬機14、不遷移虛擬機15、原有虛擬機16以及新的虛擬機17。
[0083]源端主機11,用于:確定即將發(fā)起待遷移虛擬機14的在線遷移過程;
[0084]監(jiān)控待遷移虛擬機14以及不遷移虛擬機15的讀寫操作;若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點13,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點13讀取所述臟數(shù)據(jù);
[0085]與目的端主機12交互,完成待遷移虛擬機14的遷移過程;
[0086]停止監(jiān)控待遷移虛擬機14以及不遷移虛擬機15的讀寫操作;
[0087]將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機14對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機12;
[0088]從所述中間節(jié)點13讀取與不遷移虛擬機磁盤15對應(yīng)的第二臟數(shù)據(jù),同步到不遷移虛擬機15,并將該第二臟數(shù)據(jù)的記錄從臟數(shù)據(jù)記錄表中刪除。
[0089]目的端主機12,用于:監(jiān)控原有虛擬機16的讀寫操作,若監(jiān)控到寫操作,則將該寫操作重定向到中間節(jié)點13,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在目的端臟數(shù)據(jù)記錄表中,若監(jiān)控到讀操作,則到數(shù)據(jù)存儲的位置相應(yīng)讀取數(shù)據(jù);
[0090]與源端主機11交互,接收待遷移虛擬機14,該待遷移虛擬機14在目的端形成新的虛擬機17,并啟動新的虛擬機17 ;
[0091]從所述中間節(jié)點13讀取與所述待遷移虛擬機14對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)存儲至新的虛擬機上17,并且刪除所述第一臟數(shù)據(jù)記錄表中對應(yīng)的記錄。
[0092]在上述實施例的基礎(chǔ)上,進一步的,圖5為本發(fā)明虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng)實施例三提供的結(jié)構(gòu)示意圖。如圖5所示,該系統(tǒng)包括:源端主機11、目的端主機12、中間節(jié)點131、中間節(jié)點132、中間節(jié)點133、待遷移虛擬機14、不遷移虛擬機15、原有虛擬機16以及新的虛擬機17。
[0093]源端主機11,用于:將針對待遷移虛擬機14的臟數(shù)據(jù)重定向到中間節(jié)點131,將針對不遷移虛擬機15的臟數(shù)據(jù)重定向到中間節(jié)點132 ;
[0094]目的端主機12,用于:將針對原有虛擬機16的臟數(shù)據(jù)重定向到中間節(jié)點133。
[0095]具體說來,源端主機11與目的端主機12分別將不同的虛擬機重定向到不同的中間節(jié)點。
[0096]通過將不同的虛擬機重定向到不同的中間節(jié)點,進一步簡化了在寫入或讀取臟數(shù)據(jù)時的操作。
[0097]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0098]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種虛擬機磁盤存儲數(shù)據(jù)遷移方法,其特征在于,包括: 源端主機確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程; 所述源端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù); 所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移; 所述源端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作; 所述源端主機將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機; 所述源端主機從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述源端臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上; 所述目的端主機啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述源端主機將臟數(shù)據(jù)重定向到中間節(jié)點上,包括: 所述源端主機將所述臟數(shù)據(jù)對應(yīng)重定向到與所述全部虛擬機磁盤中各虛擬機磁盤對應(yīng)的中間節(jié)點上。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述源端主機根據(jù)所述源端臟數(shù)據(jù)記錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上,包括: 所述源端主機根據(jù)所述第二臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第二臟數(shù)據(jù)從中間節(jié)點同步到對應(yīng)的所述不遷移虛擬機磁盤上,并且刪除所述第二臟數(shù)據(jù)記錄表中對應(yīng)的記錄; 所述方法,還包括: 所述源端主機在確定讀操作命中所述第二臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目的端主機根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上,包括: 所述目的端主機根據(jù)所述第一臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第一臟數(shù)據(jù)同步到所述新的虛擬機上,并且刪除所述第一臟數(shù)據(jù)記錄表中對應(yīng)的記錄; 所述方法,還包括: 所述目的端主機在確定讀操作命中所述第一臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
5.根據(jù)權(quán)利要求1-4中任一項所述的方法,其特征在于,所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之前,還包括: 所述目的端主機開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在目的端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù); 所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之后,還包括: 所述目的端主機停止監(jiān)控全部虛擬機磁盤的讀寫操作; 所述目的端主機根據(jù)所述目的端臟數(shù)據(jù)記錄表將對應(yīng)的臟數(shù)據(jù)同步到虛擬機磁盤上。
6.一種虛擬機磁盤存儲數(shù)據(jù)遷移系統(tǒng),其特征在于,包括: 源端主機,用于: 確定即將發(fā)起虛擬機磁盤存儲數(shù)據(jù)的遷移過程; 開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在源端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù); 與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程,所述遷移過程包括存儲數(shù)據(jù)的遷移和虛擬機狀態(tài)數(shù)據(jù)的遷移; 停止監(jiān)控全部虛擬機磁盤的讀寫操作; 將所述源端臟數(shù)據(jù)記錄表中與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù)記錄表發(fā)送給所述目的端主機; 從所述中間節(jié)點上讀取與所述全部虛擬機磁盤中不遷移虛擬機磁盤對應(yīng)的第二臟數(shù)據(jù),并根據(jù)所述源端臟數(shù)據(jù)記 錄表中與所述不遷移虛擬機磁盤對應(yīng)第二臟數(shù)據(jù)記錄表將所述第二臟數(shù)據(jù)對應(yīng)同步到所述不遷移虛擬機磁盤上; 所述目的端主機,用于: 啟動新的虛擬機,從所述中間節(jié)點上讀取與所述待遷移虛擬機磁盤對應(yīng)的第一臟數(shù)據(jù),并根據(jù)所述第一臟數(shù)據(jù)記錄表將所述第一臟數(shù)據(jù)同步到新的虛擬機上。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述源端主機,具體用于將所述臟數(shù)據(jù)重定向到與所述全部虛擬機磁盤中各虛擬機磁盤對應(yīng)的中間節(jié)點上。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述源端主機,具體用于根據(jù)所述第二臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第二臟數(shù)據(jù)從中間節(jié)點同步到對應(yīng)的所述不遷移虛擬機磁盤上,并且刪除所述第二臟數(shù)據(jù)記錄表中對應(yīng)的記錄; 相應(yīng)的,所述源端主機,還用于: 在確定讀操作命中所述第二臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述目的端主機,具體用于根據(jù)所述第一臟數(shù)據(jù)記錄表中記錄的虛擬機磁盤位置,將所述第一臟數(shù)據(jù)同步到所述新的虛擬機上,并且刪除所述第一臟數(shù)據(jù)記錄表中對應(yīng)的記錄; 相應(yīng)的,所述目的端主機,還用于: 在確定讀操作命中所述第一臟數(shù)據(jù)記錄表,則從所述中間節(jié)點上讀取對應(yīng)的臟數(shù)據(jù)。
10.根據(jù)權(quán)利要求6-9中任一項所述的系統(tǒng),其特征在于,所述目的端主機,還用于: 在所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之前,開始監(jiān)控全部虛擬機磁盤的讀寫操作;其中,若監(jiān)控到寫操作,則將臟數(shù)據(jù)重定向到中間節(jié)點上,并將所 述臟數(shù)據(jù)所對應(yīng)的虛擬機磁盤位置記錄在目的端臟數(shù)據(jù)記錄表中;若監(jiān)控到針對所述臟數(shù)據(jù)的讀操作,則從所述中間節(jié)點上讀取所述臟數(shù)據(jù);在所述源端主機與目的端主機交互,完成所述全部虛擬機磁盤中待遷移虛擬機磁盤的遷移過程之后,停止監(jiān)控全部虛擬機磁盤的讀寫操作;根據(jù)所述目的端臟數(shù)據(jù)記錄表將對應(yīng)的臟數(shù)據(jù)同步到虛擬機磁盤 上。
【文檔編號】G06F12/06GK103500146SQ201310461285
【公開日】2014年1月8日 申請日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】金星, 王洪波, 程時端 申請人:北京郵電大學(xué)