Nut and RAID on FreeBSD 7.0

Derrick Ryalls ryallsd at gmail.com
Thu Jan 10 11:40:49 PST 2008


>
> Greetings,
>
>  I have a RAID fileserver plugged into a UPS and nut is able to
>  communicate with it successfully.  With the winds making the lights
>  flicker, I started looking into having the computer shut down when
>  power goes out for more than say 5 minutes or so.  Looking at the
>  documentation, I found that the 'true' solution is more like the
>  system goes into a safe state when the battery gets low, then the ups
>  eventually dies.  When power is restored, the UPS and computer are
>  supposed to both come back to life.  This would be a great system to
>  have in place, but it does sound a bit risky and so may not be worth
>  doing just to save my home fileserver.
>
>  The instructions and the conf file have the shutdown command of
>  'shutdown -h +0' which will halt the system.  The man page for halt
>  says the the disk cache will be flushed, but doesn't mention anything
>  about going to read-only or anything.  I suppose my first question is
>  whether or not flushing the cache is sufficient to save the RAID (5)
>  array, or if I need to find a way to get the file systems into read
>  only mode?
>
>  The second question has to do with a rc.d script that nut recommends
>  creating.  The script does a 'upsdrvctl shutdown' and then a sleep
>  120, basically waiting for the machine to die while in the script.
>  Won't this block the other rc.d scripts?  Also, is this the magic part
>  that enables the machine to auto power up when power is restored?
>
>  Changing the shutdown command in nut to 'shutdown -p +0' looks like
>  the sure fire way to get the system down clean before the power is
>  lost, but if my concerns are not valid, then I could be missing out on
>  some nice functionality for no reason.
>
>  Does anyone have experience with this?
>  I have my servers all using nut to safely shutdown.  My configuration is
> the servers are set up with one as master for nut, that master connected to
> the UPS.  The other servers are slaves and get their nut information from
> the master.
>
>  My setup has the servers wait until the UPS is on low battery, then they
> all shutdown.
>
>  As a separate part of the setup, the servers are set in their BIOS to power
> on, after a power failure.  This is in the BIOS power setup.
>
>  So if there is a minor power problem, the servers run from battery.  In a
> larger power outage, they are shutdown cleanly once the battery level is
> low, and power up automatically once power is restored.
>
>  In my upsmon.conf file I have this:
>  SHUTDOWNCMD "/sbin/shutdown -h +0"
>
>  If you want more specifics, I can look through the configuration files and
> email you relevant settings.
>

After doing more reading, I am confident that a shutdown -h would be
sufficient, but am a bit concern on the order of operations.  The nut
documentation has a recommendation to add a kill script as such:


#!/bin/sh

if [ "$1" == "stop" ]
then

        if [ -f /etc/killpower ]
        then
                echo "Killing the power, bye!"
               /usr/local/libexec/nut/upsdrvctl shutdown

                sleep 120
        fi
fi

</copy>

Even if I name this zz_killpower.sh to make it run last, depending on
how long it takes FreeBSD to flush the cash after all rc.d scripts are
run, I could end up doing a dirty power down, right?  Without this, if
the power does come back while before the battery finally dies, the
system won't restart since the power was never fully interrupted at
the computer side?

>  As far as my experiences using nut with RAID and different setups if the
> shutdown command works from a command line, it will work the same from nut.
>
>  I would also suggest you test your setup.  Pull the plug on your UPS and
> watch what happens.

I absolutely will do a full test as such before I put full faith in
the setup, but I want to first minimize the chance of me destroying
the file system during the test.

>
>  Also you should employ other monitoring systems and scripts, should a
> system not reboot correctly, you do want to know that quickly.
>
>          -Derek


More information about the freebsd-questions mailing list