亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于數(shù)據(jù)去重系統(tǒng)中的碎片重寫方法

文檔序號:6509291閱讀:530來源:國知局
一種用于數(shù)據(jù)去重系統(tǒng)中的碎片重寫方法
【專利摘要】本發(fā)明公開了一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其在數(shù)據(jù)去重中增加一個緩存作為重寫感知緩存,該重寫感知緩存中的數(shù)據(jù)項為數(shù)據(jù)塊所引用的容器標(biāo)識(Container?ID),對判定為數(shù)據(jù)碎片的數(shù)據(jù)塊,如果其引用的容器標(biāo)識(Container?ID)已存儲在該重寫感知緩存中,則此數(shù)據(jù)無需重寫,否則重寫該數(shù)據(jù)碎片。本發(fā)明的方法是在數(shù)據(jù)去重的過程中增加了一個與數(shù)據(jù)讀時同樣大小且緩存策略相同的緩存,避免了不必要的重復(fù)數(shù)據(jù)塊的重寫,克服了現(xiàn)有算法存在的缺陷。相比與現(xiàn)有的去碎片算法,一是改善了因數(shù)據(jù)碎片對讀性能造成的影響,通過重寫數(shù)據(jù)碎片來提高讀性能;二是在提高讀性能的同時保證了更少的去重率損失。
【專利說明】—種用于數(shù)據(jù)去重系統(tǒng)中的碎片重寫方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機信息存儲領(lǐng)域,具體涉及一種基于數(shù)據(jù)去重技術(shù)系統(tǒng)的碎片重寫方法。
【背景技術(shù)】
[0002]數(shù)據(jù)去重技術(shù)(重復(fù)數(shù)據(jù)刪除技術(shù))作為一種能夠識別和消除冗余數(shù)據(jù)、只存儲單一副本數(shù)據(jù)的縮減技術(shù),在備份存儲系統(tǒng)、歸檔存儲系統(tǒng)、甚至文件系統(tǒng)中都具有廣泛應(yīng)用。例如,使用數(shù)據(jù)去重技術(shù)在備份存儲系統(tǒng)、歸檔存儲系統(tǒng)中可以消除80%?90%的冗余數(shù)據(jù),在虛擬機備份中可消除高達80%的冗余數(shù)據(jù),在文件系統(tǒng)中可以節(jié)省3/4的文件空間開銷以及87%的備份鏡像開銷。
[0003]然而,在基于數(shù)據(jù)去重的系統(tǒng)中,后續(xù)存儲的文件的數(shù)據(jù)塊共享之前存儲的文件的數(shù)據(jù)塊,從而數(shù)據(jù)塊被分散而非連續(xù)地存儲在磁盤上,形成大量的分散存儲碎片,對系統(tǒng)的讀性能造成重大影響。隨著存儲文件的數(shù)量的增加,后續(xù)文件的數(shù)據(jù)碎片化趨于嚴重,從而讀性能也逐漸下降。在讀數(shù)據(jù)時,盡管增大讀緩存大小可以相對提高讀性能,但提高的程度有限,增大讀緩存大小不能從根本上解決問題。比如在基于數(shù)據(jù)去重技術(shù)的備份系統(tǒng)中最后存儲的文件(版本)的數(shù)據(jù)讀(恢復(fù))性能比第一個文件(版本)降低了約10倍甚至更多,這將嚴重影響系統(tǒng)的可用性,尤其在災(zāi)難恢復(fù)的時候。由數(shù)據(jù)去重引起的數(shù)據(jù)碎片不像磁盤碎片可以通過后臺整理而重新保證數(shù)據(jù)的連續(xù)性。因數(shù)據(jù)塊之間存在共享,重新遷移數(shù)據(jù)塊將涉及到索引更新等更復(fù)雜的問題,所以數(shù)據(jù)去重系統(tǒng)中的讀性能是一個急需解決的問題。
[0004]現(xiàn)有一些碎片重寫算法,通過在數(shù)據(jù)去重的過程中重寫一定的數(shù)據(jù)碎片來解決數(shù)據(jù)的讀性能問題。例如,CFL(Chunk Fragmentation Level)算法通過判定相鄰數(shù)據(jù)塊的大小之和與一個容器(Container:—個在內(nèi)存中的緩存,作為磁盤讀寫的一種單位)的比值,如果小于一定的閥值則重寫;CBR(Context-based rewriting)算法通過比較固定長度的數(shù)據(jù)流內(nèi)容(比如5MB)與其對應(yīng)固定長度的磁盤內(nèi)容的相似性,如果其比值小于一定的閥值則重寫,一般是重寫碎片數(shù)據(jù)總量的5%。Capping是一個相對簡單的策略,對每固定長度的數(shù)據(jù)流選擇固定大小的Container個數(shù),對其中引用Container次數(shù)最少的數(shù)據(jù)塊進行重與。
[0005]以上三種碎片重寫算法都是通過重寫數(shù)據(jù)碎片并犧牲一定的去重率來提高讀性能,但是它們共同的缺陷是:沒有考慮讀緩存對碎片的影響,重寫已被預(yù)取到讀緩存的數(shù)據(jù)碎片會同時降低讀性能和去重率。

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

[0006]本發(fā)明的目的在于針對現(xiàn)有技術(shù)的以上缺陷或改進需求,提出一種優(yōu)化的碎片重寫方法,其對判定出為碎片的數(shù)據(jù)塊進行選擇性重寫,由此減少不必要的碎片數(shù)據(jù)的重寫,解決目前數(shù)據(jù)去重系統(tǒng)中存在的碎片大量重寫而帶來的去重率降低與讀性能降低的技術(shù)問題,相比與現(xiàn)有的碎片重寫算法,具有更高的讀性能和去重率。
[0007]為實現(xiàn)本發(fā)明目的,按照本發(fā)明的一個方面,提供一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,在數(shù)據(jù)去重中增加一個緩存作為重寫感知緩存,該重寫感知緩存中的數(shù)據(jù)項為數(shù)據(jù)塊所引用的容器標(biāo)識(Container ID),對判定為數(shù)據(jù)碎片的數(shù)據(jù)塊,如果其引用的容器標(biāo)識(Container ID)已存儲在該重寫感知緩存中,則此數(shù)據(jù)無需重寫,否則重寫該數(shù)據(jù)碎片。
[0008]作為本發(fā)明的進一步優(yōu)選,所述的重寫感知緩存為與讀數(shù)據(jù)或恢復(fù)數(shù)據(jù)時同樣大小且采用相同緩存策略的緩存。其中,所述大小是指緩存項的數(shù)量,而不是內(nèi)存空間開銷。
[0009]作為本發(fā)明的進一步優(yōu)選,所述的重寫感知緩存和讀(恢復(fù))數(shù)據(jù)緩存為LRU替換策略的緩存。
[0010]作為本發(fā)明的進一步優(yōu)選,該增加的緩存為模擬恢復(fù)緩存行為的緩存。
[0011]按照本發(fā)明的另一個方面,提供一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,通過增加一個用于存儲數(shù)據(jù)塊引用的容器標(biāo)識(Container ID)的重寫感知緩存,來實現(xiàn)高性能數(shù)據(jù)重寫,其特征在于,該方法包括如下步驟:
[0012](I)對新來的數(shù)據(jù)塊進行去重判斷,如果不是重復(fù)數(shù)據(jù),則存儲此數(shù)據(jù)塊,否則執(zhí)行步驟⑵;
[0013](2)判斷當(dāng)前數(shù)據(jù)塊是否為一個數(shù)據(jù)碎片,如果不是則不用重寫,否則執(zhí)行步驟
(3);
[0014](3)判斷當(dāng)前數(shù)據(jù)碎片是否應(yīng)當(dāng)重寫,即如果當(dāng)前數(shù)據(jù)碎片引用的容器標(biāo)識(Container ID)存儲在該重寫感知緩存中,則不用重寫,否則將當(dāng)前數(shù)據(jù)碎片作為新數(shù)據(jù)重寫。
[0015]作為本發(fā)明的進一步優(yōu)選,所述的重寫感知緩存為與讀數(shù)據(jù)或恢復(fù)數(shù)據(jù)時同樣大小且相同緩存策略的緩存,大小是指緩存項的個數(shù)。
[0016]作為本發(fā)明的進一步優(yōu)選,所述的重寫感知緩存和讀數(shù)據(jù)或恢復(fù)數(shù)據(jù)緩存為LRU緩存。
[0017]作為本發(fā)明的進一步優(yōu)選,所述判斷當(dāng)前數(shù)據(jù)塊是否為一個數(shù)據(jù)碎片優(yōu)選可以采用CFL算法、CBR算法或Capping算法實現(xiàn)。
[0018]按照本發(fā)明的又一個方面,提供一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其基于CFL算法進行數(shù)據(jù)碎片判斷并對該所述數(shù)據(jù)碎片進行選擇性重寫,從而實現(xiàn)高性能的碎片重寫,其特征在于,該方法具體包括:
[0019](I)對新來的數(shù)據(jù)塊,首先檢查是否是重復(fù)數(shù)據(jù)塊,也就是看是否存在于DDFS-1ike指紋庫中,如果不存在則直接作為新數(shù)據(jù)塊寫入Container,然后處理下一個數(shù)據(jù)塊,否則轉(zhuǎn)為步驟(2);
[0020](2)對于重復(fù)的數(shù)據(jù)塊,監(jiān)控器判斷當(dāng)前CFL值,如果CFL值小于第一閾值(LWM)則轉(zhuǎn)入步驟(4),如果大于第二閾值(HWM)則轉(zhuǎn)入步驟(3),否則采用之前的去重方法轉(zhuǎn)入相應(yīng)的步驟(3)或(4);
[0021](3)采用一般去重方法進行去重,即數(shù)據(jù)塊不被存儲,僅存儲相應(yīng)的數(shù)據(jù)塊指紋,然后轉(zhuǎn)入步驟(I);
[0022](4)采用選擇性去重方法進行去重,即判斷當(dāng)前數(shù)據(jù)塊所引用的容器標(biāo)識(Container ID)與用于暫存重復(fù)數(shù)據(jù)塊的臨時容器中的數(shù)據(jù)塊是否有相同的容器標(biāo)識(Container ID),如果是則暫時保存此數(shù)據(jù)塊到臨時容器中,轉(zhuǎn)入步驟(I),否則轉(zhuǎn)入步驟
(5);
[0023](5)判斷當(dāng)前臨時容器的中所有數(shù)據(jù)塊大小之和與一個容器(Container)大小的比值,如果比值不小于重寫閾值,則不需要重寫,清除臨時容器中的所有數(shù)據(jù),轉(zhuǎn)入步驟(I),如果比值小于該重寫閾值,即作為數(shù)據(jù)碎片,轉(zhuǎn)入步驟(6);
[0024](6)判斷數(shù)據(jù)塊是否在重寫感知緩存隊列中,如果存在則不需要重寫,更新CFL值和重寫感知緩存隊列,轉(zhuǎn)入步驟(I),否則轉(zhuǎn)入步驟(7);
[0025](7)重寫臨時容器中的所有數(shù)據(jù)塊,更新CFL值和重寫感知緩存隊列,使最新的容器標(biāo)識進入該重寫感知緩存隊列。
[0026]本發(fā)明方法根據(jù)實際應(yīng)用環(huán)境中數(shù)據(jù)的寫順序與數(shù)據(jù)的讀順序是一致的特性而提出,在數(shù)據(jù)去重過程中模擬一個與讀數(shù)據(jù)時同樣大小的緩存,對判定為數(shù)據(jù)碎片的數(shù)據(jù)塊,進一步判斷數(shù)據(jù)碎片是否在CAR緩存中,重寫那些在CAR緩存中未命中的數(shù)據(jù)碎片,避免重寫那些在CAR緩存中已命中的數(shù)據(jù)碎片。
[0027]總體而言,現(xiàn)有的方法在數(shù)據(jù)去重過程中對重復(fù)的數(shù)據(jù)塊進行判斷,如果在一定范圍的數(shù)據(jù)流中有很少的數(shù)據(jù)塊引用已存儲的數(shù)據(jù)塊,就判定這些數(shù)據(jù)塊為數(shù)據(jù)碎片,進而重寫這些數(shù)據(jù)碎片。重寫數(shù)據(jù)塊,意味著存儲系統(tǒng)中一個數(shù)據(jù)塊可能對應(yīng)2個或更多的副本,但是,在一個利用緩存讀數(shù)據(jù)的環(huán)境下,這些重寫的數(shù)據(jù)碎片可能已經(jīng)被預(yù)取到緩存中了,重寫這些數(shù)據(jù)碎片不僅沒有相應(yīng)的提高讀性能,反而降低了讀性能,因為這些數(shù)據(jù)碎片還要從磁盤上讀取。另外,重寫更多的數(shù)據(jù)碎片意味著降低更多的去重率。本發(fā)明的方法中在數(shù)據(jù)去重的過程中增加了一個與數(shù)據(jù)讀時同樣大小的LRU緩存,避免了不必要的重復(fù)數(shù)據(jù)塊的重寫,克服了現(xiàn)有算法存在的缺陷。相比與現(xiàn)有的去碎片算法,一是改善了因數(shù)據(jù)碎片對讀性能造成的影響,通過重寫數(shù)據(jù)碎片來提高讀或恢復(fù)性能;二是避免了很多數(shù)據(jù)碎片的不必要重寫,減少了數(shù)據(jù)碎片重寫的數(shù)量,在提高讀性能的同時保證了更少的去重率損失,提聞了與吞吐率。
【專利附圖】

【附圖說明】
[0028]圖1為本發(fā)明方法示意圖;
[0029]圖2為本發(fā)明實施例的示意圖;
[0030]圖3為本發(fā)明實施例的方法的流程示意圖。
【具體實施方式】
[0031]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,對本發(fā)明進行進一步詳細說明。此處說明若涉及到具體實例時僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0032]本發(fā)明的方法可應(yīng)用于基于數(shù)據(jù)去重技術(shù)的備份存儲系統(tǒng)、歸檔存儲系統(tǒng)和文件系統(tǒng)等應(yīng)用數(shù)據(jù)去重技術(shù)的系統(tǒng)中。為了描述方便,本實施例中優(yōu)選以應(yīng)用數(shù)據(jù)去重技術(shù)的備份存儲系統(tǒng)對本發(fā)明的方法進行描述,但本發(fā)明中的方法并不限定于上述備份存儲系統(tǒng)中,也適用于諸如歸檔存儲系統(tǒng)、文件系統(tǒng)等具有數(shù)據(jù)的寫順序與讀順序具有一致性的系統(tǒng)和方法中。[0033]實際應(yīng)用環(huán)境中,基于數(shù)據(jù)去重技術(shù)的備份系統(tǒng)有如下特征,底層采用容器(Container)存儲,默認為4MB大小,可以根據(jù)實際需要配置。一個典型的備份過程是,首先對一個數(shù)據(jù)流或文件通過Rabin指紋分塊,按照一定的安全哈希摘要算法(MD5,SHAl等)對每個數(shù)據(jù)塊計算出一個信息摘要(指紋);然后在指紋庫中進行查找,如果存在,說明是重復(fù)數(shù)據(jù),則保存其指針引用;如果不存在則說明是新數(shù)據(jù),將數(shù)據(jù)塊寫入一個事先生成的Container中(如果沒有則創(chuàng)建),如果Container滿,則寫入磁盤,再創(chuàng)建一個新的Container進行存儲,最后保存文件的元數(shù)據(jù)信息(包括屬性信息,文件指紋序列);對于每個新數(shù)據(jù)塊,都要在指紋庫(存儲所有唯一的指紋)中添加其數(shù)據(jù)塊指紋信息。恢復(fù)時采用LRU緩存替換策略,緩存的數(shù)據(jù)項是Container。首先讀取文件屬性數(shù)據(jù)信息,按序讀取指紋序列,根據(jù)指紋在LRU緩存中查找,如果沒有命中,則從指紋庫中讀取相應(yīng)的Container ID,并把相應(yīng)的Container從磁盤讀到LRU緩存,如果緩存滿則替換;如果命中,則直接從緩存中讀取。由于內(nèi)存的讀取速度遠遠大于磁盤速度,所以從磁盤讀取Container的次數(shù)對恢復(fù)性能占主導(dǎo)因素。由于備份是恢復(fù)的逆過程,數(shù)據(jù)的寫與讀順序是一致的,在備份過程中,重寫一些數(shù)據(jù)碎片可以相應(yīng)提高恢復(fù)性能,然而從數(shù)據(jù)恢復(fù)的角度考慮,一個被判定為數(shù)據(jù)碎片的數(shù)據(jù)塊,如果已經(jīng)存在于恢復(fù)時的LRU緩存中,則能夠在緩存中命中,而不需要重新加載一個新的Container。一方面,如果重寫這些已經(jīng)在LRU緩存中命中的數(shù)據(jù)塊,降低了去重率,因為重寫了更多的重復(fù)數(shù)據(jù)塊;另一方面,它沒有提高恢復(fù)性能反而降低了恢復(fù)性能,因為重寫這些重復(fù)數(shù)據(jù)塊,需要存儲于更多的Container中,導(dǎo)致恢復(fù)時需要讀取更多的Container,也就是需要更多的磁盤10,使恢復(fù)時的LRU命中率下降。
[0034]本發(fā)明的方法在備份過程中采用一個與恢復(fù)時同樣緩存策略的且大小相同的重寫感知緩存,大小是指緩存項的個數(shù),優(yōu)選LRU緩存,此處的感知LRU緩存不同于恢復(fù)時的LRU緩存,它僅僅緩存Container ID而不是整個Container,幾乎沒有內(nèi)存開銷。對于判定為重復(fù)數(shù)據(jù)的數(shù)據(jù)塊如果其引用的Container ID在感知緩存(CAR緩存)中,即此數(shù)據(jù)塊命中,則此數(shù)據(jù)不需要重寫,否則需要重寫。
[0035]圖1為本發(fā)明實施的示意圖,其具體過程如下:
[0036](I)首先對新來的數(shù)據(jù)塊進行去重判斷,如果不是重復(fù)數(shù)據(jù),則存儲此數(shù)據(jù)塊,否則執(zhí)行步驟⑵;
[0037](2)判斷當(dāng)前數(shù)據(jù)塊是否為一個數(shù)據(jù)碎片,如果不是則不用重寫,否則執(zhí)行步驟(3)。其中,判斷數(shù)據(jù)碎片的過程可以利用現(xiàn)有的碎片重寫算法進行,例如CFL、CBR或Capping 等等。
[0038](3)判斷當(dāng)前數(shù)據(jù)碎片是否應(yīng)當(dāng)重寫,如果當(dāng)前數(shù)據(jù)塊已經(jīng)在CAR緩存中,則不用重寫,否則把當(dāng)前數(shù)據(jù)塊作為新數(shù)據(jù)重寫。
[0039]圖2為本發(fā)明以CFL算法為基礎(chǔ)的碎片重寫方法的具體實施例的示意圖。該實施例中優(yōu)選采用類似DDFS (Data Domain File System系統(tǒng)中采用的一種以容器為單位進行讀寫磁盤的存儲方式)一DDFS-1ike存儲所有的唯一指紋,對新來的數(shù)據(jù)塊進行去重判斷。
[0040]采用CAR緩存方法的監(jiān)控器(稱為CARctl監(jiān)控器)會監(jiān)控當(dāng)前CFL值進而選擇一般去重方法或選擇性去重方法來處理當(dāng)前的數(shù)據(jù)塊。其中CFL=備份數(shù)據(jù)總大小/Container大小(比如4MB)/恢復(fù)數(shù)據(jù)時需要從磁盤讀取的Container數(shù)量,CFL用于衡量一定的恢復(fù)性能,CFL=L表示恢復(fù)性能與第一個版本一樣,而第一個版本數(shù)據(jù)順序存儲,具有最好的讀取性能。CFL值越小,恢復(fù)性能越低,CFL=O意味著其恢復(fù)性能接近0,CFL取值在O?I之間。CAR策略使用LWM(Low Water Mark)和HWM(High Water Mark)作為切換去重方法的閥值,上述閾值可以根據(jù)實際需要事先設(shè)定。系統(tǒng)初始條件下,CFL=LWM,采用一般去重方法,隨著備份的進行與CFL的更新,對CFL進行判斷,如果當(dāng)前的CFL值小于LWM,則CAR監(jiān)控器選擇選用選擇性去重方法方式處理后續(xù)的數(shù)據(jù)塊;如果當(dāng)前的CFL值大于HWM,則選擇一般去重方式處理后續(xù)的數(shù)據(jù)塊,否則繼續(xù)采用之前的去重方法,即不進行去重方法切換,之前如果是一般去重方法,則繼續(xù)采用一般去重方法,如果是選擇性去重方法,則繼續(xù)采用該選擇性去重方法。
[0041]選擇性去重方法主要用于重寫數(shù)據(jù)碎片,是提升恢復(fù)性能的主要因素。首先把判斷為重復(fù)數(shù)據(jù)的數(shù)據(jù)塊存入一個臨時Container中,作為候選的數(shù)據(jù)塊,如果下一個數(shù)據(jù)塊與此數(shù)據(jù)塊引用相同的Container ID,則也存入此臨時Container中,繼續(xù)處理直到遇到一個引用不同Container ID的數(shù)據(jù)塊,此時判斷臨時Container中所有數(shù)據(jù)塊大小之和與一個Container大小(比如4MB)的比例,如果小于一定重寫閥值(用P%表示),則重寫這個臨時Container中的所有數(shù)據(jù)(寫入新Container),否則就不必要重寫。該閥值?%可以根據(jù)實際需要進行具體選擇,P取值范圍為I?100,取值越小表示重寫的數(shù)據(jù)越少,對去重率的影響也越小,一般優(yōu)選取值為5左右。
[0042]一般去重方法是不必判斷數(shù)據(jù)碎片以及是否重寫,僅對于新數(shù)據(jù)塊需要存儲,對于重復(fù)數(shù)據(jù)塊就不需要存儲。
[0043]使用選擇性去重方法重會提高CFL值,使用一般去重方法會降低CFL值,所以需要CARcfl監(jiān)控器根據(jù)CFL值來選擇去重方法,保證CFL值在一定的范圍。
[0044]臨時Container與新Container是內(nèi)存中具有與Container同樣大小的緩存,用來緩存數(shù)據(jù)塊。臨時Container用來臨時保存經(jīng)選擇性去重方法處理后的的數(shù)據(jù)塊,新Container存儲新的數(shù)據(jù)塊以及被重寫的數(shù)據(jù)塊,如果滿則寫入磁盤。
[0045]底層存儲模型采用Container為單位進行讀寫,每個Container大小默認4MB,可自由配置。
[0046]圖3為CFL算法基礎(chǔ)上的碎片重寫方法的流程示意圖,其具體處理過程如下所示:
[0047](I)對新來的數(shù)據(jù)塊,首先檢查是否是重復(fù)數(shù)據(jù)塊,也就是看是否存在于DDFS-1ike指紋庫中,如果不存在則直接作為新數(shù)據(jù)塊寫入Container,然后處理下一個數(shù)據(jù)塊,否則轉(zhuǎn)為步驟(2);
[0048](2)對于重復(fù)的數(shù)據(jù)塊,監(jiān)控器判斷當(dāng)前CFL值,如果CFL值小于第一閾值(LWM)則轉(zhuǎn)入步驟(4),如果大于第二閾值(HWM)則轉(zhuǎn)入步驟(3),否則采用之前的去重方法轉(zhuǎn)入相應(yīng)的步驟(3)或(4);
[0049](3)采用一般去重方法進行去重,即數(shù)據(jù)塊不被存儲,僅存儲相應(yīng)的數(shù)據(jù)塊指紋,然后轉(zhuǎn)入步驟(I);
[0050](4)采用選擇性去重方法進行去重,即判斷當(dāng)前數(shù)據(jù)塊所引用的容器標(biāo)識(Container ID)與用于暫存重復(fù)數(shù)據(jù)塊的臨時容器中的數(shù)據(jù)塊是否有相同的容器標(biāo)識(Container ID),如果是則暫時保存此數(shù)據(jù)塊到臨時容器中,轉(zhuǎn)入步驟(1),否則轉(zhuǎn)入步驟
(5);[0051](5)判斷當(dāng)前臨時容器的中所有數(shù)據(jù)塊大小之和與一個容器(Container)大小的比值,如果比值不小于重寫閾值,則不需要重寫,清除臨時容器中的所有數(shù)據(jù),轉(zhuǎn)入步驟
(I),如果比值小于該重寫閾值,即作為數(shù)據(jù)碎片,轉(zhuǎn)入步驟(6);
[0052](6)判斷數(shù)據(jù)塊是否在重寫感知緩存隊列中,如果存在則不需要重寫,更新CFL值和重寫感知緩存隊列,轉(zhuǎn)入步驟(I),否則轉(zhuǎn)入步驟(7);
[0053](7)重寫臨時容器中的所有數(shù)據(jù)塊,更新CFL值和重寫感知緩存隊列,使最新的容器標(biāo)識進入該重寫感知緩存隊列。
[0054]本領(lǐng)域的技術(shù)人員容易理解,以上所述的僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,在數(shù)據(jù)去重過程中增加一個緩存作為重寫感知緩存,該重寫感知緩存中的數(shù)據(jù)項為數(shù)據(jù)塊所引用的容器標(biāo)識(Container ID),對判定為數(shù)據(jù)碎片的數(shù)據(jù)塊,如果其引用的容器標(biāo)識(Container ID)已存儲在該重寫感知緩存中,則此數(shù)據(jù)無需重寫,否則重寫該數(shù)據(jù)碎片。
2.根據(jù)權(quán)利要求1所述的一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,所述的重寫感知緩存為與讀數(shù)據(jù)或恢復(fù)數(shù)據(jù)時同樣大小且相同緩存策略的緩存,其中所述大小是指緩存項的個數(shù)。
3.根據(jù)權(quán)利要求1或2所述的一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,所述的重寫感知緩存為采用LRU替換策略的緩存。
4.一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,通過增加一個用于存儲數(shù)據(jù)塊引用的容器標(biāo)識(Container ID)的緩存作為重寫感知緩存,來實現(xiàn)高性能數(shù)據(jù)重寫,其特征在于,該方法包括如下步驟: (1)對新來的數(shù)據(jù)塊進行去重判斷,如果不是重復(fù)數(shù)據(jù),則存儲此數(shù)據(jù)塊,否則執(zhí)行步驟⑵; (2)判斷當(dāng)前數(shù)據(jù)塊是否為一個數(shù)據(jù)碎片,如果不是則不用重寫,否則執(zhí)行步驟(3); (3)判斷當(dāng)前數(shù)據(jù)碎片是否應(yīng)當(dāng)重寫,即如果當(dāng)前數(shù)據(jù)碎片引用的容器標(biāo)識(Container ID)存儲在該重寫感知緩存中,則不用重寫,否則將當(dāng)前數(shù)據(jù)碎片作為新數(shù)據(jù)重寫。
5.根據(jù)權(quán)利要求4所述的一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,所述的重寫感知緩存為與讀數(shù)據(jù)或恢復(fù)數(shù)據(jù)時同樣大小且同樣緩存策略的緩存,其中所述大小是指緩存項的個數(shù)。.
6.根據(jù)權(quán)利要求4或5所述的一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,所述的重寫感知緩存為LRU緩存。
7.根據(jù)權(quán)利要求4-6中任一項所述的一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其特征在于,所述判斷當(dāng)前數(shù)據(jù)塊是否為一個數(shù)據(jù)碎片優(yōu)選可以采用CFL算法、CBR算法或Capping算法實現(xiàn)。
8.一種用于數(shù)據(jù)去重系統(tǒng)的碎片重寫方法,其基于CFL算法進行數(shù)據(jù)碎片判斷并對該所述數(shù)據(jù)碎片進行選擇性重寫,從而實現(xiàn)高性能的碎片重寫,其特征在于,該方法具體包括: (1)對新來的數(shù)據(jù)塊,首先檢查是否是重復(fù)數(shù)據(jù)塊,如果不存在則直接作為新數(shù)據(jù)塊寫入Container,然后處理下一個數(shù)據(jù)塊,否則轉(zhuǎn)為步驟(2); (2)對于重復(fù)的數(shù)據(jù)塊,判斷當(dāng)前CFL值,如果CFL值小于第一閾值(LWM)則轉(zhuǎn)入步驟(4),如果大于第二閾值(HWM)則轉(zhuǎn)入步驟(3); (3)采用一般去重方法進行去重,即數(shù)據(jù)塊不被存儲,僅存儲相應(yīng)的數(shù)據(jù)塊指紋,然后轉(zhuǎn)入步驟⑴; (4)采用選擇性去重方法進行去重,即判斷當(dāng)前數(shù)據(jù)塊所引用的容器標(biāo)識(ContainerID)與用于暫存重復(fù)數(shù)據(jù)塊的臨時容器中的數(shù)據(jù)塊是否有相同的容器標(biāo)識(ContainerID),如果是則暫時保存此數(shù)據(jù)塊到臨時容器中,轉(zhuǎn)入步驟(I),否則轉(zhuǎn)入步驟(5); (5)判斷當(dāng)前臨時容器的中所有數(shù)據(jù)塊大小之和與一個容器(Container)大小的比值,如果比值不小于重寫閾值,則不需要重寫,清除臨時容器中的所有數(shù)據(jù),轉(zhuǎn)入步驟(1),如果比值小于該重寫閾值,即作為數(shù)據(jù)碎片,轉(zhuǎn)入步驟(6); (6)判斷數(shù)據(jù)塊是否在重寫感知緩存隊列中,如果存在則不需要重寫,更新CFL值和重寫感知緩存隊列,轉(zhuǎn)入步驟(I),否則轉(zhuǎn)入步驟(7); (7)重寫臨時容器中的所有數(shù)據(jù)塊,更新CFL值和重寫感知緩存隊列,使最新的容器標(biāo)識進入該重寫感知緩 存隊列。
【文檔編號】G06F11/14GK103473150SQ201310383204
【公開日】2013年12月25日 申請日期:2013年8月28日 優(yōu)先權(quán)日:2013年8月28日
【發(fā)明者】劉景寧, 馮丹, 周鵬舉, 許蔚, 付忞 申請人:華中科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1