Scénario #36308
Problème de démarrage des VM après redémarrage du serveur
0%
Description
Sur les Häpy 2.9 j'ai un problème récurrent.
Lorsqu'on redémarre le serveur Häpy (notamment suite à une mise à jour) les VM démarré avant l'arrêt ne redémarre pas.
L'erreur dans les logs est le suivant :
Tue Dec 3 09:15:02 2024 [Z0][VMM][D]: Message received: DEPLOY FAILURE 18 ovswitch: ERROR: pre: Command "sudo -n ovs-vsctl add-port vswitch" failed. ERROR: pre: ovs-vsctl: 'add-port' command requires at least 2 arguments ovs-vsctl: 'add-port' command requires at least 2 arguments ExitCode: 1
(on voit qu'il manque l'argument dans la commande)
Pour s'en sortir, il faut supprimer les réseaux des VM et les remettre.
Je pensais naïvement qu'une mise à jour en 6.6.1 résoudrait ce problème mais ce n'est pas le cas.
Ce problème n'existe pas sur la version 2.8.
Sous-tâches
Révisions associées
Reconfigure-AcaHapy: utilise l'image avec Import
Ref: #36308
Importation-AcaHapy: reboot + verif VM
Ref: #36308
Historique
#1 Mis à jour par Joël Cuissinat il y a plus d'un an
- Tracker changé de Demande à Scénario
- Début
03/12/2024supprimé - Release mis à Carnet de produit Cadoles - MEN
- Points de scénarios mis à 1.0
#2 Mis à jour par Joël Cuissinat il y a 9 mois
Réponse de Daniel :
[Il] faut monter un test pour voir si c’est facilement reproductible
#3 Mis à jour par Joël Cuissinat il y a 9 mois
#4 Mis à jour par Emmanuel GARETTE il y a 9 mois
Le problème se pose si tu as une VM démarré et que tu redemarre Hapy (ce qui arrive presque toutes les semaines avec la mise à jour).
Alors là il faut aller manuellement sur chaque VM désactiver/reactiver le réseau.
Dans les tests j'ai pas analysé mais je ne vois pas de redémarrage du Hapy après avoir déployer la VM. Je viens de voir que tu as modifié le test dans ce sens.
#5 Mis à jour par Joël Cuissinat il y a 9 mois
je vois que dans diagnose on regarde le STATE et pas le LCM_STATE
si j'en crois https://docs.opennebula.io/6.10/integration_and_development/references/vm_states.html
une machine dans l'état UNKNOWN est considéré comme active à mon avis il faudrait plutot regarder LCM_STATE et qu'il soit à RUNNING
#6 Mis à jour par Joël Cuissinat il y a 9 mois
Avec un aca.hapy-2.9.0-instance-AvecImport re-démarré, ça donne :
root@hapy:~# su oneadmin -s /bin/sh -c 'onevm show 0 | grep '\''^STATE'\'' | cut -d: -f2 | tr -d '\'' '\''' ACTIVE root@hapy:~# su oneadmin -s /bin/sh -c 'onevm show 0 | grep '\''^LCM_STATE'\'' | cut -d: -f2 | tr -d '\'' '\''' RUNNING
#7 Mis à jour par Philippe Caseiro il y a 8 mois
Je pense que le simple fait de prendre en compte le LCM_STATE ne suffit pas (il faut déjà que je reproduise le cas pour avoir plus d'informations), a mon humble avis, il faut revoir complètement la gestion des reboots de VM qui pose un problème depuis bien longtemps.
#8 Mis à jour par Laurent Gourvenec il y a 3 mois
Premier soucis lié au partitionnement des VMs hapy sur le one. Le shutdown du serveur timeout et on obtient un message d'erreur sur sunstone sur chaque VM après redémarrage de hapy :
bash: ligne 2: /var/tmp/one/vmm/kvm/save: Aucun fichier ou dossier de ce nom ExitCode: 127
Piste en cours d'exploration avec l'ajout dans
/etc/systemd/system/opennebula.service.d/libvirtd.conf :After=var-tmp.mount
Cependant, dans cet état les VMs sont bien démarrées.
Après avoir un coup de chance et un redémarrage sans timeout, je me retrouve dans l'état suivant :
- j'ai 2 VMs démarrées
- je redémarre hapy
- les 2 VMs sont données comme démarrées par onevm list ou sunstone. Sauf qu'impossible d'y accéder par VNC.
Au bout de 5min, j'obtiens les logs suivants :
Mon Jan 5 11:51:04 2026 [Z0][LCM][I]: VM running but monitor state is POWEROFF Mon Jan 5 11:51:04 2026 [Z0][VM][I]: New LCM state is SHUTDOWN_POWEROFF Mon Jan 5 11:51:04 2026 [Z0][VM][I]: New state is POWEROFF Mon Jan 5 11:51:04 2026 [Z0][VM][I]: New LCM state is LCM_INIT
Et les VMs apparaissent comme éteinte (ce qui est le cas).
#9 Mis à jour par Laurent Gourvenec il y a 3 mois
- Echéance mis à 01/01/2026
- Assigné à mis à Laurent Gourvenec
- Version cible mis à Carnet Cadoles - MEN
- Début mis à 01/10/2022
#10 Mis à jour par Laurent Gourvenec il y a 2 mois
Au shutdown, il semble que ce soit systemd qui arrête les VMs avant que le service onenode ne s'exécute.
janv. 12 16:22:41 hapy systemd[1]: machine-qemu\x2d1\x2done\x2d2.scope: Failed to kill control group /machine.slice/machine-qemu\x2d1\x2done\x2d2.scope, ignoring: Operation not supported janv. 12 16:22:41 hapy systemd[1]: machine-qemu\x2d1\x2done\x2d2.scope: Killing process 6363 (qemu-system-x86) with signal SIGKILL. janv. 12 16:22:41 hapy systemd[1]: machine-qemu\x2d1\x2done\x2d2.scope: Failed to kill control group /machine.slice/machine-qemu\x2d1\x2done\x2d2.scope, ignoring: Operation not supported janv. 12 16:22:41 hapy systemd[1]: machine-qemu\x2d1\x2done\x2d2.scope: Deactivated successfully. janv. 12 16:22:41 hapy systemd[1]: Stopped Virtual Machine qemu-1-one-2.
Ensuite, onenode s'exécute. Il demande à opennebula combien de VM sont en Running. Opennebula donne les ids et onenode les mets dans /var/lib/one/running.bck. Puis onenode demande à opennebula de suspend ces VMs. Sauf qu'elles ont été tuées par systemd.
-> timeout + message d'erreur sur le sunstone sur chaque VM.
Au redémarrage, onenode demande à opennebula de resume ces VMs et ça fonctionne (hypothèse à vérifier)
-> Soit il faut empêcher systemd de manipuler les VMs, soit il faut modifier onenode pour qu'il ne demande pas à opennebula de suspend les VMs (et attendre qu'elles soient suspend).
#11 Mis à jour par Joël Cuissinat il y a 2 mois
- Points de scénarios changé de 1.0 à 3.0
Vu en visio : +2 pour le complément d'étude et l'application du correctif
#12 Mis à jour par Laurent Gourvenec il y a 15 jours
Difficile de court-circuiter les .scopes machine-qemu..one.. Peut-être qu'une solution est de rajouter un service en dépendance de virt-guest-shutdown.target.
Une autre solution serait, au démarrage, de poweroff les VMs puis de les resume.