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

0

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 no conjunto esteja deslizando silenciosamente bits nos platters (por exemplo, bit rot), por exemplo, devido a um mau firmware. O disco não está falhando ou reportando blocos defeituosos, mas ocasionalmente compromete o disco com algo diferente do que foi inserido.

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

Este cenário deve ser resolvido de alguma forma, dadas as restrições do raid 5, mas honestamente me escapa. Eu posso imaginar que o raid-6 com paridade horizontal (raid-4'ish) e diagonal pode triangular os blocos ruins e mostrar qual disco continha a área ruim .... mas essa questão pertence aos conjuntos raid-5.

Obrigado antecipadamente.

    
por Jon Disnard 28.01.2014 / 05:40

1 resposta

2

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

Um disco rígido moderno (isto é, um fabricado nos últimos 20 anos ou mais) usa ECC setorial para detectar e corrigir erros de bit-flip. Os sistemas ECC atualmente em uso podem corrigir qualquer erro de bit único em um setor e identificar todos os erros de bit duplo. Se repetidas leituras de um setor produzirem consistentemente erros de bit único, o firmware da unidade mapeará o setor silenciosamente para uma parte não usada da unidade (todos os discos rígidos modernos têm um pouco de espaço livre para essa finalidade); Se forem produzidos erros de bit duplo, o firmware relatará um erro de E / S para o controlador e um controlador RAID marcará a unidade como falha. Para que os dados sejam corrompidos indetectavelmente, 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 saltos de bits, você pode detectar isso no nível de RAID (para RAID 1, 10, 5 e 6) executando uma verificação de consistência, mas isso apenas informará que há listras onde a paridade / espelhamento não corresponde; não vai te dizer qual disco é ruim. Você pode encontrar a unidade defeituosa puxando uma unidade da matriz e executando uma "varredura de superfície" para blocos defeituosos com sua ferramenta de verificação de disco favorita: se o firmware estiver ruim, a varredura deve encontrar centenas de milhares de setores defeituosos. p>     

por 05.02.2014 / 08:08

Tags