Citeren Thomas Gutzler <[email protected]>:
My setup is this: I have 6 computers on 2 UPSs (3 each). Boths UPSs have
equal power ratings but the load on the slave is less. They are both
connected to and monitored by the same computer (I call it monitor); one
UPS is configured as master (the one with the monitor on it) and the
other is configured as slave. The computers connected to slave should
shut down first because they're nfs mounting from one of the computers
on the master UPS.
Assuming that the master runs out of battery first, my understanding is
that I could catch the master's LOWBATT notice and use it to shut down
the computers on the slave (via ssh <host> poweroff) and then catch the
master's FSD to shut down the computers on the master excluding the
monitor because that one is brought down last (to runlevel 0) by upsmon
executing SHUTDOWNCMD. Is there a smarter way doing it - perhaps setting
sdorder?
There is. You can do this much better entirely in the upsmon.conf
files on the various systems, without having to write your own
shutdown scripts. The trick is that there should be one decision
moment when it is time to commence shutting down of *all* systems.
Otherwise you risk that if the power returns before all systems go
critical, some of them won't shutdown and others that have already
started shutting down, won't be restarted. You don't want that if this
happens at 3am...
The most convenient location to do this, is on the system that is
attached to the UPS'es. System controlling the UPS'es (monitor):
MONITOR u...@localhost 1 monmaster blah master
MONITOR u...@localhost 1 monmaster blah master
MINSUPPLIES 2
FINALDELAY 5
System running the NFS:
MONITOR [email protected] 1 monslave blah slave
MINSUPPLIES 1
FINALDELAY 120
All other systems:
MONITOR [email protected] 1 monslave blah slave
or
MONITOR [email protected] 1 monslave blah slave
MINSUPPLIES 1
FINALDELAY 5
The above will initiate the shutdown sequence when either of the two
UPS devices goes critical (On Battery and Low Battery at the same
time). The NFS system will wait 120 seconds before the SHUTDOWNCMD is
sent, all others will do so after 5 seconds (which means that they
have almost two minutes before the NFS will shutdown).
Note that you need a fairly long 'offdelay' for at least 'ups1', since
the monitor system will start the shutdown sequence long before the
NFS will. The minimum time needed, is the time it takes to shutdown
the NFS + 120 seconds in this example. You can prevent the risk of
'ups1' shutting down before the NFS is ready to lose power, by running
the monitoring from the NFS system. Generally, the system that needs
to be powered longest should run the master upsmon(s). In that case,
an offdelay of a couple of seconds is sufficient.
You'll want to guarantee that there is ample of power left when the
systems start shutting down (because there is a substantial delay
between that and the actual shutdown), so set the 'battery.charge.low'
not lower than something like 50% and also the restart level to the
same (although not all UPS devices support the latter).
To make sure both UPSs shut down, I write a shutdown script for runlevel
0 which checks for the existence of POWERDOWNFLAG, runs upsdrvctl
shutdown for all UPSs and possibly a shutdown -P now. Fortunately,
ubuntu comes with such a script (K50nut) but it has to be executed with
the parameter 'poweroff', not 'stop'. So, am I supposed to write a
shutdown script /etc/rc0.d/K99upspoweroff that calls '/etc/rc0.d/K50nut
poweroff'?
Not if you use the above upsmon configuration, assuming that the
people of Ubuntu created a proper shutdown script.
What's left but not necessary is to make sure that 'Interval to wait
after shutdown with delay command (seconds)' on my master UPS is long
enough for the monitor to power off properly after being halted.
By the time 'upsdrvctl shutdown' runs, all systems should be ready for
loss of power. Most already will have powered off already, but you'll
want to make sure that the controlling systems doesn't shutdown before
the NFS system. In order to be able to restart if the power returns in
the mean time, 'ondelay' must be higher than 'offdelay'.
Best regards, Arjen
--
Please keep list traffic on the list
_______________________________________________
Nut-upsuser mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser