O RAID1 ou similar é necessário para o btrfs / ZFS proteger contra a podridão de bits?

5

Estou executando um servidor de arquivos usando o software raid Linux, configurado como raid6. Como sistema de arquivos, escolhi o btrfs. No entanto, eu não estou usando a implementação raid6 do btrfs, já que ainda não é muito estável. Então, basicamente, estou usando o raid no nível de bloco das coisas. Além disso, estou fazendo backups para outro local de dados realmente importantes. Por fim, conectei um no-break ao servidor para proteção contra perda de energia e surtos.

Minhas perguntas:

  1. Estou ciente de que o raid6 oferece uma boa proteção contra falhas no disco rígido, mas será que o btrfs em cima dele realmente detecta o bit rot e o corrige? Se sim, como isso é possível sem o sistema de arquivos raid1?

  2. Você pode passar pelo bloco raid6 de vez em quando para encontrar e corrigir corrupções? Preciso agendar isso?

  3. Se eu fiz as coisas erradas, o que você recomenda que eu faça em vez disso, se eu quiser uma boa proteção contra falhas de dados e podridão de bits?

por user333556 15.06.2014 / 18:22

3 respostas

4

1: Em sua configuração, o btrfs deve detectar a corrupção de dados, mas não a corrigirá, pois não há redundância de dados no que diz respeito ao btrfs.

2: O RAID6 não detecta nem protege de maneira confiável contra danos no bit. Ele protege apenas contra falhas de disco e, em alguns casos, pode detectar blocos ainda não usados.

3: Se o btrfs RAID6 não estiver pronto, você pode considerar o espelhamento btrfs ou o ZFS RAIDZ2.

    
por 15.06.2014 / 22:29
4

O BTRFS RAID-6 é (embora ainda experimental) atualmente bastante estável agora. A versão atual ainda consegue corrigir muitos erros típicos, incluindo a substituição de uma unidade com falha / ausente.

Assim como o ZFS, o BTRFS faz checksum, o que significa que você sempre pode (e deve, periodicamente) executar um scrub para verificar seus dados. Se os dados (dados ou metadados) em uma unidade estiverem danificados, o BTRFS poderá detectar os erros e, se tiver redundância (usando o BTRFS RAID-6), poderá corrigir os arquivos afetados. Depois disso, ele saberá se os arquivos reparados estão corretos, porque tem checksums.

Sistemas RAID clássicos (hardware), incluindo RAID MD (software), não possuem somas de verificação. Esses sistemas dependem apenas da paridade, portanto, uma infeliz combinação de erros em várias unidades pode muito bem levar à corrupção. Como não há checksums, o sistema RAID (como o md) não poderá verificar se todos os erros desapareceram após o scrub (isto é, se os arquivos estão corretos). Existem exemplos (também alguns vídeos) que demonstram a corrupção de dados em um sistema RAID clássico.
É importante ser notificado assim que o primeiro erro de paridade for detectado e corrigir o problema o mais rápido possível (depuração). Além disso, como a paridade é a única (não muito confiável) maneira de o sistema RAID saber se seus dados estão ok ou não, os backups de bateria devem ser usados para evitar a perda de todos esses valiosos dados de paridade para o furo de gravação quando a energia acabar .

Agora, se você usa um sistema de arquivos avançado como o BTRFS que faz checksum como um único sistema de arquivos (sem redundância) sobre um sistema RAID-6 burro, cabe a este sistema RAID detectar e corrigir erros porque uma vez muitos erros ter corrompido o sistema RAID, o BTRFS NÃO poderá consertá-los. Ele detectará erros e ajudará você a decidir o que restaurar do backup, informando quais arquivos (path) estão corrompidos. Mas por outro lado, seria tarde demais até lá. É por isso que essa configuração pode não ser uma boa ideia, afinal.

Se você usar o BTRFS da maneira que ele deveria ser usado, criando um sistema de arquivos BTRFS RAID-6 (sem MD RAID) com acesso direto às suas unidades, ele poderá corrigir erros de forma confiável e saberá se os erros na verdade desapareceu porque tem checksums. Ele irá dizer-lhe em quais drives esses erros ocorreram, então você sabe qual drive está ruim (você pode substituí-lo usando os comandos do btrfs). O ponto é, não importa se uma unidade está inoperante / ausente e você tem que substituí-lo ou se uma unidade está parcialmente corrompida (porque está prestes a morrer), o BTRFS irá detectar os erros de forma confiável. É claro, scrubs periódicos são tão importantes quanto com outros sistemas RAID, para detectar corrupção silenciosa (dica: cronjob ).

Então, novamente, o BTRFS RAID-6 ainda é considerado experimental em alguns aspectos, mas com checksums ele já oferece uma maneira confiável de detectar (e corrigir) erros. É experimental, então pode falhar em certos casos, então você deve tentar uma versão mais recente do kernel, que é a correção para muitos problemas do BTRFS. Certifique-se de manter-se atualizado com seu kernel (4.3 no momento da escrita, não use nada mais antigo que o RAID-6). Mas casos típicos de uso de RAID (apenas armazenando muitos dados e, em algum momento, substituindo uma unidade - uma falha de várias unidades pode ser diferente) já funcionam com o BTRFS.

Você marcou sua pergunta com zfs . O ZFS não está incluído no kernel do Linux, portanto, ele teria que ser instalado manualmente - a porta do ZFSonLinux funciona muito bem. Pode ser necessário reinstalá-lo ou fazer alguma outra correção depois que uma nova versão do kernel for instalada, mas isso não é importante agora. Claro, existem algumas coisas que funcionam de maneira diferente no ZFS. Além disso, ao contrário de um sistema de arquivos BTRFS, um zpool ZFS RAIDZ2 (como o RAID-6) não pode ser redimensionado (há "truques", mas a linha inferior é que um raidz2 vdev não pode ser aumentado adicionando uma unidade). facilmente ser expandido com mais unidades. No entanto, no que se refere à estabilidade, o ZFS é provavelmente a melhor escolha de todas. Com somas de verificação, oferece proteção de dados confiável conforme descrito e é maduro o suficiente para lidar com praticamente tudo (várias falhas de drive, controlador instável, o ZFS sobrevive a quase tudo e pode proteger / corrigir seus dados desde que você tenha unidades boas o suficiente). Dado que (como o BTRFS) o ZFS precisa acessar suas unidades individualmente (para corrigir erros), você definitivamente não deve usá-lo em cima de um volume RAID MD, a menos que tenha uma boa razão para isso.

    
por 12.11.2015 / 19:37
2

Na sua configuração, não.

O que eu recomendaria é usar o RAID-z2 integrado do ZFS, que pode executar a recuperação de perda de bits. Ativar a compactação lz4 também fornecerá melhor desempenho, bem como economia de espaço.

    
por 16.06.2014 / 20:57