2007/06/29(金)サーバ入れ替え その2
2007/06/29 12:20
あまり本質的でない話なのだが、ノートPCをサーバにしたときにちょっと悩むのが電源ボタンへのアクセスである。
省電力やホコリ対策で液晶は閉じて使うのが通常であるが、閉じた状態では現役のほとんどのノートPCでは電源ボタンにさわれない。当然ノートPCを開けばすむ話である。が、開かずに運用できるならば設置体積を節約できるという利点がある。メンテナンスなどでシャットダウンしなければいけない機会はあり、WOLができれば若干便利になる。以前挫折したWOLであるが、今回は比較的やりやすいノートPCということで再チャレンジしてみることにした。
結論から言うとできるようになった。どうやらWOLの仕組みに重大な勘違いがあったようだ。順に話を進めよう。
まず、以前の挫折時の話を整理しよう。
・マザーボード、NIC、PCIコネクタの位置等に相性がある
・スタンバイ(S3)からの復帰は成功確率が高いが、休止(S4)や停止状態(S5)からだと難しい
・WOLが成功する組み合わせで、停止->起動ができるときもあったが再現性がない
ということだった。
ここで注目すべきは再現性がないという点。「再現性がない」は、同じ状態と自分が思いこんでいたものが実は異なるものだったりすると話が変わる。これに気づいたのはnx6110で実験しているときに「Windows XPで終了させたとき」と「電源ボタン長押しで終了させたとき」の挙動が違うことを発見したからだった。つまりどうやら電源オフの状態というのは一意ではなく、「単に電源が切れている状態」というのとは違う、「OSがWOLに備えてNIC側になにかを設定した状態」というのがあるらしい。
わかってしまえば情報は見つかるようになるものである。たとえば、「Wake-on-lan 電源ボタン」とかでググるとヒントが色々見つかる。
http://www-06.ibm.com/jp/domino04/pc/support/Sylphd07.nsf/jtechinfo/SYJ0-03CEEF6
http://www.fmworld.net/biz/celsius/manual/03kamiki/8861330/h_bios12.html
つまり、電源ボタン長押しやケーブル引っこ抜きなどによって電源を切った場合ではWOLは働かない。電源ボタン長押しで停止->WOLを試していた以前の実験では元から成功するわけがなかったのだ。ちなみにこのことから、停電時に遠隔地から電源オンするというWOLの無茶な使い方はUDPブロードキャストという点をさっ引いても、さらに厳しそうだということもわかった。ことこの用途に関しては、そういった機能を備えた無停電電源や秋月のIP POWER(ただし当然ルーターはコンセント接続=電源オンじゃないとだめ)とかそっちを使うしかない。
さて、Windows XPは終了時に自動でこのWOL待機を設定しているようである。きちんとWindows上で終了手続きを踏めばS5からのWOLが成功するようになった。一方、Linuxのカーネル2.6では今のところそのようにはなっていない。終了時にソフトで待機設定をたたいてやる必要がある。探してみると、ethtoolというソフトでWOL関係の設定をいじれるようだ。
早速インストール。
# aptitude install ethtool
Fedora Core掲示板
http://bbs.fedora.jp/read.php?FID=8&TID=4112
を参考に、init.dにset_wolというスクリプトを作って、こう書いてやる。
#! /bin/sh
/usr/sbin/ethtool -s eth1 wol g
で、debian流のスクリプト組み込み。再起動時(run level 6)に設定する必要はないはずなので、終了状態(run level 0)だけでいいはず。
# chmod +x set_wol
# update-rc.d set_wol stop 89 0 .
haltさせて実験させてみたところ、問題なくWOLができるようになった。あー難しかった。
なお、Windows上からWOLさせるなら、
http://www.vector.co.jp/soft/win95/util/se241927.html
がいいようだ。
Linuxからでは、
http://packages.debian.org/stable/net/wakeonlan
とかでいい。
2007/06/29(金)サーバ入れ替え その3
2007/06/29 14:42
何でこんな不毛なテーマを考えているかというと、2つの理由がある。
1つは、前回の記事との関連で閉じたままでの運用が可能かという話。もう1つはキーボードがないジャンクノートは果たしてサーバになりうるかという疑問からである。
実のところ、どういったPCにUSBキーボードを挿そうがLinuxカーネルが対応していないはずはないのだ。問題は、各ディストリが「インストールCDの段階で」それをケアしたカーネルを作っているかどうかである。そりゃあそうだ、キーボードがないんだから、sshで入れるまではなんとかUSBキーボードで処理しなきゃいけない。カーネルを作り直すにしたってそうだ。自前のカーネルを組み込んだインストールCDを作るのはできるんだろうけどちょっと労力。自分のLinuxとのつきあい方からすると、やっぱりオフィシャルのイメージでインストールできてほしい。
でもう結果だけ書く。全部debian系。
debian woody - ○
debian sarge - ×(無反応)
debian etch - ×(二重入力≒チャタリング状態)
ubuntu 7.04 - ○
knoppix4.xも試したはずだが、メモが残ってない。確か大丈夫だったように思う。
ブートローダまでは大丈夫でカーネルが動くとおかしくなるのでもういけない。それにしても明らかにdebianが無頓着だということがわかる。古いので大丈夫で、今のはだめとなるとむしろ期待が持てない。ここらへんubuntuからのフィードバックを期待するdebianコミュの人たちの気持ちがわかるなあ。
打開策はないわけではないのだろうけど、こんなくだらないところで悩みたくないなら、キーボードは最低限ついているノートPCでないと無理と確定。特によくよく考えれば、一部ファンクションキーが動かないとビデオ出力とかで困りそうだものね。サーバにするんだったらやっぱり最低限下半身完品ってことみたい。最近のノートはBIOSが外部出力に出せるものがほとんどなのでディスプレイは必ずしも無くてもよさそう。今回入手したnx6110のように、一部縦線とか表示不良ならベストですかね。もちろん完動品買えるならそれが一番いいんだけど。