Questão O RAID 1 protege contra corrupção?


O Raid 1 protege contra corrupção de dados? Por exemplo, digamos que estou mantendo todos os meus arquivos importantes em um NAS que usa 2 discos em um RAID 1. Se um disco rígido tiver algum tipo de problema interno e os dados ficarem corrompidos, o RAID reconhece isso automaticamente e corrige? usando dados do outro disco bom?

Poderia saber qual é a cópia boa?

O RAID 5 protege contra a corrupção?

Eu sei que o RAID não é uma solução de backup. Eu estou tentando descobrir como ter certeza de que não estou fazendo backup de dados corrompidos!


13


origem




Respostas:


O RAID-1 protege contra a falha completa de uma das duas unidades. Se a unidade não estiver marcada como falhada, seu conteúdo será considerado preciso. Mas se, por qualquer motivo, uma das duas unidades estivesse retornando dados inconsistentes, então esse erro não seria detectado pelo sistema RAID e o aplicativo receberia dados incorretos.

Muitos controladores têm um processo de verificação que é executado periodicamente, mas o objetivo é testar a falha do disco e não a integridade dos dados. Os discos rígidos implementam seus próprios testes de integridade de dados e somas de verificação que eles usam para identificar setores defeituosos, mas o algoritmo é projetado para ser rápido e compacto, não completo, para que os erros possam vazar.

Embora a corrupção de dados seja a exceção e não a regra, ela também não é inédita. Um membro da equipe do ZFS, por exemplo, relatou em uma entrevista ver os dados corrompidos sendo transmitidos a eles por seu dispositivo RAID-5 high-end, que eles identificaram em virtude do fato de o ZFS implementar somas de verificação nesse nível de sistema de arquivos.


12





Depende de onde vem a corrupção. Se uma unidade em um espelho RAID 1 estiver com defeito e estiver escrevendo bobagem, o espelho RAID será degradado e a unidade boa estará em uso e você terá os arquivos bons. No caso do RAID 5, isso é feito com 2 unidades de dados e uma unidade de paridade (na forma mais simples) e se uma das 3 unidades falhar ao gravar os arquivos apropriados, ela falhará e você ficará com 2 dados unidades ou 1 unidade de dados e uma unidade de paridade.

Agora vamos ver o que acontece se a corrupção for causada por um vírus ou por um bug em um programa. No RAID 1 e no RAID 5, nenhuma unidade será desativada porque as unidades estão sendo gravadas corretamente. Nada falhou. No entanto, os arquivos serão destruídos porque o vírus ou bug está gravando lixo, e ele irá gravá-lo em ambas as unidades em um espelho RAID 1 e em todas as 3 unidades em um sistema RAID 5.

É por isso que o RAID não é backup. Isso evita a falha mais provável, que é uma falha de disco, mas não é responsável por muitos outros cenários.


5



+1 "É por isso que o RAID não é um backup" Deus sabe quantas vezes eu ouvi "Eu estou bem, tenho meu backup coberto com um RAID" - Urda
Como o RAID pode distinguir entre quais dados são bons e quais são ruins?
Shaun ... se seus dados são comidos por um vírus ou apagados acidentalmente, o RAID nunca pode distingui-lo como bom ou ruim. Tudo o que o RAID é responsável é garantir que (em um RAID 1) os dois discos sejam iguais. Se um setor falhar em uma soma de verificação, o controlador RAID compensa repará-lo ou aciona uma reconstrução. Em um RAID 5, se um setor falhar em uma verificação de paridade, uma reconstrução será acionada. O RAID protege as unidades físicas contra falhas e resulta da perda de dados. Eles não podem proteger contra dados perdidos para falhas de programas ou vírus. - Urda
Sua caracterização do RAID 5 é imprecisa. Não há unidade de paridade separada, em vez disso, a paridade é distribuída em todas as unidades. Você acaba com um espaço disponível total de n-1, mas não há uma unidade dedicada à paridade. - MDMarra
Eu tenho que downvote isso. RAID1 não não fazer checksum, ele só protege contra uma falha completa do drive. Se uma unidade começa a retornar o lixo, não tem como saber qual é a correta, e ficará feliz em retornar dados ilegíveis. RAID5 Não tenho certeza, por causa das verificações de paridade. É exatamente por isso que sistemas de arquivos como o ZFS e o BTRFS foram inventados, para que você obtenha um sistema semelhante a RAID 'ciente de dados', que pode corrigir os dados do lixo apropriadamente usando somas de verificação para verificar os blocos de dados. - Alex


Como outros notaram, um sistema raid1 não tem como saber qual dos dois setores é ruim.

Os sistemas de raids de extremidade superior executam uma operação de limpeza em segundo plano para comparar as duas cópias e sinalizar as diferenças. Melhor ainda é um sistema que lê os dois blocos da unidade a cada vez e compara-os no tempo de leitura. Resolver essas diferenças, no entanto, é impossível para o controlador RAID.

Em sistemas Unix sob o mdadm, uma verificação de scrub pode ser iniciada com o "sync_action":

md arrays podem ser apagados escrevendo ou verificando ou consertando   arquivo md / sync_action no diretório sysfs para o dispositivo.

Solicitar um scrub fará com que o md leia todos os blocos em todos os dispositivos   na matriz e verifique se os dados são consistentes. Para RAID1 e   RAID10, isso significa verificar se as cópias são idênticas. Para RAID4,   RAID5, RAID6 isto significa verificar se o bloco de paridade é (ou bloqueia   estão corretas.

O raid1 tem tudo a ver com a proteção contra falhas repentinas no disco. Procure outro lugar para proteção contra a corrupção. Além disso, o Raid1 não oferece "histórico", portanto não pode se recuperar de erros humanos ou de software. Olhe para sistemas de arquivos como o ZFS ou um sistema de arquivos de preservação de histórico como o Hammer para proteção contra corrupção.


5





Na prática sim. A grande maioria das falhas do disco rígido ocorre tudo ou nada. Ou (a) o cabo está desconectado ou o microcontrolador do drive falhou, então o controlador RAID não obtém nenhuma resposta - falha óbvia na unidade. Ou (b) O cabo e o microcontrolador de drive são bons, mas quando ele tenta ler um setor, o microcontrolador de drive interno detecta corrupção de dados porque o checksum ECC interno falhou e tentativas repetidas de ler aquele setor (no caso de uma falha temporária de leitura) ), eventualmente, o tempo limite, para que o controlador RAID receba uma resposta "desculpa" educada - uma falha óbvia na unidade. De qualquer forma, é óbvio para o controlador RAID-1 ou RAID-5 que a unidade falhou.

Em princípio, não. Se algo deu tão errado que um disco rígido está escrevendo bobagens, e ainda assim funcionando bem o suficiente para escrever o código ECC interno correto para esse absurdo, então o RAID-1 não pode dizer qual unidade está correta. O sistema RAID-1 provavelmente sobrescreverá os dados bons com os dados corrompidos em um ressincronizador. O RAID-5 não é melhor. A falha de energia "RAID-5 write hole" durante a escrita ativa é um caso raro, mas não impossível.

Até onde sei, a única maneira de evitar esse tipo de corrupção é usar somas de verificação de ponta a ponta, além do espelhamento de arquivo, automaticamente como parte do sistema de arquivos (ZFS ou Btrfs) ou periodicamente ou manualmente (recalculando somas de verificação rsync, verificação de arquivos simples, conjuntos de arquivos Parchive, etc.); idealmente com um hash criptográfico como o SHA-256.


3



Qualquer chance que você pudesse dar uma resposta para este ... superuser.com/questions/736612/… - Mick