btrfs 파일 시스템이 있고 출력은 다음과 같습니다 btrfs fi usage /mnt
.
Overall:
Device size: 60.00GiB
Device allocated: 40.00GiB
Device unallocated: 20.00GiB
Device missing: 0.00B
Used: 38.03GiB
Free (estimated): 10.00GiB (min: 10.00GiB)
Data ratio: 2.00
Metadata ratio: 2.00
Global reserve: 22.00MiB (used: 0.00B)
Data,RAID1: Size:18.99GiB, Used:18.99GiB
/dev/sdb 18.99GiB
/dev/sdc 18.99GiB
Metadata,RAID1: Size:1.00GiB, Used:22.11MiB
/dev/sdb 1.00GiB
/dev/sdc 1.00GiB
System,RAID1: Size:8.00MiB, Used:16.00KiB
/dev/sdb 8.00MiB
/dev/sdc 8.00MiB
Unallocated:
/dev/sdb 1.00MiB
/dev/sdc 1.00MiB
/dev/sdd 20.00GiB
보시다시피 할당된 모든 데이터 블록이 완전히 가득 찼습니다. btrfs balance start /mnt
실패:
ERROR: error during balancing '/mnt': No space left on device
There may be more info in syslog - try dmesg | tail
이것은아니요사본이 문제이는 메타데이터 블록이 가득 찬 것과 관련이 있습니다. 내 질문은 btrfs가 일부 블록을 할당하도록 하는 방법입니다./dev/sdd
답변1
raid1 프로필을 사용하는 파일 시스템이 있는 것 같습니다. 즉, BTRFS가 새 블록을 할당할 수 있도록 네 번째 장치를 일시적으로 추가해야 합니다.
각 프로파일에는 블록 할당에 필요한 최소 개수의 장치가 있으며, 여유 공간이 있는 장치가 많지 않으면 새 블록을 할당할 수 없습니다. 최소값은 raid1과 raid0의 경우 2, raid10의 경우 4, raid5와 raid6의 경우 각각 3과 4입니다. RAM이 많고 전력이 안정적이라면 빠른 옵션은 파일 시스템에 일시적으로 2~4GB 램디스크를 추가하고 전체 밸런스를 실행한 다음 파일 시스템에서 램디스크를 제거하는 것입니다. USB 플래시 드라이브도 작동하지만 안정성 문제가 발생할 수 있습니다.
아니면 당신가능한-mconvert=single, -dconvert=single, -f
시작 잔액을 사용하고 잠시 동안 실행한 다음 종료하고 재실행 잔액을 사용하면 추가 장비를 추가하지 않고도 이 기능을 달성할 수 있지만 -mconvert=raid1 -dconvert=raid1
일부 데이터가 일시적으로 위험에 처하게 됩니다.