Reconstruir dispositivo RAID1 tras fallar un disco duro

Hace varios años que tengo en casa un pequeño servidor en el que tengo almacenada toda la información como documentos personales, información de proyectos, fotos familiares, etc. Como valoro mucho toda esta información desde el principio planteé la utilización de RAID1 mediante mdadm como una forma de no perder toda la información ante un fallo de disco. Por supuesto, esto no quita el tener que hacer copias de seguridad periódicas.

Por si no estás al corriente, RAID1 se basa en escribir toda la información por duplicado utilizando dos discos, de forma que si uno falla el otro puede tomar el control. En esta situación basta con retirar el disco fallido y sustituirlo por uno nuevo, tras lo cual toda la información se copia de forma automática al nuevo disco para mantener los dos discos sincronizados.

Hace un año extendí este funcionamiento comprando otros dos discos de 2TB para guardar más información, pero desde hace un par de semanas uno de los discos falló, por lo que pude poner en práctica la teoría.

Si crees que tienes algún problema con un disco duro una opción es instalar las smartmontools que permiten acceder a las capacidades SMART cada vez más frecuentes en los discos duros. El programa de Linux gsmartcontrol proporciona un interfaz gráfico muy sencillo con el que obtener información del estado del disco y realizar los tests.

$ sudo apt-get install smartmontools gsmartcontrol

En mi caso detecté el error porque el disco comenzó a hacer pitidos y en /var/log/messages había un montón de entradas relativas a fallos de escritura. Finalmente el fallo de disco me dejó el servidor bloqueado y tuve que reiniciarlo, pero al intentar montar la partición RAID Ubuntu se quedaba bloqueado, así que antes que nada tuve que arrancar con un CD y modificar el /etc/fstab para no montar la partición en el arranque. Sin embargo esto no tiene porqué pasar en todos los casos.

Tras arrancar el sistema confirmé con las smartmontools que el disco estaba fallando, aunque los pitidos que daba eran bastante indicativos. También confirmé con mdstat que el dispositivo RAID1 que tenía configurado entre los dos discos estaba degradado.

$ cat /proc/mdstat

Si para alguno de los dispositivos RAID1 obtienes como estdo [U_] o [_U] en vez de [UU] quiere decir que el dispositivo está degradado y que no hay sincronía entre los discos.

Para sustituir el disco lo primero que hay que hacer es decir al dispositivo RAID1 que el disco ha fallado y que lo remueva del dispositivo. Con los siguientes comandos quité la partición /dev/sdc1, perteneciente al disco fallido, del dispositivo /dev/md3.

sudo mdadm --manage /dev/md3 --fail /dev/sdc1
sudo mdadm /dev/md3 --remove /dev/sdc1

A continuación se apaga el servidor, se sustituye el disco y se reinicia. Tras hacer login es necesario crear la tabla de particiones del nuevo disco, que debería ser del mismo tamaño que el sustituido. Para crear esta tabla podemos copiar directamente la del otro disco del raid (/dev/sdd).

sudo sfdisk -d /dev/sdd > sdd_parts.txt
sudo sfdisk /dev/sdc < sdd_parts.txt

Una vez creada la tabla de particiones es hora de añadir la partición /dev/sdc1 al dispositivo raid.

sudo mdadm --manage /dev/md3 --add /dev/sdc1

Con esto el dispositivo intentará reconstruir el raid copiando todo la información en el nuevo disco. Podemos comprobarlo con mdadm, deberíamos obtener para el nuevo disco el estado «spare rebuilding».

$ sudo mdadm --detail /dev/md3
    Number   Major   Minor   RaidDevice State
       2       8       33        0      spare rebuilding   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1

Del mismo modo podríamos mirando en /proc/mdstat/ el estado de la reconstrucción del disco.

$ cat /proc/mdstat
md3 : active raid1 sdc1[0] sdd1[1]
      1468011520 blocks [2/1] [_U]
      [=>...................]  recovery =  6.4% (945118362/1468011520) finish=189min speed=196512K/sec
Twitter Digg Delicious Stumbleupon Technorati Facebook Email

5 Respuestas para “Reconstruir dispositivo RAID1 tras fallar un disco duro”

  1. En algunos casos esto no sirve ya que si tenemos falla fisica de discos en mas del 50% de los discos que comprenden el raid 1, este deja de funcionar.

    Para estos casos raros solo se puede acudir a un laboratorio especializado en recuperacion de datos, si se quiere recuperar lo perdido. Conozco uno llamado Onretrieval.

    saludos.

  2. Patxi Echarte 26. Ene, 2013 en 2:23 pm

    ferino, te equivocas. El RAID1 escribe toda la información en cada uno de los discos, por lo que salvo que te fallen todos los discos no pierdes información.

  3. Mil gracias compañero me funciono de lujo…

  4. Gracias

  5. Para crear la tabla de particiones se puede hacer con un solo comando
    sudo sfdisk -d /dev/sdd | sfdisk /dev/sdc
    Con eso nos ahorramos el tener que usar un archivo de texto entremedio.