別に若手でもなんでもないuchikawa-yです 「DSAS開発者の部屋」の方ではおそらく読んでいただける人の期待するものと違うだろう、ということで比較的フリーダムなこっちの方を占拠することにします。『抵抗は無意味だ!』あ、違うか。次何か大物を出す場合には独立したTopをもらえるといいなぁ。 要するにサーバラックなどの環境を把握するための温度測定システムを作ってやろうという話です。Hardwareのカテゴリを作りました。ここは(当面)私の領域です!

1. なぜサーバラック内の温度を測定するか

サーバの信頼性の観点からサーバラック内の環境を正確に把握するのは案外大事なことです。 DSASブログでも以前ラック内温度が低すぎるためにHDDの動作に問題が発生した件がありました。 データセンタではラック内の温度管理を何らかの方法で行っています。あらかじめ決められた基準でユーザに対してラックを提供しています。しかし実使用においてはサーバの設置状況、冷却の方法などによりラック内の温度分布は変化します。たとえばラックの上部と下部では温度差がある場合があります。 またエアフローを考慮した設置方法と、あまり適切ではない設置方法をとった場合に全体の温度分布に違いが発生する場合もあるようです。 ユーザがラック内の温度分布を必要に応じて測定し、サーバ設置や利用方法などの運用に反映させることができればラックの利用効率を高め、かつ信頼性を確保する指針の一つになるでしょう。

2. サーバラック内温度測定の概要

サーバラック内の温度測定を行うにあたり、測定の大まかな用件を示しておきます。
測定温度範囲 10℃~100℃(サーバ排気温を含む)
センサの設置範囲 ラック(80cm×1m×2m程度)が最大10台程度
湿度範囲 30%~60%程度(結露しない)
測定点数 数点~数10点
一般のオフィスルーム内の温度測定とそれほど変わりませんが、センサの設置範囲は最低2m程度、複数のラックの測定を行う場合は20~40m程度の総延長となることが想定できます。測定装置を複数置いてネットワーク接続をする方法も考えられますが、ここでは測定用の機器を最低限の数でまかなえるようセンサ側の制約を少なくする方向で考えます。 温度分布を知りたいため測定点は最低ラック内数点は必要です。配線が少なくてすむような構成が可能なセンサが望ましいです。

3. センサのインターフェース (1-Wire)

温度センサは温度に対応した電圧や電流のアナログ値で出力するものと、内部的にA/D変換を行いデジタル値で出力するものがあります。
  • アナログ出力
    • 電圧出力
    • 電流出力
  • デジタル出力
    • 1-Wire
    • I2C
    • その他
IC化された温度センサにおいては温度に対応する電圧を出力するタイプが従来一般的でした。しかし電圧出力ではセンサと測定器の間が数m以上となる場合、ノイズの影響や、センサケーブルの電圧降下の影響を受けやすく、高精度の測定は行いにくくなります。電流出力形式のものやデジタル出力のものが適しています。 デジタル出力のタイプではバス型のインターフェースを持ち、複数のセンサを1本のバスインターフェース上で扱うことができるものが販売されています。今回の目的ではこのようなインターフェースを持った温度センサがよいでしょう。

1-Wireバス

MAXIM社の温度センサは1-Wireという名前のリモート測定に適した非同期型シリアルバスインターフェースを採用しています(1-WireはMAXIM社の登録商標です) "1-Wire"という名前のいわれは電源・GNDを除く信号線が1本のみであることから来ています。実使用では2線(Vcc+電源と信号線を時分割で共有)または3線で配線します。1本のバス上に複数のデバイスを接続することが可能で、条件次第でバス長は100m程度、デバイス数最大100程度まで使用可能とされています。電気的な条件の制限を受けるので額面通りには受け取れないのですが、広い範囲に多数のセンサを配置することが可能で、今回の目的には適したインターフェースです。 類似のインターフェースとしてはPC内の温度センサ、ファンの回転数センサなどのインターフェースとして使われているI2Cバスがあります。こちらは1-Wireよりも高速のデータ転送が可能ですが、数m以上の配線長での使用には適していません。たとえば電気的特性として負荷容量は400pF以下となっていますが、平行2線の配線ケーブル自体の容量が50pF/m程度はありますのでこの条件だけで10m程度の配線は難しいということになります。

4. 温度測定システムの試作

実際に作成した測定装置は以下のようになります。センサを並列に接続していくことで測定点を増やすことができます。 実験的にはセンサ8個、ケーブル10mまで動作確認をしています。 これをUSBインターフェース経由でPCなどに接続し、データの収集を行います。
Fig.1 温度測定システム


図2に作成した装置の回路図を示します. 最近のPC(サーバ機を含む)ではシリアルインターフェースは省略されることも多いですがUSBは標準装備です。電源供給も同時に行うことができるため使いやすい形になります。 ここでは秋月電子製のUSB-シリアル変換モジュールを使用し、これ経由でPCに接続しています。
Fig.2 温度測定回路図


測定装置基板


PC接続


l実際の測定結果が図3です。これはオフィスに置いた社内システムのサーバラックで温度測定を行ったものです。5分間隔で温度測定を行った結果をrrdtoolを使ってグラフ化しました。
Fig.3 サーバラック温度測定結果


日によって温度変化の様子に大きな違いがあることがわかりました。たとえば休日にオフィスの空調が止まっていると温度の上昇が大きいことがわかりました。 これによって休日に必要のない機器の電源を止めたり、サーバのあるスペースのエアフローを改善するなどの対策が必要であることがわかりました。 次回は測定に使用したプログラムや1-Wireの簡単な話をしたいと思います。