새 장치에 공간을 할당하기 위해 btrfs를 어떻게 얻나요?

새 장치에 공간을 할당하기 위해 btrfs를 어떻게 얻나요?

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일부 데이터가 일시적으로 위험에 처하게 됩니다.

관련 정보