重復(fù)數(shù)據(jù)刪除市場可謂風(fēng)起云涌,從備份廠商到存儲(chǔ)廠商都推出了相應(yīng)的產(chǎn)品,涵蓋了軟件和硬件,涉及主存儲(chǔ)系統(tǒng)和備份存儲(chǔ)設(shè)備,一時(shí)讓人眼花繚亂,難以分辨孰優(yōu)孰劣。本文透過產(chǎn)品,對(duì)重復(fù)數(shù)據(jù)刪除的原理、相關(guān)術(shù)語、模式等要素進(jìn)行了簡明扼要的分析,最后為用戶選擇重復(fù)數(shù)據(jù)刪除產(chǎn)品提供相關(guān)建議。
數(shù)據(jù)縮減(data reduction)
數(shù)據(jù)縮減(data reduction)是能夠降低主存儲(chǔ)系統(tǒng)磁盤使用空間的技術(shù)總稱,數(shù)據(jù)簡縮技術(shù)可以分為兩類:壓縮和重復(fù)數(shù)據(jù)刪除。壓縮通過把文件中一些無用的數(shù)據(jù),例如前置零和空格等刪除掉,減少文件占用空間;但壓縮僅限于單個(gè)文件,無法跨越多個(gè)文件,這限制了壓縮技術(shù)縮減數(shù)據(jù)的能力。
重復(fù)數(shù)據(jù)刪除結(jié)構(gòu)圖
了解重復(fù)數(shù)據(jù)刪除
目的:通過刪除重復(fù)數(shù)據(jù),節(jié)省磁盤使用空間,保護(hù)現(xiàn)有存儲(chǔ)投資。
原理:在某一級(jí)別(文件級(jí)、數(shù)據(jù)塊、字節(jié)級(jí))通過一次或多次使用哈希算法(MD5 或者SHA-1)或其他相關(guān)算法查找重復(fù)數(shù)據(jù)。重復(fù)數(shù)據(jù)只保留一份,其他重復(fù)數(shù)據(jù)用指針替代。
應(yīng)用:可以在數(shù)據(jù)備份時(shí)進(jìn)行重復(fù)數(shù)據(jù)刪除,同時(shí)主存儲(chǔ)也支持重復(fù)數(shù)據(jù)刪除。備份軟件和備份介質(zhì)(主要應(yīng)用為虛擬帶庫(VTL))及主存儲(chǔ)設(shè)備都提供數(shù)據(jù)去重功能。
熟悉重復(fù)數(shù)據(jù)刪除
備份軟件
一般來講,使用備份軟件進(jìn)行重復(fù)數(shù)據(jù)處理涉及以下4個(gè)步驟:(1)將需要備份的文件分割為“塊”;(2)采用哈希算法為每個(gè)“塊”計(jì)算一個(gè)哈希值;(3)和備份服務(wù)器哈希表數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比對(duì)以確定是否存在重復(fù)數(shù)據(jù);(4)用指針代替重復(fù)的數(shù)據(jù)塊并將非重復(fù)的數(shù)據(jù)塊傳輸?shù)侥繕?biāo)存儲(chǔ)設(shè)備。
備份軟件可以在源端和目的端進(jìn)行重復(fù)數(shù)據(jù)刪除處理,其主要區(qū)別是:“源端去重”在備份客戶端執(zhí)行上述四個(gè)步驟,而“目的端去重”在備份服務(wù)器上處理。
產(chǎn)品舉例:Commvault Simpana 9.0,嵌入式塊級(jí)重復(fù)數(shù)據(jù)刪除解決方案,可以在客戶端系統(tǒng)刪除重復(fù)數(shù)據(jù),極大減少網(wǎng)絡(luò)中的數(shù)據(jù)傳輸量;統(tǒng)一的操作視圖和啟用重復(fù)數(shù)據(jù)刪除的復(fù)選框簡化了管理。
硬件產(chǎn)品
可以在三個(gè)技術(shù)維度對(duì)重復(fù)數(shù)據(jù)硬件進(jìn)行劃分:(1)按照寫入數(shù)據(jù)的時(shí)間點(diǎn)可以分為聯(lián)機(jī)去重(Inline,有些技術(shù)文章稱之為in-band)和后處理去重(post-process,有些技術(shù)文章稱之為out-of-band);(2)按照對(duì)重復(fù)數(shù)據(jù)處理方式的不同可以分為:逆向引用(reverse referencing)和前向引用(forward referencing);(3)按照去重粒度可以分為文件級(jí)、塊級(jí)和字節(jié)級(jí)去重;塊級(jí)去重按照數(shù)據(jù)塊大小是否可改變分為固定塊和可變塊。
Inline/in-band:首先進(jìn)行“去重”操作,然后再進(jìn)行“寫入”操作。大量的備份數(shù)據(jù)流到達(dá)具有去重功能的硬件設(shè)備時(shí),首先駐留在內(nèi)存中;重復(fù)數(shù)據(jù)刪除引擎對(duì)備份數(shù)據(jù)塊進(jìn)行辨識(shí),判斷是否存在已保存過的數(shù)據(jù)塊:如果存在對(duì)應(yīng)的數(shù)據(jù)塊,寫入指針代替實(shí)際數(shù)據(jù)塊的寫入過程。否則直接寫入該新數(shù)據(jù)塊。
Post-process /out-of-band:大量的備份數(shù)據(jù)流直接寫入具有去重功能的硬件設(shè)備,隨后啟動(dòng)單獨(dú)的進(jìn)程讀取已寫入磁盤的數(shù)據(jù)塊,進(jìn)行重復(fù)數(shù)據(jù)刪除處理過程:如果存在重復(fù)的數(shù)據(jù)塊,刪除該數(shù)據(jù)塊并用指針替代;否則將該新數(shù)據(jù)塊留在磁盤上,而無需任何其他操作。
Inline vs.Post-process:Inline實(shí)際是實(shí)時(shí)消重,Post-process實(shí)際是異步消重。兩者之間的根本區(qū)別是消重進(jìn)程在哪里讀取原始數(shù)據(jù):如果是從內(nèi)存中讀取,那么就是實(shí)時(shí)消重;如果是從磁盤中讀取,那么就是異步消重。需要指出的是,進(jìn)行數(shù)據(jù)備份時(shí),Post-process等待的是一份拷貝的結(jié)束,而不是所有備份任務(wù)結(jié)束后才能進(jìn)行去重處理。去重和數(shù)據(jù)備份是可以并行進(jìn)行的。
reverse referencing:即數(shù)據(jù)只有第一次是完全寫:當(dāng)系統(tǒng)發(fā)現(xiàn)當(dāng)前處理的數(shù)據(jù)塊與已保存的數(shù)據(jù)塊內(nèi)容相匹配時(shí),保留之前存儲(chǔ)的舊數(shù)據(jù)塊,在舊數(shù)據(jù)塊處寫入一個(gè)新指針,而不是將新數(shù)據(jù)塊寫入磁盤。去重過程是不斷為新的冗余數(shù)據(jù)塊寫入指針的過程,這可能會(huì)導(dǎo)致新數(shù)據(jù)碎片不斷增加。