Como obter o btrfs para alocar espaço no novo dispositivo?

2

Eu tenho um sistema de arquivos btrfs para o qual a saída de 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

Como você pode ver, todos os fragmentos de dados alocados estão completamente cheios. btrfs balance start /mnt falha com:

ERROR: error during balancing '/mnt': No space left on device
There may be more info in syslog - try dmesg | tail

Isto não é uma duplicata de esta questão , que é sobre os pedaços de metadados estarem cheios. Minha pergunta é como faço para que o btrfs aloque alguns pedaços em /dev/sdd

    
por jl6 09.05.2017 / 23:28

1 resposta

0

Parece que você tem um sistema de arquivos que está usando o perfil raid1, o que significa que você precisará adicionar um quarto dispositivo temporariamente para que o BTRFS possa alocar novos blocos.

Cada perfil tem um número mínimo de dispositivos necessários para alocar uma parte e, se não houver muitos dispositivos com espaço livre, você não poderá alocar uma nova parte. Para raid1 e raid0, o mínimo é 2, para raid10 é 4, e para raid5 e raid6 são 3 e 4 respectivamente. A opção rápida, se você tiver muita RAM e uma fonte de alimentação confiável, é adicionar temporariamente um ramdisk de 2-4 GB ao sistema de arquivos, executar um equilíbrio completo e, em seguida, remover o ramdisk do sistema de arquivos. Uma unidade flash USB também funciona, mas você pode ter problemas de confiabilidade com isso.

Alternativamente, você pode ser capaz de fazer isso funcionar sem precisar adicionar outro dispositivo se você iniciar um saldo com -mconvert=single, -dconvert=single, -f , deixar isso funcionar por um tempo, depois matá-lo e reexecutar o equilíbrio com -mconvert=raid1 -dconvert=raid1 , mas isso significa que alguns dos seus dados estarão temporariamente em risco.

    
por 13.07.2017 / 14:54

Tags