Gestionnaire de containers
PodMesh : migration à chaud de containers Podman
PodMesh gère des containers Podman sur des Linux qui restent libres : les déplacer à chaud avec leur mémoire, les répliquer sur les hôtes qu’on choisit, basculer si une machine tombe. Pas de cluster à rejoindre, pas de système de fichiers répliqué comme sur Proxmox : c’est le manager qui est répliqué. On le pilote en tandem agent-humain, mode Jarvis, interface minimale.
Pourquoi partir de Proxmox
Proxmox reste un bel outil, beaucoup utilisé ici. PodMesh est né de ce qui y manquait pour notre travail : bouger du Podman à chaud, relier un hôte déjà occupé, répliquer sans cluster, sauvegarder ailleurs que sur la copie live.
Pas de cluster à rejoindre
Chaque Linux reste lui-même : serveur, VM, VPS. On relie pour le travail, on détache, on remet. Un hôte déjà occupé garde son identité.
Le manager est répliqué, pas le filesystem
Sur Proxmox, le stockage suit. Ici, ce sont les faits du manager qui convergent, au mieux sur tous les hôtes. Un seul gouverne à la fois.
Le principe, simplement
Un container Podman tourne sur un hôte. On le déplace à chaud vers un autre hôte : la mémoire suit, ce qui tourne dedans ne repart pas de zéro. La même technique sert à garder une réplique prête à basculer.
Migration à chaud
Prouvé en labo entre deux hôtes : le compteur intérieur continue, il ne reprend pas à zéro.
Podman dans Podman
Un container extérieur qui porte un autre Podman. On déplace tout ensemble, pas une couche seule.
Ce qui marche en labo
Mesuré sur les trois hôtes de labo, en service de développement. Pas encore packagé, pas de production.
Répliquer sur les hôtes qu’on veut
Par container : vers un hôte, plusieurs, ou tous. Maintenant ou à l’horaire. La réplique reste prête, ce n’est pas une archive.
Bascule si une machine tombe
Prévue ou après panne : fence de l’ancien actif, délai de marge, promotion de la copie. C’est l’agent qui décide, pas un minuteur automatique.
UUID stables, hôte chaud accepté
Hôtes et containers identifiés par UUID. On relie un hôte avec ou sans Podman dessus, on le détache, on le remet, sans l’écraser.
Manager répliqué au mieux
Les faits convergent sur les hôtes, au mieux sur tous. Un seul gouverne, l’adresse de service suit le gouvernant.
Pilotage : voir, cloner, pauser
Inventaire, journal, cycle de vie, clone, pause, resume, resources, move simple, console. Mêmes opérations partout.
En cours de validation
Ça tourne en labo mais ce n’est pas fini : preuves, paquet ou cas réels manquent encore.
Manifests signés, origine vérifiée
Aujourd’hui un point de reprise dit ce qu’il contient, pas qui l’a produit. La signature reste à brancher.
Réseau géré, volumes généraux
Le move ne marche que sans réseau géré ni volumes montés. Le reste est refusé avant de toucher quoi que ce soit.
Fencing réel, vraie panne
Le self-fence est prouvé en labo. Le fencing hors-bande et la perte d’une vraie machine restent à prouver.
Dernier code packagé
Ce qui marche en labo n’est pas ce qui est dans l’APT. Le paquet est en retard d’un cran.
Stockage ZFS, Btrfs, LVM
La réplication continue disque attend un backend qualifié. Les disques dédiés ne sont pas encore ajoutés.
Backup Server : répliquer n’est pas sauvegarder
Une réplique recopie aussi une erreur. Le Backup Server garde autre chose : ce que le container était, versionné, ailleurs.
Points de reprise versionnés
Identité, configuration, volumes, dumps. Design validé, pas de code : on ne peut pas encore restaurer depuis ça.
À part des copies live
Indépendant des répliques. La réplication ne remplace pas ça, et ça ne remplace pas la réplication.
Pilotage en tandem, mode Jarvis
Comme Shaper OS se fabrique en tandem humain-agent, PodMesh se pilote en tandem agent-humain : l’agent fait, l’humain décide. Interface minimale, mêmes opérations partout.
API et CLI d’abord
Des opérations claires, pas des scripts. La console et la ligne de commande font les mêmes gestes.
Interface minimale complète
La console sait voir, répliquer, basculer. Le formulaire générique et les vues restantes arrivent.
La prouesse : ce qu’Astra a résolu
Des Podman dans un Podman, déplacés d’une machine à l’autre. Avec Xavier, OpenAI Codex (GPT-6 Astra) a adapté le fork vzcriu et le kit de reproduction pour Debian 13. Le reste appartient aux auteurs d’origine, CRIU et OpenVZ.
Namespaces de PID séparés, réconciliés
Deux Podman, deux espaces de PID. À l’arrivée, le même UUID de tâche, le PID intérieur 30 retrouvé, le compteur qui repart (78 puis 80). Les attributs LSM sont restaurés via thread-self à travers les PID imbriqués.
Sockets UNIX nommés via proc-fd
Au dump, les noms de sockets relatifs à proc-fd sont résolus. Au restore, le chemin getsockname change : une application qui exigerait l’orthographe exacte reste disqualifiée.
Boot ID et crun remaquillés
Après reprise validée, le boot ID en cache du Podman intérieur et l’heure de démarrage en cache de crun sont mis à jour. Réparation volontairement étroite : pas de remise en état générique.
Limites dites, kit public
Trois migrations mesurées, 8 à 10 secondes côté contrôleur, sans réseau ni volumes. Le kit de reproduction est public, les archives mémoire restent privées. Rseq contourné, move_mount standard, cgroups intérieurs partagés.
Et Shaper OS ?
Shaper OS peut s’appuyer sur PodMesh quand une activité tourne dans un container. On le fait en interne. PodMesh tourne aussi tout seul : ce n’est pas un module Shaper.
Le code et le paquet, en public
Le dépôt GitHub, c’est le code. L’APT signé, c’est le paquet, en retard d’un cran sur le labo. Les deux se lisent.
Questions fréquentes
- Pourquoi ne pas rester sur Proxmox ?
- On l’a beaucoup utilisé. PodMesh existe pour ce qu’on n’y avait pas : du Podman à chaud, des Linux libres, la réplique prête à basculer, un Backup Server qui n’est pas la copie live.
- La bascule est automatique ?
- Non. L’agent décide, la machine prouve l’exclusion : fence, marge, promotion. Pas de minuteur qui bascule tout seul en production.
- PodMesh, c’est Shaper OS ?
- Non. Shaper OS, c’est l’outil de votre activité. PodMesh, c’est le gestionnaire de containers.
Vous venez de Proxmox ? Venez voir.
Trente minutes sur votre cas : containers à bouger, hôtes à relier, répliques à prévoir. Le code se lit sans rendez-vous.