Gestor de contenedores
PodMesh: migración en caliente de contenedores Podman
PodMesh gestiona contenedores Podman en Linux que siguen libres: moverlos en caliente con su memoria, replicarlos en los hosts elegidos, retomar si una máquina cae. Sin clúster al que unirse, sin sistema de ficheros replicado como en Proxmox: lo replicado es el manager. Se pilota en tándem agente-humano, modo Jarvis, interfaz mínima.
Por qué salir de Proxmox
Proxmox sigue siendo una buena herramienta, muy usada aquí. PodMesh nació de lo que faltaba para nuestro trabajo: mover Podman en caliente, unir un host ya ocupado, replicar sin clúster, guardar aparte de la copia en vivo.
Sin clúster al que unirse
Cada Linux sigue siendo él mismo: servidor, VM, VPS. Se une para el trabajo, se separa, se vuelve. Un host ya ocupado conserva su identidad.
Lo replicado es el manager, no el filesystem
En Proxmox, el almacenamiento sigue. Aquí, los hechos del manager convergen, como mucho en todos los hosts. Solo uno gobierna a la vez.
El principio, en simple
Un contenedor Podman corre en un host. Se mueve en caliente a otro host: la memoria sigue, lo que corre dentro no arranca de cero. La misma técnica mantiene una réplica lista para retomar.
Migración en caliente
Probado en el laboratorio entre dos hosts: el contador interior continúa, no vuelve a cero.
Podman dentro de Podman
Un contenedor exterior que lleva otro Podman. Se mueve todo junto, no una capa sola.
Lo que funciona en el laboratorio
Medido en los tres hosts de laboratorio, como servicio de desarrollo. Aún no empaquetado, sin producción.
Replicar en los hosts elegidos
Por contenedor: a un host, varios o todos. Ahora o con horario. La réplica queda lista; no es un archivo.
Toma si una máquina cae
Prevista o tras fallo: fence del activo anterior, espera del margen, promoción de la copia. Decide el agente; sin temporizador automático.
UUID estables, host caliente bienvenido
Hosts y contenedores identificados por UUID. Se une un host con o sin Podman encima, se separa, se vuelve, sin aplastarlo.
Manager replicado al máximo
Los hechos convergen en los hosts, como mucho en todos. Solo uno gobierna; la dirección de servicio sigue al gobernante.
Pilotaje: ver, clonar, pausar
Inventario, diario, ciclo de vida, clon, pausa, resume, recursos, traslado simple, consola. Mismas operaciones en todas partes.
En validación
Corre en el laboratorio pero no está terminado: aún faltan pruebas, paquete o casos reales.
Manifiestos firmados, origen verificado
Hoy un punto de recuperación dice qué contiene, no quién lo produjo. La firma aún por conectar.
Red gestionada, volúmenes generales
El traslado solo funciona sin red gestionada ni volúmenes montados. El resto se rechaza antes de tocar nada.
Fencing real, fallo real
El self-fence está probado en el laboratorio. El fencing fuera de banda y perder una máquina real siguen por probar.
Último código empaquetado
Lo que funciona en el laboratorio no es lo que está en el APT. El paquete va un paso atrás.
Almacenamiento ZFS, Btrfs, LVM
La replicación continua de disco espera un backend cualificado. Los discos dedicados aún no están añadidos.
Backup Server: replicar no es guardar
Una réplica también copia un error. El Backup Server guarda otra cosa: lo que el contenedor era, versionado, en otro sitio.
Puntos de recuperación versionados
Identidad, configuración, volúmenes, volcados. Diseño aprobado, sin código: aún no se puede restaurar desde esto.
Aparte de las copias en vivo
Independiente de las réplicas. La replicación no sustituye esto, y esto no sustituye la replicación.
Pilotaje en tándem, modo Jarvis
Como Shaper OS se fabrica en tándem humano-agente, PodMesh se pilota en tándem agente-humano: el agente actúa, el humano decide. Interfaz mínima, mismas operaciones en todas partes.
API y CLI primero
Operaciones claras, no scripts. La consola y la línea de comandos hacen los mismos gestos.
Interfaz mínima completa
La consola sabe ver, replicar, retomar. El formulario genérico y las vistas restantes llegan.
La hazaña: lo que resolvió Astra
Podman dentro de un contenedor Podman, movidos de una máquina a otra. Con Xavier, OpenAI Codex (GPT-6 Astra) adaptó el fork vzcriu y el kit de reproducción para Debian 13. El resto pertenece a los autores originales, CRIU y OpenVZ.
Namespaces de PID separados, reconciliados
Dos Podman, dos espacios de PID. Al llegar, el mismo UUID de tarea, el PID interior 30 reencontrado, el contador que sigue (78 luego 80). Los atributos LSM se restauran vía thread-self a través de los PID anidados.
Sockets UNIX nombrados vía proc-fd
En el dump, los nombres de socket relativos a proc-fd se resuelven. En el restore, la ruta getsockname cambia: una aplicación que exigiera la ortografía exacta queda descalificada.
Boot ID y crun repintados
Tras reanudación validada, el boot ID en caché del Podman interior y la hora de arranque en caché de crun se actualizan. Reparación deliberadamente estrecha: sin arreglo genérico.
Límites dichos, kit público
Tres migraciones medidas, 8 a 10 segundos lado controlador, sin red ni volúmenes. El kit de reproducción es público, los archivos de memoria quedan privados. Rseq rodeado, move_mount estándar, cgroups interiores compartidos.
¿Y Shaper OS?
Shaper OS puede apoyarse en PodMesh cuando una actividad corre en un contenedor. Lo hacemos internamente. PodMesh también funciona solo: no es un módulo de Shaper.
El código y el paquete, en público
El repositorio GitHub es el código. El APT firmado es el paquete, un paso atrás del laboratorio. Los dos se leen.
Preguntas frecuentes
- ¿Por qué no quedarse en Proxmox?
- Lo hemos usado mucho. PodMesh existe por lo que no teníamos ahí: Podman en caliente, Linux libres, una réplica lista para retomar, un Backup Server que no es la copia en vivo.
- ¿La toma es automática?
- No. El agente decide, la máquina prueba la exclusión: fence, margen, promoción. Sin temporizador que retome solo en producción.
- ¿PodMesh es Shaper OS?
- No. Shaper OS es la herramienta de su actividad. PodMesh es el gestor de contenedores.
¿Viene de Proxmox? Venga a ver.
Treinta minutos sobre su caso: contenedores por mover, hosts por unir, réplicas por prever. El código se lee sin cita.