国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      虛擬機(jī)在線遷移方法與系統(tǒng)的制作方法

      文檔序號(hào):7776530閱讀:180來(lái)源:國(guó)知局
      虛擬機(jī)在線遷移方法與系統(tǒng)的制作方法
      【專利摘要】本發(fā)明提供一種虛擬機(jī)在線遷移方法,在虛擬機(jī)遷移之前,將虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊;在虛擬機(jī)遷移過(guò)程中,在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置。該方法避免了重復(fù)內(nèi)存與磁盤數(shù)據(jù)塊的遷移傳輸,減少虛擬機(jī)遷移的數(shù)據(jù)量與遷移時(shí)間,從而減少了對(duì)遷移網(wǎng)絡(luò)帶寬資源的浪費(fèi)并縮短了遷移完成時(shí)間。
      【專利說(shuō)明】虛擬機(jī)在線遷移方法與系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及云計(jì)算技術(shù),尤其涉及虛擬機(jī)在線遷移方法【背景技術(shù)】
      [0002]虛擬機(jī)在線遷移是云計(jì)算資源調(diào)度的重要支撐機(jī)制。在虛擬機(jī)在線遷移的過(guò)程中,內(nèi)存與磁盤是主要的遷移對(duì)象,內(nèi)存與磁盤數(shù)據(jù)量的大小也決定了遷移的完成時(shí)間以及對(duì)網(wǎng)絡(luò)帶寬等資源的占用。然而在虛擬機(jī)的內(nèi)存與磁盤中存儲(chǔ)著大量的重復(fù)數(shù)據(jù),這些重復(fù)數(shù)據(jù)產(chǎn)生的原因一方面是由于內(nèi)存與磁盤之間的存儲(chǔ)層次關(guān)系,另一方面也在于存儲(chǔ)的數(shù)據(jù)本身的重復(fù)性。
      [0003]現(xiàn)有的虛擬機(jī)在線遷移技術(shù)中,并沒(méi)有考慮虛擬機(jī)內(nèi)存與磁盤數(shù)據(jù)的重復(fù)性,從而使得重復(fù)的數(shù)據(jù)多次遷移。一方面,這造成遷移網(wǎng)絡(luò)帶寬等資源的浪費(fèi),而遷移網(wǎng)絡(luò)帶寬是云計(jì)算平臺(tái)的重要共享資源,尤其是在跨數(shù)據(jù)中心遷移虛擬機(jī)的情況下,網(wǎng)絡(luò)帶寬更是寶貴的而且是物理上有限的資源,合理地利用遷移網(wǎng)絡(luò)帶寬是對(duì)虛擬機(jī)在線遷移技術(shù)提出的重要挑戰(zhàn)。另一方面,隨著虛擬機(jī)內(nèi)存與磁盤容量的增大,虛擬機(jī)遷移的完成時(shí)間也越來(lái)越長(zhǎng),這給云計(jì)算環(huán)境下的資源調(diào)度的時(shí)效性帶來(lái)了巨大挑戰(zhàn)。

      【發(fā)明內(nèi)容】

      [0004]因此,本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,提供一種虛擬機(jī)在線遷移方法。
      [0005]本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
      [0006]一方面,本發(fā)明提供了一種虛擬機(jī)在線遷移方法,包括:
      [0007]在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置,其中所述虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊。
      [0008]上述方法中,所述比較當(dāng)前待遷移的數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同可包括:
      [0009]SI)計(jì)算當(dāng)前待遷移的數(shù)據(jù)塊的摘要;
      [0010]S2)判斷該待遷移的數(shù)據(jù)塊的摘要是否與之前已遷移數(shù)據(jù)塊的摘要相同,如果相同,則確定該待遷移的數(shù)據(jù)塊與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同。
      [0011 ] 上述方法中,所述步驟SI)中,可利用MD5算法或SHA-1算法來(lái)獲取數(shù)據(jù)塊的摘要。
      [0012]上述方法中,所述步驟S2)中可以以紅黑樹結(jié)構(gòu)來(lái)保存之前已遷移數(shù)據(jù)塊的摘要。
      [0013]上述方法中,所述步驟S2)可包括:
      [0014]基于布隆過(guò)濾器來(lái)判斷待遷移的數(shù)據(jù)塊的摘要是否在之前已遷移數(shù)據(jù)塊的摘要的集合中;[0015]如果判斷為在該集合中,則在以紅黑樹結(jié)構(gòu)保存的已遷移數(shù)據(jù)塊的摘要中查找該待遷移數(shù)據(jù)塊的摘要,如果能找到該摘要,則確定該待遷移的數(shù)據(jù)塊與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同。
      [0016]上述方法中,還可包括:對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊,除了最后一次遷移的版本之夕卜,還將之前遷移的該數(shù)據(jù)塊的所有版本保存在目標(biāo)端的數(shù)據(jù)塊多版本存儲(chǔ)空間中。
      [0017]上述方法中,還可包括對(duì)于收到任一數(shù)據(jù)塊在目標(biāo)端處執(zhí)行下列步驟:
      [0018]步驟1),根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)位置上之前是否遷入過(guò)數(shù)據(jù),如果該目標(biāo)位置之前已遷入過(guò)數(shù)據(jù),跳轉(zhuǎn)至步驟2),否則跳轉(zhuǎn)到步驟3);
      [0019]步驟2)將該目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并將該數(shù)據(jù)庫(kù)的存儲(chǔ)位置記為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;轉(zhuǎn)至步驟3)繼續(xù)執(zhí)行;
      [0020]步驟3)如果該接收的數(shù)據(jù)塊包含數(shù)據(jù),則將該數(shù)據(jù)復(fù)制至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,并將該數(shù)據(jù)塊復(fù)制到該目標(biāo)位置;其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置。
      [0021]又一方面,本發(fā)明提供了一種虛擬機(jī)在線遷移系統(tǒng),包括:
      [0022]數(shù)據(jù)塊遷移裝置,用于在虛擬機(jī)遷移過(guò)程中,在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置;其中所述虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊。
      [0023]上述系統(tǒng)中,還可包括數(shù)據(jù)塊版本管理裝置,用于對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊,除了最后一次遷移的版本之外,將之前遷移的該數(shù)據(jù)塊的所有版本保存在目標(biāo)端的數(shù)據(jù)塊多版本存儲(chǔ)空間中。
      [0024]上述系統(tǒng)中,還可包括數(shù)據(jù)塊接收裝置,用于對(duì)于在目標(biāo)端處收到任一數(shù)據(jù)塊:根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)位置上之前是否遷入過(guò)數(shù)據(jù),如果該目標(biāo)位置之前已遷入過(guò)數(shù)據(jù),將該目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并將該數(shù)據(jù)庫(kù)的存儲(chǔ)位置記為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;
      [0025]以及如果該接收的數(shù)據(jù)塊包含數(shù)據(jù),則將該數(shù)據(jù)復(fù)制至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,并將該數(shù)據(jù)塊復(fù)制到該目標(biāo)位置;其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置。
      [0026]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
      [0027]在虛擬機(jī)遷移過(guò)程,內(nèi)存與磁盤中相同的數(shù)據(jù)塊僅需遷移一次,避免了重復(fù)內(nèi)存與磁盤數(shù)據(jù)塊的遷移傳輸,減少虛擬機(jī)遷移的數(shù)據(jù)量與遷移時(shí)間,從而減少了對(duì)遷移網(wǎng)絡(luò)帶寬資源的浪費(fèi)并縮短了遷移完成時(shí)間。
      【專利附圖】

      【附圖說(shuō)明】[0028]以下參照附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說(shuō)明,其中:
      [0029]圖1為根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)在線遷移方法中遷移源端處的操作流程示意圖;
      [0030]圖2為根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)在線遷移方法中遷移目標(biāo)端處的操作流程示意圖。
      【具體實(shí)施方式】
      [0031]為了使本發(fā)明的目的,技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖通過(guò)具體實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0032]虛擬機(jī)中會(huì)存在以下三種形式的重復(fù)數(shù)據(jù):第一種是在虛擬機(jī)內(nèi)存中不同的內(nèi)存頁(yè)面存儲(chǔ)了相同的數(shù)據(jù);第二種是虛擬機(jī)磁盤中不同的磁盤塊存儲(chǔ)了相同的數(shù)據(jù);第三種是在虛擬機(jī)內(nèi)存中與磁盤中存儲(chǔ)了相同的數(shù)據(jù)。
      [0033]在本發(fā)明的一個(gè)實(shí)施例中,提供了 一種虛擬機(jī)在線遷移方法,該方法在虛擬機(jī)遷移之前,將虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊;在虛擬機(jī)遷移過(guò)程中,在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置。這樣,通過(guò)避免重復(fù)內(nèi)存與磁盤數(shù)據(jù)塊的遷移傳輸,一方面減少對(duì)遷移網(wǎng)絡(luò)帶寬資源的浪費(fèi),另一方面由于遷移數(shù)據(jù)量的減少進(jìn)而縮短了遷移完成時(shí)間。
      [0034]其中,可以采用多種方式來(lái)判斷當(dāng)前待遷移數(shù)據(jù)塊是否與已遷移的數(shù)據(jù)塊存儲(chǔ)著相同的數(shù)據(jù)。例如,可以通過(guò)逐字節(jié)比對(duì)的方式來(lái)判斷兩個(gè)數(shù)據(jù)塊是否相同。在一個(gè)優(yōu)選的實(shí)施例中,采用下列步驟來(lái)識(shí)別當(dāng)前待遷移數(shù)據(jù)塊是否與已遷移的數(shù)據(jù)塊存儲(chǔ)著相同的數(shù)據(jù):
      [0035]SI)計(jì)算當(dāng)前待遷移數(shù)據(jù)塊的摘要??梢圆捎枚喾N數(shù)據(jù)摘要算法來(lái)獲取數(shù)據(jù)塊的摘要,例如MD5算法或SHA-1算法。
      [0036]S2)查找該待遷移數(shù)據(jù)塊的摘要是否與已遷移數(shù)據(jù)塊摘要集合中的某個(gè)數(shù)據(jù)塊摘要相同,如果相同,則識(shí)別當(dāng)前待遷移數(shù)據(jù)塊與已遷移的數(shù)據(jù)塊存儲(chǔ)著相同的數(shù)據(jù)。其中,已遷移數(shù)據(jù)塊摘要集合包括之前已遷移數(shù)據(jù)塊的摘要。為查找方便,可以采用多種數(shù)據(jù)結(jié)構(gòu)來(lái)保存已遷移數(shù)據(jù)塊的摘要。例如,采用紅黑樹結(jié)構(gòu)來(lái)管理已遷移數(shù)據(jù)塊的摘要,紅黑樹屬于平衡二叉樹的一種,以數(shù)據(jù)塊的摘要信息作為紅黑樹節(jié)點(diǎn)的key值(即每個(gè)節(jié)點(diǎn)代表一個(gè)數(shù)據(jù)塊),能夠很大地提高查找效率,并且在對(duì)樹頻繁插入和刪除過(guò)程中有很穩(wěn)定的時(shí)間復(fù)雜度。又例如,可以采用trie樹來(lái)保存已遷移數(shù)據(jù)塊的摘要。
      [0037]通常數(shù)據(jù)塊的大小在KB級(jí)或MB級(jí),而采用MD5算法或SHA-1算法得到的摘要分別是16字節(jié)與20字節(jié),因此與對(duì)數(shù)據(jù)庫(kù)的逐字節(jié)比對(duì)方式相比,可大大較少數(shù)據(jù)的比對(duì)時(shí)間。
      [0038]在又一個(gè)實(shí)施例中,在上述的步驟S2),為了進(jìn)一步提高查找效率,可以采用布隆過(guò)濾器(Bloom Filter)來(lái)判斷該待遷移數(shù)據(jù)塊的摘要是否在已遷移數(shù)據(jù)塊摘要集合中。布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中,其空間效率和查詢時(shí)間都遠(yuǎn)遠(yuǎn)超過(guò)一般的算法,可快速地檢測(cè)出該待遷移數(shù)據(jù)塊的摘要是否在已遷移數(shù)據(jù)塊摘要集合中。但是布隆過(guò)濾器本身有一定的誤識(shí)別率。也就是說(shuō),如果采用布隆過(guò)濾器判斷該待遷移數(shù)據(jù)塊的摘要在已遷移數(shù)據(jù)塊摘要集合中時(shí),并不能完全確定該摘要一定在該集合中,從而可能會(huì)將尚未遷移的數(shù)據(jù)塊錯(cuò)認(rèn)為已遷移的數(shù)據(jù)塊。而在虛擬機(jī)在線遷移過(guò)程中是要保證100%的數(shù)據(jù)遷移正確性與完整性,因此,在布隆過(guò)濾器判斷結(jié)論為該待遷移數(shù)據(jù)塊的摘要在已遷移數(shù)據(jù)塊摘要集合中時(shí),還需要在采用例如紅黑樹或trie樹結(jié)構(gòu)保存的已遷移數(shù)據(jù)塊的摘要中查找該待遷移數(shù)據(jù)塊的摘要,如果能在該集合查找到該摘要,則確定當(dāng)前待遷移數(shù)據(jù)塊與已遷移的數(shù)據(jù)塊存儲(chǔ)著相同的數(shù)據(jù)。這樣,即實(shí)現(xiàn)了已遷移重復(fù)數(shù)據(jù)塊的快速檢測(cè),提高了重復(fù)數(shù)據(jù)塊識(shí)別的效率,又可以保證識(shí)別的準(zhǔn)確性,進(jìn)而確保虛擬機(jī)在線遷移的遷移數(shù)據(jù)完整性與正確性要求。
      [0039]下面結(jié)合圖1和圖2,詳細(xì)介紹采用根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬機(jī)在線遷移方法遷移數(shù)據(jù)塊時(shí)在源端和目標(biāo)端處的操作流程。該方法在虛擬機(jī)遷移之前,先將虛擬機(jī)內(nèi)存與磁盤數(shù)據(jù)切分為固定大小的數(shù)據(jù)塊。為了實(shí)現(xiàn)內(nèi)存與磁盤混合去重,內(nèi)存與磁盤可采用相同的數(shù)據(jù)塊大小,例如4KB?,F(xiàn)參考圖1,在源端處開始遷移時(shí),對(duì)于當(dāng)前待遷移的數(shù)據(jù)塊:
      [0040]I)使用MD5或SHA-1算法計(jì)算該數(shù)據(jù)塊的摘要。該摘要實(shí)際上是16字節(jié)或20字節(jié)的字節(jié)串。
      [0041]2)利用布隆過(guò)濾器判斷I)中計(jì)算出的數(shù)據(jù)塊摘要字節(jié)串是否與已遷移數(shù)據(jù)塊摘要集合中的某個(gè)數(shù)據(jù)塊摘要相同,由于布隆過(guò)濾器本身的特性,如果判斷結(jié)果是“真(True)”,并不能夠確定一定在該集合中,跳轉(zhuǎn)到3),反之,如果判斷結(jié)果是“假(False)”,則能夠確定一定不在集合中,跳轉(zhuǎn)到5)。
      [0042]其中,布隆過(guò)濾器主要由一個(gè)很長(zhǎng)的二進(jìn)制位數(shù)組和一組隨機(jī)映射且不相關(guān)的hash函數(shù)組成,位數(shù)組初始化為0,布隆過(guò)濾器通過(guò)函數(shù)組中的k個(gè)hash函數(shù)將一個(gè)數(shù)據(jù)塊映射到位數(shù)組中不同的地址,并將這些地址對(duì)應(yīng)的項(xiàng)都標(biāo)記為1,以此記錄數(shù)據(jù)塊,由于對(duì)于同一個(gè)數(shù)據(jù)塊hash函數(shù)產(chǎn)生的地址是相同的,再次查詢時(shí),利用k個(gè)hash函數(shù)處理數(shù)據(jù)塊找到位數(shù)組中對(duì)應(yīng)的k個(gè)地址,判斷是否都為1,若是,則可判定數(shù)據(jù)塊存在于該集合中,否則就不存在,因此,hash函數(shù)組的選擇會(huì)很大程度上影響布隆過(guò)濾器的效能,hash函數(shù)產(chǎn)生的地址越隨機(jī),越均勻,效果越理想。在具體應(yīng)用過(guò)程中可以調(diào)整布隆過(guò)濾器的二進(jìn)制位數(shù)組長(zhǎng)度與哈希函數(shù)的個(gè)數(shù)來(lái)限定其誤判率,例如將位數(shù)組長(zhǎng)度設(shè)定為待遷移數(shù)據(jù)塊總數(shù)量的10倍,哈希函數(shù)個(gè)數(shù)設(shè)置為7個(gè),便可以將誤判率限定在1%以下。
      [0043]3)在例如采用紅黑樹結(jié)構(gòu)的已遷移數(shù)據(jù)塊摘要集合中進(jìn)行查找該待遷移的數(shù)據(jù)塊的摘要,如果在該集合中找到該摘要,跳轉(zhuǎn)至4),如果在該集合中沒(méi)有找到該摘要,跳轉(zhuǎn)至5)。
      [0044]4)發(fā)送該數(shù)據(jù)塊的摘要與位置信息,所述位置信息例如該數(shù)據(jù)塊所在內(nèi)存中的偏移、或在磁盤塊上的扇區(qū)號(hào)等,發(fā)送完成后跳轉(zhuǎn)到6);
      [0045]5)將該數(shù)據(jù)塊的摘要加入到已遷移數(shù)據(jù)塊摘要集合中,更新布隆過(guò)濾器的數(shù)組與紅黑樹,并且發(fā)送該數(shù)據(jù)塊的摘要、位置信息以及數(shù)據(jù)塊本身,發(fā)送完成后跳轉(zhuǎn)到6)。其中更新布隆過(guò)濾器的位數(shù)組過(guò)程如上面2)中所述,利用hash函數(shù)組處理數(shù)據(jù)塊得到對(duì)應(yīng)的位數(shù)組中的一組地址,將這些地址對(duì)應(yīng)的項(xiàng)標(biāo)記為I即可。這里也可以不發(fā)送數(shù)據(jù)塊的摘要,該數(shù)據(jù)塊的摘要可以通過(guò)在目標(biāo)端采用MD5或SHA-1算法計(jì)算獲得。
      [0046]6)數(shù)據(jù)塊遷移完成。
      [0047]在虛擬機(jī)在線遷移過(guò)程中,每個(gè)內(nèi)存或磁盤數(shù)據(jù)塊都有可能會(huì)被遷移多次,這是因?yàn)樵跀?shù)據(jù)塊遷移過(guò)程中,虛擬機(jī)仍在運(yùn)行,因此有可能會(huì)更新數(shù)據(jù)塊,從而導(dǎo)致一些數(shù)據(jù)塊被遷移多次。對(duì)于遷移多次的數(shù)據(jù)塊而言,只有最后一次遷移的數(shù)據(jù)是有效的,之前遷移的數(shù)據(jù)都是可以丟棄的,所以在現(xiàn)有的虛擬機(jī)在線遷移技術(shù)中,后面的數(shù)據(jù)會(huì)覆蓋掉之前遷移的數(shù)據(jù)。在根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬機(jī)在線遷移方法中,對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊而言,除了最后一次遷移的數(shù)據(jù)之外,還將之前遷移的數(shù)據(jù)都進(jìn)行了保存,因?yàn)檫@些之前遷移的數(shù)據(jù)仍然是有用的,可以省去后續(xù)的與這些數(shù)據(jù)相同的數(shù)據(jù)塊的遷移。例如,可以將之前遷移的數(shù)據(jù)塊的所有版本全部存儲(chǔ)在目標(biāo)端,目標(biāo)端用于保存這些數(shù)據(jù)塊的空間可以被稱為數(shù)據(jù)塊多版本存儲(chǔ)空間。這樣,通過(guò)在目標(biāo)端存儲(chǔ)多次遷移數(shù)據(jù)塊的多個(gè)版本,使得數(shù)據(jù)去重率能夠最大化,進(jìn)而保證在虛擬機(jī)遷移過(guò)程中相同的數(shù)據(jù)塊僅被遷移一次,最大程度減少對(duì)遷移網(wǎng)絡(luò)帶寬的占用,進(jìn)而使得虛擬機(jī)在線遷移能夠在網(wǎng)絡(luò)帶寬資源十分有限的條件下能夠完成。
      [0048]現(xiàn)參考圖2,相應(yīng)地在目標(biāo)端處,當(dāng)收到一個(gè)數(shù)據(jù)塊時(shí):
      [0049]I ’ )根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)端相應(yīng)位置(下文簡(jiǎn)稱為目標(biāo)位置)上之前是否遷入過(guò)數(shù)據(jù)。例如可以根據(jù)該數(shù)據(jù)塊的位置信息查看遷移完成位圖,如果相應(yīng)位置位,說(shuō)明該目標(biāo)位置之前遷入過(guò)數(shù)據(jù),跳轉(zhuǎn)至2’),否則說(shuō)明這是該目標(biāo)位置第一次遷入數(shù)據(jù),跳轉(zhuǎn)到3’)。其中,遷移完成位圖是由”0/1”組成的二進(jìn)制位的序列,每一位對(duì)應(yīng)目標(biāo)端的一個(gè)目標(biāo)位置,值為“ I”意味著相應(yīng)的目標(biāo)位置之前遷入過(guò)數(shù)據(jù),反之,值為“O”則意味著相應(yīng)的目標(biāo)位置之前未遷入過(guò)數(shù)據(jù)。
      [0050]2’ )將目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并更新已接收數(shù)據(jù)塊摘要集合中該目標(biāo)位置數(shù)據(jù)塊的摘要相應(yīng)的存儲(chǔ)位置為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;轉(zhuǎn)至3’)繼續(xù)執(zhí)行。其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置,以方便查找相同的數(shù)據(jù)塊。
      [0051]3’)如果接收的數(shù)據(jù)塊包含數(shù)據(jù)本身,則將數(shù)據(jù)拷貝至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,從其中記錄的數(shù)據(jù)塊存儲(chǔ)位置拷貝該數(shù)據(jù)塊至該目標(biāo)位置。
      [0052]4’ )數(shù)據(jù)塊接收完成。
      [0053]在本發(fā)明的又一個(gè)實(shí)施例中,還提供了一種虛擬機(jī)在線遷移系統(tǒng),該系統(tǒng)包括數(shù)據(jù)塊遷移裝置。數(shù)據(jù)塊遷移裝置用于在虛擬機(jī)遷移過(guò)程中,在遷移數(shù)據(jù)塊之前,利用上述所述的方法先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置,其中所述虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊。
      [0054]在又一個(gè)實(shí)施例中,該系統(tǒng)還包括數(shù)據(jù)塊版本管理裝置,用于對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊,除了最后一次遷移的版本之外,將之前遷移的該數(shù)據(jù)塊的所有版本保存在目標(biāo)端的數(shù)據(jù)塊多版本存儲(chǔ)空間中。在又一個(gè)實(shí)施例中,該系統(tǒng)還包括數(shù)據(jù)塊接收裝置,用于對(duì)于在目標(biāo)端處收到任一數(shù)據(jù)塊:根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)位置上之前是否遷入過(guò)數(shù)據(jù),如果該目標(biāo)位置之前已遷入過(guò)數(shù)據(jù),將該目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并將該數(shù)據(jù)庫(kù)的存儲(chǔ)位置記為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;以及如果該接收的數(shù)據(jù)塊包含數(shù)據(jù),則將該數(shù)據(jù)復(fù)制至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,并將該數(shù)據(jù)塊復(fù)制到該目標(biāo)位置;其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置。
      [0055]雖然本發(fā)明已經(jīng)通過(guò)優(yōu)選實(shí)施例進(jìn)行了描述,然而本發(fā)明并非局限于這里所描述的實(shí)施例,在不脫離本發(fā)明范圍的情況下還包括所作出的各種改變以及變化。
      【權(quán)利要求】
      1.一種虛擬機(jī)在線遷移方法,該方法包括:在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置,其中所述虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊。
      2.根據(jù)權(quán)利要求1所述的方法,其中,比較當(dāng)前待遷移的數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同包括:51)計(jì)算當(dāng)前待遷移的數(shù)據(jù)塊的摘要;52)判斷該待遷移的數(shù)據(jù)塊的摘要是否與之前已遷移數(shù)據(jù)塊的摘要相同,如果相同,則確定該待遷移的數(shù)據(jù)塊與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同。
      3.根據(jù)權(quán)利要求2所述的方法,所述步驟SI)中,利用MD5算法或SHA-1算法來(lái)獲取數(shù)據(jù)塊的摘要。
      4.根據(jù)權(quán)利要求2所述的方法,所述步驟S2)中以紅黑樹結(jié)構(gòu)來(lái)保存之前已遷移數(shù)據(jù)塊的摘要。
      5.根據(jù)權(quán)利要求4所述的方法,所述步驟S2)包括:基于布隆過(guò)濾器來(lái)判斷待遷移的數(shù)據(jù)塊的摘要是否在之前已遷移數(shù)據(jù)塊的摘要的集合中;如果判斷為在該集合中,則在以紅黑樹結(jié)構(gòu)保存的已遷移數(shù)據(jù)塊的摘要中查找該待遷移數(shù)據(jù)塊的摘要,如果能找到該摘要,則確定該待遷移的數(shù)據(jù)塊與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同。
      6.根據(jù)權(quán)利要求1所述的方法,還包括:對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊,除了最后一次遷移的版本之外,還將之前遷移的該數(shù)據(jù)塊的所有版本保存在目標(biāo)端的數(shù)據(jù)塊多版本存儲(chǔ)空間中。
      7.根據(jù)權(quán)利要求6所述的方法,還包括對(duì)于收到任一數(shù)據(jù)塊在目標(biāo)端處執(zhí)行下列步驟:步驟1),根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)位置上之前是否遷入過(guò)數(shù)據(jù),如果該目標(biāo)位置之前已遷入過(guò)數(shù)據(jù),跳轉(zhuǎn)至步驟2),否則跳轉(zhuǎn)到步驟3);步驟2)將該目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并將該數(shù)據(jù)庫(kù)的存儲(chǔ)位置記為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;轉(zhuǎn)至步驟3)繼續(xù)執(zhí)行;步驟3)如果該接收的數(shù)據(jù)塊包含數(shù)據(jù),則將該數(shù)據(jù)復(fù)制至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,并將該數(shù)據(jù)塊復(fù)制到該目標(biāo)位置;其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置。
      8.一種虛擬機(jī)在線遷移系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)塊遷移裝置,用于在虛擬機(jī)遷移過(guò)程中,在遷移數(shù)據(jù)塊之前先比較該數(shù)據(jù)塊是否與之前遷移過(guò)的內(nèi)存或磁盤數(shù)據(jù)塊的內(nèi)容相同,如果不相同,則將該數(shù)據(jù)塊遷移到目標(biāo)端;如果相同,則只發(fā)送該數(shù)據(jù)塊的摘要和位置信息到目標(biāo)端,在目標(biāo)端根據(jù)所接收的摘要和位置信息,從之前已收到的數(shù)據(jù)塊中找到相同的數(shù)據(jù)并將其復(fù)制到目標(biāo)位置;其中所述虛擬機(jī)內(nèi)存與磁盤按照相同的大小劃分成若干數(shù)據(jù)塊。
      9.根據(jù)權(quán)利要求8所述的系統(tǒng),還包括數(shù)據(jù)塊版本管理裝置,用于對(duì)于一個(gè)多次遷移的數(shù)據(jù)塊,除了最后一次遷移的版本之外,將之前遷移的該數(shù)據(jù)塊的所有版本保存在目標(biāo)端的數(shù)據(jù)塊多版本存儲(chǔ)空間中。
      10.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括數(shù)據(jù)塊接收裝置,用于對(duì)于在目標(biāo)端處收到任一數(shù)據(jù)塊:根據(jù)該數(shù)據(jù)塊的位置信息查看目標(biāo)位置上之前是否遷入過(guò)數(shù)據(jù),如果該目標(biāo)位置之前已遷入過(guò)數(shù)據(jù),將該目標(biāo)位置的數(shù)據(jù)塊移到數(shù)據(jù)塊多版本存儲(chǔ)空間,并將該數(shù)據(jù)庫(kù)的存儲(chǔ)位置記為其在數(shù)據(jù)塊多版本存儲(chǔ)空間中的位置;以及如果該接收的數(shù)據(jù)塊包含數(shù)據(jù),則將該數(shù)據(jù)復(fù)制至該目標(biāo)位置,并將其摘要與位置信息加入到已接收數(shù)據(jù)塊摘要集合中;如果接收的數(shù)據(jù)塊不包含數(shù)據(jù),則用該數(shù)據(jù)塊的摘要在已接收數(shù)據(jù)塊摘要集合中進(jìn)行查找,找到相應(yīng)數(shù)據(jù)塊后,并將該數(shù)據(jù)塊復(fù)制到該目標(biāo)位置;其中,已接收數(shù)據(jù)塊摘要集合用于記錄之前已接收到的數(shù)據(jù)塊的摘要及該數(shù)據(jù)塊的存儲(chǔ)位置。
      【文檔編號(hào)】H04L29/08GK103581331SQ201310571016
      【公開日】2014年2月12日 申請(qǐng)日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
      【發(fā)明者】唐宏偉, 于磊, 趙曉芳 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1