Btrfs na parte superior de um mdadm raid10, ou btrfs raid10 em dispositivos desprotegidos?

10

Eu tenho um RAID10 gerenciado pelo mdadm e eu tenho o sistema de arquivos EXT4 em cima dele. No entanto, eu gosto do BTRFS e gostaria de converter o sistema de arquivos EXT4 para o BTRFS, mas eu estava pensando em desempenho e manutenção. Para um exemplo com o BTRFS, não consigo ver facilmente o status quando removo / adiciono outro disco à matriz como consigo com o mdadm (ou talvez eu simplesmente não saiba como - procurei pelos documentos do BTRFS e não consegui encontrar este ).

Então, da sua experiência, qual é a melhor escolha:

  1. Para simplesmente converter o sistema de arquivos EXT4 e deixar o mdadm gerenciar o RAID10?

  2. Para se livrar do mdadm e deixar o BTRFS fazer tudo?

por DejanLekic 03.12.2011 / 14:43

2 respostas

12

Deixe o Btrfs fazer tudo.

Por um lado, o Btrfs possui seu próprio código de espelhamento integrado, que pode ser mais inteligente do que o madm.

É claro que se um disco falhar em um par espelhado em um ataque madm10, você pode substituir o disco defeituoso e seguir em frente com sua vida (embora depois de um conjunto complexo de comandos shell). O problema é se o seu disco falhar um pouco mais suavemente: se alguns blocos apenas retornarem os bits errados em vez de fornecer os códigos de erro apropriados para um bloco defeituoso, então, ao ler os dados, você obterá aleatoriamente dados incorretos. O Btrfs é mais inteligente que isso: faz o checksum de todos os dados. Para ser honesto, não sei se é mais correto dizer "todo nó BTree" ou "todo bloco", mas o ponto é que quando lê alguns dados de uma matriz espelhada, ele verifica a soma de verificação antes de devolvê-la à sua processo userland. Se a soma de verificação não corresponder, ele consultará o outro espelho na matriz primeiro, e se isso fornecer a soma de verificação correta, ele alertará que o disco começou a falhar silenciosamente.

O wiki do Btrfs menciona especificamente sua pergunta :

If Btrfs were to rely on device mapper or MD for mirroring, it would not be able to resolve checksum failures by checking the mirrored copy. The lower layers don't know the checksum or granularity of the filesystem blocks, and so they are not able to verify the data they return.

Por fim, mesmo sem essa vantagem substancial, o fluxo de trabalho de linha de comando para lidar com dispositivos Btrfs removidos ou adicionados é super simples. Eu nem tenho certeza se poderia ter os comandos shell degraded-mount-then-fix-your-files-files, mas para o Btrfs é documentado de forma muito clara na página de vários dispositivos como:

mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt

Neste ponto, se você tiver espaço suficiente nos discos restantes, poderá sempre usar apenas btrfs rebalance e terminar com isso; Não há necessidade de substituir o espelho, como você absolutamente precisa fazer com madm! E se você quiser substituí-lo, você pode fazer btrfs device add primeiro.

    
por 03.06.2012 / 22:08
4

O BTRFS ainda é experimental e você pode acabar com recursos "interessantes" se algo falhar. Se você realmente quer / quer rodar o btrfs, seria muito mais seguro executá-lo em cima de uma invasão de software do que apenas executá-lo diretamente. Quando o btrfs amadurece e entra em produção, isso pode não ser mais verdade.

    
por 28.01.2012 / 02:08