LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

En este artículos veremos cómo reconstruir una matriz RAID de software sin pérdida de datos en caso de una falla del disco. Por brevedad, solo consideraremos una configuración RAID 1 , pero los conceptos y comandos se aplican a todos los casos por igual.

Escenario de prueba RAID

Antes de continuar, asegúrese de haber configurado una matriz RAID 1 siguiendo las instrucciones proporcionadas en la Parte 3 de esta serie: Cómo configurar RAID 1 (Mirror) en Linux .

Las únicas variaciones en nuestro caso actual serán:

1) una versión diferente de CentOS (v7) que la utilizada en ese artículo (v6.5), y
2) diferentes tamaños de disco para /dev/sdb y /dev/sdc (8 GB cada uno).

Además, si SELinux está habilitado en modo obligatorio, deberá agregar las etiquetas correspondientes al directorio donde montará el dispositivo RAID. De lo contrario, se encontrará con este mensaje de advertencia al intentar montarlo:

Error de montaje RAID de SELinux

Puede solucionar esto ejecutando:

# restorecon -R /mnt/raid1

Configurar la monitorización RAID

Hay una variedad de razones por las cuales un dispositivo de almacenamiento puede fallar (sin embargo, los SSD han reducido en gran medida las posibilidades de que esto suceda), pero independientemente de la causa, puede estar seguro de que los problemas pueden ocurrir en cualquier momento y debe estar preparado para reemplazar el error parte y para garantizar la disponibilidad e integridad de sus datos.

Un consejo primero. Incluso cuando puede inspeccionar /proc/mdstat para verificar el estado de sus RAID, hay un método mejor y que ahorra tiempo que consiste en ejecutar mdadm en modo monitor + escaneo, que enviará alertas por correo electrónico a un destinatario predefinido.

Para configurar esto, agregue la siguiente línea en /etc/mdadm.conf :

Usuario MAILADDR@<dominio o localhost>
Ejemplo:

ARRAY /dev/md0 level=raid1 num-devices=2 matadata=1.2 name=centos7:0 UUID=f77c523a:52aacc40:130eac4_37a13f5 devices=/dev/sdb1,/dev/sdc1
MAILADDR root@localhost

Puede poner su corre electónico, por emplo...

MAILADDR javier@localhost

Alertas de correo electrónico de monitoreo RAID

Para ejecutar mdadm en modo monitor + exploración, agregue la siguiente entrada crontab como root:

@reboot /sbin/mdadm --monitor --scan --oneshot

Por defecto, mdadm verificará las matrices RAID cada 60 segundos y enviará una alerta si encuentra un problema. Puede modificar este comportamiento agregando la opción --delay a la entrada crontab anterior junto con la cantidad de segundos (por ejemplo, --delay1800 significa 30 minutos).

Finalmente, asegúrese de tener instalado un Agente de usuario de correo (MUA), como mutt o mailx . De lo contrario, no recibirá ninguna alerta.

En un minuto veremos cómo se ve una alerta enviada por mdadm .

Simulación y reemplazo de un dispositivo de almacenamiento RAID fallido

Para simular un problema con uno de los dispositivos de almacenamiento en la matriz RAID, vamos a utilizar las opciones --managey y --set-faulty de la siguiente manera:

# mdadm --manage --set-faulty /dev/md0 /dev/sdc1  

Esto dará como resultado que /dev/sdc1 se marque como defectuoso, como podemos ver en /proc/mdstat :

Estimular problema con almacenamiento RAID

Más importante aún, veamos si recibimos una alerta por correo electrónico con la misma advertencia:

Alerta de correo electrónico en un dispositivo RAID fallido

En este caso, deberá eliminar el dispositivo de la matriz RAID de software:

# mdadm /dev/md0 --remove /dev/sdc1

Luego, puede eliminarlo físicamente de la máquina y reemplazarlo con una pieza de repuesto ( /dev/sdd , donde se ha creado previamente una partición de tipo fd ):

# mdadm --manage /dev/md0 --add /dev/sdd1

Afortunadamente para nosotros, el sistema comenzará a reconstruir automáticamente la matriz con la parte que acabamos de agregar. Podemos probar esto marcando /dev/sdb1 como defectuoso, eliminándolo de la matriz y asegurándonos de que el archivo tecmint.txt aún esté accesible en / mnt / raid1 :

# mdadm --detail /dev/md0
# mount | grep raid1
# ls -l /mnt/raid1 | grep tecmint
# cat /mnt/raid1/tecmint.txt

Confirmar reconstrucción de matriz RAID

La imagen de arriba muestra claramente que después de agregar /dev/sdd1 a la matriz como reemplazo de /dev/sdc1 , el sistema realizó automáticamente la reconstrucción de datos sin intervención de nuestra parte.

Aunque no es estrictamente necesario, es una gran idea tener un dispositivo de repuesto a mano para que el proceso de reemplazar el dispositivo defectuoso con un buen disco se pueda hacer en un instante. Para hacer eso, vamos a volver a agregar /dev/sdb1 y /dev/sdc1 :

# mdadm --manage /dev/md0 --add /dev/sdb1
# mdadm --manage /dev/md0 --add /dev/sdc1

Reemplazar dispositivo de incursión fallido

Recuperarse de una pérdida de redundancia

Como se explicó anteriormente, mdadm reconstruirá automáticamente los datos cuando falle un disco. Pero, ¿qué sucede si fallan 2 discos en la matriz? Simulemos tal escenario marcando /dev/sdb1 y /dev/sdd1 como defectuosos:

# umount /mnt/raid1
# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
# mdadm --stop /dev/md0
# mdadm --manage --set-faulty /dev/md0 /dev/sdd1

Los intentos de volver a crear la matriz de la misma forma en que se creó en este momento (o usando la opción --assume-clean) puede provocar la pérdida de datos, por lo que debe dejarse como último recurso.

Intentemos recuperar los datos de /dev/sdb1 , por ejemplo, en una partición de disco similar ( /dev/sde1 ; tenga en cuenta que esto requiere que cree una partición de tipo fd en /dev/sde antes de continuar) usando ddrescue :

# ddrescue -r 2 /dev/sdb1 /dev/sde1

Recuperación de matriz de incursiones

Tenga en cuenta que hasta este punto, no hemos tocado /dev/sdb o /dev/sdd , las particiones que formaban parte de la matriz RAID.

Ahora reconstruyamos la matriz usando /dev/sde1 y /dev/sdf1 :

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1

Tenga en cuenta que en una situación real, normalmente usará los mismos nombres de dispositivo que con la matriz original, es decir, /dev/sdb1 y /dev/sdc1 después de que los discos fallidos se hayan reemplazado por otros nuevos.

En este artículo, he optado por utilizar dispositivos adicionales para volver a crear la matriz con discos nuevos y para evitar confusiones con las unidades fallidas originales.

Cuando se le pregunte si desea continuar escribiendo matriz, escriba Y y presione Entrar . La matriz debería iniciarse y debería poder ver su progreso con:

# watch -n 1 cat /proc/mdstat

Cuando se complete el proceso, debería poder acceder al contenido de su RAID:

Confirmar contenido de incursión

Resumen

En este artículo hemos revisado cómo recuperarse de fallas RAID y pérdidas por redundancia. Sin embargo, debe recordar que esta tecnología es una solución de almacenamiento y NO reemplaza las copias de seguridad.

Los principios explicados en esta guía se aplican a todas las configuraciones de RAID por igual, así como a los conceptos que cubriremos en la guía siguiente y final de esta serie (administración de RAID).

Si tiene alguna pregunta sobre este artículo, no dude en enviarnos una nota utilizando el formulario de comentarios a continuación. ¡Esperamos con interés escuchar de usted!

Pin It

Escribir un comentario


Código de seguridad
Refescar