Búsqueda de sitios web

Cómo recuperar datos y reconstruir RAID de software fallidos - Parte 8


En los artículos anteriores de esta serie RAID pasaste de cero a héroe RAID. Revisamos varias configuraciones de RAID de software y explicamos los conceptos básicos de cada una, junto con las razones por las que se inclinaría por una u otra según su escenario específico.

En esta guía, analizaremos cómo reconstruir una matriz RAID de software sin pérdida de datos en caso de falla del disco. Para abreviar, 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 (espejo) en Linux.

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

1) una versión diferente de CentOS (v7) a 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, te encontrarás con este mensaje de advertencia al intentar montarlo:

Puedes solucionar esto ejecutando:


restorecon -R /mnt/raid1

Configuración de la supervisión RAID

Hay una variedad de razones por las cuales un dispositivo de almacenamiento puede fallar (aunque 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 dispositivo fallido. parte y para garantizar la disponibilidad e integridad de sus datos.

Primero un consejo. Incluso cuando puedes inspeccionar /proc/mdstat para comprobar el estado de tus RAID, existe un método mejor y que ahorra tiempo y consiste en ejecutar mdadm en monitor + escaneo. modo, que enviará alertas por correo electrónico a un destinatario predefinido.

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


MAILADDR user@<domain or localhost>

En mi caso:


MAILADDR gacanepa@localhost

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


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

De forma predeterminada, mdadm comprobará 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, --delay 1800 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 sustitución de un dispositivo de almacenamiento RAID fallido

Para simular un problema con uno de los dispositivos de almacenamiento en la matriz RAID, usaremos las opciones --manage 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:

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

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


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

Luego podrás retirarlo físicamente de la máquina y sustituirlo por un repuesto (/dev/sdd, donde previamente se ha creado una partición de tipo fd):


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

Por suerte para nosotros, el sistema comenzará automáticamente a reconstruir 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 todavía sea accesible en / mnt/raid1:


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

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 por una buena unidad se pueda realizar en un instante. Para hacer eso, volvamos a agregar /dev/sdb1 y /dev/sdc1:


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

Recuperarse de una pérdida por despido

Como se explicó anteriormente, mdadm reconstruirá automáticamente los datos cuando falle un disco. Pero, ¿qué sucede si fallan 2 discos de 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 recrear la matriz de la misma manera en que se creó en este momento (o usando la opción --assume-clean) pueden resultar en 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 escriba fd en /dev/sde antes de continuar) usando ddrescue:


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

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 utilizará los mismos nombres de dispositivo que con la matriz original, es decir, /dev/sdb1 y /dev/sdc1 después del Los discos defectuosos se han reemplazado por otros nuevos.

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

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


watch -n 1 cat /proc/mdstat

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

Resumen

En este artículo hemos revisado cómo recuperarse de fallas RAID y pérdidas de 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 RAID por igual, así como a los conceptos que cubriremos en la próxima y última guía de esta serie (administración 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!