LinuxParty
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:
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
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, --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 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 --manage
y 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 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
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
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
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:
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!
-
Documentación
- Los alemanes denuncian la influencia del inglés mientras el "apóstrofe del idiota" obtiene la aprobación oficial
- Explora la Historia Hispánica con este Mapa Interactivo de la Real Academia de Historia
- ¿CÓMO SE INVENTÓ LA RUEDA?
- ¿Estamos en el 'Antropoceno', la era humana? Los científicos dicen: no
- Quemadores de Hidrógeno Verde para una Producción de Asfalto Sostenible
- Jericó: Un Viaje a Través de los Milenios en la Ciudad más Antigua del Mundo
- La Generación Z recurre a los libros y bibliotecas físicos
- El Trágico Declive de la Biblioteca de Alejandría: Una Epopeya Perdida en Llamas
- Los Neandertales fueron los primeros homínidos en controlar el fuego, y no los sapiens, sugiere un estudio
- Un grupo de Hóminidos Eurosiáticos podrían poner en duda todo lo que sebe sobre el del Homo Sapiens, hasta la fecha
- Descubre la Iglesia de San Antonio de los Alemanes: Un Tesoro Arquitectónico en el Corazón de Madrid
- La Asombrosa Reconstrucción de una Mujer Prehistórica Después de 4 Mil Años
- Descubren nuevo fósil de hace 8.7 millones de años en Turquía que desafía la historia sobre el origen de la humanidad
- Los arqueólogos descubren una lengua secreta perdida de hace 3.000 años
- La Queja Más Antigua del Mundo: La Historia Detrás de una Antigua Carta de Cliente Insatisfecho