btrfs:割り当てられた巨大なメタデータ


14

ext4ルートFSをbtrfsに変換した256GB SSDディスクがあります。ext4バックアップサブボリュームを消去し、圧縮を有効にし、すべてのファイルで圧縮を有効にするために再帰的にデフラグしました。

btrfs fi df / しかし、私を心配させる出力があります:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

出力を正しく理解している場合、65GB(ディスクの1/4)がメタデータ用に予約されており、ファイルの保存には使用できません。これが正しければ、それは私のディスクスペースの大きな浪費になります。私は正しく理解していますか?ディスクのメタデータ割り当て部分のサイズを変更できますか?

回答:


16

まず、カーネルとBTRFSユーザースペースが最新であることを確認してください。

BTRFS FAQによると、メタデータのブロックサイズを変更することはできません。ただし、btrfs balance start -m <mount point>を実行して、メタデータをディスク全体に再割り当てし、副作用として未割り当て領域を解放することができます。

それでもうまくいかない場合は、データをバックアップし、ファイルシステムを再作成する必要があります。(詳細については、こちらをご覧ください。)


答えてくれてありがとう。カーネルは3.11.2、btrfs-toolsはv0.20-rc1なので、ここで時代遅れになったとは思いません。バランスをとろうとしましたが、次のバグが発生しました: spinics.net/lists/linux-btrfs/msg26977.html そして、このためだけに新しいカーネルをコンパイルする気はありません。:P私が疑問に思うのは、これらの65GBがサイズ変更できないメタデータブロックであるか、またはその用語が他の何かを指しているかどうかです。そうでないと、そもそもそのサイズでメタデータブロックがどのように作成されたのか本当にわかりません。
-Gnurou

残念ながら、私はbtrfsのユーザーであり、専門家ではないため、私の助けは限られています。いずれにしても、ext4からの変換プロセスに欠陥がある可能性があります。
hololeap

11
そのため、必要なパッチが安定したカーネルに組み込まれ、私はあなたが提案したことを試しました。実際、バランシングにより、メタデータ用に予約された領域の量が3GBに減り、要求されたスペースが「df」の空きスペースとして表示されます。ディスク全体のバランスを取り直す必要はないことに注意してください。btrfsbalance start -m <mount point>を実行すると、メタデータのバランスを取り直すことができます。これははるかに高速です。洞察に満ちた答えをありがとう!
Gnurou

お役に立てて嬉しいです!
hololeap

「メタデータのブロックサイズを変更することはできません」。これはこの質問とは無関係です。FAQでは、メタデータに割り当てられたスペースの量ではなく、割り当てユニットのサイズについて説明しています。
ウラジミールパンテレフ16

1

これにより、メタデータのサイズが小さくなります。

sudo btrfs balance start -v -musage=0 /path
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.