Um RAID5 não redundante pode causar sérios problemas (comparado ao RAID0)?

3

Eu costumava ter um RAID5 de três discos (mdadm) no meu computador para armazenamento de mídia pessoal (músicas, vídeos, fotos, programas, jogos, ...). Ele tinha três discos com 750 GB cada, resultando em uma capacidade de 1,5 TB.

Um dia (um ano atrás), eu precisava de um desses discos para instalar outro sistema operacional. Eu pensei, eu não preciso mais da redundância desde que eu faça backup das coisas mais importantes (fotos pessoais, por exemplo) em um disco externo de qualquer maneira. Então decidi remover um dos três discos sem converter o RAID para RAID0 ou até mesmo dois discos separados, porque não tinha armazenamento temporário (já que não se pode simplesmente converter o RAID5 em RAID0 AFAIK).

Agora, por cerca de um ano, tenho um RAID5 não redundante com 2 de 3 discos em execução. Às vezes, um dos discos tem um contato defeituoso no cabo de alimentação ou algo parecido, fazendo com que a unidade pare de funcionar temporariamente (não sei exatamente o que é). Como ainda funciona ao reinicializar o computador e, na maioria dos casos, chamando alguns comandos mdadm, não foi tão problemático. Note que os dados não são muito críticos, pois ainda tenho um backup das coisas mais importantes.

Mas nas últimas semanas, uma das unidades falha com muita frequência (a cada poucas horas), então fica muito chato gerenciar isso.

Minhas perguntas são:

  • Existe alguma desvantagem (além do gerenciamento irritante) de um RAID5 não redundante (com uma unidade menor que a típica) em um RAID0? Se bem entendi, ambos não têm redundância e a mesma capacidade. Em uma falha temporária da unidade, posso reiniciar a matriz nos dois casos, supondo que a própria unidade ainda funcione após a falha.

  • Pode acontecer que o conteúdo da unidade altere a falha de uma unidade, tornando a matriz inconsistente? Em caso afirmativo, posso informar ao mdadm para verificar se há falhas no array (sem uma ferramenta de verificação de nível do sistema de arquivos)?

  • Como a unidade provavelmente só tem um contato defeituoso, fazendo com que ela falhe por apenas um segundo, posso dizer ao mdadm para reiniciar automaticamente a matriz, por isso não notarei a falha se nenhum aplicativo quiser acessar a matriz? sistema de arquivos durante a falha?

por leemes 28.08.2012 / 22:03

2 respostas

4

O RAID5 sofre uma penalidade de gravação em comparação com outros formatos de RAID devido ao cálculo de paridade, mesmo com o conjunto completo de unidades. Como você está fazendo RAID de software, isso afeta o desempenho do sistema, não apenas o desempenho da unidade, pois a CPU é o que está fazendo todo o cálculo de paridade. Isso pode ou não ser perceptível, dependendo do seu sistema e do que você está fazendo quando acessa a unidade, mas vale a pena notar. Sem a terceira unidade, imagino que também haja um pouco de impacto no desempenho das leituras, já que todos os dados que normalmente residem na terceira unidade agora precisam ser calculados via bits de paridade, em vez de serem lidos diretamente. Pode haver outras implicações, mas os hits de desempenho são os grandes que eu conheço.

Eu não estou familiarizado o suficiente com suas outras perguntas para fornecer uma resposta, mas neste ponto eu sugiro que os drives sejam executados independentemente, se possível. Não será tão útil quanto tê-los como uma unidade, mas você não terá que lidar com as falhas intermitentes da unidade, e isso diminuirá a pressão sobre o resto do sistema. A parte difícil seria, claro, a migração, mas talvez um amigo possa lhe emprestar alguns discos?

Uma outra coisa a considerar: isso é literalmente armazenamento JUST ou algum dos sistemas de arquivos localizados na matriz ( /usr , /var , /bin ou algo similar)? Se alguma coisa relacionada ao sistema estiver neles, isso pode levar a uma instabilidade significativa do sistema com a falta de confiabilidade da matriz.

    
por 28.08.2012 / 22:31
4

Is there any disadvantage (apart from the annoying management) of a non-redundant RAID5 (with one drive less than typical) over a RAID0?

Sim. As gravações RAID5 são mais lentas do que as gravações RAID0, independentemente de você ter ou não um conjunto de discos completo.

Can it happen that the drive contents alter on a drive failure, making the array inconsistent?

Sim; mas isso é corrupção do sistema de arquivos, então isso pode acontecer independentemente do conjunto de RAID usado se a matriz inteira estiver sendo colocada offline. Um exemplo muito típico disso é um array RAID5 com cache de gravação. Ele relata que o arquivo é gravado no disco para que o sistema operacional possa continuar com o processamento, mas, na verdade, ele não é gravado no disco, o controlador RAID ainda está calculando sua paridade e escreva-o no disco momentos depois. Se houver perda de energia entre o relatório Tudo OK e os dados sendo gravados, você provavelmente terá danos irrecuperáveis no sistema de arquivos. É por isso que o RAID-5 geralmente é usado apenas com um cache de backup de bateria ou o cache de gravação está desativado.

If so, can I tell mdadm to check the array for failures (without a file system level checking tool)?

Since the drive most probably only has a defective contact causing it to fail for a second only, can I tell mdadm to automatically restart the array, so I will not even notice the failure if no application wanted to access the file system during the failure?

Não sei o suficiente sobre o mdadm do Linux para responder isso, desculpe. Mas eu sei o suficiente sobre discos rígidos que falharam para lhe dizer que é apenas uma questão de tempo antes que a unidade de 750GB morra para sempre e você se encontre restaurando a partir de backups.

Melhor substituir todas essas unidades e criar uma nova matriz totalmente redundante do que colocar em alguma solução alternativa.

    
por 28.08.2012 / 22:35