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

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

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

 Recuperar Rebuild Failed Software RAID's  Recover Rebuild Failed Software RAID's Recuperar RAID de software fallido de reconstrucción-Parte 8

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

Escenario de prueba de RAID

Antes de continuar, asegúrese de haber configurado Configure 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) 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).

freestar.config.enabled_slots.push

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

 SELinux RAID Error de montaje  SELinux RAID Mount Error SELinux RAID Error de montaje

Puede solucionar este problema ejecutando:

# restorecon-R/mnt/raid1

Configuración de la monitorización RAID

Hay una variedad de razones por las que 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 pueden ocurrir problemas en cualquier momento y debe estar preparado para reemplazar la pieza defectuosa y garantizar su disponibilidad e integridad. r datos.

Primero, un consejo. Incluso cuando puede inspeccionar /proc/mdstat. para verificar el estado de sus RAID, existe un método mejor y que ahorra tiempo que consiste en ejecutar mdadm. en monitor + scan 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 [email protected]

En mi caso:

MAILADDR [correo electrónico protegido]  Alertas de correo electrónico de supervisión de RAID Alertas por correo electrónico de supervisión de RAID Alertas por correo electrónico de supervisión RAID

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).

Por último, asegúrese de tener un Mail User Agent. (MUA) instalado, como mutt o mailx. De lo contrario, no recibirá ninguna alerta.

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

Simulando y reemplazando un error Dispositivo de almacenamiento RAID

Para simular un problema con uno de los dispositivos de almacenamiento en la matriz RAID, usaremos las opciones–manage y–set-failurey de la siguiente manera:

# mdadm-manage–set-failure/dev/md0/dev/sdc1

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

 Stimulate Issue with RAID Storage  Estimular el problema con el almacenamiento RAID Problema de estimulación con almacenamiento RAID

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

 Alerta por correo electrónico sobre dispositivo RAID fallido Alerta por correo electrónico sobre RAID fallido Dispositivo Alerta por correo electrónico sobre dispositivo RAID fallido

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

# 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 una partición de tipo fd. se ha creado previamente):

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

Afortunadamente para nosotros, el sistema automáticamente comenzará a reconstruir la matriz con la pieza 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 esté accesible en /mnt/raid1.

# mdadm–detail/dev/md0 # mount | grep raid1 # ls-l/mnt/raid1 | grep tecmint # cat/mnt/raid1/tecmint.txt Confirmar la reconstrucción de la matriz RAID  Confirmar la reconstrucción de la matriz RAID Confi rm Rebuilding RAID Array

La imagen de arriba muestra claramente que después de agregar /dev/sdd1. al arreglo como reemplazo de /dev/sdc1. la reconstrucción de datos fue realizado automáticamente por el sistema sin intervención de nuestra parte.

Aunque no es estrictamente necesario, es una gran idea tener un dispositivo de repuesto a mano para que se pueda realizar el proceso de sustitución del dispositivo defectuoso por una buena unidad 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  Reemplazo fallido Dispositivo de incursión Reemplazar dispositivo de incursión fallido Reemplazar dispositivo de incursión fallido

Recuperación de una pérdida de redundancia

Como se explicó anteriormente, mdadm. reconstruirá automáticamente los datos cuando falla un disco. Pero, ¿qué sucede si fallan 2 discos en la matriz? Simulemos dicho 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-failure/dev/md0/dev/sdd1

Intenta volver a crear la matriz de la misma manera fue creado en este momento (o usar la opción–assume-clean) puede 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 tipo fd. en /dev/sde. antes de continuar) usando ddrescue.

# ddrescue-r 2/dev/sdb1/dev/sde1  Recuperando la matriz de incursiones Recovering Raid Array Recuperando Raid Array

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 [ef] 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 de que los discos fallidos hayan sido reemplazados 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 que fallaron.