En nuestra empresa, tenemos una solución de back-up que almacena toda la información en una serie de discos, configurados en RAID5, y almacenados en una máquina Coraid SR1521.
Todo funcionaba perfectamente... hasta hoy. Uno de los discos del RAID5 ha fallado, así que el sistema decidió reemplazarlo por uno de reserva, y empezó la recuperación. Pero, aparentemente, otro disco falló mientras la recuperación se estaba efectuando:
SR shelf 1> list -l
1 6001.229GB online
1.0 6001.229GB raid5 failed
1.0.0 normal 1000.205GB 1.0
1.0.1 failed 1000.205GB 1.2
1.0.2 normal 1000.205GB 1.4
1.0.3 normal 1000.205GB 1.6
1.0.4 replaced 1000.205GB 1.14
1.0.5 normal 1000.205GB 1.10
1.0.6 normal 1000.205GB 1.12
Así que acabamos con un RAID5 sin dos de sus discos, y por supuesto dejó de funcionar. Veamos cómo podemos recuperarlo... primero, dejaré offline todo el disco, de manera que no se pueda acceder a él desde el exterior:
SR shelf 1> offline 1
SR shelf 1> list -l
1 6001.229GB offline
1.0 6001.229GB raid5 failed
1.0.0 normal 1000.205GB 1.0
1.0.1 failed 1000.205GB 1.2
1.0.2 normal 1000.205GB 1.4
1.0.3 normal 1000.205GB 1.6
1.0.4 replaced 1000.205GB 1.14
1.0.5 normal 1000.205GB 1.10
1.0.6 normal 1000.205GB 1.12
Un RAID5 no puede funcionar si le faltan dos discos, así que intentaré decirle al sistema que ignore el fallo del segundo disco, a ver si funciona:
SR shelf 1> unfail 1.0.1
error: raid 1.0 is failed
No, no ha funcionado. O, al menos, no se puede marcar como activo un disco que forma parte de un RAID que ha fallado. Bueno, pues re-generaré el array diciéndole al sistema que ese disco está bien:
SR shelf 1> restore -l
Reading config information from drives ... done.
make -r 1 raid5 1.0 1.2:f 1.4 1.6 1.14:r 1.10 1.12
online 1
SR shelf 1> eject 1
Ejecting lbalde(s): 1
SR shelf 1> list -l
SR shelf 1> make -r 1 raid5 1.0 1.2 1.4 1.6 1.14:r 1.10 1.12
beginning recovery of disk 1.0.4
SR shelf 1> list -l
1 6001.229GB offline
1.0 6001.229GB raid5 recovering,degraded 0.03%
1.0.0 normal 1000.205GB 1.0
1.0.1 normal 1000.205GB 1.2
1.0.2 normal 1000.205GB 1.4
1.0.3 normal 1000.205GB 1.6
1.0.4 replaced 1000.205GB 1.14
1.0.5 normal 1000.205GB 1.10
1.0.6 normal 1000.205GB 1.12
¡Bueno, parece que esta vez sí! El RAID se está recuperando, y el disco que se reemplazó en primer lugar se está llenando de nuevo. Hasta que...:
aborted recovery of disk 1.0.4
raidshield: unrecoverable error on disk 1.0.1 at block 6496009
raid device 1.0.1 has failed
unrecoverable failure on raid 1.0
SR shelf 1> list -l
1 6001.229GB offline
1.0 6001.229GB raid5 failed
1.0.0 normal 1000.205GB 1.0
1.0.1 failed 1000.205GB 1.2
1.0.2 normal 1000.205GB 1.4
1.0.3 normal 1000.205GB 1.6
1.0.4 replaced 1000.205GB 1.14
1.0.5 normal 1000.205GB 1.10
1.0.6 normal 1000.205GB 1.12
Ha vuelto a fallar el mismo disco que antes, en el bloque 6496009, mientras la máquina estaba calculando la paridad. Pero, las buenas noticias son que no ha fallado hasta que llevaba más del 50%, y toda la información que me interesa está en los primeros 20% de los discos. Así que debería de haber una manera de recuperar esa información....
SR shelf 1> eject 1
SR shelf 1> make -r 1 raid5 1.0 1.2 1.4 1.6 1.8:f 1.10 1.12
no spare large enough for 1.0.4
SR shelf 1> list -l
1 6001.229GB offline
1.0 6001.229GB raid5 degraded
1.0.0 normal 1000.205GB 1.0
1.0.1 normal 1000.205GB 1.2
1.0.2 normal 1000.205GB 1.4
1.0.3 normal 1000.205GB 1.6
1.0.4 failed 1000.205GB 1.8
1.0.5 normal 1000.205GB 1.10
1.0.6 normal 1000.205GB 1.12
SR shelf 1> online 1
Vuelvo a tener acceso a mis discos, al menos mientras no trate de leer el bloque que ha fallado. Siguiente paso: copiar toda la información a algún otro sitio, y generar un nuevo RAID5. O, mejor aún, un RAID6 :-)
Disculpa, en donde se tienen que dar esas instrucciones si el sistema está inaccesible debido a la falla del raid?
Nuevo comentario
Por favor, escribe tu nombre y lo que quieras decir :-)