Sommaire
STRIGGER : déclencher une action sur un événement Slurm
L'outil Slurm strigger permet de déclencher l'exécution d'un script sur des événements tels que :
- un nœud qui tombe en panne
- un job qui atteint sa limite de temps
- un job qui se termine
Sur Summit2, l'usage typique de strigger est la notification par mail aux administrateurs système de la panne d'un nœud (bascule dans l'état Down). Le script correspondant s'exécute sur le serveur où le démon slurmctld est actif, à savoir sur la frontale du cluster (Summit2, Ompfront, Fuxi) et non pas sur un nœud de calcul. Il reçoit en argument une liste de nœuds ou un identificateur de job suivant le type de 'trigger' défini. Voir man strigger pour plus d'informations.
1. Vérifier la présence d'un trigger
Pour vérifier si un trigger est défini, saisir la commande :
strigger --get
qui devrait afficher sur Summit2 :
summit2:~> strigger --get
TRIG_ID RES_TYPE RES_ID TYPE OFFSET USER PROGRAM
174 node * down 0 slurm /usr/local/sbin/slurm_admin_notify
2. Activer le trigger de notification de 'nœud Down'
Pour définir un trigger, la commande strigger --set --node doit être exécutée par l'utilisateur slurm : il est donc impératif de se connecter en tant que root sur Summit2 et de s'identifier à l'utilisateur slurm par su - slurm. Il suffit ensuite de définir le trigger avec la commande :
slurm@summit2:~> strigger --set --node --down --program=/usr/local/sbin/slurm_admin_notify
Le script slurm_admin_notify qui se charge d'envoyer un mail à sila lorsqu'un nœud bascule dans l'état Down est le suivant :
1 #!/bin/bash
2 # Submit trigger for next event
3 PATH=/bin:/usr/bin:/usr/local/slurm/bin
4
5 strigger --set --node --down \
6 --program=/usr/local/sbin/slurm_admin_notify
7
8 # Notify administrator by e-mail
9 sinfo --nodes=$* -R -o "%40E %10u %25H %40N"| mail calcul@aero.obs-mip.fr -s "[$(hostname)] NodesDown:$*"
Notez que le script ne s'exécute qu'une seule fois par événement et qu'il doit réarmer le trigger (ligne 5) pour la prise en compte des futurs événements 'nœuds Down'. La ligne 9 s'occupe d'envoyer le mail à sila en insérant dans le corps du message le résultat de la commande sinfo -R appliquée à la liste de nœuds (au format n[X..Y]) passée en argument.
3. Supprimer le trigger d'événement 'nœud Down'
Pour désactiver le trigger précédemment défini, il suffit de saisir la commande :
strigger --clear --id <TRIG_ID>
où <TRIG_ID> est le numéro d'identification du trigger affiché par la commande strigger --get.
