您可以使用重複資料刪除 (dedup) 特性來移除 ZFS 檔案系統中重複的資料。若檔案系統啟用了 dedup 特性,則會以同步方式移除重複的資料區塊。結果是只會儲存唯一的資料,通用元件則由檔案共用。例如:
# zfs set dedup=on tank/home
除非您已執行下列步驟來判斷系統是否支援重複資料刪除,否則請勿啟用位於生產系統上之檔案系統的 dedup 特性。
判斷重複資料刪除節省的空間是否對資料有益。若資料無法進行重複資料刪除,則無需啟用 dedup。執行下列指令會大量耗用記憶體:
# zdb -S tank Simulated DDT histogram: bucket allocated referenced ______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE ------ ------ ----- ----- ----- ------ ----- ----- ----- 1 2.27M 239G 188G 194G 2.27M 239G 188G 194G 2 327K 34.3G 27.8G 28.1G 698K 73.3G 59.2G 59.9G 4 30.1K 2.91G 2.10G 2.11G 152K 14.9G 10.6G 10.6G 8 7.73K 691M 529M 529M 74.5K 6.25G 4.79G 4.80G 16 673 43.7M 25.8M 25.9M 13.1K 822M 492M 494M 32 197 12.3M 7.02M 7.03M 7.66K 480M 269M 270M 64 47 1.27M 626K 626K 3.86K 103M 51.2M 51.2M 128 22 908K 250K 251K 3.71K 150M 40.3M 40.3M 256 7 302K 48K 53.7K 2.27K 88.6M 17.3M 19.5M 512 4 131K 7.50K 7.75K 2.74K 102M 5.62M 5.79M 2K 1 2K 2K 2K 3.23K 6.47M 6.47M 6.47M 8K 1 128K 5K 5K 13.9K 1.74G 69.5M 69.5M Total 2.63M 277G 218G 225G 3.22M 337G 263G 270G dedup = 1.20, compress = 1.28, copies = 1.03, dedup * compress / copies = 1.50
若估計的重複資料刪除比率大於 2,則重複資料刪除可能確實能夠節省空間。
在此範例中,重複資料刪除比率 (dedup = 1.20) 小於 2,因此不鼓勵啟用 dedup。
請使用下列方式確認系統有足夠的記憶體以支援重複資料刪除:
每個核心內的重複資料刪除表格項目大約為 320 個位元組。
將配置的區塊數目乘以 320。例如:
in-core DDT size = 2.63M x 320 = 841.60M
當重複資料刪除表格可以完全納入記憶體時,就會取得最佳重複資料刪除效能。若重複資料刪除表格必須寫入磁碟,則效能會降低。若在記憶體資源不足的檔案系統上啟用重複資料刪除,則在執行與檔案系統相關的作業期間,系統效能可能會變差。例如,若在記憶體資源不足的情況下移除啟用重複資料刪除的大型檔案系統,系統效能可能會受到影響。