HP Proliant ML115 G5で、BIOSメニューをながめていると、IPMIというのが出てきます。
IPMIというのは…
http://www.intel.co.jp/jp/business/glossary/6796.htm
サーバー・プラットフォームの状態 (温度、電圧、ファン、バスなど) 監視や復旧、リモート制御を行うための標準インターフェイス仕様。
というものだそうで、聞いたことはあったけどこれまで使ったことはなかったので、試してみました。
とはいえ、BIOSメニューでIPMIの項目を眺めていても、たいした設定項目は出てきません。
IPMIによって、ネットワーク経由で、ハングアップしたサーバーの再起動ができる、とかいうものかと思ってたんですが、ML115 G5本体だけでは、それはできないような雰囲気。オプションで、「HP Lights-Out 100cリモート マネジメント カード」というのがあるのですが、それを使えば、いろいろできそうですけど。
「LO100 Device Status : Absent」って表示されてるのは、それを買え!ってことですね(笑)。
ただし、それが無くても、温度やファンの回転数をチェックするくらいなら、出来ました。
☆
FreeBSD 7.1-BETA2 (i386)で試してみました。
ipmiドライバ
ipmiというドライバが必要です。
/boot/loader.confに
ipmi_load="YES"
とか入れておけばよさそうです。
ipmiはsmbusに依存しているようなので、ipmiとsmbusが組み込まれます。
# kldstat
Id Refs Address Size Name
1 7 0xc0400000 62d184 kernel
2 1 0xc0a2e000 bf3c ipmi.ko
3 2 0xc0a3a000 2c20 smbus.ko
4 2 0xc0a3d000 6b2c4 acpi.ko
5 1 0xc65ff000 2000 green_saver.ko
私の場合、kernelを再構築しちゃって、ほとんどのモジュールはビルドしないようにしていたので、configファイルに
makeoptions MODULES_OVERRIDE="linux acpi/acpi syscons/green drm ipmi i2c/smbus"
という感じで、「ipmi i2c/smbus」の2つを追加して、kernel再構築しなおしました。
ブート時のメッセージに、ipmi0というのが出てきました。ipmi1はエラー?
% dmesg | grep ipmi
ipmi0: <IPMI System Interface> port 0xca2-0xca3 on acpi0
ipmi0: KCS mode found at io 0xca2 on acpi
ipmi1: <IPMI System Interface> on isa0
device_attach: ipmi1 attach returned 16
ipmi0: IPMI device rev. 1, firmware rev. 3.2, version 2.0
ipmi0: Number of channels 1
ipmi0: Attached watchdog
ipmitoolをインストール
portsにある、sysutils/ipmitoolをインストールしました。
「impitool sdr」で、ファンの回転数、温度、電源電圧などが見られます。
# ipmitool sdr
POST Error | 0x01 | ok
Memory ECC | Not Readable | ns
ACPI State | 0x01 | ok
PCI Reset | 0x00 | ok
CPU Fan | 2017.76 RPM | ok
Rear Fan | 2164.50 RPM | ok
CPU Diode | 33.50 degrees C | ok
Front Ambient | 20 degrees C | ok
System 12V | 12.04 Volts | ok
System 5V | 5.15 Volts | ok
System AUX 5V | 5.05 Volts | ok
System 3.3V | 3.39 Volts | ok
System AUX 3.3V | 3.36 Volts | ok
CPU Vcore | 1.13 Volts | ok
CPU 12V | 12.04 Volts | ok
HT 1.2V | 1.21 Volts | ok
Mem Vcore | 1.82 Volts | ok
MEM VTT | 0.91 Volts | ok
MCP55 1.5V | 1.51 Volts | ok
MCP55 1.4V | 1.40 Volts | ok
Therm-Trip | 0x01 | ok
CPU Prochot | 0x01 | ok
System Reset | 0x01 | ok
NMI | 0x01 | ok
PCI Error | Not Readable | ns
CPU Socket | 0x02 | ok
LO100 Present | 0x01 | ok
Watchdog | Not Readable | ns
電源が入ってることが確認できます・・・といっても、電源が入ってないとコマンドを実行できませんが。
# ipmitool chassis status
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : previous
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
Sleep Button Disable : allowed
Diag Button Disable : allowed
Reset Button Disable : allowed
Power Button Disable : allowed
Sleep Button Disabled: true
Diag Button Disabled : true
Reset Button Disabled: true
Power Button Disabled: true
これって、本当は、サーバー本体とは別に、サーバーをリモート監視するためのコントローラのようなものがあって、その監視コントローラに、LAN経由でアクセスして、chassis statusみたいなコマンドを発行するんですよね、きっと。
☆
他のコマンドを試してみたり。
電源を切ることはできました。syncせずにpower offしちゃったようで、次回の起動時に、fsckしてました。ダメじゃん。
(別のFreeBSDマシンから、ML115 G5にログインしていた)
# ipmitool chassis power off
Chassis Power Control: Down/Off
Connection to ML115G5 closed by remote host.
Connection to ML115G5 closed.
(この後、ML115 G5の電源が切れた)
さらに他のコマンドも試してみると、
# ipmitool chassis power cycle
Chassis Power Control: Cycle
Connection to ML115G5 closed by remote host.
Connection to ML115G5 closed.
これも、syncせずにリブート?しちゃったかと思ったら、FreeBSD起動後に、
acpi: suspend request ignored (not ready yet)
acpi: request to enter state S5 failed (err 6)
というメッセージがたびたび出力され、またこのメッセージを出力したあとにファンがうなりをあげたりとかで、変な感じになったので、shutdownコマンドで電源を落として、念のため、コンセントも抜いてみました(ATXだから一部通電しつづける、という理由で)。
リモートから電源オンしたいところですが、ML115 G5本体だけのIPMI経由では無理っぽいです。
WoL(Wake On Lan)ができそうですが、あいにく、FreeBSDでは、NICによって、WoLができたりできなかったり、というのが現状らしく、今のところ、成功していません。
WoLできるようにするためには、シャットダウン処理時に、NICのpower stateをそれ用に設定する必要があるんですが、FreeBSDではNICを完全にpower offにしちゃうので、magic packetを拾えない、ってことじゃないかと思います。
Windows 2000/XPで電源オフしたあとはWoLできるのに、FreeBSDで電源オフするとWoLできなくなる、ってことがよくあります。