私は数 TB のデータを保管するために FreeBSD 上の ZFS を使用しています。
重複排除なしで保存すると、生のデータの約 25% が十分に一意であるため、圧縮は役立ちますが、重複排除は無駄になります。
残りの 75% には重複排除可能なデータが大量に含まれており、過去にはこのデータセットで 2 倍から 8 倍の比率がありました。そのため、私の NAS は、必要に応じて圧縮された重複排除を処理できるように最初から仕様化されていました。96GB 2400 ECC (統計で重複排除テーブルの負荷が示された場合はさらに追加可能)、3.5GHz クアッド コア Xeon、ミラー ディスク、NVMe L2ARC、および Intel P3700 NVMe ZIL。
フォーマット前の生のプール容量は現在 22 GB (3 x 6TB vdevs + 1 x 4TB vdev) で、直感的には現在物理的に約 7 - 14 TB を使用していると思います。これには、Samba ファイル共有データセットと固定サイズの ESXi iSCSI zvol (ほとんどが空で、少なくとも 1 つはスパース) の両方が含まれています。しかし、これらの出力の違いがわからないため混乱し、実際にどれだけの空き容量があるかわかりません。したがって、目標の 65% 使用率を下回るようにディスクを追加する必要があるかどうかもわかりません。
# zpool リスト -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 19.9T 14.0T 5.93T - 53% 70% 2.30x ONLINE /mnt
mirror 5.44T 4.18T 1.26T - 59% 76%
gptid/6c62bc1a-0b7b-11e7-86ae-000743144400 - - - - - -
gptid/94cad523-0b45-11e7-86ae-000743144400 - - - - - -
mirror 5.41T 4.38T 1.03T - 62% 80%
ada0p2 - - - - - -
gptid/e619dab7-03f1-11e7-8f93-000743144400 - - - - - -
mirror 5.44T 4.12T 1.32T - 56% 75%
gptid/c68f80ae-01da-11e7-b762-000743144400 - - - - - -
da0 - - - - - -
da1 - - - - - -
mirror 3.62T 1.31T 2.32T - 29% 36%
da3 - - - - - -
da4 - - - - - -
# zdb -bDDD タンク
DDT-sha256-zap-duplicate: 39468847 entries, size 588 on disk, 190 in core
[duplicate bucket data cut as it isn't relevant and repeats in the totals below]
DDT-sha256-zap-unique: 60941882 entries, size 526 on disk, 170 in core
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
1 58.1M 1.21T 964G 1005G 58.1M 1.21T 964G 1005G
2 25.0M 1.10T 784G 807G 58.5M 2.69T 1.87T 1.92T
4 10.4M 393G 274G 282G 48.4M 1.85T 1.29T 1.34T
8 1.70M 51.1G 37.7G 39.7G 16.5M 487G 353G 372G
16 456K 9.85G 5.73G 6.44G 10.1M 212G 121G 138G
32 67.0K 1.73G 998M 1.07G 2.77M 77.1G 44.6G 48.6G
64 23.7K 455M 327M 350M 1.98M 36.1G 25.8G 27.7G
128 3.47K 75.7M 48.0M 54.5M 557K 12.1G 7.68G 8.70G
256 610 46.9M 12.3M 13.6M 216K 16.9G 4.14G 4.61G
512 211 14.8M 2.46M 3.01M 145K 10.2G 1.72G 2.10G
1K 57 1.10M 38K 228K 77.7K 1.45G 49.3M 311M
2K 42 456K 22K 168K 118K 1.17G 61.3M 474M
4K 18 108K 9K 72K 104K 574M 52.1M 417M
8K 11 128K 5.50K 44K 117K 1.29G 58.3M 467M
16K 7 152K 4K 28K 155K 2.60G 85.6M 619M
128K 1 16K 512 4K 137K 2.14G 68.4M 548M
256K 1 4K 512 4K 302K 1.18G 151M 1.18G
Total 95.8M 2.76T 2.02T 2.09T 198M 6.59T 4.65T 4.83T
dedup = 2.31, compress = 1.42, copies = 1.04, dedup * compress / copies = 3.15
最初の出力フォーマットされたプールの容量は19.9TB(ほぼ正しいようです)であると言っているようですが、使用中の容量は約14TB5.93TB は予備です。そうであれば、ディスクを追加します。
2番目の出力実際の割り当てられた物理スペースは約2.02TB(または、圧縮+重複排除により 3.15 倍の節約で 6.59 TB)。
2 つの数字は大きく異なっており、どのように調整すればよいのかわかりません。
ヒントをお願いします!
答え1
2 つの数字は大きく異なっており、どのように調整すればよいのかわかりません。
ヒントをお願いします!
出力zpool
は正しいです。
他にも興味深いコマンドは ですzfs list
。
答え2
プールがどれくらいいっぱいになっているかを確認する確実な方法は、次のように尋ねることです。
$ zpool get capacity tank
NAME PROPERTY VALUE SOURCE
tank capacity 60% -
ご希望であれば、自分で計算することもできます。
$ zpool get -p allocated,size tank
NAME PROPERTY VALUE SOURCE
tank allocated 596675149824 -
tank size 987842478080 -
$ bc
scale=4
59667514982400/987842478080
60.4018