<前のページ | 1 | 2 | 3 | 4 | 5 | 次のページ>
さて、create_rrds.shを実行することでセンサーごとにデータベースファイルが作成されるはずなのですが、今回はファン回転数センサー(Processor FAN、Rear FAN1、Rear FAN2)のファイルが作成できないというトラブルが発生しました。このページではこの問題にどうやって対処したのかを説明します。トラブルに遭遇しなかった方には不要な手順ですので、その場合は次のページに進んでいただいてかまいません。
まずスクリプト実行時のメッセージを以下に示します。
$ /usr/share/ipmitool/create_rrds.sh Creating file /var/www/rrd/i110Rc-1h-Processor Vccp.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard P_Vtt.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard 1.5v.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard 1.8v.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard 3.3V.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard 5v.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard 12v.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard VBAT.rrd Creating file /var/www/rrd/i110Rc-1h-Baseboard Temp2.rrd Creating file /var/www/rrd/i110Rc-1h-Processor Temp1.rrd Creating file /var/www/rrd/i110Rc-1h-Processor FAN.rrd ERROR: min must be less than max in DS definition Creating file /var/www/rrd/i110Rc-1h-Rear FAN1.rrd ERROR: min must be less than max in DS definition Creating file /var/www/rrd/i110Rc-1h-Rear FAN2.rrd ERROR: min must be less than max in DS definition
このメッセージを見ると、初期パラメータとして与える最小値が最大値よりも大きかったということのようです。そこで、ファン回転数センサーの詳しい情報を見てみることにしました。個別のセンサーの情報は1ページ目で紹介した「sdr get」で取得できますが、「sensor get」でも取得できます。以下はCPUファン(Processor FAN)の情報です。
$ ipmitool -I lanplus -H 172.17.4.129 -U hmori -P xxxxxxxx sensor get "Processor FAN" Locating sensor record... Sensor ID : Processor FAN (0x40) Entity ID : 3.1 Sensor Type (Analog) : Fan Sensor Reading : 3039.514 (+/- inf) RPM Status : ok Lower Non-Recoverable : na Lower Critical : na Lower Non-Critical : na Upper Non-Critical : 2364.066 Upper Critical : na Upper Non-Recoverable : na Assertion Events : Assertions Enabled : unc+ Deassertions Enabled : unc+
これによると現在CPUファンは約3000回転で動作しているようですが、回転数のレンジはUpper Non-Critical(許容上限値)以外設定されていません。その許容上限値も2364.066回転と現在の実測値より小さくなっています。どうも様子がおかしいのでNECに問い合わせたところ、以下のような回答をいただきました。
というわけで、i110Rc-1hの場合ファンセンサに関してはipmitoolが表示する閾値はあてにならないようです。そこで本体を開いてファン自体を調べてみました。CPUファンはAVC(Asia Vital Components)というメーカーの製品で型番は「DA06010B12U」。60×60×10mmの2ボールベアリングファンでした。スペックシート(PDF)によると、5.0~13.2V駆動が可能で定格時(12V)の回転数は5400回転です。
ケースファンもAVCの製品で型番は「DB04028B12U」、40×40×28mmの2ボールベアリングファンです。5.0~13.2V駆動で定格時(12V)の回転数は16500回転です(スペックシート)。
さて、定格時の回転数は分かりましたが、下限値、上限値をどれくらいにするのが適当なのか分かりません。そこでアイドル時と高負荷時のファン回転数を調べ、それにマージンを取って下限値、上限値とすることにしました。高負荷状態を作り出すツールを“ストレステストツール”と呼びますが、今回はストレステストツールとしてcpuburnを利用しました。このツールにはCPUのアーキテクチャごとに最適化したバイナリが用意されており、Pentium II以降のIntel製プロセッサ用コマンドはburnP6です。これをサーバ上で以下のように実行します。
$ burnP6 & $ burnP6 &
このマシン「i110Rc-1h」のCPU(Core 2 Duo)はデュアルコアプロセッサですが、cpuburnはシングルスレッドのツールです。そこで上記のように2つ実行して2つのコアがフル稼働するようにしています。以下がテスト結果です。
アイドル | 高負荷(cpubrun 1時間) | |
CPU温度(℃) | 55 | 98 |
マザーボード温度(℃) | 39 | 47 |
CPUファン(RPM) | 3039.51 | 3546.10 |
ケースファン1(RPM) | 5590.34 | 8903.13 |
ケースファン2(RPM) | 5590.34 | 8741.26 |
室温(℃) | 26 | 26 |
cpuburnでCPU使用率100%の状態を1時間続けましたが、CPUファンの回転数は500回転ほどしか増えませんでした。一方、ケースファンのほうは3000回転以上増えています。この結果を基に、上下にマージンを取って最小値、最大値を以下のようにすることにしました。
最小値 | 最大値 | |
CPUファン(RPM) | 2000 | 5000 |
ケースファン(RPM) | 4000 | 10000 |
それでは上記の値でデータベースファイルを作成します。RRDtoolのデータベースファイルを作成するためのコマンドはcreate_rrds.shに記述されているので、それを参照にしてrrdtoolコマンドを以下のように実行しました。
$ rrdtool create "/var/www/rrd/i110Rc-1h-Processor FAN.rrd" \ --step 300 DS:var:GAUGE:900:2000:5000 \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:6:336 \ RRA:AVERAGE:0.5:12:720
上記はCPUファン用のデータベースを作成するコマンドの例です。内容については以下を参照してください。
このようにRRDtoolでは、どのようなデータをどれくらいの分量保持しておくのかをあらかじめ設定しておきます。そして新しいデータを記録する際は、データベース上のいちばん古いデータが上書きされます。この仕組みにより、RRDtoolのデータベースファイルは肥大化しないようになっているのです。
CPUファンの次は、ケースファンのデータベースファイルも同様の手順で作成します。
ケースファン1
$ rrdtool create "/var/www/rrd/i110Rc-1h-Rear FAN1.rrd" \ --step 300 DS:var:GAUGE:900:4000:10000 \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:6:336 \ RRA:AVERAGE:0.5:12:720
ケースファン2
$ rrdtool create "/var/www/rrd/i110Rc-1h-Rear FAN2.rrd" \ --step 300 DS:var:GAUGE:900:4000:10000 \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:6:336 \ RRA:AVERAGE:0.5:12:720
少し回り道になりましたが、これでデータベースファイルが用意できました。
<前のページ | 1 | 2 | 3 | 4 | 5 | 次のページ>