
いくつかのスナップショットを削除して、btrfsファイルシステムのいくつかのスペースを確保したいと思います。しかし、どれが効果的に取り除かれるのかわかりません。この質問に対する答えは、btrfsスナップショットに含まれるデータ量を表示する方法を説明します。。ただし、一時的に削除可能なデータがスナップショット間の時間より長く保持される場合は役立ちません。たとえば、月曜日にファイルを作成し、毎日スナップショットを実行してから水曜日に削除すると、そのファイルは両方のスナップショットで使用されるため、両方のスナップショットに属しません。
私が探しているのは列挙する方法だと思います。グループ他のスナップショットが保存しないデータを保存するスナップショット。
答え1
君はできますクォータグループ。
まず、各スナップショットはサブボリュームであり、数値のサブボリュームIDを持っていることに注意してください。を使って見ることができますbtrfs subvol list /myfs
。
次に、サブボリューム10、20、30(通常は)に含まれるブロックがどれだけのスペースを使用しているかを確認するには、次のようにします。
btrfs quota enable /myfs # if not enabled already
btrfs qgroup create 1/12345 /myfs # any number not already in use
btrfs qgroup assign --no-rescan 0/10 1/12345 /myfs
btrfs qgroup assign --no-rescan 0/20 1/12345 /myfs
btrfs qgroup assign --no-rescan 0/30 1/12345 /myfs
btrfs quota rescan -w /myfs # may take a long time
btrfs qgroup show /myfs
次の行が表示されます。
1/12345 107.07GiB 38.93GiB
これは次のことを意味します。
サブボリューム10、20、30には、合計107GiBの合計データが含まれており、他のサブボリューム(たとえば、他のスナップショットや「アクティブ」ファイルシステム)に含まれる場合と含まれない可能性があるデータも含まれます。
これには38.93GiBのデータが含まれています。いいえ他のサブボリュームの一部。サブボリューム10、20、30を削除すると、38.93GiBのスペースが確保されます。