Linux mdadm software RAID 6 - suporta a recuperação de corrupção de bits?

14

A Wikipedia diz que "RAID 2 é o único nível de RAID padrão, além de algumas implementações do RAID 6, que podem recuperar automaticamente dados precisos de corrupção de um único bit nos dados."

Alguém sabe se a implementação de mdadm do RAID 6 no Linux é uma dessas implementações que pode detectar e recuperar automaticamente a corrupção de dados de um único bit. Isso se refere ao CentOS / Red Hat 6, se esses forem diferentes de outras versões. Tentei pesquisar on-line, mas não tive muita sorte.

Com taxas de erro SATA sendo 1 em 1E14 bits e um disco SATA de 2 TB contendo 1,6E13 bits, isso é especialmente relevante para evitar corrupção de dados.

EDIT 17-Jun-2015

Acredito que essa é uma preocupação menor que eu pensava originalmente - consulte Discos rígidos / SSDs - detecção e tratamento de erros - a corrupção de dados silenciosa é evitada de forma confiável? para obter mais detalhes

    
por sa289 23.05.2012 / 18:54

4 respostas

14

O RAID de software do Linux não protege você contra corrupção de bits e a corrupção silenciosa de dados é um problema bem conhecido. De fato, se o kernel conseguir ler os dados de um disco, nunca saberá que está ruim. O RAID só entra em ação se houver um erro de E / S ao ler os dados.

Se você está preocupado com a integridade dos dados, deve considerar o uso de um sistema de arquivos como Btrfs ou ZFS que garantem a integridade dos dados, armazenando e verificando as somas de verificação. Esses sistemas de arquivos também cuidam da funcionalidade RAID, portanto, você não precisa da invasão do software do kernel se for dessa maneira.

    
por 23.05.2012 / 19:23
3

O RAID5 e o RAID6 podem detectar e, geralmente, corrigir a corrupção de bits se você verificar a paridade de toda a unidade. Isso é chamado de "scrubbing" ou "verificação de paridade" e geralmente leva de 24 a 48 horas na maioria dos sistemas RAID de produção. Durante esse tempo, o desempenho pode ser significativamente degradado. (Alguns sistemas permitem que o operador priorize a depuração por acesso de leitura / gravação ou abaixo dele.) O RAID6 tem uma chance maior de corrigi-lo, pois pode corrigi-lo se você tiver duas falhas de unidade, enquanto o RAID5 só pode lidar com uma falha de unidade e falhas no drive são mais prováveis quando você está limpando por causa da atividade aumentada.

    
por 30.11.2012 / 23:31
2

Eu teria adicionado isso como comentário, mas não tenho reputação suficiente; Eu queria esclarecer: RAID5 pode detectar corrupção de bits, mas não sabe qual unidade tem a corrupção sem um erro de leitura. Como resultado, um scrub não poderia consertar isso sem um erro de leitura - seria mais provável que ele fosse registrado e atualizado o bit de paridade para corresponder. O algoritmo do RAID6 depende da posição para detectar a unidade que contém o erro e corrigir a corrupção de bits.

    
por 20.03.2016 / 07:03
1

Todas as respostas acima estão incorretas em relação aos recursos do RAID 6. Os algoritmos RAID 6 operam byte a byte como RAID 5 e se um único byte em qualquer unidade está corrompido, mesmo sem erros indicados pela unidade , pode ser detectado E CORRIGIDO. O algoritmo para fazer isso é completamente explicado em

link

Para realizar esta verificação, as unidades de paridade P e Q também devem ser lidas junto com as unidades de dados. Se a paridade calculada P 'e Q' diferir sem erros de unidade, uma análise pode identificar quais das unidades estão incorretas e corrigir os dados.

Além disso, se a identificação da unidade for para uma unidade que não esteja presente (como a unidade 137 se houver apenas 15 unidades), mais de uma unidade fornecerá dados corrompidos PARA ESSE BYTE, sinalizando um erro de erro incorrigível. Quando há muito menos de 256 drives no conjunto, isso é detectado com alta probabilidade por byte e uma vez que há muitos bytes em um bloco, com probabilidade extremamente alta por bloco. Se a identificação da unidade não for consistente para todos os bytes dentro do bloco RAID, mais de uma unidade fornecerá dados corrompidos e, geralmente, poderá rejeitar a condição, mas, desde que todas as identificações da unidade sejam válidas, o bloco não precisa necessariamente ser rejeitado.

Demora mais do que o tempo de verificação usual para executar esta correção, mas ela só precisa ser executada com a síndrome (P e Q). O cálculo mostra um erro.

Tudo isso dito, no entanto, eu não examinei o código mdadm para determinar se a corrupção de byte único é tratada. Estou ciente de que o mdadm relata erros da síndrome RAID6 na varredura mensal, mas a partir da mensagem de erro não está claro se eles estão sendo corrigidos - ele não para a matriz da unidade nem identifica nenhuma unidade específica na mensagem.

    
por 04.06.2018 / 11:15