Independientemente de tu experiencia previa con matrices RAID, y de si has seguido todos los tutoriales de esta serie sobre RAID o no, gestionar RAID’s por software en Linux no es una tarea muy complicada una vez que te has familiarizado con el comando mdadm --manage
.
En este tutorial repasaremos la funcionalidad que proporciona esta herramienta para que la tengas a mano cuando la necesites.
- Escenario de prueba de RAID
- Entendiendo las opciones y el uso de mdadm
- Administrar dispositivos RAID con la herramienta mdadm
- Ejemplo 1: Añadir un dispositivo a la matriz RAID
- Ejemplo 2: Marcar un dispositivo RAID como defectuoso y retirarlo del array
- Ejemplo 3: Volver a añadir un dispositivo que formaba parte del array y que había sido eliminado anteriormente
- Ejemplo 4: Reemplazar un dispositivo Raid por un disco específico
- Ejemplo 5: Marcar un array Raid como ro o rw
- Summary
Escenario de prueba de RAID
Al igual que en el último artículo de esta serie, utilizaremos para simplificar una matriz RAID 1 (espejo) que consta de dos discos de 8 GB (/dev/sdb y /dev/sdc) y un dispositivo de repuesto inicial (/dev/sdd) para ilustrar, pero los comandos y conceptos enumerados aquí se aplican a otros tipos de configuraciones también. Dicho esto, no dude en seguir adelante y añadir esta página a los marcadores de su navegador, y vamos a empezar.
Entendiendo las opciones y el uso de mdadm
Afortunadamente, mdadm proporciona una bandera built-in --help
que proporciona explicaciones y documentación para cada una de las opciones principales.
Así, comencemos escribiendo:
# mdadm --manage --help
para ver cuáles son las tareas que mdadm --manage
nos permitirá realizar y cómo:
Como podemos ver en la imagen anterior, gestionar un array RAID implica realizar las siguientes tareas en un momento u otro:
- (Re)Añadir un dispositivo al array.
- Marcar un dispositivo como defectuoso.
- Retirar un dispositivo defectuoso del array.
- Reemplazar el dispositivo defectuoso por uno de repuesto.
- Iniciar un array que está parcialmente construido.
- Detener un array.
- Marcar un array como ro (sólo lectura) o rw (lectura-escritura).
Administrar dispositivos RAID con la herramienta mdadm
Tenga en cuenta que si omite la opción --manage
, mdadm asume el modo de gestión de todos modos. Tenga en cuenta este hecho para evitar encontrarse con problemas más adelante.
El texto resaltado en la imagen anterior muestra la sintaxis básica para gestionar RAIDs:
# mdadm --manage RAID options devices
Ilustrémoslo con algunos ejemplos.
Ejemplo 1: Añadir un dispositivo a la matriz RAID
Típicamente añadirá un nuevo dispositivo cuando sustituya uno defectuoso, o cuando tenga una pieza de repuesto que quiera tener a mano en caso de fallo:
# mdadm --manage /dev/md0 --add /dev/sdd1
Ejemplo 2: Marcar un dispositivo RAID como defectuoso y retirarlo del array
Este es un paso obligatorio antes de retirar lógicamente el dispositivo del array, y más tarde de sacarlo físicamente de la máquina – en ese orden (si te saltas uno de estos pasos puedes acabar causando un daño real al dispositivo):
# mdadm --manage /dev/md0 --fail /dev/sdb1
Nota cómo el dispositivo de repuesto añadido en el ejemplo anterior se utiliza para sustituir automáticamente el disco que ha fallado. No sólo eso, sino que la recuperación y reconstrucción de los datos del raid comienzan inmediatamente también:
Una vez que el dispositivo ha sido indicado como fallido manualmente, puede ser retirado con seguridad del array:
# mdadm --manage /dev/md0 --remove /dev/sdb1
Ejemplo 3: Volver a añadir un dispositivo que formaba parte del array y que había sido eliminado anteriormente
Hasta este punto, tenemos un array RAID 1 en funcionamiento que consta de 2 dispositivos activos: /dev/sdc1 y /dev/sdd1. Si ahora mismo intentamos volver a añadir /dev/sdb1 a /dev/md0:
# mdadm --manage /dev/md0 --re-add /dev/sdb1
nos encontraremos con un error:
mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible
porque el array ya está formado por el máximo número posible de unidades. Así que tenemos 2 opciones: a) añadir /dev/sdb1 como repuesto, como se muestra en el Ejemplo #1, o b) eliminar /dev/sdd1 del array y luego volver a añadir /dev/sdb1.
Elegimos la opción b), y empezaremos por detener el array para luego volver a montarlo:
# mdadm --stop /dev/md0# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
Si el comando anterior no añade con éxito /dev/sdb1 de nuevo al array, utiliza el comando del Ejemplo #1 para hacerlo.
Aunque mdadm detectará inicialmente el dispositivo recién añadido como un repuesto, empezará a reconstruir los datos y cuando termine de hacerlo, debería reconocer el dispositivo como parte activa del RAID:
Ejemplo 4: Reemplazar un dispositivo Raid por un disco específico
Reemplazar un disco del array por uno de repuesto es tan fácil como:
# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
El resultado es que el dispositivo que sigue al interruptor --with
se añade al RAID mientras que el disco indicado a través de --replace
se marca como defectuoso:
Ejemplo 5: Marcar un array Raid como ro o rw
Después de crear el array, debes haber creado un sistema de ficheros sobre él y montarlo en un directorio para poder utilizarlo. Lo que probablemente no sabías entonces es que puedes marcar el RAID como ro, permitiendo así que sólo se realicen operaciones de lectura en él, o rw, para poder escribir también en el dispositivo.
Para marcar el dispositivo como ro, es necesario desmontarlo primero:
# umount /mnt/raid1# mdadm --manage /dev/md0 --readonly# mount /mnt/raid1# touch /mnt/raid1/test1
Para configurar el array para que permita también operaciones de escritura, utiliza la opción --readwrite
. Tenga en cuenta que tendrá que desmontar el dispositivo y detenerlo antes de establecer la bandera rw:
# umount /mnt/raid1# mdadm --manage /dev/md0 --stop# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1# mdadm --manage /dev/md0 --readwrite# touch /mnt/raid1/test2
Summary
A lo largo de esta serie hemos explicado cómo configurar una variedad de matrices RAID de software que se utilizan en entornos empresariales. Si has seguido los artículos y los ejemplos proporcionados en estos artículos estás preparado para aprovechar el poder de los RAIDs por software en Linux.
Si tienes alguna pregunta o sugerencia, no dudes en ponerte en contacto con nosotros utilizando el siguiente formulario.