專利名稱:一種基于文件內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)備份的重復(fù)數(shù)據(jù)刪除方法,具體涉及一種基于文件內(nèi)容類 型(Content Type)的重復(fù)數(shù)據(jù)刪除方法,適用于基于磁盤的備份系統(tǒng)。
背景技術(shù):
進(jìn)入到21世紀(jì)以后,隨著信息時(shí)代的加速,數(shù)據(jù)呈現(xiàn)出爆炸性增長(zhǎng)的趨勢(shì),用戶 存儲(chǔ)容量日趨緊張、數(shù)據(jù)管理難度日益加大、存儲(chǔ)支出逐漸增加。為了應(yīng)對(duì)這些問題,提出 了重復(fù)數(shù)據(jù)刪除技術(shù),以有效地減少用戶日常備份中的重復(fù)數(shù)據(jù),使得備份數(shù)據(jù)大大減少, 從而為用戶節(jié)省了存儲(chǔ)容量,并降低了數(shù)據(jù)管理工作的難度。許多存儲(chǔ)廠商都推出了基于 重復(fù)數(shù)據(jù)刪除的備份系統(tǒng)或軟件,例如EMC公司的Avamar Data Store備份存儲(chǔ)系統(tǒng),Data Domain公司的DDX陣列以及SEPAT0N公司的DeltaStor軟件。 根據(jù)重復(fù)數(shù)據(jù)識(shí)別的粒度,重復(fù)數(shù)據(jù)刪除技術(shù)可分為文件級(jí)重復(fù)數(shù)據(jù)刪除和數(shù)據(jù) 塊級(jí)重復(fù)數(shù)據(jù)刪除,在備份環(huán)境下通常采用后者。數(shù)據(jù)塊級(jí)重復(fù)數(shù)據(jù)刪除技術(shù)是指將備份 文件劃分為多個(gè)數(shù)據(jù)塊,然后判斷每個(gè)數(shù)據(jù)塊是否已處于存儲(chǔ)池中,如果發(fā)現(xiàn)某一數(shù)據(jù)塊 已經(jīng)存在,則會(huì)在備份文件的索引節(jié)點(diǎn)中插入指向已存在數(shù)據(jù)塊的指針;只有不重復(fù)的數(shù) 據(jù)塊才會(huì)被寫入磁盤的相應(yīng)區(qū)域。存儲(chǔ)池是由硬盤、磁帶或光盤構(gòu)成的計(jì)算機(jī)虛擬存儲(chǔ)設(shè) 備,用于存儲(chǔ)海量數(shù)據(jù)。 在數(shù)據(jù)塊級(jí)重復(fù)數(shù)據(jù)刪除技術(shù)中,關(guān)鍵問題在于如何將備份文件劃分為數(shù)據(jù)塊, 即如何確定數(shù)據(jù)塊的邊界特征。目前的分塊技術(shù)有兩種,定長(zhǎng)分塊和變長(zhǎng)分塊。定長(zhǎng)分塊 是指將文件分塊為同一大小的數(shù)據(jù)塊,例如4K、8K等;變長(zhǎng)分塊是采用滑動(dòng)窗口對(duì)備份文 件做整體掃描,如果滑動(dòng)窗口中的內(nèi)容滿足預(yù)定的數(shù)據(jù)塊邊界條件,則被識(shí)別為一個(gè)邊界, 兩個(gè)邊界之間的所有字節(jié)被分塊為一個(gè)數(shù)據(jù)塊。 對(duì)于數(shù)據(jù)塊級(jí)重復(fù)數(shù)據(jù)刪除技術(shù)而言,目前存在的主要問題是對(duì)備份系統(tǒng)中的 所有文件采用單一的塊邊界特征,而沒有考慮重復(fù)數(shù)據(jù)塊的數(shù)量會(huì)因文件內(nèi)容性質(zhì)(包括 文件類型與采用的編碼方式等)的不同而存在較大差異,單一塊邊界特征的策略不能使不 同內(nèi)容類型文件的重復(fù)數(shù)據(jù)刪除率都達(dá)到最優(yōu)。因此,需要根據(jù)內(nèi)容類型對(duì)文件進(jìn)行分類, 并采用復(fù)合策略來分別處理不同內(nèi)容類型的備份文件。
發(fā)明內(nèi)容
本發(fā)明提供一種基于文件內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法,解決現(xiàn)有重復(fù)數(shù)據(jù)刪除
方法存在的分塊策略單一,不能根據(jù)文件內(nèi)容類型進(jìn)行優(yōu)化的問題。 備份系統(tǒng)定期執(zhí)行備份過程,每次備份過程都得到一個(gè)備份文件集合。 在存儲(chǔ)池中,每個(gè)文件都以一個(gè)索引節(jié)點(diǎn)來標(biāo)識(shí)。文件被劃分為多個(gè)數(shù)據(jù)塊,每個(gè)
數(shù)據(jù)塊都通過計(jì)算得到一個(gè)哈希值;在索引節(jié)點(diǎn)中包含了每個(gè)數(shù)據(jù)塊對(duì)應(yīng)的哈希值;在哈
希值表中包含了所有數(shù)據(jù)塊的哈希值以及數(shù)據(jù)塊在磁盤上的存儲(chǔ)地址;通過哈希值表可以
找到文件中每個(gè)數(shù)據(jù)塊的地址。
本發(fā)明的一種基于文件內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法,預(yù)先進(jìn)行塊邊界特征計(jì)算 步驟在備份系統(tǒng)中采集樣本文件集合,提取樣本文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確定樣本文 件的內(nèi)容類型,再根據(jù)樣本文件的內(nèi)容類型將樣本文件集合分類為多個(gè)子集合,計(jì)算每個(gè) 子集合的塊邊界特征值,將各個(gè)子集合的塊邊界特征值保存在塊邊界特征庫中;
以下順序包括 A.內(nèi)容類型識(shí)別步驟提取用戶輸入文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確定文件的內(nèi)
容類型,根據(jù)文件的內(nèi)容類型在塊邊界特征庫中尋找對(duì)應(yīng)的塊邊界特征值; B.文件分塊步驟根據(jù)步驟A中尋找到的塊邊界特征值,采用滑動(dòng)窗口對(duì)用戶輸
入文件整體進(jìn)行掃描,將用戶輸入文件劃分為多個(gè)數(shù)據(jù)塊; C.數(shù)字指紋計(jì)算步驟對(duì)步驟B中產(chǎn)生的每個(gè)數(shù)據(jù)塊,計(jì)算其哈希(HASH)值作為 該數(shù)據(jù)塊的數(shù)字指紋,轉(zhuǎn)步驟D ; D.重復(fù)數(shù)據(jù)塊判斷步驟將步驟C中生成的哈希值與存儲(chǔ)池中的哈希值表中的哈
希值進(jìn)行比較,判斷是否相同,是則僅將該哈希值存入文件的索引節(jié)點(diǎn)中,轉(zhuǎn)步驟E;否則
把該哈希值存入哈希值表以及文件的索引節(jié)點(diǎn)中,并將對(duì)應(yīng)的數(shù)據(jù)塊寫入存儲(chǔ)池中,轉(zhuǎn)步
驟E ; E.結(jié)束步驟當(dāng)前文件重復(fù)數(shù)據(jù)刪除結(jié)束,當(dāng)用戶輸入下一文件時(shí),轉(zhuǎn)步驟A ;
所述存儲(chǔ)池存儲(chǔ)哈希值表和數(shù)據(jù)塊,該哈希值表中包含所存儲(chǔ)每個(gè)數(shù)據(jù)塊的哈希 值以及在磁盤上的地址,所存儲(chǔ)的所有數(shù)據(jù)塊不重復(fù); 所述文件的元數(shù)據(jù)包括文件的內(nèi)容類型、文件擴(kuò)展名、生成文件的應(yīng)用程序以及 文件內(nèi)容的編碼方式,其中,文件擴(kuò)展名、生成文件的應(yīng)用程序以及文件內(nèi)容的編碼方式三 種元數(shù)據(jù)構(gòu)成一個(gè)元數(shù)據(jù)三元組,形為{擴(kuò)展名,應(yīng)用程序,編碼方式}。
所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于
所述塊邊界特征計(jì)算步驟,包括下述子步驟 A.在存儲(chǔ)池中生成樣本文件集合從備份系統(tǒng)定期執(zhí)行的備份過程中,隨機(jī)抽取 1次備份過程生成的備份文件集合,作為樣本文件集合,放入存儲(chǔ)池中; B.樣本文件分類提取樣本文件集合中每個(gè)樣本文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確 定文件的內(nèi)容類型,相同內(nèi)容類型的樣本文件被放入同一子集合中; C.確定候選塊邊界特征值取值范圍根據(jù)備份系統(tǒng)規(guī)定的平均分塊大小,確定候 選塊邊界特征值取值范圍為[O,n),其中n為備份系統(tǒng)規(guī)定的平均分塊字節(jié)大小,n二 256、 512、1024、2048、4096或8192 ; D.生成塊邊界特征值對(duì)于樣本文件集合中各種內(nèi)容類型的文件子集合,遍歷候
選特征值取值范圍中的每個(gè)候選特征值,并計(jì)算該候選特征值生成的重復(fù)數(shù)據(jù)塊數(shù)量;以
生成重復(fù)數(shù)據(jù)塊數(shù)量最大的候選特征值作為該內(nèi)容類型的塊邊界特征值; E.保存在每種內(nèi)容類型與相應(yīng)的塊邊界特征值之間建立一一映射關(guān)系并保存
到塊邊界特征庫中。 所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于 所述內(nèi)容類型識(shí)別步驟或者塊邊界特征計(jì)算步驟的樣本文件分類子步驟中,根據(jù) 元數(shù)據(jù)確定文件的內(nèi)容類型過程為 判斷元數(shù)據(jù)中是否包含內(nèi)容類型屬性,是則直接將其設(shè)置為文件的內(nèi)容類型,否
5則,將文件擴(kuò)展名、生成文件的應(yīng)用程序以及文件內(nèi)容的編碼方式構(gòu)成一個(gè)元數(shù)據(jù)三元組, 形式為{擴(kuò)展名,應(yīng)用程序,編碼方式},在內(nèi)容類型查詢表中找到文件所對(duì)應(yīng)的內(nèi)容類型;
所述內(nèi)容類型查詢表反映元數(shù)據(jù)三元組的每種取值和內(nèi)容類型的對(duì)應(yīng)關(guān)系。
所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于
所述文件分塊步驟,包括下述子步驟 A.將文件的起始位置作為滑動(dòng)窗口的初始位置,將滑動(dòng)窗口所包含的字節(jié)作為第 一個(gè)數(shù)據(jù)塊邊界; B.將滑動(dòng)窗口在文件中移動(dòng),每次移動(dòng)一個(gè)字節(jié),判斷滑動(dòng)窗口是否到達(dá)文件末 尾,是則轉(zhuǎn)子步驟C,否則轉(zhuǎn)子步驟D ; C.將該滑動(dòng)窗口所包含的字節(jié)作為最后一個(gè)數(shù)據(jù)塊邊界,該數(shù)據(jù)塊邊界與上一個(gè) 數(shù)據(jù)塊邊界之間的所有字節(jié)作為文件的最后一個(gè)數(shù)據(jù)塊,劃分結(jié)束;
D.計(jì)算滑動(dòng)窗口特征值f :
<formula>formula see original document page 6</formula> 式中,ti為滑動(dòng)窗口中的字節(jié),i = 0 w-l,滑動(dòng)窗口的長(zhǎng)度w為10、20、30、40或
50字節(jié),滑動(dòng)窗口中的所有字節(jié)表示為字節(jié)序列(t。, tp . . . , tw—》; E.將滑動(dòng)窗口特征值f對(duì)塊邊界特征值取模,判斷取模結(jié)果是否為0,是則轉(zhuǎn)子步 驟F;否則返回子步驟B; F.該滑動(dòng)窗口所包含的字節(jié)作為下一個(gè)數(shù)據(jù)塊邊界,下一個(gè)數(shù)據(jù)塊邊界與上一個(gè) 數(shù)據(jù)塊邊界中的所有字節(jié)被劃分為一個(gè)數(shù)據(jù)塊,返回子步驟B。 本發(fā)明文件內(nèi)容類型的分類采用多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MME, Multipurpose Internet Mail Extensions)定義的標(biāo)準(zhǔn),即分為文本,圖像,音頻,視頻,可執(zhí)行程序以及 復(fù)合文件6大類。每個(gè)大類下又定義了多個(gè)子類。 本發(fā)明基于內(nèi)容類型對(duì)備份文件進(jìn)行分類,并針對(duì)每種內(nèi)容類型計(jì)算最優(yōu)的塊邊 界特征值;在處理備份文件時(shí)增加了文件內(nèi)容類型識(shí)別步驟,并根據(jù)識(shí)別結(jié)果選擇塊邊界 特征,提高了重復(fù)數(shù)據(jù)刪除方法在處理復(fù)合備份文件時(shí)的整體效能。
圖1為本發(fā)明的流程圖; 圖2為本發(fā)明的數(shù)據(jù)壓縮比性能測(cè)試結(jié)果圖;
圖3為本發(fā)明的寫入吞吐率性能測(cè)試結(jié)果圖;
圖4為本發(fā)明的讀取吞吐率性能測(cè)試結(jié)果圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明。 如圖1所示,本發(fā)明預(yù)先進(jìn)行塊邊界特征計(jì)算步驟,以下順序包括內(nèi)容類型識(shí)別 步驟、文件分塊步驟、數(shù)字指紋計(jì)算步驟、重復(fù)數(shù)據(jù)塊判斷步驟和結(jié)束步驟。
下面給出基于內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法的一個(gè)完整流程示例
預(yù)先進(jìn)行塊邊界特征計(jì)算步驟,包括下述子步驟
A.在存儲(chǔ)池中生成樣本文件集合從備份系統(tǒng)中抽取2009年9月30日?qǐng)?zhí)行的備 份過程生成的備份文件集合,共14427個(gè)文件,作為樣本文件集合,放入存儲(chǔ)池中;
B.樣本文件分類提取樣本文件集合中每個(gè)樣本文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確 定文件的內(nèi)容類型,相同內(nèi)容類型的樣本文件被放入同一子集合中,共分為文本,圖像,音 頻,視頻,可執(zhí)行程序以及復(fù)合文件6個(gè)子集合; C.確定候選塊邊界特征值取值范圍備份系統(tǒng)規(guī)定的平均分塊大小為1024字節(jié), 因此確定候選塊邊界特征值取值范圍為
E.保存在每種內(nèi)容類型與相應(yīng)的塊邊界特征值之間建立一一映射關(guān)系并保存 到塊邊界特征庫中。 用戶輸入文件file, dat,順序執(zhí)行以下步驟 A.內(nèi)容類型識(shí)別步驟提取用戶輸入文件的元數(shù)據(jù),構(gòu)成元數(shù)據(jù)三元組{dat, Visual Studio, TXTh文件的內(nèi)容類型為文本,在特征數(shù)據(jù)庫中對(duì)應(yīng)的塊邊界特征值為 257 ; B.文件分塊步驟根據(jù)步驟A中尋找到的塊邊界特征值257,采用滑動(dòng)窗口對(duì)用戶 輸入文件整體進(jìn)行掃描,其中滑動(dòng)窗口的長(zhǎng)度w設(shè)為50字節(jié),用戶輸入文件file. dat被劃 分為62個(gè)數(shù)據(jù)塊; C.數(shù)字指紋計(jì)算步驟對(duì)步驟B中產(chǎn)生的每個(gè)數(shù)據(jù)塊,計(jì)算其哈希(HASH)值作為 該數(shù)據(jù)塊的數(shù)字指紋,轉(zhuǎn)步驟D ; D.重復(fù)數(shù)據(jù)塊判斷步驟將步驟C中生成的哈希值與存儲(chǔ)池中的哈希值表中的哈 希值進(jìn)行比較,判斷是否相同,是則僅將該哈希值存入文件的索引節(jié)點(diǎn)中,在file. dat中 共判斷出48個(gè)重復(fù)數(shù)據(jù)塊,轉(zhuǎn)步驟E ;否則把該哈希值存入哈希值表以及文件的索引節(jié)點(diǎn) 中,并將對(duì)應(yīng)的數(shù)據(jù)塊寫入存儲(chǔ)池中,轉(zhuǎn)步驟E ; E.結(jié)束步驟當(dāng)前文件重復(fù)數(shù)據(jù)刪除結(jié)束,當(dāng)用戶輸入下一文件時(shí),
轉(zhuǎn)步驟A ; 本發(fā)明內(nèi)容類型識(shí)別步驟和塊邊界特征計(jì)算步驟的樣本文件分類子步驟中,涉及
內(nèi)容類型查詢表,內(nèi)容類型查詢表反映元數(shù)據(jù)三元組的每種取值和內(nèi)容類型的對(duì)應(yīng)關(guān)系。
文件擴(kuò)展名可能多達(dá)近20種、生成文件的應(yīng)用程序可能多達(dá)20余種、文件內(nèi)容的編碼方式
有10種左右。本發(fā)明實(shí)施例中,以2種文件擴(kuò)展名、2種生成文件的應(yīng)用程序和2種文件內(nèi)
容的編碼方式,構(gòu)成元數(shù)據(jù)三元組,元數(shù)據(jù)三元組的每種取值和內(nèi)容類型的對(duì)應(yīng)關(guān)系如下
述內(nèi)容類型查詢表所示三元組{擴(kuò)展名,應(yīng)用程序,編碼方式}內(nèi)容類型
{dat, VisualStudio, TXT}文本
{dat, VisualStudio, BMP}圖片
{dat, Eclipse, TXT}文本
{dat, Eclipse, BMP}圖片
{dll, VisualStudio, TXT}可執(zhí)行程序
{dll, VisualStudio, BMP}可執(zhí)行程序
{dll, Eclipse, TXT}可執(zhí)行程序
{dll, Eclipse, BMP}可執(zhí)行程序 申請(qǐng)人:在IP存儲(chǔ)系統(tǒng)上實(shí)現(xiàn)了本發(fā)明,并進(jìn)行了實(shí)驗(yàn)測(cè)試。存儲(chǔ)應(yīng)用服務(wù)器采用 了 AMD Dual Core 2800+2. 21G的CPU, 1GB內(nèi)存,操作系統(tǒng)為L(zhǎng)inux 2. 6. 12 ;IP存儲(chǔ)設(shè)備采 用Pentium 42. 4G的CPU, 1. 2G內(nèi)存,操作系統(tǒng)同樣為L(zhǎng)inux 2. 6. 12 ;兩臺(tái)計(jì)算機(jī)通過1Gb/ s的以太網(wǎng)卡互聯(lián)。測(cè)試結(jié)果包括備份數(shù)據(jù)的壓縮比,寫入吞吐率以及讀取吞吐率。
圖2為本發(fā)明的數(shù)據(jù)壓縮比性能測(cè)試結(jié)果圖;其中橫坐標(biāo)為備份系統(tǒng)規(guī)定的平均 分塊字節(jié)大小,分別為256,512, 1024,2048和4096字節(jié);縱坐標(biāo)為本發(fā)明在不同的平均分 塊字節(jié)大小下到達(dá)的數(shù)據(jù)壓縮比,分別為10. 14, 9. 24, 8. 26, 8. 13和8. 12 ;數(shù)據(jù)壓縮比為重 復(fù)數(shù)據(jù)刪除之前的數(shù)據(jù)總量除以重復(fù)數(shù)據(jù)刪除之后的數(shù)據(jù)總量得到的值。
圖3為本發(fā)明的寫入吞吐率性能測(cè)試結(jié)果圖;其中橫坐標(biāo)為備份系統(tǒng)規(guī)定的平均 分塊字節(jié)大小,分別為256,512, 1024,2048和4096字節(jié);縱坐標(biāo)為本發(fā)明在不同的平均分 塊字節(jié)大小下到達(dá)的寫入吞吐量,分別為69. 1,62. 1,55. 7, 55. 6和55. IMB/s ;
圖4為本發(fā)明的讀取吞吐率性能測(cè)試結(jié)果圖;其中橫坐標(biāo)為備份系統(tǒng)規(guī)定的平均 分塊字節(jié)大小,分別為256,512, 1024,2048和4096字節(jié);縱坐標(biāo)為本發(fā)明在不同的平均分 塊字節(jié)大小下到達(dá)的讀取吞吐量,分別為40. 86, 39. 48, 37. 68, 37. 74和31. 92MB/s。
8
權(quán)利要求
一種基于文件內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法,預(yù)先進(jìn)行塊邊界特征計(jì)算步驟在備份系統(tǒng)中采集樣本文件集合,提取樣本文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確定樣本文件的內(nèi)容類型,再根據(jù)樣本文件的內(nèi)容類型將樣本文件集合分類為多個(gè)子集合,計(jì)算每個(gè)子集合的塊邊界特征值,將各個(gè)子集合的塊邊界特征值保存在塊邊界特征庫中;以下順序包括A.內(nèi)容類型識(shí)別步驟提取用戶輸入文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確定文件的內(nèi)容類型,根據(jù)文件的內(nèi)容類型在塊邊界特征庫中尋找對(duì)應(yīng)的塊邊界特征值;B.文件分塊步驟根據(jù)步驟A中尋找到的塊邊界特征值,采用滑動(dòng)窗口對(duì)用戶輸入文件整體進(jìn)行掃描,將用戶輸入文件劃分為多個(gè)數(shù)據(jù)塊;C.數(shù)字指紋計(jì)算步驟對(duì)步驟B中產(chǎn)生的每個(gè)數(shù)據(jù)塊,計(jì)算其哈希(HASH)值作為該數(shù)據(jù)塊的數(shù)字指紋,轉(zhuǎn)步驟D;D.重復(fù)數(shù)據(jù)塊判斷步驟將步驟C中生成的哈希值與存儲(chǔ)池中的哈希值表中的哈希值進(jìn)行比較,判斷是否相同,是則僅將該哈希值存入文件的索引節(jié)點(diǎn)中,轉(zhuǎn)步驟E;否則把該哈希值存入哈希值表以及文件的索引節(jié)點(diǎn)中,并將對(duì)應(yīng)的數(shù)據(jù)塊寫入存儲(chǔ)池中,轉(zhuǎn)步驟E;E.結(jié)束步驟當(dāng)前文件重復(fù)數(shù)據(jù)刪除結(jié)束,當(dāng)用戶輸入下一文件時(shí),轉(zhuǎn)步驟A;所述存儲(chǔ)池存儲(chǔ)哈希值表和數(shù)據(jù)塊,該哈希值表中包含所存儲(chǔ)每個(gè)數(shù)據(jù)塊的哈希值以及在磁盤上的地址,所存儲(chǔ)的所有數(shù)據(jù)塊不重復(fù);所述文件的元數(shù)據(jù)包括文件的內(nèi)容類型、文件擴(kuò)展名、生成文件的應(yīng)用程序以及文件內(nèi)容的編碼方式,其中,文件擴(kuò)展名、生成文件的應(yīng)用程序以及文件內(nèi)容的編碼方式三種元數(shù)據(jù)構(gòu)成一個(gè)元數(shù)據(jù)三元組,形為{擴(kuò)展名,應(yīng)用程序,編碼方式}。
2. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于 所述塊邊界特征計(jì)算步驟,包括下述子步驟A. 在存儲(chǔ)池中生成樣本文件集合從備份系統(tǒng)定期執(zhí)行的備份過程中,隨機(jī)抽取1次 備份過程生成的備份文件集合,作為樣本文件集合,放入存儲(chǔ)池中;B. 樣本文件分類提取樣本文件集合中每個(gè)樣本文件的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)確定文 件的內(nèi)容類型,相同內(nèi)容類型的樣本文件被放入同一子集合中;C. 確定候選塊邊界特征值取值范圍根據(jù)備份系統(tǒng)規(guī)定的平均分塊大小,確定候選塊 邊界特征值取值范圍為[O,n),其中n為備份系統(tǒng)規(guī)定的平均分塊字節(jié)大小,n = 256、512、 1024、2048、4096或8192 ;D. 生成塊邊界特征值對(duì)于樣本文件集合中各種內(nèi)容類型的文件子集合,遍歷候選特 征值取值范圍中的每個(gè)候選特征值,并計(jì)算該候選特征值生成的重復(fù)數(shù)據(jù)塊數(shù)量;以生成 重復(fù)數(shù)據(jù)塊數(shù)量最大的候選特征值作為該內(nèi)容類型的塊邊界特征值;E. 保存在每種內(nèi)容類型與相應(yīng)的塊邊界特征值之間建立一一映射關(guān)系并保存到塊 邊界特征庫中。
3. 如權(quán)利要求1或2所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于所述內(nèi)容類型識(shí)別步驟或者塊邊界特征計(jì)算步驟的樣本文件分類子步驟中,根據(jù)元數(shù) 據(jù)確定文件的內(nèi)容類型過程為判斷元數(shù)據(jù)中是否包含內(nèi)容類型屬性,是則直接將其設(shè)置為文件的內(nèi)容類型,否則,將 文件擴(kuò)展名、生成文件的應(yīng)用程序以及文件內(nèi)容的編碼方式構(gòu)成一個(gè)元數(shù)據(jù)三元組,形式為{擴(kuò)展名,應(yīng)用程序,編碼方式},在內(nèi)容類型查詢表中找到文件所對(duì)應(yīng)的內(nèi)容類型; 所述內(nèi)容類型查詢表反映元數(shù)據(jù)三元組的每種取值和內(nèi)容類型的對(duì)應(yīng)關(guān)系。
4. 如權(quán)利要求1或2所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于 所述文件分塊步驟,包括下述子步驟A. 將文件的起始位置作為滑動(dòng)窗口的初始位置,將滑動(dòng)窗口所包含的字節(jié)作為第一個(gè) 數(shù)據(jù)塊邊界;B. 將滑動(dòng)窗口在文件中移動(dòng),每次移動(dòng)一個(gè)字節(jié),判斷滑動(dòng)窗口是否到達(dá)文件末尾,是 則轉(zhuǎn)子步驟C,否則轉(zhuǎn)子步驟D ;C. 將該滑動(dòng)窗口所包含的字節(jié)作為最后一個(gè)數(shù)據(jù)塊邊界,該數(shù)據(jù)塊邊界與上一個(gè)數(shù)據(jù) 塊邊界之間的所有字節(jié)作為文件的最后一個(gè)數(shù)據(jù)塊,劃分結(jié)束;D. 計(jì)算滑動(dòng)窗口特征值f :/ =|J"x2w-卜')m。d2w式中,ti為滑動(dòng)窗口中的字節(jié),i = 0 w-l,滑動(dòng)窗口的長(zhǎng)度w為10、20、30、40或50 字節(jié),滑動(dòng)窗口中的所有字節(jié)表示為字節(jié)序列(t。, tn . . . , tw—》;E. 將滑動(dòng)窗口特征值f對(duì)塊邊界特征值取模,判斷取模結(jié)果是否為O,是則轉(zhuǎn)子步驟F ; 否則返回子步驟B;F. 該滑動(dòng)窗口所包含的字節(jié)作為下一個(gè)數(shù)據(jù)塊邊界,下一個(gè)數(shù)據(jù)塊邊界與上一個(gè)數(shù)據(jù) 塊邊界中的所有字節(jié)被劃分為一個(gè)數(shù)據(jù)塊,返回子步驟B。
5. 如權(quán)利要求3所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于所述文件分塊步驟,包括下述子步驟A. 將文件的起始位置作為滑動(dòng)窗口的初始位置,將滑動(dòng)窗口所包含的字節(jié)作為第一個(gè) 數(shù)據(jù)塊邊界;B. 將滑動(dòng)窗口在文件中移動(dòng),每次移動(dòng)一個(gè)字節(jié),判斷滑動(dòng)窗口是否到達(dá)文件末尾,是 則轉(zhuǎn)子步驟C,否則轉(zhuǎn)子步驟D ;C. 將該滑動(dòng)窗口所包含的字節(jié)作為最后一個(gè)數(shù)據(jù)塊邊界,該數(shù)據(jù)塊邊界與上一個(gè)數(shù)據(jù) 塊邊界之間的所有字節(jié)作為文件的最后一個(gè)數(shù)據(jù)塊,劃分結(jié)束;D. 計(jì)算滑動(dòng)窗口特征值f : <formula>formula see original document page 0</formula>式中,ti為滑動(dòng)窗口中的字節(jié),i 二0 w-l,w為滑動(dòng)窗口的長(zhǎng)度,滑動(dòng)窗口中的所有 字節(jié)表示為字節(jié)序列(t。, tn . . . , tw—》;E. 將滑動(dòng)窗口特征值f對(duì)塊邊界特征值取模,判斷取模結(jié)果是否為O,是則轉(zhuǎn)子步驟F ;否則返回子步驟B;F. 該滑動(dòng)窗口所包含的字節(jié)作為下一個(gè)數(shù)據(jù)塊邊界,下一個(gè)數(shù)據(jù)塊邊界與上一個(gè)數(shù)據(jù) 塊邊界中的所有字節(jié)被劃分為一個(gè)數(shù)據(jù)塊,返回子步驟B。
全文摘要
一種基于文件內(nèi)容類型的重復(fù)數(shù)據(jù)刪除方法,屬于計(jì)算機(jī)數(shù)據(jù)備份的重復(fù)數(shù)據(jù)刪除方法,適用于基于磁盤的備份系統(tǒng),解決現(xiàn)有重復(fù)數(shù)據(jù)刪除方法存在的分塊策略單一,不能根據(jù)文件內(nèi)容類型進(jìn)行優(yōu)化的問題。本發(fā)明預(yù)先進(jìn)行塊邊界特征計(jì)算步驟,以下順序包括內(nèi)容類型識(shí)別步驟、文件分塊步驟、數(shù)字指紋計(jì)算步驟、重復(fù)數(shù)據(jù)塊判斷步驟和結(jié)束步驟。本發(fā)明基于內(nèi)容類型對(duì)備份文件進(jìn)行分類,并針對(duì)每種內(nèi)容類型計(jì)算最優(yōu)的塊邊界特征值;在處理備份文件時(shí)增加了文件內(nèi)容類型識(shí)別步驟,并根據(jù)識(shí)別結(jié)果選擇塊邊界特征,提高了重復(fù)數(shù)據(jù)刪除方法在處理復(fù)合備份文件時(shí)的整體效能。
文檔編號(hào)G06F11/14GK101706825SQ20091027317
公開日2010年5月12日 申請(qǐng)日期2009年12月10日 優(yōu)先權(quán)日2009年12月10日
發(fā)明者劉科, 周敬利, 曾東, 朱建峰, 秦磊華, 聶雪軍 申請(qǐng)人:華中科技大學(xué)