最近有網友問起NextenaStor 的重複資料删除功能的實作機制,其實這個是使用了Zettabyte File System(ZFS)内置的重複資料删除功能。
檔案級重複資料删除對處理能力的要求最低,但是也是效率最低的方法。資料塊級重複資料删除要求更多的處理能力,據說這種方法适用于虛拟機鏡像。 位元組排列重複資料删除使用的處理能力最多,是删除可能重複且在資料塊級上不對稱的小塊資料如電子郵件附件的理想方案。Sun估計這種重複資料删除方案最适用于應用級環境,因為應用軟體知道資料的具體情況。
ZFS利用SHA 256hashing提供資料塊級重複資料删除功能,它可以自然映射到ZFS的256比特資料塊檢查和。重複資料删除是在内部進行的,ZFS假定它正在伺服器上運作一個多線程作業系統,具有很強的處理能力。 換句話說,就是多核處理器。
要想開啟這個功能,你隻要對ZFS進行相關設定即可:
Zfs set dedupe = on silo
Zfs set dedupe = on silo /mydataset
Zfs set dedupe = off silo /yourdataset
由于資料集中包含了備援資料,這樣就可以釋放一定的磁盤容量,提高磁盤寫資料I/O速度,因為備援資料沒有被寫入磁盤。
如果你想確定散列重複資料删除的安全性,你可以讓ZFS進行全部位元組對比,而不是利用散列對比。
Zfs set dedup = verify silo
你也可以用其他方法,利用一個更簡單的雜湊演算法來減少所需的處理能力并将它與驗證功能結合在一起以提高重複資料删除的整體速度:
Zfs set dedup =fletcher 4,,verify silo