Por que o btrfs se recusa a converter metadados em RAID1?

3

Eu criei um sistema de arquivos btrfs de dispositivo único. De acordo com o artigo wiki do btrfs sobre usando vários dispositivos , eu deveria ser capaz de convertê-lo em RAID1 usando:

btrfs balance start -dconvert=raid1 -mconvert=raid1 /path

Eu iniciei isso no Linux 3.16 e ele falhou (kernel panic). Atualizado para o Linux 4.0, depois de montar o sistema de arquivos, ele continuou e terminou. Mas só fez os dados, não os metadados ou sistema (de acordo com btrfs fi df ). Eu peguei o último btrfs-progs do git (só para ter certeza que não era uma versão antiga), e fiz:

Watt:/home/anthony/src/btrfs-progs# ./btrfs balance start -v -mconvert=raid1 /path
Dumping filters: flags 0x6, state 0x0, force is off
  METADATA (flags 0x100): converting, target=16, soft is off
  SYSTEM (flags 0x100): converting, target=16, soft is off
Done, had to relocate 6 out of 1411 chunks

Mas isso não espelhou, aparentemente. Agora eu tenho:

Watt:/home/anthony/src/btrfs-progs# ./btrfs fi usage /path
Overall:
    Device size:                   7.28TiB
    Device allocated:              2.75TiB
    Device unallocated:            4.53TiB
    Device missing:                  0.00B
    Used:                          2.74TiB
    Free (estimated):              2.26TiB      (min: 2.26TiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID1: Size:1.37TiB, Used:1.37TiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           1.37TiB
   /dev/mapper/luks-ec97c1ad-21d8-41bb-9072-e5a74f68e416           1.37TiB

Metadata,DUP: Size:2.50GiB, Used:1.58GiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           5.00GiB

System,DUP: Size:32.00MiB, Used:224.00KiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9          64.00MiB

Unallocated:
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           3.17TiB
   /dev/mapper/luks-ec97c1ad-21d8-41bb-9072-e5a74f68e416           1.36TiB

Eu tentei o saldo total novamente (com -dconvert=raid1 e -mconvert=raid1 ) e isso também não aconteceu.

NOTA: O disco maior (56… b9) é o que eu adicionei.

Como posso obter os metadados e o sistema espelhados?

    
por derobert 02.05.2015 / 00:14

1 resposta

3

Esta é uma regressão no kernel 4.0, fazendo com que os filtros de conversão em equilíbrio não tenham efeito; parece que todas as conversões são afetadas (não apenas single- > raid1 ou raid1- > raid5). Veja um recente tópico da lista de discussão , onde atualmente não há correções oficiais. Se você estiver pronto para corrigir seu kernel, há um patch fácil de aplicar como correção temporária.

This is a known bug in v4.0. I sent in a patch [1] to revert the commit that caused the regression, but it didn't get any response. You could apply that or just revert 2f0810880f08 ("btrfs: delete chunk allocation attemp when setting block group ro") to fix your problem for now.

[1]: https://patchwork.kernel.org/patch/6238111/

    
por 03.05.2015 / 05:39

Tags