Le 03/01/2013 16:14, Sébastien Bocahu a écrit :
Or je voudrais mettre en place une reprise automatique en cas de panne matérielle d'un noeud vers l'autre noeud sur le même principe que Heartbeat le fait sur un cluster que j'ai actuellement.
Connaitriez-vous des solutions pour mettre cela en oeuvre avec Ganeti ?
Lis la mailing list Ganeti-devel, il y a une RFC, des patchs et une discution à ce propos entre les devs. Cherche Corosync/pacemaker.
En gros: ça marchotte, c'est pas fini, et ce n'est pas conseillé "use it at your own risk".
Je n'ai pas testé personnellement, j'ai suivi le thread avec intérêt. Je suis interessé par tes retours si tu essaies.
Effectivement ils ne souhaitent pas intégrer cela pour des raisons un peu obscures mais cela se fait bien facilement cf plus bas.
Quand un noeud est injoignable et que donc des machines sont marquées en ERROR_down elles sont redémarrées automatiquement chez nous. Si tu arrêtes manuellement une machine elle est marquée comme ADMIN_down. Je n'ai rien fait pour que cela se fasse tout seul.
Ganeti-watcher, et c'est HS. Il veut un failover de node, pas un redémarage de la VM sur la même node.
Pour cela on a scripté à base de gnt-cluster master-ping et de gnt-cluster master-failover pour le failover du master si besoin. Puis un autre script qui gère les cas de panne, avec des grep voilà la liste des commandes que l'on fait sur Ganeti :
gnt-node modify -O yes $NODENAME gnt-node evacuate --force -I hail $NODENAME
Le watcher se charge de redémarrer les vm par la suite.
Au pire faudrait faire une taĉhe cron qui vérifie qu'aucune machine n'est en ERROR_down et la redémarre si besoin.
C'est Ganeti watcher :)
Oui effectivement c'était ce que nous faisions à une époque où l'on désactivait le watcher car il nous faisait des misères, je suis sur Ganeti depuis pas mal d'année, j'ai essuyé les plâtres. Mon état grippal vient de me rappeler que par défaut le watcher tourne toutes les 5 minutes et que dans notre doc d'install on le modifie pour que cela tourne toutes les minutes.