J’ai un MGE Ellipse 600 avec une batterie auto 12 V DC classique : un bricolage qui marche bien.
Je dois m’assurer que mon onduleur est bien configuré dans ma Buster serveur.
Puisque je vais probablement laisser le serveur allumé plus souvent et plus longtemps, la fonction UPS est indispensable.
J’ai la crainte qu’un processus bloque la séquence d’arrêt et me contraigne à forcer l’arrêt, par l’appui long sur le bouton (la pire des choses) ou de préférence avec l’emploi de la séquence REISUB ou plutôt REISUO
J’ai passé des moments avec plusieurs documentations pour aboutir à quelque chose qui devrait encore fonctionner mais c’est tellement essentiel à mes yeux que je souhaite vérifier tout ça du début à la fin.
Je suis pas sûr de comprendre ta question, tu veux checker si la séquence de shutdown s’exécute correctement c’est ça? Peut-être que cette doc pourrait t’intéresser si c’est le cas.
C’est un peu normal que tu ne sois pas sûr de comprendre ma question car j’en ai pas réellement posé.
Je me souviens avoir eu des difficultés de compréhension lors d’une ou deux étapes de la configuration et en même temps cela fait si longtemps.
Je vais faire comme si la configuration avait été faite par un autre et tout vérifier à l’aide des tutos disponibles.
Je reviendrai poser des questions si besoin.
Merci pour le lien.
Bien sûr que je veux voir si la séquence de shutdown s’exécute correctement.
Je crois me souvenir qu’elle s’exécute un peu rapidement.
rem@n40l:~$ sudo /usr/local/sbin/upsdrvctl -t shutdown
[sudo] Mot de passe de rem :
sudo: /usr/local/sbin/upsdrvctl : commande introuvable
rem@n40l:~$ locate upsdrvctl
/sbin/upsdrvctl
/usr/share/man/man8/upsdrvctl.8.gz
rem@n40l:~$ sudo /sbin/upsdrvctl -t shutdown
Network UPS Tools - UPS driver controller 2.7.4
*** Testing mode: not calling exec/kill
0.000000
If you're not a NUT core developer, chances are that you're told to enable debugging
to see why a driver isn't working for you. We're sorry for the confusion, but this is
the 'upsdrvctl' wrapper, not the driver you're interested in.
Below you'll find one or more lines starting with 'exec:' followed by an absolute
path to the driver binary and some command line option. This is what the driver
starts and you need to copy and paste that line and append the debug flags to that
line (less the 'exec:' prefix).
0.000399 Shutdown UPS: MGE600
0.000438 exec: /lib/nut/usbhid-ups -a MGE600 -k
rem@n40l:~$
.
rem@n40l:/etc/nut$ sudo grep shutdown *.conf
ups.conf:# a UPS from the shutdown sequence, set this to -1.
upsmon.conf:#SHUTDOWNCMD "/sbin/shutdown -h now"
upsmon.conf:NOTIFYMSG SHUTDOWN "System is being shutdown!"
upsmon.conf:# "master" means this system will shutdown last, allowing the slaves
upsmon.conf:# time to shutdown first.
upsmon.conf:#SHUTDOWNCMD "/sbin/shutdown -h +0"
upsmon.conf:# disconnect once it has set the forced shutdown (FSD) flag. If they
upsmon.conf:# to a low battery condition. This may force a shutdown if it is providing
upsmon.conf:# POWERDOWNFLAG - Flag file for forcing UPS shutdown on the master system
upsmon.conf:# your shutdown scripts and run 'upsdrvctl shutdown' if it exists.
upsmon.conf:# See the shutdown.txt file in the docs subdirectory for more information.
upsmon.conf:# NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
upsmon.conf:# NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
upsmon.conf:# NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
upsmon.conf:# FSD : UPS is being shutdown by the master (FSD = "Forced Shutdown")
upsmon.conf:# SHUTDOWN : The system is being shutdown
upsmon.conf:# NOPARENT : The process that shuts down the system has died (shutdown impossible)
upsmon.conf:# battery and will require a value of 0 here for a safe shutdown.
upssched.conf:#AT ONBATT * START-TIMER earlyshutdown 10
upssched.conf:#AT ONLINE * CANCEL-TIMER earlyshutdown
rem@n40l:/etc/nut$
C’est un vrai bazar ! Tout semble commenté…
J’ai repris une des commandes du lien proposé par ttufekk mais il y a tellement de parties commentées dans les /etc/nut/*.conf que cette deuxième partie est inutile.
Je trouve une espèce de doublon pour la commande d’arrêt dans l’ensemble de la configuration.
Dans /etc/nut/upsmon.conf il y a une directive SHUTDOWNCMD
Elle est mise à "/bin/systemctl poweroff -i -f" dans mon serveur.
Et dans /bin/upssched-cmd il y a un appel à upsmon -c fsd après le dernier timer.
NOTE : upsmon -c fsd éteint électriquement mon onduleur pendant une poignée de secondes.
C’est pas une bonne affaire pour l’équipement qui y est relié !
Pourquoi avoir deux commandes d’arrêt différentes ?
Laquelle va être utilisée ?
Il devrait être possible d’utiliser sudo /sbin/upsdrvctl shutdown également.
Plus loin, au terme de ma recherche et de l’expérimentation,
je choisis de revenir sur upsmon -c fsd comme commande d’arrêt.
Je pense que c’est probablement la meilleure manière pour ne pas subir de blocage avant l’arrêt.
La directive SHUTDOWNCMD ne semble plus servir.
Je n’avais pas testé depuis que j’ai changé le bloc d’alimentation.
Fin 2018, je suis passé de la 150 Watts d’origine à une de 350 Watts neuve.
Mon onduleur 600VA / 360 W ne supporte pas la charge que je lui demande.
Je dois la diminuer avant de retester, quitte à laisser seulement le serveur.
Si la configuration est bonne ce serait suffisant pour le protéger.
Quand je coupe l’alimentation de l’onduleur, le serveur gèle et les connexions SSH sont gelées.
Les voyants du serveur continuent d’être allumés et de clignoter comme si de rien n’était.
Et l’écran passe en veille aussitôt.
Quand je rebranche l’onduleur, le serveur se réinitialise mais mal. Figé au premier écran du BIOS.
Je dois appuyer brièvement sur le bouton pour qu’il s’éteigne.
Je vais placer des charges sur mon deuxième onduleur.
Mes deux écrans, mon transportable, le routeur AP Wifi et le switch.
L’onduleur supporte la charge du serveur seul.
Les timers ne se cumulent pas dans l’exemple ci-dessous.
root@n40l:~# tail -f /var/log/syslog
...
Jan 22 15:26:48 n40l upsmon[920]: MGE600@127.0.0.1 is on battery
Jan 22 15:26:48 n40l upssched[1553]: Timer daemon started
Jan 22 15:26:48 n40l upssched[1553]: New timer: onbat60 (60 seconds)
Jan 22 15:26:48 n40l upssched[1553]: New timer: earlyshutdown (90 seconds)
Jan 22 15:26:48 n40l upssched[1553]: New timer: onbattwarn (120 seconds)
Jan 22 15:27:48 n40l upssched[1553]: Event: onbat60
Jan 22 15:27:48 n40l upssched-cmd: Système sur onduleur (onbat60)
Jan 22 15:27:48 n40l upssched-cmd: Exécution de /usr/local/bin/stoptout.sh
Jan 22 15:28:18 n40l upssched[1553]: Event: earlyshutdown
Jan 22 15:28:18 n40l upssched-cmd: Système sur onduleur (earlyshutdown 90)
Jan 22 15:28:48 n40l upssched[1553]: Event: onbattwarn
Jan 22 15:28:48 n40l upssched-cmd: Arrêt système avec : upsmon -c fsd (onbattwarn 120)
Jan 22 15:28:48 n40l upsmon[920]: Signal 10: User requested FSD
Jan 22 15:28:48 n40l upsd[913]: Client admin@127.0.0.1 set FSD on UPS [MGE600]
Jan 22 15:28:48 n40l upsmon[920]: Executing automatic power-fail shutdown
Diffusion de message de nut@n40l (somewhere) (Fri Jan 22 15:28:48 2021) :
Executing automatic power-fail shutdown
Jan 22 15:28:48 n40l upsmon[920]: System is being shutdown!
Connection to n40l closed by remote host.
Connection to n40l closed.
rem@n73sm ~ $