BTRFS: マウントできない: errno=-28 残りスペースなし (交換/バランス後)

BTRFS: マウントできない: errno=-28 残りスペースなし (交換/バランス後)

RAID1プールの小さなディスクを大きなディスクに交換した後、プールからファイルシステムをマウントすることはできません(のみ-o ro)。

mount /dev/sda /mnt

それは取付ける読み取り専用以下dmesg | grep BTRFSを表示します。

BTRFS info (device sda): disk space caching is enabled
BTRFS info (device sda): has skinny extents
BTRFS info (device sda): checking UUID tree
BTRFS info (device sda): balance: resume -dusage=90 -musage=90 -susage=90
BTRFS info (device sda): relocating block group 170456317952 flags system|raid1
BTRFS info (device sda): relocating block group 1104150528 flags data|raid1
BTRFS info (device sda): found 1 extents
BTRFS info (device sda): relocating block group 30408704 flags metadata|raid1
BTRFS: Transaction aborted (error -28)
BTRFS: error (device sda) in __btrfs_free_extent:3106: errno=-28 No space left
BTRFS info (device sda): forced readonly
BTRFS: error (device sda) in btrfs_run_delayed_refs:2209: errno=-28 No space left
BTRFS info (device sda): 1 enospc errors during balance
BTRFS info (device sda): balance: ended with status: -30

物理ディスク(sda、sdb)は十分に大きいです。

# fdisk -l /dev/sd{a,b}*
Disk /dev/sda: 232.89 GiB, 250059350016 bytes, 488397168 sectors
[...]
Disk /dev/sdb: 465.76 GiB, 500107862016 bytes, 976773168 sectors
[...]

# btrfs fi df /mnt
Data, RAID1: total=147.04GiB, used=147.02GiB
System, RAID1: total=8.00MiB, used=48.00KiB
Metadata, RAID1: total=1.00GiB, used=458.84MiB
GlobalReserve, single: total=181.53MiB, used=0.00B

ファイルシステムをマウントできない場合は、サブボリュームを削除し、サイズを変更し、バランスを取るにはどうすればよいですか?

答え1

最初のエラーは、インストール中に自動バランスのためのスペースが不足しているために発生します。自動バランスをスキップするにはインストールできます。

mount -o skip_balance /dev/sda /mnt

マウントオプション注skip_balance

使用するファイルシステムのサイズを変更または増やすには

btrfs fi resize 1:max /mnt
btrfs fi resize 2:max /mnt

ここで、1と2は、特別なキーワードであるMaximum Sizeの略語(devid)にリストされているデバイスIDですbtrfs fi show /mnt。たとえば、代わりに使用することもできます。fifilesystemmax250Gmax

何らかの理由でこの方法はbtrfs fi resize max /mnt機能しません。ハードドライブの容量が異なるためです。

ありがとう、カミール!

関連情報