そのため、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 つを削除しても空き領域がない場合はどのように表示しますか?
答え2
私が見るには、これがあなたのコマンドバージョンのバグのようですzfs
。 FreeBSDのバグレポートを確認してください。
これはほぼ確実に出力/表示のバグです。 (ストレージ会計に関するより深い問題であれば、非常に奇妙な振る舞いが見つかります。)
zfsonlinux0.6.5.6 マイシステムのスペースを正しく表示このスナップショットは「使用済み」列から:
# zfs list -t snapshot -r backup/hosts/kali
NAME USED AVAIL REFER MOUNTPOINT
[...deleted...]
backup/hosts/kali@2016-05-24 526M - 44.1G -
backup/hosts/kali@2016-05-25 162M - 44.1G -
backup/hosts/kali@2016-05-26 137M - 44.1G -
backup/hosts/kali@2016-05-27 116M - 44.1G -
backup/hosts/kali@2016-05-28 195M - 44.0G -
backup/hosts/kali@2016-05-29 528M - 44.4G -
backup/hosts/kali@2016-05-30 0 - 44.5G -
ファイルbackup/hosts/kali
システム自体は次のとおりです。
# zfs list backup/hosts/kali
NAME USED AVAIL REFER MOUNTPOINT
backup/hosts/kali 48.5G 4.06T 44.5G /backup/hosts/kali
ファイルシステムとスナップショットについて、これらのフィールドが何を意味するのか、man zfs
検索、Native Properties
およびreferenced
/または詳細を確認してください。used
-o
オプションを参照してくださいzfs list
。これを使用してエラーをバイパスし、目的の出力を正確に取得できます。
例えば
# zfs list -o space backup/hosts/kali
NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD
backup/hosts/kali 4.06T 48.5G 4.03G 44.5G 0 0
しかし、コマンドに従ってパイプする必要はありませんzfs list...
。試してみてください。grep
zfs list -t snapshot | grep "pool/backups@"
zfs list -t snapshot -r pool/backups