btrfsサブボリュームを削除した後、どのくらいのスペースが確保されているかを確認(シミュレート)する方法は?

btrfsサブボリュームを削除した後、どのくらいのスペースが確保されているかを確認(シミュレート)する方法は?

問題は些細なことではありません。 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

関連情報