O RAID 1 protege contra corrupção?

14

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 forem corrompidos, o RAID reconhece isso automaticamente e corrige usando dados do outro bom disco?

Poderia mesmo saber qual cópia é a melhor?

O RAID 5 protege contra corrupção?

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

Reg Editar
fonte

Respostas:

13

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

Muitos controladores têm um processo de verificação que é executado periodicamente, mas o objetivo é testar a falha do disco, 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 detectar setores defeituosos, mas o algoritmo foi 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 que os dados corrompidos foram enviados a eles pelo dispositivo RAID-5 de ponta que eles detectaram em virtude do fato de o ZFS implementar somas de verificação nesse nível do sistema de arquivos.

tylerl
fonte
5

Depende de onde a corrupção decorre. Se uma unidade em um espelho RAID 1 for maluca e estiver escrevendo bobagens, o espelho RAID será degradado e a boa unidade estará em uso e você terá os bons arquivos. 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 na gravação dos arquivos adequados, ocorrerá falha e você ficará com os 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 um bug em um programa. No RAID 1 e no RAID 5, nenhuma unidade será retirada de serviço porque as unidades estão gravando corretamente. Nada falhou. No entanto, os arquivos serão destruídos porque o vírus ou o bug está criando lixo e ele será gravado nas unidades em um espelho RAID 1 e nas 3 unidades em um sistema RAID 5.

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

Joshua Levitsky
fonte
4
+1 "É por isso que RAID não é um backup" Deus sabe quantas vezes eu ouvi "Eu estou ok, tenho o meu apoio coberta com um RAID"
Urda
2
Como o RAID pode distinguir entre quais dados são bons e quais são ruins?
1
Shaun ... se seus dados são consumidos por um vírus ou excluídos acidentalmente, o RAID nunca pode distingui-lo como bom ou ruim. Todo o RAID é responsável por 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 resultantes da perda de dados. Eles não podem se proteger contra dados perdidos por falhas ou vírus do programa.
Urda
6
Sua caracterização do RAID 5 é imprecisa. Não há nenhuma unidade de paridade separada; em vez disso, a paridade é distribuída por todas as unidades. Você acaba com um espaço total disponível de n-1, mas não há uma unidade dedicada à paridade.
precisa saber é o seguinte
2
Eu tenho que rebaixar isso. O RAID1 não faz soma de verificação, apenas protege contra uma falha completa da unidade. Se uma unidade começar a devolver lixo, ela não terá como saber qual é a correta e retornará os dados com êxito. RAID5 não tenho certeza, por causa das verificações de paridade. É exatamente por isso que os sistemas de arquivos como ZFS e BTRFS foram inventados, para que você obtenha um sistema tipo RAID com 'reconhecimento de dados', que pode corrigir dados de lixo de maneira apropriada usando somas de verificação para verificar blocos de dados.
Alex
5

Como outros observaram, um sistema RAID1 não tem como dizer qual dos dois setores é ruim.

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

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

As matrizes md podem ser limpas escrevendo-se verificar ou reparar o arquivo md / sync_action no diretório sysfs do dispositivo.

Solicitar uma limpeza fará com que o md leia todos os blocos de todos os dispositivos da 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, isso significa verificar se o bloco de paridade está (ou os blocos estão) corretos.

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

Bryce
fonte
3

Na prática sim. A grande maioria das falhas no disco rígido ocorre tudo ou nada. (A) o cabo está desconectado ou o microcontrolador da unidade falhou; portanto, o controlador RAID não obtém nenhuma resposta - óbvia falha na unidade. Ou (b) o microcontrolador de cabo e unidade é bom, mas quando tenta ler um setor, o microcontrolador de unidade interna detecta a corrupção de dados porque a soma de verificação do ECC interna falhou e tentativas repetidas de ler esse setor (no caso de uma falha temporária na leitura ) eventualmente atingem o tempo limite, para que o controlador RAID obtenha uma resposta educada de "desculpe" - 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 de alguma forma funcionando bem o suficiente para escrever o código ECC interno correto para essa bobagem, o RAID-1 não pode dizer qual unidade está correta. O sistema RAID-1 provavelmente substituirá os bons dados pelos dados corrompidos em uma ressincronização. RAID-5 não é melhor. A falha de energia do "furo de gravação RAID-5" durante a gravação ativa é um caso raro, mas não impossível.

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

David Cary
fonte
Qualquer chance que você poderia dar uma resposta para este .... superuser.com/questions/736612/...
Mick