NetApp 早在 2007 年就推出了重復(fù)數(shù)據(jù)刪除技術(shù),該技術(shù)可顯著降低存儲容量要求。利用 NetApp 重復(fù)數(shù)據(jù)刪除技術(shù)可找到相同的數(shù)據(jù)塊,在執(zhí)行字節(jié)級驗證檢查之后,以引用單個共享塊的方式將其替換,從而提高效率。該技術(shù)可刪除位于相同卷或 LUN 中的冗余數(shù)據(jù)塊,從而降低存儲容量要求。
NetApp重復(fù)數(shù)據(jù)刪除技術(shù)介紹
NetApp 重復(fù)數(shù)據(jù)刪除是NetApp Data src="http://image20.it168.com/201106_0x0/659/d85885329ba1df2f.jpg" width=250 height=250>
▲圖 1) NetApp 重復(fù)數(shù)據(jù)刪除的工作原理。
Data ONTAP 如何確定兩個塊可以共享?答案是它會計算每個塊的“指紋”,也就是塊數(shù)據(jù)的哈希值。指紋相同的兩個塊便適合共享。
啟用 NetApp 重復(fù)數(shù)據(jù)刪除之后,它會計算卷中所有在用數(shù)據(jù)塊的指紋數(shù)據(jù)庫(此過程稱為“收集”)。完成此初始設(shè)置之后,即可對數(shù)據(jù)執(zhí)行重復(fù)數(shù)據(jù)刪除。
為避免減慢常規(guī)操作的速度,重復(fù)數(shù)據(jù)搜索作為單獨(dú)的批處理任務(wù)來執(zhí)行。在正常使用期間,WAFL 會在寫入數(shù)據(jù)時創(chuàng)建該數(shù)據(jù)的指紋目錄。該目錄一直積累,直到存儲系統(tǒng)管理員確定的以下任一事件觸發(fā)重復(fù)數(shù)據(jù)刪除為止:
• 手動發(fā)出重復(fù)數(shù)據(jù)刪除“啟動”命令
• 開始執(zhí)行計劃的重復(fù)數(shù)據(jù)刪除過程
• 卷中寫入了 20% 的新數(shù)據(jù)
• 當(dāng) SnapVault 傳輸完成時
啟動重復(fù)數(shù)據(jù)刪除過程之后,以更改的塊的指紋作為鍵值開始排序操作。然后,此排序列表將與指紋數(shù)據(jù)庫文件合并。只要兩個列表中存在相同的指紋,就有可能將相同的塊合并為一個。在這種情況下,Data ONTAP 會棄用其中一個塊,而以引用另一個塊的方式將其替換。因為文件系統(tǒng)時刻在變,只要兩個塊確實仍在使用且包含相同數(shù)據(jù),我們當(dāng)然就可以執(zhí)行這一操作。為確保兩個塊確實相同,在確定適合重復(fù)數(shù)據(jù)刪除的塊之后,會進(jìn)行逐字節(jié)比較。
NetApp 重復(fù)數(shù)據(jù)刪除的實施利用了 WAFL 的一些特殊功能,可以最大限度地降低重復(fù)數(shù)據(jù)刪除的成本。例如,磁盤上的每個數(shù)據(jù)塊都使用校驗和進(jìn)行保護(hù)。
NetApp 使用該校驗和作為指紋的基礎(chǔ)。由于無論如何都會計算校驗和,相當(dāng)于“無償”獲得,因此不會給系統(tǒng)增加任何負(fù)擔(dān)。且由于 WAFL 從不覆蓋正在使用的數(shù)據(jù)塊,因此在釋放數(shù)據(jù)塊之前,指紋將保持有效。NetApp 重復(fù)數(shù)據(jù)刪除與 WAFL 的緊密集成也意味著更改日志的操作將會非常高效。其結(jié)果是:重復(fù)數(shù)據(jù)刪除可用于大量的工作負(fù)載,而不僅僅用于備份,這與其他重復(fù)數(shù)據(jù)刪除實施方案是不同的。