Projet

Général

Profil

Scénario #36308

Problème de démarrage des VM après redémarrage du serveur

Ajouté par Emmanuel GARETTE il y a plus d'un an. Mis à jour il y a 15 jours.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
Début:
01/10/2022
Echéance:
01/01/2026
% réalisé:

0%

Points de scénarios:
3.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Liens avec la release:
Auto

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

Tâche #37266: Régler les problèmes de dépendance au shutdownEn coursLaurent Gourvenec

Tâche #37325: Sauver l'état des VMs running à l'extinction sans les suspendÀ validerBenjamin Bohard

Tâche #37358: Remplacer les dépendances libvirt-bin par libvirtdÀ validerLaurent Gourvenec

Révisions associées

Révision fc58e9ac (diff)
Ajouté par Joël Cuissinat il y a 9 mois

Reconfigure-AcaHapy: utilise l'image avec Import

Ref: #36308

Révision 2d9e65d2 (diff)
Ajouté par Joël Cuissinat il y a 9 mois

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/2024 supprimé
  • 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

Les tests ajoutés ne signalent pas de problème mais l'infrastructure sur laquelle le problème a été remonté était certainement plus complexe que celle du test jenkins...

#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.

Formats disponibles : Atom PDF