Projet

Général

Profil

Tâche #20338

Scénario #20318: Traitement express MEN (19-21)

Les VM ne se relancent pas après un reboot

Ajouté par Philippe Caseiro il y a presque 7 ans. Mis à jour il y a presque 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
02/05/2017
Echéance:
% réalisé:

100%

Temps estimé:
4.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Noramlement dans Hâpy les vm qui étaient RUNNING avant un reboot (après Maj-Auto automatique par exemple) doivent être relancées par le service onenode.

Actuellement sur Hâpy 2.6.1 ce n'est plus le cas. En effet les VM sont à l'étât POWEROFF et le script ne relance pas les VM POWEROFF.

Avant l'étât était Unknown.

Cela se produit très régulièrement sur notre Hâpy de "test".

Il faut trouver une solution pour relancer uniquement les VM qui étaient RUNNING avant le reboot.

fix-resume.patch Voir (1,05 ko) Philippe Caseiro, 11/05/2017 16:32

Révisions associées

Révision e9ff4ad3 (diff)
Ajouté par Philippe Caseiro il y a presque 7 ans

Correction du lancement du service onenode

Le service onenode ne se lance pas a cause d'une
boucle dans les dépendances de services.

Pour régler le problème on le lance après la multi-user.target

De plus au moment ou le service se lance opennebula n'est pas
complètement lancé alors le script essaye d'ouvrir des connections
pendant 20 secondes avant de remonter un problème.

Enfin on garde une liste des machines qui sont "running" avant l'arrêt
du serveur pour pouvoir les relance proprement.

Contribution de Cadoles (htts://www.cadoles.com)

ref #20338 @6h

Révision e65f0542 (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

onenode.service in error when VM state file is not present

  • scripts/onevm-all: truncate file only if it exists.

Ref: #20338

Historique

#1 Mis à jour par Daniel Dehennin il y a presque 7 ans

La solution la plus simple c’est de lister les VMs qui tournent avant de les éteindre soit même (attention à libvirt-guest.service) et de les démarrer au prochain boot.

#2 Mis à jour par Daniel Dehennin il y a presque 7 ans

Est-il possible de pousser la branche ?

#3 Mis à jour par Philippe Caseiro il y a presque 7 ans

C'est fait branche fix-20338

#4 Mis à jour par Gérald Schwartzmann il y a presque 7 ans

up auprès de Daniel :-)

#5 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • Tâche parente mis à #20318

#6 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Daniel Dehennin
  • Restant à faire (heures) mis à 4.0
  • Rebaser la branche sur 2.6.0
  • Diffuser sur 2.6.1
  • Prévoir un rétro-portage sur 2.6.0.

#7 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • % réalisé changé de 0 à 100
  • Restant à faire (heures) changé de 4.0 à 0.25
  • Rebase de la branche sur 2.6.0
  • Intégration dans 2.6.1
  • Compilation du paquet 2.6.1-6 en eole-2.6.1-proposed-updates
  • Intégration à la branche master.

#8 Mis à jour par Daniel Dehennin il y a presque 7 ans

J’ai testé sur igor.eole.lan qui est un 2.6.1 :

  • Maj-Auto -C
  • reboot → coincé sur libvirt-guest.sh : A stop job is running for Suspending Active Libvirt Guest (12mn 17s / nolimit)

#9 Mis à jour par Daniel Dehennin il y a presque 7 ans

Daniel Dehennin a écrit :

J’ai testé sur igor.eole.lan qui est un 2.6.1 :

  • Maj-Auto -C
  • reboot → coincé sur libvirt-guest.sh : A stop job is running for Suspending Active Libvirt Guest (12mn 17s / nolimit)

Après désactivation de libvirt-guest.service et un reboot j’obtiens :

root@igor:~# systemctl status onenode.service 
● onenode.service - OpenNebula Node starter
   Loaded: loaded (/lib/systemd/system/onenode.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since mer. 2017-05-10 16:43:24 CEST; 2min 33s ago
  Process: 1932 ExecStart=/usr/share/eole/sbin/onevm-all -t 20 -w -c ${CREDS} -e ${ENDPOINT} -a resume (code=exited, status=255)
 Main PID: 1932 (code=exited, status=255)

mai 10 16:43:21 igor systemd[1]: Starting OpenNebula Node starter...
mai 10 16:43:24 igor onevm-all[1932]: No such file or directory @ rb_file_s_truncate - /var/lib/one/running.bck
mai 10 16:43:24 igor systemd[1]: onenode.service: Main process exited, code=exited, status=255/n/a
mai 10 16:43:24 igor systemd[1]: Failed to start OpenNebula Node starter.
mai 10 16:43:24 igor systemd[1]: onenode.service: Unit entered failed state.
mai 10 16:43:24 igor systemd[1]: onenode.service: Failed with result 'exit-code'.

#10 Mis à jour par Daniel Dehennin il y a presque 7 ans

Daniel Dehennin a écrit :

J’ai testé sur igor.eole.lan qui est un 2.6.1 :

  • Maj-Auto -C
  • reboot → coincé sur libvirt-guest.sh : A stop job is running for Suspending Active Libvirt Guest (12mn 17s / nolimit)

Arf, j’ai utilisé eole.ac-dijon.fr alors que le paquet n’était que sur test-eole.ac-dijon.fr.

#11 Mis à jour par Daniel Dehennin il y a presque 7 ans

J’ai corrigé l’erreur générée lorsque le fichier n’existe pas au démarrage.

Par contre le script démarre toutes les VM suspendue et pas seulement celles qui sont dans le fichier.

  1. Démarrer une machine virtuelle
  2. Suspendre manuellement la machine virtuelle
    oneadmin@igor:~$ onevm suspend 15
    
  3. Attendre que la machine soit bien suspendue
    oneadmin@igor:~$ onevm list
        ID USER     GROUP    NAME            STAT UCPU    UMEM HOST             TIME
        15 eoleone  oneadmin Amon 2.5.2.1 -  susp  0.0      0k igor       128d 06h16
    
  4. Redémarrer le serveur
  5. Lister les machines
    oneadmin@igor:~$ onevm list
        ID USER     GROUP    NAME            STAT UCPU    UMEM HOST             TIME
        15 eoleone  oneadmin Amon 2.5.2.1 -  runn 1.01      2G igor       128d 06h17
    

Voici les logs:

mai 10 17:30:49 igor systemd[1]: Stopping OpenNebula Node starter...
mai 10 17:30:49 igor systemd[1]: Stopped OpenNebula Node starter.
-- Reboot --
mai 10 17:31:31 igor systemd[1]: Starting OpenNebula Node starter...
mai 10 17:31:50 igor onevm-all[1885]: Resume on Amon 2.5.2.1 - production-15
mai 10 17:31:50 igor onevm-all[1885]: Resume on Scribe 2.6.0 - production-16
mai 10 17:31:50 igor systemd[1]: Started OpenNebula Node starter.

#12 Mis à jour par Scrum Master il y a presque 7 ans

  • Projet changé de eole-one-master à Distribution EOLE
  • Statut changé de En cours à Résolu

#13 Mis à jour par Philippe Caseiro il y a presque 7 ans

Voici une proposition de correction

#14 Mis à jour par Daniel Dehennin il y a presque 7 ans

Philippe Caseiro a écrit :

Voici une proposition de correction

Pourquoi ne pas :

  1. Parcourir la liste des ID de VM du fichier de sauvegarde
  2. Vérifier son état != RUNNING
  3. Reprendre l’exécution de la VM

Une idée ?

#15 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 0.25 à 0.0

Formats disponibles : Atom PDF