圖一:基于塊級去重方式

如圖一所示,圖中第一次備份為全備份,以后每次只備份變化量,并給每個數據塊添加相應的指針。從形式上看,塊級去重與文件級去重原理基本一致,但文件級去重比對的是不同文件,如果文件內容有變化,則被視為變化量進行保存;而基于數據塊去重模式無論文件是否變化,只記錄變化數據塊,而文件內容變化后,其變化數據塊部分被保存。

基于變長去重的方式:

在去重效果上看,塊級去重遠高于文件級去重,而塊級去重則進一步涉及到變長與定長的問題。

定長是指數據塊大小是固定的,一般固定值為12K—256K不等,對于定長而言,數據塊越小,去重率越高。而變長的數據切割方式通過相應的塊的長度,再加上相應的字母順序,通過一個三維的算法進行切割。

圖二:變長切割與定長切割的對比

如圖二所示,如果文件進行改變,比如插一個“”在數據塊中,變長切割模式就變成4、4、7三行一組,剩下的又按照“父”是有含義的一個字,切割方法沒有變。最后掃描下來,只有首末行是變化的,需要備份首末行這一小小的變化量,即完成了變更,而數據量增加的僅僅是引號。

如果是定長則首行沒有任何規(guī)律可言,完全按照固定大小進行數據切分,當添加引號時引起整個數據塊變動,從而生成了新的數據塊。從去重效果上看,變長的去重率要高于定長。

多重校驗的高可靠性

重復數據刪除技術的關鍵在于可靠性,由于數據存儲時候被切塊并對每個塊進行單一實例存儲,那么任何一個數據塊丟失,或者指針錯誤都會造成一大部分數據永久無法找回。對于客戶而言,是造成不可估計的損失,因此如何保證重復數據刪除的可靠性顯得至關重要。

SOUL的重復數據刪除技術在每一步hash對比過程中都有CRC校驗,保證了每一步對比中數據的正確性;而每一步對比過程都會定時與log進行同步。如果出現不同步現象,則該步驟將清空記錄并重新引用log信息,再次執(zhí)行比對工作;而log則定時與底層數據庫同步,保證了數據與hashkey的絕對一致性。為了防止非法關機造成的數據不同步,SOUL在hash對比的第一層設置了啟動同步,無論是否非法關機,設備在啟動后都會進行自檢,并與log進行同步,進一步確保了數據準確性。

沙漏式對比機制的高效率

重復數據刪除技術始終是在去重比例與性能之間找平衡,去重比例越高則必然性能衰減越大,其原因在于數據塊在切塊時候塊越小,出現重復數據塊的幾率會越高;而塊越小則意味著相同大小的數據被切割后,產生的數據塊的數量越大,而數據塊數量越大在hashkey對比過程中耗時越長,使得性能衰減越大。因此即便采用等同的變長法則切塊后,hash對比過程也同樣決定著性能損耗的程度。

SOUL的重復數據刪除技術在hash對比過程中采用了沙漏式的對比機制,該機制會在緩存中逐級篩選重復數據。最上層機制做最簡單的粗略判定,丟掉絕大部分重復數據,將可能不重復的數據傳遞到第二層級;第二層做相對對比,判定hash是否已經包含于某個hash段組中,此時已經有99%的數據進行了dedupe,而剩下的1%的數據將傳遞到第三層;第三層將前面沒有判定結果的hash與系統(tǒng)全部被使用過的hash進行對比,此處才開始真正對比hash,也就是是細節(jié)對比,第三層將過濾掉剩下數據中的99.99999%,最后剩下仍然無法判定的則會在hash庫中逐一查找進行對比。

雖然對比過程變成了4步,但去重效率卻大幅提升。通過實際去重測試,在打開重復數據刪除之后,磁盤I/O是未開啟重復數據刪除的1.06%。磁盤I/O決定了一個系統(tǒng)的性能,更低的I/O不僅有效提高去重效率,也提升了磁盤的使用壽命。在采用多重對比后,其數據縮減比也大幅提升,實際測試數據縮減比可以超過30:1。

能夠將磁盤I/O降低到以上程度主要是因為每一步運算是在內存中進行,并且都采用預讀取機制,而每一步都將只判定自己可以判定的hash,任何無法判定的hash都交給后面處理,這樣每一層數據篩選的效率將大幅提升,從而提升整體效率。

綜上而言,SOUL采用多種優(yōu)化機制,解決了高去重比例下性能衰減的問題,實測在系統(tǒng)性能衰減不足5%的情況下實現了超過30:1的數據縮減比。同時高效、多重的校驗機制也徹底打消客戶對重復數據刪除可靠性的擔心。

SOUL為大數據時代打造了安全可靠、高效靈活的數據管理與計算解決方案,以智能化、可拓展的開放式系統(tǒng)設計,輔助用戶實現從傳統(tǒng)IT應用向云計算、大數據應用的平滑遷移,從而更加快速開展數據資產的分析、挖掘、管理,并從中獲取商業(yè)機會與競爭優(yōu)勢。

分享到

huanghui

相關推薦