このサイトを構築するに当っては、お便利サーバーさん http://www.obenri.com/ を参考にさせて頂きました。ありがとうございます。参考にしたというよりは、ほとんどその通りに構築したといった方がいいかもしれません。ただ、私も、長年ITに携わった意地というわけではありませんが、何事につけ自分で試さなければ気がすまないという性格をしておりますので、他のやり方も試しました。しかし、結局お便利サーバーさんがベストだということが多く、やり方を変えたところは数えるほどしかありません。従って、サイトの構築に関しては、お便利サーバーさんに付け加えたことや、あえてやり方を変えたことを書かせて頂きます。
私は、企業のシステム管理を行った経験から、公開サーバーには、DMZ、ディスク・アレイ、無停電装置、バックアップは必須という固定観念を持っていました。しかし、調べてみると、DMZを備えているルーターに普及品はなく、高級なVPNルーターしか見つかりません。また、ディスク・アレイを備えたサーバー機は、数十万円します。無停電装置は、普及品だったら1万円程度で手に入るし、Windows用の管理ソフトは無償です。しかし、Linux用の管理ソフトは、数万円もします。
初っ端から、道具立ての選定でつまづいたわけですが、お便利サーバーをよく読むと、最初の二つの解答は書いてありました。それに従い、ルータはDMZをあきらめて、ポートフォワーディング機能の付いた無線ルーターを購入しました。また、サーバ機は、Dellでは最も安い PowerEdge T100 を購入し、CentOS5をRAIDでインストールしました。ただし、現在は論理ボリュームが主流のようなので、/boot以外は論理ボリュームにしました。
無停電装置に関しては、その名もズバリapcupsdという無償のソフトを見つけました。http://www.apcupsd.com/ を見ると、“Apcupsd can be used for power mangement and controlling most of APC's UPS models on Unix and Windows machines.”と自信たっぷりに書いてあるので、管理ソフトはこれでいけるだろうと判断しました。当然、無停電装置は、APC製になります。APCには、コストパーフォーマンスに優れたES500があります。容量に多少不安がありましたが、その上位機種ES750は、容量が1.5倍しかないのに実売価格は2倍になるので断念しました。
apcupsdのインストールは比較的簡単でした。当然、UPSは、常時稼動しているLinux ServerにUSBでつなぎます。従って、Linux Serverのapcupsd.confの設定はほぼデフォルトのままでいけます。Windows Clientは、LANを介しLinux ServerからUPSの情報を取得するので、apcupsd.confは下記の2行を変更する必要があります。
| UPSTYPE net DEVICE 192.168.xxx.xxx:3551 |
192.168.xxx.xxxは、Linux ServerのIPアドレスです。UPSCLASSは、両方ともstandaloneのままにして下さい。この設定が必要だと書いてあるサイトもあるのですが、apcupsd.confには“Normally standalone unless you share an UPS using an APC ShareUPS card.”との注があり、LANで情報を共有するときは、この設定を変えると動きません。そのサイトの記事はかなり古かったので、仕様が変わったのかもしれません。ネットで検索した場合は、古い記事には要注意です。
テストのため電源ケーブルを引き抜いたら、LinuxもWindowsも自動的にシャットダウンしてくれました。しかし、Linixが時々UPSを認識しなくなるのです。キーボードやマウスやプリンターではそんなことは起こらないので、BUGじゃないかと思い APC Japan にメールしました。そしたら、『ES500はLinuxでの動作を保証していません。Windowsにつながらなかったら連絡してください。』という返信がありました。ちょっとムカッときましたが、あきらめてネットで解決方法を検索しました。しかし、なかなか見つかりません。
ひょっとして見逃したのではないかと思い http://www.apcupsd.com/ のオンラインマニュアルを見直したら“Known Linux USB Issues”で見つかりました。そこには問題点とその回避方法がいくつか並んでいるのですが、最初の方はRHEL3という古いディストリビューションの問題点が並んでいるので、CentOS5には関係ないと思い読み飛ばしていました。しかし、その最後にCentOS5も使っている Linux 2.6 kernels に関する注意書きがあったのです。マニュアルはちゃんと読まなあかんなと反省するとともに、マニュアル(特に英語のマニュアル)を読むのが嫌いなやつもいるんだから、kernelsの新しいものから順番に並べるくらいの親切心があってもいいんじゃないのと思ってしまいました。
指示通りに、/etc/udev/rules.d/50-udev.rules に下記のルールを追加したら、ちゃんとUPSを認識し、それ以来問題なく稼動しています。
| KERNEL="hiddev*", NAME="usb/hiddev%n" |
追伸
現在、ES500はには、Linuxサーバー、Windowsクライアント、モニター2台、USBディスク、光モデム、Voipルーター、無線ルータ、ドアフォンアダプター、FAX電話親機がつながっています。これだけつないでも、Apctrayで確認すると、10分程度持つようです。10分持てば、短時間の停電やブレーカーが上がる等の事故にも対応できますし、回復に時間がかかる場合も自動シャットダウンの間は十分持つので、実用に耐え得ると思います。