停電時の自動シャットダウン のバックアップ(No.1)

更新


公開メモ

目的

USP の必要性

WindowsXP で動いているファイルサーバーマシンがあり、 その筐体内にRAIDを組んだHDDが複数台積まれています。

RAIDはHDDの物理的な故障からデータを守るために組んでいる 物で、ある一台が急に動かなくなると言うような故障が生じても データが失われる事はないのですが、一方で論理的な故障には めっぽう弱いという特徴があります。

例えば停電やブレーカーが落ちるなどの原因で、データの書き込み 途中にPCの電源が落ちると、その他の部分も含めて、HDD内の データがまるごと失われてしまうような危険性があります。

そこで、無停電電源装置(UPS)を購入してデータを守る事に しました。

安全な電源断

UPSは中にバッテリーを持っています。

通電時にこのバッテリーを充電しておき、停電時にはバッテリーから PCへ電力を供給することで、いきなりPCの電源が落ちるという 不幸を避けることができます。

このUPSのバッテリーが空になるまでの時間を使って PCを安全にシャットダウンしたいというのが今回の目的です。

状況

  • ユタカ電機製作所のUPS:UPSmini500 YEUP-051MA
    • 最大電力 300W で 5 分間の動作が可能
    • 90W なら1時間くらいまでOK
    • RS-232c ポートを利用して停電/通電および低バッテリーを通知する機能を持つ
  • Linux マシンとWindowsXP マシンが一台ずつ繋がっている
    • 基本的にどちらもサーバー用途で常時通電
    • Linux マシン:Atom を使った省電力サーバー 〜 60W (シリアルポートを持つ)
    • WindowsXP マシン:ファイルサーバー 〜 110W (シリアルポートを持たない)
  • LAN用のハブもUPSに繋がっている 〜 10W ?
+--------+
|  UPS   | - - +
+--------+     :  似非 RS-232c ケーブル
  | 電 |       :
  | 源 |       :
  | ケ |     +---------+
  | ー +-----|  Linux  |
  | ブ       +---------+
  | ル         : LAN
  |            :
  +----------[hub]
  |            :
  |          +---------+
  +----------|  WinXP  |
             +---------+

期待する動作

Linux マシンでUPS状態を常時監視

停電したらすぐに

  • WinXP マシンをシャットダウン

さらに、バッテリー残量が10%を切ったら

  • Linux マシンもシャットダウン

電源が復帰したら

  • WinXP・Linux とも電源ON

Linux マシンでUPS状態を常時監視する

ユタカ電機でソフトウェアを配布している ので、これを使う。

ちなみに、Linux のディストリビューションは Debian (lenny)

Language:shell

# mkdir yec
# cd yec
# wget http://www.yutakadenki.jp/support/downloadfile/linux/yec.tgz
# tar fxz yec.tgz
# ls
usvd-2.0.1  yec.tgz
# cd usvd-2.0.1/
# which g++
/usr/bin/g++
# make
gcc -Wall   -c -o usvd.o usvd.c
gcc   usvd.o   -o usvd
gcc -Wall   -c -o usv_off.o usv_off.c
gcc   usv_off.o   -o usv_off
# ls
COPYING   README  etc         usv_off    usv_off.o  usvd.c    usvd.o
Makefile  doc     readme.ecn  usv_off.c  usvd       usvd.lsm
# cp usvd usv_off /usr/local/sbin/
# cd /etc

Counter: 19201 (from 2010/06/03), today: 1, yesterday: 0