2 votes

Bons moyens de redémarrer tous les ordinateurs d'un cluster distant ?

J'ai un cluster que je gère et, de temps en temps, je reçois des courriels de chaque nœud (et du nœud principal) qui demandent à être redémarrés après une mise à niveau automatique.

Actuellement, ma meilleure solution jusqu'à présent est un Shell ShellscriptShell comme :

 $> cat cluster_reboot.sh
 ssh root@node1.host.edu reboot
 ssh root@node2.host.edu reboot
 ssh root@node3.host.edu reboot
 ssh root@node4.host.edu reboot
 ssh root@node5.host.edu reboot
 ssh root@headnode.host.edu reboot

Je finis par taper le mot de passe root six fois, mais ça marche, je suppose. Y a-t-il un meilleur moyen ? Puis-je forcer le nœud principal à redémarrer les ordinateurs pour moi ?

MISE À JOUR : J'aimerais éviter d'utiliser l'ouverture de session sans clé pour la root utilisateur... mais c'est une méthode qui pourrait certainement fonctionner.

MISE À JOUR 2 : Les paires de clés pourraient avoir une utilité après tout. Que diriez-vous d'une connexion avec clé au nœud principal, puis d'une connexion sans clé du nœud principal à tous les nœuds de calcul. Puis quelque chose comme ce qui suit :

 $> ssh root@headnode
 Enter password for 'root':
 [<headnode>]$: cat cluster_reboot.sh
 ssh root@node1.host.edu reboot
 ssh root@node2.host.edu reboot
 ssh root@node3.host.edu reboot
 ssh root@node4.host.edu reboot
 ssh root@node5.host.edu reboot
 echo "Nodes rebooted. Rebooting this computer now."
 reboot
 [<headnode>]$: sh cluster_reboot.sh
 "Nodes rebooted. Rebooting this computer now."

Je pense que c'est la solution la plus sûre et la plus simple.

4 votes

L'alimentation électrique du bâtiment ?

1voto

Mox Points 609

Configurez SSH pour utiliser l'authentification basée sur un certificat. Utilisez ensuite une commande comme celle-ci :

$ for h in node1 node2 node3 node4 node5 headnode; do
>   ssh root@$h reboot
>   done

1voto

Fred Points 1225

Je suggère de mettre en place une gestion hors bande pour le cluster. De cette façon, vous pouvez accéder à une console même si la boîte tombe du réseau, et le redémarrage à distance des machines est un jeu d'enfant. Vous devrez dépenser de l'argent pour acheter soit un boîtier dédié avec des ports série supplémentaires et faire votre propre déploiement, soit un concentrateur de port série spécialement conçu. Ce n'est évidemment pas la solution la moins chère, mais elle facilitera grandement la gestion à distance.

0 votes

Bonne solution. Mais pas dans mon budget de 0 $ !

1voto

Peut-être qu'un système de type "check-and-see" pourrait vous convenir également ?

En supposant que vous ayez une sorte de serveur HTTP fonctionnant sur le nœud principal, vous pourriez écrire un petit script php/perl/quelque chose script qui vous permet de signaler les ordinateurs qui peuvent être redémarrés.

Ensuite, sur chaque nœud, mettez une tâche cron qui interroge ce script pour voir si le redémarrage est autorisé. Si le noeud principal renvoie l'ok, alors il devrait redémarrer. Une fois que le headnode a envoyé la commande ok-to-reboot, il pourrait effacer le drapeau.

Je mettrais cela en place en utilisant un répertoire avec quelques fichiers texte dedans, si le script voit le nom, il renvoie le ok pour redémarrer puis supprime le fichier. Facile à gérer pour vous car il vous suffit de les toucher pour signaler un ok. Sécurisé parce que vous n'avez jamais à passer aucune de ces informations directement au système de fichiers.

Chaque script sur les sous-nœuds vérifierait simplement par nom d'hôte ou autre ;

http://headnode/reboot?name=subnode1

Vérifier toutes les 5 minutes environ ne devrait pas être trop pénible.

0voto

EdmundG Points 1115

Utilisez paires de clés ssh pour que vous n'ayez pas à taper le mot de passe autant de fois.

0voto

Scott James Points 521

Ce n'est pas une résolution pour ce problème, mais Roches est une "distro" de cluster construite sur CentOS qui a des clés ssh et garde la trace du nombre de nœuds que vous avez. Il vous suffit de lancer rocks run host reboot pour redémarrer tous vos noeuds. Rocks a tout ce dont vous avez besoin pour un cluster HPC complet et je l'ai personnellement essayé sur un cluster de plus de 1200 nœuds.

0 votes

D'ordinaire, je suggérerais de poster quelque chose comme ça en tant que commentaire, mais je pense que c'est une réponse juste. il est possible (peut-être même probable) que la distro de clustering utilisée par le PO ait une commande similaire. bien sûr. ce que la commande dépend des particularités de ce que le PO utilise. merci d'en parler.

0 votes

C'était utile. Je suis en train de mettre en place un autre cluster avec CentOS et je vais maintenant me pencher sur Rocks pour celui-ci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X