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작동하지 않습니다. 하드 드라이브 용량이 다르기 때문일 수 있습니다.

고마워요, 카밀!

관련 정보