[実施の形態1]
図1は、サーバシステム10のハードウェア構成を示す装置構成図である。サーバシステム10は、棚11および棚11の内部に配置された複数の電子機器を備える。棚11は、内部の電子機器を冷却する冷却機能を備える。棚11の冷却機能については後述する。棚11は、高さ方向に配列した複数の電子機器を固定して設置することが可能な構造であり、たとえば19インチラックである。以下では、高さ方向に12個の電子機器を棚11に使用する場合を例にして説明する。
棚11に設置された電子機器は、たとえば通信機器12、管理サーバ13および10台の被管理サーバ14である。これらの電子機器は、いずれも19インチラックの規格に対応した寸法であり、棚11に固定されている。電子機器の配置については後述する。
通信機器12は、たとえばスイッチングハブまたはルータ等である。通信機器12は、管理サーバ13と被管理サーバ14との間の通信およびサーバシステム10と外部のネットワークとの間の通信を行う。通信機器12と管理サーバ13との間、通信機器12と被管理サーバ14との間および通信機器12とネットワークとの間はそれぞれ有線または無線で接続される。
ネットワークは、サーバシステム10が設置されたデータセンタ内の構内LAN(Local Area Network)、専用回線を用いてデータセンタ間を接続するネットワークまたはインターネット回線のネットワーク等である。
管理サーバ13はサーバシステム10に搭載された電子機器を管理する管理装置の一例である。具体的には、管理サーバ13は各被管理サーバ14に対して実行するジョブを割り当てる。管理サーバ13は、CPU(Central Processing Unit)21、主記憶装置22、補助記憶装置23、通信インターフェイス24、時計25およびバスを備える。
CPU21は、本発明に係るプログラムを実行する演算制御装置である。CPU21には、一または複数のCPUまたはマルチコアCPU等が使用される。CPU21は、バスを介して管理サーバ13を構成するハードウェア各部と接続されている。
主記憶装置22は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置22には、CPU21が行う処理の途中で必要な情報およびCPU21で実行中のプログラムが一時的に保存される。
補助記憶装置23は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置23には、CPU21に実行させるプログラム、仕様DB(Database)41、実測値DB42、およびプログラムの実行に必要な各種データが保存される。
時計25は、時刻を出力する。時計25は、通信機器12およびネットワークを介して日本標準時等の標準時刻との時刻合わせを行えることが望ましい。
通信インターフェイス24は、管理サーバ13と通信機器12との間の通信を行うインターフェイスである。管理サーバ13は、たとえばラックマウント型のパソコンである。
被管理サーバ14は管理サーバ13による制御に基づいて、各種の情報処理を行う。被管理サーバ14は、図示しないプロセッサ、主記憶装置、補助記憶装置および通信インターフェイスを備える。各構成要素の働きは、管理サーバ13の構成要素と同一である。被管理サーバ14は、たとえばラックマウント型のPCサーバである。
図2は、データセンタの構成を示す説明図である。データセンタは、多数のサーバシステム10、記憶装置、通信設備およびこれらの電子機器を冷却する冷却装置等を運用する施設である。図2には、間接水冷式の冷却装置を使用するデータセンタの例を示す。
前述のように、サーバシステム10の棚11には、通信機器12、管理サーバ13および被管理サーバ14等の電子機器が固定されている。各電子機器は棚11の高さ方向に一列に設置されている。各電子機器はそれぞれが棚11に固定されている。
被管理サーバ14は空冷型であり、筐体の一方の側面から空気を取り入れて、反対側の側面から空気を排出する。それぞれの被管理サーバ14の吸気口の近傍に、吸気温度を測定する温度センサ16が配置されている。複数の被管理サーバ14は、吸気口同士および排気口同士をそれぞれ同じ側に向けて配置されている。
棚11の前後左右上下の各面は、棚11の内側と外側とを区切る外装板により覆われている。外装板の一部は、開閉可能な扉となっており、棚11に電子機器を固定する際に使用される。外装板は、棚11の内部を完全に密閉していても良いし、一部に隙間を有していても良い。外装板を有する棚11を、閉鎖型ラックと呼ぶ場合がある。
棚11には、各電子機器の側面に向けて送風することが可能な送風機18が設置されている。また、送風機18に隣接して熱交換器19が設置されている。送風機18および熱交換器19の動作については後述する。
冷却装置は、冷凍機33、緩衝タンク34、冷媒管35、ポンプ36、冷媒センサ37、弁38および図示しない冷却制御装置を備える。
冷媒管35は、冷凍機33および緩衝タンク34を接続している。また、冷媒管35は、各サーバシステム10の近傍で冷媒支管351に分岐している。冷媒支管351は、熱交換器19に接続されている。冷媒支管351により、複数の熱交換器19が冷凍機33および緩衝タンク34に対して並列に接続されている。
冷凍機33は冷媒管35内を流れる冷媒を冷却する。緩衝タンク34は、冷凍機33で冷却する前後の冷媒を一時的に貯蔵して冷凍機33の負荷の急激な変動および冷媒管35内を流れる冷媒の温度の急激な変動を防止する。なお、緩衝タンク34内では冷却する前の冷媒と冷却した後の冷媒とは混ざらないように隔離されている。
ポンプ36は、冷媒管35内の冷媒を所定の方向に流動させる。冷凍機33で冷却された冷媒は冷媒管35および冷媒支管351を通って熱交換器19に入る。冷媒は熱交換器19内で温められる。サーバシステム10内の熱の移動については後述する。
熱交換器19で温められた冷媒は、緩衝タンク34を介して冷凍機33に移動して冷却される。冷凍機33で冷却された冷媒は、緩衝タンク34、冷媒管35および冷媒支管351を介して熱交換器19に送り出される。冷媒は冷凍機33と熱交換器19との間を巡回して繰り返し使用される。なお、本実施の形態においては、冷媒には水を使用する。
冷媒センサ37は、緩衝タンク34からサーバシステム10に向かう冷媒の温度を測定する。弁38は冷媒管35および冷媒支管351内の冷媒の流量を調整する。図2には2個の弁38が記載されているが、弁38の数は2個に限定されない。弁38は流量の調整が必要な場所に適宜設置されている。
冷凍機33、ポンプ36、冷媒センサ37および弁38は、図示しない冷却制御装置に接続されており、冷媒センサ37で測定された冷媒の温度を一定に保つように各部位の動作が制御される。図2には1個の冷媒センサ37が記載されているが、冷媒センサ37の数は1個に限定されない。冷媒センサ37は冷媒の温度の測定が必要な場所に適宜設置されている。
図3は、サーバシステム10の冷却方法を示す説明図である。図3は、サーバシステム10をIII−III断面で切った模式図である。すなわち、棚11に19インチラックを使用して水平に設置した場合には、図3は水平断面を示す。
III−III断面は、被管理サーバ14を通る断面である。送風機18がサーバシステム10の内部に白抜き矢印で示す空気の流れを作り出す。図3を用いて、サーバシステム10内の熱の移動について説明する。
送風機18から送り出された空気は、被管理サーバ14の吸気口から被管理サーバ14の内部に入り、被管理サーバ14を構成する電子部品を冷却する。被管理サーバ14を構成する電子部品が発生する熱により温められた空気は、熱交換器19を通る。熱交換器19の内部には、冷媒支管351が通っている。冷媒支管351内を通って熱交換器19に入った冷媒は、熱交換器19内の空気により温められることにより、熱交換器19内の空気を冷却する。熱交換器19で冷却された空気は、再度送風機18から被管理サーバ14に向けて送り出される。
ポンプ36の作用により熱交換器19内で温められた冷媒が冷媒支管351を通って熱交換器19の外に出ることにより、サーバシステム10内で発生した熱もサーバシステム10の外部に運び出される。前述のとおり、熱交換器19内で温められた冷媒は緩衝タンク34を介して冷凍機33で冷やされる。
それぞれの被管理サーバ14の吸気口の近傍に配置された温度センサ16により、被管理サーバ14の吸気温度が測定される。図1に示すように、温度センサ16は、通信機器12を介して管理サーバ13に接続されている。
図4は、棚11に設置された電子機器の構成を示す説明図である。棚11の最上部の区画には通信機器12が、1つ下の区画には管理サーバ13が配置されている。管理サーバ13の下の区画には第1被管理サーバ14から第10被管理サーバ14まで合計10台の被管理サーバ14が配置されている。図5においては、被管理サーバ14は吸気口を左側に、排気口を右側にして配置されている。吸気口の近傍に温度センサ16が配置されている。
なお、棚11は、13台以上の電子機器を配置可能であっても良い。そのようにする場合には、被管理サーバ14の間に電子機器を搭載しない空き区画を配置しても良い。また、棚11は12台未満の電子機器を配置可能であっても良い。そのようにする場合には、被管理サーバ14は棚11に設置することが可能な台数にする。
アメリカ暖房冷凍空調学会の技術委員会であるASHRAE TC9.9(American Society of Heating, Refrigerating and Air-Conditioning Engineers Technical Committee 9.9)が作成した 2011 Thermal Guidelines for Data Processing Environments - Expanded Data Center Classes and Usage Guidance 中の、Appendix Cによると、被管理サーバ14等の電子機器は、吸気温度の上昇につれて故障率が上昇する。したがって、電子機器の故障率を低減して長い期間安定的に稼動させるためには、吸気温度の上昇を避けることが望ましい。
図1から図4を使用して、本実施の形態のサーバシステム10の発熱について説明する。図2を使用して説明したように、棚11に通信機器12、管理サーバ13および10台の被管理サーバ14が搭載されている。被管理サーバ14は管理サーバ13による制御に基づいて、各種の情報処理を行う。被管理サーバ14は情報処理を行う際に熱を発生する。
被管理サーバ14は空冷式であり、吸気口と排気口とを備える。被管理サーバ14の吸気口から内部に入った空気は、被管理サーバ14のプロセッサ等が発生した熱により温められて排気口から外に出る。排気された空気は、熱交換器19で冷却され、送風機18により再度吸気口から被管理サーバ14内に入る。
このように、棚11内部の空気は循環して、被管理サーバ14を冷却する。しかし、熱せられた空気は棚11内の配線孔等を通って上昇する。そのため、サーバシステム10の運用を長時間継続した場合には、上側に配置された被管理サーバ14ほど吸気温度が高くなり、上側の被管理サーバ14と下側の被管理サーバ14との間の温度差が大きくなる傾向がある。
温度が高い場合には、電子回路内の配線の抵抗値が上昇する。それにより、電子回路の温度はさらに上昇する傾向がある。したがって、吸気温度が高い被管理サーバ14と吸気温度が低い被管理サーバ14とが同一量の情報処理を実行した場合には、吸気温度が高い被管理サーバ14の温度上昇量の方が大きい。その結果、両者の温度差は増加する。すなわち被管理サーバ14間に発生した温度差は、被管理サーバ14の動作状態に変動がない場合には拡大する傾向にある。
温度差が大きくなった場合には、前述のように温度の高い被管理サーバ14の故障率が相対的に上昇する。そのために、サーバシステム10の動作が不安定になるおそれがある。
吸気温度が高い被管理サーバ14で実行する情報処理の一部を吸気温度が低い被管理サーバ14に移すことにより、サーバシステム10全体の情報処理量を維持しながら、被管理サーバ14間の温度差の増加を防ぐことが可能である。
図5は、仕様DB41のレコードレイアウトを示す説明図である。仕様DB41は、被管理サーバ14のサーバ名と、被管理サーバ14の最大消費電力とを関連づけるDBである。仕様DB41は、サーバ名フィールドと最大消費電力フィールドとを有する。サーバ名フィールドには、サーバの名称が記録されている。最大消費電力フィールドには、各サーバの最大消費電力が記録されている。仕様DB41は、1台の被管理サーバ14について1つのレコードを有する。
図6は、実測値DB42のレコードレイアウトを示す説明図である。実測値DB42は、被管理サーバ14のサーバ名と、吸気温度および消費電力の実測値とを関連づけるDBである。実測値DB42は、サーバ名フィールド、吸気温度実測値フィールドおよび消費電力実測値フィールドを有する。
サーバ名フィールドには、被管理サーバ14の名称が記録されている。吸気温度実測値フィールドには、温度センサ16により測定した吸気温度が記録されている。消費電力実測値フィールドには、被管理サーバ14の消費電力が記録されている。吸気温度フィールドおよび消費電力実測値フィールドに記録されたデータは、データを取得する都度書き換えられる。実測値DB42は、1台の被管理サーバ14について1つのレコードを有する。
なお、被管理サーバ14の消費電力は、それぞれの被管理サーバ14のプロセッサが推計して出力した値、またはそれぞれの被管理サーバ14の電源部に取り付けられた電力計が計測した値を使用する。
図1から図6を使用して、本実施の形態のサーバシステム10の動作について説明する。管理サーバ13のCPU21は、通信インターフェイス24および通信機器12を介して各被管理サーバ14を制御する。以後の説明では、CPU21が被管理サーバ14に割り当てる情報処理作業をジョブと記載する。それぞれの被管理サーバ14のプロセッサは、複数のジョブを並行して処理するか、または順次処理する。
CPU21は、温度センサ16からそれぞれの被管理サーバ14の吸気温度を取得して、実測値DB42の吸気温度実測値フィールドに記録されたデータを更新する。CPU21は、それぞれの被管理サーバ14の消費電力を取得して、実測値DB42の消費電力実測値フィールドに記録されたデータを更新する。
CPU21は、実測値DB42の吸気温度実測値フィールドに記録されたデータの最大値および最小値を抽出する。CPU21は抽出した最大値から最小値を減算して、温度差を算出する。CPU21は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、CPU21は温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整する。
なおCPU21は、実測値DB42の吸気温度実測値フィールドに記録されたデータの最大値から平均値を減算して、温度差を算出しても良い。
ジョブの調整について、さらに具体的に説明する。CPU21は、最も吸気温度が低い被管理サーバ14の情報処理能力に余力があるか否かを判定する。余力の有無は、仕様DB41の最大消費電力フィールドに記録された最大消費電力に対する実測値DB42の消費電力実測値フィールドに記録された消費電力実測値との比率に基づいて判定する。
具体的には、比率が所定の値、たとえば70%よりも大きい場合には、その被管理サーバ14には余力がないと判定する。一方、比率が所定の値以下である場合には、その被管理サーバ14には余力があると判定する。被管理サーバ14の情報処理の負荷が高い場合ほど、被管理サーバ14の消費電力が高くなるからである。
CPU21は、吸気温度が低い被管理サーバ14から順次、余力の有無を判定する。余力があると判定した場合、CPU21は、最も吸気温度が高い被管理サーバ14に割り当てられたジョブの一部を、余力があるサーバに割り当てなおす。
余力のある被管理サーバ14が存在しない場合、CPU21は、優先度の低いジョブの実行を中断する。ジョブの優先度は、サーバシステム10のユーザによりあらかじめ指定されている。その後、CPU21は再度最も吸気温度が高い被管理サーバ14に割り当てられたジョブを割り当てなおすサーバを判定する。
ジョブを割り当てなおすことにより、最も吸気温度が高い被管理サーバ14の負荷が減少することに伴い、発熱量が減少する。そのため、その被管理サーバ14の周囲の温度も低下し、吸気温度が低下する。一方、ジョブを受け取った、吸気温度が比較的低い被管理サーバ14の負荷が増えて、発熱量が増加する。以上により、被管理サーバ14間の温度差を少なくすることができる。
図7は、プログラムの処理の流れを示すフローチャートである。図7を使用して、本実施の形態のCPU21が行う処理の流れを説明する。
CPU21は、通信機器12を介して各被管理サーバ14の吸気温度および消費電力を取得する(ステップS501)。CPU21は、取得した吸気温度および消費電力を実測値DB42に記録する(ステップS502)。
CPU21は、実測値DB42の吸気温度実測値フィールドを検索して、最高の温度が記録されたレコードを抽出する(ステップS503)。CPU21は、実測値DB42の吸気温度実測値フィールドを検索して、最低の温度が記録されたレコードを抽出する(ステップS504)。CPU21は、ステップS503で抽出した最高の温度からステップS504で抽出した最低の温度を減算して温度差を算出する(ステップS505)。
CPU21は、温度差が許容範囲内であるか否かを判定する(ステップS506)。具体的には、たとえば算出した温度差が1℃以内である場合に許容範囲内であると判定する。また、たとえば算出した温度差が最高温度の5%以内である場合に許容範囲内であると判定しても良い。
温度差が許容範囲を超えると判定した場合(ステップS506でNO)、CPU21は温度差縮小のサブルーチンを起動する(ステップS507)。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。
温度差が許容範囲内であると判定した場合(ステップS506でYES)およびステップS507の終了後、CPU21は処理を終了するか否かを判定する(ステップS508)。処理を終了する場合とは、たとえばネットワークを介してサーバシステム10の温度制御を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS508でNO)、CPU21はステップS501に戻る。処理を終了すると判定した場合(ステップS508でYES)、CPU21は処理を終了する。
図8は、温度差縮小のサブルーチンの処理の流れを示すフローチャートである。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。図8を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
CPU21は、実測値DB42の吸気温度実測値フィールドに記録された吸気温度が高い方から降順で、被管理サーバ14に順位を付ける(ステップS521)。順位は主記憶装置22または補助記憶装置23に記憶する。また実測値DB42に順位を記録するフィールドを設けて記録しても良い。なお、以後の説明ではステップS521で1位と順位付けした被管理サーバ14を最高温度サーバと記載する。
CPU21は、カウンタIを初期値1に設定する(ステップS522)。CPU21は、仕様DB41の最大消費電力フィールドに記録された最大消費電力を、実測値DB42の消費電力実測値フィールドに記録された消費電力実測値で除した消費電力比率を算出する(ステップS523)。
CPU21は、吸気温度が低い側からI番目の被管理サーバ14の情報処理能力に余力があるか否かを判定する(ステップS524)。具体的には、ステップS523で算出した消費電力比率が所定の値よりも大きい場合に余力がないと判定し、消費電力比率が所定の値以下である場合に余力があると判定する。所定の値は、たとえば70%または80%等の任意の値を定めることができる。
余力があると判定した場合(ステップS524でYES)、CPU21は最高温度サーバに割り当てられたジョブの一部を、I番目の被管理サーバ14に移動する(ステップS525)。CPU21は、その後処理を終了する。なお、被管理サーバ14間でのジョブの割り当ての変更は従来から行われているので、説明を省略する。
余力がないと判定した場合(ステップS524でNO)、CPU21は、ステップS521で順位付けしたうちの低温の被管理サーバ14の処理を終了したか否かを判定する(ステップS531)。ここで低温の被管理サーバ14は、たとえば棚11に設置された被管理サーバ14のうちの低温側から半数のサーバとする。また、吸気温度が平均値より低いサーバを低温の被管理サーバ14としても良い。
低温の被管理サーバ14の処理が終了していないと判定した場合(ステップS531でNO)、CPU21はカウンタIに1を加算する(ステップS532)。その後、CPU21はステップS523に戻る。
低温の被管理サーバ14の処理が終了したと判定した場合(ステップS531でYES)、CPU21は棚11に搭載された被管理サーバ14で実行中のジョブのうち、優先度の低いジョブを停止する(ステップS533)。ジョブの優先度は、サーバシステム10のユーザによりあらかじめ指定されている。
CPU21は、ステップS533で停止したジョブは、最高温度サーバに割り当てられたジョブであるか否かを判定する(ステップS534)。最高温度サーバに割り当てられたジョブが停止したと判定した場合(ステップS534でYES)、CPU21は処理を終了する。
最高温度サーバに割り当てられたジョブではないと判定した場合(ステップS534でNO)、CPU21は最高温度サーバに割り当てられたジョブの一部を、ステップS533でジョブを停止した被管理サーバ14に移動する(ステップS535)。CPU21は、その後処理を終了する。
なお、ステップS533でジョブを停止する代わりに、たとえばプロセッサの動作クロックを低速に変更しても良い。このようにすることにより、被管理サーバ14の消費電力を低減し、発熱を抑えることができる。
本実施の形態によると、実行中のジョブの移動または停止により最高温度サーバの情報処理の負荷を低減することができる。負荷が低減されることにより、最高温度サーバの発熱量が減少する。最高温度サーバに割り当てられていたジョブは、余力のある被管理サーバ14に割り当てられるため、サーバシステム10全体で処理する情報処理の量は変化しない。一方、余力のある被管理サーバ14が存在しない場合には、優先度が低いジョブが停止するため、優先度が高いジョブの実行には支障が生じない。
なお、棚11に被管理サーバ14を配置する際に、消費電力効率が相対的に高い被管理サーバ14を上の区画に配置することが望ましい。消費電力効率が相対的に高い被管理サーバ14とは、同じ情報処理を実行した場合の消費電力が少ない被管理サーバ14である。なお、被管理サーバ14が消費した電力は最終的には熱になるので、消費電力が相対的に少ないサーバは、発熱量も少ない。
このようにすることにより、各被管理サーバ14に均等に負荷を割り当てた場合に、棚11の上部に配置された被管理サーバ14の発熱量を少なくすることができる。そのため、サーバシステム10の運用を長時間継続した場合であっても、上側に配置された被管理サーバ14の温度が上昇しにくい。
棚11に搭載された被管理サーバ14の数は10台に限定しない。被管理サーバ14の数は任意である。被管理サーバ14の配置は、縦1列に限定しない。たとえば、1段に2台ずつの被管理サーバ14を搭載することが可能な棚11を使用して、被管理サーバ14を縦2列に配置しても良い。
温度センサ16は、被管理サーバ14の内部または排気口近傍付近に配置しても良い。温度センサ16は、被管理サーバ14を介して通信機器12に接続されていても良い。
サーバシステム10の冷却方法は、サーバシステム10を設置した部屋全体を冷房する方法でも良いし、部屋または冷却管内に外気を導入する方法でも良い。このようにする場合には、棚11は内側と外側とを区切る外装板を備えない方が、棚11に搭載した電子機器を効率良く冷却することが可能である。また、一つの部屋の内部に複数のサーバシステム10が設置されていても良い。
[実施の形態2]
本実施の形態は、吸気温度の時系列的な変化に基づいて将来の吸気温度を予測し、予測した吸気温度の温度差を低減させるように被管理サーバ14の負荷を配分しなおすサーバシステム10に関する。実施の形態1と共通する部分については説明を省略する。
図9は、実施の形態2の温度実測値変化DBのレコードレイアウトを示す説明図である。温度実測値変化DBは、温度センサ16が温度を測定した時刻と測定した温度とを関連づけるDBである。温度実測値変化DBは、サーバ名フィールド、時刻フィールドおよび吸気温度フィールドを有する。
サーバ名フィールドには、被管理サーバ14の名称が記録されている。時刻フィールドには時刻が記録されている。吸気温度フィールドには、温度センサ16により測定した吸気温度が記録されている。温度実測値変化DBは、1台の被管理サーバ14の1回の温度測定について1つのレコードを有する。
図10は、実施の形態2の吸気温度の予測方法を示す説明図である。図10の横軸は時刻を示す。横軸の単位は時分である。図10の縦軸は被管理サーバ14の吸気温度を示す。縦軸の単位は℃である。図9の測定データを、図10に黒丸および実線で示す。
吸気温度予測方法の概略を説明する。本実施の形態においては、吸気温度の変化は一次関数で近似できるものと仮定する。CPU21は、最新の6回分の吸気温度測定データ、すなわち14時15分から14時20分までの測定データを用いて、最小二乗法により近似式の係数を算出する。図10中の一点鎖線は、算出した係数を用いた近似式を示す。なお、最小二乗法は従来から使用されている手法であるので、説明を省略する。CPU21は、近似式を用いて、未来の時刻である14時21分における吸気温度を予測する。
なお、温度測定の時間間隔および最小二乗法に使用するデータの数はいずれも例示である。また、近似式は一次関数に限定しない。任意の関数式で吸気温度を近似することができる。
図11は、実施の形態2の温度予測値DBのレコードレイアウトを示す説明図である。温度予測値DBは、被管理サーバ名と吸気温度の予測値とを関連づけるDBである。温度予測値DBは、サーバ名フィールドと吸気温度予測値フィールドを有する。サーバ名フィールドには、被管理サーバ14の名称が記録されている。吸気温度予測値フィールドには、図10を使用して説明した方法によりCPU21が算出した吸気温度の予測値が記録されている。温度予測値DBは、1台の被管理サーバ14について1つのレコードを有する。
CPU21は、温度予測値DBの吸気温度予測値フィールドに記録されたデータの最大値および最小値を抽出する。CPU21は抽出した最大値から最小値を減算して、温度差を算出する。CPU21は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、CPU21は温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整する。
図12は、実施の形態2のプログラムの処理の流れを示すフローチャートである。図12を使用して、本実施の形態のCPU21が行う処理の流れを説明する。
CPU21は、通信機器12を介して各被管理サーバ14の吸気温度および消費電力を取得する(ステップS551)。CPU21は、取得した吸気温度および消費電力を、図6を使用して説明した実測値DB42に記録する。さらにCPU21は、取得した吸気温度を、図9を使用して説明した温度実測値変化DBにも記録する。(ステップS552)。
CPU21は、温度実測値変化DBに所定回数以上のデータを記録したか否かを判定する(ステップS553)。ここで所定回数とは時系列的な変化に基づいて将来の温度を予測するために必要なデータの測定回数である。本実施の形態においては、所定回数は6回とする。所定回数を5回以下または7回以上にしても良い。
所定回数のデータを記録していないと判定した場合(ステップS553でNO)、CPU21はステップS551に戻る。なお、本実施の形態ではCPU21は前回のステップS551の実行から1分後にステップS551を実行する。ステップS551の実行間隔は任意の時間を選択できる。
所定回数以上のデータを記録したと判定した場合(ステップS553でYES)、CPU21はカウンタIを初期値1に設定する(ステップS554)。CPU21は、予測サブルーチンを起動する(ステップS555)。予測サブルーチンは、時系列的に記録した所定回数のデータに基づいて将来のデータを予測するサブルーチンである。ステップS555においては、CPU21は温度実測値変化DBのI番目の被管理サーバ14の吸気温度フィールドに記録された所定回数分の吸気温度データに基づいて、I番目の被管理サーバ14の吸気温度を予想する。予測サブルーチンの処理の流れは後述する。
CPU21は、予測した吸気温度を、図11を使用して説明した温度予測値DBに記録する(ステップS556)。CPU21は、すべての被管理サーバ14の吸気温度を予測する処理が完了したか否かを判定する(ステップS557)。処理が完了していないと判定した場合(ステップS557でNO)、CPU21はカウンタIに1を加算する(ステップS558)。CPU21は、ステップS555に戻る。
処理が完了したと判定した場合(ステップS557でYES)、CPU21は、温度予測値DBの吸気温度予測値フィールドを検索して、最高の温度が記録されたレコードを抽出する(ステップS559)。CPU21は、温度予測値DBの吸気温度予測値フィールドを検索して、最低の温度が記録されたレコードを抽出する(ステップS560)。CPU21は、ステップS560で抽出した最高の温度からステップS559で抽出した最低の温度を減算して温度差を算出する(ステップS561)。
CPU21は、温度差が許容範囲内であるか否かを判定する(ステップS562)。温度差が許容範囲を超えると判定した場合(ステップS562でNO)、CPU21は温度差縮小のサブルーチンを起動する(ステップS563)。
温度差縮小のサブルーチンは、図8を使用して説明した、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。なお、本実施の形態の温度差縮小のサブルーチンのステップS521においては、CPU21は温度予測値DBに記録された吸気温度の予測値に基づいて、被管理サーバ14の順位付けを行う。
温度差が許容範囲内であると判定した場合(ステップS562でYES)およびステップS563の終了後、CPU21は処理を終了するか否かを判定する(ステップS564)。処理を終了する場合とは、たとえばネットワークを介してサーバシステム10の温度制御を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS564でNO)、CPU21はステップS551に戻る。処理を終了すると判定した場合(ステップS564でYES)、CPU21は処理を終了する。
図13は、実施の形態2の予測サブルーチンの処理の流れを示すフローチャートである。予測サブルーチンは、時系列的に記録した所定回数のデータに基づいて将来のデータを予測するサブルーチンである。図13を使用して、予測サブルーチンの処理の流れを説明する。
CPU21は、所定の数の時系列データを取得する(ステップS581)。具体的には、CPU21は温度実測値変化DBから6回分の時刻と吸気温度のデータの組を取得する。
CPU21は、ステップS581で取得したデータに基づいて、モデル関数の係数を定める(ステップS582)。モデル関数に式(1)に示す一次関数f(t)を使用する場合を例にして説明する。
y(t)=f(t)=αt+β ……… (1)
tは時刻。
y(t)は、時刻tにおける吸気温度。
αおよびβはモデル関数f(t)の係数。
式(1)がステップS581で取得したデータを近似するように、最小二乗法により係数αおよび係数βを算出する。最小二乗法は従来から使用されている手法であるので、説明を省略する。モデル関数は一次関数に限定しない。たとえば、二次関数、三次関数等の任意の関数を使用することができる。被管理サーバ14ごとに異なるモデル関数を使用しても良い。
ステップS582で算出した係数を用いて、所定の時刻における予測値を算出する(ステップS583)。具体的には、式(2)を使用する。
y0=f(t0)=αt0+β …… (2)
t0は、未来の所定の時刻。
αおよびβは、ステップS582で算出した係数。
y0は、時刻t0における吸気温度の予測値。
本実施の形態によると、直近の吸気温度の実測値の変動に基づいて予測した吸気温度に基づいて、被管理サーバ14間の温度差を低減するサーバシステム10を提供することができる。未来の吸気温度を予測して、温度差の発生を予防する対策を講じるため、被管理サーバ14間の吸気温度の温度差の発生をさらに抑制することが可能である。
[実施の形態3]
本実施の形態は、仮想機械を動作させるサーバシステム10に関する。実施の形態1と共通する部分については説明を省略する。
本実施の形態の被管理サーバ14には、大容量の主記憶装置が搭載されており、複数の仮想機械を動作させることができる。各仮想機械は、仮想的なコンピュータとして動作して、各種のアプリケーションソフトウェアを実行する。複数の被管理サーバ14のうちの、どの被管理サーバ14にどのアプリケーションソフトウェアを実行させる仮想機械を配置するかは、通信機器12を介して管理サーバ13が管理する。
一つの被管理サーバ14に配置された仮想機械は、サーバシステム10の動作中に別の被管理サーバ14に移動させることができる。すなわち、複数の被管理サーバ14は、相互に代替することが可能である。管理サーバ13は、仮想機械を適宜移動させることにより、吸気温度が高い被管理サーバ14の負荷を減らすことができる。
図14は、実施の形態3の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。図14に示すサブルーチンは、仮想機械を動作させるサーバシステム10において図8を使用して説明した温度差縮小のサブルーチンの代わりに使用するサブルーチンである。
本実施の形態の温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ14に割り当てた仮想機械を調整するサブルーチンである。図14を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
CPU21は、カウンタIを初期値1に設定する(ステップS601)。CPU21は、図6を使用して説明した実測値DB42を参照してI番目の被管理サーバ14は吸気温度が最も高温である最高温度サーバであるか否かを判定する(ステップS602)。最高温度サーバではないと判定した場合(ステップS602でNO)、CPU21はカウンタIに1を加算する(ステップS603)。CPU21は、ステップS602に戻る。
最高温度サーバであると判定した場合(ステップS602でYES)、CPU21はカウンタJを初期値1に設定する(ステップS604)。CPU21は、実測値DB42を参照してJ番目の被管理サーバ14の吸気温度が低温であるか否かを判定する(ステップS605)。ここでCPU21は、たとえばJ番目の被管理サーバ14の吸気温度が、全被管理サーバ14の吸気温度の平均値を下回っている場合に、低温であると判定する。CPU21は、吸気温度の順位に基づいて低温であるか否かを判定しても良い。
低温であると判定した場合(ステップS605でYES)、CPU21は最高温度サーバであるI番目の被管理サーバ14で動作している仮想機械の一部をJ番目の被管理サーバ14に移動させることが可能であるか否かを判定する(ステップS606)。可能であると判定した場合(ステップS606でYES)、CPU21は仮想機械を移動させる(ステップS607)。なお、被管理サーバ14間での仮想機械の移動可否を判定する方法および実際に仮想機械を移動させる方法については、公知であるので説明を省略する。その後、CPU21は、処理を終了する。
低温でないと判定した場合(ステップS605でNO)および仮想機械の一部を移動させることが可能ではないと判定した場合(ステップS606でNO)、CPU21はすべての被管理サーバ14の処理を終了したか否かを判定する(ステップS611)。終了していないと判定した場合(ステップS611でNO)、CPU21はカウンタJに1を加算する(ステップS612)。CPU21は、ステップS605に戻る。
すべての被管理サーバ14の処理を終了したと判定した場合(ステップS611でYES)、CPU21は仮想機械で実行している情報処理のうち優先度の低い情報処理を行っている仮想機械を停止する(ステップS613)。仮想機械で実行する情報処理の優先度は、サーバシステム10のユーザによりあらかじめ指定されている。
CPU21は、ステップS613で停止した仮想機械は、最高温度サーバであるI番目の被管理サーバ14で実行されていたか否かを判定する(ステップS614)。I番目の被管理サーバ14で実行されていたと判定した場合(ステップS614でYES)、CPU21は処理を終了する。I番目の被管理サーバ14で実行されていないと判定した場合(ステップS614でNO)、CPU21はステップS604に戻る。
本実施の形態によると、仮想機械の移動または停止により最高温度サーバの情報処理の負荷を低減することができる。負荷が低減されることにより、最高温度サーバの発熱量が減少する。最高温度サーバに割り当てられていた仮想機械は、余力のある被管理サーバ14に割り当てられるため、サーバシステム10全体で処理する情報処理の量は変化しない。一方、余力のある被管理サーバ14が存在しない場合には、優先度が低い情報処理を行っている仮想機械が停止するため、優先度が高い情報処理の実行には支障が生じない。
管理サーバ13は、被管理サーバ14上で動作する仮想機械であっても良い。このようにする場合には、棚11に管理サーバ13専用のハードウェアを設置する必要はない。
[実施の形態4]
本実施の形態は、管理サーバ13が冷却装置の制御も行うサーバシステム10に関する。実施の形態2と共通する部分については、説明を省略する。
本実施の形態においては、CPU21は、図1を使用して説明した冷凍機33、緩衝タンク34、冷媒管35、ポンプ36、冷媒センサ37、弁38を含む冷却装置を制御することができる。具体的には、CPU21はポンプ36の出力および弁38の動作を制御して、冷却装置の冷却能力を制御する。
図15は、実施の形態4のプログラムの処理の流れを示すフローチャートである。図15を使用して、本実施の形態の処理の流れを説明する。ステップS551からステップS562までは、図12を使用して説明した実施の形態2のプログラムの処理の流れと共通であるので説明を省略する。
温度差が許容範囲を超えると判定した場合(ステップS562でNO)、CPU21は冷却装置の冷却能力に余裕があるか否かを判定する(ステップS621)。冷却能力に余裕がある場合とは、冷却装置の能力に比べて冷却装置の出力が少ない状態を意味する。さらに具体的には、たとえばポンプ36および弁38を制御して、冷媒支管351を流れる冷媒の量を増加させることが可能である場合である。
冷却能力に余裕があると判定した場合(ステップS621でYES)、CPU21は冷却装置の冷却力を増加させる(ステップS622)。冷却能力に余裕がないと判定した場合(ステップS621でNO)、CPU21は温度差縮小のサブルーチンを起動する(ステップS623)。温度差縮小のサブルーチンは、図8を使用して説明した、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。
温度差が許容範囲内であると判定した場合(ステップS562でYES)、ステップS622の終了後およびステップS623の終了後、CPU21は処理を終了するか否かを判定する(ステップS624)。処理を終了する場合とは、たとえばネットワークを介してサーバシステム10の温度制御を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS624でNO)、CPU21はステップS551に戻る。処理を終了すると判定した場合(ステップS624でYES)、CPU21は処理を終了する。
本実施の形態によると、温度差が発生した場合に冷却装置の冷却力を高めることにより、最高温度サーバの温度を低下させることができる。冷却力を高めている間に被管理サーバ14の負荷状況が変化して温度差が自然に縮小した場合には、ステップS623の温度差縮小のサブルーチンを起動する必要がない。
[実施の形態5]
本実施の形態は、被管理サーバ14の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得し、これらの時系列的変化に基づいてプロセッサ使用率の目標値を定めて仮想機械を再配置するサーバシステム10に関する。実施の形態3と共通する部分については説明を省略する。
図16は、電子機器の吸気温度の増減と消費電力との関係を示す説明図である。図16の横軸は、電子機器の吸気温度の増減値を示し、単位は摂氏である。図16の縦軸は電子機器の消費電力の増減値を示し、単位はワットである。図16に示すグラフは、特定の電子機器を例にした例示であるが、吸気温度の増加に伴って消費電力が増加することは、一般的な電子機器にあてはまる傾向である。
以下の説明では、それぞれの被管理サーバ14の吸気温度の増減値ΔTと消費電力の増減値ΔTとの間の関係を、関数gを用いて式(3)のように示す。
関数gは、ΔTを未知数とする数式またはΔTとΔWの組を記録した表の形式で補助記憶装置23に記憶されている。なお、以下では、関数gは数式の形で補助記憶装置23に記憶されている場合を例にして説明する。
図17は、実施の形態5の温度予測値DBのレコードレイアウトを示す説明図である。温度予測値DBは、サーバ名フィールド、吸気温度予測値フィールドおよび増減値フィールドを有する。サーバ名フィールドには、被管理サーバ14の名称が記録されている。吸気温度予測値フィールドには、CPU21が算出した各被管理サーバ14の吸気温度の予測値が記録されている。増減値フィールドには、吸気温度予測値に記録された予測値の平均値と、各被管理サーバ14の吸気温度予測値との差が記録されている。温度予測値DBは、1台の被管理サーバ14について一つのレコードを有する。
図18は、実施の形態5の使用率実測値変化DBのレコードレイアウトを示す説明図である。使用率実測値変化DBは、被管理サーバ名、時刻、各時刻における消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を関連づけるDBである。使用率実測値変化DBは、サーバ名フィールド、時刻フィールド、消費電力フィールド、プロセッサ使用率フィールド、記憶装置稼働率フィールドおよびファン稼働率フィールドを有する。
サーバ名フィールドには、被管理サーバ14の名称が記録されている。時刻フィールドには時刻が記録されている。消費電力フィールドには、時刻フィールドに記録された時刻における被管理サーバ14の消費電力が記録されている。プロセッサ使用率フィールドには、時刻フィールドに記録された時刻における被管理サーバ14のプロセッサ使用率が記録されている。記憶装置稼働率フィールドには、時刻フィールドに記録された時刻における被管理サーバ14に内蔵された記憶装置の稼動率が記録されている。ファン使用率フィールドには、時刻フィールドに記録された時刻における被管理サーバ14に内蔵された冷却用ファンの使用率が記録されている。使用率実測値変化DBは、1台の被管理サーバ14の1回の測定について1つのレコードを有する。
図19は、実施の形態5の係数変化DBのレコードレイアウトを示す説明図である。係数変化DBは、被管理サーバ名、時刻および被管理サーバ14の消費電力に関する係数を関連づけるDBである。係数変化DBは、サーバ名フィールド、時刻フィールド、aフィールド、bフィールド、cフィールドおよびdフィールドを有する。
サーバ名フィールドには、被管理サーバ14の名称が記録されている。時刻フィールドには時刻が記録されている。aフィールドからdフィールドには、時刻フィールドに記録された時刻における係数aから係数dの値が記録されている。係数aから係数dについては後述する。
図20は、実施の形態5の予測結果DBのレコードレイアウトを示す説明図である。予測結果DBは、被管理サーバ名、プロセッサ使用率の予測値、記憶装置稼働率の予測値、ファン稼働率の予測値および係数aから係数dの予測値を関連づけるDBである。予測結果DBは、サーバ名フィールド、プロセッサ使用率フィールド、記憶装置稼働率フィールド、ファン稼働率フィールド、係数aから係数dフィールドを有する。
サーバ名フィールドには、被管理サーバ14の名称が記録されている。プロセッサ使用率フィールドには、CPU21が算出したプロセッサ使用率の予測値が記録されている。記憶装置稼動率フィールドには、CPU21が算出した記憶装置稼働率の予測値が記録されている。ファン稼働率フィールドには、CPU21が算出したファン稼働率の予測値が記録されている。係数aフィールドから係数dフィールドには、CPU21が算出した係数aから係数dの予測値が記録されている。予測結果DBは、1台の被管理サーバ14について1つのレコードを有する。
図9および図16から図20を使用して、本実施の形態のサーバシステム10の動作について説明する。
CPU21は、温度センサ16からそれぞれの被管理サーバ14の吸気温度を取得して、図9を使用して説明した温度実測値変化DBに記録する。CPU21は、それぞれの被管理サーバ14のプロセッサから、被管理サーバ14の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得して図18を使用して説明した使用率実測値変化DBに記録する。CPU21は、4回分以上のデータが温度実測値変化DBおよび使用率実測値変化DBに記録されるまでは、データの取得と記録を繰りかえす。
4回分以上の測定データが記録された場合、CPU21は係数aから係数dまでを算出する。係数aから係数dまでについて説明する。任意の時刻における被管理サーバ14の消費電力は、式(4)により表現される。
W=aP+bS+cF+d ……… (4)
Wは、被管理サーバ14の消費電力。
Pは、被管理サーバ14のプロセッサ使用率。
Sは、被管理サーバ14の記憶装置稼働率。
Fは、被管理サーバ14のファン稼働率。
aは、プロセッサの電力消費成分を示す係数。
bは、記憶装置の電力消費成分を示す係数。
cは、ファンの電力消費成分を示す係数。
dは、その他の電力消費成分を示す係数。
ここで、係数dが示すその他の電力消費成分は、プロセッサ、記憶装置およびファン以外の被管理サーバ14の構成要素、たとえば電源部、通信インターフェイス等が消費する電力を示す。CPU21は被管理サーバ14で動作する仮想機械の割り当てを変更することによりプロセッサ使用率Pを制御することができる。しかしCPU21は、消費電力W、記憶装置稼働率Sおよびファン稼働率Fを制御することはできない。これらのパラメータは、被管理サーバ14のプロセッサの動作に連動して逐次変化する。
プロセッサ使用率P、消費電力W、記憶装置稼働率Sおよびファン稼働率Fを4回取得する間、係数aから係数dはそれぞれ変化しないと近似的に考えた場合に、式(5)の関係が成立する。
Wn、Pn、SnおよびFnは既知であるので、式(5)は四元一次連立方程式であり、式(6)により係数aから係数dを算出することができる。
以後の処理においては、式(6)により算出した係数aから係数dを、n=1に対応する時刻における係数として扱う。すなわち、CPU21は、式(5)のn=1に対応する時刻および係数aから係数dを、図19を使用して説明した係数変化DBに記録する。
CPU21は、温度実測値変化DBに記録された温度に基づいて、それぞれの被管理サーバ14の吸気温度の予測値を算出し、図17を使用して説明した温度予測値DBの吸気温度予測値フィールドに記録する。なお、予測することが可能な数のデータが温度実測値変化DBに記録されていない場合には、CPU21は、必要数のデータが記録されるまで前述のデータの取得、記録および係数算出の処理を繰り返す。
CPU21は、実測値DB42の吸気温度実測値フィールドに記録されたデータの最大値および最小値を抽出する。CPU21は抽出した最大値から最小値を減算して、温度差を算出する。CPU21は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、CPU21は温度差を縮小させるように被管理サーバ14上で実行する仮想機械の配置を調整する。
CPU21は、それぞれの被管理サーバ14の吸気温度、消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率の取得、係数aから係数dの算出、吸気温度の予測ならびに仮想機械の配置の調整を繰り返す。
本実施の形態の仮想機械の配置の調整について説明する。なお、図13を使用して説明した予測サブルーチンを使用して将来のデータを予測することが可能な数のデータが、使用率実測値変化DBおよび係数変化DBに記録されていることを前提として、以下の説明を行う。予測することが可能な数のデータが記録されていない場合には、必要数のデータが記録されるまで前述の処理を繰り返す。
CPU21は、温度予測値DBの吸気温度予測値フィールドに記録された予測値の平均値を算出する。以後の処理では、算出した平均値を被管理サーバ14の吸気温度の目標値に使用する。CPU21は、算出した平均値と、それぞれの被管理サーバ14の吸気温度の予測値との差を、温度実測値変化DBの増減値フィールドに記録する。
CPU21は、使用率実測値変化DBのプロセッサ使用率フィールドに記録されたデータに基づいて、所定の時刻tにおける被管理サーバ14のプロセッサ使用率Ptを予測し、補助記憶装置23に記憶する。CPU21は、使用率実測値変化DBの記憶装置稼働率フィールドに記録されたデータに基づいて、所定の時刻tにおける被管理サーバ14の記録装置稼働率Stを予測し、補助記憶装置23に記憶する。CPU21は、使用率実測値変化DBのファン稼働率フィールドに記録されたデータに基づいて、所定の時刻tにおける被管理サーバ14のファン稼働率Ftを予測し、補助記憶装置23に記憶する。CPU21は、係数変化DBのaフィールドからdフィールドに記録されたデータに基づいて、所定の時刻tにおける係数atから係数dtをそれぞれ予測し、補助記憶装置23に記憶する。
CPU21は、予測したプロセッサ使用率Pt、記憶装置稼働率St、ファン稼動率Ftおよび係数atから係数dtを使用して、式(7)に基づいて所定の時刻tにおける消費電力の予測値Wtを算出する。
CPU21は、温度予測値DBの増減値フィールドより、被管理サーバ14の吸気温度の増減値を取得する。CPU21は、式(3)を使用して取得した増減値に対応する消費電力調整量ΔWを算出する。
CPU21は、式(7)に基づいて予測した消費電力Wtを消費電力調整量ΔWだけ低下させる場合のプロセッサ使用率、すなわちプロセッサ使用率目標値PDを、式(8)に基づいて算出する。
CPU21は、プロセッサ使用率Pt、記憶装置稼働率St、ファン稼動率Ftおよび係数atから係数dtの予測、ΔWの算出ならびにPDの算出を繰り返して、各被管理サーバ14のプロセッサ使用率目標値PDを算出する。CPU21は、各被管理サーバ14のプロセッサ使用率目標値PDに基づいて、仮想機械を再配置する。仮想機械の再配置は従来から行われているので、説明を省略する。
図21は、実施の形態5のプログラムの処理の流れを示すフローチャートである。図21を使用して、本実施の形態の処理の流れを説明する。
CPU21は、温度センサ16からそれぞれの被管理サーバ14の吸気温度を取得して、図9を使用して説明した温度実測値変化DBに記録する(ステップS641)。CPU21は、それぞれの被管理サーバ14のプロセッサから、被管理サーバ14の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得して図18を使用して説明した使用率実測値変化DBに記録する(ステップS642)。
CPU21は、温度実測値変化DBおよび使用率実測値変化DBに4回分以上の測定結果が記録されているか否かを判定する(ステップS643)。記録されていないと判定した場合(ステップS643でNO)、CPU21はステップS641に戻る。
記録されていると判定した場合(ステップS643でYES)CPU21は、係数算出のサブルーチンを起動する(ステップS644)。係数算出のサブルーチンは、4回分のプロセッサ使用率P、消費電力W、記憶装置稼働率Sおよびファン稼働率Fに基づいて、式(5)を満たす、係数aから係数dを算出するサブルーチンである。係数算出のサブルーチンの処理の流れは後述する。
CPU21は、温度実測値変化DBに所定回数以上のデータを記録したか否かを判定する(ステップS645)。ここで所定回数とは時系列的な変化に基づいて将来の温度を予測するために必要なデータの測定回数である。所定回数のデータを記録していないと判定した場合(ステップS645でNO)、CPU21はステップS641に戻る。
所定回数以上のデータを記録したと判定した場合(ステップS645でYES)、CPU21はカウンタIを初期値1に設定する(ステップS646)。CPU21は、予測サブルーチンを起動する(ステップS647)。予測サブルーチンは、図13を使用して説明したサブルーチンを使用する。ステップS646においては、CPU21は温度実測値変化DBのI番目の被管理サーバ14の吸気温度フィールドに記録された所定回数分の吸気温度データに基づいて、I番目の被管理サーバ14の吸気温度を予想する。
CPU21は、予測した吸気温度を、図17を使用して説明した温度予測値DBの吸気温度予測値フィールドに記録する(ステップS648)。CPU21は、同じレコードの増減値フィールドに記録されたデータを削除する。
CPU21は、すべての被管理サーバ14の吸気温度を予測する処理が完了したか否かを判定する(ステップS649)。処理が完了していないと判定した場合(ステップS649でNO)、CPU21はカウンタIに1を加算する(ステップS650)。CPU21は、ステップS647に戻る。
処理が完了したと判定した場合(ステップS649でYES)、CPU21は、温度予測値DBの吸気温度予測値フィールドを検索して、最高温度および最低温度が記録されたレコードをそれぞれ抽出する(ステップS651)。CPU21は、抽出した最高温度から最低温度を減算して温度差を算出する(ステップS652)。
CPU21は、温度差が許容範囲内であるか否かを判定する(ステップS653)。温度差が許容範囲を超えると判定した場合(ステップS653でNO)、CPU21は温度差縮小のサブルーチンを起動する(ステップS654)。
温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。なお、本実施の形態の温度差縮小のサブルーチンの処理の流れは後述する。
温度差が許容範囲内であると判定した場合(ステップS653でYES)およびステップS654の終了後、CPU21は処理を終了するか否かを判定する(ステップS655)。処理を終了する場合とは、たとえばネットワークを介してサーバシステム10の温度制御を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS655でNO)、CPU21はステップS641に戻る。処理を終了すると判定した場合(ステップS655でYES)、CPU21は処理を終了する。
図22は、実施の形態5の係数算出のサブルーチンの処理の流れを示すフローチャートである。係数算出のサブルーチンは、4回分のプロセッサ使用率P、消費電力W、記憶装置稼働率Sおよびファン稼働率Fに基づいて、前述の式(5)を満たす、係数aから係数dを算出するサブルーチンである。図22を使用して、係数算出のサブルーチンの処理の流れを説明する。
CPU21は、図18を使用して説明した使用率実測値変化DBから、消費電力W、プロセッサ使用率P、記憶装置使用率Sおよびファン稼働率Fの最新の4回分の実測値を取得する(ステップS671)。CPU21は、式(6)に示す行列Aの逆行列A-1を算出する(ステップS672)。行列から逆行列を算出する方法は従来から使用されているので説明を省略する。
CPU21は、算出した逆行列を使用して、式(6)に基づいて係数aから係数dまでを算出する(ステップS673)。CPU21は、ステップS671で取得したレコードのうち最新のレコードの時刻フィールドに記録されている時間および係数aから係数dまでを図19を使用して説明した係数変化DBに記録する(ステップS674)。
図23は、実施の形態5の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ14に割り当てたジョブを調整するサブルーチンである。図23を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
CPU21は、図17を使用して説明した温度予測値DBの吸気温度予測値フィールドに記録された、すべての被管理サーバ14の吸気温度予測値を取得する。CPU21は、取得した吸気温度予測値の平均値を算出し、変数「目標温度」に記録する(ステップS681)。CPU21は、それぞれの被管理サーバ14の吸気温度予測値から目標温度を減算して、それぞれの被管理サーバ14の吸気温度の増減値ΔTを算出する(ステップS682)。CPU21は、算出した吸気温度の増減値ΔTを温度予測値DBの増減量フィールドに記録する。
CPU21は、カウンタIを初期値1に設定する(ステップS683)。CPU21は、カウンタJを初期値1に設定する(ステップS684)。CPU21は、予測サブルーチンを起動する(ステップS685)。予測サブルーチンは、図13を使用して説明したサブルーチンを使用する。
ステップS64においては、J=1である場合には、CPU21は使用率実測値変化DBのI番目のプロセッサ使用率フィールドに記録された所定回数分のプロセッサ使用率データに基づいて、所定の時刻tにおけるI番目の被管理サーバ14のプロセッサ使用率Ptを予測する。同様にして、CPU21は、J=2である場合には記憶装置稼働率Stを、J=3である場合にはファン稼働率Ftをそれぞれ予測する。
J=4である場合には、CPU21は係数変化DBのaフィールドに記録された所定回数分の係数aのデータに基づいて、所定の時刻tにおけるI番目の被管理サーバ14の係数atを予測する。同様にして、CPU21は、J=5である場合には係数btを、J=6である場合には係数ctを、J=7である場合には係数dtをそれぞれ予測する。
CPU21は、プロセッサ使用率から係数dまでの予測がすべて完了したか否かを判定する(ステップS686)。完了していないと判定した場合(ステップS686でNO)、CPU21はカウンタJに1を加算する(ステップS687)。CPU21はステップS685に戻る。
完了したと判定した場合(ステップS686でYES)、CPU21は、予測したプロセッサ使用率Pt、記憶装置稼働率St、ファン稼動率Ftおよび係数atから係数dtを使用して、前述の式(7)に基づいて所定の時刻tにおける消費電力の予測値Wtを算出する(ステップS688)。
CPU21は、温度予測値DBの増減値フィールドより、I番目の被管理サーバ14の吸気温度の増減値を取得する。CPU21は、式(3)のΔTに取得した増減量を代入して、消費電力調整量ΔWを算出する(ステップS689)。
CPU21は、式(7)に基づいて予測した消費電力Wtを消費電力調整量ΔWだけ低下させる場合のプロセッサ使用率、すなわちプロセッサ使用率目標値PDを、式(8)に基づいて算出する(ステップS690)。
CPU21は、すべての被管理サーバ14について、プロセッサ使用率目標値PDの算出を完了したか否かを判定する(ステップS691)。完了していないと判定した場合(ステップS691でNO)、CPU21はカウンタIに1を加算する(ステップS692)。
完了したと判定した場合(ステップS691でYES)、CPU21は、各被管理サーバ14のプロセッサ使用率目標値PDに基づいて、仮想機械を再配置する(ステップS693)。仮想機械の再配置は従来から行われているので、説明を省略する。
本実施の形態によると、式(7)に基づいて所定の時刻tにおける消費電力の予測値Wtを算出する。そのため、単純に消費電力の時系列変化に基づいて予測する場合よりも精度良くWtを予測し、温度差の拡大を的確に防止することが可能である。
さらに、プロセッサと記憶装置との消費電力の比率が大きく異なる被管理サーバ14が混在するような複雑なサーバシステム10である場合にも、温度差の拡大を的確に防止することが可能である。
[実施の形態6]
実施の形態6は、汎用のコンピュータとプログラム29とを組み合わせて動作させることにより、本実施の形態のサーバシステム10を管理する管理装置を実現する形態に関する。図24は、実施の形態6の管理装置の動作を示す機能ブロック図である。図24を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
実施の形態6のサーバシステム10の管理装置は、CPU21による制御に基づいて以下のように動作する。
取得部61は、棚11に配置された複数の電子機器14のそれぞれの吸気温度を取得する。算出部62は、取得部61が取得した吸気温度に基づいて複数の電子機器14間の吸気温度の温度差を算出する。変更部63は、算出部62が算出した温度差が所定の値よりも大きい場合に、取得部61が取得した吸気温度に基づいて電子機器14の動作状態を変更する。
[実施の形態7]
実施の形態7は、サーバシステム10とプログラム29とを組み合わせて動作させる形態に関する。本実施の形態においても、サーバシステム10は、棚11および棚11の内部に配置された複数の電子機器を備える。棚11は、内部の電子機器を冷却する冷却機能を備える。
サーバシステム10は相互に代替可能な複数の電子機器を棚11に設置したシステムである。相互に代替可能な電子機器は、たとえば仮想機械が動作する被管理サーバ14である。以下では、これらの具体例を使用して説明する。実施の形態1と共通する部分については説明を省略する。
図25は、実施の形態7のハードウェア構成を示す装置構成図である。図25を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
サーバシステム10は、棚11、棚11に設置された複数の電子機器、送風機18および冷却機能を備える。棚11は、高さ方向に配列した複数の電子機器を固定して設置することが可能な、たとえば19インチラックである。
棚11に設置された電子機器は、たとえば通信機器12、管理サーバ13および複数の被管理サーバ14である。通信機器12は、管理サーバ13と被管理サーバ14との間の通信およびサーバシステム10と外部のネットワーク1との間の通信を行う。
管理サーバ13はサーバシステム10を管理する。管理サーバ13は、CPU21、主記憶装置22、補助記憶装置23、通信インターフェイス24、時計25、読取部26およびバスを備える。
読取部26は、可搬型記録媒体27を読み取る装置であり、具体的にはたとえばマイクロSDカードスロットである。CPU21、主記憶装置22、補助記憶装置23、通信インターフェイス24、時計25は実施の形態1と同様なので説明を省略する。
プログラム29は、可搬型記録媒体27に記録されている。CPU21は、読取部26を介してプログラム29を読み込み、補助記憶装置23に保存する。またCPU21は、管理サーバ13内に実装されたフラッシュメモリ等の半導体メモリ30に記憶されたプログラム29を読出しても良い。さらに、CPU21は、通信インターフェイス24を介して接続される図示しない他のサーバコンピュータからプログラム29をダウンロードして補助記憶装置23に保存しても良い。
CPU21は、上述した各種ソフトウェア処理を実行するプログラム29を、可搬型記録媒体27もしくは半導体メモリ30から読み取り、または通信インターフェイス24を介して図示しない他のサーバコンピュータからダウンロードする。プログラム29は、管理サーバ13の制御プログラムとしてインストールされ、主記憶装置22にロードされて実行される。これにより、管理サーバ13は全体として上述した管理装置として機能する。
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態1から7を含む実施形態に関し、さらに以下の付記を開示する
(付記1)
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させるプログラム。
(付記2)
前記電子機器それぞれの電力消費情報を取得し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度および前記電力消費情報に基づいて前記電子機器の動作状態を変更する
付記1に記載のプログラム。
(付記3)
前記棚は冷却装置に接続されており、
前記温度差が所定の値よりも大きい場合に、前記冷却装置の出力を取得し、
前記冷却装置の出力が所定の値よりも小さい場合に、前記冷却装置の出力を大きくし、
前記冷却装置の出力が所定の値よりも大きい場合に、前記電子機器の動作状態を変更する
付記1または付記2に記載のプログラム。
(付記4)
取得した前記吸気温度が高い前記電子機器の動作の一部を停止または中断する
付記1から付記3のいずれか一つに記載のプログラム。
(付記5)
前記電子機器は、動作クロックに基づいて動作するデジタル機器であり、
取得した前記吸気温度が高い前記電子機器の動作クロックを低速に変更する
付記1から付記3のいずれか一つに記載のプログラム。
(付記6)
取得した前記吸気温度の最大値と最小値との差に基づいて前記温度差を算出する
付記1から付記5のいずれか一つに記載のプログラム。
(付記7)
取得する前記吸気温度は、時系列的な吸気温度であり、
前記時系列的な吸気温度に基づいて予測したそれぞれの電子機器の吸気温度に基づいて前記温度差を算出する
付記1から付記6のいずれか一つに記載のプログラム。
(付記8)
前記電子機器には、動作中に相互に代替可能な複数の前記電子機器が含まれており、
代替可能な前記電子機器のうちの予測した前記吸気温度が相対的に高い前記電子機器から、予測した前記吸気温度が相対的に低い前記電子機器に負荷を移動する
付記7に記載のプログラム。
(付記9)
前記電力消費情報は、前記電子機器のそれぞれの消費電力であり、
前記電子機器の消費電力に基づいて負荷の移動可否を判定する付記8に記載のプログラム。
(付記10)
代替可能な前記電子機器は、複数の仮想機械を動作させる電子計算機であり、
前記電子計算機に対する前記仮想機械の配置を変更する
付記8または付記9に記載のプログラム。
(付記11)
前記電子機器は、プロセッサ、記憶装置およびファンを備える電子計算機であり、
それぞれの前記電子機器の消費電力、プロセッサ使用率、記憶装置使用率およびファン稼働率を時系列的に取得し、
取得時刻に対応する係数a、係数b、係数cおよび係数dを式(6)に基づいて算出し、
所定の時刻におけるプロセッサ使用率、記憶装置使用率、ファン稼働率、係数a、係数b、係数cおよび係数dをそれぞれの時系列的変化に基づいて予測し、
前記所定の時刻における前記電子機器の消費電力の予測値を式(7)に基づいて算出し、
前記電子機器の消費電力と吸気温度の変化量との関係に基づいて、前記温度差を縮小する場合の消費電力の変化量を算出し、
該変化量を得る際のプロセッサ使用率の目標値を式(8)に基づいて算出し、
それぞれの前記電子機器のプロセッサ使用率の目標値に基づいて前記仮想機械を再配置する
付記10に記載のプログラム。
(付記12)
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させる管理方法。
(付記13)
棚に配置された複数の電子機器のそれぞれの吸気温度を取得する取得部と、
前記取得部が取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出する算出部と、
前記算出部が算出した温度差が所定の値よりも大きい場合に、前記取得部が取得した吸気温度に基づいて前記電子機器の動作状態を変更する変更部と
を備える管理装置。
(付記14)
前記棚は、上下方向に配列した区画を備え、
前記電子機器は、消費電力効率が相対的に高い前記電子機器が上の区画に配置されている
付記13に記載の管理装置。