RAID Software, cambiando el disco dañado

Introducción RAID Software

Imaginad por un momento que tenemos un sistema Linux que consta como mínimo de 2 discos duros. Estos discos duros tenemos varias formas de poder configurarlo en nuestro sistema operativo y una de ellas es a través de configuración RAID.

Con dos discos duros tenemos la posibilidad de montar algo llamado RAID 0 (si tenemos 2 discos de 1 TB el sistema lo vería como si tuvieramos 2 TB) y RAID 1 (Ambos discos duros tendrían el mismo contenido, por lo tanto si uno se rompe el sistema puede seguir funcionando).

En esta guía vamos a trabajar como si tuviésemos un RAID 1 (RAID Software) y tuviéramos problemas con uno de los 2 discos.

Configuración del sistema

Nuestro sistema dispone de 2 discos duros montados en RAID 1.

  • Disco#1: El sistema lo reconoce como /dev/sda
  • Disco#2: El sistema lo reconoce como /dev/sdb

Dentro del sistema Linux disponemos de dos particiones montadas en RAID.

  • Partición#1: /dev/md0 = /dev/sda1 + /dev/sdb1
  • Partición#2: /dev/md1 = /dev/sda2 + /dev/sdb2

El sistema reconoce como particiones en raid cuando le da la nomenclatura «mdx», siendo x un número empezando desde 0.

En nuestro caso vamos a suponer que se nos ha estropeado el segundo disco, es decir /dev/sdb

¿Cómo puedo saber si me falla un disco duro?

Lo primero que tenemos que hacer es comprobar el fichero «/proc/mdstat», este nos indicará si tenemos algún problema con el raid. La salida del fichero haciendo un cat:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb2[1] sda2[0]
 115643328 blocks [2/2] [UU]

md1 : active raid1 sda1[0] sdb1[1]
 1047488 blocks [2/2] [UU]

unused devices: <none>

Ese sería el resultado de un RAID 1 montado sin problemas. En nuestro caso diremos que en vez de las [UU] aparecerá [U_]

Reemplazando el disco estropeado

Lo que haremos será marcar cada una de las particiones del disco /dev/sdb como «fail» para sacarlas del raid y que se quede el disco /dev/sda como el principal.

1) Marcamos particiones como fallidas

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2

El resultado será esto

cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1](F)
      24418688 blocks [2/2] [U_]

unused devices: <none>

2) Removemos el disco de las particiones

mdadm –manage /dev/md0 –remove /dev/sdb1
mdadm –manage /dev/md1 –remove /dev/sdb2

El resultado será esto

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
      24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
      24418688 blocks [2/1] [U_]

unused devices: <none>

Como podéis ver se ha quedado en el RAID Software el disco /dev/sda con las particiones sda1 y sda2 en md0 y md1. También apreciar, como hemos dicho antes, las [U_] que indicaban que era un RAID1 y ahora mismo no hay un segundo disco.

3) Apagado de la máquina y cambiar el disco

Una vez que hemos realizado todo el trabajo solo nos queda apagar la máquina:

shutdown -h now

NOTA: Hemos de recordar que el disco como mínimo tiene que ser del mismo tamaño que el que está puesto en /dev/sda, de lo contrario la reconstrucción del RAID fallará.

Agregando el nuevo disco

Damos por hecho que hemos cambiado el segundo disco en nuestro servidor y que hemos arrancado nuestros sistema operativo.

Lo primero que haremos será instalar el grupo de comandos perteneciente al paquete «gdisk».

  • Debian / Ubuntu: apt-get install gdisk
  • Centos / Red Hat: yum install gdisk
  • Open Suse: yast install gdisk

Como nos gusta hacer las cosas de manera segura, vamos a realizar una copia del sistema de particiones de ambos discos. El backup se guardará en root para tenerlo a mano.

sgdisk --backup=/root/sda.partitiontable /dev/sda
sgdisk --backup=/root/sdb.partitiontable /dev/sdb

Esto nos sirve para el caso que metamos la pata o tengamos algún problema lo podamos ajustar con la opción «–load-backup» del comando sgdisk.

1) Copiando el esquema de partición de /dev/sda a /dev/sdb

sgdisk -R /dev/sdb /dev/sda

2) Añadiendo un numero aleatorio GUID

sgdisk -G /dev/sdb

Esto permite que el número sea único y no tengamos conflicto con el otro disco duro.

3) Opcional: Comprobamos ambos discos duros

sgdisk -p /dev/sda
sgdisk -p /dev/sdb

Con este comando comprobamos si ambos discos tienen las mismas particiones. Nos fijaremos que el punto 2 que explicaba antes aparece aquí:

Disco#1: Disk identifier (GUID): C3F44417-E2D2-4031-A90A-DAE9DAD76B4F
Disco#2: Disk identifier (GUID): 504550ED-EEA8-4484-8E34-E092307260CA

4) Agregando las particiones al RAID Software

mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2

Ahora al ver el fichero «/proc/mdstat» veremos que los discos se están sincronizando:

Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      24418688 blocks [2/1] [U_]
      [=>...................]  recovery =  9.9% (2423168/24418688) finish=2.8min speed=127535K/sec

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/1] [U_]
      [=>...................]  recovery =  6.4% (1572096/24418688) finish=1.9min speed=196512K/sec

unused devices: <none>

5) Comprobación de RAID Sotware Sincronizado

Lo último que nos queda será comprobar que el RAID Software ha terminado de sincronizarse. En dicho caso veremos el siguiente resultado a través del fichero «/proc/mdstat».

Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      24418688 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      24418688 blocks [2/2] [UU]

unused devices: <none>

Como veis tenemos las [UU] correctamente y las particiones del disco «/dev/sdb» incluidas en las particiones del RAID Software md0 y md1.

Conclusión

En este manual hemos aprendido a sustituir uno de los discos de nuestro RAID Software y a volver a configurar una vez lo hayamos cambiado.

Si seguimos las instrucciones es muy fácil evitando el poder equivocarnos y realizar una tare correctamente en nuestra área de sistema.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *