サーバー類のリモート電源操作環境を整備

Pocket

計画停電や節電の関係で24時間稼働していたサーバーをスリープ運用に切り替えたり、停電空けの自動復帰が上手くいかなくて遠隔でリモート起動させないとならない場合があります。iPhoneアプリの活用も含めて、ここ最近やった準備をまとめておきます。同じことを考えてる方の参考になれば幸いです。

■我が家の構成

我が家はメインのサーバーがhpのML115G1でUPS(無停電電源装置)を使って保護しています。このLinuxサーバーがVPN(PPTP)サーバーも兼ねているので、これが落ちていると基本的に他の全てのマシンにもアクセスできません。Webサーバー、メールサーバーも稼働しているので、最低限このPCの稼働状態を保つことが最優先です。残念なことにこのマシンはBIOSでAC電源断後の自動起動を設定しても、UPS等による正常シャットダウンの場合は「不意の電源断」と見なされず自動起動してくれないようなのですが、幸いこの激安サーバーのBTOオプションでLights-Out 100cという遠隔管理ボードをつけてあり、これを利用すれば遠隔再起動できました。

2番目に重要なのはテレビ録画用の自作Windowsマシン。今までは安定性重視で24時間稼働だったのを節電時間帯はスリープに切り替えました(でもまだ録画完了後に自動でスリープに落ちないとか課題あり)。しかしこのPCはHDD容量の余裕もあることから、一時ファイル置き場にもなっていて、スリープしてるのを外から起こして中のファイルを取り出したくなったりします。これは仕事用PCなども同様ですが、これらはメインサーバーが生きていてPPTPで自宅内LANに入ることができれば、後はWake-On-Lan(LANケーブルからの特殊パケットによってPCを起動させる機能)を使って起こすことは可能です。

ついでに、先日買ったMacBook Proと同Airを「どこでもMy Mac」機能で相互に遠隔操作できるようにしたので、据え置きでスリープしているMBPを、外出先のMBAから利用できるようこちらも設定してみました。

■ML115 + Lights-Out 100cを遠隔操作で起こす

Lights-Out 100cはML115のPCIバスに装着されたボードで、本体が通電されてる限りは起動している独立したプロセッサをもつ簡易サーバーです。本体とは別のEthernetポートをもっていて、IPアドレスも独立です。Webブラウザやtelnet/SSHターミナルからアクセスして、本体のハードウェア状況(温度やファンの回転数など)を監視したり、電源のON/OFFができます(例えばOSがフリーズして全く操作を受け付けなくなっても、こちらからブチッとやれる)。また本体のグラフィック出力やキーボード入力に割り込め、ブラウザ画面から物理モニタ、キーボードの前にいるのと同じ操作が行えます(ネットワーク的に死んでいてもコンソールで操作したりエラーメッセージを読み取るなどの余地が残る)。ハードウェアレベルで画面共有付きの遠隔操作できる訳ですね。

IMG_0865 IMG_0866

今回の場合、画面共有までは不要で、電源投入操作が行えればOK。WebやSSHでもできるんですが、出先からなるべく簡単に行いたいということで、先日教えていただいたiPhoneアプリを導入しました。IPMI touchというものです。IPMIとはこうした遠隔管理システムのためのプロトコルで、Lights-Out 100cはIPMI 2.0の設定でいけます。

画面写真、左がハードの各種数値を表示した状態、右が電源操作画面です。ナウいですね。

今回のケースではLights-OutのもつIPアドレスはプライベートで、このPCが落ちてるとPPTPでも入れないという状況なので、ルーターの設定をいじってポートをリダイレクトしてやる必要がありました。セキュリティの為、必ずパスワードやユーザ名を変更しておきます。

余談ですが、このパスワード変更を失敗してしまい、Lights-Outにアクセスできなくなり焦りました。BIOS画面辺りでリセットできるかと思ったんですがそう簡単でもなく、結局と海外の掲示板で調べ、あるツールとDOSをUSBメモリにインストールし、おまじないのような長い16進数パラメーターをつけたコマンドを実行する必要がありました。これあんまりおおっぴらにするのもなんだなということで覚え書きは自粛。個人的なメモに留めておきます。

■その他のPCをWake-On-LANで起こす

Wake-On-LANは今時のEthernetボード(マザーにオンボードのものも含む)ならまず対応しているみたいなので、起こされる側は特になにも設定の必要はないと思います。ただWindowsやMacではオフにする設定項目もあるので、もし起きないようならチェックしてみると良いでしょう。

Windowsの場合、デバイスマネージャーから該当するネットワークアダプタのプロパティを開き、「電源の管理」タブで「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする(O)」のチェックを確認します(細かい文言はWindowsのバージョンによって違うかも知れません)。

MacOSXの場合、システム環境設定の「省エネルギー」で「ネットワークアクセスによってスリープを解除」でいいと思います。

さて、Wake-On-LANといえど、どんなパケットにも反応して起きてしまっては困りますので、マジックパケットと呼ばれる一定のルールに沿ったパケットを受信した時だけ復帰を実行するようになっています(モノによってはそれ以外のも反応するよう設定できるみたいです)。つまり起こす側はこのマジックパケットを出力できる必要があります。あと、PCが起動していない以上、IPアドレスは不定なので、マジックパケット送信のための宛先指定はMACアドレス(全てのネットワーク機器がもつ個別の識別番号)を使います。起こしたいマシンの有線LANポートがもつMACアドレスを予め調べておいて下さい。

・Linuxで起こす

ウチの場合、どのみちPPTPサーバーであるメインサーバーが起きていることが前提なのでそこにSSHでログインしてコマンドを叩くのが簡単です。CentOSの場合、net-toolsというパッケージに含まれるether-wakeというコマンドが使えます。ウチの場合は最初からインストール済みでしたが、もしない場合は、

yum install net-tools

でインストールできると思います。

使い方はシンプルで、

/sbin/ether-wake 00:5c:a9:21:55:ff

のようにMACアドレスを指定してやるだけ。root権限が必要みたいです。

σ(^^)はマシン毎のMACアドレスを覚えるのが大変なので、rootの.bashrcに

alias wake_pc1=’/sbin/ether-wake 00:5c:a9:21:55:ff’

のように書いておきました。これで次回ログイン時からは単にwake_pc1で実行できます。

・iPhoneアプリで起こす
IMG_0867

iPhoneからでもSSHアプリを使えば上記手順でできる訳ですが、アプリで簡単にできるものはそっちを使う主義なので、専用アプリを導入しました。iNet Proというアプリで700円です。これはスキャナーなどのネットワークツールの詰め合わせアプリなのでちと高いですが、同じところが出しているWake-On-LAN専用アプリiNet WOLなら230円です。

前者のみかも知れませんが、LAN内で稼働中のマシン一覧を取得してそこからリスト登録ができるので、一台ずつMACアドレスを調べて手打ちする手間も省けてGoodでした。

また相手がMacの場合、設定画面でIDとパスワードを保存しておけば、スリープ移行やシャットダウンもできるようです。ただウチでスリープを試した限り、画面は消えるものの、スリープランプが点滅にならないという感じでした。

(iPhoneのようにVPN経由で接続した端末からマジックパケットを送る場合、PPTPサーバー側でブロードキャストパケット中継を行う設定が必要でした。これは別エントリで説明します。)

・ルーター管理画面から起こす

BUFFALOの一部のブロードバンドルーターでは管理画面からLAN内の各マシンにマジックパケットを送る機能があるみたいです。該当機種をお使いの場合、それも簡単で良いかも知れません。

One thought to “サーバー類のリモート電源操作環境を整備”

  1. Poptopを使ったPPTP接続でブロードキャストを有効にする

    前エントリでVPN(PPTP)経由でWake-On-LAN(以下WOL)を使おうとしたら上手くいきませんでした。WOLでは相手のMACアドレスを使って宛先…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)