====== zfs destroyしても空き容量はすぐには増えない? ====== ここに16TiBのRAID-Z2プールがあるじゃろ。 $ zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT zdata 16.2T 5.63T 10.5T 34% 1.00x ONLINE - $ zfs list NAME USED AVAIL REFER MOUNTPOINT zdata 5.63T 5.02T 304K /mnt/zdata zdata/ROOT 5.63T 2.37T 304K /mnt/zdata/ROOT zdata/ROOT/data 5.63T 2.37T 5.63T /mnt/zdata/ROOT/data それを消したんじゃ。 $ sudo zfs destroy -R zdata/ROOT そして再度ファイルシステムを確認すると… $ zfs list NAME USED AVAIL REFER MOUNTPOINT zdata 5.61T 5.04T 288K /mnt/zdata なんと、空き容量が増えておらんのじゃ! もう少し詳しく見てみる。 $ zpool iostat zdata 1 capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zdata 8.20T 8.05T 403 161 2.35M 659K zdata 8.20T 8.05T 445 0 1.86M 0 zdata 8.20T 8.05T 359 0 1.64M 0 zdata 8.20T 8.05T 494 0 2.65M 0 zdata 8.20T 8.05T 446 0 1.75M 0 zdata 8.20T 8.05T 309 0 1.42M 0 zdata 8.19T 8.06T 416 266 2.17M 1.62M zdata 8.19T 8.06T 415 0 1.88M 0 zdata 8.19T 8.06T 438 0 2.47M 0 zdata 8.19T 8.06T 328 0 1.49M 0 zdata 8.19T 8.06T 379 0 1.82M 0 zdata 8.19T 8.06T 494 0 2.65M 0 zdata 8.19T 8.06T 314 158 1.46M 647K zdata 8.18T 8.07T 349 8 1.40M 36.0K zdata 8.18T 8.07T 549 0 2.71M 0 zdata 8.18T 8.07T 444 0 1.85M 0 zdata 8.18T 8.07T 660 0 3.09M 0 zdata 8.18T 8.07T 408 0 1.72M 0 zdata 8.18T 8.07T 310 0 1.83M 0 zdata 8.16T 8.09T 303 161 1.28M 659K zdata 8.16T 8.09T 469 0 2.61M 0 zdata 8.16T 8.09T 350 0 1.89M 0 zdata 8.16T 8.09T 269 0 1.86M 0 zdata 8.16T 8.09T 272 0 1.72M 0 zdata 8.16T 8.09T 264 0 1.76M 0 zdata 8.15T 8.10T 196 170 1.29M 695K ^C $ zfs list NAME USED AVAIL REFER MOUNTPOINT zdata 5.39T 5.27T 288K /mnt/zdata $ df -h Filesystem Size Used Avail Capacity Mounted on zdata 6.6T 287k 6.6T 0% /mnt/zdata なんか頑張って回収しとるのぉ…。この状態でファイルを作るとどうなるんじゃろ?iostatを見ながらddしてみる。 $ sudo zfs create zdata/ROOT $ dd if=/dev/zero of=/mnt/zdata/ROOT/zero.tmp bs=8m ^C 601+0 records in 600+0 records out 5033164800 bytes transferred in 24.909500 secs (202058043 bytes/sec) ---------- $ zpool iostat zdata 1 zdata 3.92T 12.3T 231 1.43K 1.71M 141M zdata 3.92T 12.3T 274 0 1.48M 0 zdata 3.90T 12.3T 102 1.36K 464K 141M zdata 3.88T 12.4T 202 720 811K 59.7M zdata 3.88T 12.4T 548 667 2.63M 81.2M zdata 3.88T 12.4T 117 1.75K 472K 192M zdata 3.88T 12.4T 212 208 872K 856K zdata 3.88T 12.4T 197 2.36K 1.06M 293M zdata 3.88T 12.4T 203 796 827K 68.5M zdata 3.88T 12.4T 242 1.78K 979K 225M zdata 3.88T 12.4T 159 1.39K 647K 146M zdata 3.88T 12.4T 134 1.51K 539K 191M zdata 3.87T 12.4T 120 1.33K 484K 143M zdata 3.87T 12.4T 380 1.80K 2.12M 224M zdata 3.87T 12.4T 504 953 1.97M 83.2M zdata 3.87T 12.4T 350 2.42K 1.37M 304M zdata 3.86T 12.4T 674 913 3.13M 80.2M zdata 3.86T 12.4T 338 2.50K 1.33M 314M zdata 3.86T 12.4T 1005 606 4.41M 47.1M zdata 3.86T 12.4T 289 2.86K 1.13M 360M zdata 3.86T 12.4T 704 184 2.75M 749K zdata 3.86T 12.4T 103 3.36K 415K 418M zdata 3.86T 12.4T 867 191 3.88M 779K zdata 3.86T 12.4T 63 3.17K 255K 396M zdata 3.86T 12.4T 954 149 4.22M 611K zdata 3.86T 12.4T 38 3.46K 156K 432M zdata 3.86T 12.4T 797 66 3.11M 276K zdata 3.86T 12.4T 0 3.07K 0 375M zdata 3.86T 12.4T 761 532 3.47M 62.6M zdata 3.86T 12.4T 651 263 2.54M 7.09M ★ここでddを終了 zdata 3.86T 12.4T 1.02K 182 4.55M 743K zdata 3.86T 12.4T 1.01K 0 4.55M 0 zdata 3.86T 12.4T 1.24K 0 5.46M 0 zdata 3.86T 12.4T 1.09K 0 4.87M 0 zdata 3.86T 12.4T 1.37K 0 5.99M 0 zdata 3.86T 12.4T 1.45K 0 6.27M 0 zdata 3.86T 12.4T 1.04K 167 4.68M 683K ^C 当然じゃが普通に動くようじゃ。dd終了後は、また領域の回収?に戻っておるの。 暫く放置したら回収?作業が終わったようじゃ。 $ zfs list NAME USED AVAIL REFER MOUNTPOINT zdata 90.2M 10.7T 288K /mnt/zdata $ df -h Filesystem Size Used Avail Capacity Mounted on zdata 10T 288k 10T 0% /mnt/zdata じゃがしかし!AVAILが10.7T止まりなのは何故じゃ!?や、RAID-Z2であるからして、パリティ2台分の容量を考慮すると妥当な値なんじゃが、プール作成直後は16Tになってた気がするんだがのぉ……こっちの値が不正確と言われればそれまでなんじゃが、気になる………。