雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|
2024|06|
2025|01|

2010-04-01 [長年日記]

[FreeBSD] HP Integrated Lights-Out 2でリモートコンソール

HP ProLiant 300/500/700シリーズには標準でIntegrated Lights-Out 2(iLO2)というリモート管理機能が(制限付きながら)付いてきます。これをFreeBSDで使う方法について調べてみました。

BIOSの設定

まずはiLO2を使えるようにするため、BIOSからネットワークの設定を施します。

  1. BIOS画面で[F8]キーを押し、Integrated Lights-Out 2に入る
  2. [Network]→[NIC and TCP/IP]を開き Network Interface Adapter が Shared Network Port になっていることを確認。
  3. 静的なIPアドレスを割り当てる場合、[Network]→[DHCP/DNS]で設定
  4. [User]→[Edit]でAdministratorのパスワード変更、もしくはAdministratorを消して、[Add]でユーザー追加

FreeBSDでのNIC共有設定

DL320などはNIC1(bge0)をOSとiLO2でシェアして使います。FreeBSDでこの機能を使えるようにするためには、 /boot/loader.conf に以下の行を追加します。

hw.bge.allow_asf="1"

この設定をしないと、OSが起動してNICが初期化された段階でiLO2との通信ができなくなります。

これで設定は完了で、ブラウザからiLO2のIPアドレスにアクセスして以下のようなログイン画面が表示されれば成功です。

ログイン画面

iLO2の制限

ところが、iLO2の標準機能ではKVM over IPはOS起動前までしか使えません。起動後、BIOSのもろもろの表示までは普通に使えるのですが、OS起動の段になるとわざわざ遮断して以下のような画面になります。

ライセンス制限

Advanced Licenseは1年で54,000 円、+17,400 円で4年に延長もできるようですが、サーバの値段と比べるとちょっと高すぎます。解説ページの「モデル仕様の比較」を見ると、リモートシリアルコンソールは使えるようなので、FreeBSD側でシリアルコンソールの設定をします。

FreeBSDでシリアルコンソール

シリアルコンソールに切り替えるため、/boot.config を作成して以下を記述します。フラグの意味はboot(8)参照。

-Dh

同じく、/boot/loader.confにも以下の記述を追加します。こちらの意味はloader.conf(5)参照。

console=comconsole

DL320では、iLO2の仮想シリアルコンソールはsio1(COM2)になるので、/boot/device.hintsを編集してsio1をコンソールに指定します。

#hint.sio.0.flags="0x10"    ← コメントアウト
 :
hint.sio.1.flags="0x10"     ← 追加

さらに、/etc/ttysを編集します。

ttyd1   "/usr/libexec/getty std.9600"   vt100   on  secure

これでOSを再起動するとシリアルコンソールを利用可能になります。

シリアルコンソール

それでも…

これで一応シリアルコンソールは利用可能になりますが、KVM over IPではコンソール画面のアクセスした時点の状態(OSがハングアップした場合、その直前のエラーメッセージ等)が見え、うまくいけばスクロールロックキーによってバッファの内容も確認できるのに対し、シリアルコンソールではエンターキーを押すとうえのような画面になるだけで、直前のカーネルメッセージの確認ができず、キー入力に反応するかどうかぐらいでハングアップを判定するしかないようです。これではちょっとリモート管理としては不十分ですね。