一種并行重復(fù)數(shù)據(jù)刪除方法
【專利摘要】本發(fā)明公開了一種并行重復(fù)數(shù)據(jù)刪除方法,包括以下步驟:客戶端先對要重刪的數(shù)據(jù)進行分塊,然后通過哈希函數(shù)計算出每個分塊的哈希指紋,然后把哈希指紋發(fā)送到不同的重刪服務(wù)器節(jié)點上進行指紋的查重工作。如果某個指紋經(jīng)過對比,確認是重復(fù)的指紋,則只用更新查詢服務(wù)器上元數(shù)據(jù)和重刪服務(wù)器節(jié)點上的指紋計數(shù)器。如果某個指紋經(jīng)過對比,確認是一個新的數(shù)據(jù)塊,則傳輸該數(shù)據(jù)塊到重刪服務(wù)器并且更新指紋庫和查詢服務(wù)器上的元數(shù)據(jù)。本發(fā)明具重刪節(jié)點可擴展性,可根據(jù)不同的需求擴展不同的節(jié)點來滿足性能的需求,而且利用了多節(jié)點之間的并行性,有效的提升了重刪系統(tǒng)的性能,提供高效可靠的服務(wù)。
【專利說明】一種并行重復(fù)數(shù)據(jù)刪除方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機存儲【技術(shù)領(lǐng)域】,更具體地,涉及一種并行重復(fù)數(shù)據(jù)刪除方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展和科技的進步,海量信息的保存對存儲系統(tǒng)提出了嚴峻的挑戰(zhàn),PB級別甚至EB級別的信息存儲對數(shù)據(jù)中心的壓力也越來越大。由于海量數(shù)據(jù)中有很多重復(fù)數(shù)據(jù),如果直接存儲這些重復(fù)數(shù)據(jù),不但會加重存儲系統(tǒng)的負擔,而且還會占用寶貴的網(wǎng)絡(luò)帶寬。重復(fù)數(shù)據(jù)刪除技術(shù)可以消除數(shù)據(jù)中的重復(fù)部分,只保留數(shù)據(jù)的唯一副本,從而減少了數(shù)據(jù)所需求的物理存儲空間,提高了存儲效率,減少傳輸重復(fù)數(shù)據(jù)對網(wǎng)絡(luò)帶寬的占用。
[0003]目前很多的重復(fù)數(shù)據(jù)刪除系統(tǒng)都是基于單節(jié)點的,雖然可以用高配置的服務(wù)器來一定程度上緩解重刪對性能的需求,但是對于海量數(shù)據(jù)的重刪來說,單節(jié)點系統(tǒng)會存在以下缺點:首先,重復(fù)數(shù)據(jù)刪除由于進行了分塊和哈希指紋計算,會占用CPU資源,而且哈希指紋存放在內(nèi)存中幾乎要占用全部的內(nèi)存資源,而且指紋庫不能完全放入內(nèi)存的時候還有一部分指紋庫必須放入磁盤,這樣查找比較哈希指紋的時候也會帶來瓶頸;其次,基于單節(jié)點的系統(tǒng)的擴展性有限,無法隨著系統(tǒng)規(guī)模的擴大而線性的擴展;第三,基于單節(jié)點的系統(tǒng)還會受限于網(wǎng)絡(luò)傳輸?shù)膸捪拗疲蛔詈?,該系統(tǒng)同時也犧牲了一些重復(fù)數(shù)據(jù)刪除率,沒有做至IJ100%重復(fù)數(shù)據(jù)刪除,使得重復(fù)數(shù)據(jù)刪除過后的數(shù)據(jù)中仍然有重復(fù)的數(shù)據(jù)。同時也犧牲了一些重刪率,沒有做到100%重刪,使得重刪過后的數(shù)據(jù)中仍然有重復(fù)的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種并行重復(fù)數(shù)據(jù)刪除方法,其目的在于,解決現(xiàn)有單節(jié)點重復(fù)數(shù)據(jù)系統(tǒng)中存在的重刪處理性能瓶頸、擴展性有限從而無法隨著系統(tǒng)規(guī)模的擴大而線性的擴展、受限于網(wǎng)絡(luò)傳輸?shù)膸捪拗?、不能實現(xiàn)100%重復(fù)數(shù)據(jù)刪除的技術(shù)問題。
[0005]為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種并行重復(fù)數(shù)據(jù)刪除方法,包括:
[0006]寫過程,包括以下步驟:
[0007](I)客戶端將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個數(shù)據(jù)塊ID ;
[0008](2)客戶端設(shè)置計數(shù)器i = I ;
[0009](3)客戶端利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值,根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID,并將〈第i個數(shù)據(jù)塊ID,哈希指紋值> 二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢;
[0010](4)數(shù)據(jù)節(jié)點在其指紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到步驟
(5),否則轉(zhuǎn)到步驟(8);
[0011](5)數(shù)據(jù)節(jié)點將〈第i個數(shù)據(jù)塊ID,PBA) > 二元組傳送到查詢節(jié)點;[0012](6)查詢節(jié)點根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組更新其地址映射表;
[0013](7)客戶端判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+1,并返回步驟(1);
[0014](8)客戶端將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA ;
[0015](9)查詢節(jié)點為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點;
[0016](10)數(shù)據(jù)節(jié)點根據(jù)〈哈希指紋值,PBA> 二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID, PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊;
[0017](11)客戶端根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點;
[0018](12)數(shù)據(jù)節(jié)點保存第i個數(shù)據(jù)塊,并返回步驟(7);
[0019]讀過程,包括以下步驟:
[0020]0- )客戶端向查詢節(jié)點發(fā)送地址映射表讀請求;
[0021](2’ )查詢節(jié)點根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端;
[0022](3’ )查詢節(jié)點設(shè)置計數(shù)器j = I ;
[0023](4’ )客戶端根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點;
[0024](5’)對應(yīng)的數(shù)據(jù)節(jié)點根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端;
[0025](6’ )客戶端判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回步驟(2’)。
[0026]優(yōu)選地,每個數(shù)據(jù)塊ID包括文件ID和LBA,且每個數(shù)據(jù)塊的大小是4KB至2MB。
[0027]優(yōu)選地,哈希算法包括SHA-1、SHA-2、以及MD5算法。
[0028]優(yōu)選地,步驟(3)是采用DHT算法對哈希指紋值進行計算,以得到節(jié)點ID。
[0029]按照本發(fā)明的另一方面,提供了一種并行重復(fù)數(shù)據(jù)刪除系統(tǒng),包括:
[0030]第一模塊,其設(shè)置于客戶端中,用于將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個數(shù)據(jù)塊ID ;
[0031]第二模塊,其設(shè)置于客戶端中,用于設(shè)置計數(shù)器i = I ;
[0032]第三模塊,其設(shè)置于客戶端中,用于利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值,根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID,并將〈第i個數(shù)據(jù)塊ID,哈希指紋值>二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢;
[0033]第四模塊, 其設(shè)置于數(shù)據(jù)節(jié)點中,用于在其指紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到第五模塊,否則轉(zhuǎn)到第八模塊;
[0034]第五模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于將〈第i個數(shù)據(jù)塊ID,PBA)> 二元組傳送到查詢節(jié)點;
[0035]第六模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組更新其地址映射表;
[0036]第七模塊,其設(shè)置于客戶端中,用于判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+Ι,并返回第一模塊;[0037]第八模塊,其設(shè)置于客戶端中,用于將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA ;
[0038]第九模塊,其設(shè)置于查詢節(jié)點中,用于為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點;
[0039]第十模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)〈哈希指紋值,PBA> 二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊;
[0040]第十一模塊,其設(shè)置于客戶端中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點;
[0041]第十二模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于保存第i個數(shù)據(jù)塊,并返回第七模塊;
[0042]第十三模塊,其設(shè)置于客戶端中,用于向查詢節(jié)點發(fā)送地址映射表讀請求;
[0043]第十四模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端;
[0044]第十五模塊,其設(shè)置于查詢節(jié)點中,用于設(shè)置計數(shù)器j = I ;
[0045]第十六模塊,其設(shè)置于客戶端中,用于根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點;
[0046]第十七模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端;
[0047]第十八模塊,其設(shè)置于客戶端中,用于判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回第十四模塊。
[0048]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
[0049](I)由于本發(fā)明采用了多臺數(shù)據(jù)節(jié)點實現(xiàn)并行性重復(fù)數(shù)據(jù)刪除,從而解決了單節(jié)點重復(fù)數(shù)據(jù)刪除系統(tǒng)中存在的處理性能瓶頸問題;
[0050](2)由于本發(fā)明數(shù)據(jù)節(jié)點的數(shù)量可以根據(jù)需要靈活配置,因此可以實現(xiàn)良好的可擴展性,以滿足不同的性能需求;
[0051](3)由于本發(fā)明的多數(shù)據(jù)節(jié)點擁有更大的總內(nèi)存容量、更多的CPU資源和更大的網(wǎng)絡(luò)傳輸總帶寬,因此能滿足大規(guī)模系統(tǒng)的需求,并克服網(wǎng)絡(luò)傳輸帶寬的瓶頸限制;
[0052](4)本發(fā)明采用多數(shù)據(jù)節(jié)點的并行性方式,不用犧牲復(fù)刪除率來保證性能,從而可以實現(xiàn)100%重復(fù)數(shù)據(jù)刪除,并將現(xiàn)有資源利用率最大化。
【專利附圖】
【附圖說明】
[0053]圖1是本發(fā)明并行重復(fù)數(shù)據(jù)刪除方法的系統(tǒng)架構(gòu)圖。
[0054]圖2是本發(fā)明并行重復(fù)數(shù)據(jù)刪除方法寫過程的流程圖。
[0055]圖3是本發(fā)明并行重復(fù)數(shù)據(jù)刪除方法讀過程的流程圖。
【具體實施方式】
[0056]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0057]如圖1所示,本發(fā)明的計算機集群包括多臺客戶端、查詢節(jié)點和多個數(shù)據(jù)節(jié)點,其中客戶端、查詢節(jié)點和數(shù)據(jù)節(jié)點通過交換機相連接,三者之間可以互相通信。
[0058]如圖2所示,本發(fā)明的并行重復(fù)數(shù)據(jù)刪除方法包括:
[0059]一、寫過程,包括以下步驟:
[0060](I)客戶端將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個塊ID (Block Id),每個塊ID包括文件ID和邏輯塊地址(Logical BlockAddress,簡稱LBA);具體而言,每個數(shù)據(jù)塊的大小是4KB至2MB,并可由客戶端自由設(shè)定;
[0061](2)客戶端設(shè)置計數(shù)器i = I ;
[0062](3)客戶端利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值;具體而言,本發(fā)明中的哈希算法包括SHA-1、SHA-2.MD5算法;
[0063](4)客戶端根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID ;具體而言,采用分布式哈希表(簡稱Distributed Hash Table,簡稱DHT)算法對哈希指紋值進行計算,得到的結(jié)果就是節(jié)點ID ;
[0064](5)客戶端將〈第i個數(shù)據(jù)塊ID,哈希指紋值> 二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢;
[0065](6)數(shù)據(jù)節(jié)點在其指 紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到步驟(7),否則轉(zhuǎn)到步驟(10);
[0066](7)數(shù)據(jù)節(jié)點將〈第i個數(shù)據(jù)塊ID,物理塊地址(Physical Block Address,簡稱PBA)> 二元組傳送到查詢節(jié)點;
[0067](8)查詢節(jié)點根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組更新其地址映射表;
[0068](9)客戶端判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+1,并返回步驟(1);
[0069](10)客戶端將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA ;
[0070](11)查詢節(jié)點為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點。
[0071](12)數(shù)據(jù)節(jié)點根據(jù)〈哈希指紋值,PBA> 二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID, PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊。;
[0072](13)客戶端根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點;
[0073](14)數(shù)據(jù)節(jié)點保存第i個數(shù)據(jù)塊,并返回步驟(9);
[0074]二、讀過程,包括以下步驟:
[0075]0- )客戶端向查詢節(jié)點發(fā)送地址映射表讀請求;
[0076](2’ )查詢節(jié)點根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端;
[0077](3’ )查詢節(jié)點設(shè)置計數(shù)器j = I ;
[0078](4’ )客戶端根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點;
[0079](5’)對應(yīng)的數(shù)據(jù)節(jié)點根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端;[0080](6’ )客戶端判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回步驟(2’)。
[0081]本發(fā)明的并行重復(fù)數(shù)據(jù)刪除系統(tǒng)包括:
[0082]第一模塊,其設(shè)置于客戶端中,用于將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個數(shù)據(jù)塊ID ;
[0083]第二模塊,其設(shè)置于客戶端中,用于設(shè)置計數(shù)器i = I ;
[0084]第三模塊,其設(shè)置于客戶端中,用于利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值,根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID,并將〈第i個數(shù)據(jù)塊ID,哈希指紋值>二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢;
[0085]第四模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于在其指紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到第五模塊,否則轉(zhuǎn)到第八模塊;
[0086]第五模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于將〈第i個數(shù)據(jù)塊ID,PBA)> 二元組傳送到查詢節(jié)點;
[0087]第六模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組更新其地址映射表;
[0088]第七模塊,其設(shè)置于客戶端中,用于判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+Ι,并返回第一模塊;
[0089]第八模塊,其設(shè)置于客戶端中,用于將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA ;
[0090]第九模塊,其設(shè)置于查詢節(jié)點中,用于為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點;
[0091]第十模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)〈哈希指紋值,PBA> 二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊;
[0092]第十一模塊,其設(shè)置于客戶端中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點;
[0093]第十二模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于保存第i個數(shù)據(jù)塊,并返回第七模塊;
[0094]第十三模塊,其設(shè)置于客戶端中,用于向查詢節(jié)點發(fā)送地址映射表讀請求;
[0095]第十四模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端;
[0096]第十五模塊,其設(shè)置于查詢節(jié)點中,用于設(shè)置計數(shù)器j = I ;
[0097]第十六模塊,其設(shè)置于客戶端中,用于根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點;
[0098]第十七模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端;
[0099]第十八模塊,其設(shè)置于客戶端中,用于判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回第十四模塊。
[0100]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種并行重復(fù)數(shù)據(jù)刪除方法,其特征在于,包括: 寫過程,包括以下步驟: (1)客戶端將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個數(shù)據(jù)塊ID ; (2)客戶端設(shè)置計數(shù)器i= I ; (3)客戶端利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值,根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID,并將〈第i個數(shù)據(jù)塊ID,哈希指紋值> 二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢; (4)數(shù)據(jù)節(jié)點在其指紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到步驟(5),否則轉(zhuǎn)到步驟(8); (5)數(shù)據(jù)節(jié)點將〈第i個數(shù)據(jù)塊ID,PBA)> 二元組傳送到查詢節(jié)點; (6)查詢節(jié)點根據(jù)〈第i個數(shù)據(jù)塊ID,PBA>二元組更新其地址映射表; (7)客戶端判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+Ι,并返回步驟(1); (8)客戶端將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA; (9)查詢節(jié)點為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點; (10)數(shù)據(jù)節(jié)點根據(jù)〈哈希指紋值,PBA>二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊; (11)客戶端根據(jù)〈第i個數(shù)據(jù)塊ID,PBA>二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點; (12)數(shù)據(jù)節(jié)點保存第i個數(shù)據(jù)塊,并返回步驟(7); 讀過程,包括以下步驟: (I’)客戶端向查詢節(jié)點發(fā)送地址映射表讀請求; (2’ )查詢節(jié)點根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端; (3’ )查詢節(jié)點設(shè)置計數(shù)器j = I ; (4’ )客戶端根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點; (5’)對應(yīng)的數(shù)據(jù)節(jié)點根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端; (6’ )客戶端判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回步驟(2’)。
2.根據(jù)權(quán)利要求1所述的并行重復(fù)數(shù)據(jù)刪除方法,其特征在于,每個數(shù)據(jù)塊ID包括文件ID和LBA,且每個數(shù)據(jù)塊的大小是4KB至2MB。
3.根據(jù)權(quán)利要求1所述的并行重復(fù)數(shù)據(jù)刪除方法,其特征在于,哈希算法包括SHA-1、SHA-2、以及MD5算法。
4.根據(jù)權(quán)利要求1所述的并行重復(fù)數(shù)據(jù)刪除方法,其特征在于,步驟(3)是采用DHT算法對哈希指紋值進行計算,以得到節(jié)點ID。
5.一種并行重復(fù)數(shù)據(jù)刪除系統(tǒng),其特征在于,包括: 第一模塊,其設(shè)置于客戶端中,用于將虛擬機鏡像文件劃分為多個相同大小的數(shù)據(jù)塊,并且為每一個數(shù)據(jù)塊分配一個數(shù)據(jù)塊ID ; 第二模塊,其設(shè)置于客戶端中,用于設(shè)置計數(shù)器i = 1 ; 第三模塊,其設(shè)置于客戶端中,用于利用哈希算法對第i個數(shù)據(jù)塊進行處理,以生成哈希指紋值,根據(jù)哈希指紋值生成對應(yīng)的節(jié)點ID,并將〈第i個數(shù)據(jù)塊ID,哈希指紋值> 二元組傳送到哈希指紋值對應(yīng)的節(jié)點ID所對應(yīng)的數(shù)據(jù)節(jié)點進行哈希指紋查詢; 第四模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于在其指紋庫中查詢該哈希指紋值是否命中,如果命中則轉(zhuǎn)到第五模塊,否則轉(zhuǎn)到第八模塊; 第五模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于將〈第i個數(shù)據(jù)塊ID,PBA)> 二元組傳送到查詢節(jié)點; 第六模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組更新其地址映射表; 第七模塊,其設(shè) 置于客戶端中,用于判斷是否虛擬機鏡像文件中的所有數(shù)據(jù)塊都已處理完畢,如果是,則過程結(jié)束,否則設(shè)置i = i+Ι,并返回第一模塊; 第八模塊,其設(shè)置于客戶端中,用于將第i個數(shù)據(jù)塊ID傳送到查詢節(jié)點,并向該查詢節(jié)點請求分配新的PBA ; 第九模塊,其設(shè)置于查詢節(jié)點中,用于為第i個數(shù)據(jù)塊分配新的PBA,更新其地址映射表,并將〈哈希指紋值,PBA> 二元組發(fā)回到數(shù)據(jù)節(jié)點; 第十模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)〈哈希指紋值,PBA> 二元組更新其指紋庫,將〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)給客戶端,并通知客戶端發(fā)送第i個數(shù)據(jù)塊; 第十一模塊,其設(shè)置于客戶端中,用于根據(jù)〈第i個數(shù)據(jù)塊ID,PBA> 二元組發(fā)送第i個數(shù)據(jù)塊到數(shù)據(jù)節(jié)點; 第十二模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于保存第i個數(shù)據(jù)塊,并返回第七模塊; 第十三模塊,其設(shè)置于客戶端中,用于向查詢節(jié)點發(fā)送地址映射表讀請求; 第十四模塊,其設(shè)置于查詢節(jié)點中,用于根據(jù)地址映射表讀請求將其地址映射表發(fā)送到客戶端; 第十五模塊,其設(shè)置于查詢節(jié)點中,用于設(shè)置計數(shù)器j = I ; 第十六模塊,其設(shè)置于客戶端中,用于根據(jù)地址映射表將虛擬機鏡像文件的第j個數(shù)據(jù)塊的PBA發(fā)送到對應(yīng)的數(shù)據(jù)節(jié)點; 第十七模塊,其設(shè)置于數(shù)據(jù)節(jié)點中,用于根據(jù)PBA在其指紋庫中讀取對應(yīng)的第j個數(shù)據(jù)塊,并將該數(shù)據(jù)塊發(fā)回客戶端; 第十八模塊,其設(shè)置于客戶端中,用于判斷是否虛擬機鏡像文件的所有數(shù)據(jù)塊均處理完畢,若是則過程結(jié)束,否則設(shè)置j = j+1,并返回第十四模塊。
【文檔編號】G06F17/30GK103970875SQ201410204599
【公開日】2014年8月6日 申請日期:2014年5月15日 優(yōu)先權(quán)日:2014年5月15日
【發(fā)明者】曹強, 萬勝剛, 林川, 黃國強, 謝長生 申請人:華中科技大學