2011年3月23日水曜日

停電があっても不死鳥のように再起動してくれる自宅サーバーを作りたい

最近気になってるのは、まぁ、計画停電なわけなんです。[E:coldsweats01]



停電すると、FreeBSDな自宅サーバーが落ちてしまって、帰宅するまでそのまま、なんてことになってしまうので、これをなんとかしたいです。



それも、できるだけ安上がりな方法で。



まず、BIOS設定にて、電源が復旧したあと必ずパワーオンする設定へ、変更しました。

あれ?この場合、停電するまえに、正常にshutdownしちゃうと、電源オフのままになるのかな?
だから今日は電源が切れたままだったのかな。

OSが動いている途中に電源が切れてしまうと、当然、ファイルシステムにダメージがあるわけで、これをなんとかしないといけないです。
/etc/rc.confにて

fsck_y_enable="YES"

と書いておく・・・そんな度胸のある方法もあるのかなぁ…ダメだよねぇ[E:coldsweats01]



というわけで、こんな方法を考えてみました



  1. USBメモリにFreeBSDをインストールし、このUSBメモリをread onlyマウントにてブートさせる


  2. ハードディスクにもFreeBSD一式をインストールしておき、こっちをjail環境で動かす


  3. 停電する直前に、jail環境だけ停止して、ハードディスクはunmountする


これを先週の土曜日から試行錯誤でやってるんですが、まだまだ、すんなりといかない状態。



まず、いきなり、USBメモリからブートさせると、ルートファイルシステムが見つからない、という問題が発生。
これ、カーネルがUSBなディスクを認識するまでに、ちょっと時間がかかるため、マウントする瞬間には、まだディスクが認識されていない、っていうことらしいです。
ネット検索して、解決策はすぐに見つかりました。/boot/loader.conに、以下の1行を追加。



kern.cam.boot_delay=10000



つぎの問題。
jailって、いろいろネットワークまわりに制限があったんですね。あまりこれまで使い込んでいなかったので、はじめて知りました。これまで動いていたものを、そのままjailにつっこんでも、必ずしもそのまま動いてくれるとは限らない。



さらに、ひどいことをやってて、USBな方は8.2-RELEASEなんだけど、HDDの方は7.2-STABLEだったりして、なんか微妙に動かないことがあったり…
まあ、そんな無茶をするのが悪いのです。はい。



20110322



0 件のコメント:

コメントを投稿