FreeBSD 3.3RELEASEで使うUPS

APC Smart-UPS 700JをFreeBSDで使ってみました。

http://www.ysyslab.co.jp/~kondo/upsd-2.0-100v.tar.gz

を取ってきて

tar zxvf upsd-2.0-100v.tar.gz
cd upsd-2.0-100v
make
su -
make install
でインストールはおしまい。

/etc/upsd
/etc/upsd.conf

がインストールされる。upsd.confをいじると挙動が変わりますが
特別いじらないでこのまま利用します。

ケーブルは付属の黒いやつ(940-0024C)をそのまま使います。

/etc/upsd

とするとupsdが動き出しますので、テストしましょう。

おもむろにUPSの電源ケーブルをコンセントから抜くとコンソールに

Message from syslogd@dns at Tue Jul 25 21:19:22 2000 ...
dns upsd[43068]: *** ALERT! Source power line failed, logout NOW! ***

とお知らせが来ればちゃんと動いています。コンセントに再度プラグ
をさせば

Message from syslogd@dns at Tue Jul 25 21:19:22 2000 ...
dns upsd[43068]: Source power line restored, you may continue your work.

と「電気が復活したよ」と知らせてくれます。

ここまで動けば

ln -s /etc/upsd /usr/local/etc/rc.d/upsd

とboot時にupsdを動かすように設定しておけばよいです。

ホントの停電になったときはどういう挙動を示すかと言うと・・・

  1. 電源が切れたとsyslogdがお知らせ。
  2. 電源容量がある一定以下になるとshutdown処理
  3. その後ホントに電源断
  4. 電源が復旧したら電源容量がある一定以上になるまで充電。
  5. 十分マシンをドライブできるだけ充電されたら電源を供給開始
  6. めでたしめでたし

となるわけです。

ここで注意・・・ATマザーの計算機は電源スイッチ=ハードウェアスイッチ
なので問題なしなのですが、ATXマザーはソフトウェアスイッチなので

(ASUS CUBX/P3BF等の場合)
BIOS Set up
Power
Power Up Control
AC PWR Loss Restart を Enableにしておかないと、電源が復旧して
UPSがちゃんと働いても再起動をしません。

【おまけ】

APC SmartUPS 1400でもまったく同じに利用できました。が・ShareUPS
UPS Interface Expander(一台のUPSに複数のRS232Cケーブルをつなげ
て複数台の計算機を制御するためのもの)のBasic Ports Shutdownはどう
しても使えませんでした。

あとは /etc/upsd.conf中にコメントアウトしてあるように rsh(ssh)でも使って
リモートマシンへshutdownを送って複数台の計算機を安全にshutdown -h now
すれば良いでしょう。