APC社の UPS Smart 700J による自動シャットダ ウン

停電が起こると自動的にシャットダウンし、 復旧すると自動的に起動するように、 UPS(無停電電源)の設定を行います。


結線

UPS ソフト Power Chute に付属の黒いケーブルがあります。 これを一方を UPS の裏面左上に繋げ、 もう一方を PC のシリアルポートに繋げます。
(このあと、再起動が必要なのかな?)

upsd のインストール

  1. FreeBSD の ports コレクションにも sysutils/upds というのがありますが、 これは日本の商用100Vには対応していないようです。 100V用に変更されたソース

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

    を取って来ます。

  2. 適当な場所で展開し、移動します
    % tar zxvf upsd-2.0-100v.tar.gz
    % cd upsd-2.0

  3. Makefile を好みに合わせて変更します。例えば、 upsd というデーモンを /etc/upsd にインストールするという記述
    install -c upsd /etc/upsd
    ですが、これがなくても upsd は /usr/local/sbin にインストールされま すので、コメントアウトしておきます。
    # install -c upsd /etc/upsd

  4. make して make install します。
    % make
    % su
    Password:
    # make install

  5. インストールされるのは、次のものたちです。
    upsd -> /usr/local/
    upsd.conf -> /etc/upsd.conf
    upsd.restart -> /etc/upsd.restart

upsd.conf の編集

upsd の機能を設定するファイルは /etc/upsd.conf です。 このファイルの記述を変更することにより、 upsd をカスタマイズできます。 例えば、

on "batteries-low" after 3 {
-> on "line-fail" after 120 {

とします。変更前は 「low batteries から3秒後にダウンする」 の意味です。low batteries 状態とは、 「tune "low-batteries-duration" 2」 で定義していて ここでは「バッテリー残量が2分ぶん」ということです。 変更後は 「電源供給切れから2分後にダウンする」の意味です。

また、次の箇所は 100V の Smart 700J ではいらないようですので、 コメントアウトしておくのもよいでしょう。
# tune "nominal-voltage" 100
# tune "wakeup-batteries-capacity" 15
# tune "label" "WildWind"

upsd のテスト I

upsd のテストをするときは、PC の電源を UPS 以外から取った方が 安全でしょう。

  1. まず、upsd を起動します。
    # upsd

  2. UPS の電源ケーブルをコンセントからいったん抜き、 また差します。 コンソールに次のような警告文が出ればOKです。
    Message from syslogd@host_name at [Date] ...
    host_name upsd[xxxxx]: *** ALERT! Source power line failed, logout Now! ***

    Message from syslogd@host_name at [Date] ...
    host_name upsd[xxxxxx]: Source power line restored, you may continue your work.
    もちろん、最初の文が「電源が落ちたよ。すぐ logout して。」で、 次が「電源回復したよ。仕事続けられるよ。」です。

  3. それぞれのメッセージの2行目は、/var/log/messages に記録されて いるはずですので、確認して見ましょう。

upsd のテスト II

自動シャットダウン

upsd の振舞は、/etc/upsd.conf で決定されます。 デフォルトのままでは、電源供給が切れてから自動シャットダウンに 至るまで結構時間がかかると思いますので、 適当に変えてからテストするのがよいでしょう。
on "line-fail" after 120 {
-> on "line-fail" after 10 {

自動ブート

PC が ATX 電源を使用している場合は、供給電源が復旧しても 自動的にはブートしません。これは、「供給電源ON=起動スイッチON」 ではないからです。この場合は、BIOS で設定できることがあります。
  1. BIOS の「起動」の設定
    「起動」の項目には「ON」「OFF」「AUTO」の3種類があるそうです。
    • 「ON」: 供給電源 ON 時にスイッチ「ON」から始める
    • 「OFF」:供給電源 ON 時にスイッチ「OFF」から始める(デフォル ト)
    • 「AUTO」:供給電源 ON 時に供給電源 OFF 時の状態に戻す
      起動スイッチが「ON」だったら「ON」に、「OFF」なら「OFF」にする
    これらのうち、「ON」か「AUTO」を選択します。 「AUTO」の場合は次に進みます。
  2. BIOS の「電源」の設定
    • 「有効」:シャットダウン後に電源OFF する
    • 「無効」:シャットダウン後に電源OFF しない
    「無効」を選ぶとよいそうです。
とある BIOS では次のようにするとうまくできるそうです。。。 が、うちのはまだちゃんとできてません。

BIOS Setup
Power
Power Up Control
AC PWR Loss Restart を Enable に

upsd の自動起動

システムを起動したときに upsd を自動的に起動するには、 /usr/local/etc/rc.d の下に、upsd.sh というファイルを作って、 以下の内容を書いておきます。

#!/bin/sh
[ -x /usr/local/sbin/upsd ] && echo -n ' upsd' && /usr/local/sbin/upsd

作ったら、実行許可を出しておきます。
# chmod +x upsd.sh

参考サイト


FreeBSD の部屋


Apr. 17, 2001