一種應用于云存儲重復數據刪除的數據塊合并方法
【專利摘要】本發(fā)明公開了一種應用于云存儲重復數據刪除的數據塊合并方法,它包括以下步驟:S1:將需要存儲的文件分割成一系列連續(xù)的子數據塊;S2:計算每個子數據塊的數字摘要,作為該子數據塊的編號;S3:設置子數據塊合并的最小合并塊數和最大合并塊數,對于新數據塊,先將其分組合并,最后將所有數據塊存儲;對于舊數據塊,建立該子數據塊與已存儲或已備份數據塊之間映射,然后對這些子數據塊進行分組合并,最后將合并后的數據塊予以刪除。本發(fā)明通過子數據塊合并減少了合并數據塊過程中的開銷,減少了調用哈希比對的頻率,加快了數據刪除的速度,提高了數據刪除系統(tǒng)的性能。
【專利說明】一種應用于云存儲重復數據刪除的數據塊合并方法
【技術領域】
[0001]本發(fā)明涉及一種應用于云存儲重復數據刪除的數據塊合并方法。
【背景技術】
[0002]云存儲是在云計算(cloud computing)概念上延伸和發(fā)展出來的一個新的概念,是指通過集群應用、網格技術或分布式文件系統(tǒng)等功能,將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協(xié)同工作,共同對外提供數據存儲和業(yè)務訪問功能的一個系統(tǒng)。當云計算系統(tǒng)運算和處理的核心是大量數據的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設備,那么云計算系統(tǒng)就轉變成為一個云存儲系統(tǒng),所以云存儲是一個以數據存儲和管理為核心的云計算系統(tǒng)。
[0003]隨著云計算的發(fā)展,云存儲技術通過集群應用、虛擬化技術、分布式文件系統(tǒng)等功能將網絡中大量各種不同類型的存儲設備集合起來協(xié)同工作,緩解了老式數據中心的存儲壓力。另外,重復數據刪除技術是一種縮減存儲空間減少網絡傳輸量的技術,隨著云的廣泛應用也勢必會發(fā)展應用于云存儲中,這兩種技術結合將會給IT存儲業(yè)帶來實際效益。
[0004]重復數據刪除技術是一種數據縮減技術,通常用于基于磁盤的備份系統(tǒng),旨在減少存儲系統(tǒng)中使用的存儲容量,它的工作方式是在某個時間周期內查找不同文件中不同位置的重復可變大小數據塊,重復的數據塊用指示符取代。高度冗余的數據集從數據重復刪除技術的獲益極大;用戶可以實現10比I至50比I的縮減比。而且,重復數據刪除技術可以允許用戶的不同站點之間進行高效、經濟的備份數據復制。
[0005]備份設備中總是充斥著大量的冗余數據。為了解決這個問題,節(jié)省更多空間,“重復刪除”技術便順理成章地成了人們關注的焦點。采用“重復刪除”技術可以將存儲的數據縮減為原來的1/20,從而讓出更多的備份空間,不僅可以使磁盤上的備份數據保存更長的時間,而且還可以節(jié)約離線存儲時所需的大量的帶寬。
[0006]重復數據刪除技術支持在已有的磁盤設備上存儲更多的備份數據。因此采用“重復數據刪除”技術可以增加保存?zhèn)浞輸祿臅r間,減少數據中心的消耗,降低成本。如果刪除重復數據后再通過WAN發(fā)送,那么就能夠節(jié)省大量的帶寬,并且可以取代磁帶實現網上離線備份。重復數據刪除技術唯一的缺點是備份速度變慢。
[0007]目前,執(zhí)行重復數據刪除的基本方法有三種。第一種是基于散列(hash)的方法,Data Domain、飛康、昆騰的DXi系列設備都是采用SHA-1,MD-5等類似的算法將這些進行備份的數據流斷成塊并且為每個數據塊生成一個散列(hash)。如果新數據塊的散列(hash)與備份設備上散列索引中的一個散列匹配,表明該數據已經被備份,設備只更新它的表,以說明在這個新位置上也存在該數據;第二種方法是基于內容識別的重復刪除,這種方法主要是識別記錄的數據格式。它采用內嵌在備份數據中的文件系統(tǒng)的元數據識別文件;然后與其數據存儲庫中的其它版本進行逐字節(jié)地比較,找到該版本與第一個已存儲的版本的不同之處并為這些不同的數據創(chuàng)建一個增量文件;第三種方法是DiligentTechnologies,它像基于散列(hash)的產品那樣將數據分成塊,并且采用自有的算法決定給定的數據塊是否與其它的相似,然后與相似塊中的數據進行逐字節(jié)的比較,以判斷該數據塊是否已經被備份。
[0008]按照部署位置的不同,重復數據刪除可分為源端重復數據刪除和目標端重復數據刪除。源端重復數據刪除是先刪除重復數據,再將數據傳到備份設備。目標端重復數據刪除是先將數據傳到備份設備,存儲時再刪除重復數據。
[0009]按照檢查重復數據的算法不同,重復數據刪除可以分為對象/文件級和塊級的重復數據刪除。對象級的重復數據刪除保證文件不重復。塊級重復數據刪除則將文件分成數據塊進行比較。
[0010]根據應用場合的不同,可以分為通用型重復數據刪除系統(tǒng)和專用型重復數據刪除系統(tǒng)。通用型重復數據刪除系統(tǒng)是指廠商提供通用的重復數據刪除產品,而不是和特定虛擬磁帶庫或備份設備相聯系。專用型重復數據刪除系統(tǒng)是和特定虛擬磁帶或備份設備相聯系,一般采取目標端重復數刪除方式。
[0011]隨著云計算日益發(fā)展,云存儲和備份服務漸漸地被工業(yè)界和學術界所重視。在云存儲中,數據量每天以指數型地增長,這也給數據中心的存儲系統(tǒng)和設備帶來了巨大的沖擊和挑戰(zhàn)。而數據刪除技術則能夠有效地減少存儲系統(tǒng)的負擔,提高網絡的帶寬利用率,節(jié)約消耗。
[0012]而如今的數據刪除技術多是針對各種大小的數據塊,并將各種子數據塊合并為大型數據塊從而來提高存儲容量和帶寬利用率,但是鮮有人考慮到合并數據塊過程中的開銷。
【發(fā)明內容】
[0013]本發(fā)明的目的在于克服現有技術的不足,提出一種應用于云存儲重復數據刪除的數據塊合并方法,能夠避免不必要的子數據塊合并,減少合并數據塊過程中的開銷,降低調用哈希比對的頻率,并且加快整個數據刪除程序的運行速度,提高整個數據刪除程序的性倉泛。
[0014]本發(fā)明的目的是通過以下技術方案來實現的:一種應用于云存儲重復數據刪除的數據塊合并方法,它包括以下步驟:
Si:使用數據塊分塊算法將需要存儲的文件分割成一系列連續(xù)的子數據塊;
S2:計算每個子數據塊的數字摘要,并將該數字摘要標記為該子數據塊的編號,該編號為判斷是否有同樣的子數據塊已經備份或者已經存儲的標志;
S3:設置子數據塊合并的最小合并塊數和最大合并塊數,隨后對已編號的子數據塊進行編號匹配查找,若沒有找到匹配的編號,表明該子數據塊之前未存儲或未備份,將該子數據塊標識為新數據塊,對于新數據塊,先將其按照最小合并塊數與最大合并塊數之間的任意數值進行分組合并,最后將所有已合并的新數據塊和剩余的數量小于最小合并塊數的散子數據塊存儲;若找到匹配的編號,表明該子數據塊已經存儲或已經備份,則將該子數據塊標識為舊數據塊,對于舊數據塊,建立該子數據塊與已存儲或已備份數據塊之間映射,然后按照I到最大合并塊數之間的任意數值對這些子數據塊進行分組合并,最后將合并后的數據塊予以刪除。
[0015]所述的數字摘要算法包括MD5或SHA系列算法。[0016]所述的最大合并塊數為8
所述的最小合并塊數為最大塊數的一半,即數值為4
所述的數據塊分塊算法為基于文件內容切分的CDC算法,CDC算法是一種變長分塊算法,它應用數據指紋將文件分割成長度大小不等的分塊,數據指紋即為數據塊的哈希值,相當于數據塊的編號。與定長分塊算法不同,它是基于文件內容進行數據塊切分的,因此數據塊大小是可變化的。算法執(zhí)行過程中,CDC使用一個固定大小的滑動窗口對文件數據計算數據指紋。如果指紋滿足某個條件,如當它的值模特定的整數等于預先設定的數時,則把窗口位置作為塊的邊界。CDC算法可能會出現病態(tài)現象,如指紋條件不能滿足,塊邊界不能確定,導致數據塊過大。FingerdifT算法對數據塊合并過程進行了優(yōu)化,規(guī)定了數據塊合并的最大塊數,雖然這種優(yōu)化策略能夠避免一定的合并過程,但是由于沒有限定數據塊合并的最小塊數,導致合并過程較多,開銷較大,影響了整體的重復數據刪除效率。算法實現中對數據塊的大小進行限定,根據目前實際運行情況以及常見的參數設置設定合并數據塊上限,并用數學關系將下限與設定的上限值關聯,以解決這種問題。
[0017]本發(fā)明的有益效果是:設置了合并子數據塊最小以及最大數量,通過避免不必要的子數據塊合并減少了合并數據塊過程中的開銷,減少了調用哈希比對的頻率,并且加快了整個數據刪除程序的運行速度,提高了整個數據刪除程序的性能。
【專利附圖】
【附圖說明】
[0018]圖1為本發(fā)明程序流程圖;
圖2為本發(fā)明所用到的CDC算法流程圖;
圖3為本發(fā)明所涉及的Fingerdiff算法分塊流程圖;
圖4為本發(fā)明所涉及的Fingerdiff算法合并數據塊流程圖;
圖5為本發(fā)明提出的MMCA算法分塊流程圖;
圖6為本發(fā)明所提出的MMCA算法合并數據塊流程圖。
【具體實施方式】
[0019]下面結合附圖進一步詳細描述本發(fā)明的技術方案,但本發(fā)明的保護范圍不局限于以下所述。
[0020]如圖1所示,一種應用于云存儲重復數據刪除的數據塊合并方法,它包括以下步驟:
Si:使用數據塊分塊算法將需要存儲的文件分割成一系列連續(xù)的子數據塊;
S2:計算每個子數據塊的數字摘要,并將該數字摘要標記為該子數據塊的編號,該編號為判斷是否有同樣的子數據塊已經備份或者已經存儲的標志;
S3:設置子數據塊合并的最小合并塊數和最大合并塊數,隨后對已編號的子數據塊進行編號匹配查找,若沒有找到匹配的編號,表明該子數據塊之前未存儲或未備份,將該子數據塊標識為新數據塊,對于新數據塊,先將其按照最小合并塊數與最大合并塊數之間的任意數值進行分組合并,最后將所有已合并的新數據塊和剩余的數量小于最小合并塊數的散子數據塊存儲;若找到匹配的編號,表明該子數據塊已經存儲或已經備份,則將該子數據塊標識為舊數據塊,對于舊數據塊,建立該子數據塊與已存儲或已備份數據塊之間映射,然后按照I到最大合并塊數之間的任意數值對這些子數據塊進行分組合并,最后將合并后的數據塊予以刪除。
[0021]所述的數字摘要算法包括MD5或SHA系列算法。
[0022]所述的最大合并塊數為8
所述的最小合并塊數為最大塊數的一半,即數值為4
所述的數據塊分塊算法為基于文件內容切分的CDC算法,CDC算法是一種變長分塊算法,它應用數據指紋將文件分割成長度大小不等的分塊,數據指紋即為數據塊的哈希值,相當于數據塊的編號。與定長分塊算法不同,它是基于文件內容進行數據塊切分的,因此數據塊大小是可變化的。算法執(zhí)行過程中,CDC使用一個固定大小的滑動窗口對文件數據計算數據指紋。如果指紋滿足某個條件,如當它的值模特定的整數等于預先設定的數時,則把窗口位置作為塊的邊界。CDC算法可能會出現病態(tài)現象,如指紋條件不能滿足,塊邊界不能確定,導致數據塊過大。算法實現中可以對數據塊的大小進行限定,設定上下限,以解決這種問題。根據實際部署運行情況以及效率分析,將數據塊合并過程中最大數據塊的數目設定為8時重復數據刪除的性能較好。同時將數據塊的最小合并數值設定為最大數值的一半,即為4。利用數學關系將最小、最大數據塊合并數目進行關聯,便于動態(tài)反映數據塊的合并過程,減少不必要的數據塊合并,從而降低數據塊合并開銷,提高云存儲重復數據刪除的整體性能和效率。
[0023]下面通過舉例闡述本方法與現有的Fingerdiff方法的區(qū)別。
[0024]Fingerdiff方法:如圖3所示,在得到目標文件后,首先使用CDC算法將文件分成了 16個連續(xù)的子數據塊,記為Cl到cl6,所有的子數據塊都被編號,且被標記為新數據塊,然后通過FingerdifT算法將16個子數據塊合并為2個大數據塊SCl和SC2,且均被標記為新數據塊,最后將這2個新數據塊都存入存儲系統(tǒng)。
[0025]如圖4所示,當之前的文件部分被修改之后(c3、c4、c7到clO均被修改),再次進入存儲系統(tǒng),依然先使用CDC算法將文件分成16個連續(xù)的子數據塊,記為Cl’到cl6’,與之前相比只有c3’、c4’、c7’到clO’被修改,然后通過Fingerdiff算法進行子數據塊合并,而這次合并之后產生了 5個大數據塊,5(:1’、502’、503’、504’、505’,其中由c3’和c4’合并而成的SC3’和由c7’到clO’合并而成的SC4’為修改過后的數據,被標記為新數據塊,其余被標記為舊數據塊,最后將新數據塊存入存儲系統(tǒng),將舊數據塊刪除。
[0026]本發(fā)明所提出的方法MMCA算法:假設所設定的最大子數據塊合并個數為8,最小子數據塊合并個數為4,最佳數據塊大小為1KB。
[0027]如圖5所示,在一個全新的文件要存入存儲系統(tǒng)時,操作流程與Fingerdiff算法是完全相同的,在此不再贅述。
[0028]如圖6所不,當文件部分被修改之后(所修改部分也與之前相同),再次存入存儲系統(tǒng),依然先使用⑶C算法將文件分成16個連續(xù)的子數據塊,記為Cl’到cl6’,然后通過MMCA算法進行子數據塊合并,可以看到合并之后產生了 4個大數據塊,SCI’、SC2’、SC3’、SC4’,而由于數量未達到最小數據塊合并個數,c3’和c4’未進行合并被完整地保留了下來,這里即是MMCA算法與Fingerdiff算法最大的不同,隨后c3’和c4’,SC4’被標記為新數據,存入存儲系統(tǒng),其余數據進行刪除。
[0029]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。
【權利要求】
1.一種應用于云存儲重復數據刪除的數據塊合并方法,其特征在于:它包括以下步驟: Si:使用數據塊分塊算法將需要存儲的文件分割成一系列連續(xù)的子數據塊; S2:計算每個子數據塊的數字摘要,并將該數字摘要標記為該子數據塊的編號,該編號為判斷是否有同樣的子數據塊已經備份或者已經存儲的標志; S3:設置子數據塊合并的最小合并塊數和最大合并塊數,隨后對已編號的子數據塊進行編號匹配查找,若沒有找到匹配的編號,表明該子數據塊之前未存儲或未備份,將該子數據塊標識為新數據塊,對于新數據塊,先將其按照最小合并塊數與最大合并塊數之間的任意數值進行分組合并,最后將所有已合并的新數據塊和剩余的數量小于最小合并塊數的散子數據塊存儲;若找到匹配的編號,表明該子數據塊已經存儲或已經備份,則將該子數據塊標識為舊數據塊,對于舊數據塊,建立該子數據塊與已存儲或已備份數據塊之間映射,然后按照I到最大合并塊數之間的任意數值對這些子數據塊進行分組合并,最后將合并后的數據塊予以刪除。
2.根據權利要求1所述的一種應用于云存儲重復數據刪除的數據塊合并方法,其特征在于:所述的數據塊分塊算法為基于文件內容切分的CDC算法。
3.根據權利要求1所述的一種應用于云存儲重復數據刪除的數據塊合并方法,其特征在于:所述的數字摘要算法包括MD5或SHA系列算法。
4.根據權利要求1所述的一種應用于云存儲重復數據刪除的數據塊合并方法,其特征在于:所述的最大合并塊數為8。
5.根據權利要求1所述的一種應用于云存儲重復數據刪除的數據塊合并方法,其特征在于:所述的最小合并塊數為最大塊數的一半,即數值為4。
【文檔編號】G06F17/30GK103914522SQ201410104776
【公開日】2014年7月9日 申請日期:2014年3月20日 優(yōu)先權日:2014年3月20日
【發(fā)明者】李玉軍, 羅四維, 侯孟書, 牛新征, 詹思瑜 申請人:電子科技大學