サウンドハウスに注文していたUPSが届いた。以前クマ掲示板では報告したけど、ぱぱサーバのUPSは2回の電池交換の後に壊れてしまい、ずーっとUPSなし運用であった。そして 11日の大停電であえなくDBが壊れてしまい 復旧に手間取ったので、仕方なく購入。みんなの知らないところで苦労しているのよ、これでも。
まあ........安物でいっかと思ったわけで、その意味では仕方ないことなのだが、
とかはカナリ想定外であった(^^;....さすがにAPCやOMRONのUPSは全てクリアしているよ。なので上記のような問題がある、ということは、買うまで気にもしなかった。特にまぶしいのがけっこう狭い部屋では辛い(笑)検討している方は注意を。
ソフト的にはこの安物UPSはOMRONよりずっと素直。OMRONは何をケチったのかUSBになった後も素直なシリアルデバイスのUSBエミュレーションではなく、RTSに相当する信号線を独自の通知に使ったりする謎仕様であり、最新のLinux OSでは制御するのは難しかった(※もちろん俺比で)のである。つーかOMRON添付のソフトめちゃくちゃ古くて萎えたというのが正解か。
ところがClassic PRO UPSは....
# lsusb Bus 001 Device 003: ID 0001:0000 Fry's Electronics
「ベンダーID0001ってなんだよ」 というセルフツッコミはあるものの海外産の日本仕様品であり、このベンダーも単純にmegatecのOEMのようであるから、制御はNetwork UPS Tools を使うことで比較的簡単にできた。そのmegatecの制御コマンドも、
# ldd /lib/nut/megatec_usb libusb-0.1.so.4 => /lib/libusb-0.1.so.4
ということであるから、お馴染みのlibusbを使ってユーザランドから叩いているだけであり、 USBシリアルデバイスの認識を除き、カーネルバージョンに依存しない! 散々叩いたが、こういう部分は魅力的。
Debian squeezeならパッケージが用意されているのでインスコ自体は一発である。
# apt-get install nut
しかしsqueezeだからなのか、Debian流の突き放しなのか設定ファイルがコピーされていないので自分で用意する必要がある。
まず、/etc/nut/nut.confというファイル、本当は/etc/default/nutなんじゃないかと思うがどうか?それらしい説明もコメントに書いてあるようだし、コピーしてから編集する。
# cp /etc/nut/nut.conf /etc/default/nut # vi /etc/default/nut ※MODE=standaloneに設定
次に/etc/nut/ups.confを編集して以下の6行の記述を追加する。
[megatec] driver = megatec_usb port = /dev/usb/hiddev0 desc = "Classic Pro UPS1200LX" vendorid = 0001 productid = 0000
この括弧で囲まれた部分がこのUPSの名前。自由に決められるけど他の設定ファイルとからむので、とりあえずこれで。あとportというのはUSBデバイス名で、Debian squeezeの2.6.32-5で認識したusbdevの値ですな。他のディストリだと変わるかも。
/etc/nut/upsd.confはとりあえずいじる必要なし。スタンドアロンではなく複数のホストを同期させて動かしたい場合はLISTENの設定を追加する必要があるようだ。nutは単品だけでなく、1台のホストがUPSを管理し、その情報を複数のサーバで共有できるように作られているみたい。
/etc/nut/upsd.usersにupsdが使うユーザ名を登録するために3行追加。見た感じ、nutは/sbin/upsdというUPSそのものを管理するデーモンと、/sbin/upsmonというUPSホスト側の動作を担当するデーモンにわかれており、この間のユーザ管理に独自の設定を使うようだ。
[upsmon] password=papapapa upsmon master
パスワードはマジ適当なので好きなのつけておくれ。しかしupsmonという部分は変更しないように。
/etc/nut/upsmon.confがホスト側の動作の設定。上記3種で設定した名前やパスワードを全て利用する。まあデフォルト動作でよければ1行追加するだけだが。
MONITOR megatec@localhost 1 upsmon papapapa master
おしまい。
.............
......
実測70Wくらいの消費電力のサーバで1時間ちょっと持ったよ。OMRONの前のUPS(350VA)では考えられない値だ。とりあえず20%を切ったところでブザーが鳴り、シャットダウンシーケンスに入った。まずは成功である。
しかし.... こんなことテストでやってらんないので確認方法を書いておく。 upsdは子プロセスとしてドライバ(と呼んでいる単なるコマンド)を起動しているだけなので、そのコマンドを起動すれば目視で確認できる。
# /lib/nut/megatec_usb -a megatec -DDD 2.929277 I VALUES => [ 1200VA V6.7] 2.929286 Asking for UPS status [Q1]... 2.929296 set_data_krauler: index [03] 3.827172 Q1 => OK [(096.0 000.0 096.0 008 49.9 24.8 29.0 00001000]
かなりはしょっているけど、このQ1というコマンドの中に書いてある数の最後がmegatec_usbの場合 AC通電:00001000 、 バッテリー駆動:10001000 になるようなので参考にしてください。
このコマンド自体が動かない場合は/etc/nut/nut.confまたは/etc/default/nut,/etc/nut/ups.confの設定を再確認。他のファイルは関係ないみたい(※実はけっこうハマッた)
|
いつもお世話になります。
突然失礼致します。
私、樹雪と申します。
こちらの記事を参考に、UPS1200LX の設定をさせて頂きました。
とても助かりました。
どうも有り難うございました。
また、誠に勝手ながら、こちらの記事をトラックバックさせて頂きました。
事後報告となり大変恐縮ですが、ご容赦下さい。
宜しくお願い申し上げます。