2008年11月30日日曜日

(FreeBSD) ML115 G5で、IPMIによるサーバー状態の監視

HP Proliant ML115 G5で、BIOSメニューをながめていると、IPMIというのが出てきます。



IPMIというのは…

http://www.intel.co.jp/jp/business/glossary/6796.htm
サーバー・プラットフォームの状態 (温度、電圧、ファン、バスなど) 監視や復旧、リモート制御を行うための標準インターフェイス仕様。

というものだそうで、聞いたことはあったけどこれまで使ったことはなかったので、試してみました。



とはいえ、BIOSメニューでIPMIの項目を眺めていても、たいした設定項目は出てきません。



20081130



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できなくなる、ってことがよくあります。



0 件のコメント:

コメントを投稿