FreeNASでAPCのManagementCard(AP9617)を使う

UPS使うからには当然コントロールはネットワーク経由。シリアルとかUSBとかダサいのは使わない。

使用しているのはAPC製ManagementCard AP9617 ヤフオクで2,000円ぐらいで買えるので買わない手は無い。
ファームウェアも最新の物にしておきましょう。その手順は省きますが、APCUPSに付属のシリアルケーブルと、teraterm等を使うPCを接続させる必要があるので
USB-シリアル変換ケーブルが必要になります(みんな当然持ってるよね!)あるいはもともとシリアルポートがついているPCを準備(最近はまずありませんが)
その手順はAPCのサイトに行けばあるので割愛します。(Verは3.7.3)

※当たり前ですがAPC製かつManagementCardスロットがついているUPSを使うことが前提です。
※FreeNASにはnutというUPSコントロールツールがデフォルトでインストールされてますが、ネットワーク経由での制御に対応していないので別途apcupsdを入れます


そしてFreeNASを本気で使っているユーザーはシステム領域をUSBメモリに入れてUSBメモリブートさせていると思うのだけど、
この情報が殆ど無いのでメモ。


apcupsdを入手する(FreeBSDのPort)
2012/4現在で私が使ったのは v 1.4 2010/03/27 00:14:52 のもの。ファイル名はapcupsd.tbz
入手先は失念・・・大変申し訳ない。たしか普通にFreeBSDのportのリポジトリから落としてきたような。
[UPS側設定]
※基本設定は割愛します

  1. UPSのタブ→PowerChuteを選択→Configurationを選択→Authentication Phrase:に15文字〜32文字のパスフレーズを設定する
  2. UPSのタブ→PowerChuteを選択→Clientをせt鳴く→FreeNASの管理用IPアドレスを登録する

[FreeNAS側設定]
FreeNASバージョン:8.2.0(BETA3) ←Stableなバージョンでも問題ありませんでした
FreeNASにログイン(ssh or コンソール)

/conf/base以下が起動時にUSBメモリの/etcとかに書き込まれる実体なのでそこにコピーしないといけない。/etc/以下に直接置いても再起動すると消えてしまう。

ちなみにLinuxと違うのでようわからんのだけど、pkg_addでインストールしたものは/usr/local/etc(リンクなので実際は/etc/local/)に置かれるんだけど何が違うのかな。
所謂ユーザーアプリは/usr/以下ってのが昔からのお約束(Linuxは違うけど)だと思うけどいまいちわかりづらい・・・

  1. mount -uw / して書き込み可能にする
  2. apcupsdのportファイルを適当な場所にコピー(ファイル名はapcupsd.tbz)
  3. pkg_add apcupsdする(mount -uwしてないと失敗する)
  4. /usr/local/etc/apcupsd/以下にコピーされたファイルを/conf/base/etc/apcupsdディレクトリを作成してそこにコピー、設定の修正はそのファイルに対して実施する。apcupsd.conf.sampleをapcupsd.confにリネームして中を書き換えます。
  5. ネットワーク特有の設定項目はとしては"UPSCABLE ether" "UPSTYPE pcnet" "DEVICE 192.168.10.5:apc:hogehogehogehogehogehogeho" (最後のhogehoge....はUPS設定で設定した"Authentication Phrase:"です。15文字以上なので注意)
  6. /conf/base/etc/rc.d/apcupsd/apcupsdファイルが555になってるかを確認。なってないならchmod 555で。
  7. /conf/base/etc/rc.confの最終行に apcupsd="YES" を追記保存。
  8. mount -ur / でRead-Onlyに戻す
  9. 再起動
  10. /etc/apcupsd/以下や/etc/rc.d/apcupsd等がコピーされてるかを確認する

※うまくいかんかったら/conf/base/etc/を/conf/base/etc/localに置き換えてやってみてください。2つのうちいずれかです。


テストはFreeNASが入った筐体の電源をUPSに接続を挿して、apcupsd.confの中のTIMEOUTの値を90にしてください。そしたら抜けばすぐシャットダウンが走るはず?