トップページ»3.4.製品»ESXiホストのIPMIを無効化する

3.4.製品



ESXiホストのIPMIを無効化する

諸事情があって古いサーバーに仮想ゲストを移さなければならない事態になって、いざサーバーのスペックを見たらメモリが1Gしかなかったりしてまして...

ESXi4だと最低2G積んでないとハイパーバイザのインストールすら拒否される。 仕方ないのでESXi3を入れることにしたんですが、インストール後起動しようとすると特定の場所で固まる問題が発生。 画面には、

Loading module ipmi_si_drv ...

と表示されている。 コンソールでAlt+F12押して起動ログを見ると、なんとなく微妙に動いているような動いていないような感じ。

ぐぐってみたら全く同じ現象に出くわしている人は多いみたい。 上の状態で1時間くらい待てばとりあえず起動はするという事だったので待ってみると、確かに1時間10分位で起動した。 ログ見るといくつかのIPMIモジュールをロードする際に異常があるのかタイムアウトする(にしちゃ長過ぎるけど)みたいな感じ。

見た通りIPMI関係っぽいので必要ないっちゃ必要ない。 でも起動に毎回こんなに時間かかってるのではたまらない。 なのでこれを無効化してしまおうと。




他の方が書いている通り、単純にesxcfg-moduleでipmi_msghandlerとかipmi_deviutfとかをdisableにしただけじゃ問題は解決しない。 モジュールをロードしないようにする必要がある。

適当にESXi内のファイルをあさってみたところ、/sbin/configにipmi関係のモジュールをロードする箇所を発見。 ここを編集していけばいいはず。 ちなみにESXi4の場合は/etc/vmware/init/init.d/72.ipmiみたい。

ただ単純に編集しただけだと、ホストを再起動したときに設定が初期化されてしまうので、編集したファイルをoem.tgzに放り込む必要がある。 で、以下が今回行った作業内容。

まず/sbin/configを直接じゃなく、テンポラリにコピーして編集する。 後でtarで固める時に実際の構造と同じに展開されるようにmkdirしてその中にコピーすること。

mkdir -p /tmp/oem/sbin
cd /tmp/oem/sbin
cp /sbin/config .
vi config

このファイルの中に

loadIPMI=`vsish -e get /hardware/ipmiSupport | sed 's/IPMI state: \([^ ]*\).*/\1/'`

というのがあって、これ以降数行がIPMIモジュールのロードをしている。 なので、上の行をコメントアウトして次の行でloadIPMIに0を代入する。

# loadIPMI=`vsish -e get /hardware/ipmiSupport | sed 's/IPMI state: \([^ ]*\).*/\1/'`
loadIPMI=0

これでファイルを保存したらtarして出来たファイルを/bootbankにコピーする。

cd /tmp/oem
tar cvzf oem.tgz sbin
chmod 755 oem.tgz
cp oem.tgz /bootbank/

これで起動時に/sbin/configが上書きされて、IPMIモジュールがロードされないようになる。

ESXi4でも同じ方法でいけるとおもう。 この場合72.ipmiの中をコメントアウトすればいいんではないかと。


投稿日 : 2009年12月 8日

この記事に関する言及

このエントリーのトラックバックURL:
http://akionweb.com/mt-tb.cgi/492

コメント

このページに対する感想、意見をお寄せ下さい。




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

おことわり

当サイトに掲載している全ての情報は、全て当サイト管理者が個人的、実験的に試した事、又は独自に調査したものです。 従ってその情報に誤りがある可能性も多分にあります。 当サイトの情報をそのまま鵜呑みにされませんようお願い申し上げます。 また当サイトの情報を元に作業されたりする場合はそれをご理解頂いた上で、あくまで自己責任の元で行ってください。

トップページ»3.4.製品»ESXiホストのIPMIを無効化する