Saltar a contenido

ADR-006: ZFS como base de almacenamiento

Fecha: 2026-05-11 Estado: aceptado Decisión: ZFS (sistema de archivos con integridad de datos) será el sistema de archivos de todos los servidores de SmallCountry. Proxmox usará ZFS (sistema de archivos con integridad de datos) como backend nativo. Todos los datos persistentes de los servicios residirán en datasets ZFS, montados en cada LXC (contenedor ligero de Proxmox). No se usarán otros sistemas de archivos para almacenamiento de datos.

Contexto: El almacenamiento es la capa más crítica: si los datos se corrompen, se pierde todo. SmallCountry necesita integridad de datos verificable, snapshots instantáneos para backups y rollback, compresión transparente, cifrado nativo y replicación eficiente. Además, Proxmox tiene soporte nativo de ZFS, lo que simplifica la integración.

Alternativas consideradas:

Alternativa Ventajas Por qué se descartó
ext4/xfs + LVM Más simple, más rápido en algunos benchmarks Sin checksums, sin snapshots nativos, sin compresión integrada, sin cifrado nativo. Requiere capas adicionales
Btrfs Similar a ZFS, nativo en Linux Historial de inestabilidad en configuraciones RAID. Madurez inferior a ZFS. No es el backend recomendado por Proxmox
Ceph Almacenamiento distribuido, escalable Sobredimensionado para 2-3 nodos. Complejidad operativa enorme. No justificable a esta escala
NFS + almacenamiento externo Desacopla almacenamiento de cómputo Introduce dependencia de red para datos locales. Latencia. SPOF (punto único de fallo) adicional

Consecuencias:

  • ✅ Integridad de datos: checksums detectan y reparan corrupción silenciosa
  • ✅ Snapshots: instantáneos, atómicos, sin consumo de espacio hasta que los datos cambian. Base para PBS (sistema de copias de seguridad de Proxmox)
  • ✅ Compresión: lz4 transparente, reduce uso de disco sin impacto perceptible de CPU
  • ✅ Cifrado nativo: aes-256-gcm. Los discos robados son ilegibles sin la clave
  • ✅ Replicación: send/receive para backups incrementales eficientes (rsync a Horus (servidor secundario con GPU para IA))
  • ✅ Integración Proxmox: backend nativo. Los LXCs (contenedores ligeros de Proxmox) usan datasets ZFS directamente
  • ❌ Consumo de RAM: ZFS usa ARC (caché en RAM). En servidores con poca RAM puede competir con las aplicaciones
  • ❌ Curva de aprendizaje: ZFS tiene su propio conjunto de comandos (zpool, zfs) y conceptos (pool, dataset, vdev)
  • ❌ No es clúster nativo: para almacenamiento compartido entre nodos, ZFS no es suficiente solo

Referencias: - Ficha: ZFS - Ficha: PBS - Ficha: Proxmox VE - Principio 2: Reconstruibilidad total - Mecanismo 4: Nivel 0 y Espejo Local