Problema
Muchos entusiastas comienzan con un Raspberry Pi y, tras recibir hardware adicional, se encuentran con la necesidad de integrar varios servidores, un NAS y dispositivos de red en una única infraestructura. El reto no es solo conectar los equipos, sino crear una arquitectura coherente que permita:
- Virtualizar workloads de forma segura y eficiente.
- Exponer almacenamiento centralizado a todas las máquinas.
- Mantener la red bajo control y preparada para servicios como DNS, reverse proxy y monitorización.
- Automatizar despliegues y backups sin que la complejidad crezca desproporcionadamente.
En otras palabras, pasar de “un solo nodo” a “un clúster homelab” sin perder la capacidad de gestión y sin crear cuellos de botella.
Causa
Los problemas típicos surgen por tres factores combinados:
- Diseño de red improvisado – Con varios NUC, un NAS y un firewall dedicado, la topología suele quedar sin segmentación, lo que genera conflictos de IP, saturación de enlaces y dificultad para aplicar políticas de seguridad.
- Almacenamiento fragmentado – Cuando el NAS y los discos locales se usan de manera independiente, aparecen inconsistencias de permisos, replicación manual y falta de alta disponibilidad.
- Falta de orquestación de VMs/LXCs – Instalar Proxmox en cada nodo sin un plan de clúster genera “islas” de virtualización; la migración de máquinas y la gestión centralizada se vuelven laboriosas.
Estos síntomas aparecen en la mayoría de los homelabs que crecen rápidamente: caídas de servicios, backups que no se sincronizan y una curva de aprendizaje que se vuelve empinada.
Solución
Una arquitectura modular basada en tres capas permite escalar sin rehacer todo el proyecto:
1. Red estructurada
| Capa | Función | Equipo recomendado |
|---|---|---|
| Core | Enrutamiento y firewall | Palo Alto PA‑220 (modo router) |
| Distribution | Switch L2 con VLANs | Switch gestionado de 1 GbE o 2,5 GbE |
| Access | Conexión de NUCs y NAS | Cables Cat6a, asignación estática de IP por VLAN |
- Crear VLANs:
10para gestión (Proxmox, SSH),20para tráfico de VMs,30para almacenamiento (iSCSI/NFS) y40para usuarios finales. - Asignar subredes: 192.168.10.0/24, 192.168.20.0/24, etc. Mantener la tabla de rutas en el PA‑220.
- Habilitar DHCP por VLAN o usar reservas estáticas según preferencia.
2. Almacenamiento unificado
- NAS Synology DS918+ como punto de montaje único.
- Configurar iSCSI target para discos de VM y NFS share para backups y contenedores.
- Activar RAID‑5 con los 9 × 12 TB para tolerancia a fallos; los dos NVMe de 512 GB pueden usarse como caché de lectura/escritura.
- Exportar los volúmenes a Proxmox mediante
pve-storage(tipoiscsiynfs).
3. Cluster Proxmox de 3 NUCs
- Instalar Proxmox VE 8 (última versión estable) en cada NUC.
- Configurar cluster con
pvecm create homelab-cluster. - Añadir los nodos restantes con
pvecm add <IP-del-nodo‑maestro>. - Definir Ceph opcional para replicación de discos, pero con solo tres nodos y un NAS, usar LVM‑thin sobre iSCSI es suficiente.
4. Servicios de plataforma
| Servicio | Tipo | Implementación |
|---|---|---|
| Monitorización | Prometheus + Grafana | Desplegar como contenedores LXC o VM |
| Alertas | Alertmanager | Con integración a Telegram/Email |
| Home Assistant | VM o Docker | Con acceso a VLAN 20 |
| DNS + Reverse Proxy | CoreDNS + Traefik | Publicar en VLAN 40 |
| Bases de datos | PostgreSQL | En VM con discos iSCSI |
| Automatización | Ansible + GitHub Actions | Ejecutar desde una VM “control” |
| Aplicaciones de consumo | Nextcloud, Jellyfin, n8n | Cada una en su propia VM/LXC |
5. Automatización de despliegue
- Ansible playbooks para crear VMs, asignar discos y aplicar etiquetas de red.
- GitHub Actions disparan el pipeline cuando se actualiza el repositorio de playbooks.
- Mantener un inventario dinámico que lea la salida de
pvesh get /nodes.
Cuándo aplicar esta solución
Utiliza este enfoque cuando:
- Poseas al menos dos servidores físicos y un NAS dedicado.
- Necesites separar tráfico de gestión, datos y usuarios mediante VLANs.
- Quieras migrar VMs entre nodos sin tiempo de inactividad.
- Busques una base sólida para añadir servicios de monitorización y automatización.
No es adecuado si:
- Solo dispones de un único host (el overhead del clúster no se justifica).
- No tienes control sobre el firewall (el PA‑220 es opcional, pero sin él la segmentación será limitada).
- Prefieres soluciones “todo en uno” como un único servidor Hyper‑V o Docker Swarm sin almacenamiento externo.
Código
# 1. Crear el cluster en el nodo maestro
pvecm create homelab-cluster
# 2. Añadir los nodos secundarios (ejemplo nodo2)
pvecm add 192.168.10.2
# 3. Configurar iSCSI storage en Proxmox (ejemplo DS918+)
pvesh create /nodes/<node>/storage \
-storage iSCSI-DS918 \
-type iscsi \
-portal 192.168.30.10 \
-target iqn.2024-09.com.synology:ds918
# 4. Crear LVM‑thin pool sobre iSCSI
pvesh create /nodes/<node>/lvmthin \
-storage iSCSI-DS918 \
-vgname iscsi-vg \
-thinpool thinpool
# 5. Desplegar una VM con Ansible (playbook simplificado)
ansible-playbook -i inventory.yml create_vm.yml
Verificación
- Conectividad de red:
ping -c 3 192.168.20.1desde cada NUC; confirmar que las VLAN responden. - Estado del cluster:
pvecm statusdebe mostrar los tres nodos con “Online”. - Almacenamiento: En la UI de Proxmox, crear una VM que use el disco
iSCSI-DS918y verificar que arranca. - Monitorización: Acceder a Grafana (
http://192.168.20.10:3000) y comprobar que los targets de Proxmox aparecen en Prometheus. - Alertas: Generar una alerta artificial (por ejemplo, CPU > 90 %) y confirmar que llega a Telegram.
Notas adicionales
- Cache del NAS: Los NVMe en el DS918+ funcionan mejor como “SSD Cache” para lecturas aleatorias; habilítalo en Storage Manager y asigna al pool iSCSI.
- Backup de VMs: Usa
vzdumpcon destino NFS y programa snapshots nocturnos. Evita backups en la misma VLAN que el tráfico de producción. - Seguridad del PA‑220: Configura reglas “allow‑established” y bloquea todo el tráfico inter‑VLAN que no sea necesario. Usa NAT para exponer solo los puertos de servicios públicos.
- Actualizaciones: Mantén Proxmox y el DSM de Synology en versiones estables; prueba las actualizaciones primero en un nodo de prueba antes de aplicar al cluster completo.
- Escalado futuro: Si añades más NUCs, simplemente ejecuta
pvecm add <IP>y asignales la misma VLAN. Para alta disponibilidad de almacenamiento, considera Ceph cuando superes 5 nodos.