無停電電源装置 APC ES500 を使ってみる

イントラネットで使用するためにPCをサーバーとして使用しているのですが、電源断に何度か見舞われました。
原因は電気の使いすぎでブレーカーが落ちたのですが、再起動時にエラーが出て一瞬あせりました。
定期的にバックアップは取っているものの、再セットアップは大変ですから。
というわけで無停電電源装置をつけることにしました。
やりたいことは
1、停電時に自動的にサーバーをシャットダウンして、電源復帰時に自動的にサーバーの再立ち上げをするように設定したい。
2.サーバーは2台あるので連動してシャットダウンさせたい。
ということです


シャットダウンしたPCを再起動する方法

シャットダウンしたPCを再起動するには、電源ボタンを押すしかなさそうですが、他にも方法があります。
BIOSに依存するので、できるPCとできないPCがありますが、@LANから信号を送って再起動させる A毎日決まった時間に再起動させる B電源復旧とともに再起動させる、などがあります。
今回は停電後の対処なので、電源復旧とともに再起動させる方法を使います。
PCによってはこの機能を持たないものもあるのですが、幸い使用しているPCはこの機能を持っていたので、BIOSをいじってこの機能をONにしました。これで一度電源が落ちた後再通電すれば自動的に起動するようになりました。ただし注意する点はシャットダウンした後通電したままの状態では再起動しないという点です。電源が一度完全に落ちる必要があるわけです。
うまく再起動できなかった時のために、毎日定時に再起動する設定もしておきました。



無停電電源装置の選択

無停電電源装置というものを使ったことが無かったので機種選択に迷いましたが、停電時に自動的にPCをシャットダウン、復帰時に再起動、の機能が必要なので、APC ES500 という機種を試してみることにしました。
最低限の機能があるうちで一番安かったというのが主な理由ではあるのですが…。
機器の接続は次の図のようになります。
なおPCのOSはWindowsXPです。

ES500のバックアップ電源に2台のPCとスイッチングハブを継ぎます。ハブがバックアップされていないと停電時にPC同士の通信ができなくなって連動ができなくなるので、ハブを継いでおくのは忘れずに。
ES500とPCの接続は付属のUSBケーブルで行います。1台のPCとしか継げないので1台しか連動できないのですが、もう1台はLANを使って連動させます。

ES500と各PCの設定

ES500には PowerQute PersonalEdition というソフトが付属しているのですが、このソフトでは1台のPCしか連動させられないのと、ES500のシャットダウンができないので、今回の目的には使用できません。
PowerChuteBusinessEdition という上位バージョンがあるのですが、結構高価なので今回は使用しません。
どうするかというと、ネットをさまよって、フリーソフトを探してきました。
apcupsdをいうソフトです。本来Linux用なのですがWindows用もあってwinapcupsdという名前です。
http://www.apcupsd.org/ からダウンロードできます
今回は最新のwinapcupsd-3.14.6.exeを使用しました。
説明が全て英語なので大変ですが、まあタダで使えるのですから文句は言えません。

【1台で使う場合の設定】

ES500の電源を入れ、付属のUSBケーブルでセットアップするPCと接続しておく。
インスツール
winapcupsd-3.14.6.exe をダブルクリックし後は全てOKしていくだけでインスツール完了、サービスが起動し・タスクバーにコンセントのアイコンが現れる。
設定ファイルの位置は
C:\apcupsd\etc\apcupsd に apcupsd.confがある
メモ帳で開くと改行がされないので(UNIX形式)ワードパットで開くと良い
自動的にUSB接続が選択され、装置名やステータスが取得されている。

バッテリー駆動30秒後にシャットダウン
TIMEOUT 30 ---- 0から30(sec)に変更

バッテリー残量50%でシャットダウン
BATTERYLEVEL 50 ---- 5から50に変更

ES500をシャットダウンするまでの時間設定
KILLDELAY 60 --- 0から60(sec)に変更
ES500ではシャットダウンまでの時間は60秒固定になっているらしく、ここで120とか設定しても60秒でシャットダウンしてしまう

PCにシャットダウン命令を出すと同時にこの命令がES500に送られます。PCのシャットダウンに60秒以上かかるとPCがシャットダウンする前に電源が断たれるということになるわけですが、30秒ぐらいでシャットダウンするみたいなので大丈夫そうです。
今回の設定では停電が30秒以内であればPCのシャットダウンは行われず何事も無かったかのようにPCは動き続けますが、30秒以上の停電があるとPCもES500もシャットダウンされます。


さらに、レジストリエディタで
HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Service / Apcupsd の下にある
ImagePath の値を
"C:\apcupsd\bin\apcupsd.exe" /service から "C:\apcupsd\bin\apcupsd.exe" /service -p に変更 (最後に -pをつける)

マニュアルに書いてある
HKEY_LOCAL_MACHINE / Software / Microsoft / Windows / CurrentVersion / RunService
という項目は見つからない

1台目の設定はこれで終了です
PCを1台だけ継いでES500の電源コンセントを引っこ抜いてみて、30秒後にPCがシャットダウンし、 1分30秒後にES500がシャットダウンすることを確認しました。
もちろん実験は壊れてもいい他のPCで行ったことは言うまでもありません。

====================================================================================

【LANで2台目を連動させる場合】

ES500とUSBケーブルでつながっているPCがマスタに、もう1台がスレーブになります。
マスタ側の設定
上記の設定が終わっていれば後はデフォルトでよい
ファイヤーウォールのTCPポートの3551を開けておくのを忘れずに
マスタのIPを確認しておく。
------------------------------------------------------------------------------------
スレイブ側の設定
winapcupsd-3.14.6.exeをインスツールする。この時ES500は継がない

設定ファイルの編集

LAN接続に変更
UPSCABLE usb を UPSCABLE ether に変更する
UPSTYPE usb を UPSTYPE net に変更
DEVICE を DEVICE 192.168.xx.xx:3551 に変更。192.168.xx.xxはマスタのIP

#POLLTIME 60 を POLLTIME 10 に変更 これで10秒ごとに状態を確認しに行く #を外すのも忘れずに

30秒後にシャットダウンするように設定
TIMEOUT 0 を TIMEOUT 30 に変更

バッテリー残量50%でシャットダウン
BATTERYLEVEL 50 ---- 5から50に変更

スレイブ側のファイヤーウォールは開けなくても大丈夫

タスクトレイにコンセントのアイコンが表示されます。
?のマークが付いている場合は通信できていないので設定を確認します。
設定を変更した場合はapcupsdを再起動しないと反映されません。スタートメニューから一度停止して再起動します。
PCを2台継いでES500の電源コンセントを引っこ抜いてみて、2台ともシャットダウンし、再通電で2台とも再起動することを確認しました。
容量的に2台でぎりぎりみたいです。100%充電時でバッテリーで約10分間バックアップできるみたいです。
====================================================================================

【おまけ】停電時のアラームがうるさいので、鳴らないように設定する


C:\apcupsd\bin
に入っているapctest.exeを使用する
apctestはApcupsdが動いていると起動できないので、まずApcupsdを停止させる
スタート->全てのプログラム->Apcupsd->Stop Apcupsd としてApcupsdを停止させる

apctestはコマンドラインプログラムなのでDOS窓を立ち上げて
cd c:\apcupsd\bin としてディレクトリを移動
apctest と打ち込むと
---------------------------------------------------------------------------------

C:\apcupsd\bin>apctest

2009-06-05 apctest 3.14.6 (16 May 2009) Win32
Checking configuration ...
Attached to driver: usb
sharenet.type = DISABLE
cable.type = USB_CABLE

You are using a USB cable type, so I'm entering USB test mode
mode.type = USB_UPS
Setting up the port ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing USB UPSes.

Getting UPS capabilities...SUCCESS

Please select the function you want to perform.

1) Test kill UPS power
2) Perform self-test
3) Read last self-test result
4) Change battery date
5) View battery date
6) View manufacturing date
7) Set alarm behavior
8) Set sensitivity
9) Set low transfer voltage
10) Set high transfer voltage
11) Quit

Select function number:

---------------------------------------------------------------------------------
こんな感じでメニューが出る
7を選ぶと
---------------------------------------------------------------------------------
Select function number: 7

Current alarm setting: ENABLED
Press...
E to Enable alarms
D to Disable alarms
Q to Quit with no changes
Your choice: Select function:
---------------------------------------------------------------------------------
Dを選ぶと
---------------------------------------------------------------------------------
Your choice: Select function: d

New alarm setting: DISABLED

1) Test kill UPS power
2) Perform self-test
3) Read last self-test result
4) Change battery date
5) View battery date
6) View manufacturing date
7) Set alarm behavior
8) Set sensitivity
9) Set low transfer voltage
10) Set high transfer voltage
11) Quit

Select function number:
---------------------------------------------------------------------------------
となってアラーム停止できる

同じようにして、Sensitivity、Low transfer voltage、high transfer voltage も設定できる
設定が終わったら
スタート->すべてのプログラム->Apcupsd->Start Apcupsd
でApcupsdを再起動



TOPに戻る
2009/6/6