Project

General

Profile

Tâche #20338

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

Les VM ne se relancent pas après un reboot

Added by Philippe Caseiro over 2 years ago. Updated over 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
05/02/2017
Due date:
% Done:

100%

Estimated time:
4.00 h
Spent time:
Remaining (hours):
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 View (1.05 KB) Philippe Caseiro, 05/11/2017 04:32 PM

Associated revisions

Revision e9ff4ad3 (diff)
Added by Philippe Caseiro over 2 years ago

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

Revision e65f0542 (diff)
Added by Daniel Dehennin over 2 years ago

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

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

Ref: #20338

History

#1 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

Est-il possible de pousser la branche ?

#3 Updated by Philippe Caseiro over 2 years ago

C'est fait branche fix-20338

#4 Updated by Gérald Schwartzmann over 2 years ago

up auprès de Daniel :-)

#5 Updated by Daniel Dehennin over 2 years ago

  • Parent task set to #20318

#6 Updated by Daniel Dehennin over 2 years ago

  • Status changed from Nouveau to En cours
  • Assigned To set to Daniel Dehennin
  • Remaining (hours) set to 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 Updated by Daniel Dehennin over 2 years ago

  • % Done changed from 0 to 100
  • Remaining (hours) changed from 4.0 to 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 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

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 Updated by Scrum Master over 2 years ago

  • Project changed from eole-one-master to Distribution EOLE
  • Status changed from En cours to Résolu

#13 Updated by Philippe Caseiro over 2 years ago

Voici une proposition de correction

#14 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) changed from 0.25 to 0.0

Also available in: Atom PDF