圖一:基于塊級去重方式

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

基于變長去重的方式:

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

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

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

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

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

多重校驗(yàn)的高可靠性

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

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

沙漏式對比機(jī)制的高效率

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

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

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

能夠?qū)⒋疟PI/O降低到以上程度主要是因?yàn)槊恳徊竭\(yùn)算是在內(nèi)存中進(jìn)行,并且都采用預(yù)讀取機(jī)制,而每一步都將只判定自己可以判定的hash,任何無法判定的hash都交給后面處理,這樣每一層數(shù)據(jù)篩選的效率將大幅提升,從而提升整體效率。

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

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

分享到

huanghui

相關(guān)推薦