一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法,該系統(tǒng)由進行文件操作的客戶端、存儲數(shù)據(jù)塊和管理元數(shù)據(jù)的存儲節(jié)點共同構(gòu)成,客戶端包括文件預(yù)處理模塊、局部重刪模塊、第一元數(shù)據(jù)管理模塊、數(shù)據(jù)傳輸模塊,存儲節(jié)點包括重刪模塊、第二元數(shù)據(jù)管理模塊、存儲模塊;該方法針對去中心云環(huán)境中存在的冗余數(shù)據(jù),從客戶端和存儲節(jié)點共同執(zhí)行重復(fù)數(shù)據(jù)刪除操作,先刪除重復(fù)的文件,再刪除重復(fù)的數(shù)據(jù)塊,從而降低了去中心云環(huán)境中數(shù)據(jù)的冗余性。
【專利說明】
一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法,屬于計算機數(shù)據(jù)存儲技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]目前,云存儲系統(tǒng)中重復(fù)數(shù)據(jù)刪除技術(shù)的研究相對較少且大都集中于有中心云環(huán)境中數(shù)據(jù)的安全,典型的重刪機制有基于代理加密的重刪、基于交互式PoW(Pr00f ofOwnership,所有者證明)的重刪、基于數(shù)據(jù)流行度的重刪、基于語義安全的混合重刪等。此夕卜,還有權(quán)衡存儲效率和容錯性的動態(tài)數(shù)據(jù)重刪機制。然而,有中心云環(huán)境中主節(jié)點(元數(shù)據(jù)服務(wù)器)管理著所有的元數(shù)據(jù),真實的數(shù)據(jù)存放在各個存儲節(jié)點上,這種管理方式較為簡單方便,但很容易成為影響系統(tǒng)性能的瓶頸。尤其是,當存儲節(jié)點數(shù)量規(guī)模很大時。一旦主節(jié)點宕機,客戶端便無法與存儲節(jié)點直接進行交互,存在著很大的風險性。無中心云環(huán)境的優(yōu)勢在于沒有主節(jié)點,不受其限制,元數(shù)據(jù)信息和數(shù)據(jù)塊的存儲均由存儲節(jié)點存儲和管理。目前,并沒有適用于無中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是:提供一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法,對重復(fù)文件和文件中的重復(fù)數(shù)據(jù)塊進行刪除,降低了去中心云環(huán)境的數(shù)據(jù)冗余性。
[0004]本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0005]—種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng),該系統(tǒng)包括若干客戶端和若干存儲節(jié)點,各存儲節(jié)點邏輯構(gòu)成Chord環(huán),所述客戶端包括文件預(yù)處理模塊、局部重刪模塊、第一元數(shù)據(jù)管理模塊、數(shù)據(jù)傳輸模塊,存儲節(jié)點包括重刪模塊、第二元數(shù)據(jù)管理模塊、存儲模塊;
[0006]所述文件預(yù)處理模塊用于對本地待上傳文件進行分類;
[0007]所述局部重刪模塊用于對分類后的文件計算其指紋值,并將待上傳文件的指紋值與本地已上傳的同類型文件的指紋值進行比較,若指紋值相同,則不上傳該文件,否則,將待上傳文件的指紋值經(jīng)數(shù)據(jù)傳輸模塊上傳到指紋值對應(yīng)的存儲節(jié)點;
[0008]所述第一元數(shù)據(jù)管理模塊用于記錄客戶端已上傳文件的指紋值及文件其他基本屬性信息;
[0009]所述重刪模塊用于通過Chord算法查找待上傳文件的指紋值,若找到,則通過數(shù)據(jù)傳輸模塊通知客戶端不用上傳該文件,否則,告知客戶端待上傳文件為非重復(fù)文件;
[0010]所述局部重刪模塊還用于將非重復(fù)文件切分成數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值,將各數(shù)據(jù)塊的指紋值經(jīng)數(shù)據(jù)傳輸模塊上傳到指紋值對應(yīng)的存儲節(jié)點;
[0011 ]所述重刪模塊還用于通過Chord算法查找數(shù)據(jù)塊的指紋值,若找到,則通知客戶端不用上傳該數(shù)據(jù)塊,否則,將該數(shù)據(jù)塊上傳到對應(yīng)存儲節(jié)點的存儲模塊;
[0012]所述第二元數(shù)據(jù)管理模塊用于記錄落在存儲節(jié)點的各文件的指紋值,及構(gòu)成文件的各數(shù)據(jù)塊的元數(shù)據(jù)信息。
[0013]一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法,該方法包括如下步驟:
[0014]步驟I,各客戶端對本地待上傳文件進行分類,計算待上傳文件的指紋值,將待上傳文件的指紋值與本地已上傳的同類型文件的指紋值進行比較,若指紋值相同,則將待上傳文件刪除,否則,將待上傳文件的指紋值通過訪問入口節(jié)點上傳到對應(yīng)的存儲節(jié)點上;
[0015]步驟2,訪問入口節(jié)點通過Chord算法查找待上傳文件的指紋值,若找到,則通知客戶端不用上傳該文件,否則,告知客戶端待上傳文件為非重復(fù)文件;
[0016]步驟3,客戶端將非重復(fù)文件切分成若干數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值,將各數(shù)據(jù)塊的指紋值上傳到訪問入口節(jié)點,由訪問入口節(jié)點通過Chord算法查找數(shù)據(jù)塊的指紋值,若找到,則通知客戶端不用上傳該數(shù)據(jù)塊,否則,將該數(shù)據(jù)塊上傳到對應(yīng)的存儲節(jié)點。
[0017]作為本發(fā)明方法的一種優(yōu)選方案,該方法還包括步驟4:當客戶端向存儲節(jié)點發(fā)出在線修改文件請求時,由文件指紋值所在存儲節(jié)點將構(gòu)成該文件的數(shù)據(jù)塊預(yù)取到該存儲節(jié)點上,供客戶端進行編輯;此時,需要重新計算修改后的數(shù)據(jù)塊的指紋值,并通過Chord算法查找重新計算的指紋值是否在數(shù)據(jù)塊對應(yīng)的存儲節(jié)點上,若存在,則不保留修改后的數(shù)據(jù)塊,若不存在,則將修改后的數(shù)據(jù)塊存儲到重新計算的指紋值對應(yīng)的存儲節(jié)點上。
[0018]作為本發(fā)明方法的一種優(yōu)選方案,步驟3所述將非重復(fù)文件切分成若干數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值的具體方法為:利用定長分塊算法對非重復(fù)文件進行切分,塊長為64MB,當非重復(fù)文件小于等于64MB時,無需切分,對所有數(shù)據(jù)塊利用MD5算法計算指紋值。
[0019]作為本發(fā)明方法的一種優(yōu)選方案,步驟I所述計算待上傳文件的指紋值的算法為MD5算法。
[0020]本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
[0021]1、本發(fā)明用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法,針對無中心云環(huán)境中數(shù)據(jù)存在冗余性的問題,對重復(fù)數(shù)據(jù)進行刪除,降低了去中心云環(huán)境中數(shù)據(jù)的冗余性。
[0022]2、本發(fā)明用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)及方法,元數(shù)據(jù)不再由元數(shù)據(jù)服務(wù)器統(tǒng)一管理,全局重復(fù)數(shù)據(jù)刪除的實現(xiàn)較為困難,尤其是與存儲端現(xiàn)有指紋值的比對。存儲端各個存儲節(jié)點采用Chord算法作為路由算法,使得指紋值的比對變得更為方便快捷。
【附圖說明】
[0023]圖1是本發(fā)明用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)的整體架構(gòu)圖。
[0024]圖2是本發(fā)明用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法的流程圖。
【具體實施方式】
[0025]下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出。下面通過參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0026]如圖1所示,為本發(fā)明去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng)的體系架構(gòu)圖。該系統(tǒng)由m個客戶端(Client)和η個存儲節(jié)點(Storage Node,Snode)共同構(gòu)成。其中,客戶端主要是發(fā)起文件上傳、訪問、修改、刪除等操作的對象;存儲節(jié)點則負責存儲數(shù)據(jù)塊及其元數(shù)據(jù)信息。客戶端進行文件級重復(fù)數(shù)據(jù)刪除和數(shù)據(jù)塊級重刪的準備工作(文件切分和指紋值計算)。
[0027]客戶端主要有文件預(yù)處理模塊、局部重刪模塊、元數(shù)據(jù)管理模塊和數(shù)據(jù)傳輸模塊,其中文件預(yù)處理模塊依據(jù)文件的類型進行文件分類,后期進行數(shù)據(jù)塊級重刪時先過濾掉小于64MB的非重復(fù)文件;局部重刪模塊從文件級和數(shù)據(jù)塊級兩個角度進行重刪操作;元數(shù)據(jù)管理模塊主要記錄客戶端已上傳數(shù)據(jù)塊的指紋值信息,以避免本地重復(fù)數(shù)據(jù)的上傳;數(shù)據(jù)傳輸模塊負責將待上傳文件的元數(shù)據(jù)信息上傳到存儲端訪問入口,將非重復(fù)數(shù)據(jù)塊上傳到目標存儲節(jié)點上。各模塊之間有著一定的聯(lián)系,文件預(yù)處理模塊處理后的文件交給局部重刪模塊進行文件級的重刪,經(jīng)過文件級重刪后的非重復(fù)文件再返還給文件預(yù)處理模塊進行過濾,最后再由局部重刪模塊執(zhí)行數(shù)據(jù)塊級重刪的準備工作,包括文件切分成數(shù)據(jù)塊和數(shù)據(jù)塊指紋值的計算。
[0028]存儲節(jié)點主要包括重刪模塊、元數(shù)據(jù)管理模塊和存儲模塊,其中重刪模塊主要是用來去除不同用戶上傳的相同數(shù)據(jù),包括相同文件和相同數(shù)據(jù)塊;元數(shù)據(jù)管理模塊記錄本節(jié)點上的數(shù)據(jù)塊的元數(shù)據(jù)信息和文件的重構(gòu)信息表;存儲模塊用來存儲真實的數(shù)據(jù)塊。
[0029]如圖2所示,為本發(fā)明用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法的流程圖,按照以下各步驟進行重復(fù)數(shù)據(jù)刪除:
[0030]步驟一:每個客戶端對本地待上傳文件進行預(yù)處理,通過文件級的局部重復(fù)數(shù)據(jù)刪除操作以防重復(fù)文件的再次上傳,然后將客戶端無法確定為重復(fù)文件的文件指紋值批量上傳到存儲端的訪問入口節(jié)點N.上。其中,文件級重復(fù)數(shù)據(jù)刪除是通過MD5算法計算出文件的指紋值,首先去除待上傳文件中相同的文件,然后與本地已上傳的歷史文件進行比對去除本地已上傳過的文件,最后將無法確認為重復(fù)文件的文件通過查找存儲端的元數(shù)據(jù)信息來確定。
[0031]存儲端的訪問入口節(jié)點是根據(jù)每個客戶端用戶的自身特點而特定的。用戶注冊時的id(全局唯一)決定了用戶資料所應(yīng)存放的存儲節(jié)點,即該用戶在存儲端的訪問入口。
[0032]步驟二:由存儲端的訪問入口節(jié)點Na。。使用Chord算法查找該文件的指紋值所在的存儲節(jié)點以確定重復(fù)文件,若找到,則通知客戶端不用上傳,否則確認為非重復(fù)文件。其中,Chord算法作為去中心云環(huán)境存儲端各個節(jié)點互相通信的路由算法,可快速查找到給定指紋值所在的目標存儲節(jié)點,若該目標存儲節(jié)點上沒有該指紋值,則該文件為非重復(fù)文件,否則為重復(fù)文件。
[0033]步驟三:客戶端對于非重復(fù)文件進行數(shù)據(jù)塊級重復(fù)數(shù)據(jù)刪除的準備工作,包括使用定長塊切分文件(塊長為64MB,文件小于等于64MB時,無需切分,直接將文件當作數(shù)據(jù)塊處理)和計算切分好的數(shù)據(jù)塊的指紋值(MD5算法),并通過存儲端的訪問入口節(jié)點1。。使用Chord算法來查找這些數(shù)據(jù)塊的指紋值,并將非重復(fù)數(shù)據(jù)塊上傳到對應(yīng)的存儲節(jié)點上。
[0034]步驟四:客戶端發(fā)出在線修改文件的請求時,由文件指紋值所在存儲節(jié)點仏&根據(jù)文件的元數(shù)據(jù)信息將數(shù)據(jù)塊預(yù)取到本節(jié)點Nflle上,供客戶端進行編輯。每個存儲節(jié)點上均保存著數(shù)據(jù)塊的指紋值信息,也保存著文件的指紋值信息以及文件的重構(gòu)信息。通過文件指紋值便可以定位到組成其的每個數(shù)據(jù)塊的物理地址。通過查找文件的指紋值所在的存儲節(jié)點,便可以在該節(jié)點上找到該文件的重構(gòu)信息表,即組成該文件的各個數(shù)據(jù)塊的相關(guān)?目息O
[00;35]步驟五:節(jié)點Nfiie重新計算修改后的數(shù)據(jù)塊的指紋值,使用Chord算法查找該指紋值以確認存儲端是否已經(jīng)存在。若存在,則節(jié)點Nflle不用保留修改后的數(shù)據(jù)塊,更新相應(yīng)的元數(shù)據(jù);否則的話根據(jù)Chord算法找到其目標存儲節(jié)點,將修改后的數(shù)據(jù)塊迀移到目標節(jié)點上。
[0036]存儲端的路由算法采用Chord算法,可保證同一個數(shù)據(jù)塊始終存放在同一個存儲節(jié)點上。
[0037]以上實施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動,均落入本發(fā)明保護范圍之內(nèi)。
【主權(quán)項】
1.一種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除系統(tǒng),其特征在于,該系統(tǒng)包括若干客戶端和若干存儲節(jié)點,各存儲節(jié)點邏輯構(gòu)成Chord環(huán),所述客戶端包括文件預(yù)處理模塊、局部重刪模塊、第一元數(shù)據(jù)管理模塊、數(shù)據(jù)傳輸模塊,存儲節(jié)點包括重刪模塊、第二元數(shù)據(jù)管理模塊、存儲模塊; 所述文件預(yù)處理模塊用于對本地待上傳文件進行分類; 所述局部重刪模塊用于對分類后的文件計算其指紋值,并將待上傳文件的指紋值與本地已上傳的同類型文件的指紋值進行比較,若指紋值相同,則不上傳該文件,否則,將待上傳文件的指紋值經(jīng)數(shù)據(jù)傳輸模塊上傳到指紋值對應(yīng)的存儲節(jié)點; 所述第一元數(shù)據(jù)管理模塊用于記錄客戶端已上傳文件的指紋值及文件其他基本屬性信息; 所述重刪模塊用于通過Chord算法查找待上傳文件的指紋值,若找到,則通過數(shù)據(jù)傳輸模塊通知客戶端不用上傳該文件,否則,告知客戶端待上傳文件為非重復(fù)文件; 所述局部重刪模塊還用于將非重復(fù)文件切分成數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值,將各數(shù)據(jù)塊的指紋值經(jīng)數(shù)據(jù)傳輸模塊上傳到指紋值對應(yīng)的存儲節(jié)點; 所述重刪模塊還用于通過Chord算法查找數(shù)據(jù)塊的指紋值,若找到,則通知客戶端不用上傳該數(shù)據(jù)塊,否則,將該數(shù)據(jù)塊上傳到對應(yīng)存儲節(jié)點的存儲模塊; 所述第二元數(shù)據(jù)管理模塊用于記錄落在存儲節(jié)點的各文件的指紋值,及構(gòu)成文件的各數(shù)據(jù)塊的元數(shù)據(jù)信息。2.—種用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法,其特征在于,該方法包括如下步驟: 步驟I,各客戶端對本地待上傳文件進行分類,計算待上傳文件的指紋值,將待上傳文件的指紋值與本地已上傳的同類型文件的指紋值進行比較,若指紋值相同,則將待上傳文件刪除,否則,將待上傳文件的指紋值通過訪問入口節(jié)點上傳到對應(yīng)的存儲節(jié)點上; 步驟2,訪問入口節(jié)點通過Chord算法查找待上傳文件的指紋值,若找到,則通知客戶端不用上傳該文件,否則,告知客戶端待上傳文件為非重復(fù)文件; 步驟3,客戶端將非重復(fù)文件切分成若干數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值,將各數(shù)據(jù)塊的指紋值上傳到訪問入口節(jié)點,由訪問入口節(jié)點通過Chord算法查找數(shù)據(jù)塊的指紋值,若找到,則通知客戶端不用上傳該數(shù)據(jù)塊,否則,將該數(shù)據(jù)塊上傳到對應(yīng)的存儲節(jié)點。3.根據(jù)權(quán)利要求2所述用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法,其特征在于,該方法還包括步驟4:當客戶端向存儲節(jié)點發(fā)出在線修改文件請求時,由文件指紋值所在存儲節(jié)點將構(gòu)成該文件的數(shù)據(jù)塊預(yù)取到該存儲節(jié)點上,供客戶端進行編輯;此時,需要重新計算修改后的數(shù)據(jù)塊的指紋值,并通過Chord算法查找重新計算的指紋值是否已經(jīng)在對應(yīng)的存儲節(jié)點上,若存在,則不保留修改后的數(shù)據(jù)塊,若不存在,則將修改后的數(shù)據(jù)塊存儲到重新計算的指紋值對應(yīng)的存儲節(jié)點上。4.根據(jù)權(quán)利要求2或3所述用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法,其特征在于,步驟3所述將非重復(fù)文件切分成若干數(shù)據(jù)塊,并計算各數(shù)據(jù)塊的指紋值的具體方法為:利用定長分塊算法對非重復(fù)文件進行切分,塊長為64MB,當非重復(fù)文件小于等于64MB時,無需切分,對所有數(shù)據(jù)塊利用MD5算法計算指紋值。5.根據(jù)權(quán)利要求2或3所述用于去中心云環(huán)境的重復(fù)數(shù)據(jù)刪除方法,其特征在于,步驟I所述計算待上傳文件的指紋值的算法為MD5算法。
【文檔編號】G06F17/30GK105955675SQ201610456843
【公開日】2016年9月21日
【申請日】2016年6月22日
【發(fā)明人】徐小龍, 涂群
【申請人】南京郵電大學(xué)