RAIDs

Pois é.

O RAID 5 até tem um bom desempenho, mas tem diversas desvantagens. Se falham 2 discos, o sistema já não consegue recuperar os dados. Além disso, como cada disco, individualmente, não contém informação lógica coerente, não é possível aplicar-lhe ferramentas de recuperação de dados tradicionais.

E não pensem que falharem 2 discos quase em simultâneo é um acontecimento com probabilidade zero: aconteceu-me a mim; e é por isso que existe o RAID 6 – semelhante ao RAID 5 mas mais redundante (com a possibilidade de falharem 2 discos) – mas não está muito divulgado. No entanto, eu cometi um erro: usei 4 discos iguais, do mesmo fabricante. E o tempo médio até falhar (MTTF) é o mesmo para todos os discos. Ora acontece que, quando falhou o primeiro disco do RAID(*) e eu recoloquei os discos operacionais, o sistema começou a reconstruir o RAID, ou seja, a refazer todos os sectores do disco novo a partir de todos os sectores dos outros 3 discos. Ao fim de 4 horas de cópias continuas, a reconstrução do RAID ainda ia em metade. Como a máquina tinha pouca refrigeração e, com o aquecimento de tanta escrita e leitura, um dos outros 3 discos foi-se abaixo durante a recuperação: queimou mesmo. Neste momento tem vários sectores inutilizados.

E como é que eu fiz o milagre de recuperar dados de um RAID 5 onde falharam 2 discos? Eu vou partilhar isto com vocês, mas quero que saibam que foram 2 dias a pensar, quase sem dormir, e só cheguei lá depois de várias tentativas e erros.

  • Coloquei o disco queimado, que fazia parte de um RAID 5 de uma máquina Windows, numa máquina Linux
  • Coloquei um disco novo, exactamente da mesma capacidade, na mesma máquina Linux
  • Não montei os discos no sistema de ficheiros
  • Fiz uma cópia integral, sector a sector, do disco queimado para o disco novo, ignorando os erros:
    • # dd conv=noerror if=/dev/sda of=/dev/sdb
  • Depois, coloquei o disco novo no RAID da máquina Windows.
  • Coloquei também um novo disco IDE(**) na máquina Windows, onde instalei o sistema operativo, para poder arrancar, pois o Windows não conseguia arrancar do RAID, que estava parcialmente ilegível.
  • A máquina arrancou a partir do disco IDE e copiei os dados que estavam no RAID, que já não tinham erros de paridade (baixo nível), embora houvesse erros de dados (alto nível), para o disco IDE. Aparentemente, perdi apenas meia dúzia de ficheiros.

Depois de 2 backups integrais desses dados, voltei a montar o RAID. Deitei fora os 2 discos: o queimado e o que ameaçou falhar – 500 GB para o lixo. E montei dois RAID 1, ao invés de um RAID 5. E porquê? O RAID 5 até é mais rápido, mas o RAID 1 tem a vantagem de cada disco, individualmente, conter ficheiros lógicos completos, o que permite ser lido por uma ferramenta de recuperação de dados: e isto traduz-se em mais redundância e, logo, em mais segurança que o RAID 5. Nos dois RAID 1 que criei, cada disco está emparelhado com outro disco de um fabricante diferente, por causa do MTTF.

(*) Na altura, eu pensei que tinha sido um problema de contacto, mas aparentemente foi uma qualquer falha de escrita ou leitura no disco.

(**) Como foi dito na crónica anterior, os discos do RAID são todos SATA. A motheboard que estou a usar tem tomadas para 4 discos SATA e 4 discos IDE. Todos eles podem fazer RAID.


Publicado

em

,

por

Etiquetas:

Comentários

2 comentários a “RAIDs”

  1. Avatar de carnide
    carnide

    Brilhante!
    Linux is the way to go.

  2. Avatar de nick name
    nick name

    Ora lá diz o ditado, “Onde falha um disco…”. A sabedoria popular nunca falha.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *