一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)及方法。該系統(tǒng)包括基于計算機網(wǎng)絡(luò)互聯(lián)的客戶端、管理服務(wù)器和重刪節(jié)點,客戶端與管理服務(wù)器之間通過應(yīng)用感知路由方法為應(yīng)用文件存儲確定重刪節(jié)點列表,客戶端與重刪節(jié)點之間通過相似感知路由方法從重刪節(jié)點列表中確定目標(biāo)重刪節(jié)點,用于存儲應(yīng)用文件中的超塊。通過該系統(tǒng)對應(yīng)用文件進行存儲管理,能夠使得具有相同類型的應(yīng)用文件存放到相同的重刪節(jié)點上,不僅有效減輕網(wǎng)絡(luò)通信的負荷量,還有利于提高重刪率,以及在每個重刪節(jié)點上的存儲吞吐率,增強網(wǎng)絡(luò)的可擴展性。
【專利說明】
-種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及計算機數(shù)據(jù)存儲管理領(lǐng)域,特別是設(shè)及一種基于云計算環(huán)境中的應(yīng)用 感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)及方法。
【背景技術(shù)】
[0002] 在數(shù)字世界中,數(shù)據(jù)容量和復(fù)雜度爆炸式增長。國際數(shù)據(jù)公司IDC(International Data Co巧oration)研究表明:在過去的五年里,數(shù)據(jù)年增長量翻9倍達到7ZB,并且在未來 的十年內(nèi),將增長44倍達到35ZB。企業(yè)的數(shù)字信息量也很容易上升到PB級甚至邸級。由于大 數(shù)據(jù)時代數(shù)據(jù)量的不斷增長使得管理變得越來越復(fù)雜,數(shù)據(jù)管理成本和數(shù)據(jù)丟失風(fēng)險提 高。隨著存儲系統(tǒng)的不斷擴展,不僅需要消耗數(shù)據(jù)中屯、更多的數(shù)據(jù)存儲空間、能耗和制冷代 價,也需要增加大量的管理時間和提高操作復(fù)雜度和人為出錯風(fēng)險。同時,由于現(xiàn)代存儲系 統(tǒng)對高性能的需求,內(nèi)存正在取代磁盤,而磁盤在取代磁帶。為滿足大數(shù)據(jù)管理所需的服務(wù) 級別協(xié)議(Service Level Agreement,SLA),管理存儲介質(zhì)變化下的數(shù)據(jù)泛濫成了新的挑 戰(zhàn)。
[0003] 重復(fù)數(shù)據(jù)刪除(簡稱重刪)存儲技術(shù)被廣泛應(yīng)用于磁盤存儲系統(tǒng)來管理海量的備 份、歸檔文件和虛擬機鏡像等數(shù)據(jù),利用存儲數(shù)據(jù)集中高度數(shù)據(jù)冗余的特性來節(jié)省存儲容 量需求和提高網(wǎng)絡(luò)帶寬利用率。為滿足大數(shù)據(jù)存儲在容量和性能方面的可擴展需求,基于 云計算環(huán)境的分布式重復(fù)數(shù)據(jù)刪除存儲系統(tǒng)被應(yīng)用于海量存儲數(shù)據(jù)集的管理,W獲得高重 刪壓縮比和高重刪吞吐率。分布式重復(fù)數(shù)據(jù)刪除存儲系統(tǒng)通常具有將應(yīng)用數(shù)據(jù)從客戶端分 配到多個重復(fù)數(shù)據(jù)刪除服務(wù)器節(jié)點(簡稱重刪節(jié)點)的數(shù)據(jù)路由機制,W及在每一個重刪節(jié) 點內(nèi)進行獨立重復(fù)數(shù)據(jù)刪除和存儲的過程。為及時刪除重復(fù)數(shù)據(jù)、優(yōu)化數(shù)據(jù)存儲和傳輸開 銷,需要在重刪存儲系統(tǒng)設(shè)計中選擇在線重刪機制。
[0004] 針對大規(guī)模存儲系統(tǒng),在數(shù)據(jù)塊級的在線分布式重復(fù)數(shù)據(jù)刪除存儲方面存在W下 兩大挑戰(zhàn):
[0005] 第一,重復(fù)數(shù)據(jù)刪除服務(wù)器節(jié)點的信息孤島:在分布式重復(fù)數(shù)據(jù)刪除過程中,出于 對系統(tǒng)開銷的考慮,往往只對節(jié)點內(nèi)部的數(shù)據(jù)進行消重,而不會去執(zhí)行跨節(jié)點的重復(fù)數(shù)據(jù) 刪除,由此產(chǎn)生重復(fù)數(shù)據(jù)刪除服務(wù)器節(jié)點信息孤島。因此,一種能將數(shù)據(jù)冗余集中在節(jié)點內(nèi) 部,減少節(jié)點間數(shù)據(jù)重疊,維持系統(tǒng)通信低開銷,同時支持負載均衡的數(shù)據(jù)路由機制對分布 式重復(fù)數(shù)據(jù)刪除至關(guān)重要。
[0006] 第二,數(shù)據(jù)塊索引查詢磁盤瓶頸:為支持重刪節(jié)點內(nèi)部的重復(fù)數(shù)據(jù)刪除和存儲,磁 盤上需要保存一個數(shù)據(jù)塊索引來建立從數(shù)據(jù)塊指紋到數(shù)據(jù)塊存儲地址的映射,但數(shù)據(jù)塊索 引通常太大W致難W適應(yīng)重復(fù)數(shù)據(jù)刪除服務(wù)器節(jié)點有限的內(nèi)存,再加上頻繁隨機地對磁盤 進行訪問W獲取數(shù)據(jù)塊的索引,造成來自客戶端的多個數(shù)據(jù)流的并行重刪的特性嚴(yán)重下 降。因此,數(shù)據(jù)塊索引查詢磁盤瓶頸成為近年來重復(fù)數(shù)據(jù)刪除系統(tǒng)研究的熱點。
[0007] 另外,在傳統(tǒng)的數(shù)據(jù)存儲系統(tǒng)架構(gòu)中包括Ξ個層級:應(yīng)用層、文件系統(tǒng)層和存儲硬 件層,每一層各自包含不同類型的有關(guān)該層所管理數(shù)據(jù)的信息,每一層的運些信息通常不 會被其他層獲得。因此,為了優(yōu)化重刪,綜合考慮存儲和應(yīng)用進行協(xié)同設(shè)計是可取的。運樣, 在低級存儲層就會有對高級應(yīng)用層的數(shù)據(jù)結(jié)構(gòu)和訪問特性有深入的了解?,F(xiàn)有技術(shù)中,對 重復(fù)數(shù)據(jù)的刪除沒有設(shè)及到對具體應(yīng)用文件的內(nèi)容和模式,并且不能找到文件中的冗余成 分。
[0008] 為此,本發(fā)明將針對大規(guī)模分布式重刪系統(tǒng)進行設(shè)計,運種系統(tǒng)通常包括數(shù)W千 計的云環(huán)境下的存儲服務(wù)器節(jié)點。若是按照現(xiàn)有技術(shù)中傳統(tǒng)分布式處理方法將難W實現(xiàn), 運是由于運些方法沒有很好地開發(fā)應(yīng)用層信息和數(shù)據(jù)相似性特征,在整體重刪率、單一重 刪節(jié)點的吞吐率、可擴展性、通信開銷等方面存在不足。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明主要解決的技術(shù)問題是提供一種基于應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系 統(tǒng)及方法,解決現(xiàn)有技術(shù)中沒有根據(jù)應(yīng)用文件類型進行重刪存儲,系統(tǒng)網(wǎng)絡(luò)的工作負載量 過大、擴展性不強,W及重刪節(jié)點的吞吐率不高等問題。
[0010] 為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種基于應(yīng)用感知的 大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),包括基于計算機網(wǎng)絡(luò)互聯(lián)的客戶端、管理服務(wù)器和重刪節(jié)點,該 客戶端包括數(shù)據(jù)劃分模塊、指紋計算模塊和相似感知數(shù)據(jù)路由模塊,該數(shù)據(jù)劃分模塊用于 對應(yīng)用文件按照固定長度或可變長度劃分為數(shù)據(jù)塊,再進一步將該數(shù)據(jù)塊組合成超塊;該 指紋計算模塊利用抗沖突加密哈希函數(shù)計算該超塊中的每一個數(shù)據(jù)塊的指紋,得到該超塊 對應(yīng)的各數(shù)據(jù)塊的指紋列表;該相似感知數(shù)據(jù)路由模塊利用相似感知路由方法為該超塊確 定一個用于存儲該超塊的目標(biāo)重刪節(jié)點;該管理服務(wù)器包括文件會話管理模塊和應(yīng)用感知 路由決策模塊,該文件會話管理模塊用于存儲該應(yīng)用文件與該應(yīng)用文件劃分的數(shù)據(jù)塊的指 紋之間的映射關(guān)系,W及需要重構(gòu)該應(yīng)用文件的元數(shù)據(jù)信息;該應(yīng)用感知路由決策模塊與 該相似感知數(shù)據(jù)路由模塊之間通過應(yīng)用感知路由方法,為該應(yīng)用文件確定一組用于存儲該 應(yīng)用文件的超塊的重刪節(jié)點列表,并反饋給該客戶端;該重刪節(jié)點包括應(yīng)用感知相似索引 查詢模塊、塊指紋緩存模塊W及并行容器管理模塊,該應(yīng)用感知相似索引查詢模塊用于向 該客戶端反饋應(yīng)用感知相似性索引查詢結(jié)果,該塊指紋緩存模塊用于緩存最近頻繁訪問的 數(shù)據(jù)塊的指紋,W加速對數(shù)據(jù)塊的查詢處理,該并行容器管理模塊用于W并行處理的方式 存儲唯一數(shù)據(jù)塊。
[0011] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該抗沖突加密哈 希函數(shù)包括MD5、SHA-1和/或SHA-2函數(shù)。
[0012] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該管理服務(wù)器中 設(shè)置有應(yīng)用路由表,該應(yīng)用路由表包括應(yīng)用文件類型與對應(yīng)的重刪節(jié)點識別號、對應(yīng)的重 刪節(jié)點的容量之間的映射關(guān)系。
[0013] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該重刪節(jié)點內(nèi)存 中設(shè)置有應(yīng)用感知相似索引表和塊指紋緩存,在磁盤陣列中設(shè)置有容器,該應(yīng)用感知相似 索引表由應(yīng)用文件類型索引和基于應(yīng)用文件類型分類的哈希表組成,該容器包含存儲唯一 數(shù)據(jù)塊的數(shù)據(jù)段部分和存儲相應(yīng)唯一數(shù)據(jù)塊元信息的元數(shù)據(jù)段部分,該塊指紋緩存用于保 存最近訪問的該容器內(nèi)的所有數(shù)據(jù)塊指紋,W加速對該容器內(nèi)的數(shù)據(jù)塊指紋的查詢操作。
[0014] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該基于應(yīng)用文件 類型分類的哈希表中的每一項均包括超塊的代表性數(shù)據(jù)塊指紋與存儲該超塊的容器識別 號之間的映射關(guān)系,該塊指紋緩存為Key-化lue型結(jié)構(gòu),由一個雙鏈表索引的哈希表構(gòu)建而 成。
[0015] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該應(yīng)用感知路由 方法是:
[0016] 第一步,在該管理服務(wù)器中,對來自該客戶端的需要存儲的應(yīng)用文件,確定該應(yīng)用 文件的擴展名;
[0017] 第二步,在該管理服務(wù)器的該應(yīng)用路由表中查詢,找到該應(yīng)用文件的擴展名對應(yīng) 的重刪節(jié)點Ai,該重刪節(jié)點Ai存儲相同類型的應(yīng)用文件;
[0018] 第Ξ步,將所有存儲該相同類型應(yīng)用文件的重刪節(jié)點組成一個重刪節(jié)點列表1D_ list= {Al,A2,...,Am},且滿足該處,....,九陽,S2, S[\},該{Si, S2,-|,Sn}表示該應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中的所有的重刪節(jié)點的列表;
[0019] 第四步,檢查該重刪節(jié)點列表1D_list,若該iD_//.s'i=0或者該ID_list中的各重 刪節(jié)點均已存滿,則向該ID_list僅添加一個具有最少存儲負載的重刪節(jié)點Sl,即ID_list ={Sl};
[0020] 第五步,該管理服務(wù)器向該客戶端返回該應(yīng)用文件對應(yīng)的該重刪節(jié)點列表1D_ list 0
[0021] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)另一個實施例中,該相似感知路由 方法是:
[0022] 第一步,在該客戶端,利用該數(shù)據(jù)劃分模塊對應(yīng)用文件劃分為C個數(shù)據(jù)塊,再將運C 個數(shù)據(jù)塊組合成一個超塊S,通過加密哈希函數(shù)計算得到該超塊S的所有C個數(shù)據(jù)塊指紋列 表怖1而2,-..而山
[0023] 第二步,對該數(shù)據(jù)塊指紋列表{fpl,fp2,…,fp。}進行排序,選取k個最小的數(shù)據(jù)塊 指納所>1分化喻k}c旅1,.爾2,:·.·,加 ?乍為該超塊S的代表性數(shù)據(jù)塊指紋,即該超塊S的 手紋;
[0024] 第Ξ步,從該應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中的所有Ν個重刪節(jié)點中選取k 個候選重刪節(jié)點,該k個候選重刪節(jié)點的識別號為{rfpimod N,rfp2mod 化mod N}, 將該超塊S的手紋分別發(fā)送給該k個候選重刪節(jié)點;
[0025] 第Ξ步,在該k個候選重刪節(jié)點上,均查詢該超塊S手紋中各代表性數(shù)據(jù)塊指紋是 否存在,從而得到該k候選重刪節(jié)點內(nèi)已存的代表性數(shù)據(jù)塊指紋數(shù){ri,η,…,η},該代表性 數(shù)據(jù)塊指紋數(shù)It 1,Γ2,···,rk}作為該k候選重刪節(jié)點對該超塊S的相似值;
[0026] 第四步,將該k個候選重刪節(jié)點存儲使用率與所有N個重刪節(jié)點的平均存儲使用率 相除,計算該k個候選重刪節(jié)點的相對存儲使用率{wi,W2,···,Wk};
[0027] 第五步,選擇在該k個候選重刪節(jié)點中,選取識別號i滿足;Ti/wi = max{;ri/wi,r2/ W2,···,rk/wk}的重刪節(jié)點作為該超塊S存儲的目標(biāo)重刪節(jié)點。
[0028] 本發(fā)明還提供了一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除方法,基于前述應(yīng)用感知的大數(shù) 據(jù)重復(fù)刪除存儲系統(tǒng)對應(yīng)用文件進行存儲和獲取,對應(yīng)用文件的存儲方法是:
[0029] 第一步,該客戶端向該管理服務(wù)器發(fā)送在該應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng) 中存儲一個應(yīng)用文件的化tFi 1 eReq消息,該化tFi 1 eReq消息包含該應(yīng)用文件的元數(shù)據(jù);
[0030] 第二步,該管理服務(wù)器接收該化tFileReq消息后,存儲該應(yīng)用文件的元數(shù)據(jù),并且 確認該應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中有足夠的存儲空間來存儲該應(yīng)用文件;接 著,該管理服務(wù)器利用該應(yīng)用感知路由方法,為該應(yīng)用文件確定一組用于存儲該應(yīng)用文件 的重刪節(jié)點列表;然后,該管理服務(wù)器向該客戶端發(fā)回一個PutFileResp消息,在該 PutFileResp消息中包含該管理服務(wù)器向該客戶端回應(yīng)的該應(yīng)用文件識別號,W及該應(yīng)用 文件對應(yīng)的重刪節(jié)點列表;
[0031] 第Ξ步,該客戶端接收化tFileResp消息后,對于該應(yīng)用文件中的第1個超塊 Supe;rChunk_l,利用該相似感知路由方法,分別向k個候選重刪節(jié)點發(fā)出LookupSCReq查詢 請求,該k個候選重刪節(jié)點分別對超塊Supe;K:hunk_l的代表性指紋進行相似索引查找,確定 對應(yīng)的加權(quán)相似值,然后向該用戶端回應(yīng)LookupSCResp消息,該LookupSCResp消息包含了 該候選重刪節(jié)點向該客戶端回應(yīng)的與該超塊SuperChunk_l對應(yīng)的加權(quán)相似值;
[0032] 第四步,該客戶端接收該k個候選重刪節(jié)點各自反饋的LookupSCResp消息后,根據(jù) 各該加權(quán)相似值的大小,選擇其中加權(quán)相似值最大的一個候選重刪節(jié)點作為目標(biāo)重刪節(jié) 點,用W存儲該超塊Super化unk_l,并且將該目標(biāo)重刪節(jié)點的識別號通過化tSCReq消息通 知該管理服務(wù)器,該管理服務(wù)器向該客戶端回應(yīng)化tSCResp消息;
[0033] 第五步,該客戶端向該目標(biāo)重刪節(jié)點發(fā)出Lookup化unks-SCReq請求信息,并W批 量方式發(fā)出該超塊Super化unk_l的全部數(shù)據(jù)塊指紋到該目標(biāo)重刪節(jié)點,用W確認該數(shù)據(jù)塊 在該目標(biāo)重刪節(jié)點中是否重復(fù),該目標(biāo)重刪節(jié)點進行數(shù)據(jù)塊指紋查找后,向該客戶端返回 LookupQumksSCResp消息,該LookupQiunksSCResp消息中包含該超塊Supe;rQiunk_l在該目 標(biāo)重刪節(jié)點不重復(fù)的唯一數(shù)據(jù)塊的列表;
[0034] 第六步,該客戶端向該目標(biāo)重刪節(jié)點發(fā)出化ique化unksSC消息,并W批量方式將 該超塊Supe;K:hunk_l中的唯一數(shù)據(jù)塊發(fā)送到該目標(biāo)重刪節(jié)點,該目標(biāo)重刪節(jié)點接收該唯一 數(shù)據(jù)塊并存儲,然后向該管理服務(wù)器返回SCAck確認消息;
[0035] 第屯步,對于該應(yīng)用文件的后續(xù)其他超塊,重復(fù)W上第Ξ步至第六步,直至該應(yīng)用 文件的所有超塊完成存儲,結(jié)束對該應(yīng)用文件的存儲。
[0036] 在本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除方法另一個實施例中,對應(yīng)用文件的獲取方 法是:
[0037] 第一步,該客戶端向該管理服務(wù)器發(fā)出GetFi leReq請求,請求獲取一個應(yīng)用文件, 該管理服務(wù)器響應(yīng)該GetFileReq請求,通過查詢該應(yīng)用文件的元數(shù)據(jù)后,向該客戶端反饋 GetFileResp消息,該GetFileResp消息中包含被請求獲取的該應(yīng)用文件的超塊列表,W及 該超塊列表中的超塊到對應(yīng)的重刪節(jié)點的映射;
[0038] 第二步,該客戶端收到GetFileResp消息后,向該應(yīng)用文件的超塊列表中的超塊對 應(yīng)的重刪節(jié)點發(fā)出GetSuper化unk消息,請求該重刪節(jié)點獲取該超塊;
[0039] 第Ξ步,重刪節(jié)點接收GetSuper化unk消息,從其容器中獲取對應(yīng)的該超塊,然后 向該客戶端返回該超塊;
[0040] 第四步,該客戶端接收該重刪節(jié)點返回的該超塊后,再利用該超塊的驗證碼和需 要獲取的該應(yīng)用文件的識別號來確認數(shù)據(jù)塊的完整性,并完成對該應(yīng)用文件的獲取。
[0041] 本發(fā)明的有益效果是:通過本發(fā)明提供了一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系 統(tǒng)和方法,包括基于計算機網(wǎng)絡(luò)互聯(lián)的客戶端、管理服務(wù)器和重刪節(jié)點,客戶端與管理服務(wù) 器之間通過應(yīng)用感知路由方法為應(yīng)用文件存儲確定重刪節(jié)點列表,客戶端與重刪節(jié)點之間 通過相似感知路由方法從重刪節(jié)點列表中確定目標(biāo)重刪節(jié)點,用于存儲應(yīng)用文件中的超 塊。運種兩級路由方法能夠有效降低網(wǎng)絡(luò)的通信負荷,通過該系統(tǒng)對應(yīng)用文件進行存儲,能 夠使得具有相同類型的應(yīng)用文件存儲到相同的重刪節(jié)點上,有利于提高重刪率,W及在每 個重刪節(jié)點上的存儲的吞吐率,增強網(wǎng)絡(luò)的可擴展性。
【附圖說明】
[0042] 圖1是根據(jù)本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)一個實施例的系統(tǒng)架構(gòu) 圖;
[0043] 圖2是根據(jù)本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)一個實施例中的管理服務(wù) 器的應(yīng)用路由表;
[0044] 圖3是根據(jù)本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)一個實施例中的重刪節(jié)點 的數(shù)據(jù)結(jié)構(gòu);
[0045] 圖4是根據(jù)本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除方法一個實施例的應(yīng)用文件存儲流 程圖;
[0046] 圖5是根據(jù)本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除方法一個實施例的應(yīng)用文件獲取流 程圖。
【具體實施方式】
[0047] 為了便于理解本發(fā)明,下面結(jié)合附圖和具體實施例,對本發(fā)明進行更詳細的說明。 附圖中給出了本發(fā)明的較佳的實施例。但是,本發(fā)明可許多不同的形式來實現(xiàn),并不限 于本說明書所描述的實施例。相反地,提供運些實施例的目的是使對本發(fā)明的公開內(nèi)容的 理解更加透徹全面。
[0048] 需要說明的是,除非另有定義,本說明書所使用的所有的技術(shù)和科學(xué)術(shù)語與屬于 本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。在本發(fā)明的說明書中所使用的術(shù)語只 是為了描述具體的實施例的目的,不是用于限制本發(fā)明。本說明書所使用的術(shù)語"和/或"包 括一個或多個相關(guān)的所列項目的任意的和所有的組合。
[0049] 圖1顯示了本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)一個實施例的系統(tǒng)架構(gòu) 圖。該系統(tǒng)包括客戶端10、管理服務(wù)器20和重刪節(jié)點30,可見客戶端10和重刪節(jié)點30都有多 個。在每一個客戶端10中均包括3個模塊,即數(shù)據(jù)劃分模塊101、指紋計算模塊102和相似感 知數(shù)據(jù)路由模塊103。對于數(shù)據(jù)劃分模塊101,其作用就是要把需要存儲的應(yīng)用文件進行切 分,即對文件級的數(shù)據(jù)W固定長度或可變長度劃分為成一個個小的數(shù)據(jù)塊,然后再進一步 將運些小的數(shù)據(jù)塊組合成數(shù)據(jù)超塊(簡稱超塊);接下來,指紋計算模塊102利用MD5、SHA-1 和/或SHA-2等抗沖突加密哈希函數(shù)對該超塊中的每一個數(shù)據(jù)塊進行指紋計算,得到該超塊 中的各個數(shù)據(jù)塊的塊指紋列表;進一步,相似感知數(shù)據(jù)路由模塊103利用相似感知路由方法 為每一個超塊選擇一個適合的重刪節(jié)點30用于存儲該超塊。該過程需要客戶端10的相似感 知數(shù)據(jù)路由模塊103先與管理服務(wù)器20的應(yīng)用感知路由模塊之間通過應(yīng)用感知路由方法, 為每一個需要存儲的應(yīng)用文件提供一個用于存儲該應(yīng)用文件的超塊的重刪節(jié)點列表。然 后,客戶端10的相似感知數(shù)據(jù)路由模塊103再利用上述的相似感知路由方法,從該重刪節(jié)點 列表中為該應(yīng)用文件劃分出的每一個超塊找到適合的目標(biāo)重刪節(jié)點30,用于存儲該超塊。 下文會對應(yīng)用感知路由方法和相似感知路由方法做進一步示例說明。
[0050] 在圖1中,管理服務(wù)器20包括文件會話管理模塊201和應(yīng)用感知路由決策模塊202。 其中,文件會話管理模塊201用于保存需要存儲的應(yīng)用文件與該文件對應(yīng)劃分出的數(shù)據(jù)塊 的指紋之間的映射關(guān)系,W及需要重構(gòu)該文件的元數(shù)據(jù)信息。因此,需要存儲的應(yīng)用文件的 所有文件級的元數(shù)據(jù)都保留在該管理服務(wù)器20中,客戶端10與管理服務(wù)器20之間存在通過 文件元數(shù)據(jù)的讀寫操作進行交互的過程,下文將會結(jié)合圖4和圖5分別對文件存儲和文件獲 取過程進行詳細的示例說明。應(yīng)用感知路由決策模塊202與相似感知數(shù)據(jù)路由模塊103之間 通過應(yīng)用感知路由方法,為應(yīng)用文件確定一組用于存儲該應(yīng)用文件超塊的重刪節(jié)點列表, 并反饋給所述客戶端10。優(yōu)選的,為保證可靠性,管理服務(wù)器20可W采用主被故障切換方式 支持兩個服務(wù)器,W避免單一服務(wù)器失效帶來的不利影響。
[0051] 優(yōu)選的,圖2顯示了管理服務(wù)器20中的一個名為應(yīng)用路由表的數(shù)據(jù)結(jié)構(gòu)實施例。該 應(yīng)用路由表用于執(zhí)行應(yīng)用感知路由決策模塊202的應(yīng)用感知路由方法。該應(yīng)用路由表位于 管理服務(wù)器20的RAM中,確保了較高的處理速度。該應(yīng)用路由表中的豎向第一列Type為文件 類型,W應(yīng)用文件的擴展名進行區(qū)分,分別有doc文件、rmvb文件、jpg文件等;表中豎向第二 列為NodelD,為重刪節(jié)點識別號,W數(shù)字序列號進行區(qū)分;表中豎向第Ξ列為化pacity,為 該重刪節(jié)點上對應(yīng)的應(yīng)用文件數(shù)據(jù)的存儲容量,W字節(jié)數(shù)來表示。橫向每一行對應(yīng)一條存 儲映射關(guān)系,例如,第一行表示在重刪節(jié)點識別號NodelD為5的重刪節(jié)點上對應(yīng)存儲的應(yīng)用 文件類型為doc,且該重刪節(jié)點上所有doc文檔的存儲容量為235MB。通過該應(yīng)用路由表實施 例,管理服務(wù)器20可W對每一個需要存儲的應(yīng)用文件,首先查找其文件類型,然后確定存儲 該文件類型的重刪節(jié)點有哪些,運些重刪節(jié)點的容量有多大,從而計算出在運些重刪節(jié)點 中進行存儲的工作負載量。
[0052] 進一步的,當(dāng)從客戶端10向管理服務(wù)器20輸入需要存儲的應(yīng)用文件擴展名W后, 管理服務(wù)器20通過應(yīng)用感知路由方法得到該應(yīng)用文件的一組重刪節(jié)點列表。W下給出該應(yīng) 用感知路由方法的一個優(yōu)選實施例。
[0053] 首先,對來自客戶端10的需要存儲的應(yīng)用文件化llname,確定該文件化llname的 擴展名;然后,在管理服務(wù)器20中的應(yīng)用路由表(如圖2所示)中查詢,找到該擴展名對應(yīng)的 重刪節(jié)點Ai,該重刪節(jié)點存儲相同類型的應(yīng)用文件(即文件的擴展名相同);接著,將所有運 些存儲有相同類型應(yīng)用文件的重刪節(jié)點組成一個重刪節(jié)點列表1D_list={Ai,A2,-,,Am}。 對于整個重復(fù)刪除系統(tǒng)而言,若所有的重刪節(jié)點列表為{Si,S2,···,Sn},應(yīng)滿足 JD_/扣二料1,.杰,...,e ?[筑,貨,..^麵};進一步,檢查重刪節(jié)點列表10_113*:若 /D_/?'別=0(即列表為空,沒有找到相應(yīng)的重刪節(jié)點)或者ID_list中的各重刪節(jié)點都已存 滿(存儲過負載),那么僅向ID_list添加一個具有最少存儲負載的重刪節(jié)點Sl,即ID_list = {Sl};最后,管理服務(wù)器20向客戶端10返回應(yīng)用文件化llname對應(yīng)的重刪節(jié)點列表1D_ list。進一步,在圖1中,重刪節(jié)點30包括應(yīng)用感知相似索引查詢模塊301、塊指紋緩存模塊 302W及并行容器管理模塊303。應(yīng)用感知相似索引查詢模塊301用于向客戶端10反饋應(yīng)用 感知相似性索引查詢結(jié)果。由上述可知,當(dāng)客戶端10從管理服務(wù)器20接收到需要存儲的應(yīng) 用文件的重刪節(jié)點列表W后,需要進一步對該應(yīng)用文件劃分的每一個超塊確定一個存儲的 重刪節(jié)點(即目標(biāo)重刪節(jié)點),所采用的方法稱之為相似性感知路由方法,將在后面進一步 示例說明。當(dāng)為一個超塊確定好目標(biāo)重刪節(jié)點后,進一步在客戶端10與重刪節(jié)點30之間進 行指紋查找,W確定該超塊中的每一個數(shù)據(jù)塊的指紋在該重刪節(jié)點30中是否存在,而只有 指紋不存在的數(shù)據(jù)塊才會被作為唯一數(shù)據(jù)塊,通過塊轉(zhuǎn)移存儲到該重刪節(jié)點30中。圖1中的 塊指紋緩存模塊302用于緩存最近頻繁訪問的超塊中的各數(shù)據(jù)塊的指紋,W加速對冗余數(shù) 據(jù)塊的查詢處理。并行容器管理模塊303則用于W并行處理的方式存儲唯一數(shù)據(jù)塊,W加速 存儲處理過程。另外,當(dāng)重刪節(jié)點30存儲新的唯一數(shù)據(jù)塊W后,還將該唯一數(shù)據(jù)塊的元數(shù)據(jù) 發(fā)送到管理服務(wù)器20進行更新。
[0054] 優(yōu)選的,W下對相似性感知路由方法的一個優(yōu)選實施例說明。我們已知圖1中客戶 端10中的數(shù)據(jù)劃分模塊101用于對應(yīng)用文件進行劃分。
[0055] 第一步,把一個應(yīng)用文件分成C小的數(shù)據(jù)塊,再將運些數(shù)據(jù)塊組合成一個超塊S,通 過加密哈希函數(shù)計算得到該超塊的所有的塊指紋列表{fpl,fp2,…,fp。}。此處,fp是 finge;rp;rint 的縮寫。
[0056] 第二步,對超塊S的數(shù)據(jù)塊指紋列表{fpl,fp2,…,巧。}進行排序后,選取k個最小的 數(shù)據(jù)塊指紋{喻1,嘶2,...//化}^抓'1//權(quán),..乍為該超塊S的代表性數(shù)據(jù)塊指紋,即超 塊S的手紋,并將超塊S的手紋發(fā)送到Ν個重刪節(jié)點構(gòu)成的集群內(nèi)的k個候選重刪節(jié)點,運些 候選重刪節(jié)點的識別號為{rfpimod N,rfp2mod N,…,rfpk mod N};此處,rfp是 representative fingerprint的縮寫。
[0057] 第Ξ步,通過在候選的重刪節(jié)點中,對于已經(jīng)存在的由超塊的代表性數(shù)據(jù)指紋構(gòu) 建的相似索引中,查詢該超塊S的代表性數(shù)據(jù)塊指紋是否存在,從而統(tǒng)計得出各個候選重刪 節(jié)點內(nèi)已存的代表性數(shù)據(jù)塊指紋數(shù){^,^,-,,^},運個4值直接對應(yīng)超塊5與運些重刪節(jié)點 中已存數(shù)據(jù)的相似值;
[005引第四步,W候選重刪節(jié)點的存儲使用率與所有重刪節(jié)點的平均存儲使用率相除, 來計算各個候選重刪節(jié)點的相對存儲使用率{巧1,巧2,一,巧1^,再利用運些相對存儲使用率得 到各候選重刪節(jié)點的加權(quán)相似值{ri/wi,r2/w2,-,,rk/wk},從而實現(xiàn)候選重刪節(jié)點存儲容量 負載平衡;
[0059] 第五步,選擇在候選重刪節(jié)點中選取其識別號1滿足^/機=111曰義{>1/'\¥1^2/*2,···, rk/wk}的重刪節(jié)點作為超塊S的路由目標(biāo)重刪節(jié)點?;谠搶嵤├?,圖1中客戶端10可W從重 刪節(jié)點30中為應(yīng)用文件劃分出來的每一超塊找到一個合適的目標(biāo)重刪節(jié)點。
[0060] 優(yōu)選的,圖3顯示了重刪節(jié)點30中的數(shù)據(jù)結(jié)構(gòu)實施例。圖3中,在RAM中設(shè)置有應(yīng)用 感知相似性索引表3011、塊指紋緩存3021,在磁盤陣列中設(shè)置有容器3031。其中,應(yīng)用感知 相似性索引表3011是一個設(shè)置在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),是由應(yīng)用文件類型索引3011A和基于 應(yīng)用文件類型分類的哈希表3011B組成。當(dāng)來自客戶端10的一個相似索引查詢請求時,重刪 節(jié)點30根據(jù)輸入的超塊的應(yīng)用文件類型信息,通過應(yīng)用文件類型索引3011A將該超塊路由 到具有相同應(yīng)用文件類型的哈希表3011B。例如,在圖3中,輸入到重刪節(jié)點30的超塊的文件 類型若是doc,則將該超塊路由到具有doc類型的哈希表。同樣,超塊的文件類型若是化g,則 將該超塊路由到具有化g類型的哈希表。對于圖3中哈希表3011B中的每一項均包括一個映 射關(guān)系,即超塊的代表性數(shù)據(jù)塊指紋(RFP,representative fingerprint)與存儲該超塊的 容器識別號(CID,container ID)之間的映射關(guān)系。由此可見,運種相似索引是一種基于哈 希表的內(nèi)存數(shù)據(jù)結(jié)構(gòu),每一項包含了從超塊代表性數(shù)據(jù)塊指紋到存儲該超塊的容器識別號 的映射。由于超塊手紋技術(shù)只需要非常低的取樣率,其大小遠小于傳統(tǒng)數(shù)據(jù)塊指紋到容器 映射的磁盤索引,因此該方法的處理速度具有明顯的優(yōu)勢。
[0061] 圖3中,容器3031是一種自描述的數(shù)據(jù)結(jié)構(gòu),存在于磁盤陣列中W保持局部性。容 器3031包含存儲唯一數(shù)據(jù)塊的數(shù)據(jù)段部分和存儲相應(yīng)唯一數(shù)據(jù)塊元信息(如數(shù)據(jù)塊指紋、 偏移和長度等)的元數(shù)據(jù)段部分。運里的重刪節(jié)點30支持并行的容器管理,用W并發(fā)地分 配、回收、讀、寫和可靠存儲。對于并行數(shù)據(jù)存儲,每個數(shù)據(jù)流保留一個打開的數(shù)據(jù)容器,如 果容器填滿則創(chuàng)建并打開新的容器。所有的磁盤訪問是在容器粒度實現(xiàn)的。
[0062] 圖3中,除了上述兩種重要的數(shù)據(jù)結(jié)構(gòu),還有塊指紋緩存3021,其對改進重刪節(jié)點 的性能起關(guān)鍵作用。工作中,它保存最近訪問容器3031的所有塊指紋到內(nèi)存中。一旦代表性 數(shù)據(jù)塊指紋在一個相似索引查詢請求中被訪問到,相應(yīng)數(shù)據(jù)塊所在容器內(nèi)的所有數(shù)據(jù)塊指 紋預(yù)取到塊指紋緩存3021中來加速塊指紋查詢操作。
[0063] 優(yōu)選的,塊指紋緩存3021是一個Key-Value型的結(jié)構(gòu),由一個雙鏈表索引的哈希表 構(gòu)建。塊指紋緩存3021存滿時,容器3031內(nèi)的指紋對加速塊指紋查詢效果不顯著,則采用最 近最少訪問策略來替換歷史記錄。因此,當(dāng)查詢超塊的代表性數(shù)據(jù)塊指紋時,先在塊指紋緩 存3021中查找對應(yīng)超塊映射的容器。如果容器的數(shù)據(jù)塊指紋信息已經(jīng)在塊指紋緩存3021 中,則比較該超塊的數(shù)據(jù)塊指紋和容器內(nèi)元數(shù)據(jù)部分的塊指紋;否則,我們從容器中預(yù)取其 元數(shù)據(jù)部分包含的所有數(shù)據(jù)塊指紋。最后,那些未找到的數(shù)據(jù)塊指紋對應(yīng)的數(shù)據(jù)塊將被存 儲到一個打開未滿的容器。通過容器管理保持數(shù)據(jù)塊指紋緩存局部性,我們設(shè)計的相似性 索引查詢優(yōu)化能夠獲得高吞吐率且僅使用很少的內(nèi)存空間。
[0064] 通過W上分析,我們可W看出,為了存儲一個超塊,本發(fā)明實施例采用了兩層路由 機制,即在客戶端與管理服務(wù)器之間W文件級的方式,通過應(yīng)用感知路由方法來確定應(yīng)用 文件存儲所對應(yīng)的重刪節(jié)點列表,而在客戶端與重刪節(jié)點之間W超塊級的方式,通過相似 性感知路由方法來確定超塊存儲所對應(yīng)的目標(biāo)重刪節(jié)點。由此可見,運兩層路由機制,一方 面在客戶端與管理服務(wù)器之間是W文件級進行交互,有利于減少客戶端與管理服務(wù)器之間 的通信負荷,也降低了管理服務(wù)器的工作負荷。而在客戶端與重刪節(jié)點之間W超塊級的方 式進行交互,則有利增強客戶端與重刪節(jié)點之間進行數(shù)據(jù)存儲的針對性,提高了網(wǎng)絡(luò)工作 效率。
[0065] 基于上述本發(fā)明應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)的同一構(gòu)思,本發(fā)明還提供 了一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲方法,W下結(jié)合圖4和圖5加 W說明。
[0066] 基于圖1所示的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)實施例,圖4顯示了應(yīng)用文件 在該應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中存儲方法。
[0067] 當(dāng)一個用戶或者應(yīng)用發(fā)送文件存儲請求到客戶端。首先,客戶端在數(shù)據(jù)劃分模塊 中將文件劃分為數(shù)據(jù)塊或者超塊,并在塊指紋計算模塊通過加密哈希函數(shù)計算出數(shù)據(jù)塊指 紋值;然后,由相似感知數(shù)據(jù)路由模塊提取出超塊手紋并進行數(shù)據(jù)路由。實際的數(shù)據(jù)存儲操 作是在相似感知數(shù)據(jù)路由模塊中通過與管理服務(wù)器和重刪節(jié)點之間交互完成的。詳細的方 法步驟如下:
[0068] 第一步,客戶端發(fā)送一個化tFileReq消息給管理服務(wù)器,該消息包含應(yīng)用文件識 別號、文件大小、文件名、時間戳、文件中的超塊數(shù)、超塊的校驗等。其中,應(yīng)用文件識別號為 文件內(nèi)容的抗沖突哈希值,也可用作文件獲取過程中文件完整性的校驗。
[0069] 第二步,管理服務(wù)器接收該化tFileReq請求,存儲該應(yīng)用文件的元數(shù)據(jù),并且要確 認整個大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中有足夠的空間來存儲該文件。運里,管理服務(wù)器只需保 持文件級的元數(shù)據(jù)管理,而不是超塊粒度,使得管理服務(wù)器可W負責(zé)更大容量的數(shù)據(jù)管理, 整個系統(tǒng)具有更高的擴展性。
[0070] 管理服務(wù)器還執(zhí)行應(yīng)用感知路由決策,為該應(yīng)用文件選擇一組用于存儲該文件超 塊的重刪節(jié)點列表。然后,管理服務(wù)器給客戶端發(fā)回一個化tFileResp響應(yīng)。在化tFileResp 消息中,管理服務(wù)器向客戶端回應(yīng)文件識別號和該文件對應(yīng)的重刪節(jié)點列表。
[0071] 第Ξ步,客戶端接收化tFileResp消息后,對于該文件中的每一個超塊,利用相似 性感知路由方法,分別向k個候選重刪節(jié)點發(fā)出k個LookupSCReq查詢請求,目的是為了在運 些候選的重刪節(jié)點中為該超塊的代表指紋查找到應(yīng)用感知相似性索引。圖4中示意給出了 Ξ個重刪節(jié)點,即重刪節(jié)點1、重刪節(jié)點2和重刪節(jié)點3,其中只是將重刪節(jié)點2和重刪節(jié)點3 作為候選的重刪節(jié)點,因此分別向重刪節(jié)點2和重刪節(jié)點3發(fā)出了Look叫SCReq_l請求,其 中_1用W區(qū)分不同的超塊,可W視之為該文件中第1個超塊。接收到該請求后,重刪節(jié)點2和 重刪節(jié)點3分別進行了相似索引查找,即圖4中的相似索引查找,主要是通過基于相似性感 知路由方法,各候選重刪節(jié)點為該超塊確定對應(yīng)的加權(quán)相似值。
[0072] 第四步,重刪節(jié)點向客戶端回應(yīng)LookupSCResp消息,該消息包括候選重刪節(jié)點向 客戶端回應(yīng)的與該超塊對應(yīng)的加權(quán)相似值。圖4中重刪節(jié)點2和重刪節(jié)點3回應(yīng)了 LookupSCResp_l消息。
[0073] 第五步,客戶端接收運些LookupSCResp消息后,根據(jù)加權(quán)相似值的大小,選擇其中 加權(quán)相似值最大的一個候選重刪節(jié)點作為目標(biāo)重刪節(jié)點,用W存儲該超塊,并且再通過 化tSCReq消息通知管理服務(wù)器該重刪節(jié)點的識別號,管理服務(wù)器回應(yīng)化tSCResp。圖4中針 對的該文件中的第1個超塊而言,分別用化tSCReq_l和化tSCResp_l加 W表示。
[0074] 第六步,客戶端確定目標(biāo)重刪節(jié)點后,向該目標(biāo)重刪節(jié)點發(fā)出Lookup化unksSCReq 請求信息,并W批量方式發(fā)出該超塊的全部塊指紋到該目標(biāo)重刪節(jié)點,用W確認其中每一 個數(shù)據(jù)塊是否重復(fù),目標(biāo)重刪節(jié)點進行指紋查找后,向客戶端返回Lookup化unksSCResp消 息。圖4中對應(yīng)為Lo0kup化unkSSCReq_ 1請求消息,用W對第1個超塊的處理,目標(biāo)重刪節(jié)點 為重刪節(jié)點2,然后重刪節(jié)點2執(zhí)行化unkFPsLookup操作,進行數(shù)據(jù)塊指紋查找,之后,目標(biāo) 重刪節(jié)點2向客戶端回應(yīng)Lookup化unksSCResp_l消息,其中包括一個該超塊中的唯一數(shù)據(jù) 塊的列表。
[0075] 第屯步,客戶端向目標(biāo)重刪節(jié)點發(fā)出化ique化unksSC消息,并W批量方式將該超 塊中的唯一數(shù)據(jù)塊發(fā)送到該目標(biāo)重刪節(jié)點,該目標(biāo)重刪節(jié)點接收后將運些唯一數(shù)據(jù)塊進行 存儲,然后向管理服務(wù)器返回SCAck確認消息。圖4中對應(yīng)為加 i que化linksSC_1消息和 SCAck_l消息,表示對第1超塊的操作。
[0076] 接下來,對該文件中的第2超塊重復(fù)上述同樣的操作,直至整個應(yīng)用文件中的所有 超塊在各重刪節(jié)點存儲完畢。
[0077] 圖5顯示了應(yīng)用文件在該大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中獲取方法。圖5中,第一步,由 客戶端向管理服務(wù)器發(fā)起GetFileReq請求,希望請求獲取一個文件。管理服務(wù)器響應(yīng)該 GetFileReq請求,通過查詢該應(yīng)用文件的元數(shù)據(jù)后,向客戶端反饋GetFileResp消息,該 GetFileResp消息中包含被請求應(yīng)用文件中的超塊列表,W及從超塊到對應(yīng)存儲的重刪節(jié) 點的映射。第二步,客戶端收到GetFileResp消息后,向該應(yīng)用文件所包含的超塊對應(yīng)的重 刪節(jié)點發(fā)出GetSuper化unk消息,請求運些重刪節(jié)點獲取運些超塊。圖5中示意表示該應(yīng)用 文件包含兩個超塊,因此客戶端分別向存儲有該兩個超塊的重刪節(jié)點1和重刪節(jié)點2分別發(fā) 出GetSuper化unk_2和GetSuper化unk_l消息。第Ξ步,重刪節(jié)點接收GetSuper化unk消息, 從其容器中獲取對應(yīng)的超塊,然后向客戶端返回超塊。圖5中,重刪節(jié)點1獲取Super化unk_2 后向客戶端返回該超塊Super化unk_2,重刪節(jié)點2獲取Supe;rChunk_l后向客戶端返回該超 塊Super化unk_l。第四步,客戶端接收運些超塊后,再利用超塊的驗證碼和文件識別號來確 認數(shù)據(jù)的完整性,并完成對該文件的獲取。
[0078] 通過本發(fā)明提供的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)及其應(yīng)用方法,包括基于 計算機網(wǎng)絡(luò)互聯(lián)的客戶端、管理服務(wù)器和重刪節(jié)點,客戶端與管理服務(wù)器之間通過應(yīng)用感 知路由方法為應(yīng)用文件存儲確定重刪節(jié)點列表,客戶端與重刪節(jié)點之間通過相似感知路由 方法從重刪節(jié)點列表中確定目標(biāo)重刪節(jié)點,用于存儲應(yīng)用文件中的超塊。運種兩層路由方 法能夠有效降低網(wǎng)絡(luò)的通信負荷,通過該系統(tǒng)對應(yīng)用文件進行存儲,能夠使得具有相同類 型的應(yīng)用文件存儲到相同的重刪節(jié)點上,有利于提高重刪率,W及在每個重刪節(jié)點上的存 儲的吞吐率,增強分布式存儲系統(tǒng)的可擴展性。
[0079] W上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均 包括在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1. 一種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),包括基于計算機網(wǎng)絡(luò)互聯(lián)的客戶端、管 理服務(wù)器和重刪節(jié)點,其特征在于: 所述客戶端包括數(shù)據(jù)劃分模塊、指紋計算模塊和相似感知數(shù)據(jù)路由模塊,所述數(shù)據(jù)劃 分模塊用于對應(yīng)用文件按照固定長度或可變長度劃分為數(shù)據(jù)塊,再進一步將所述數(shù)據(jù)塊組 合成超塊;所述指紋計算模塊利用抗沖突加密哈希函數(shù)計算所述超塊中的每一個數(shù)據(jù)塊的 指紋,得到所述超塊對應(yīng)的各數(shù)據(jù)塊的指紋列表;所述相似感知數(shù)據(jù)路由模塊利用相似感 知路由方法為所述超塊確定一個用于存儲所述超塊的目標(biāo)重刪節(jié)點; 所述管理服務(wù)器包括文件會話管理模塊和應(yīng)用感知路由決策模塊,所述文件會話管理 模塊用于存儲所述應(yīng)用文件與所述應(yīng)用文件劃分的數(shù)據(jù)塊的指紋之間的映射關(guān)系,以及需 要重構(gòu)所述應(yīng)用文件的元數(shù)據(jù)信息;所述應(yīng)用感知路由決策模塊與所述相似感知數(shù)據(jù)路由 模塊之間通過應(yīng)用感知路由方法,為所述應(yīng)用文件確定一組用于存儲所述應(yīng)用文件的超塊 的重刪節(jié)點列表,并反饋給所述客戶端; 所述重刪節(jié)點包括應(yīng)用感知相似索引查詢模塊、塊指紋緩存模塊以及并行容器管理模 塊,所述應(yīng)用感知相似索引查詢模塊用于向所述客戶端反饋應(yīng)用感知相似性索引查詢結(jié) 果,所述塊指紋緩存模塊用于緩存最近頻繁訪問的數(shù)據(jù)塊的指紋,以加速對數(shù)據(jù)塊的查詢 處理,所述并行容器管理模塊用于以并行處理的方式存儲唯一數(shù)據(jù)塊。2. 根據(jù)權(quán)利要求1所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于,所述抗沖 突加密哈希函數(shù)包括MD5、SHA-1和/或SHA-2函數(shù)。3. 根據(jù)權(quán)利要求2所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于,所述管理 服務(wù)器中設(shè)置有應(yīng)用路由表,所述應(yīng)用路由表包括應(yīng)用文件類型與對應(yīng)的重刪節(jié)點識別 號、對應(yīng)的重刪節(jié)點的容量之間的映射關(guān)系。4. 根據(jù)權(quán)利要求3所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于,所述重刪 節(jié)點內(nèi)存中設(shè)置有應(yīng)用感知相似索引表和塊指紋緩存,在磁盤陣列中設(shè)置有容器,所述應(yīng) 用感知相似索引表由應(yīng)用文件類型索引和基于應(yīng)用文件類型分類的哈希表組成,所述容器 包含存儲唯一數(shù)據(jù)塊的數(shù)據(jù)段部分和存儲相應(yīng)唯一數(shù)據(jù)塊元信息的元數(shù)據(jù)段部分,所述塊 指紋緩存用于保存最近訪問的所述容器內(nèi)的所有數(shù)據(jù)塊指紋,以加速對所述容器內(nèi)的數(shù)據(jù) 塊指紋的查詢操作。5. 根據(jù)權(quán)利要求4所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于,所述基于 應(yīng)用文件類型分類的哈希表中的每一項均包括超塊的代表性數(shù)據(jù)塊指紋與存儲所述超塊 的容器識別號之間的映射關(guān)系,所述塊指紋緩存為Key-Value型結(jié)構(gòu),由一個雙鏈表索引的 哈希表構(gòu)建而成。6. 根據(jù)權(quán)利要求1至5任一所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于, 所述應(yīng)用感知路由方法是: 第一步,在所述管理服務(wù)器中,對來自所述客戶端的需要存儲的應(yīng)用文件,確定所述應(yīng) 用文件的擴展名; 第二步,在所述管理服務(wù)器的所述應(yīng)用路由表中查詢,找到所述應(yīng)用文件的擴展名對 應(yīng)的重刪節(jié)點Μ,所述重刪節(jié)點心存儲相同類型的應(yīng)用文件; 第三步,將所有存儲所述相同類型應(yīng)用文件的重刪節(jié)點組成一個重刪節(jié)點列表1D_ 118七={八1,八2,.",八111},且滿足所述/0_//5/={241,,42,...,.八爪}( ={51/52/.../51\],所述{31, S2,h_,Sn}表示所述應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中的所有的重刪節(jié)點的列表; 第四步,檢查所述重刪節(jié)點列表1D_list,若所述或者所述ID_list中的各重 刪節(jié)點均已存滿,則向所述IDjist僅添加一個具有最少存儲負載的重刪節(jié)點SL,即ID_ list= {Sl}; 第五步,所述管理服務(wù)器向所述客戶端返回所述應(yīng)用文件對應(yīng)的所述重刪節(jié)點列表1D_list〇7. 根據(jù)權(quán)利要求6所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng),其特征在于,所述相似 感知路由方法是: 第一步,在所述客戶端,利用所述數(shù)據(jù)劃分模塊對應(yīng)用文件劃分為c個數(shù)據(jù)塊,再將這c 個數(shù)據(jù)塊組合成一個超塊S,通過加密哈希函數(shù)計算得到所述超塊S的所有c個數(shù)據(jù)塊指紋 列表{fpi,fp2,···,fp c}; 第二步,對所述數(shù)據(jù)塊指紋列表{€口14口2,'",€口。}進行排序,選取1^個最小的數(shù)據(jù)塊指 紋0/Pi,/p2,...,/fPk}e(/^i,加,...,加}作為所述超塊S的代表性數(shù)據(jù)塊指紋,即所述超塊 S的手紋; 第三步,從所述應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中的所有N個重刪節(jié)點中選取k個 候選重刪節(jié)點,所述k個候選重刪節(jié)點的識別號為{rfpimod N,rfp2mod N,'",rfpkmod N}, 將所述超塊S的手紋分別發(fā)送給所述k個候選重刪節(jié)點; 第三步,在所述k個候選重刪節(jié)點上,均查詢所述超塊S手紋中各代表性數(shù)據(jù)塊指紋是 否存在,從而得到所述k候選重刪節(jié)點內(nèi)已存的代表性數(shù)據(jù)塊指紋數(shù){^,^,…,",所述代 表性數(shù)據(jù)塊指紋數(shù){η,κ,…,r k}作為所述k候選重刪節(jié)點對所述超塊S的相似值; 第四步,將所述k個候選重刪節(jié)點存儲使用率與所有N個重刪節(jié)點的平均存儲使用率相 除,計算所述k個候選重刪節(jié)點的相對存儲使用率{wi,W2,···,Wk}; 第五步,選擇在所述k個候選重刪節(jié)點中,選取識別號i滿足ri/wi = max{ri/wi,Γ2/ w2,…,rk/Wk}的重刪節(jié)點作為所述超塊S存儲的目標(biāo)重刪節(jié)點。8. -種應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲方法,基于權(quán)利要求1至7任一所述的應(yīng)用感知 的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)對應(yīng)用文件進行存儲和獲取,其特征在于,對應(yīng)用文件的存儲 方法是: 第一步,所述客戶端向所述管理服務(wù)器發(fā)送在所述應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系 統(tǒng)中存儲一個應(yīng)用文件的PutFi 1 eReq消息,所述PutFi 1 eReq消息包含所述應(yīng)用文件的元數(shù) 據(jù); 第二步,所述管理服務(wù)器接收所述PutFileReq消息后,存儲所述應(yīng)用文件的元數(shù)據(jù),并 且確認所述應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲系統(tǒng)中有足夠的存儲空間來存儲所述應(yīng)用文 件;接著,所述管理服務(wù)器利用所述應(yīng)用感知路由方法,為所述應(yīng)用文件確定一組用于存儲 所述應(yīng)用文件的重刪節(jié)點列表;然后,所述管理服務(wù)器向所述客戶端發(fā)回一個PutFileResp 消息,在所述PutFileResp消息中包含所述管理服務(wù)器向所述客戶端回應(yīng)的所述應(yīng)用文件 識別號,以及所述應(yīng)用文件對應(yīng)的重刪節(jié)點列表; 第三步,所述客戶端接收PutFileResp消息后,對于所述應(yīng)用文件中的第1個超塊 SuperChunk_l,利用所述相似感知路由方法,分別向k個候選重刪節(jié)點發(fā)出LookupSCReq查 詢請求,所述k個候選重刪節(jié)點分別對超塊Sup erChunk_l的代表性指紋進行相似索引查找, 確定對應(yīng)的加權(quán)相似值,然后向所述用戶端回應(yīng)LookupSCResp消息,所述LookupSCResp消 息包含了所述候選重刪節(jié)點向所述客戶端回應(yīng)的與所述超塊SuperChunk_l對應(yīng)的加權(quán)相 似值; 第四步,所述客戶端接收所述k個候選重刪節(jié)點各自反饋的LookupSCResp消息后,根據(jù) 各所述加權(quán)相似值的大小,選擇其中加權(quán)相似值最大的一個候選重刪節(jié)點作為目標(biāo)重刪節(jié) 點,用以存儲所述超塊SuperChunkj,并且將所述目標(biāo)重刪節(jié)點的識別號通過PutSCReq消 息通知所述管理服務(wù)器,所述管理服務(wù)器向所述客戶端回應(yīng)PutSCResp消息; 第五步,所述客戶端向所述目標(biāo)重刪節(jié)點發(fā)出LookupChunks-SCReq請求信息,并以批 量方式發(fā)出所述超塊SuperChunk_l的全部數(shù)據(jù)塊指紋到所述目標(biāo)重刪節(jié)點,用以確認所述 數(shù)據(jù)塊在所述目標(biāo)重刪節(jié)點中是否重復(fù),所述目標(biāo)重刪節(jié)點進行數(shù)據(jù)塊指紋查找后,向所 述客戶端返回LookupChunksSCResp消息,所述LookupChunksSCResp消息中包含所述超塊 Sup erChunk_l在所述目標(biāo)重刪節(jié)點不重復(fù)的唯一數(shù)據(jù)塊的列表; 第六步,所述客戶端向所述目標(biāo)重刪節(jié)點發(fā)出UniqueChunksSC消息,并以批量方式將 所述超塊SuperChunk_l中的唯一數(shù)據(jù)塊發(fā)送到所述目標(biāo)重刪節(jié)點,所述目標(biāo)重刪節(jié)點接收 所述唯一數(shù)據(jù)塊并存儲,然后向所述管理服務(wù)器返回SCAck確認消息; 第七步,對于所述應(yīng)用文件的后續(xù)其他超塊,重復(fù)以上第三步至第六步,直至所述應(yīng)用 文件的所有超塊完成存儲,結(jié)束對所述應(yīng)用文件的存儲。9.根據(jù)權(quán)利要求8所述的應(yīng)用感知的大數(shù)據(jù)重復(fù)刪除存儲方法,其特征在于,對應(yīng)用文 件的獲取方法是: 第一步,所述客戶端向所述管理服務(wù)器發(fā)出GetFileReq請求,請求獲取一個應(yīng)用文件, 所述管理服務(wù)器響應(yīng)所述GetFileReq請求,通過查詢所述應(yīng)用文件的元數(shù)據(jù)后,向所述客 戶端反饋GetFi 1 eResp消息,所述GetFi 1 eRe sp消息中包含被請求獲取的所述應(yīng)用文件的超 塊列表,以及所述超塊列表中的超塊到對應(yīng)的重刪節(jié)點的映射; 第二步,所述客戶端收到GetFileResp消息后,向所述應(yīng)用文件的超塊列表中的超塊對 應(yīng)的重刪節(jié)點發(fā)出GetSuperChunk消息,請求所述重刪節(jié)點獲取所述超塊; 第三步,重刪節(jié)點接收GetSuperChunk消息,從其容器中獲取對應(yīng)的所述超塊,然后向 所述客戶端返回所述超塊; 第四步,所述客戶端接收所述重刪節(jié)點返回的所述超塊后,再利用所述超塊的驗證碼 和需要獲取的所述應(yīng)用文件的識別號來確認數(shù)據(jù)塊的完整性,并完成對所述應(yīng)用文件的獲 取。
【文檔編號】G06F17/30GK106066896SQ201610561768
【公開日】2016年11月2日
【申請日】2016年7月15日
【發(fā)明人】付印金, 謝鈞, 陳衛(wèi)衛(wèi), 繆嘉嘉, 趙洪華, 端義鋒
【申請人】中國人民解放軍理工大學(xué)