| Home |
2017.11.04
Raspberry Pi 3を買い増した。
今回はアイ・オー・データが取り扱っている国内正規代理店品「UD-RP3」を買ったんですが中身はただのelement14版です。
アイ・オー・データを通す事で若干値段が上がっていたような気もしますが、まあ、1年の保証を安心して受けれるしいいかな。
それにかわいらしい紙袋に本体基盤が入っていました。
この袋に基盤が直接入っていたのでクッション性がなかったり、静電気防止のビニール等に入っていないのがどうなのかというのもありますが。

なぜ2台も買ったのかというと、1台は仕事とかで気軽にテストや検証できるサーバ1台欲しいなぁと思った事もあって。
ただ、そんな用途で新品ももったいないので、以前から稼働しているRPi3の基盤リプレイスをして入れ替えです。
microSDにOSが入っているので、基本的に差し替えだけでいいのは楽チンです。
ただ、NICのMACアドレスが変わるので、そこだけ修正が必要ですが。
新しいMACアドレスを確認して、コマンド1発だけ入れたら終わりです。
そしてもう1台。
UPSの管理用マスターに「スティックPCにapcupsdを導入。」で「m-Stickシリーズ MS-NH1-W10」にapcupsdを導入して利用していたのですが、無線LANで運用していたらブツブツ切れる事が増え、Slave側からCOMMLOSTが昼夜問わず発生していました。
そこで泣く泣くUSB LANアダプターを取り付けて運用していたんですが、最近はOS側はハングアップする事が増えまたCOMMLOSTに。
しかもただ切れるだけではないので対処する(電源オフオンする)までUPS制御できない状態になっているので困り物だったので、リプレイスに踏み切る事に。
で、今回もRPi3用CentOS7に。安定はしているし、導入も一度やってるしでハマることもないだろうと。
「Raspberry Pi 3 CentOS導入から組み立て。」の通りOSの導入して、「Raspberry Pi 3 CentOS初期設定とmicroSDカード書き込み抑制対策。」の通りに細かい初期設定して・・・。
と思っていたら、前の記事にも追記しましたがパーティションサイズの拡張の仕様が変わっていました。
前に導入した時の細かいバージョンは忘れましたが、今回使用した「CentOS Linux release 7.4.1708」のイメージでは
これ実行すれば勝手に拡張してくれるのは変わりません。しかも再起動しなくても拡張されてた。
今回のイメージは最初から入っているパッケージも若干変更されているっぽかったです。(chrony入ってた。)
その他は同じように設定してOS部分は完成。
で、「CentOSなRaspberry Pi 3にapcupsd導入。」のようにapcupsd導入して、設定は「スティックPCにapcupsdを導入。」と同じ内容を移植で完成。
と思っていたのですが、apcupsd導入でかなりハマる。
とりあえず最新版を入れておこうと、armv7hl Fedora27用のapcupsd-3.14.14-7を探してきて(前に使ったRpmfindはリンクが全て死んでたので別で。)、念のため先に依存関係を確認すると、求められたのは
前に入れた時はFedora23用のapcupsd-3.14.13-4で、「libnetsnmp.so.30」(net-snmp-libs)が必要でしたがこれは不要になり、代わりに「libstdc++.so.6(CXXABI_1.3.9)」(libstdc++)を求められました。
(Fedora25用以降のパッケージは全て同じ依存関係でした。)
が、これが非常にやっかい。
libstdc++は元から入っていたのですが、まず必要となるlibstdc++がglibc-2.18系のライブラリになります。
そして元から入っているのがglibc-2.17系で、対応しようとするとかなり広範囲に渡って個別に落としての置き換えが必要になり、yumでも管理できなくなります。
正直、どこまで依存関係が広がるか未知数だったので諦める事に。
RedHat系はサポートするパッケージのベースバージョンが基本的に若干古く、OSのバージョンで固定なのでこういった時に困ります。
で、仕方ないので前と同じものを探そうとしたのですが、Fedora23がサポート終了されている為か、ミラーサイト含めパッケージ公開している所がことごとくファイル削除済み。
パッケージを保管してなかった事にかなり後悔するハメになりました。
途方に暮れていたのですが、ミラーサイトのFedora23用ディレクトリ内に「README」が置いてあって、最初は無視していた(どうせサポート終了だとかだけ書かれてるんだろうと思ってた。)んですがふと開いてみると、こっちに移したよってURL「http://archives.fedoraproject.org/pub/archive/fedora/」が書かれているじゃないか!
で、そっちで無事apcupsdとnet-snmp-libsを入手して構築完了となりました。
これで安定してくれるかなー。
あ、空いた検証用に回す基盤にもCentOS入れて適当に設定しておく予定。
【関連記事】
■Raspberry Pi関連
Raspberry Pi 関連記事一覧。
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
おうちでVMware - ESXi UPS連動編
■閉じる■
アイ・オー・データを通す事で若干値段が上がっていたような気もしますが、まあ、1年の保証を安心して受けれるしいいかな。
それにかわいらしい紙袋に本体基盤が入っていました。
この袋に基盤が直接入っていたのでクッション性がなかったり、静電気防止のビニール等に入っていないのがどうなのかというのもありますが。

なぜ2台も買ったのかというと、1台は仕事とかで気軽にテストや検証できるサーバ1台欲しいなぁと思った事もあって。
ただ、そんな用途で新品ももったいないので、以前から稼働しているRPi3の基盤リプレイスをして入れ替えです。
microSDにOSが入っているので、基本的に差し替えだけでいいのは楽チンです。
ただ、NICのMACアドレスが変わるので、そこだけ修正が必要ですが。
新しいMACアドレスを確認して、コマンド1発だけ入れたら終わりです。
# nmcli connection modify (デバイス名) 802-3-ethernet.mac-address XX:XX:XX:XX:XX:XX(新しいMACアドレス)
そしてもう1台。
UPSの管理用マスターに「スティックPCにapcupsdを導入。」で「m-Stickシリーズ MS-NH1-W10」にapcupsdを導入して利用していたのですが、無線LANで運用していたらブツブツ切れる事が増え、Slave側からCOMMLOSTが昼夜問わず発生していました。
そこで泣く泣くUSB LANアダプターを取り付けて運用していたんですが、最近はOS側はハングアップする事が増えまたCOMMLOSTに。
しかもただ切れるだけではないので対処する(電源オフオンする)までUPS制御できない状態になっているので困り物だったので、リプレイスに踏み切る事に。
で、今回もRPi3用CentOS7に。安定はしているし、導入も一度やってるしでハマることもないだろうと。
「Raspberry Pi 3 CentOS導入から組み立て。」の通りOSの導入して、「Raspberry Pi 3 CentOS初期設定とmicroSDカード書き込み抑制対策。」の通りに細かい初期設定して・・・。
と思っていたら、前の記事にも追記しましたがパーティションサイズの拡張の仕様が変わっていました。
前に導入した時の細かいバージョンは忘れましたが、今回使用した「CentOS Linux release 7.4.1708」のイメージでは
# /usr/bin/rootfs-expandに変更になっていました。(/root/READMEに書かれています。)
これ実行すれば勝手に拡張してくれるのは変わりません。しかも再起動しなくても拡張されてた。
今回のイメージは最初から入っているパッケージも若干変更されているっぽかったです。(chrony入ってた。)
その他は同じように設定してOS部分は完成。
で、「CentOSなRaspberry Pi 3にapcupsd導入。」のようにapcupsd導入して、設定は「スティックPCにapcupsdを導入。」と同じ内容を移植で完成。
と思っていたのですが、apcupsd導入でかなりハマる。
とりあえず最新版を入れておこうと、armv7hl Fedora27用のapcupsd-3.14.14-7を探してきて(前に使ったRpmfindはリンクが全て死んでたので別で。)、念のため先に依存関係を確認すると、求められたのは
mailコマンド libusb-0.1.so.4 libstdc++.so.6(CXXABI_1.3.9)でした。
前に入れた時はFedora23用のapcupsd-3.14.13-4で、「libnetsnmp.so.30」(net-snmp-libs)が必要でしたがこれは不要になり、代わりに「libstdc++.so.6(CXXABI_1.3.9)」(libstdc++)を求められました。
(Fedora25用以降のパッケージは全て同じ依存関係でした。)
が、これが非常にやっかい。
libstdc++は元から入っていたのですが、まず必要となるlibstdc++がglibc-2.18系のライブラリになります。
そして元から入っているのがglibc-2.17系で、対応しようとするとかなり広範囲に渡って個別に落としての置き換えが必要になり、yumでも管理できなくなります。
正直、どこまで依存関係が広がるか未知数だったので諦める事に。
RedHat系はサポートするパッケージのベースバージョンが基本的に若干古く、OSのバージョンで固定なのでこういった時に困ります。
で、仕方ないので前と同じものを探そうとしたのですが、Fedora23がサポート終了されている為か、ミラーサイト含めパッケージ公開している所がことごとくファイル削除済み。
パッケージを保管してなかった事にかなり後悔するハメになりました。
途方に暮れていたのですが、ミラーサイトのFedora23用ディレクトリ内に「README」が置いてあって、最初は無視していた(どうせサポート終了だとかだけ書かれてるんだろうと思ってた。)んですがふと開いてみると、こっちに移したよってURL「http://archives.fedoraproject.org/pub/archive/fedora/」が書かれているじゃないか!
で、そっちで無事apcupsdとnet-snmp-libsを入手して構築完了となりました。
これで安定してくれるかなー。
あ、空いた検証用に回す基盤にもCentOS入れて適当に設定しておく予定。
【関連記事】
■Raspberry Pi関連
Raspberry Pi 関連記事一覧。
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
おうちでVMware - ESXi UPS連動編
■閉じる■
2016.05.22
おうちでVMware - ESXi UPS連動編
先日、UPSとの連動にWindows10のスティックPCをapcupsdのマスターとして、NASとRaspberry Pi3をスレーブに設定しました。
最後にに一番メインに連動させたかったESXi機を連動させます。
とはいってもうちの環境は無償版ESXiなのでESXi側でどうこうできません。
なので、今回はラズパイ側でシャットダウン時にESXi機も落とすように仕込みます。
最後にに一番メインに連動させたかったESXi機を連動させます。
とはいってもうちの環境は無償版ESXiなのでESXi側でどうこうできません。
なので、今回はラズパイ側でシャットダウン時にESXi機も落とすように仕込みます。
要約すると、RPi3から鍵交換でsshで接続してシャットダウンするようにします。
ESXi側でssh接続が可能になっている事を前提に進めます。
どこで実行してもいいのですが、RPi3側で鍵作成を行います。
pub無しが秘密鍵ファイル、pub有りが公開鍵ファイルになります。
作成されたファイルのうち、公開鍵ファイルの方のみをSCP等でESXiに送り込みます。
また、秘密鍵ファイルはデフォルトでパーミッションが600になっていると思いますが、なっていない場合は変更しておきます。
□ESXi側で実行
ESXi側で「authorized_keys」に公開鍵を統合します。
■接続側で実行
これで鍵ファイルを使って認証ができるはずなので確認します。
問題なければ準備完了です。
「doshutdown」の欄に追記します。
これでESXiにシャットダウンを発報し、その後自身もシャットダウンを実施します。
ESXiは「halt」コマンドで稼働中のゲストOSをシャットダウンしてから自身をシャットダウンを行うので、これでU全て安全に停止が可能になりました。
【関連記事】
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
■VMware関連
おうちでVMware 関連記事一覧。
■閉じる■
ESXi側でssh接続が可能になっている事を前提に進めます。
ssh公開鍵認証設定
■接続側で実行どこで実行してもいいのですが、RPi3側で鍵作成を行います。
# ssh-keygen -t rsa任意のファイル名を入力します。
Enter file in which to save the key (/root/.ssh/id_rsa): *******パスフレーズを聞かれますが、鍵ファイルを使って自動でログインさせる為に空でエンターを入力します。
Enter passphrase (empty for no passphrase): Enter same passphrase again:ファイルが2つ作成されている事を確認します。
pub無しが秘密鍵ファイル、pub有りが公開鍵ファイルになります。
# ls ******* *******.pub
作成されたファイルのうち、公開鍵ファイルの方のみをSCP等でESXiに送り込みます。
また、秘密鍵ファイルはデフォルトでパーミッションが600になっていると思いますが、なっていない場合は変更しておきます。
□ESXi側で実行
ESXi側で「authorized_keys」に公開鍵を統合します。
cat rpi3_id_rsa.pub >> /etc/ssh/keys-root/authorized_keysauthorized_keysもパーミッションが600である事を確認しておきます。
■接続側で実行
これで鍵ファイルを使って認証ができるはずなので確認します。
# ssh -l root -i (秘密鍵ファイル) (ESXiのIPアドレス)
問題なければ準備完了です。
apcupsd変更
RPi3のapcupsdのスクリプトファイルを編集します。# vi /etc/apcupsd/apccontrol
「doshutdown」の欄に追記します。
doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
ssh -l root -i (秘密鍵ファイル) (ESXiのIPアドレス) "/bin/halt"
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
これでESXiにシャットダウンを発報し、その後自身もシャットダウンを実施します。
ESXiは「halt」コマンドで稼働中のゲストOSをシャットダウンしてから自身をシャットダウンを行うので、これでU全て安全に停止が可能になりました。
【関連記事】
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
■VMware関連
おうちでVMware 関連記事一覧。
■閉じる■
2016.05.15
CentOSなRaspberry Pi 3にapcupsd導入。
続いてRaspberry Pi 3もUPS連動させます。
これを連動させる目的はESXiが有償版であればvSphere Management Assistant(vMA)にapcupsdをインストールして直接連動させれますが、無償版の為にできません。
ですので、Raspberry Pi 3側にapcupsdを入れて、シャットダウン判断となった場合にESXiにリモート接続して落とすというのを考えています。(NASでやってもいいんですが。)
これを連動させる目的はESXiが有償版であればvSphere Management Assistant(vMA)にapcupsdをインストールして直接連動させれますが、無償版の為にできません。
ですので、Raspberry Pi 3側にapcupsdを入れて、シャットダウン判断となった場合にESXiにリモート接続して落とすというのを考えています。(NASでやってもいいんですが。)
実施はCentOS 7.2.1511環境で行っています。
CentOSの場合はrpmforgeのリポジトリを導入して、そこからyumで導入できます。
が、ARM版のCentOSの場合、rpmforgeが見つかりませんでした。
あれこれ試してみた結果、armv7 Fedora用パッケージファイルを落として使用する事でうまくいきました。
パッケージはRpmfindというところから入手。
1.適当なディレクトリでwgetでパッケージをダウンロードします。
2.ダウンロードできたらrpmコマンドでインストールを行います。
3.これらがないと依存関係でエラーになりました。
4.mailコマンドはmailxパッケージをインストールで入ります。
5.libusb-0.1.so.4はlibusbパッケージをインストールで入ります。
6.libnetsnmp.so.30はnet-snmp-libsパッケージをインストールで入ります。
が、yumで入れると新しいlibnetsnmp.so.31が入ってしまい、エラーの解消はできませんでした。
なので、こちらもRpmfindから対応したものが含まれるのを落として入れました。
7.apcupsdのインストールを再実行します。
テストの為にコンフィグは以下のように。
基本的にSlaveとして動かしたFreeNASと一緒です。
※BATTERYLEVEL、MINUTES、TIMEOUTどれかの条件にマッチした時点でシャットダウンと判断される。
確認
起動完了後、確認コマンドで状態を見ます。
自動で正常に起動されていれば設定内容やUPSのステータス等が表示されます。
自動起動までしているのにステータスが取れていない場合、特にマスターがWindowsの場合はWindowsファイアウォール等でブロックされている可能性が高いです。
その場合は開けてあげて下さい。
状態を見るのに以下のログを「tail」で流しておくと分かりやすいです。
ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]
ケース2.抜線し、10秒経過後に「Running on UPS batteries.」ログ出力。その後すぐにコンセント接続。「Power is back.」ログ出力され、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後シャットダウン。[OK]
こちらも想定通りの結果となりました。
やっぱり「POLLTIME」が60秒だとタイムラグが大きいので見直しは必須です。
短くすればその分負荷が上がるみたいですが。
ESXiへのリモートシャットダウンはまた別途設定します。
【関連記事】
Raspberry Pi 関連記事一覧。
■閉じる■
apcupsd導入
Raspbianであれば特に何も考えず他のパッケージ同様にapt-getで導入できます。CentOSの場合はrpmforgeのリポジトリを導入して、そこからyumで導入できます。
が、ARM版のCentOSの場合、rpmforgeが見つかりませんでした。
あれこれ試してみた結果、armv7 Fedora用パッケージファイルを落として使用する事でうまくいきました。
パッケージはRpmfindというところから入手。
1.適当なディレクトリでwgetでパッケージをダウンロードします。
# wget ftp://rpmfind.net/linux/fedora/linux/updates/23/armhfp/a/apcupsd-3.14.13-4.fc23.armv7hl.rpm
2.ダウンロードできたらrpmコマンドでインストールを行います。
# rpm -ivh apcupsd-3.14.13-4.fc23.armv7hl.rpm
3.これらがないと依存関係でエラーになりました。
mailコマンド libusb-0.1.so.4 libnetsnmp.so.30※先にあれこれやってる時にgccを入れてしまっていたので出てこなかったけど、多分libgccもいると思います。
4.mailコマンドはmailxパッケージをインストールで入ります。
# yum install mailx
5.libusb-0.1.so.4はlibusbパッケージをインストールで入ります。
# yum install libusb
6.libnetsnmp.so.30はnet-snmp-libsパッケージをインストールで入ります。
が、yumで入れると新しいlibnetsnmp.so.31が入ってしまい、エラーの解消はできませんでした。
なので、こちらもRpmfindから対応したものが含まれるのを落として入れました。
# wget ftp://rpmfind.net/linux/fedora/linux/updates/23/armhfp/a/net-snmp-libs-5.7.3-7.fc23.armv7hl.rpm # rpm -ivh net-snmp-libs-5.7.3-7.fc23.armv7hl.rpm 警告: net-snmp-libs-5.7.3-7.fc23.armv7hl.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 34ec9cba: NOKEY 準備しています... ################################# [100%] 更新中 / インストール中... 1:net-snmp-libs-1:5.7.3-7.fc23 ################################# [100%]
7.apcupsdのインストールを再実行します。
# rpm -ivh apcupsd-3.14.13-4.fc23.armv7hl.rpm 警告: apcupsd-3.14.13-4.fc23.armv7hl.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 34ec9cba: NOKEY 準備しています... ################################# [100%] 更新中 / インストール中... 1:apcupsd-3.14.13-4.fc23 ################################# [100%]もし他に依存関係エラーが出た場合は探して下さい。
apcupsdコンフィグ(テスト)
コンフィグ編集。# vi /etc/apcupsd/apcupsd.conf
テストの為にコンフィグは以下のように。
基本的にSlaveとして動かしたFreeNASと一緒です。
UPSNAME RS400 UPSCABLE ether UPSTYPE net DEVICE マスターのIP:3551 ONBATTERYDELAY 10 BATTERYLEVEL 0 MINUTES 0 TIMEOUT 60 KILLDELAY 0
パラメータ名 | 説明 |
UPSNAME | ステータス画面等に表示する名前。なくてもいい。 |
UPSCABLE | UPSとの接続ケーブル指定。ネットワークなのでether。 |
UPSTYPE | UPSとの接続タイプ。ネットワークなのでnet。 |
DEVICE | 接続先デバイス指定。スレーブ稼働時はマスターのIPとポートを指定。 |
ONBATTERYDELAY | 値秒経過しても電源が復旧していない場合にONBATTERY稼働と判断する。この間に復旧したら一切何もしない。瞬断対策。 |
BATTERYLEVEL | バッテリーレベルが値%以下になったらシャットダウンと判断。 |
MINUTES | バッテリー稼働時間が値分以下になったらシャットダウンと判断。 |
TIMEOUT | ONBATTERY稼働になってから値秒経過したらシャットダウンと判断。 |
KILLDELAY | ONBATTERY稼働になってから値秒後にUPSの電源をOFFにする。Slaveでは設定しない。 |
apcupsd自動起動設定
デフォルトでは自動起動するようになっていないので変更しておきます。# systemctl enable apcupsd.service
確認
# systemctl is-enabled apcupsd.service enabled
apcupsd状態確認
ここまでできたら自動起動の確認の為にも再起動しておきます。起動完了後、確認コマンドで状態を見ます。
自動で正常に起動されていれば設定内容やUPSのステータス等が表示されます。
# apcaccess
自動起動までしているのにステータスが取れていない場合、特にマスターがWindowsの場合はWindowsファイアウォール等でブロックされている可能性が高いです。
その場合は開けてあげて下さい。
apcupsdテスト
念の為に事前にマスター側のTIMEOUT、KILLDELAY値は延ばしておきました。状態を見るのに以下のログを「tail」で流しておくと分かりやすいです。
# tail -f /var/log/apcupsd.events
ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]
ケース2.抜線し、10秒経過後に「Running on UPS batteries.」ログ出力。その後すぐにコンセント接続。「Power is back.」ログ出力され、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後シャットダウン。[OK]
こちらも想定通りの結果となりました。
やっぱり「POLLTIME」が60秒だとタイムラグが大きいので見直しは必須です。
短くすればその分負荷が上がるみたいですが。
ESXiへのリモートシャットダウンはまた別途設定します。
【関連記事】
Raspberry Pi 関連記事一覧。
■閉じる■
2016.05.14
おうちで自作NAS - FreeNAS UPS連動編
先日、UPSとの連動にWindows10のスティックPCをマスターとして設定しました。
スティックPCにapcupsdを導入。
次はNASをスレーブとして設定します。
FreeNASには標準でUPS連動機能がありますので、簡単に終わると思ってました。
が、FreeNASに搭載されているUPSサービスはNetwork UPS Tools(NUT)で、apcupsdとは違います。
(apcupsdと連動できるみたいな情報もあって色々やってみたけど結局うまくいかず時間だけ無駄に過ぎてしまった。)
なので、結局こちらにもapcupsdを導入しました。
スティックPCにapcupsdを導入。
次はNASをスレーブとして設定します。
FreeNASには標準でUPS連動機能がありますので、簡単に終わると思ってました。
が、FreeNASに搭載されているUPSサービスはNetwork UPS Tools(NUT)で、apcupsdとは違います。
(apcupsdと連動できるみたいな情報もあって色々やってみたけど結局うまくいかず時間だけ無駄に過ぎてしまった。)
なので、結局こちらにもapcupsdを導入しました。
FreeNAS9.10、というかFreeBSD10.3として導入作業を行っています。
今回はOPNsenseのパッケージアーカイブからFreeBSD10のamd64用を落としました。
最新版はWindowsと同じ3.14.13です。
以降、FreeNASにssh接続し、rootユーザで作業を行います。
sshが有効になっていない場合はこちら参照。
⇒おうちで自作NAS - FreeNAS ZIL/L2ARC設定編
1.適当なディレクトリでwgetでパッケージをダウンロードします。
2.ダウンロードできたらpkgコマンドでインストールを行います。
3.途中確認を求められるので「y」を返答します。
これらのディレクトリは起動時に「/conf/base/」からコピーされて起動しますので、apcupsdをインストールした際に作成されたディレクトリ、ファイルを同じように配置されるように退避しておきます。
1.apcupsdのコンフィグディレクトリを「/conf/base/」以下にコピー。
2.apcupsdの起動用スクリプトを「/conf/base/」以下にコピー。
テストの為にコンフィグは以下のように。
※BATTERYLEVEL、MINUTES、TIMEOUTどれかの条件にマッチした時点でシャットダウンと判断される。
こちらも「/conf/base/」以下にファイルの方を編集します。
以下を追記します。
最近のLinux系OSはだいたい「# shutdown -h now」で電源まで落ちますが、FreeBSDでは「-h」ではOSのシャットダウンのみでパワーオフ前で止まります。
電源まで落としたい場合は「-p」を付けないといけません。
マスター機から「KILLDELAY」でUPS自体も落とすようにしてるしいいっちゃあいいんですが、FreeNASシャットダウン後UPSシャットダウン前に復電した時とか電源だけ入ったままになるので。
ですので、apcupsdのスクリプトファイルを修正しておきます。
以下を編集します。
変更前
変更後
起動完了後、「/etc/local/apcupsd/apcupsd.conf」とかがきちんと配置されている事を確認しておきます。
確認コマンドで状態を見ます。
自動で正常に起動されていれば設定内容やUPSのステータス等が表示されます。
自動起動までしているのにステータスが取れていない場合、特にマスターがWindowsの場合はWindowsファイアウォール等でブロックされている可能性が高いです。
その場合は開けてあげて下さい。
状態を見るのに以下のログを「tail」で流しておくと分かりやすいです。
ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]
ケース2.抜線し、10秒経過後に「Running on UPS batteries.」ログ出力。その後すぐにコンセント接続。「Power is back.」ログ出力され、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後シャットダウン。電源もOFF。[OK]
想定通りの結果に終わって良かったです。
ただ、コンフィグの「POLLTIME」をデフォルト(60秒)のままにしてましたが、これがマスター経由でのUPS状態チェック間隔になるのでONバッテリーになったと感知するのはタイムラグが出てしまいます。
まあ、最終的に全台の時間調整する時に考えようと思います。
【関連記事】
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■FreeNAS関連
おうちで自作NAS - FreeNAS 関連記事一覧。
■閉じる■
apcupsd導入
まずはapcupsdを拾ってきます。今回はOPNsenseのパッケージアーカイブからFreeBSD10のamd64用を落としました。
最新版はWindowsと同じ3.14.13です。
以降、FreeNASにssh接続し、rootユーザで作業を行います。
sshが有効になっていない場合はこちら参照。
⇒おうちで自作NAS - FreeNAS ZIL/L2ARC設定編
1.適当なディレクトリでwgetでパッケージをダウンロードします。
# wget https://pkg.opnsense.org/FreeBSD:10:amd64/latest/All/apcupsd-3.14.13.txz
2.ダウンロードできたらpkgコマンドでインストールを行います。
# pkg install apcupsd-3.14.13.txz
3.途中確認を求められるので「y」を返答します。
Proceed with this action? [y/N]: y
RAMディスク上ファイルの退避配置
FreeNASは「/etc」「/mnt」「/var」は最初からRAMディスクで動作していて、稼働中に配下のファイルを編集してもこのままだと再起動したら消えてしまいます。これらのディレクトリは起動時に「/conf/base/」からコピーされて起動しますので、apcupsdをインストールした際に作成されたディレクトリ、ファイルを同じように配置されるように退避しておきます。
1.apcupsdのコンフィグディレクトリを「/conf/base/」以下にコピー。
# cp -pr /usr/local/etc/apcupsd /conf/base/etc/local/
2.apcupsdの起動用スクリプトを「/conf/base/」以下にコピー。
# cp -p /etc/local/rc.d/apcupsd /conf/base/etc/local/rc.d/
apcupsdコンフィグ(テスト)
コンフィグの編集はもちろん上記の退避した方を編集します。# vi /conf/base/etc/local/apcupsd/apcupsd.conf
テストの為にコンフィグは以下のように。
UPSNAME RS400 UPSCABLE ether UPSTYPE net DEVICE マスターのIP:3551 ONBATTERYDELAY 10 BATTERYLEVEL 0 MINUTES 0 TIMEOUT 60 KILLDELAY 0
パラメータ名 | 説明 |
UPSNAME | ステータス画面等に表示する名前。なくてもいい。 |
UPSCABLE | UPSとの接続ケーブル指定。ネットワークなのでether。 |
UPSTYPE | UPSとの接続タイプ。ネットワークなのでnet。 |
DEVICE | 接続先デバイス指定。スレーブ稼働時はマスターのIPとポートを指定。 |
ONBATTERYDELAY | 値秒経過しても電源が復旧していない場合にONBATTERY稼働と判断する。この間に復旧したら一切何もしない。瞬断対策。 |
BATTERYLEVEL | バッテリーレベルが値%以下になったらシャットダウンと判断。 |
MINUTES | バッテリー稼働時間が値分以下になったらシャットダウンと判断。 |
TIMEOUT | ONBATTERY稼働になってから値秒経過したらシャットダウンと判断。 |
KILLDELAY | ONBATTERY稼働になってから値秒後にUPSの電源をOFFにする。Slaveでは設定しない。 |
apcupsd自動起動設定
apcupsdの自動起動許可を設定ファイルに追記します。こちらも「/conf/base/」以下にファイルの方を編集します。
# vi /conf/base/etc/rc.conf
以下を追記します。
# apcupsd apcupsd_enable="YES"
シャットダウン時の完全電源OFF設定
シャットダウンと判断された際にapcupsdから呼び出されるのが「# shutdown -h now」コマンドになります。最近のLinux系OSはだいたい「# shutdown -h now」で電源まで落ちますが、FreeBSDでは「-h」ではOSのシャットダウンのみでパワーオフ前で止まります。
電源まで落としたい場合は「-p」を付けないといけません。
マスター機から「KILLDELAY」でUPS自体も落とすようにしてるしいいっちゃあいいんですが、FreeNASシャットダウン後UPSシャットダウン前に復電した時とか電源だけ入ったままになるので。
ですので、apcupsdのスクリプトファイルを修正しておきます。
# vi /conf/base/etc/local/apcupsd/apccontrol
以下を編集します。
変更前
doshutdown) printf "Beginning Shutdown Sequence" | wall ${SHUTDOWN} -h now "apcupsd initiated shutdown"
変更後
doshutdown)
printf "Beginning Shutdown Sequence" | wall
${SHUTDOWN} -p now "apcupsd initiated shutdown"
apcupsd状態確認
ここまでできたら再起動しておきます。起動完了後、「/etc/local/apcupsd/apcupsd.conf」とかがきちんと配置されている事を確認しておきます。
確認コマンドで状態を見ます。
自動で正常に起動されていれば設定内容やUPSのステータス等が表示されます。
# apcaccess
自動起動までしているのにステータスが取れていない場合、特にマスターがWindowsの場合はWindowsファイアウォール等でブロックされている可能性が高いです。
その場合は開けてあげて下さい。
apcupsdテスト
念の為に事前にマスター側のTIMEOUT、KILLDELAY値は延ばしておきました。状態を見るのに以下のログを「tail」で流しておくと分かりやすいです。
# tail -f /var/log/apcupsd.events
ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]
ケース2.抜線し、10秒経過後に「Running on UPS batteries.」ログ出力。その後すぐにコンセント接続。「Power is back.」ログ出力され、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後シャットダウン。電源もOFF。[OK]
想定通りの結果に終わって良かったです。
ただ、コンフィグの「POLLTIME」をデフォルト(60秒)のままにしてましたが、これがマスター経由でのUPS状態チェック間隔になるのでONバッテリーになったと感知するのはタイムラグが出てしまいます。
まあ、最終的に全台の時間調整する時に考えようと思います。
【関連記事】
■UPS関連
UPSを買ってみた。
スティックPCにapcupsdを導入。
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■FreeNAS関連
おうちで自作NAS - FreeNAS 関連記事一覧。
■閉じる■
2016.05.11
スティックPCにapcupsdを導入。
結局iTunes起動しっぱなしも厳しくて放置していたスティックPC「m-Stickシリーズ MS-NH1-W10
」。
以前の記事 ⇒ スティックPCの使い道を考えてみた。
先日購入したUPS「APC RS 400 BR400G-JP
」の管理にまずはこれにapcupsdを入れてみました。
以前の記事 ⇒ スティックPCの使い道を考えてみた。
先日購入したUPS「APC RS 400 BR400G-JP
このPC自体を管理する必要性はあまりないんですが、1台はUPSとUSBシリアルケーブルで直接接続する必要があり、設置場所の関係等からこれをマスターとして使う事にしました。
apcupsdは対象OSに載ってなかったけど、Windows10でも問題なく動作してくれました。
最新版は3.14.13です。
ダウンロードしたらインストーラーを実行します。
基本、デフォルトで先に先に進めば問題なし。
途中でコンフィグ編集を求められますが、後からでも変更は可能です。
コンフィグを閉じると、タスクトレイアイコン、サービスのインストールも行われます。
正常にUPSと通信できていたらステータスやバッテリーレベルが確認できます。

(UPSCABLE、UPSTYPEは今回はusbである必要がありますが、デフォルトでusbだったので触っていません。)
※BATTERYLEVEL、MINUTES、TIMEOUTどれかの条件にマッチした時点でシャットダウンと判断される。
コンフィグを編集した場合はWindowsの場合はWindowsサービスから「Apcupsd UPS Monitor」を再起動します。
⇒ただ、6秒ぐらいで「ONBATTERY」ポップアップ出てくる。ONBATTERYDELAYのデフォルト値が6秒だったけど、実は変更できない?まあテストしやすいようにちょっとのばしただけでどっちでもいいんだけども。
ケース2.抜線し、10秒経過後に「ONBATTERY」ポップアップ発生。その後すぐにコンセント接続。「ONLINE」ポップアップ発生し、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後スティックPCがシャットダウン。[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFにな・・・ならない?![NG]
はい、UPSの自動OFFだけ想定通りになりませんでした。
まあ、別にいいっちゃあいいんですが、自動シャットダウンできないルータ等も繋ぐ予定なので低消費電力とはいえ動き続けられたらバッテリーには優しくないしできればUPS側も落としたいんですよねぇ。
Windowsでも同じ事してあげればいいんでないのと試してみました。
サービスに引数をつけるにはサービスの画面から手動起動するのであればサービスのプロパティの「開始パラメータ」に記載すればいいだけの話ですが、自動起動の場合はレジストリを修正してあげないといけません。
※後で改めて公式のオンラインマニュアルに目を通してみたら「Killpower under Windows」の項に載ってましたが。
レジストリエディタを起動して、以下のキーを開きます。
値のデータを編集します。(-pつけます。)
「OK」で閉じて保存し、Windowsを再起動します。
ケース2.[OK]
ケース3.[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFに・・・なったぁ![OK]
とりあえずこのPCについては想定通りの動きが確認できたので次はマスター機からネットワーク経由でステータスを引き渡して制御するスレーブ機の確認をしていきたいと思います。
【関連記事】
UPSを買ってみた。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■閉じる■
apcupsdは対象OSに載ってなかったけど、Windows10でも問題なく動作してくれました。
apcupsd導入
apcupsd公式サイトからWindows用をダウンロードします。最新版は3.14.13です。
ダウンロードしたらインストーラーを実行します。
基本、デフォルトで先に先に進めば問題なし。
途中でコンフィグ編集を求められますが、後からでも変更は可能です。
コンフィグを閉じると、タスクトレイアイコン、サービスのインストールも行われます。
apcupsd状態確認
インストール完了後、タスクトレイアイコンを右クリック→StatusでUPSのステータスが確認できます。正常にUPSと通信できていたらステータスやバッテリーレベルが確認できます。

apcupsdコンフィグ(テスト)
テストの為にコンフィグは以下のように。(UPSCABLE、UPSTYPEは今回はusbである必要がありますが、デフォルトでusbだったので触っていません。)
UPSNAME RS400 ONBATTERYDELAY 10 BATTERYLEVEL 0 MINUTES 0 TIMEOUT 60 KILLDELAY 120
パラメータ名 | 説明 |
UPSNAME | ステータス画面等に表示する名前。なくてもいい。 |
ONBATTERYDELAY | 値秒経過しても電源が復旧していない場合にONBATTERY稼働と判断してPCに上にもポップアップメッセージが表示される。この間に復旧したら一切何もしない。瞬断対策。 |
BATTERYLEVEL | バッテリーレベルが値%以下になったらシャットダウンと判断。 |
MINUTES | バッテリー稼働時間が値分以下になったらシャットダウンと判断。 |
TIMEOUT | ONBATTERY稼働になってから値秒経過したらシャットダウンと判断。 |
KILLDELAY | ONBATTERY稼働になってから値秒後にUPSの電源をOFFにする。 |
コンフィグを編集した場合はWindowsの場合はWindowsサービスから「Apcupsd UPS Monitor」を再起動します。
apcupsdテスト
ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]⇒ただ、6秒ぐらいで「ONBATTERY」ポップアップ出てくる。ONBATTERYDELAYのデフォルト値が6秒だったけど、実は変更できない?まあテストしやすいようにちょっとのばしただけでどっちでもいいんだけども。
ケース2.抜線し、10秒経過後に「ONBATTERY」ポップアップ発生。その後すぐにコンセント接続。「ONLINE」ポップアップ発生し、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後スティックPCがシャットダウン。[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFにな・・・ならない?![NG]
はい、UPSの自動OFFだけ想定通りになりませんでした。
まあ、別にいいっちゃあいいんですが、自動シャットダウンできないルータ等も繋ぐ予定なので低消費電力とはいえ動き続けられたらバッテリーには優しくないしできればUPS側も落としたいんですよねぇ。
apcupsd KILLDELAY対応
で、あれこれ調べてみたところLinux版だけどKILLDELAYを有効にするにはどうも「-p」の引数をつけて起動しないといけないようでした。Windowsでも同じ事してあげればいいんでないのと試してみました。
サービスに引数をつけるにはサービスの画面から手動起動するのであればサービスのプロパティの「開始パラメータ」に記載すればいいだけの話ですが、自動起動の場合はレジストリを修正してあげないといけません。
※後で改めて公式のオンラインマニュアルに目を通してみたら「Killpower under Windows」の項に載ってましたが。
レジストリエディタを起動して、以下のキーを開きます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apcupsd\ImagePath
値のデータを編集します。(-pつけます。)
"c:\apcupsd\bin\apcupsd.exe" /service -p
「OK」で閉じて保存し、Windowsを再起動します。
apcupsd再テスト
ケース1.[OK]ケース2.[OK]
ケース3.[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFに・・・なったぁ![OK]
とりあえずこのPCについては想定通りの動きが確認できたので次はマスター機からネットワーク経由でステータスを引き渡して制御するスレーブ機の確認をしていきたいと思います。
【関連記事】
UPSを買ってみた。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■閉じる■
2016.05.09
UPSを買ってみた。
一体どこに向かってるのか分からなくなってきた気が若干しますが、買っちゃいました、UPS(無停電電源装置)。

APC RS 400 BR400G-JPです。
ESXi機、NAS機の電源保護を目的に。

APC RS 400 BR400G-JPです。
エーピーシー・ジャパン |
ESXi機、NAS機の電源保護を目的に。
UPSの選定は正弦波出力のものが前提で、OMRONの同クラスとすごく悩みました。
OMRONのUPSに付属の管理ソフトウェア「PowerAct Pro」は楽に管理とかできそうだったんで。
APCの方は付属の「PowerChute Personal Edition」ではまず1台しか管理ができないんですよね。
ただ、UPS自体の内部消費電力がAPCの方が少ないというメリットが大きく、天秤にかけて結局こちらを。
元々は矩形波出力だったけど、途中でPFC対応に仕様変更になってるしで要件も満たしてくれているので。
(電源ON時の内部消費電力は価格コムのレビューで見るとこちらが5W、OMRONの正弦波出力最小のBY50Sで9Wらしい。)
管理ソフトウェアの問題についてはAPCは公式のソフト使わなくてもapcupsdってフリーのツールがあるんでそれを使わせてもらう事で代わりにします。
1点困ったのはapcupsdのconfであったり、スクリプト実行のカスタマイズの方法を読み解くのが結構難解なので時間がかかりそうです。
とりあえずバッテリー充電放置中です。
【関連記事】
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■閉じる■
OMRONのUPSに付属の管理ソフトウェア「PowerAct Pro」は楽に管理とかできそうだったんで。
APCの方は付属の「PowerChute Personal Edition」ではまず1台しか管理ができないんですよね。
ただ、UPS自体の内部消費電力がAPCの方が少ないというメリットが大きく、天秤にかけて結局こちらを。
元々は矩形波出力だったけど、途中でPFC対応に仕様変更になってるしで要件も満たしてくれているので。
(電源ON時の内部消費電力は価格コムのレビューで見るとこちらが5W、OMRONの正弦波出力最小のBY50Sで9Wらしい。)
管理ソフトウェアの問題についてはAPCは公式のソフト使わなくてもapcupsdってフリーのツールがあるんでそれを使わせてもらう事で代わりにします。
1点困ったのはapcupsdのconfであったり、スクリプト実行のカスタマイズの方法を読み解くのが結構難解なので時間がかかりそうです。
とりあえずバッテリー充電放置中です。
【関連記事】
スティックPCにapcupsdを導入。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編
■閉じる■
| Home |