Recuperar un disco que ha fallado en un RAID1

Supongamos que uno de los discos que forma nuestro RAID1 ha fallado. Esto se puede comprobar de dos maneras:

master:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda3[0]
      73240256 blocks [2/1] [U_]

unused devices: <none>

Donde podemos ver como el estado del dispositivo md0 es active pero solo aparece una partición (sda3). Además, en la siguiente línea, al final, aparecen 2 letras entre corchetes que simbolizan el estado de los discos ([U_]), la segunda letra (_) indica que el segundo disco del RAID está inactivo.

También podemos consultar la salida de los comandos que inician el RAID en el arranque con dmesg:

master:~# dmesg | grep ^md
md: md driver 0.90.3 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: bitmap version 4.39
md: raid1 personality registered for level 1
md: md0 stopped.
md: bind<sdb2>
md: bind<sda3>
md: kicking non-fresh sdb2 from array!
md: unbind<sdb2>
md: export_rdev(sdb2)

En esta caso además podemos comprobar cuál es la unidad que ha fallado (en el ejemplo /dev/sdb2). Este dato nos será útil en el siguiente paso.

Como el disco ya está desconectado del RAID, y en el caso de que sea hotplug, podríamos sustituirlo por otra unidad. En este ejemplo estamos usando RAID por software y con particiones por lo que, si el disco estuviera dañado, tendríamos que sustituirlo y recuperar en el nuevo todas las particiones.

Supongamos que acabamos de conectar el nuevo disco y deseamos volver a añadirlo al RAID:

master:~# mdadm /dev/md0 -a /dev/sdb2
mdadm: re-added /dev/sdb2
master:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda3[0]
      73240256 blocks [2/1] [U_]
      [>....................]  recovery =  1.0% (743104/73240256) finish=21.1min speed=57161K/sec

unused devices: <none>
master:~#                   

Una vez halla finalizado de sincronizar los discos, la información mostrada por /proc/mdstat será similar a la siguiente:

master:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda3[0]
      73240256 blocks [2/2] [UU]

unused devices: <none>

Más información:

lagoon – Jue, 14/12/2006 – 09:36