Migración de un servidor de 150 TB de Unraid a Debian sin mover los datos
Un usuario de r/selfhosted reemplazó una década de Unraid por Debian 13, manteniendo 15 discos XFS y más de 60 contenedores Docker sin copiar la enorme cantidad de datos.
El autor había usado Unraid en su servidor principal, llamado Tower, durante casi diez años. Con el tiempo la máquina pasó de ser un simple NAS con algunos contenedores a una infraestructura de ~150 TB repartidos en 15 discos de datos, más de 60 contenedores, aplicaciones personalizadas, servicios empresariales, medios y automatización del hogar. Un fallo tras actualizar a Unraid 7.3.2 (problemas con shfs, desaparición de /mnt/user, Docker sin imagen y GUI caída) obligó a replantearse la solución.
En lugar de intentar reparar Unraid, decidió migrar a Debian 13, aprovechando que cada disco ya era un XFS independiente y, por tanto, directamente montable. La pieza clave fue mergerfs, que unió los discos en un único namespace, y SnapRAID, que reutilizó el antiguo disco de paridad de Unraid para seguir protegiendo los datos. Docker se instaló de forma nativa con Docker Engine y Docker Compose, y se crearon volúmenes en SSDs dedicados para datos de aplicaciones y caché.
Para evitar sorpresas, mantuvo enlaces simbólicos de compatibilidad (/mnt/user, /mnt/cache, /mnt/cache_ingest) de modo que las aplicaciones no tuvieran que ser reescritas de inmediato. Además, implementó una verificación de arranque que comprueba la identidad de cada disco mediante su número de serie/WWN/UUID; si alguna unidad falta, Docker no arranca, evitando que los contenedores escriban en puntos de montaje vacíos.
La migración de los contenedores fue el cuello de botella: casi dos días de trabajo para trasladar más de 60 servicios críticos. Se usó Dockge como interfaz de visibilidad, pero los archivos docker‑compose.yml siguen siendo la fuente de verdad. De los 94 scripts de usuario de Unraid, solo se conservaron los realmente útiles; el resto se eliminó o reemplazó.
Un hallazgo curioso surgió al revisar una antigua instalación de OpenCart: dos correcciones dependientes estaban guardadas únicamente en la capa writable de un contenedor que llevaba años en producción. Recuperó la imagen histórica del archivo docker.img, identificó los cambios y los codificó de forma declarativa, permitiendo destruir y recrear el contenedor sin perder la funcionalidad.
Actualmente el disco de paridad está construyendo su primera sincronía SnapRAID. Una vez finalizada, se habilitarán sincronizaciones nocturnas, scrubs parciales semanales y una prueba de reinicio controlado que había postergado mientras la paridad se generaba.
Modelo mental resultante:
- Debian = sistema operativo
- Docker Compose = aplicaciones
- mergerfs = namespace unificado
- XFS = discos reales
- SnapRAID = paridad
El autor aclara que no busca desprestigiar a Unraid; la plataforma le sirvió bien durante una década y le permitió aprender mucho. Sin embargo, sus necesidades evolucionaron y necesitaba una solución basada en Linux convencional que pudiera comprender y controlar de arriba a abajo.
Esta migración muestra que, con una planificación cuidadosa y herramientas como mergerfs y SnapRAID, es posible cambiar de un stack propietario a una pila totalmente de código abierto sin mover físicamente los datos, lo que ahorra tiempo y evita riesgos de copia masiva en entornos de gran escala.
