メインサーバ fedora の電気代がそこそこ高くつくので、安い夜間電力での運用に切り替える。
流れ
朝 6:55 自動でスリープする
(pm-hibernateコマンドをサーバのcronに登録する)
夜22:55 自動起動する
(WOL=WakeOnLan/常時起動のRaspberryPiからMagicPacketを定時にcron発出して叩き起こす)。
サーバ
メインサーバ fedora はこれ。HP ProLiant Microserver N54L。
買った時は12,000円くらいだった。ものすごいコスパよい。もう1台買っておくんだった。その後に後継機種(Gen8)が出たけど、8万円とか。
※ 同じような経験した人もいるようだ。
HP ProLiant MicroServer N54L 終息に伴い代わりを検討する (きりしま屋)
課題
①スリープのときにしっかりと電源が落ちるか?(作業はディスクに書き出され、ファンが止まり、電源消費が減るのでなければ意味が無い)
②スリープ復帰(WOL)したあとに、その前からしていた処理は継続されるか?
解決
①について
pm-hibernate というコマンドでスリープできた。似たようなので pm-suspend というコマンドもあるが、これだとファンは回りっぱなしだし、スリープの意味が無い(なお、pmは「PowerManager」の意味らしい)。
②について
スリープからWOLで復帰した後、なぜかpt3を認識できず、テレビ番組の録画ができなくなってしまった。スリープの際にpt3のドライバをアンロードして、その後に読み込みしていないからっぽい。以下で解決。
$ vim /etc/pm/config.d/pt3
SUSPEND_MODULES="pt3_drv"
この記述があると、pmサービスはスリープ時に pt3_drv をアンロードし、WOL復帰時に再度読み込みをしてくれるようだ。
ーーー
気づいた点
・サーバ fedora と RaspberryPi は、BUFFALOの無線LAN中継器「WEX-G300」を経由して無線接続しているが、MagicPacketは中継器を超えてブロードキャストできた。
・まれに pm-hibernate が失敗するときがある。サーバに ssh で入って pm-hibernate を叩いた後、直後のコンソールでEnterキーを連打等してしまうと、スリープされない仕様ぽい。
・動画のエンコード(HandBrakeCLI)している最中にスリープしても、復帰したら続きからエンコードが再開した。
・一時的にサーバの samba 共有が参照できなくなるので、NASとして接続してる周辺機器への影響が大きい。RaspberryPiでは mount -a が必要になる。
今後
・iPhoneやiPadで外出先からスリープできるようにする(Apache+PHPでやるか)。
・同じく外出先からWOLでWakeUPできるようにする。
・正しくスリープしたか、WakeUPしたかを、pingで生存確認できるようにする。pingの結果をHTMLに吐いて外出先から参照する。RaspberryPiからもpingして、結果をHDMI経由でテレビに映す。