HP ML115には IPMI (Intelligent Platform Management Interface) という便利なインターフェイスが内蔵されています。せっかくなので使ってみましょう。 なお、検証はmicrosoft Windows XP professional SP3 を対象としています。 またこの情報は 2008/ 5/29現在の情報です。このページにあるプログラム・情報等は無保証ですので自己責任( at own risk )でご利用ください。
まずは、OS から IPMI を利用できるように以下の2つのソフトをダウンロードしてください。
・Windows 2000/Windows 2003 IPMI ドライバ for HP ProLiant DL140
・IPMItool 1.8.8 for Microsoft Windows 2003 with Sun IPMI System Management Driver Support
ゆとり お断りということでインストール方法は書きませんが、たぶん何の問題も無くインストールできると思います。IPMIドライバはHP DL140用になっていますが、ML115でも利用可能です。インストーラ形式ですので指示通りインストールしてください。
IPMItoolは、SUNのサイトで会員登録(無料)をしないとダウンロードできません。 ダウンロード後、適当なところに解凍してください(以下の説明では、c:\Program Files\ 以下へ解凍したと仮定して説明します)。
それでは操作してみましょう。コマンドプロンプトを起動して
>ipmitool sdr と、打ってみます
ドライバが正しく動作している場合、このようにIPMIの情報を表示します。(ちなみに、RCPU Diode1というのがCPU温度)
|
以下のような画面になった場合、ドライバが正しく動作していないので注意してください。

さて、ipmitoolが動くことを確認したところでIPMI機能の一つ、watchdog timer機能を利用してみようと思います。
watchdog timer とは、「番犬(タイマー)」のこと。何の「番」をしているかというと、マシンがきちんと動作しているかの「番」をしています。もしもOSが反応をしなくなった場合、自動的にマシンリセットをかけてくれるというすばらしい機能です。とはいえデフォルトではこの番犬君ぐっすりと寝ていますので、それを叩き起こして活用しようというのが今回の趣向です。 さきほどの ipmitool sdr を実行したときに Watchdog | Not Readable と表示されますが、ちゃんと使えますので(てっきり使えないと思っていたのですが)。
watchdog timerの動作に関しては、こちらの方が詳しいので興味ある方はご確認ください。さて、どうやってwatchdogを起こすかというと、先ほどインストールしたドライバとipmitoolを利用します。ipmitoolの使い方に関しては、こちらを参考にさせていただきました。またipmitoolの日本語解説はこちらにあります(ありがたく活用させていただきましょう)。ipmiに与えるデータの詳細は[v2.0 Specifications]のpdfを参考にしてください。
<プログラムについて>
はじめはperlで書いたのですが、たいしたことをやってもいないのにそこまで敷居を高くする必要もないかと思い、他の方法を探りにネットをさまよっていたところ、WSH(Windows Script Host)というのを発見したので利用してみました。windowsに標準でこんな機能があったなんて今回はじめて知りました。今までは簡単なプログラムはbatやperl使っていたもので。そんなわけで、初wsh program なので果たしてコレでコードの書き方が正しいのか・・・。
内容的には、ipmitoolを利用して、watchdog timerに与える基準値をセット。あとは一定時間ごとにtimerをリセットする。といった感じになっています。このタイマーのリセットが行われない(= OSが停止)になると、BIOSレベルでマシンを再起動します(IPMIToolに与えるパラメータによっては、リセットではなくpower offなども可能です)。実行する前に、実行する環境に合わせて監視したい時間値を設定してください(デフォルト10分)。ちなみにML115のBIOS設定でwatchdog timerをdisabledにしておいても、プログラム動作の方が優先されます。
' ----------------------------------------------
' Watchdog Timer(require ipmitool)
' (C)2008 MAGiCTOUCH,IchirohSatoh.
'
' ipmiのwatchdog timerをセットして起動。
' 自動的にtimerのカウントダウンが行われるので、
' 0になる前に、リセットをする
' (timerが 0になると マシンリセットが掛かる)
'
' rel.01 JUN1,2008 version 1.00
' ----------------------------------------------
Set shell = WScript.CreateObject("WScript.Shell")
Dim timer ' set a watch time
Dim watchdogtimer ' watchdog timer
Dim sleeptimer ' sleep(wait) timer
Dim msb,lsb ' timer work
Dim param ' ipmitool.exe option
Dim ipmitool ' exe name
Dim result
'-- set your environment ' 環境に合わせて変更してください
ipmitool = "ipmitool.exe" ' IPMITOOL
timer = 10 * 60 ' 10min. ' watch timer (sec.) [max 6553sec.]
'-- timer calc ' リセットタイマーの時間等の計算
sleeptimer = timer * 1000 \2 ' sleep timer (msec)
watchdogtimer = (timer * 10 ) and &HFFFF ' watchdogtimer
lsb = watchdogtimer mod 256 ' Least Significant Bit (lower)
msb = watchdogtimer \ 256 ' Most Significant Bit (higher)
'-- application log ' 必要ない人はコメントアウト
shell.LogEvent 4, "Watchdog Timerを開始しました。"
'-- set watchdog timer parameter ' timer 設定
param = " raw 0x06 0x24 0x44 0x03 0x00 0x10 0x" + Hex(lsb) + " 0x" + Hex(msb)
shell.Run ipmitool + param, 0, true
'-- I watch a watchdog timer. ' ひたすら監視
param = " raw 0x06 0x22" ' reset watchdog timer param
do while True
shell.Run ipmitool + param, 0, true ' reset watchdog timer
WScript.Sleep( sleeptimer ) ' sleep for next watchdog timer reset
loop
WScript.quit
<使い方>
watchdogtimer.zip
├ wdt.vbs
├ stop.bat
├ watch.bat
└ documents
Downloadしたzipファイルの中身を ipmitool.exeのあるフォルダに解凍してください。
wdt.vbsが実行ファイル本体です。 watch.bat を実行すると、現在のipmi(watchdogtimer)の値を2secごとに表示をします。 stop.bat はwatchdogtimer を停止させます。このときすでに wdt.vbs が動作していた場合、watchdogtimer 自体は停止しますが、wdt.vbs本体は動作し続けます。その場合にはタスクマネージャ等でwscript.exeをkillしてください。たぶんまじめにプログラムを書けば停止させられるとは思うのですが、そのあたりは利用者にお任せします。
利用方法としては、スタートアップフォルダにwdt.vbsのリンクを入れておくのが楽かと。sexeを使ってサービス登録をしようとしたのですが、ウチの環境ではうまく動きませんでした。個人的には、どなたかもう少し使いやすいツール類を作っていただけると うれしいです。
[ 参考サイト ]
ipmi_watchdogのipmitoolに よる操作方法
Linuxでのipmi利用方法
ハードウェア・ウォッチドッグ・タイマー iTCO_wdt のススメ
ここを読むと intel chipマザーボードの場合、watchdogが使えるらしいんですが、windows上から扱うにはからどうやればいいんだろうか?
Intelligent Platform Management Interface (intel)
Intelの IPMIのページ
Software/IPMITool
IPMIToolのwiki page
[つくったひと]
and [at] big.or.jp
website MAGiC TOUCH |