虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)。所述方法包括:獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件;獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件;對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊;判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,如果是,則不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,如果否,則將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)能夠有效降低例如桌面云系統(tǒng)的虛擬機(jī)鏡像在數(shù)據(jù)存儲(chǔ)時(shí)的存儲(chǔ)量。
【專利說(shuō)明】虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]桌面云系統(tǒng)通過(guò)應(yīng)用服務(wù)器把各種應(yīng)用分發(fā)到虛擬桌面,從而可以使得用戶只需要連到一個(gè)虛擬桌面就可以使用所有的應(yīng)用,就好像這些應(yīng)用安裝在桌面上一樣。桌面云系統(tǒng)具有使得客戶能夠隨時(shí)隨地訪問(wèn)桌面、集中化管理、安全性高、應(yīng)用環(huán)保、成本低等優(yōu)點(diǎn),被越來(lái)越廣泛的應(yīng)用。但隨著用戶數(shù)目的增加,數(shù)據(jù)存儲(chǔ)量飛速增長(zhǎng),且這些數(shù)據(jù)中有相當(dāng)多的冗余數(shù)據(jù),如果直接存儲(chǔ)這些冗余數(shù)據(jù),會(huì)造成很大的物理存儲(chǔ)空間浪費(fèi)。
[0003]傳統(tǒng)的虛擬機(jī)鏡像數(shù)據(jù)的存儲(chǔ)或備份方式可以分為直接備份和壓縮備份。直接備份就是不經(jīng)過(guò)任何處理,對(duì)虛擬機(jī)鏡像的原始數(shù)據(jù)直接完全復(fù)制至桌面云系統(tǒng)的存儲(chǔ)設(shè)備,這樣不能減少數(shù)據(jù)的存儲(chǔ)量。壓縮備份是先對(duì)虛擬機(jī)鏡像的原始數(shù)據(jù)在應(yīng)用服務(wù)器中進(jìn)行壓縮,壓縮完成后再傳輸至存儲(chǔ)設(shè)備,這樣可以在一定程度上減少對(duì)物理磁盤(pán)空間的需求。然而,壓縮備份的方式是對(duì)各個(gè)鏡像單獨(dú)進(jìn)行數(shù)據(jù)壓縮的,仍然有許多冗余數(shù)據(jù)被存儲(chǔ)。
【發(fā)明內(nèi)容】
[0004]摶術(shù)問(wèn)是頁(yè)
[0005]有鑒于此,本發(fā)明要解決的技術(shù)問(wèn)題是,如何盡量降低例如桌面云系統(tǒng)中的虛擬機(jī)鏡像在數(shù)據(jù)存儲(chǔ)時(shí)的存儲(chǔ)量。
[0006]解決方案
[0007]為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明一實(shí)施例,在第一方面提供一種虛擬機(jī)鏡像文件處理方法,包括:獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件;獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件;對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊;判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,如果是,則不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,如果否,則將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。
[0008]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,其應(yīng)用于虛擬機(jī)鏡像文件處理系統(tǒng)中,其中,所述虛擬機(jī)鏡像文件處理系統(tǒng)用于對(duì)接收到的多個(gè)所述虛擬機(jī)的鏡像文件進(jìn)行處理,其包括至少一個(gè)所述存儲(chǔ)系統(tǒng),至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件。
[0009]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,所述判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,包括:生成所述每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋;查找指紋庫(kù)中是否存在所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋,其中,所述指紋庫(kù)中保存有一個(gè)或多個(gè)指紋;如果存在,則判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,如果不存在,則判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中。[0010]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù);在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中之后,還包括更新地址索引表和所述指紋庫(kù),所述地址索引表中包括所述邏輯塊的邏輯地址LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的物理地址PBA的映射關(guān)系。
[0011]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,所述指紋庫(kù)中還保存有所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋與該邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系、以及所述指紋被引用的次數(shù);其中,所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)系統(tǒng)中;在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋被引用的次數(shù)加一;在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋寫(xiě)入所述指紋庫(kù),將該指紋被引用的次數(shù)加一,并將該指紋與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述指紋庫(kù);更新所述地址索引表包括:將該指紋對(duì)應(yīng)的邏輯塊的LBA與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述地址索引表。
[0012]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件之前,還包括:生成虛擬機(jī)對(duì)應(yīng)的鏡像文件,并生成虛擬機(jī)ID表,其中,所述虛擬機(jī)ID表中包括虛擬機(jī)的唯一標(biāo)識(shí)ID、以及所述虛擬機(jī)中的系統(tǒng)文件順序。
[0013]對(duì)上述虛擬機(jī)鏡像文件處理方法,在一種可能的實(shí)現(xiàn)方式中,所述虛擬機(jī)ID表還包括各系統(tǒng)文件的邏輯塊的存儲(chǔ)順序、以及所述各邏輯塊的LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系。
[0014]為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明又一實(shí)施例,在第二方面,提供一種虛擬機(jī)鏡像文件處理裝置,包括:第一獲取模塊,用于獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件;第二獲取模塊,與所述第一獲取模塊連接,用于獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件;劃分模塊,與所述第二獲取模塊連接,用于對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊;判斷模塊,與所述劃分模塊連接,用于判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中;處理模塊,與所述判斷模塊連接,用于在所述判斷模塊的判斷結(jié)果為是的情況下,不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,在所述判斷模塊的判斷結(jié)果為否的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。
[0015]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,其應(yīng)用于虛擬機(jī)鏡像文件處理系統(tǒng)中,其中,所述虛擬機(jī)鏡像文件處理系統(tǒng)用于對(duì)接收到的多個(gè)所述虛擬機(jī)鏡像文件進(jìn)行處理,其包括至少一個(gè)所述存儲(chǔ)系統(tǒng),至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件。
[0016]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,還包括:指紋生成模塊,與所述劃分模塊連接,用于生成所述每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋;指紋查找模塊,與所述指紋生成模塊連接,用于查找指紋庫(kù)中是否存在所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋,其中,所述指紋庫(kù)中保存有一個(gè)或多個(gè)指紋;所述判斷模塊被配置為,在所述指紋查找模塊的查找結(jié)果為存在的情況下,判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,在所述指紋查找模塊的查找結(jié)果為不存在的情況下,判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中。[0017]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,所述處理模塊具體被配置為:在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù);在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中之后,更新地址索引表和所述指紋庫(kù),所述地址索引表中包括所述邏輯塊的邏輯地址LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的物理地址PBA的映射關(guān)系。
[0018]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,所述指紋庫(kù)中還保存有所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋與該邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系、以及所述指紋被引用的次數(shù);其中,所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)系統(tǒng)中;所述處理模塊具體還被配置為,在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋被引用的次數(shù)加一;在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋寫(xiě)入所述指紋庫(kù),將該指紋被引用的次數(shù)加一,并將該指紋與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述指紋庫(kù);以及將該指紋對(duì)應(yīng)的邏輯塊的LBA與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述地址索引表。
[0019]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,還包括:鏡像文件生成模塊,與所述第一獲取模塊連接,用于生成虛擬機(jī)對(duì)應(yīng)的鏡像文件;虛擬機(jī)ID表生成模塊,與所述鏡像文件生成模塊連接,用于生成虛擬機(jī)ID表,其中,所述虛擬機(jī)ID表中包括虛擬機(jī)的唯一標(biāo)識(shí)ID、以及所述虛擬機(jī)中的系統(tǒng)文件順序。
[0020]對(duì)上述虛擬機(jī)鏡像文件處理裝置,在一種可能的實(shí)現(xiàn)方式中,所述虛擬機(jī)ID表還包括各系統(tǒng)文件的邏輯塊的存儲(chǔ)順序、以及所述各邏輯塊的LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系。
[0021]為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明又一實(shí)施例,在第三方面,提供一種虛擬機(jī)鏡像文件處理系統(tǒng),用于對(duì)接收到的多個(gè)虛擬機(jī)的鏡像文件進(jìn)行處理,至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件,包括:本發(fā)明任一實(shí)施例所述的虛擬機(jī)鏡像文件處理裝置,用于對(duì)接收到的多個(gè)虛擬機(jī)的鏡像文件進(jìn)行處理;至少一個(gè)存儲(chǔ)設(shè)備,與所述虛擬機(jī)鏡像文件處理裝置連接,用于存儲(chǔ)所述虛擬機(jī)鏡像文件處理裝置處理之后的數(shù)據(jù)。
[0022]有益.效果
[0023]通過(guò)獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件和該鏡像文件中的所述多個(gè)系統(tǒng)文件,然后對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊,如果劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,則不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,如果劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中,則將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法能夠降低例如桌面云系統(tǒng)的虛擬機(jī)鏡像在數(shù)據(jù)存儲(chǔ)時(shí)的存儲(chǔ)量。
[0024]根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的其它特征及方面將變得清楚。
【專利附圖】
【附圖說(shuō)明】
[0025]包含在說(shuō)明書(shū)中并且構(gòu)成說(shuō)明書(shū)的一部分的附圖與說(shuō)明書(shū)一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。[0026]圖1a示出本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法的一個(gè)應(yīng)用場(chǎng)景的示意圖;
[0027]圖1b示出本發(fā)明實(shí)施例的重復(fù)數(shù)據(jù)刪除技術(shù)的原理示意圖;
[0028]圖2a示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖;
[0029]圖2b示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖;
[0030]圖3示出根據(jù)本發(fā)明一實(shí)施例的地址索引表的示意圖;
[0031]圖4示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖;
[0032]圖5示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖;
[0033]圖6示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖;
[0034]圖7示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像ID表的示意圖;
[0035]圖8示出讀取根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法處理之后的數(shù)據(jù)的流程圖;
[0036]圖9示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像文件處理裝置的結(jié)構(gòu)框圖;
[0037]圖10示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像文件處理裝置的部分組件的結(jié)構(gòu)框圖;
[0038]圖11示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)鏡像文件處理裝置的部分組件的結(jié)構(gòu)框圖;
[0039]圖12示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像文件處理系統(tǒng)的結(jié)構(gòu)框圖;
[0040]圖13示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)鏡像文件處理裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0041 ] 本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法及裝置應(yīng)用于虛擬機(jī)鏡像文件處理系統(tǒng)中,其中,所述虛擬機(jī)鏡像文件處理系統(tǒng)用于對(duì)接收到的多個(gè)所述虛擬機(jī)的鏡像文件進(jìn)行處理,其包括至少一個(gè)所述存儲(chǔ)系統(tǒng),至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件。也就是說(shuō),本發(fā)明適用于存在數(shù)據(jù)的重復(fù)性較高的場(chǎng)景,兩個(gè)或多個(gè)虛擬機(jī)的鏡像文件中存在按相同順序排列的系統(tǒng)文件,使得采用本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件的方法在存儲(chǔ)處理和讀取處理過(guò)程中效率最高。
[0042]圖1a示出本發(fā)明實(shí)施例的虛擬機(jī)鏡像文件處理方法及裝置的一個(gè)應(yīng)用場(chǎng)景的示意圖,以IBM云計(jì)算智能商務(wù)桌面為例,圖1a示出了桌面云系統(tǒng)的一個(gè)基本架構(gòu),圖中的應(yīng)用服務(wù)器是把各種應(yīng)用分發(fā)到虛擬桌面,這樣客戶只需要連到一個(gè)桌面就可以使用所有的應(yīng)用,就好像這些應(yīng)用安裝在桌面上一樣。在應(yīng)用服務(wù)器后端還應(yīng)有一個(gè)存放文件和數(shù)據(jù)的存儲(chǔ)設(shè)備,用于數(shù)據(jù)的保存。
[0043]然而,如【背景技術(shù)】部分所述,隨著桌面云技術(shù)的廣泛應(yīng)用,怎樣在這樣的系統(tǒng)架構(gòu)中,以最少成本,來(lái)解決快速增加的數(shù)據(jù)保存問(wèn)題已經(jīng)成為一個(gè)亟待解決的問(wèn)題。如
【發(fā)明內(nèi)容】
部分所述,本發(fā)明獨(dú)創(chuàng)性的想到,將數(shù)據(jù)重刪技術(shù)應(yīng)用到例如桌面云系統(tǒng)的虛擬機(jī)鏡像文件處理系統(tǒng)中,并且對(duì)每個(gè)虛擬機(jī)的鏡像文件的各系統(tǒng)文件進(jìn)行重復(fù)數(shù)據(jù)刪除的處理??梢栽谧烂嬖葡到y(tǒng)架構(gòu)中的應(yīng)用服務(wù)器和存儲(chǔ)設(shè)備之間加入重復(fù)數(shù)據(jù)刪除技術(shù),也可以直接在應(yīng)用服務(wù)器端加入重復(fù)數(shù)據(jù)刪除技術(shù),能夠有效減少冗余數(shù)據(jù)的存儲(chǔ)。如圖1b所示,所謂重復(fù)數(shù)據(jù)刪除技術(shù),是通過(guò)刪除不同數(shù)據(jù)間重復(fù)的數(shù)據(jù),只保留非重復(fù)的唯一數(shù)據(jù)副本,達(dá)到提聞存儲(chǔ)效率的目的。[0044]以下將參考附圖詳細(xì)說(shuō)明本發(fā)明的各種示例性實(shí)施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實(shí)施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0045]在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說(shuō)明性”。這里作為“示例性”所說(shuō)明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
[0046]另外,為了更好的說(shuō)明本發(fā)明,在下文的【具體實(shí)施方式】中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒(méi)有某些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在一些實(shí)例中,對(duì)于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。
[0047]實(shí)施例1
[0048]圖2a示出根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)鏡像文件處理方法的流程圖。如圖2a所示,該虛擬機(jī)鏡像文件處理方法主要包括:
[0049]步驟S210、獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件,所述系統(tǒng)文件是指基于虛擬機(jī)鏡像的操作系統(tǒng)的文件,可以是操作系統(tǒng)本身所具有的文件,也可以是用戶在操作系統(tǒng)中進(jìn)行操作后所生成的文件如mp3文件、word文檔等;
[0050]步驟S220、獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件;
[0051]步驟S230、對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊;
[0052]步驟S240、判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中;
[0053]在步驟S240的判斷結(jié)果為是的情況下,不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中;在步驟S240的判斷結(jié)果為否的情況下,執(zhí)行步驟S250、將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。
[0054]這樣,通過(guò)判斷虛擬機(jī)鏡像文件的系統(tǒng)文件劃分后的邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,并在不存在的情況下,將該數(shù)據(jù)存儲(chǔ)至所述存儲(chǔ)系統(tǒng),也就是說(shuō)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的數(shù)據(jù)都是唯一的,最大限度的減少了虛擬機(jī)鏡像對(duì)物理存儲(chǔ)空間的需求。
[0055]在一種可能的實(shí)現(xiàn)方式中,如圖2b所示,步驟S240具體可以通過(guò)以下兩個(gè)步驟實(shí)現(xiàn):
[0056]步驟S241、生成所述每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋;
[0057]步驟S242、查找指紋庫(kù)中是否存在所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋,其中,所述指紋庫(kù)中保存有一個(gè)或多個(gè)指紋。
[0058]在步驟S242的查找結(jié)果為不存在的情況下,步驟S240的判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中,在執(zhí)行步驟S250之后,執(zhí)行步驟S260、更新地址索引表和所述指紋庫(kù),其中,所述地址索引表中包括所述邏輯塊的LBA (Logical BlockAddress,邏輯地址)與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA(Physical Block Address,物理地址)的映射關(guān)系。
[0059]在一種可能的實(shí)現(xiàn)方式中,所述指紋庫(kù)中還保存有所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋與該邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系、以及所述指紋被引用的次數(shù);其中,所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)系統(tǒng)中。
[0060]在一種可能的實(shí)現(xiàn)方式中,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋寫(xiě)入所述指紋庫(kù),將該指紋被引用的次數(shù)加一,并將該指紋與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述指紋庫(kù);更新所述地址索引表包括:將該指紋對(duì)應(yīng)的邏輯塊的LBA與數(shù)據(jù)的PBA的映射關(guān)系與入所述地址索引表。
[0061]在步驟S242的查找結(jié)果為存在的情況下,步驟S240的判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,執(zhí)行步驟S270、更新所述指紋庫(kù)。
[0062] 在一種可能的實(shí)現(xiàn)方式中,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋被引用的次數(shù)加一。
[0063]具體地,如果有虛擬機(jī)鏡像的系統(tǒng)文件需要備份時(shí),首先將該系統(tǒng)文件按預(yù)定規(guī)則例如按4KB的預(yù)定長(zhǎng)度劃分為一個(gè)或多個(gè)邏輯塊,然后將這些預(yù)定長(zhǎng)度的邏輯塊對(duì)應(yīng)的數(shù)據(jù)通過(guò)哈希函數(shù)哈希成相應(yīng)的指紋(Fingerprint,簡(jiǎn)稱FP),并在指紋庫(kù)中查找該指紋是否已經(jīng)存在,如果存在,則說(shuō)明這個(gè)指紋對(duì)應(yīng)的數(shù)據(jù)是重復(fù)的,不需要寫(xiě)到存儲(chǔ)系統(tǒng)中,如果不存在,則說(shuō)明這個(gè)指紋對(duì)應(yīng)的數(shù)據(jù)是不重復(fù)的,是一個(gè)新的數(shù)據(jù),需要將該數(shù)據(jù)存儲(chǔ)至存儲(chǔ)系統(tǒng)中。
[0064]之所以要生成數(shù)據(jù)的指紋,是因?yàn)橹讣y的比較速度遠(yuǎn)大于數(shù)據(jù)的比較速度,能夠減小數(shù)據(jù)的處理量。就像我們國(guó)家的公安系統(tǒng),每一個(gè)人都有一個(gè)身份證號(hào),只要通過(guò)比較身份證號(hào)就可以比較兩個(gè)人是否指的是同一個(gè)人,而不需要把兩個(gè)人進(jìn)行身體比較。
[0065]如前所述,指紋庫(kù)中包括數(shù)據(jù)的指紋、該指紋與數(shù)據(jù)的PBA的映射關(guān)系、以及該指紋被引用的次數(shù),如表1所示,指紋庫(kù)能夠標(biāo)識(shí)該指紋對(duì)應(yīng)的數(shù)據(jù)存放的物理地址,以及該指紋被多少個(gè)邏輯塊所引用。
[0066]表1指紋庫(kù)示意圖
[0067]
【權(quán)利要求】
1.一種虛擬機(jī)鏡像文件處理方法,其特征在于,包括: 獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件; 獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件; 對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊; 判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,如果是,則不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,如果否,則將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。
2.根據(jù)權(quán)利要求1所述的虛擬機(jī)鏡像文件處理方法,其特征在于,其應(yīng)用于虛擬機(jī)鏡像文件處理系統(tǒng)中,其中,所述虛擬機(jī)鏡像文件處理系統(tǒng)用于對(duì)接收到的多個(gè)所述虛擬機(jī)的鏡像文件進(jìn)行處理,其包括至少一個(gè)所述存儲(chǔ)系統(tǒng),至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件。
3.根據(jù)權(quán)利要求1或2所述的虛擬機(jī)鏡像文件處理方法,其特征在于,所述判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的 數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,包括: 生成所述每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋; 查找指紋庫(kù)中是否存在所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋,其中,所述指紋庫(kù)中保存有一個(gè)或多個(gè)指紋; 如果存在,則判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,如果不存在,則判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中。
4.根據(jù)權(quán)利要求3所述的虛擬機(jī)鏡像文件處理方法,其特征在于, 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù); 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中之后,還包括更新地址索引表和所述指紋庫(kù),所述地址索引表中包括所述邏輯塊的邏輯地址LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的物理地址PBA的映射關(guān)系。
5.根據(jù)權(quán)利要求4所述的虛擬機(jī)鏡像文件處理方法,其特征在于,所述指紋庫(kù)中還保存有所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋與該邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系、以及所述指紋被引用的次數(shù);其中,所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)系統(tǒng)中; 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋被引用的次數(shù)加一; 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù)包括:將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋寫(xiě)入所述指紋庫(kù),將該指紋被引用的次數(shù)加一,并將該指紋與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述指紋庫(kù);更新所述地址索引表包括:將該指紋對(duì)應(yīng)的邏輯塊的LBA與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述地址索引表。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的虛擬機(jī)鏡像文件處理方法,其特征在于,獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件之前,還包括: 生成虛擬機(jī)對(duì)應(yīng)的鏡像文件,并生成虛擬機(jī)ID表,其中,所述虛擬機(jī)ID表中包括虛擬機(jī)的唯一標(biāo)識(shí)ID、以及所述虛擬機(jī)中的系統(tǒng)文件順序。
7.根據(jù)權(quán)利要求6所述的虛擬機(jī)鏡像文件處理方法,其特征在于,所述虛擬機(jī)ID表還包括各系統(tǒng)文件的邏輯塊的存儲(chǔ)順序、以及所述各邏輯塊的LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系。
8.—種虛擬機(jī)鏡像文件處理裝置,其特征在于,包括: 第一獲取模塊,用于獲取虛擬機(jī)對(duì)應(yīng)的鏡像文件,其中,所述鏡像文件包括與之對(duì)應(yīng)的虛擬機(jī)中的多個(gè)系統(tǒng)文件; 第二獲取模塊,與所述第一獲取模塊連接,用于獲取所述鏡像文件中的所述多個(gè)系統(tǒng)文件; 劃分模塊,與所述第二獲取模塊連接,用于對(duì)每個(gè)系統(tǒng)文件按照預(yù)定規(guī)則劃分成一個(gè)或多個(gè)邏輯塊; 判斷模塊,與所述劃分模塊連接,用于判斷劃分后的每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)是否已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中; 處理模塊,與所述判斷模塊連接,用于在所述判斷模塊的判斷結(jié)果為是的情況下,不再將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中,在所述判斷模塊的判斷結(jié)果為否的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中。
9.根據(jù)權(quán)利要求8所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,其應(yīng)用于虛擬機(jī)鏡像文件處理系統(tǒng)中,其中,所述虛擬機(jī)鏡像文件處理系統(tǒng)用于對(duì)接收到的多個(gè)所述虛擬機(jī)鏡像文件進(jìn)行處理,其包括至少一個(gè)所述存儲(chǔ)系統(tǒng),至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件。
10.根據(jù)權(quán)利要求8或9所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,還包括: 指紋生成模塊,與所述劃分模塊連接,用于生成所述每個(gè)邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋; 指紋查找模塊,與所述指紋生成模塊連接,用于查找指紋庫(kù)中是否存在所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋,其中,所述指紋庫(kù)中保存有一個(gè)或多個(gè)指紋; 所述判斷模塊被配置為,在所述指紋查找模塊的查找結(jié)果為存在的情況下,判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中,在所述指紋查找模塊的查找結(jié)果為不存在的情況下,判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中。
11.根據(jù)權(quán)利要求10所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,所述處理模塊具體被配置為: 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,更新所述指紋庫(kù); 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將該數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)系統(tǒng)中之后,更新地址索引表和所述指紋庫(kù),所述地址索引表中包括所述邏輯塊的邏輯地址LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的物理地址PBA的映射關(guān)系。
12.根據(jù)權(quán)利要求11所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,所述指紋庫(kù)中還保存有所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋與該邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系、以及所述指紋被引用的次數(shù);其中,所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)系統(tǒng)中; 所述處理模塊具體還被配置為,在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋被引用的次數(shù)加一; 在所述判斷結(jié)果為所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)沒(méi)有存儲(chǔ)在存儲(chǔ)系統(tǒng)中的情況下,將所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的指紋寫(xiě)入所述指紋庫(kù),將該指紋被引用的次數(shù)加一,并將該指紋與該數(shù)據(jù)的PBA的映射關(guān)系寫(xiě)入所述指紋庫(kù);以及將該指紋對(duì)應(yīng)的邏輯塊的LBA與該數(shù)據(jù)的PBA的映射關(guān)系與入所述地址索引表。
13.根據(jù)權(quán)利要求8至12任一項(xiàng)所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,還包括: 鏡像文件生成模塊,與所述第一獲取模塊連接,用于生成虛擬機(jī)對(duì)應(yīng)的鏡像文件;虛擬機(jī)ID表生成模塊,與所述鏡像文件生成模塊連接,用于生成虛擬機(jī)ID表,其中,所述虛擬機(jī)ID表中包括虛擬機(jī)的唯一標(biāo)識(shí)ID、以及所述虛擬機(jī)中的系統(tǒng)文件順序。
14.根據(jù)權(quán)利要求13所述的虛擬機(jī)鏡像文件處理裝置,其特征在于,所述虛擬機(jī)ID表還包括各系統(tǒng)文件的邏輯塊的存儲(chǔ)順序、以及所述各邏輯塊的LBA與所述邏輯塊對(duì)應(yīng)的數(shù)據(jù)的PBA的映射關(guān)系。
15.—種虛擬機(jī)鏡像文件處理系統(tǒng),其特征在于,用于對(duì)接收到的多個(gè)虛擬機(jī)的鏡像文件進(jìn)行處理,至少兩個(gè)所述虛擬機(jī)的鏡像文件中有多個(gè)按相同預(yù)定順序排列的系統(tǒng)文件,包括: 如權(quán)利要求8至14中任一項(xiàng)所述的虛擬機(jī)鏡像文件處理裝置,用于對(duì)接收到的多個(gè)虛擬機(jī)的鏡像文件進(jìn)行處理; 至少一個(gè)存儲(chǔ)設(shè)備,與所述虛擬機(jī)鏡像文件處理裝置連接,用于存儲(chǔ)所述虛擬機(jī)鏡像文件處理裝置處理之后 的數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK103942292SQ201410146581
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】江云飛, 裘杰, 徐紅仙 申請(qǐng)人:華為技術(shù)有限公司