btrfsと不足している空き領域


8

ext4パーティションをbtrfsに変換し、それを行った後、保存サブボリュームを削除しました。次に、fstabファイルでファイルシステムの圧縮(lzo)を有効にしたところ、これまでのところすべてが正しいです。

次に、新しい圧縮がすべてのファイルに適用されるように、パラメーター-cを指定した最適化コマンドを使用して、すべてのファイルを強制的に圧縮しました。

そうしていると、6 GBの空き領域ができる前に、ssdが完全にいっぱいになっていることに気付きました。いいえ、何も残っていません。

easteregg@x201s:~$ btrfs fi df /
Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

そして

easteregg@x201s:~$ df -ha
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda1          75G   60G  852M  99% /

だから今。どうすれば空きスペースを取り戻すことができますか。lzo圧縮により、より多くのスペースが得られると期待していました。そしていま!

fsは正しくマウントされています。

easteregg@x201s:~$ mount
/dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo)

この問題を修正する方法はありますか?


私は今ポイントを持っています:あなたはオンライン再バランスを行うことができません。それが、何もうまくいかなかった理由です。そのため、レスキューシステムを起動し、ディスク全体のバランスを取り直した後、圧縮を有効にしてデフラグコマンドを実行しました。現在、約17ギガの空き容量があります。nice :)
easteregg

1
ベストプラクティスとして、スナップショットの最小限のセットのみを保持し、不要なスナップショットを削除して、ボリューム上のスペースの無駄を回避します。したがって、スナップショットがディスク上でますます多くのスペースを占めるようになります。
Terry Wang

2
徹底した説明と役立つコメントがあるこの質問も参照してください。
イグニス2014年

回答:


8

私はこの質問が古いことを知っています-今日の時点で、balanceコマンドはこの問題を解決します:

変換中は、物を移動するために多くのスペースがすべてコーティングされます。割り当てられると、「無料」または「未割り当て」として表示されなくなります。これを修正するには、単にバランスを開始します

btrfs balance start "path"

また、特定の割合に使用されるチャンクのみのバランスを取るように、balanceコマンドに指示することもできます-0%のように、チャンクが空であることを意味します。

btrfs balance start "path" -dusage=0 -musage=0

パラメータ-dは、データのオプションを意味します。パラメータ-mは、メタデータのオプションを意味します。

バランスコマンドで遊んで、それは役立つはずです。


5

からの出力を見てくださいbtrfs fi df

Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

total一方、一部では、割り当てられたスペースでused、実際のbtrfsで使用されています。(約15 GB)の違いは、不足しているスペースです。totalusedご覧のとおり、メタデータブロックには既に割り当てられています。

私はbtrfsの趣味の経験しかありませんが、よくレイアウトされたbtrfsファイルシステムを作成するには、ext4変換が最良の方法だとは思いません。幸い、ファイルシステム全体のバランスを取り直して、すべての割り当てをやり直すことができます。

いつものように、バックアップを使用します。

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