Page 1 of 1
btrfsスナップショットの容量表示
Posted: Fri Oct 22, 2021 11:38 pm
by michimichi
RaspberryPI4B(RaspberryPI OS)にてsambaサーバーを仕立てており、Windowsから「以前のバージョン」が使えるようにbtrfsにて毎日スナップショットを取るように設定しましたが、各スナップショットの容量を表示できないでしょうか?
man btrfs-subvolume を見ても分かりませんでした。
ここでいうスナップショットの容量とは、スナップショットに含まれる全ファイルの容量ではなく、COWによって発生する差分データ(+管理情報)であり、スナップショットを削除することによって解放される容量です。(解放されず1世代前のスナップショットに移ることもある)
あるいは、Windowsの様にスナップショットに使用する容量の上限を設定して、超える場合は自動削除でも良いのですが、スクリプトを書いて自分で好きなように制御できる方が面白いかなと思います。
よろしくお願いします。
Re: btrfsスナップショットの容量表示
Posted: Mon Oct 25, 2021 2:32 pm
by matoken
Raspberry Pi OS ではBtrfs を使っていないのですが,Debian sid amd64 環境でBtrfs + snapper を運用していて,そこではこんな感じで確認しています.Raspberry Pi OS でも同じように確認できるのではないかと思います.
Code: Select all
$ sudo btrfs qgroup show ${BTREFS_PATH}
qgroupid rfer excl
-------- ---- ----
0/5 9.24GiB 2.69MiB
0/1307 16.00KiB 16.00KiB
0/1308 16.00KiB 16.00KiB
0/1309 3.95MiB 3.95MiB
0/1310 3.84MiB 3.84MiB
0/1562 96.00KiB 96.00KiB
0/14223 40.10GiB 36.75GiB
0/19274 0.00B 0.00B
:
容量順に並べ替えて
Code: Select all
$ sudo btrfs qgroup show ${BTREFS_PATH} | sort -hk3 | tail
0/24449 9.37GiB 8.47MiB
0/24425 9.39GiB 8.92MiB
0/24379 9.45GiB 9.17MiB
0/24381 9.45GiB 10.60MiB
0/24451 9.37GiB 12.47MiB
0/24315 9.34GiB 13.56MiB
0/24476 9.36GiB 16.27MiB
0/24390 9.43GiB 17.36MiB
0/24317 9.49GiB 104.28MiB
0/14223 40.33GiB 36.96GiB
IDから何番目のスナップショットかを確認したりしています.
Code: Select all
$ sudo btrfs subvolume list / | grep ^ID\ 24317\ gen
ID 24317 gen 12540518 top level 1562 path .snapshots/4/snapshot
Re: btrfsスナップショットの容量表示
Posted: Thu Oct 28, 2021 12:22 pm
by michimichi
ありがとうございます。
quotaが無効だと怒られたので有効にすると表示できましたが、下記警告が表示され、rescanしても消えません。
WARNING: qgroup data inconsistent, rescan recommended
最初からquotaを有効にしていなかったのがいけないかと思い、スナップショットをすべて削除したら、btrfsが丸ごとリードオンリーになってしまい、スナップショットの再作成もできません。
別の問題が起きているようですので、復旧出来ない場合、btrfsを作り直します。
うまくいったら改めてご報告します。
Re: btrfsスナップショットの容量表示
Posted: Thu Oct 28, 2021 9:19 pm
by michimichi
btrfs check にてエラーが見つかり、修復できないようでしたので、結局btrfsを作り直しました。
結果、qgroup show による容量表示も問題なさそうです。
btrfs自体に不安が残りますが、スナップショットの容量表示は解決です。
ありがとうございました。