El servidor tiene un RAID 5 software creado con mdadm, montado en /data-raid. Proporciona:
Se usa para volúmenes persistentes de aplicaciones (/data-raid/apps/). Las bases de datos PostgreSQL se migrarán en una operación futura.
| Parámetro | Valor |
|---|---|
| Nivel RAID | 5 |
| Dispositivo | /dev/md0 |
| Discos de datos | sdb, sdc, sdd, sde (4 × 558 GB) |
| Hot spare | sdf (558 GB) |
| UUID array | c246fbe1:6aadcdb0:14fbe98b:7efc31a6 |
| Filesystem | ext4 |
| UUID ext4 | 656d030b-9e26-4a27-8240-5329a36fb756 |
| Punto de montaje | /data-raid |
| Capacidad útil | 1.67 TB (1.799 TB brutos) |
/data-raid/
└── apps/
└── pampling-diseno/ (UID 1000, para modelo CLIP y embeddings)
Convención: cada aplicación que necesite almacenamiento persistente crea su carpeta bajo /data-raid/apps/<nombre-app>/. Los permisos deben ajustarse al UID que usa el contenedor (1000 para Nixpacks).
sudo vgremove -f BackupSAP
sudo vgremove -f DiskSAP
sudo vgremove -f pve
sudo wipefs -a /dev/sdi /dev/sdj /dev/sdk /dev/sdl
sudo wipefs -a /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
sudo mdadm --create /dev/md0 \
--level=5 \
--raid-devices=4 \
--spare-devices=1 \
/dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /data-raid
sudo mount /dev/md0 /data-raid
Añadir configuración del array:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
Añadir al /etc/fstab:
UUID=656d030b-9e26-4a27-8240-5329a36fb756 /data-raid ext4 defaults,nofail 0 2
La opción nofail es importante: si el RAID no está disponible al arrancar, el sistema arranca igual en vez de quedarse colgado.
Validar sin reiniciar:
sudo mount -a
cat /proc/mdstat
Ejemplo de salida saludable:
md0 : active raid5 sde[5] sdf[4](S) sdd[2] sdc[1] sdb[0]
1757787648 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
[UUUU] → todos los discos de datos están activos(S) → disco spare en reserva[UUU_] o [UU_U] → RAID degradado, un disco ha falladosudo mdadm --detail /dev/md0
Campos clave:
State: debe ser active, clean (si aparece degraded o recovering hay actividad/problemas)Active Devices: debe ser 4Failed Devices: debe ser 0Spare Devices: 1 (el hot spare)sudo smartctl -H /dev/sdb # repetir para sdc, sdd, sde, sdf
El spare se activa automáticamente y empieza la reconstrucción. No hace falta intervención inmediata para mantener la redundancia, pero sí hay que reemplazar el disco físico cuanto antes para restaurar el spare.
Secuencia de actuación:
Verificar qué disco falló:
cat /proc/mdstat
sudo mdadm --detail /dev/md0
Marcarlo como faulty si aún no lo está:
sudo mdadm --manage /dev/md0 --fail /dev/sdX
Retirarlo del array:
sudo mdadm --manage /dev/md0 --remove /dev/sdX
Reemplazar físicamente el disco.
Añadir el nuevo disco como spare:
sudo wipefs -a /dev/sdX
sudo mdadm --manage /dev/md0 --add /dev/sdX
El sistema lo integrará como nuevo spare automáticamente.
Durante la reconstrucción inicial o tras reemplazo, cat /proc/mdstat muestra:
[>....................] recovery = 7.3% (43128876/585929216) finish=46.3min speed=195030K/sec
El array es usable durante la reconstrucción, aunque con rendimiento reducido.
Estas tareas están registradas en PostIt pero no se han ejecutado aún:
Con 5 discos activos tendríamos 2.23 TB útiles (más espacio), pero ante un fallo haría falta intervención manual inmediata para reemplazar. Con hot spare, el RAID se auto-repara y compramos tiempo tranquilos para cambiar el disco físico.
/etc/mdadm/mdadm.conf/etc/fstab