Configuration pour remote shutdown

Ce qu'il faut installer pour permettre le shutdown du NAS

 


 

PRINCIPE DE FONCTIONNEMENT

 

Les NAS Synology s'arrêtent avec la commande /sbin/poweroff.

Cette commande doit être lancée sur chacun des Synology du Cluster.

Cette commande ne peut être lancée que par root, c'est à dire par admin avec un sudo.

Après divers essais infructueux (même constat sur les forum) la manière la plus simple est de demander aux NAS de faire eux-même un poweroff lors qu'un élément déclencheur est présent.

La technique est simple: un cron sur le synology teste chaque minute la présence du fichier /gls/PowerOffFile (/volume1/export_gls/PowerOffFile vu du synology). Si ce fichier existe, le systeme attend une minute, supprime le fichier et effectue un poweroff.

Comme notre système est un Cluster, le fichier (le déclencheur) /gls/PowerFile doit être créé 2 fois. Une fois pour être traité par le active server, puis une seconde fois par le passive server.

L'attente de 1 minute est faite pour la raison suivante:

Une fois le synology down, tout les computers sont bloqués car ils montent tous les disques du synology. Ainsi l'ordinateur qui ordonne le shutdown du NAS (normalement glsserv) ordonne d'une manière plus générale le shutdown de l'ensemble des ordinateurs de la station, dont lui-même. Ainsi, la machine responsable du shutdown descend le premier Synology en créant le fichier declencheur, une fois terminé elle crée un nouveau fichier déclencheur et effectue un init 0 (shutdown) sur elle-même. Ce shutdown se fait normallement en moins d'une minute avec un NAS actif. Côté NAS, une fois la minute passée, (et à ce moment c'est le dernier ordinateur vivant dans la station), le NAS fait un poweroff et s'arrête. Tout les ordinateurs de la station sont normalement éteints à ce moment.

 


 

INSTALLATION

 

Il faut installer le script suivant sur le NAS dans /usr/local/bin/T_glsSynoPowerOff. Donc login sous admin:

FILE=/volume1/export_gls/PowerOffFile
if [ -r $FILE ] ; then
echo "Arret machine dans 60[s]"
sleep 60
rm $FILE
/sbin/poweroff
fi

Le crontab de root sur le NAS doit être mis à jour. La commande crontab n'existe pas ainsi il faut éditer le fichier /etc/crontab:

Contenu d'origine:

MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#minute       hour    mday    month   wday    who     command
0     0       1       *       *       root    /usr/syno/bin/syno_disk_health_record
0     4       *       *       1       root    /usr/syno/bin/synodatascrub ........
0     0       26      *       *       root    /tmp/synoschedtask --run id=1
0     0       10      */6     *       root    /tmp/synoschedtask --run id=3

On rajoute

*	*	*	*	*	root	/usr/local/bin/T_glsSynoPowerOff  

Après ces 2 opérations, si le fichier /gls/PowerOffFile est crée, le NAS s'arrête dans les minutes qui suivent. Il faut noter que seul  root peut fabriquer le fichier /gls/PowerOffFile.

Remarque: le fonctionnement des NAS en cluster fait que ces installations n'ont à se faire que sur le active server qui seront dupliquées immédiatement sur le passive server.

 


 

UTILISATION

 

Le séquencement des opérations pour descendre le SynologyCluster et la machine responsable de l'arrêt des ordinateurs selon les principes énoncés ci-dessus est fait par le script:

T_shutdown_NAS_synology

On le lance normalement sous root sur glsserv dans le scripts T_shutdown_euler