問題は些細なことではありません。 BTRFSはCOWファイルシステムです。ハードディスクに保存されているオブジェクトは、複数のファイルで参照できます。
本番サーバーでは、バックアップソリューションの一部としてBTRFSスナップショットを使用します。このようにして、与えられたサブボリュームに対して空間効率的でナビゲート可能な履歴を持つことができます(私はスナップショットBtr)。
さまざまな目的に使用される複数の独立したbtrfsサブボリュームがあり、各サブボリュームのバックアップスキームがあります。空き容量がなくなると、スマートログ時間コストアルゴリズムに基づいて、各バックアッププールで最小限に必要なバックアップスナップショットを撮ることができますSnapBtr
。
各バックアップを削除した後に公開されるデータ量、古いスナップショットの寿命、およびそのバックアッププールの重要性を測定する方法が必要です。以前の情報を紛失しました。
私が理解したところによると、BTRFSの空き領域計算プロセスは簡単でも高速でもありません。解放されるスペースのサイズを取得するには、サブボリュームの削除をシミュレートできることが必要です。
誰が私を助けることができますか?このメッセージをに投稿する必要がありますか[email protected]
?
答え1
証明されているようにここ、実際には非常に簡単です。
まず、btrfs クォータをイネーブルにします。
# btrfs quota enable /btrfs_subvolume
次に、次を実行します。
# btrfs qgroup show /btrfs_subvolume
OR
# btrfs qgroup show -f /btrfs_subvolume
Btrfs v3.18.2の内容は次のようになります。
qgroupid rfer excl
-------- ---- ----
0/260 1.09GiB 1.09GiB
0/260はサブボリュームID、extraはサブボリュームの排他データです。これは、サブボリュームを削除するときに確保できるスペースの量です。
編集:これによると協会、これは正式に推奨される方法のようです。
答え2
btrfsQuota.py
出力をbtrfs qgroup show
読みやすくするには、サブボリュームIDをサブボリューム名に置き換えます。たとえば、次のようになります。
subvol group total unshared
-------------------------------------------------------------------------------
test/a 0/970 20.05M 0.05M
test/b 0/971 20.05M 10.05M
test/c 0/972 30.05M 10.05M
test/d 0/973 30.05M 0.05M
test/e 0/974 30.05M 10.05M