Skip to content

Práctica Guiada 2: RAID en Linux

Objetivo de la práctica

Crear un sistema de almacenamiento RAID en un servidor Linux.

Introducción

¿Qué es un RAID?

Un RAID (Redundant Array of Independent Disks) es un grupo o matriz de discos independientes que se unifican mediante software o hardware para redundar datos y/o utilizar toda la capacidad de cada disco en conjunto.

Diferencia entre RAID por hardware y RAID por software

  • RAID por software:
    Es una aplicación que permite la creación de RAIDs a nivel lógico a partir de discos conectados al equipo. El software crea un sistema de ficheros que se comporta según el tipo de RAID configurado.

  • RAID por hardware:
    Es un dispositivo físico (tarjeta de expansión PCI/PCIe o integrado en la placa base) que permite la creación de un RAID de discos, gestionando el RAID sin utilizar el procesador ni la memoria RAM del sistema. Puede incluir caché para agilizar operaciones.

Principales diferencias y ventajas
  • El RAID por hardware requiere hardware adicional, lo que implica un coste.
  • En caso de fallo de un disco, el RAID por hardware suele reconstruirse automáticamente al insertar un disco nuevo.
  • El RAID por software evita el punto de fallo de una única tarjeta RAID.
  • Actualmente, la diferencia de rendimiento entre ambos es menor gracias a procesadores más potentes.
  • El RAID por hardware no utiliza recursos del procesador anfitrión.

Desarrollo

Usuario root

Nota: La práctica se realiza como usuario root. Si se usa un usuario con permisos de administración, anteponer sudo a los comandos.

1. Instalación de herramientas

  • Instalar una máquina Linux en VirtualBox.

  • Antes de arrancar la máquina, crear dos discos duros (VDI, espacio dinámico) de 5 GB llamados disco1 y disco2. alt text

Arrancar la máquina y comprobar los discos:

Comando Descripción
sudo fdisk -l Listar discos y particiones

alt text

  • Si los discos (/dev/sdb y /dev/sdc) tienen particiones, deben formatearse. En este caso, se formatean igualmente:
Comando Descripción
sudo fdisk /dev/sdb Crear nueva partición en /dev/sdb
(Elegir ‘n’ para nueva partición, valores por defecto, ‘w’ para guardar cambios.)
  • Repetir para /dev/sdc.

  • Comprobar el formateo:

Comando Descripción
sudo fdisk -l Verificar particiones
  • Instalar la herramienta mdadm:
Comando Descripción
sudo apt update Actualizar repositorios
sudo apt install mdadm Instalar mdadm

Nota: En Ubuntu 24.04, puede que se solicite configurar mdadm durante la instalación. Si pregunta por correo, puedes dejarlo en blanco.

alt text

2. Montar un RAID

  • Comando general para crear un RAID:
Comando Descripción
sudo mdadm --create --verbose /dev/md0 --level=tipo_de_raid --raid-devices=numero_de_discos ruta_disco_1 ruta_disco_2 ... Crear un RAID con los parámetros indicados
  • --verbose: Opcional, muestra información extra.
  • nombre_del_raid: Nombre del RAID, suele empezar por md.
  • tipo_de_raid: Tipo de RAID (0, 1, 5, 6).
  • numero_de_discos: Número de discos a emplear.
  • ruta_disco_n: Ruta de los discos (ej. /dev/sdb, /dev/sdc).

  • Ejemplo para crear un RAID1:

Comando Descripción
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc Crear un RAID1 con dos discos
  • Comprobar la creación del RAID1:
Comando Descripción
sudo fdisk -l Listar discos y particiones
sudo mdadm -D /dev/md0 Detalles del RAID
sudo mdadm --detail /dev/md0 Detalles del RAID (alternativo)

alt text

  • Crear el sistema de archivos (ext4):
Comando Descripción
sudo mkfs.ext4 /dev/md0 Formatear RAID con ext4

alt text

  • Montar la unidad RAID:
Comando Descripción
sudo mkdir -p /mnt/raid Crear punto de montaje
sudo mount /dev/md0 /mnt/raid Montar RAID en /mnt/raid
  • Crear un archivo de prueba de 50MB:
Comando Descripción
sudo dd if=/dev/zero of=/mnt/raid/fichero bs=512 count=100000 Crear archivo de prueba
  • Tras reiniciar, el RAID puede aparecer como /dev/md127. Para evitarlo:

  • Obtener información del array:

Comando Descripción
sudo mdadm --detail --scan Obtener configuración actual del RAID

Ejemplo de salida:

ARRAY /dev/md0 metadata=1.2 name=0 UUID=031cea92:50a7a28c:6b077fe7:8817092a
  • Añadir la línea al final de /etc/mdadm/mdadm.conf:
Comando Descripción
echo 'ARRAY /dev/md0 metadata=1.2 name=0 UUID=031cea92:50a7a28c:6b077fe7:8817092a' | sudo tee -a /etc/mdadm/mdadm.conf Guardar configuración en mdadm.conf

O bien:

Comando Descripción
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf Guardar configuración en mdadm.conf
  • Actualizar el initramfs para que el RAID se monte correctamente al arrancar:
Comando Descripción
sudo update-initramfs -u Actualizar initramfs
  • Comprobar el estado de progreso:
Comando Descripción
sudo mdadm --detail /dev/md0 Ver detalles del RAID
cat /proc/mdstat Ver estado de sincronización
  • Reiniciar:
Comando Descripción
sudo reboot Reiniciar el sistema
  • El RAID estará disponible como /dev/md0.

3. Instrucciones de gestión RAID

Comando Descripción
sudo mdadm --stop /dev/md127 Parar el RAID
sudo mdadm --assemble --scan Activar el RAID

4. Simular un fallo en el RAID

  • Simular fallo en un disco:
Comando Descripción
sudo mdadm --verbose --fail /dev/md0 /dev/sdb Simular fallo en /dev/sdb
  • Eliminar y volver a añadir el disco:
Comando Descripción
sudo mdadm --remove /dev/md0 /dev/sdb Eliminar disco del RAID
sudo mdadm --zero-superblock /dev/sdb Borrar superblock del disco
sudo mdadm --add /dev/md0 /dev/sdb Añadir disco de nuevo al RAID
  • Comprobar la sincronización:
Comando Descripción
cat /proc/mdstat Ver estado de sincronización

alt text

Comprobar detalles del RAID:

Comando Descripción
sudo mdadm --detail /dev/md0 Ver detalles del RAID
cat /proc/mdstat Ver estado de sincronización

alt text

Recursos adicionales