quinta-feira, 15 de janeiro de 2015

RAID 3

O RAID 3 usa um sistema de paridade para manter a integridade dos dados. Num sistema com 5 discos rígidos, o 4 primeiros servirão para armazenar dados, enquanto o último armazenará os códigos de paridade.

Nos 4 primeiros drives temos na verdade um sistema RAID 0, onde os dados são distribuídos entre os 4 discos rígidos e a performance é multiplicada por 4. Porém, os códigos armazenados no 5º disco rígido permitem recuperar os dados caso qualquer um dos 4 discos rígidos. A recuperação é feita usando os códigos de correção de erros combinados com os dados distribuídos nos outros discos rígidos.

É possível aplicar o RAID 3 a sistemas com mais discos rígidos, sendo que sempre um armazenará os códigos de correção. Claro que este sistema funciona apenas caso apenas um disco rígido apresente problemas, caso dê-se o azar de dois ou mais discos rígidos apresentarem problemas ao mesmo tempo, ou antes da controladora terminar a reconstrução dos dados, novamente perdem-se todos os dados de todos os discos rígidos.

Você pode perguntar, como é possível recuperar todos os dados, armazenados nos 4 discos rígidos com apenas um disco rígido de códigos de paridade. Na verdade, a ideia por trás desta aparente mágica é bastante simples.

A paridade consiste em adicionar um bit adicional para cada grupo de bits. Na memória RAM, existe um bit de paridade para cada 8 bits de dados, enquanto no RAID 3 temos um bit extra para cada 4 bits de dados.

Caso dentro destes 4 bits exista um número par de bits 1, então o bit de paridade é 0. Caso exista um número ímpar de bits 1, então o bit de paridade é 1:


Veja que graças ao bit de paridade é possível saber apenas que, dentro do grupo de 4 bits existe um número par ou ímpar de bits 1. Mas, isso já é o suficiente para recuperar qualquer um dos 4 bits que seja perdido, desde que sejam respeitadas duas condições:
 

a) Que apenas um bit de cada grupo seja perdido
b) Que se saiba qual dos bits foi perdido


No RAID 3 cada um dos bits dentro de cada grupo fica guardado num disco rígido. Quando um dos discos rígidos para de funcionar, a controladora sabe exactamente quais bits foram perdidos e têm condições de recuperá-los com uma continha muito simples:


Na primeira linha temos dois bits 1 e um bit 0. Se o bit de paridade é 0, significa que temos um número par de bits 1. Como já temos dois bits 1, então é claro que o bit que está faltando é um zero. Na segunda linha temos dois bits 1 e um bit 0. Como o bit de paridade é 1, significa que temos um número ímpar de bits 1. Como temos apenas dois, significa que o bit perdido é um bit 1.

Tudo o que a controladora precisa fazer para recuperar os dados é repetir este cálculo até recuperar todos os dados. Para um computador isto é bem simples. O único problema é que quando um dos discos rígidos pára de funcionar a máquina também fica paralizada. Apenas depois que o disco rígido for substituído e que a controladora tiver tempo de terminar de recuperar os dados é que o sistema volta a funcionar normalmente.


Em sistemas de operação crítica, onde a máquina não pode ficar fora do ar por mais do que alguns segundos, este sistema não é o suficiente.

in Manual de Hardware Completo
de Carlos E Marimoto

Sem comentários: