PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

[Lxc-users] Physical interface not getting released after container shutdown

samedi 5 décembre 2015 à 00:21
GuiGui's Show - Liens
J'ai un problème fortement similaire sur mes conteneurs LXC : un halt/poweroff/reboot depuis l'intérieur du conteneur, via SSH, laisse la veth côté hôte depuis que j'ai mis à jour hôtes et conteneurs à Jessie... Cette interface réseau sera supprimée automatiquement 5-6 minutes après par le noyau qui se rendra compte que sa veth paire a disparu (à la fin du conteneur). Dans l'attente, le reboot ne pourra pas fonctionner. Notons qu'un lxc-start ne fonctionnera pas mais virera la veth permettant ainsi à un deuxième lxc-start de faire repartir le conteneur. Un halt/poweroff/reboot depuis une tty (lxc-console) fonctionne, c'est vraiment uniquement depuis une pts via SSH que ça foire.

Je n'ai pas de vraies solutions à ce problème. Dans les workaround, on a :
   * Dans le conteneur, un alias reboot/poweroff/halt = sudo ip l d dev eth0 && sudo reboot/halt/poweroff
   * Sur l'hôte, dans la config du conteneur : lxc.network.script.down + un script qui virera la veth au down de la VM
   * Dans le conteneur, une unit systemd dans /etc/systemd/system/{halt,poweroff,reboott}.target.wants avec comme action un ip l d eth0

J'ai ce problème sur 2 VM KVM avec Debian Jessie (mis à jour depuis wheezy) avec systemd et les conteneurs sont des Debian Jessie avec systemd, mis à jour depuis wheezy ou fraîchement créés (directement en Jessie + systemd donc). Topologie réseau : veth+bridge, rien de sorcier.

En conservant les vieilles conf' (/var/lib/lxc/<nom_conteneur>/config) des conteneurs ou avec une conf' par défaut créée par un template lxc-debian à jour, le problème survient dans les deux cas.

Avec ou sans retirer la capability sys_admin au conteneur, le problème survient dans les deux cas.

Je n'ai aucune connexion réseau avec un état sur l'hôte, conteneur allumé ou éteint, puisque je suis en mode bridge. Je ne vois rien avec ss ou conntrack/iptstate (tout aussi normal puisque je n'utilise pas le suivi des connexions ici).

J'ai fait 2 tests, sur 2 VM VirtualBox sur la même machine Debian GNU/Linux Jessie. Le premier test, c'était y'a 1 mois et demi, l'autre aujourd'hui. Résultats :
   * Wheezy sur l'hôte + Wheezy dans le conteneur : je n'arrive pas à reproduire puisque halt/poweroff/reboot freeze sans éteindre le conteneur...
   * Wheezy sur l'hôte + Jessie sans systemd comme init dans le conteneur : même problème... Sur la maquette d'il y a 6 semaines, je n'avais pas ce problème et l'interface réseau disparaissait bien à l'arrêt du conteneur.

   * LXC de Wheezy-backports sur l'hôte + Jessie sans systemd comme init dans le conteneur  : même problème...
   * LXC de Wheezy-backports sur l'hôte + Jessie avec systemd comme init dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC

   * Jessie avec systemd comme init sur l'hôte + wheezy dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC. Ça fonctionnait aussi dans la première maquette d'il y a 6 semaines.
   * Jessie avec systemd comme init sur l'hôte + Jessie avec systemd comme init dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC. Le bug était présent dans la maquette d'il y a 6 semaines...
   * Jessie avec systemd comme init sur l'hôte + Jessie sans systemd comme init dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC. Le bug était présent dans la maquette d'il y a 6 semaines...

   * Jessie sans systemd comme init sur l'hôte + Wheezy dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC
   * Jessie sans systemd comme init sur l'hôte + Jessie avec systemd comme init dans le conteneur : impossible de tester puisqu'un bug (que j'avais déjà eu à l'époque Wheezy et qu'on retrouve aussi sur la ML LXC fait que halt/poweroff/reboot agissent aussi sur l'hôte :)
   * Jessie sans systemd comme init sur l'hôte + Jessie avec systemd comme init dans le conteneur : halt/poweroff/reboot fonctionnent et l'interface réseau disparaît bien à l'arrết du LXC

J'en retiens qu'il n'y a pas grand'chose à en retenir, aucun schéma maîtrisable apparent : ce bug existait déjà en 2013 (cf mailing-list LXC), le couple Jessie+Jessie foire sur une infra et dans ma première maquette et fonctionne sur ma maquette du jour...

On voit, encore un fois, que le comportement de LXC est plutôt aléatoire... Le réseau dans la VM ne part pas au boot du conteneur dans c'te VM Debian Wheezy mais fonctionne impec sur cette autre VM Debian Wheezy. Sur une infra A, poweroff/reboot dans un conteneur fait s'arrêter/rebooter l'hôte (problème de /dev/initctl partagé), sur une autre infra aucun problème. Même système d'exploitation hôte et guest, mêmes binaires et comportements différents. That's LXC.
(Permalink)