欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

重復(fù)數(shù)據(jù)刪除方法

文檔序號:6377389閱讀:280來源:國知局
專利名稱:重復(fù)數(shù)據(jù)刪除方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種云存儲中的重復(fù)數(shù)據(jù)刪除方法。
背景技術(shù)
隨著云計(jì)算的興起,計(jì)算機(jī)領(lǐng)域正發(fā)生著深刻的變革。我國云計(jì)算服務(wù)市場處于起步階段,云計(jì)算技術(shù)與設(shè)備已經(jīng)具備一定的發(fā)展基礎(chǔ)。我國云計(jì)算服務(wù)市場總體規(guī)模較小,但追趕勢頭明顯。據(jù)Gartner估計(jì),2011年我國在全球約900億美元的云計(jì)算服務(wù)市場中所占份額不到3%,但年增速達(dá)到40% 4,預(yù)期未來我國與國外在云計(jì)算方面的差距將逐漸縮小。云計(jì)算很重要的一項(xiàng)技術(shù)就是“資源池”管理技術(shù),主要實(shí)現(xiàn)對物理資源、虛擬資源的統(tǒng)一管理,并根據(jù)用戶需求實(shí)現(xiàn)虛擬資源(虛擬機(jī)、虛擬存儲空間等)的自動化生成、 分配、回收和遷移,用以支持用戶對資源的彈性需求。不過,目前的云計(jì)算系統(tǒng)還存在著一些挑戰(zhàn)。其中最大的問題是云計(jì)算系統(tǒng)后端存儲數(shù)據(jù)巨大增長的問題。由于采用云計(jì)算技術(shù)帶來了大量重復(fù)的數(shù)據(jù),因?yàn)閷τ诓煌奶摂M機(jī)而言,可能其中60%以上的系統(tǒng)數(shù)據(jù)是完全一樣。如果100個(gè)VM運(yùn)行同一個(gè)操作系統(tǒng),且每個(gè)虛擬機(jī)需要IOGB至20GB的存儲空間,即ITB至2TB的存儲空間專用于同一數(shù)據(jù)的幾乎相同的拷貝。隨著云計(jì)算的規(guī)模越來越大需要數(shù)據(jù)中心提供巨大的存儲空間和高昂的數(shù)據(jù)管理費(fèi)用,從而為數(shù)據(jù)中心帶來了很大的存儲開銷。因此需要一個(gè)面向云計(jì)算的重復(fù)數(shù)據(jù)刪除系統(tǒng)以改善數(shù)據(jù)存儲的問題。目前在存儲領(lǐng)域的重復(fù)數(shù)據(jù)刪除方法主要有基于源端和基于目的端的實(shí)現(xiàn),在云計(jì)算環(huán)境下采用源端的技術(shù)要求使用最終用戶安裝一定的應(yīng)用程序或者設(shè)備不是很合適。而采用目的端的方式,目前主要是集成在存儲陣列中或者需要采用專門的重復(fù)數(shù)據(jù)刪除設(shè)備,這對于云計(jì)算大規(guī)模海量的存儲設(shè)備構(gòu)建比較困難。

發(fā)明內(nèi)容
本發(fā)明提供了一種重復(fù)數(shù)據(jù)刪除方法,解決了現(xiàn)有的云計(jì)算系統(tǒng)中鏡像存儲系統(tǒng)存儲開銷過大的問題?!N重復(fù)數(shù)據(jù)刪除方法,包括在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋;根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù);在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊。優(yōu)選的,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括為每個(gè)塊組(Block Group)中已存儲數(shù)據(jù)塊的生成一塊指紋索引,在所述塊指紋索引中包括各個(gè)數(shù)據(jù)塊的塊指紋索引值,所述塊指紋索引值包括數(shù)據(jù)塊的指紋和引用計(jì)數(shù),所述引用計(jì)數(shù)紀(jì)錄所述數(shù)據(jù)塊被重復(fù)引用的次數(shù)。優(yōu)選的,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括生成已存儲數(shù)據(jù)塊的內(nèi)存索引過濾器,所述內(nèi)存索引過濾器為一內(nèi)存中的索引結(jié)構(gòu),將全部已存儲數(shù)據(jù)塊的指紋的前若干位作為索引鍵,將所述索引鍵與對應(yīng)數(shù)據(jù)塊的地址存儲于所述內(nèi)存索引過濾器中。優(yōu)選的,根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù)包括檢查所述數(shù)據(jù)塊指紋的前若干位是否能夠與所述內(nèi)存索引過濾器中的索引鍵相匹配;
在所述數(shù)據(jù)塊指紋的前若干位不能與所述內(nèi)存索引過濾器中的任一索引鍵相匹配時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù)。優(yōu)選的,所述檢查所述數(shù)據(jù)塊指紋的前若干位是否能夠與所述內(nèi)存索引過濾器中的索引鍵相匹配的步驟之后還包括在所述數(shù)據(jù)塊指紋的前若干位能夠與所述索引過濾器中的一個(gè)或多個(gè)索引鍵相匹配時(shí),提取所述相匹配的一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋;將所述數(shù)據(jù)塊指紋與所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋進(jìn)行比對;在所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋中存在與所述數(shù)據(jù)塊指紋相同的指紋時(shí),判定所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊重復(fù)。優(yōu)選的,所述將所述數(shù)據(jù)塊指紋與所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋進(jìn)行比對的步驟之后,還包括在所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋中不存在與所述數(shù)據(jù)塊指紋相同的指紋時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù)。優(yōu)選的,所述在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊的步驟之后,還包括將與所述新的數(shù)據(jù)塊相同的已存儲數(shù)據(jù)塊的引用次數(shù)加一。優(yōu)選的,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括建立已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括多個(gè)索引節(jié)點(diǎn),每個(gè)索引節(jié)點(diǎn)對應(yīng)一個(gè)數(shù)據(jù)塊,記錄該數(shù)據(jù)塊的基本信息和指針信息,所述指針信息指向所述數(shù)據(jù)塊的存儲地址。優(yōu)選的,所述根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù)的步驟之后,還包括在所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊不重復(fù)時(shí),將所述數(shù)據(jù)添加至塊指紋索引中;在所述已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)中為所述新的數(shù)據(jù)塊添加索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)的指紋信息指向所述新的數(shù)據(jù)塊的索引地址。本發(fā)明提供了一種重復(fù)數(shù)據(jù)刪除方法,在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋,根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù),在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊,減少重復(fù)數(shù)據(jù)刪除過程中重復(fù)數(shù)據(jù)的存儲,減少備份數(shù)據(jù)的傳輸和存儲,解決了現(xiàn)有的云計(jì)算系統(tǒng)中鏡像存儲系統(tǒng)存儲開銷過大的問題。


圖I為Linux EXT3文件系統(tǒng)的架構(gòu)的結(jié)構(gòu)示意圖;圖2為本發(fā)明的實(shí)施例一提供的一種重復(fù)數(shù)據(jù)刪除系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明的實(shí)施例一中所使用的索引結(jié)構(gòu)原理示意圖;圖4為本發(fā)明的實(shí)施例一中實(shí)現(xiàn)重復(fù)刪除流程的流程圖;圖5為本發(fā)明的實(shí)施例二提供的一種重復(fù)數(shù)據(jù)刪除方法的流程圖;圖6為圖5中步驟505的具體流程圖。
具體實(shí)施例方式目前在存儲領(lǐng)域的重復(fù)數(shù)據(jù)刪除方法主要有基于源端和基于目的端的實(shí)現(xiàn),在云計(jì)算環(huán)境下采用源端的技術(shù)要求使用最終用戶安裝一定的應(yīng)用程序或者設(shè)備不是很合適。而采用目的端的方式,目前主要是集成在存儲陣列中或者需要采用專門的重復(fù)數(shù)據(jù)刪除設(shè)備,這對于云計(jì)算大規(guī)模海量的存儲設(shè)備構(gòu)建比較困難。為了解決上述問題,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。首先結(jié)合附圖,對本發(fā)明的實(shí)施例一進(jìn)行說明。本發(fā)明實(shí)施例提出一種適合云計(jì)算的重復(fù)數(shù)據(jù)刪除系統(tǒng),通過在已有Linux Ext3文件系統(tǒng)進(jìn)行擴(kuò)展增加重復(fù)數(shù)據(jù)刪除的功能,減少重復(fù)數(shù)據(jù)的存儲,解決現(xiàn)有的云計(jì)算系統(tǒng)中鏡像存儲系統(tǒng)存儲開銷過大的問題。I、磁盤布局;本發(fā)明實(shí)施例提供的重復(fù)數(shù)據(jù)刪除系統(tǒng)的架構(gòu)與Linux EXT3文件系統(tǒng)的架構(gòu)基本相同,圖I為Linux EXT3文件系統(tǒng)的架構(gòu)示意圖,本發(fā)明實(shí)施例提供的重復(fù)數(shù)據(jù)刪除系統(tǒng)的架構(gòu)如圖2所示,(其中,Block group為塊組,Super block為超級塊,Inode bitmap為索引節(jié)點(diǎn)位圖,F(xiàn)ingerprint Index為塊指紋索引,Data Block為數(shù)據(jù)塊,Data blockPointer為數(shù)據(jù)塊指針,Inode Metadata為索引節(jié)點(diǎn)元數(shù)據(jù))主要是在其磁盤布局增加了對每個(gè)數(shù)據(jù)塊的指紋校驗(yàn),通過對數(shù)據(jù)塊指紋校驗(yàn)的對比來實(shí)現(xiàn)對相同數(shù)據(jù)塊的重復(fù)數(shù)據(jù)刪除功能。具體而言在每個(gè)塊組中,增加了一個(gè)塊指紋索引(Fingerprint Index),塊指紋索引由16位的校驗(yàn)碼(Check SUM)和4位的引用計(jì)數(shù)(Reference count)組成,校驗(yàn)碼(具體為指紋)是一個(gè)對一個(gè)數(shù)據(jù)塊MD5或者SHA-I哈希值,在系統(tǒng)中數(shù)據(jù)塊可以是4K、8K、16K、32K、64K的一種,可以在系統(tǒng)初始化時(shí)指定。引用計(jì)數(shù)主要記錄當(dāng)前數(shù)據(jù)塊被文件使用的次數(shù),當(dāng)為O時(shí)表示此數(shù)據(jù)塊沒有被使用。其次對inode的結(jié)構(gòu)進(jìn)行了修改,inode是Linux操作系統(tǒng)中的一種數(shù)據(jù)結(jié)構(gòu),其本質(zhì)是結(jié)構(gòu)體,它包含了與文件系統(tǒng)中各個(gè)文件相關(guān)的一些重要信息。在Linux中創(chuàng)建文件系統(tǒng)時(shí),同時(shí)將會創(chuàng)建大量的inode。通常,文件系統(tǒng)磁盤空間中大約百分之一空間分配給了 inode表。在每個(gè)Inode(索引節(jié)點(diǎn))中,用來存放檔案及目錄的基本信息,包含時(shí)間、檔名、使用者及群組等信息,最主要的是包含數(shù)據(jù)塊的指針信息。在沒有重復(fù)數(shù)據(jù)刪除的EXT3文件系統(tǒng)中,一個(gè)數(shù)據(jù)塊指針(Data block Pointer)指向一個(gè)數(shù)據(jù)塊(Data block)地址。而在本系統(tǒng)中只要文件中使用的數(shù)據(jù)塊的數(shù)據(jù)指紋是相同的,其數(shù)據(jù)塊指針(Datablock Pointer)指向同一個(gè)數(shù)據(jù)塊(Data block),從而實(shí)現(xiàn)重復(fù)數(shù)據(jù)刪除的功能。2、內(nèi)存索引過濾器;假設(shè)數(shù)據(jù)塊大小是4KB,為每個(gè)數(shù)據(jù)塊采用16bytes的校驗(yàn)碼,指紋索引的大小就需要lTB/4KB*16bytes = 4GB的大小,如果全部放到磁盤上會導(dǎo)致索引檢索的效率很低。本發(fā)明實(shí)施例中所使用的索引結(jié)構(gòu)原理如圖3所示,內(nèi)存索引過濾器是一個(gè)內(nèi)存中的索引結(jié)構(gòu),目的是加速搜索磁盤上的指紋。本發(fā)明實(shí)施例中,只是導(dǎo)入數(shù)據(jù)塊指紋索引前N位的前綴作為索引鍵,而不是指紋的全部內(nèi)容,這樣加載到內(nèi)存中的數(shù)據(jù)可以是全部指紋的30%不到。內(nèi)存索引過濾器是一個(gè)數(shù)組二哈希的條目,除此之外還包括此塊的地址。系統(tǒng)初始化指紋濾波器是第一次初始化時(shí),后續(xù)在內(nèi)存中進(jìn)行修改和更新。內(nèi)存索引過濾器因?yàn)椴捎玫氖遣糠智熬Y,因此找到的匹配數(shù)據(jù)塊可能有多個(gè),此時(shí)再通過數(shù)據(jù)塊找到全部的指紋進(jìn)行二次校驗(yàn),能夠解決索引太大導(dǎo)致無法加載到內(nèi)存的 問題。3、重復(fù)數(shù)據(jù)刪除流程;重復(fù)數(shù)據(jù)刪除系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)重復(fù)刪除的流程如圖4所示,下面結(jié)合具體的步驟來說明I)系統(tǒng)中有新的10數(shù)據(jù)要求寫入,根據(jù)待寫入數(shù)據(jù)塊生成塊對應(yīng)的指紋,系統(tǒng)中數(shù)據(jù)塊的大小可以是4K、8K、16K、32K、64K的任一種,可以通過MD5或者SHA-I等方法生成此數(shù)據(jù)塊的指紋。2)先將新數(shù)據(jù)塊的前N位指紋在內(nèi)存指紋索引器進(jìn)行查找,如圖2所示,因?yàn)樗饕I都是加載在內(nèi)存故查找速度很快,能夠很快的查找是否已經(jīng)存在類似的指紋;因?yàn)橹皇侨∏癗位所以可能會同時(shí)查找到多個(gè)類似的指紋,但通過這次檢索能夠提高效率。沒有找到則跳到步驟4,如果找到了一個(gè)或者多個(gè)跳到步驟3。3)將數(shù)據(jù)塊指紋的與磁盤中完整指紋進(jìn)行比較,如果存在跳到步驟5,否則跳到步驟4。4)將數(shù)據(jù)寫入到物理磁盤中,即Data blocks區(qū)。5)更新磁盤索引如果是新的數(shù)據(jù)塊增加到塊指紋索引(Fingerprint Index)中,否則的話修改已有塊引用的次數(shù)。6)將新數(shù)據(jù)塊的指紋信息增加到內(nèi)存索引過濾器中。下面結(jié)合附圖,對本發(fā)明的實(shí)施例二進(jìn)行說明。本發(fā)明實(shí)施例提供了一種重復(fù)數(shù)據(jù)刪除方法,結(jié)合本發(fā)明的實(shí)施例一所提供的重復(fù)數(shù)據(jù)刪除系統(tǒng),使用該方法完成重復(fù)數(shù)據(jù)刪除的流程如圖5所示,包括步驟501、為每個(gè)塊組(Block Group)中已存儲數(shù)據(jù)塊的生成一塊指紋索引;在所述塊指紋索引中包括各個(gè)數(shù)據(jù)塊的塊指紋索引值,所述塊指紋索引值包括數(shù)據(jù)塊的指紋和引用計(jì)數(shù),所述引用計(jì)數(shù)紀(jì)錄所述數(shù)據(jù)塊被重復(fù)引用的次數(shù)。優(yōu)選的,塊指紋索引由16位的校驗(yàn)碼和4位的引用計(jì)數(shù)組成,校驗(yàn)碼(指紋)是一個(gè)對一個(gè)數(shù)據(jù)塊MD5或者SHA-I哈希值,在系統(tǒng)中數(shù)據(jù)塊可以是4K、8K、16K、32K、64K的一種,可以在系統(tǒng)初始化時(shí)指定。引用計(jì)數(shù)主要記錄當(dāng)前數(shù)據(jù)塊被文件使用的次數(shù),當(dāng)為O時(shí)表示此數(shù)據(jù)塊沒有被使用。步驟502、生成已存儲數(shù)據(jù)塊的內(nèi)存索引過濾器;所述內(nèi)存索引過濾器為一內(nèi)存中的索引結(jié)構(gòu),將全部已存儲數(shù)據(jù)塊的指紋的前若干位作為索引鍵,將所述索引鍵與對應(yīng)數(shù)據(jù)塊的地址存儲于所述內(nèi)存索引過濾器中。優(yōu)選的,在系統(tǒng)內(nèi)存中維護(hù)一個(gè)內(nèi)存索引過濾器,主要取所有數(shù)據(jù)塊指紋的前N個(gè)字符(N > 3),比如4個(gè)字符和塊地址以哈希表的方式加載到內(nèi)存中,當(dāng)一個(gè)新的數(shù)據(jù)塊要求寫入可以先從內(nèi)存索引過濾器中檢索是否存在相同的數(shù)據(jù)塊,因?yàn)槌qv在內(nèi)存檢索速度非???。步驟503、建立已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu);所述數(shù)據(jù)結(jié)構(gòu)包括多個(gè)索引節(jié)點(diǎn),每個(gè)索引節(jié)點(diǎn)對應(yīng)一個(gè)數(shù)據(jù)塊,記錄該數(shù)據(jù)塊 的基本信息和指針信息,所述指針信息指向所述數(shù)據(jù)塊的存儲地址。優(yōu)選的,在每個(gè)Inode (索引節(jié)點(diǎn))中,用來存放檔案及目錄的基本信息,包含時(shí)間、檔名、使用者及群組等信息,如果數(shù)據(jù)塊的指紋一致則數(shù)據(jù)塊指針(Data blockPointer)指向同一個(gè)數(shù)據(jù)塊(Data block),從而實(shí)現(xiàn)重復(fù)數(shù)據(jù)刪除的功能。步驟501至步驟503在系統(tǒng)初始化時(shí)即可進(jìn)行,目的是對已存儲的數(shù)據(jù)塊建立存儲體系。這些步驟并無嚴(yán)格時(shí)序,在進(jìn)行重復(fù)數(shù)據(jù)刪除之前完成即可。步驟504、在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋;步驟505、根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù);本步驟具體如圖6所示,包括步驟5051、檢查所述數(shù)據(jù)塊指紋的前若干位是否能夠與所述內(nèi)存索引過濾器中的索引鍵相匹配;本步驟中,根據(jù)判斷的結(jié)果,如果結(jié)果為存在相匹配的索引鍵,則轉(zhuǎn)入步驟5053;若無匹配的索引鍵,則進(jìn)入步驟5052。步驟5052、在所述數(shù)據(jù)塊指紋的前若干位不能與所述內(nèi)存索引過濾器中的任一索引鍵相匹配時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù)。步驟5053、在所述數(shù)據(jù)塊指紋的前若干位能夠與所述索引過濾器中的一個(gè)或多個(gè)索引鍵相匹配時(shí),提取所述相匹配的一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋,進(jìn)入步驟5054。步驟5054、將所述數(shù)據(jù)塊指紋與所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋進(jìn)行比對;本步驟中,判斷比對結(jié)果,在存在相同的指紋時(shí),進(jìn)入步驟5055 ;否則,進(jìn)入步驟5056。步驟5055、在所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋中存在與所述數(shù)據(jù)塊指紋相同的指紋時(shí),判定所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊重復(fù),進(jìn)入步驟506。步驟5056、在所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋中不存在與所述數(shù)據(jù)塊指紋相同的指紋時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù),進(jìn)入步驟507。步驟506、在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊;本步驟中,在刪除新的數(shù)據(jù)塊的同時(shí),將已存儲的與該新的數(shù)據(jù)塊相同的數(shù)據(jù)塊的索引次數(shù)加一。
步驟507、在所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊不重復(fù)時(shí),將所述數(shù)據(jù)添加至塊指紋索引中。步驟508、在所述已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)中為所述新的數(shù)據(jù)塊添加索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)的指紋信息指向所述新的數(shù)據(jù)塊的索引地址。本發(fā)明的實(shí)施例提供了一種重復(fù)數(shù)據(jù)刪除方法和系統(tǒng),在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋,根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索弓I,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù),在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊,減少重復(fù)數(shù)據(jù)刪除過程中重復(fù)數(shù)據(jù)的存儲,減少備份數(shù)據(jù)的傳輸和存儲,解決了現(xiàn)有的云計(jì)算系統(tǒng)中鏡像存儲系統(tǒng)存儲開銷過大的問題?!け绢I(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的全部或部分步驟可以使用計(jì)算機(jī)程序流程來實(shí)現(xiàn),所述計(jì)算機(jī)程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,所述計(jì)算機(jī)程序在相應(yīng)的硬件平臺上(如系統(tǒng)、設(shè)備、裝置、器件等)執(zhí)行,在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用集成電路來實(shí)現(xiàn),這些步驟可以被分別制作成一個(gè)個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。上述實(shí)施例中的各裝置/功能模塊/功能單元可以采用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,也可以分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上。上述實(shí)施例中的各裝置/功能模塊/功能單元以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。上述提到的計(jì)算機(jī)可讀取存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種重復(fù)數(shù)據(jù)刪除方法,其特征在于,包括 在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋; 根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù); 在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊。
2.根據(jù)權(quán)利要求I所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括 為每個(gè)塊組(Block Group)中已存儲數(shù)據(jù)塊的生成一塊指紋索引,在所述塊指紋索引中包括各個(gè)數(shù)據(jù)塊的塊指紋索引值,所述塊指紋索引值包括數(shù)據(jù)塊的指紋和引用計(jì)數(shù),所述引用計(jì)數(shù)紀(jì)錄所述數(shù)據(jù)塊被重復(fù)引用的次數(shù)。
3.根據(jù)權(quán)利要求2所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括 生成已存儲數(shù)據(jù)塊的內(nèi)存索引過濾器,所述內(nèi)存索引過濾器為一內(nèi)存中的索引結(jié)構(gòu),將全部已存儲數(shù)據(jù)塊的指紋的前若干位作為索引鍵,將所述索引鍵與對應(yīng)數(shù)據(jù)塊的地址存儲于所述內(nèi)存索引過濾器中。
4.根據(jù)權(quán)利要求3所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù)包括 檢查所述數(shù)據(jù)塊指紋的前若干位是否能夠與所述內(nèi)存索引過濾器中的索引鍵相匹配; 在所述數(shù)據(jù)塊指紋的前若干位不能與所述內(nèi)存索引過濾器中的任一索引鍵相匹配時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù)。
5.根據(jù)權(quán)利要求4所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述檢查所述數(shù)據(jù)塊指紋的前若干位是否能夠與所述內(nèi)存索引過濾器中的索引鍵相匹配的步驟之后還包括 在所述數(shù)據(jù)塊指紋的前若干位能夠與所述索引過濾器中的一個(gè)或多個(gè)索引鍵相匹配時(shí),提取所述相匹配的一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋; 將所述數(shù)據(jù)塊指紋與所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋進(jìn)行比對; 在所述Iv或多個(gè)索引鍵對應(yīng)的完整指紋中存在與所述數(shù)據(jù)塊指紋相冋的指紋時(shí),判定所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊重復(fù)。
6.根據(jù)權(quán)利要求5所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述將所述數(shù)據(jù)塊指紋與所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋進(jìn)行比對的步驟之后,還包括 在所述一個(gè)或多個(gè)索引鍵對應(yīng)的完整指紋中不存在與所述數(shù)據(jù)塊指紋相同的指紋時(shí),判定所述數(shù)據(jù)塊不與已存儲數(shù)據(jù)塊重復(fù)。
7.根據(jù)權(quán)利要求6所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊的步驟之后,還包括 將與所述新的數(shù)據(jù)塊相同的已存儲數(shù)據(jù)塊的引用次數(shù)加一。
8.根據(jù)權(quán)利要求I或7所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋的步驟之前,還包括 建立已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括多個(gè)索引節(jié)點(diǎn),每個(gè)索引節(jié)點(diǎn)對應(yīng)一個(gè)數(shù)據(jù)塊,記錄該數(shù)據(jù)塊的基本信息和指針信息,所述指針信息指向所述數(shù)據(jù)塊的存儲地址。
9.根據(jù)權(quán)利要求8所述的重復(fù)數(shù)據(jù)刪除方法,其特征在于,所述根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù)的步驟之后,還包括 在所述數(shù)據(jù)塊與已存儲數(shù)據(jù)塊不重復(fù)時(shí),將所述數(shù)據(jù)添加至塊指紋索引中; 在所述已存儲數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)中為所述新的數(shù)據(jù)塊添加索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)的指紋信息指向所述新的數(shù)據(jù)塊的索引地址。
全文摘要
本發(fā)明提供了一種重復(fù)數(shù)據(jù)刪除方法。涉及計(jì)算機(jī)應(yīng)用領(lǐng)域;解決了現(xiàn)有的云計(jì)算系統(tǒng)中鏡像存儲系統(tǒng)存儲開銷過大的問題。該方法包括在有新的數(shù)據(jù)塊需要寫入時(shí),生成所述數(shù)據(jù)塊的指紋;根據(jù)所述數(shù)據(jù)塊的指紋查詢預(yù)置的已存儲數(shù)據(jù)塊的塊指紋索引,檢查所述數(shù)據(jù)塊是否與已存儲數(shù)據(jù)塊重復(fù);在確定所述數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊重復(fù)時(shí),刪除所述新的數(shù)據(jù)塊。本發(fā)明提供的技術(shù)方案適用于云計(jì)算,實(shí)現(xiàn)了高效能的重復(fù)數(shù)據(jù)刪除功能。
文檔編號G06F12/06GK102915278SQ20121035051
公開日2013年2月6日 申請日期2012年9月19日 優(yōu)先權(quán)日2012年9月19日
發(fā)明者劉正偉, 張硯波 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
宜黄县| 和政县| 潍坊市| 永年县| 剑河县| 安徽省| 林州市| 敖汉旗| 大荔县| 勃利县| 砚山县| 桦川县| 泰顺县| 奉节县| 富平县| 恭城| 平泉县| 海安县| 廊坊市| 江华| 嘉禾县| 砚山县| 福鼎市| 鹤岗市| 玉龙| 新丰县| 称多县| 老河口市| 朔州市| 栖霞市| 嘉峪关市| 德化县| 曲靖市| 四子王旗| 南雄市| 汤原县| 沛县| 积石山| 竹北市| 武义县| 城口县|