一台の UPS と NAS と PC をすべて連携してシャットダウンさせたい
2011-04-20


禺画像]
計画停電の件もあり、事前に TV 録画用 PC や NAS の電源を落とし忘れて外出することもあるだろうと、UPS を買いました。
当然、PC との連携機能があり、USB でつなぐことで、必要な場合に PC を自動で shutdown できます。

また、Buffalo の NAS もあり、なんとこれには UPS と USB でつないで必要な shutdown が出来る機能があります。しかも、複数の同社の NAS があれば、UPS とつないだ NAS をサーバにして、他の NAS も自動で shutdown できるという。これはすばらしい。

Buffalo の NAS は Embedded Linux で動いているので、ハードが壊れたり生産終了になっても、disk を他の Linux マシンに持って行けば RAID アレイのマウントも出来るだろうから、若干安心だし、定期自己診断機能や、メールでステータスを送ってくれたり、DLNA やユーザ別のアクセス権限管理、つながっている PC の動作に合わせて電源の自動 ON/OFF できるなど、至れり尽くせりなので買ったのだが、さらに UPS との連動機能があるというのはうれしい限りだ。
メーカではサポートしていないと謳っているが、4 port の USB ハブを介して、USB HDD、 プリンタ、 UPS とつないでいるが全く問題なく動作している。

ところが、UPS には USB の口が一つしかない。PC と NAS どちらにつなぐのが良いのか。出来ればすべて管理したい。
PC と NAS との電源連動が機能的にはあるが、NAS から PC を落とすことはあきらめるとしても、PC から NAS を落とすことは出来てもおかしくない。ところが、例えば NAS の RAID check 中に PC から NAS を落とそうとしても、公開されている機能を使うなら、Web 管理で login をしての操作で落とすことが出来るくらいで、自動化はちょっと困難そう。
これが出来そうなツールが Vector にあるが、最近の NAS では動作しない報告もインターネット上にあるので期待できない。

さて、どうしたものか。
でも、NAS 同士はネットワーク経由で他を落とすことが出来るではないか。
ということで、UPS からの信号をどうやって NAS 間同士でやり取りしているかを解析することにした。

Wireshark と WinPCap を使ってパケットモニタをする。すると、それらしいパケットは見つからない。よく考えれば、UPS 連動でのサーバ/クライアント間通信は、broadcast パケットでなければ、イーサネットハブ(switch)が送信先ポートにしか飛ばさないわけで、いわゆる「バカハブ」でもない限り、PC から NAS 間通信のパケットをモニタできるわけではない。いまさら 10Base-T のハブをこの解析目的のために 100円だったとしても買いたくないし、そもそもネットワークアナライザ的な装置の入手も出来ない。何か良い手はないか。

ということでアッサリ一週間が過ぎたとき、何とか NAS-PC-NAS のようなトポロジでつなぐことが出来ればモニタできるのにな、とふと思い、そういえば USB 接続の 100BaseT のアダプタをたまたま持っていることを思い出し、これに Windows のネットワークブリッジ機能を使えば、NAS-PC-NAS 接続が出来そうである。やるとあっさりつながり、Wireshark でのモニタが出来るようになった。

あとは簡単である。かなりシンプルなやり取りを NAS 間でしていることがわかったので、同じやり取りをするプログラムを組めば、NAS-PC 間で UPS の情報を共有できるので、一つの USB 接続で一蓮托生で shutdown できる。

早速作ってみたので、アップロードしておきます。

B-NAS Utility ver 1.0.0
[URL]

UPS を PC とつなぎ、PC を NAS shutdown 指令用のサーバとする物と、UPS を NAS とつなぎ、PC を NAS shutdown 指令のクライアントとする物の二つを作ってみました。

最初は PC をサーバとすることを考えてこれを先に作りましたが、現実には、他のノート PC から NAS へのアクセスがあり、NAS だけが立ち上がっていることが多く、PC だけ立ち上がっていることはほぼ無いため、NAS に UPS をつなげて使うため、PC をクライアントにするのも作りました。

これで停電でも面倒なことにならずに済みそうです。
[その他自作プログラム]

コメント(全6件)
コメントをする


記事を書く
powered by ASAHIネット