Buenos días a todos!

Estas semanas he seguido trabajando (además de en el desarrollo de aplicaciones web para nuevos clientes) en la mejora sustancial de la seguridad de nuestros servidores incluyendo un sistema de monitorización de discos que me permitirá conocer si existe algún tipo de error en el hardware antes de que suceda una catástrofe.

En primer lugar, configuré dos discos SATA de 1TB para que trabajaran en espejo , es decir:

  • Disco A como principal, es el que “arranca” el sistema.
  • Disco B copia idéntica del disco A continua, de forma que si fallase el disco A, tan solo habría que cambiar el arranque del a máquina al disco B, hasta que reparasen el primero.

Para ello ha sido necesaria la instalación de la herramienta mdadm, que consiste en lo siguiente:

raidtools ha sido el paquete de gestión de RAID por software estándard en Linux desde la inclusión del driver RAID por software. Con los años, raidtools ha demostrado un uso pesado, principalmente porque depende de un fichero de configuración (/etc/raidtab) que es difícil de mantener, y parcialmente por sus limitadas características. En agosto de 2001, Neil Brown, un ingeniero de software en la Unviersity of New South Wales y un desarrollador del kernel, lanzó una alternativa. Su paquete mdadm (multiple devices admin) proporciona una forma simple y robusta de gestión de arrays software. mdadm vá por la versión 1.0.1 y ha demostrado ser muy estable durante su primer año de desarrollo. En la lista de correo Linux-raid ha recibido una cálida acogida y muy probablemente consiga una mayor difusión en el futuro1. Este artículo asume que usted tiene cierta familiaridad con el RAID por software en Linux y que ha tenido cierto contacto con el paquete raidtools.

Texto extraído de http://elpuig.xeill.net/Members/vcarceler/articulos/mdadm-una-nueva-herramienta-para-la-gestion-de-raid-mediante-software-en-linux

Trabajo con una distribución Gentoo con lo cual, para realizar la instalación utilice el siguiente comando:

# emerge mdadm

En distrubiciones Debian:

# apt-get install mdadm

En Red Hat 7.x , OVH nos facilita un rpm:

# rpm -Uvh --nodeps ftp://ftp.ovh.net/made-in-ovh/sources/mdadm-2.5.5p1-1.i386.rpm

Y sino, podemos instalarlo “a pelo” descargando la última versión que haya en este enlace: https://www.kernel.org/pub/linux/utils/raid/mdadm/ realizando los siguientes pasos

# tar xvf ./mdadm-3.3.tar.gz 
# cd mdadm-3.3
# make install

Verificación de estado del RAID

Para verificar si tenemos el RAID funcionando, dependiendo de la distribución y configuración que tengamos en el sistema, así tendremos más o menos discos, en mi caso particular, compruebo el estado del RAID de la siguiente forma:

# mdadm --misc --detail /dev/md1

Si está correctamente sincronizado obtendré un mensaje como el siguiente:

# mdadm --misc --detail /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Wed Apr 17 18:55:03 2013
     Raid Level : raid1
     Array Size : 10485696 (10.00 GiB 10.74 GB)
  Used Dev Size : 10485696 (10.00 GiB 10.74 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Thu Oct 24 09:57:52 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 42febcfb:d4a63492:a4d2adc2:26fd5302
         Events : 0.42

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

La línea nos indica que tenemos dos discos en el sistema RAID y la línea 14 indica que está funcionando correctamente, es decir, que está bien sincronizado.

Si estuviera mal sincronizado tendríamos un mensaje similar al siguiente:

# mdadm --misc --detail /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Wed Apr 17 18:55:03 2013
     Raid Level : raid1
     Array Size : 10485696 (10.00 GiB 10.74 GB)
  Used Dev Size : 10485696 (10.00 GiB 10.74 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Thu Oct 24 09:57:52 2013
          State : active, degraded
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 42febcfb:d4a63492:a4d2adc2:26fd5302
         Events : 0.42

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       0        0        1      removed

La línea 14 indicaría active,degraded y en la línea 25 veríamos que no está le disco b.

En estos casos, es posible que haya habido una sobrecarga de disco que haya provocado la desincronización, o bien se ha realizado una sustitución del disco SDB.

– En el primer caso (sobrecarga), bastaría con añadir el disco de nuevo.

– En el segundo caso (cambio de disco), sería necesario definir las particiones y añadir el disco.

Tendríamos un ejemplo como el siguiente:

# mdadm --misc --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Wed Apr 17 18:55:03 2013
     Raid Level : raid1
     Array Size : 965746624 (921.01 GiB 988.92 GB)
  Used Dev Size : 965746624 (921.01 GiB 988.92 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Thu Oct 24 10:06:28 2013
          State : active, degraded, recovering
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : bc56f94d:96c83f3a:a4d2adc2:26fd5302
         Events : 0.29

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       8       18        1      spare   /dev/sdb2

 

Sincronizar el RAID sin cambiar el disco

En el caso de que se haya desconfigurado el RAID por una sobrecarga, no necesitamos cambiar el disco para volver a reconfigurarlo añadiendo de nuevo  las particiones que faltan directamente:

Añadir particiones nuevas

Para sincronizar el RAID, es necesario añadir las particiones del disco ausente (removed) al RAID degradado.

Hay que ir partición por partición, añadiendo el disco al disco RAID mdX correspondiente.

Para añadir una partición de datos X al RAID, utilizamos la opción “–add“.

# mdadm /dev/mdX --manage --add /dev/discoNuevoX

Nota: Si tenemos varias particiones definidas en RAID (md1, md2, md3…) deberemos verificar el estado del RAID para cada partición de RAID y lanzar una reconstrucción para cada una de ellas.

Por ejemplo, si está ausente el disco sdb, para añadir las particiones /dev/sdb1 y /dev/sdb2 a los RAID md1 y md2 correspondientes :

# mdadm /dev/md1 --manage --add /dev/sdb1
mdadm: hot added /dev/sdb1

# mdadm /dev/md2 --manage --add /dev/sdb2
mdadm: hot added /dev/sdb1

Si la sincronización no fuera posible, significa que es necesario realizar un cambio de disco previo.

 

Si necesitáis más información en la siguiente guía podéis ver los siguientes casos:

  • Sincronizar el RAID tras una sustitución de disco
  • Ensamblar un RAID no activo
  • Reiniciar un RAID irrecuperable

Guía => http://guias.ovh.es/ReconstruirRaidSoft

Y os dejo también una “chuleta” de comandos mdam => http://www.leopoldomaestro.com/chuleta-de-mdadm-raid-software/