Btrfs no topo de um mdadm raid10 ou btrfs raid10 em dispositivos simples?

9

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

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

  1. 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?

DejanLekic
fonte

Respostas:

11

Deixe o Btrfs fazer tudo.

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

É claro que se um disco falhar com força em um par espelhado em um madm raid10, você pode substituir o disco defeituoso e seguir em frente com sua vida (embora depois de um conjunto de comandos shell extremamente perturbador). O problema é que seu disco falha um pouco mais suavemente: se alguns blocos retornarem os bits errados em vez de fornecer os códigos de erro apropriados para um bloco defeituoso, ao ler os dados, você obterá aleatoriamente dados incorretos. O Btrfs é mais inteligente do que isso: ele soma somas de dados. Para ser sincero, não sei se é mais correto dizer "todo nó BTree" ou "todo bloco", mas o ponto é que, quando ele lê alguns dados de uma matriz espelhada, verifica a soma de verificação antes de devolvê-la ao seu processo da terra do usuário. Se a soma de verificação não corresponder, ele consultará primeiro o outro espelho na matriz e, se isso der a soma de verificação correta,

Os Btrfs wiki menciona especificamente a sua pergunta :

Se os Btrfs dependessem do mapeador de dispositivos ou MD para o espelhamento, não seria possível resolver falhas da soma de verificação verificando a cópia espelhada . As camadas inferiores não conhecem a soma de verificação ou a granularidade dos blocos do sistema de arquivos e, portanto , não conseguem verificar os dados que retornam.

Finalmente, mesmo sem essa vantagem substancial, o fluxo de trabalho da linha de comando para lidar com dispositivos Btrfs removidos ou adicionados é super simples. Não tenho certeza de que conseguiria acertar corretamente os comandos do shell degradar-montar-depois-consertar seu sistema de arquivos, mas para o Btrfs está muito claramente documentado na página de vários dispositivos como:

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

Nesse ponto, se você tiver espaço suficiente nos discos restantes, sempre poderá btrfs rebalancefazer isso; não há necessidade de substituir o espelho, como você absolutamente faria com madm! E se você quiser substituí-lo, você pode fazer btrfs device addprimeiro.

Glifo
fonte
3

O BTRFS ainda é experimental e você pode acabar com recursos "interessantes" se algo travar. Se você realmente tem / deseja executar o btrfs, por enquanto é muito mais seguro executá-lo em cima de um ataque de software do que apenas executá-lo diretamente. Quando o btrfs amadurece e entra em produção, isso pode não ser mais verdade.

Waxhead
fonte
Há cerca de um ano, experimentei uma configuração btrfs em uma VM. Consegui bloquear consistentemente o kernel (!) Mexendo no comando rebalance. O tempo passou e espero que isso tenha sido corrigido.
Avery Payne