Como os controladores RAID determinam qual disco está com defeito?

Como os controladores RAID determinam qual disco está com defeito?

Então me ocorreu que usando a paridade XOR não consigo determinar qual disco está com defeito em um conjunto de distribuição.

Suponha que um dos discos do conjunto esteja invertendo silenciosamente os bits nos pratos (também conhecido como podridão de bits), por exemplo, devido a um firmware incorreto. O disco não está falhando ou relatando blocos defeituosos, mas ocasionalmente compromete no disco algo diferente do que foi inserido.

Usar XOR, como qualquer outra soma de verificação, não dirá qual disco na faixa foi a causa do cálculo de paridade incorreto, mas você sabe que um dos discos está com problema.

Este cenário deve ser resolvido de alguma forma, dadas as restrições do ataque 5, mas honestamente isso me escapa. Posso imaginar que o raid-6 com paridade horizontal (raid-4'ish) e diagonal possa triangular os blocos defeituosos e mostrar qual disco continha a área defeituosa... mas esta questão refere-se aos conjuntos do raid-5.

Agradeço antecipadamente.

Responder1

Um controlador RAID determina qual disco está com defeito, verificando qual deles está gerando erros de E/S ou não respondendo.

Um disco rígido moderno (ou seja, fabricado nos últimos 20 anos ou mais) usa ECC em nível de setor para detectar e corrigir erros de inversão de bits. Os sistemas ECC atualmente em uso podem corrigir qualquer erro de bit único em um setor e detectar todos os erros de bit duplo. Se leituras repetidas de um setor produzirem consistentemente erros de um único bit, o firmware da unidade remapeará silenciosamente o setor para uma parte não utilizada da unidade (todos os discos rígidos modernos têm um pouco de espaço livre para essa finalidade); se forem produzidos erros de dois bits, o firmware reportará um erro de E/S ao controlador e um controlador RAID marcará a unidade como com falha. Para que os dados sejam corrompidos de forma indetectável, pelo menos três bits em um único setor precisam ser invertidos – um evento que é extremamente raro.

Se você suspeitar que um firmware ruim está causando alterações de bits, você pode detectar isso no nível do RAID (para RAID 1, 10, 5 e 6) executando uma verificação de consistência, mas isso apenas informará que há faixas onde a paridade/ o espelhamento não corresponde; não lhe dirá qual unidade está ruim. Você pode encontrar a unidade defeituosa puxando uma unidade do array e executando uma "varredura de superfície" em busca de blocos defeituosos com sua ferramenta favorita de verificação de disco: se o firmware estiver defeituoso, a varredura deverá encontrar centenas de milhares de setores defeituosos.

informação relacionada