web-dev-qa-db-ja.com

BTRFS、スペースが不足していますが、十分なスペースがあります

[〜#〜] btrfs [〜#〜]No space leftに直面しています。

私がすでに試したこと:

  • RWを再マウントした後:btrfs filesystem resize max /mnt/hdd
  • さまざまなパラメータでバランスを実行しました(数週間;-))btrfs balance start /mnt/hdd -dlimit=<param>

何も役に立ちませんでした。これ以上何ができますか?

だから私が直面しているのは(buntu 18.04.1 LTS):

BTRFS: error (device sda) in __btrfs_inc_extent_ref:2268: errno=-28 No space left
BTRFS info (device sda): forced readonly

ただし、十分なスペースがあります。

$ Sudo btrfs fi show /mnt/hdd
Label: none  uuid: 262a8d86-279a-4f6b-8968-32e200c32255
    Total devices 1 FS bytes used 1.68TiB
    devid    1 size 7.28TiB used 1.70TiB path /dev/sda

ただし、このコマンドはデータ部分のスペースが不足していますか?を報告しています。

$ btrfs fi df /mnt/hdd
Data, single: total=1.47TiB, used=1.46TiB
System, single: total=4.00MiB, used=224.00KiB
Metadata, single: total=236.01GiB, used=222.76GiB
GlobalReserve, single: total=512.00MiB, used=495.75MiB

また:

$ Sudo btrfs fi usage /mnt/hdd
Overall:
    Device size:           7.28TiB
    Device allocated:          1.70TiB
    Device unallocated:        5.58TiB
    Device missing:          0.00B
    Used:              1.68TiB
    Free (estimated):          5.58TiB  (min: 5.58TiB)
    Data ratio:               1.00
    Metadata ratio:           1.00
    Global reserve:      512.00MiB  (used: 495.75MiB)

Data,single: Size:1.47TiB, Used:1.46TiB
   /dev/sda    1.47TiB

Metadata,single: Size:236.01GiB, Used:222.76GiB
   /dev/sda  236.01GiB

System,single: Size:4.00MiB, Used:224.00KiB
   /dev/sda    4.00MiB

Unallocated:
   /dev/sda    5.58TiB
2
robert

デバイスはほとんど割り当てられていません。これは、サイズ変更/リバランスで修正できます。しかし、それはすでに機能していなかったので、途中で「何か奇妙なもの」があります。 dmesgからのBTRFS関連メッセージの出力は、理由を特定するのに役立つ場合があります。

オフにしてからもう一度オンにしてみましたか?真剣に、しかし、再マウントはほとんどのBTRFSの奇妙さを修正します。まだマウントしていない場合は、マウントを解除する前にデータをバックアップしてください。

それとは別に、チェックを行うことができます。これはスクラブとは異なり、BTRFSがオフラインのときにバッキングブロックデバイスに対して実行されます。これは大量のRAMを消費し、完了するまでに時間がかかります。これは構造を検証し、(-repairオプションを使用して)指示されない限り、それ自体で修復することはありません。何が問題なのかを出力し、それを修正するものを理解するまで、修復するように指示しないでください(たとえば、物理ドライブの障害が検出されない場合、修復を行うとファイルシステムがほぼ確実に破棄されます)。

したがって、オフラインチェックを発行できます。

btrfs check -p /dev/sda

また、BTRFSチェックで問題が発生した場合は、バッキングデバイスをチェックする必要があります(SMARTデータを読み取る、長いテストを実行するなど)。これはsmartctl -a /dev/sdaとそれぞれsmartctl -t long /dev/sda。これは、これが実際のドライブを含むベアメタルノードであると想定しています。VMの場合は、BTRFSで損傷が見られるかどうかを下から上に確認し始めます。

1
Spooler