zfs listがスナップショットの実際のサイズを出力しないのはなぜですか?

zfs listがスナップショットの実際のサイズを出力しないのはなぜですか?

そのため、zfsベースのバックアップサーバーの空き容量がなくなり、古いバックアップをいくつか削除しましたが、後でファイルシステムの空き容量が解放されませんでした。

最初の推測?まだ古いスナップショットが残っています。だから私は以下を実行しました。

zfs list -t snapshot | grep "pool/backups@"

実際にはいくつかあります:

NAME                                USED    AVAIL   MOUNTPOINT
pool/[email protected]  4.81M   0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0
pool/[email protected]  270K    0       0

ところで、先ほど削除した約400Gサイズのスナップショットが出ると予想しましたが、USED注目すべきサイズのスナップショットはまったくありません。

私は文字通り別の場所で問題を見つけるために数時間を費やし、ついに実行しました。

zfs destroy -nv pool/backups@

驚くべき結果は次のとおりです。

will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will destroy pool/[email protected]
will reclaim 421G

私の質問は:なぜzfs listスナップショットの実際のサイズが表示されないのですか?当初、スナップショットが消費する実際のスペースを取得するにはどうすればよいですか?

ベストアンサー1

私も同じ問題がありましたが、答えを受けました。r/zfs。問題は、そのUSED列にそのスナップショットに固有のブロックのみが表示されることです。複数のスナップショット間でブロックが共有されている場合は、まったく表示されません。これにより、スナップショットを削除するときにUSED正しいスペースが再開され、そのスナップショットのブロックが他のスナップショットで引き続き使用される場合、スペースはゼロに近づきます。

スナップショットを順番に削除すると、最終的にそのブロックを参照するスナップショットが1つだけ残り、突然すべてのスペースが列に表示されますUSED

理想的ではありませんが、一理があると思います。 400 GB は複数のスナップショット間で共有されますが、そのうちの 1 つを削除しても空き領域がない場合はどのように表示しますか?

おすすめ記事