(57)【要約】【課題】複数の電子機器を棚に搭載したシステムの温度異常の発生を予防するプログラム等を提供すること。【解決手段】プログラムは、棚に配置された複数の電子機器１４のそれぞれの吸気温度を取得し、取得した前記吸気温度に基づいて複数の前記電子機器１４間の吸気温度の温度差を算出し、前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器１４の動作状態を変更する処理をコンピュータに実行させる。【選択図】図１
2018018340.tif 000002
【特許請求の範囲】
【請求項１】
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させるプログラム。
【請求項２】
前記電子機器それぞれの電力消費情報を取得し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度および前記電力消費情報に基づいて前記電子機器の動作状態を変更する
請求項１に記載のプログラム。
【請求項３】
前記棚は冷却装置に接続されており、
前記温度差が所定の値よりも大きい場合に、前記冷却装置の出力を取得し、
前記冷却装置の出力が所定の値よりも小さい場合に、前記冷却装置の出力を大きくし、
前記冷却装置の出力が所定の値よりも大きい場合に、前記電子機器の動作状態を変更する
請求項１または請求項２に記載のプログラム。
【請求項４】
取得した前記吸気温度が高い前記電子機器の動作の一部を停止または中断する
請求項１から請求項３のいずれか一つに記載のプログラム。
【請求項５】
取得する前記吸気温度は、時系列的な吸気温度であり、
前記時系列的な吸気温度に基づいて予測したそれぞれの電子機器の吸気温度に基づいて前記温度差を算出する
請求項１から請求項４のいずれか一つに記載のプログラム。
【請求項６】
前記電子機器には、動作中に相互に代替可能な複数の前記電子機器が含まれており、
代替可能な前記電子機器のうちの予測した前記吸気温度が相対的に高い前記電子機器から、予測した前記吸気温度が相対的に低い前記電子機器に負荷を移動する
請求項５に記載のプログラム。
【請求項７】
代替可能な前記電子機器は、複数の仮想機械を動作させる電子計算機であり、
前記電子計算機に対する前記仮想機械の配置を変更する
請求項６に記載のプログラム。
【請求項８】
前記電子機器は、プロセッサ、記憶装置およびファンを備える電子計算機であり、
それぞれの前記電子機器の消費電力、プロセッサ使用率、記憶装置使用率およびファン稼働率を時系列的に取得し、
取得時刻に対応する係数ａ、係数ｂ、係数ｃおよび係数ｄを式（１）に基づいて算出し、
所定の時刻におけるプロセッサ使用率、記憶装置使用率、ファン稼働率、係数ａ、係数ｂ、係数ｃおよび係数ｄをそれぞれの時系列的変化に基づいて予測し、
前記所定の時刻における前記電子機器の消費電力の予測値を式（２）に基づいて算出し、
前記電子機器の消費電力と吸気温度の変化量との関係に基づいて、前記温度差を縮小する場合の消費電力の変化量を算出し、
該変化量を得る際のプロセッサ使用率の目標値を式（３）に基づいて算出し、
それぞれの前記電子機器のプロセッサ使用率の目標値に基づいて前記仮想機械を再配置する
請求項７に記載のプログラム。
【数１】
2018018340.tif 000008
【数２】
2018018340.tif 000009
【数３】
2018018340.tif 000010
【請求項９】
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させる管理方法。
【請求項１０】
棚に配置された複数の電子機器のそれぞれの吸気温度を取得する取得部と、
前記取得部が取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出する算出部と、
前記算出部が算出した温度差が所定の値よりも大きい場合に、前記取得部が取得した吸気温度に基づいて前記電子機器の動作状態を変更する変更部と
を備える管理装置。
【請求項１１】
前記棚は、上下方向に配列した区画を備え、
前記電子機器は、消費電力効率が相対的に高い前記電子機器が上の区画に配置されている
請求項１０に記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、管理方法および管理装置に関する。
【背景技術】
【０００２】
複数の電子機器を規格化された棚に設置して使用する、いわゆるラックマウントシステムが使用されている。棚に設置されたそれぞれの電子機器の吸気側に設置された温度センサから時系列的な温度情報を取得し、温度異常の発生を予測する温度予測装置が開示されている（特許文献１）。
【０００３】
複数の電子機器が設けられたそれぞれの場所の温度を取得し、温度分布が均一になるように電子機器間の負荷分布を調整する運用システムが開示されている（特許文献２）。サーバ装置の資源使用状況の測定データを用いて資源の競合の有無を検出し、競合を検出したサーバ装置上で動作する仮想機械を他のサーバ装置に移動させる仮想機械配置システムが開示されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−５９７３９号公報
【特許文献２】特開２０１１−７６１５８号公報
【特許文献３】国際公開第２００８／０６２８６４号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された温度予測装置では、温度異常の発生を防止するためにはアラームを見たオペレータが電子機器を操作する必要がある。
【０００６】
特許文献２に開示された運用システムおよび特許文献３に開示された仮想機械配置システムでは、温度異常の発生を予防することはできない。
【０００７】
一つの側面では、複数の電子機器を搭載したシステムの温度異常の発生を予防することを目的とする。
【課題を解決するための手段】
【０００８】
プログラムは、棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの側面では、複数の電子機器を搭載したシステムの温度異常の発生を予防することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】サーバシステムのハードウェア構成を示す装置構成図である。
【図２】データセンタの構成を示す説明図である。
【図３】サーバシステムの冷却方法を示す説明図である。
【図４】棚に搭載された電子機器の構成を示す説明図である。
【図５】仕様ＤＢのレコードレイアウトを示す説明図である。
【図６】実測値ＤＢのレコードレイアウトを示す説明図である。
【図７】プログラムの処理の流れを示すフローチャートである。
【図８】温度差縮小のサブルーチンの処理の流れを示すフローチャートである。
【図９】実施の形態２の温度実測値変化ＤＢのレコードレイアウトを示す説明図である。
【図１０】実施の形態２の吸気温度の予測方法を示す説明図である。
【図１１】実施の形態２の温度予測値ＤＢのレコードレイアウトを示す説明図である。
【図１２】実施の形態２のプログラムの処理の流れを示すフローチャートである。
【図１３】実施の形態２の予測サブルーチンの処理の流れを示すフローチャートである。
【図１４】実施の形態３の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。
【図１５】実施の形態４のプログラムの処理の流れを示すフローチャートである。
【図１６】電子機器の吸気温度の増減と消費電力との関係を示す説明図である。
【図１７】実施の形態５の温度予測値ＤＢのレコードレイアウトを示す説明図である。
【図１８】実施の形態５の使用率実測値変化ＤＢのレコードレイアウトを示す説明図である。
【図１９】実施の形態５の係数変化ＤＢのレコードレイアウトを示す説明図である。
【図２０】実施の形態５の予測結果ＤＢのレコードレイアウトを示す説明図である。
【図２１】実施の形態５のプログラムの処理の流れを示すフローチャートである。
【図２２】実施の形態５の係数算出のサブルーチンの処理の流れを示すフローチャートである。
【図２３】実施の形態５の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。
【図２４】実施の形態６の管理装置の動作を示す機能ブロック図である。
【図２５】実施の形態７のサーバシステムのハードウェア構成を示す装置構成図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１は、サーバシステム１０のハードウェア構成を示す装置構成図である。サーバシステム１０は、棚１１および棚１１の内部に配置された複数の電子機器を備える。棚１１は、内部の電子機器を冷却する冷却機能を備える。棚１１の冷却機能については後述する。棚１１は、高さ方向に配列した複数の電子機器を固定して設置することが可能な構造であり、たとえば１９インチラックである。以下では、高さ方向に１２個の電子機器を棚１１に使用する場合を例にして説明する。
【００１２】
棚１１に設置された電子機器は、たとえば通信機器１２、管理サーバ１３および１０台の被管理サーバ１４である。これらの電子機器は、いずれも１９インチラックの規格に対応した寸法であり、棚１１に固定されている。電子機器の配置については後述する。
【００１３】
通信機器１２は、たとえばスイッチングハブまたはルータ等である。通信機器１２は、管理サーバ１３と被管理サーバ１４との間の通信およびサーバシステム１０と外部のネットワークとの間の通信を行う。通信機器１２と管理サーバ１３との間、通信機器１２と被管理サーバ１４との間および通信機器１２とネットワークとの間はそれぞれ有線または無線で接続される。
【００１４】
ネットワークは、サーバシステム１０が設置されたデータセンタ内の構内ＬＡＮ（Local Area Network）、専用回線を用いてデータセンタ間を接続するネットワークまたはインターネット回線のネットワーク等である。
【００１５】
管理サーバ１３はサーバシステム１０に搭載された電子機器を管理する管理装置の一例である。具体的には、管理サーバ１３は各被管理サーバ１４に対して実行するジョブを割り当てる。管理サーバ１３は、ＣＰＵ（Central Processing Unit）２１、主記憶装置２２、補助記憶装置２３、通信インターフェイス２４、時計２５およびバスを備える。
【００１６】
ＣＰＵ２１は、本発明に係るプログラムを実行する演算制御装置である。ＣＰＵ２１には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。ＣＰＵ２１は、バスを介して管理サーバ１３を構成するハードウェア各部と接続されている。
【００１７】
主記憶装置２２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の記憶装置である。主記憶装置２２には、ＣＰＵ２１が行う処理の途中で必要な情報およびＣＰＵ２１で実行中のプログラムが一時的に保存される。
【００１８】
補助記憶装置２３は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置２３には、ＣＰＵ２１に実行させるプログラム、仕様ＤＢ（Database）４１、実測値ＤＢ４２、およびプログラムの実行に必要な各種データが保存される。
【００１９】
時計２５は、時刻を出力する。時計２５は、通信機器１２およびネットワークを介して日本標準時等の標準時刻との時刻合わせを行えることが望ましい。
【００２０】
通信インターフェイス２４は、管理サーバ１３と通信機器１２との間の通信を行うインターフェイスである。管理サーバ１３は、たとえばラックマウント型のパソコンである。
【００２１】
被管理サーバ１４は管理サーバ１３による制御に基づいて、各種の情報処理を行う。被管理サーバ１４は、図示しないプロセッサ、主記憶装置、補助記憶装置および通信インターフェイスを備える。各構成要素の働きは、管理サーバ１３の構成要素と同一である。被管理サーバ１４は、たとえばラックマウント型のＰＣサーバである。
【００２２】
図２は、データセンタの構成を示す説明図である。データセンタは、多数のサーバシステム１０、記憶装置、通信設備およびこれらの電子機器を冷却する冷却装置等を運用する施設である。図２には、間接水冷式の冷却装置を使用するデータセンタの例を示す。
【００２３】
前述のように、サーバシステム１０の棚１１には、通信機器１２、管理サーバ１３および被管理サーバ１４等の電子機器が固定されている。各電子機器は棚１１の高さ方向に一列に設置されている。各電子機器はそれぞれが棚１１に固定されている。
【００２４】
被管理サーバ１４は空冷型であり、筐体の一方の側面から空気を取り入れて、反対側の側面から空気を排出する。それぞれの被管理サーバ１４の吸気口の近傍に、吸気温度を測定する温度センサ１６が配置されている。複数の被管理サーバ１４は、吸気口同士および排気口同士をそれぞれ同じ側に向けて配置されている。
【００２５】
棚１１の前後左右上下の各面は、棚１１の内側と外側とを区切る外装板により覆われている。外装板の一部は、開閉可能な扉となっており、棚１１に電子機器を固定する際に使用される。外装板は、棚１１の内部を完全に密閉していても良いし、一部に隙間を有していても良い。外装板を有する棚１１を、閉鎖型ラックと呼ぶ場合がある。
【００２６】
棚１１には、各電子機器の側面に向けて送風することが可能な送風機１８が設置されている。また、送風機１８に隣接して熱交換器１９が設置されている。送風機１８および熱交換器１９の動作については後述する。
【００２７】
冷却装置は、冷凍機３３、緩衝タンク３４、冷媒管３５、ポンプ３６、冷媒センサ３７、弁３８および図示しない冷却制御装置を備える。
【００２８】
冷媒管３５は、冷凍機３３および緩衝タンク３４を接続している。また、冷媒管３５は、各サーバシステム１０の近傍で冷媒支管３５１に分岐している。冷媒支管３５１は、熱交換器１９に接続されている。冷媒支管３５１により、複数の熱交換器１９が冷凍機３３および緩衝タンク３４に対して並列に接続されている。
【００２９】
冷凍機３３は冷媒管３５内を流れる冷媒を冷却する。緩衝タンク３４は、冷凍機３３で冷却する前後の冷媒を一時的に貯蔵して冷凍機３３の負荷の急激な変動および冷媒管３５内を流れる冷媒の温度の急激な変動を防止する。なお、緩衝タンク３４内では冷却する前の冷媒と冷却した後の冷媒とは混ざらないように隔離されている。
【００３０】
ポンプ３６は、冷媒管３５内の冷媒を所定の方向に流動させる。冷凍機３３で冷却された冷媒は冷媒管３５および冷媒支管３５１を通って熱交換器１９に入る。冷媒は熱交換器１９内で温められる。サーバシステム１０内の熱の移動については後述する。
【００３１】
熱交換器１９で温められた冷媒は、緩衝タンク３４を介して冷凍機３３に移動して冷却される。冷凍機３３で冷却された冷媒は、緩衝タンク３４、冷媒管３５および冷媒支管３５１を介して熱交換器１９に送り出される。冷媒は冷凍機３３と熱交換器１９との間を巡回して繰り返し使用される。なお、本実施の形態においては、冷媒には水を使用する。
【００３２】
冷媒センサ３７は、緩衝タンク３４からサーバシステム１０に向かう冷媒の温度を測定する。弁３８は冷媒管３５および冷媒支管３５１内の冷媒の流量を調整する。図２には２個の弁３８が記載されているが、弁３８の数は２個に限定されない。弁３８は流量の調整が必要な場所に適宜設置されている。
【００３３】
冷凍機３３、ポンプ３６、冷媒センサ３７および弁３８は、図示しない冷却制御装置に接続されており、冷媒センサ３７で測定された冷媒の温度を一定に保つように各部位の動作が制御される。図２には１個の冷媒センサ３７が記載されているが、冷媒センサ３７の数は１個に限定されない。冷媒センサ３７は冷媒の温度の測定が必要な場所に適宜設置されている。
【００３４】
図３は、サーバシステム１０の冷却方法を示す説明図である。図３は、サーバシステム１０をＩＩＩ−ＩＩＩ断面で切った模式図である。すなわち、棚１１に１９インチラックを使用して水平に設置した場合には、図３は水平断面を示す。
【００３５】
ＩＩＩ−ＩＩＩ断面は、被管理サーバ１４を通る断面である。送風機１８がサーバシステム１０の内部に白抜き矢印で示す空気の流れを作り出す。図３を用いて、サーバシステム１０内の熱の移動について説明する。
【００３６】
送風機１８から送り出された空気は、被管理サーバ１４の吸気口から被管理サーバ１４の内部に入り、被管理サーバ１４を構成する電子部品を冷却する。被管理サーバ１４を構成する電子部品が発生する熱により温められた空気は、熱交換器１９を通る。熱交換器１９の内部には、冷媒支管３５１が通っている。冷媒支管３５１内を通って熱交換器１９に入った冷媒は、熱交換器１９内の空気により温められることにより、熱交換器１９内の空気を冷却する。熱交換器１９で冷却された空気は、再度送風機１８から被管理サーバ１４に向けて送り出される。
【００３７】
ポンプ３６の作用により熱交換器１９内で温められた冷媒が冷媒支管３５１を通って熱交換器１９の外に出ることにより、サーバシステム１０内で発生した熱もサーバシステム１０の外部に運び出される。前述のとおり、熱交換器１９内で温められた冷媒は緩衝タンク３４を介して冷凍機３３で冷やされる。
【００３８】
それぞれの被管理サーバ１４の吸気口の近傍に配置された温度センサ１６により、被管理サーバ１４の吸気温度が測定される。図１に示すように、温度センサ１６は、通信機器１２を介して管理サーバ１３に接続されている。
【００３９】
図４は、棚１１に設置された電子機器の構成を示す説明図である。棚１１の最上部の区画には通信機器１２が、１つ下の区画には管理サーバ１３が配置されている。管理サーバ１３の下の区画には第１被管理サーバ１４から第１０被管理サーバ１４まで合計１０台の被管理サーバ１４が配置されている。図５においては、被管理サーバ１４は吸気口を左側に、排気口を右側にして配置されている。吸気口の近傍に温度センサ１６が配置されている。
【００４０】
なお、棚１１は、１３台以上の電子機器を配置可能であっても良い。そのようにする場合には、被管理サーバ１４の間に電子機器を搭載しない空き区画を配置しても良い。また、棚１１は１２台未満の電子機器を配置可能であっても良い。そのようにする場合には、被管理サーバ１４は棚１１に設置することが可能な台数にする。
【００４１】
アメリカ暖房冷凍空調学会の技術委員会であるＡＳＨＲＡＥ  ＴＣ９．９（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 中の、Ａｐｐｅｎｄｉｘ  Ｃによると、被管理サーバ１４等の電子機器は、吸気温度の上昇につれて故障率が上昇する。したがって、電子機器の故障率を低減して長い期間安定的に稼動させるためには、吸気温度の上昇を避けることが望ましい。
【００４２】
図１から図４を使用して、本実施の形態のサーバシステム１０の発熱について説明する。図２を使用して説明したように、棚１１に通信機器１２、管理サーバ１３および１０台の被管理サーバ１４が搭載されている。被管理サーバ１４は管理サーバ１３による制御に基づいて、各種の情報処理を行う。被管理サーバ１４は情報処理を行う際に熱を発生する。
【００４３】
被管理サーバ１４は空冷式であり、吸気口と排気口とを備える。被管理サーバ１４の吸気口から内部に入った空気は、被管理サーバ１４のプロセッサ等が発生した熱により温められて排気口から外に出る。排気された空気は、熱交換器１９で冷却され、送風機１８により再度吸気口から被管理サーバ１４内に入る。
【００４４】
このように、棚１１内部の空気は循環して、被管理サーバ１４を冷却する。しかし、熱せられた空気は棚１１内の配線孔等を通って上昇する。そのため、サーバシステム１０の運用を長時間継続した場合には、上側に配置された被管理サーバ１４ほど吸気温度が高くなり、上側の被管理サーバ１４と下側の被管理サーバ１４との間の温度差が大きくなる傾向がある。
【００４５】
温度が高い場合には、電子回路内の配線の抵抗値が上昇する。それにより、電子回路の温度はさらに上昇する傾向がある。したがって、吸気温度が高い被管理サーバ１４と吸気温度が低い被管理サーバ１４とが同一量の情報処理を実行した場合には、吸気温度が高い被管理サーバ１４の温度上昇量の方が大きい。その結果、両者の温度差は増加する。すなわち被管理サーバ１４間に発生した温度差は、被管理サーバ１４の動作状態に変動がない場合には拡大する傾向にある。
【００４６】
温度差が大きくなった場合には、前述のように温度の高い被管理サーバ１４の故障率が相対的に上昇する。そのために、サーバシステム１０の動作が不安定になるおそれがある。
【００４７】
吸気温度が高い被管理サーバ１４で実行する情報処理の一部を吸気温度が低い被管理サーバ１４に移すことにより、サーバシステム１０全体の情報処理量を維持しながら、被管理サーバ１４間の温度差の増加を防ぐことが可能である。
【００４８】
図５は、仕様ＤＢ４１のレコードレイアウトを示す説明図である。仕様ＤＢ４１は、被管理サーバ１４のサーバ名と、被管理サーバ１４の最大消費電力とを関連づけるＤＢである。仕様ＤＢ４１は、サーバ名フィールドと最大消費電力フィールドとを有する。サーバ名フィールドには、サーバの名称が記録されている。最大消費電力フィールドには、各サーバの最大消費電力が記録されている。仕様ＤＢ４１は、１台の被管理サーバ１４について１つのレコードを有する。
【００４９】
図６は、実測値ＤＢ４２のレコードレイアウトを示す説明図である。実測値ＤＢ４２は、被管理サーバ１４のサーバ名と、吸気温度および消費電力の実測値とを関連づけるＤＢである。実測値ＤＢ４２は、サーバ名フィールド、吸気温度実測値フィールドおよび消費電力実測値フィールドを有する。
【００５０】
サーバ名フィールドには、被管理サーバ１４の名称が記録されている。吸気温度実測値フィールドには、温度センサ１６により測定した吸気温度が記録されている。消費電力実測値フィールドには、被管理サーバ１４の消費電力が記録されている。吸気温度フィールドおよび消費電力実測値フィールドに記録されたデータは、データを取得する都度書き換えられる。実測値ＤＢ４２は、１台の被管理サーバ１４について１つのレコードを有する。
【００５１】
なお、被管理サーバ１４の消費電力は、それぞれの被管理サーバ１４のプロセッサが推計して出力した値、またはそれぞれの被管理サーバ１４の電源部に取り付けられた電力計が計測した値を使用する。
【００５２】
図１から図６を使用して、本実施の形態のサーバシステム１０の動作について説明する。管理サーバ１３のＣＰＵ２１は、通信インターフェイス２４および通信機器１２を介して各被管理サーバ１４を制御する。以後の説明では、ＣＰＵ２１が被管理サーバ１４に割り当てる情報処理作業をジョブと記載する。それぞれの被管理サーバ１４のプロセッサは、複数のジョブを並行して処理するか、または順次処理する。
【００５３】
ＣＰＵ２１は、温度センサ１６からそれぞれの被管理サーバ１４の吸気温度を取得して、実測値ＤＢ４２の吸気温度実測値フィールドに記録されたデータを更新する。ＣＰＵ２１は、それぞれの被管理サーバ１４の消費電力を取得して、実測値ＤＢ４２の消費電力実測値フィールドに記録されたデータを更新する。
【００５４】
ＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドに記録されたデータの最大値および最小値を抽出する。ＣＰＵ２１は抽出した最大値から最小値を減算して、温度差を算出する。ＣＰＵ２１は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、ＣＰＵ２１は温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整する。
【００５５】
なおＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドに記録されたデータの最大値から平均値を減算して、温度差を算出しても良い。
【００５６】
ジョブの調整について、さらに具体的に説明する。ＣＰＵ２１は、最も吸気温度が低い被管理サーバ１４の情報処理能力に余力があるか否かを判定する。余力の有無は、仕様ＤＢ４１の最大消費電力フィールドに記録された最大消費電力に対する実測値ＤＢ４２の消費電力実測値フィールドに記録された消費電力実測値との比率に基づいて判定する。
【００５７】
具体的には、比率が所定の値、たとえば７０％よりも大きい場合には、その被管理サーバ１４には余力がないと判定する。一方、比率が所定の値以下である場合には、その被管理サーバ１４には余力があると判定する。被管理サーバ１４の情報処理の負荷が高い場合ほど、被管理サーバ１４の消費電力が高くなるからである。
【００５８】
ＣＰＵ２１は、吸気温度が低い被管理サーバ１４から順次、余力の有無を判定する。余力があると判定した場合、ＣＰＵ２１は、最も吸気温度が高い被管理サーバ１４に割り当てられたジョブの一部を、余力があるサーバに割り当てなおす。
【００５９】
余力のある被管理サーバ１４が存在しない場合、ＣＰＵ２１は、優先度の低いジョブの実行を中断する。ジョブの優先度は、サーバシステム１０のユーザによりあらかじめ指定されている。その後、ＣＰＵ２１は再度最も吸気温度が高い被管理サーバ１４に割り当てられたジョブを割り当てなおすサーバを判定する。
【００６０】
ジョブを割り当てなおすことにより、最も吸気温度が高い被管理サーバ１４の負荷が減少することに伴い、発熱量が減少する。そのため、その被管理サーバ１４の周囲の温度も低下し、吸気温度が低下する。一方、ジョブを受け取った、吸気温度が比較的低い被管理サーバ１４の負荷が増えて、発熱量が増加する。以上により、被管理サーバ１４間の温度差を少なくすることができる。
【００６１】
図７は、プログラムの処理の流れを示すフローチャートである。図７を使用して、本実施の形態のＣＰＵ２１が行う処理の流れを説明する。
【００６２】
ＣＰＵ２１は、通信機器１２を介して各被管理サーバ１４の吸気温度および消費電力を取得する（ステップＳ５０１）。ＣＰＵ２１は、取得した吸気温度および消費電力を実測値ＤＢ４２に記録する（ステップＳ５０２）。
【００６３】
ＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドを検索して、最高の温度が記録されたレコードを抽出する（ステップＳ５０３）。ＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドを検索して、最低の温度が記録されたレコードを抽出する（ステップＳ５０４）。ＣＰＵ２１は、ステップＳ５０３で抽出した最高の温度からステップＳ５０４で抽出した最低の温度を減算して温度差を算出する（ステップＳ５０５）。
【００６４】
ＣＰＵ２１は、温度差が許容範囲内であるか否かを判定する（ステップＳ５０６）。具体的には、たとえば算出した温度差が１℃以内である場合に許容範囲内であると判定する。また、たとえば算出した温度差が最高温度の５％以内である場合に許容範囲内であると判定しても良い。
【００６５】
温度差が許容範囲を超えると判定した場合（ステップＳ５０６でＮＯ）、ＣＰＵ２１は温度差縮小のサブルーチンを起動する（ステップＳ５０７）。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。
【００６６】
温度差が許容範囲内であると判定した場合（ステップＳ５０６でＹＥＳ）およびステップＳ５０７の終了後、ＣＰＵ２１は処理を終了するか否かを判定する（ステップＳ５０８）。処理を終了する場合とは、たとえばネットワークを介してサーバシステム１０の温度制御を終了するという入力を受け付けた場合である。
【００６７】
処理を終了しないと判定した場合（ステップＳ５０８でＮＯ）、ＣＰＵ２１はステップＳ５０１に戻る。処理を終了すると判定した場合（ステップＳ５０８でＹＥＳ）、ＣＰＵ２１は処理を終了する。
【００６８】
図８は、温度差縮小のサブルーチンの処理の流れを示すフローチャートである。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。図８を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
【００６９】
ＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドに記録された吸気温度が高い方から降順で、被管理サーバ１４に順位を付ける（ステップＳ５２１）。順位は主記憶装置２２または補助記憶装置２３に記憶する。また実測値ＤＢ４２に順位を記録するフィールドを設けて記録しても良い。なお、以後の説明ではステップＳ５２１で１位と順位付けした被管理サーバ１４を最高温度サーバと記載する。
【００７０】
ＣＰＵ２１は、カウンタＩを初期値１に設定する（ステップＳ５２２）。ＣＰＵ２１は、仕様ＤＢ４１の最大消費電力フィールドに記録された最大消費電力を、実測値ＤＢ４２の消費電力実測値フィールドに記録された消費電力実測値で除した消費電力比率を算出する（ステップＳ５２３）。
【００７１】
ＣＰＵ２１は、吸気温度が低い側からＩ番目の被管理サーバ１４の情報処理能力に余力があるか否かを判定する（ステップＳ５２４）。具体的には、ステップＳ５２３で算出した消費電力比率が所定の値よりも大きい場合に余力がないと判定し、消費電力比率が所定の値以下である場合に余力があると判定する。所定の値は、たとえば７０％または８０％等の任意の値を定めることができる。
【００７２】
余力があると判定した場合（ステップＳ５２４でＹＥＳ）、ＣＰＵ２１は最高温度サーバに割り当てられたジョブの一部を、Ｉ番目の被管理サーバ１４に移動する（ステップＳ５２５）。ＣＰＵ２１は、その後処理を終了する。なお、被管理サーバ１４間でのジョブの割り当ての変更は従来から行われているので、説明を省略する。
【００７３】
余力がないと判定した場合（ステップＳ５２４でＮＯ）、ＣＰＵ２１は、ステップＳ５２１で順位付けしたうちの低温の被管理サーバ１４の処理を終了したか否かを判定する（ステップＳ５３１）。ここで低温の被管理サーバ１４は、たとえば棚１１に設置された被管理サーバ１４のうちの低温側から半数のサーバとする。また、吸気温度が平均値より低いサーバを低温の被管理サーバ１４としても良い。
【００７４】
低温の被管理サーバ１４の処理が終了していないと判定した場合（ステップＳ５３１でＮＯ）、ＣＰＵ２１はカウンタＩに１を加算する（ステップＳ５３２）。その後、ＣＰＵ２１はステップＳ５２３に戻る。
【００７５】
低温の被管理サーバ１４の処理が終了したと判定した場合（ステップＳ５３１でＹＥＳ）、ＣＰＵ２１は棚１１に搭載された被管理サーバ１４で実行中のジョブのうち、優先度の低いジョブを停止する（ステップＳ５３３）。ジョブの優先度は、サーバシステム１０のユーザによりあらかじめ指定されている。
【００７６】
ＣＰＵ２１は、ステップＳ５３３で停止したジョブは、最高温度サーバに割り当てられたジョブであるか否かを判定する（ステップＳ５３４）。最高温度サーバに割り当てられたジョブが停止したと判定した場合（ステップＳ５３４でＹＥＳ）、ＣＰＵ２１は処理を終了する。
【００７７】
最高温度サーバに割り当てられたジョブではないと判定した場合（ステップＳ５３４でＮＯ）、ＣＰＵ２１は最高温度サーバに割り当てられたジョブの一部を、ステップＳ５３３でジョブを停止した被管理サーバ１４に移動する（ステップＳ５３５）。ＣＰＵ２１は、その後処理を終了する。
【００７８】
なお、ステップＳ５３３でジョブを停止する代わりに、たとえばプロセッサの動作クロックを低速に変更しても良い。このようにすることにより、被管理サーバ１４の消費電力を低減し、発熱を抑えることができる。
【００７９】
本実施の形態によると、実行中のジョブの移動または停止により最高温度サーバの情報処理の負荷を低減することができる。負荷が低減されることにより、最高温度サーバの発熱量が減少する。最高温度サーバに割り当てられていたジョブは、余力のある被管理サーバ１４に割り当てられるため、サーバシステム１０全体で処理する情報処理の量は変化しない。一方、余力のある被管理サーバ１４が存在しない場合には、優先度が低いジョブが停止するため、優先度が高いジョブの実行には支障が生じない。
【００８０】
なお、棚１１に被管理サーバ１４を配置する際に、消費電力効率が相対的に高い被管理サーバ１４を上の区画に配置することが望ましい。消費電力効率が相対的に高い被管理サーバ１４とは、同じ情報処理を実行した場合の消費電力が少ない被管理サーバ１４である。なお、被管理サーバ１４が消費した電力は最終的には熱になるので、消費電力が相対的に少ないサーバは、発熱量も少ない。
【００８１】
このようにすることにより、各被管理サーバ１４に均等に負荷を割り当てた場合に、棚１１の上部に配置された被管理サーバ１４の発熱量を少なくすることができる。そのため、サーバシステム１０の運用を長時間継続した場合であっても、上側に配置された被管理サーバ１４の温度が上昇しにくい。
【００８２】
棚１１に搭載された被管理サーバ１４の数は１０台に限定しない。被管理サーバ１４の数は任意である。被管理サーバ１４の配置は、縦１列に限定しない。たとえば、１段に２台ずつの被管理サーバ１４を搭載することが可能な棚１１を使用して、被管理サーバ１４を縦２列に配置しても良い。
【００８３】
温度センサ１６は、被管理サーバ１４の内部または排気口近傍付近に配置しても良い。温度センサ１６は、被管理サーバ１４を介して通信機器１２に接続されていても良い。
【００８４】
サーバシステム１０の冷却方法は、サーバシステム１０を設置した部屋全体を冷房する方法でも良いし、部屋または冷却管内に外気を導入する方法でも良い。このようにする場合には、棚１１は内側と外側とを区切る外装板を備えない方が、棚１１に搭載した電子機器を効率良く冷却することが可能である。また、一つの部屋の内部に複数のサーバシステム１０が設置されていても良い。
【００８５】
［実施の形態２］
本実施の形態は、吸気温度の時系列的な変化に基づいて将来の吸気温度を予測し、予測した吸気温度の温度差を低減させるように被管理サーバ１４の負荷を配分しなおすサーバシステム１０に関する。実施の形態１と共通する部分については説明を省略する。
【００８６】
図９は、実施の形態２の温度実測値変化ＤＢのレコードレイアウトを示す説明図である。温度実測値変化ＤＢは、温度センサ１６が温度を測定した時刻と測定した温度とを関連づけるＤＢである。温度実測値変化ＤＢは、サーバ名フィールド、時刻フィールドおよび吸気温度フィールドを有する。
【００８７】
サーバ名フィールドには、被管理サーバ１４の名称が記録されている。時刻フィールドには時刻が記録されている。吸気温度フィールドには、温度センサ１６により測定した吸気温度が記録されている。温度実測値変化ＤＢは、１台の被管理サーバ１４の１回の温度測定について１つのレコードを有する。
【００８８】
図１０は、実施の形態２の吸気温度の予測方法を示す説明図である。図１０の横軸は時刻を示す。横軸の単位は時分である。図１０の縦軸は被管理サーバ１４の吸気温度を示す。縦軸の単位は℃である。図９の測定データを、図１０に黒丸および実線で示す。
【００８９】
吸気温度予測方法の概略を説明する。本実施の形態においては、吸気温度の変化は一次関数で近似できるものと仮定する。ＣＰＵ２１は、最新の６回分の吸気温度測定データ、すなわち１４時１５分から１４時２０分までの測定データを用いて、最小二乗法により近似式の係数を算出する。図１０中の一点鎖線は、算出した係数を用いた近似式を示す。なお、最小二乗法は従来から使用されている手法であるので、説明を省略する。ＣＰＵ２１は、近似式を用いて、未来の時刻である１４時２１分における吸気温度を予測する。
【００９０】
なお、温度測定の時間間隔および最小二乗法に使用するデータの数はいずれも例示である。また、近似式は一次関数に限定しない。任意の関数式で吸気温度を近似することができる。
【００９１】
図１１は、実施の形態２の温度予測値ＤＢのレコードレイアウトを示す説明図である。温度予測値ＤＢは、被管理サーバ名と吸気温度の予測値とを関連づけるＤＢである。温度予測値ＤＢは、サーバ名フィールドと吸気温度予測値フィールドを有する。サーバ名フィールドには、被管理サーバ１４の名称が記録されている。吸気温度予測値フィールドには、図１０を使用して説明した方法によりＣＰＵ２１が算出した吸気温度の予測値が記録されている。温度予測値ＤＢは、１台の被管理サーバ１４について１つのレコードを有する。
【００９２】
ＣＰＵ２１は、温度予測値ＤＢの吸気温度予測値フィールドに記録されたデータの最大値および最小値を抽出する。ＣＰＵ２１は抽出した最大値から最小値を減算して、温度差を算出する。ＣＰＵ２１は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、ＣＰＵ２１は温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整する。
【００９３】
図１２は、実施の形態２のプログラムの処理の流れを示すフローチャートである。図１２を使用して、本実施の形態のＣＰＵ２１が行う処理の流れを説明する。
【００９４】
ＣＰＵ２１は、通信機器１２を介して各被管理サーバ１４の吸気温度および消費電力を取得する（ステップＳ５５１）。ＣＰＵ２１は、取得した吸気温度および消費電力を、図６を使用して説明した実測値ＤＢ４２に記録する。さらにＣＰＵ２１は、取得した吸気温度を、図９を使用して説明した温度実測値変化ＤＢにも記録する。（ステップＳ５５２）。
【００９５】
ＣＰＵ２１は、温度実測値変化ＤＢに所定回数以上のデータを記録したか否かを判定する（ステップＳ５５３）。ここで所定回数とは時系列的な変化に基づいて将来の温度を予測するために必要なデータの測定回数である。本実施の形態においては、所定回数は６回とする。所定回数を５回以下または７回以上にしても良い。
【００９６】
所定回数のデータを記録していないと判定した場合（ステップＳ５５３でＮＯ）、ＣＰＵ２１はステップＳ５５１に戻る。なお、本実施の形態ではＣＰＵ２１は前回のステップＳ５５１の実行から１分後にステップＳ５５１を実行する。ステップＳ５５１の実行間隔は任意の時間を選択できる。
【００９７】
所定回数以上のデータを記録したと判定した場合（ステップＳ５５３でＹＥＳ）、ＣＰＵ２１はカウンタＩを初期値１に設定する（ステップＳ５５４）。ＣＰＵ２１は、予測サブルーチンを起動する（ステップＳ５５５）。予測サブルーチンは、時系列的に記録した所定回数のデータに基づいて将来のデータを予測するサブルーチンである。ステップＳ５５５においては、ＣＰＵ２１は温度実測値変化ＤＢのＩ番目の被管理サーバ１４の吸気温度フィールドに記録された所定回数分の吸気温度データに基づいて、Ｉ番目の被管理サーバ１４の吸気温度を予想する。予測サブルーチンの処理の流れは後述する。
【００９８】
ＣＰＵ２１は、予測した吸気温度を、図１１を使用して説明した温度予測値ＤＢに記録する（ステップＳ５５６）。ＣＰＵ２１は、すべての被管理サーバ１４の吸気温度を予測する処理が完了したか否かを判定する（ステップＳ５５７）。処理が完了していないと判定した場合（ステップＳ５５７でＮＯ）、ＣＰＵ２１はカウンタＩに１を加算する（ステップＳ５５８）。ＣＰＵ２１は、ステップＳ５５５に戻る。
【００９９】
処理が完了したと判定した場合（ステップＳ５５７でＹＥＳ）、ＣＰＵ２１は、温度予測値ＤＢの吸気温度予測値フィールドを検索して、最高の温度が記録されたレコードを抽出する（ステップＳ５５９）。ＣＰＵ２１は、温度予測値ＤＢの吸気温度予測値フィールドを検索して、最低の温度が記録されたレコードを抽出する（ステップＳ５６０）。ＣＰＵ２１は、ステップＳ５６０で抽出した最高の温度からステップＳ５５９で抽出した最低の温度を減算して温度差を算出する（ステップＳ５６１）。
【０１００】
ＣＰＵ２１は、温度差が許容範囲内であるか否かを判定する（ステップＳ５６２）。温度差が許容範囲を超えると判定した場合（ステップＳ５６２でＮＯ）、ＣＰＵ２１は温度差縮小のサブルーチンを起動する（ステップＳ５６３）。
【０１０１】
温度差縮小のサブルーチンは、図８を使用して説明した、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。なお、本実施の形態の温度差縮小のサブルーチンのステップＳ５２１においては、ＣＰＵ２１は温度予測値ＤＢに記録された吸気温度の予測値に基づいて、被管理サーバ１４の順位付けを行う。
【０１０２】
温度差が許容範囲内であると判定した場合（ステップＳ５６２でＹＥＳ）およびステップＳ５６３の終了後、ＣＰＵ２１は処理を終了するか否かを判定する（ステップＳ５６４）。処理を終了する場合とは、たとえばネットワークを介してサーバシステム１０の温度制御を終了するという入力を受け付けた場合である。
【０１０３】
処理を終了しないと判定した場合（ステップＳ５６４でＮＯ）、ＣＰＵ２１はステップＳ５５１に戻る。処理を終了すると判定した場合（ステップＳ５６４でＹＥＳ）、ＣＰＵ２１は処理を終了する。
【０１０４】
図１３は、実施の形態２の予測サブルーチンの処理の流れを示すフローチャートである。予測サブルーチンは、時系列的に記録した所定回数のデータに基づいて将来のデータを予測するサブルーチンである。図１３を使用して、予測サブルーチンの処理の流れを説明する。
【０１０５】
ＣＰＵ２１は、所定の数の時系列データを取得する（ステップＳ５８１）。具体的には、ＣＰＵ２１は温度実測値変化ＤＢから６回分の時刻と吸気温度のデータの組を取得する。
【０１０６】
ＣＰＵ２１は、ステップＳ５８１で取得したデータに基づいて、モデル関数の係数を定める（ステップＳ５８２）。モデル関数に式（１）に示す一次関数ｆ（ｔ）を使用する場合を例にして説明する。
ｙ（ｔ）＝ｆ（ｔ）＝αｔ＋β  ………  （１）
ｔは時刻。
ｙ（ｔ）は、時刻ｔにおける吸気温度。
αおよびβはモデル関数ｆ（ｔ）の係数。
【０１０７】
式（１）がステップＳ５８１で取得したデータを近似するように、最小二乗法により係数αおよび係数βを算出する。最小二乗法は従来から使用されている手法であるので、説明を省略する。モデル関数は一次関数に限定しない。たとえば、二次関数、三次関数等の任意の関数を使用することができる。被管理サーバ１４ごとに異なるモデル関数を使用しても良い。
【０１０８】
ステップＳ５８２で算出した係数を用いて、所定の時刻における予測値を算出する（ステップＳ５８３）。具体的には、式（２）を使用する。
ｙ０＝ｆ（ｔ０）＝αｔ０＋β  ……  （２）
ｔ０は、未来の所定の時刻。
αおよびβは、ステップＳ５８２で算出した係数。
ｙ０は、時刻ｔ０における吸気温度の予測値。
【０１０９】
本実施の形態によると、直近の吸気温度の実測値の変動に基づいて予測した吸気温度に基づいて、被管理サーバ１４間の温度差を低減するサーバシステム１０を提供することができる。未来の吸気温度を予測して、温度差の発生を予防する対策を講じるため、被管理サーバ１４間の吸気温度の温度差の発生をさらに抑制することが可能である。
【０１１０】
［実施の形態３］
本実施の形態は、仮想機械を動作させるサーバシステム１０に関する。実施の形態１と共通する部分については説明を省略する。
【０１１１】
本実施の形態の被管理サーバ１４には、大容量の主記憶装置が搭載されており、複数の仮想機械を動作させることができる。各仮想機械は、仮想的なコンピュータとして動作して、各種のアプリケーションソフトウェアを実行する。複数の被管理サーバ１４のうちの、どの被管理サーバ１４にどのアプリケーションソフトウェアを実行させる仮想機械を配置するかは、通信機器１２を介して管理サーバ１３が管理する。
【０１１２】
一つの被管理サーバ１４に配置された仮想機械は、サーバシステム１０の動作中に別の被管理サーバ１４に移動させることができる。すなわち、複数の被管理サーバ１４は、相互に代替することが可能である。管理サーバ１３は、仮想機械を適宜移動させることにより、吸気温度が高い被管理サーバ１４の負荷を減らすことができる。
【０１１３】
図１４は、実施の形態３の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。図１４に示すサブルーチンは、仮想機械を動作させるサーバシステム１０において図８を使用して説明した温度差縮小のサブルーチンの代わりに使用するサブルーチンである。
【０１１４】
本実施の形態の温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ１４に割り当てた仮想機械を調整するサブルーチンである。図１４を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
【０１１５】
ＣＰＵ２１は、カウンタＩを初期値１に設定する（ステップＳ６０１）。ＣＰＵ２１は、図６を使用して説明した実測値ＤＢ４２を参照してＩ番目の被管理サーバ１４は吸気温度が最も高温である最高温度サーバであるか否かを判定する（ステップＳ６０２）。最高温度サーバではないと判定した場合（ステップＳ６０２でＮＯ）、ＣＰＵ２１はカウンタＩに１を加算する（ステップＳ６０３）。ＣＰＵ２１は、ステップＳ６０２に戻る。
【０１１６】
最高温度サーバであると判定した場合（ステップＳ６０２でＹＥＳ）、ＣＰＵ２１はカウンタＪを初期値１に設定する（ステップＳ６０４）。ＣＰＵ２１は、実測値ＤＢ４２を参照してＪ番目の被管理サーバ１４の吸気温度が低温であるか否かを判定する（ステップＳ６０５）。ここでＣＰＵ２１は、たとえばＪ番目の被管理サーバ１４の吸気温度が、全被管理サーバ１４の吸気温度の平均値を下回っている場合に、低温であると判定する。ＣＰＵ２１は、吸気温度の順位に基づいて低温であるか否かを判定しても良い。
【０１１７】
低温であると判定した場合（ステップＳ６０５でＹＥＳ）、ＣＰＵ２１は最高温度サーバであるＩ番目の被管理サーバ１４で動作している仮想機械の一部をＪ番目の被管理サーバ１４に移動させることが可能であるか否かを判定する（ステップＳ６０６）。可能であると判定した場合（ステップＳ６０６でＹＥＳ）、ＣＰＵ２１は仮想機械を移動させる（ステップＳ６０７）。なお、被管理サーバ１４間での仮想機械の移動可否を判定する方法および実際に仮想機械を移動させる方法については、公知であるので説明を省略する。その後、ＣＰＵ２１は、処理を終了する。
【０１１８】
低温でないと判定した場合（ステップＳ６０５でＮＯ）および仮想機械の一部を移動させることが可能ではないと判定した場合（ステップＳ６０６でＮＯ）、ＣＰＵ２１はすべての被管理サーバ１４の処理を終了したか否かを判定する（ステップＳ６１１）。終了していないと判定した場合（ステップＳ６１１でＮＯ）、ＣＰＵ２１はカウンタＪに１を加算する（ステップＳ６１２）。ＣＰＵ２１は、ステップＳ６０５に戻る。
【０１１９】
すべての被管理サーバ１４の処理を終了したと判定した場合（ステップＳ６１１でＹＥＳ）、ＣＰＵ２１は仮想機械で実行している情報処理のうち優先度の低い情報処理を行っている仮想機械を停止する（ステップＳ６１３）。仮想機械で実行する情報処理の優先度は、サーバシステム１０のユーザによりあらかじめ指定されている。
【０１２０】
ＣＰＵ２１は、ステップＳ６１３で停止した仮想機械は、最高温度サーバであるＩ番目の被管理サーバ１４で実行されていたか否かを判定する（ステップＳ６１４）。Ｉ番目の被管理サーバ１４で実行されていたと判定した場合（ステップＳ６１４でＹＥＳ）、ＣＰＵ２１は処理を終了する。Ｉ番目の被管理サーバ１４で実行されていないと判定した場合（ステップＳ６１４でＮＯ）、ＣＰＵ２１はステップＳ６０４に戻る。
【０１２１】
本実施の形態によると、仮想機械の移動または停止により最高温度サーバの情報処理の負荷を低減することができる。負荷が低減されることにより、最高温度サーバの発熱量が減少する。最高温度サーバに割り当てられていた仮想機械は、余力のある被管理サーバ１４に割り当てられるため、サーバシステム１０全体で処理する情報処理の量は変化しない。一方、余力のある被管理サーバ１４が存在しない場合には、優先度が低い情報処理を行っている仮想機械が停止するため、優先度が高い情報処理の実行には支障が生じない。
【０１２２】
管理サーバ１３は、被管理サーバ１４上で動作する仮想機械であっても良い。このようにする場合には、棚１１に管理サーバ１３専用のハードウェアを設置する必要はない。
【０１２３】
［実施の形態４］
本実施の形態は、管理サーバ１３が冷却装置の制御も行うサーバシステム１０に関する。実施の形態２と共通する部分については、説明を省略する。
【０１２４】
本実施の形態においては、ＣＰＵ２１は、図１を使用して説明した冷凍機３３、緩衝タンク３４、冷媒管３５、ポンプ３６、冷媒センサ３７、弁３８を含む冷却装置を制御することができる。具体的には、ＣＰＵ２１はポンプ３６の出力および弁３８の動作を制御して、冷却装置の冷却能力を制御する。
【０１２５】
図１５は、実施の形態４のプログラムの処理の流れを示すフローチャートである。図１５を使用して、本実施の形態の処理の流れを説明する。ステップＳ５５１からステップＳ５６２までは、図１２を使用して説明した実施の形態２のプログラムの処理の流れと共通であるので説明を省略する。
【０１２６】
温度差が許容範囲を超えると判定した場合（ステップＳ５６２でＮＯ）、ＣＰＵ２１は冷却装置の冷却能力に余裕があるか否かを判定する（ステップＳ６２１）。冷却能力に余裕がある場合とは、冷却装置の能力に比べて冷却装置の出力が少ない状態を意味する。さらに具体的には、たとえばポンプ３６および弁３８を制御して、冷媒支管３５１を流れる冷媒の量を増加させることが可能である場合である。
【０１２７】
冷却能力に余裕があると判定した場合（ステップＳ６２１でＹＥＳ）、ＣＰＵ２１は冷却装置の冷却力を増加させる（ステップＳ６２２）。冷却能力に余裕がないと判定した場合（ステップＳ６２１でＮＯ）、ＣＰＵ２１は温度差縮小のサブルーチンを起動する（ステップＳ６２３）。温度差縮小のサブルーチンは、図８を使用して説明した、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。
【０１２８】
温度差が許容範囲内であると判定した場合（ステップＳ５６２でＹＥＳ）、ステップＳ６２２の終了後およびステップＳ６２３の終了後、ＣＰＵ２１は処理を終了するか否かを判定する（ステップＳ６２４）。処理を終了する場合とは、たとえばネットワークを介してサーバシステム１０の温度制御を終了するという入力を受け付けた場合である。
【０１２９】
処理を終了しないと判定した場合（ステップＳ６２４でＮＯ）、ＣＰＵ２１はステップＳ５５１に戻る。処理を終了すると判定した場合（ステップＳ６２４でＹＥＳ）、ＣＰＵ２１は処理を終了する。
【０１３０】
本実施の形態によると、温度差が発生した場合に冷却装置の冷却力を高めることにより、最高温度サーバの温度を低下させることができる。冷却力を高めている間に被管理サーバ１４の負荷状況が変化して温度差が自然に縮小した場合には、ステップＳ６２３の温度差縮小のサブルーチンを起動する必要がない。
【０１３１】
［実施の形態５］
本実施の形態は、被管理サーバ１４の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得し、これらの時系列的変化に基づいてプロセッサ使用率の目標値を定めて仮想機械を再配置するサーバシステム１０に関する。実施の形態３と共通する部分については説明を省略する。
【０１３２】
図１６は、電子機器の吸気温度の増減と消費電力との関係を示す説明図である。図１６の横軸は、電子機器の吸気温度の増減値を示し、単位は摂氏である。図１６の縦軸は電子機器の消費電力の増減値を示し、単位はワットである。図１６に示すグラフは、特定の電子機器を例にした例示であるが、吸気温度の増加に伴って消費電力が増加することは、一般的な電子機器にあてはまる傾向である。
【０１３３】
以下の説明では、それぞれの被管理サーバ１４の吸気温度の増減値ΔＴと消費電力の増減値ΔＴとの間の関係を、関数ｇを用いて式（３）のように示す。
【０１３４】
【数１】
2018018340.tif 000003
【０１３５】
関数ｇは、ΔＴを未知数とする数式またはΔＴとΔＷの組を記録した表の形式で補助記憶装置２３に記憶されている。なお、以下では、関数ｇは数式の形で補助記憶装置２３に記憶されている場合を例にして説明する。
【０１３６】
図１７は、実施の形態５の温度予測値ＤＢのレコードレイアウトを示す説明図である。温度予測値ＤＢは、サーバ名フィールド、吸気温度予測値フィールドおよび増減値フィールドを有する。サーバ名フィールドには、被管理サーバ１４の名称が記録されている。吸気温度予測値フィールドには、ＣＰＵ２１が算出した各被管理サーバ１４の吸気温度の予測値が記録されている。増減値フィールドには、吸気温度予測値に記録された予測値の平均値と、各被管理サーバ１４の吸気温度予測値との差が記録されている。温度予測値ＤＢは、１台の被管理サーバ１４について一つのレコードを有する。
【０１３７】
図１８は、実施の形態５の使用率実測値変化ＤＢのレコードレイアウトを示す説明図である。使用率実測値変化ＤＢは、被管理サーバ名、時刻、各時刻における消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を関連づけるＤＢである。使用率実測値変化ＤＢは、サーバ名フィールド、時刻フィールド、消費電力フィールド、プロセッサ使用率フィールド、記憶装置稼働率フィールドおよびファン稼働率フィールドを有する。
【０１３８】
サーバ名フィールドには、被管理サーバ１４の名称が記録されている。時刻フィールドには時刻が記録されている。消費電力フィールドには、時刻フィールドに記録された時刻における被管理サーバ１４の消費電力が記録されている。プロセッサ使用率フィールドには、時刻フィールドに記録された時刻における被管理サーバ１４のプロセッサ使用率が記録されている。記憶装置稼働率フィールドには、時刻フィールドに記録された時刻における被管理サーバ１４に内蔵された記憶装置の稼動率が記録されている。ファン使用率フィールドには、時刻フィールドに記録された時刻における被管理サーバ１４に内蔵された冷却用ファンの使用率が記録されている。使用率実測値変化ＤＢは、１台の被管理サーバ１４の１回の測定について１つのレコードを有する。
【０１３９】
図１９は、実施の形態５の係数変化ＤＢのレコードレイアウトを示す説明図である。係数変化ＤＢは、被管理サーバ名、時刻および被管理サーバ１４の消費電力に関する係数を関連づけるＤＢである。係数変化ＤＢは、サーバ名フィールド、時刻フィールド、ａフィールド、ｂフィールド、ｃフィールドおよびｄフィールドを有する。
【０１４０】
サーバ名フィールドには、被管理サーバ１４の名称が記録されている。時刻フィールドには時刻が記録されている。ａフィールドからｄフィールドには、時刻フィールドに記録された時刻における係数ａから係数ｄの値が記録されている。係数ａから係数ｄについては後述する。
【０１４１】
図２０は、実施の形態５の予測結果ＤＢのレコードレイアウトを示す説明図である。予測結果ＤＢは、被管理サーバ名、プロセッサ使用率の予測値、記憶装置稼働率の予測値、ファン稼働率の予測値および係数ａから係数ｄの予測値を関連づけるＤＢである。予測結果ＤＢは、サーバ名フィールド、プロセッサ使用率フィールド、記憶装置稼働率フィールド、ファン稼働率フィールド、係数ａから係数ｄフィールドを有する。
【０１４２】
サーバ名フィールドには、被管理サーバ１４の名称が記録されている。プロセッサ使用率フィールドには、ＣＰＵ２１が算出したプロセッサ使用率の予測値が記録されている。記憶装置稼動率フィールドには、ＣＰＵ２１が算出した記憶装置稼働率の予測値が記録されている。ファン稼働率フィールドには、ＣＰＵ２１が算出したファン稼働率の予測値が記録されている。係数ａフィールドから係数ｄフィールドには、ＣＰＵ２１が算出した係数ａから係数ｄの予測値が記録されている。予測結果ＤＢは、１台の被管理サーバ１４について１つのレコードを有する。
【０１４３】
図９および図１６から図２０を使用して、本実施の形態のサーバシステム１０の動作について説明する。
【０１４４】
ＣＰＵ２１は、温度センサ１６からそれぞれの被管理サーバ１４の吸気温度を取得して、図９を使用して説明した温度実測値変化ＤＢに記録する。ＣＰＵ２１は、それぞれの被管理サーバ１４のプロセッサから、被管理サーバ１４の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得して図１８を使用して説明した使用率実測値変化ＤＢに記録する。ＣＰＵ２１は、４回分以上のデータが温度実測値変化ＤＢおよび使用率実測値変化ＤＢに記録されるまでは、データの取得と記録を繰りかえす。
【０１４５】
４回分以上の測定データが記録された場合、ＣＰＵ２１は係数ａから係数ｄまでを算出する。係数ａから係数ｄまでについて説明する。任意の時刻における被管理サーバ１４の消費電力は、式（４）により表現される。
Ｗ＝ａＰ＋ｂＳ＋ｃＦ＋ｄ  ………  （４）
Ｗは、被管理サーバ１４の消費電力。
Ｐは、被管理サーバ１４のプロセッサ使用率。
Ｓは、被管理サーバ１４の記憶装置稼働率。
Ｆは、被管理サーバ１４のファン稼働率。
ａは、プロセッサの電力消費成分を示す係数。
ｂは、記憶装置の電力消費成分を示す係数。
ｃは、ファンの電力消費成分を示す係数。
ｄは、その他の電力消費成分を示す係数。
【０１４６】
ここで、係数ｄが示すその他の電力消費成分は、プロセッサ、記憶装置およびファン以外の被管理サーバ１４の構成要素、たとえば電源部、通信インターフェイス等が消費する電力を示す。ＣＰＵ２１は被管理サーバ１４で動作する仮想機械の割り当てを変更することによりプロセッサ使用率Ｐを制御することができる。しかしＣＰＵ２１は、消費電力Ｗ、記憶装置稼働率Ｓおよびファン稼働率Ｆを制御することはできない。これらのパラメータは、被管理サーバ１４のプロセッサの動作に連動して逐次変化する。
【０１４７】
プロセッサ使用率Ｐ、消費電力Ｗ、記憶装置稼働率Ｓおよびファン稼働率Ｆを４回取得する間、係数ａから係数ｄはそれぞれ変化しないと近似的に考えた場合に、式（５）の関係が成立する。
【０１４８】
【数２】
2018018340.tif 000004
【０１４９】
Ｗｎ、Ｐｎ、ＳｎおよびＦｎは既知であるので、式（５）は四元一次連立方程式であり、式（６）により係数ａから係数ｄを算出することができる。
【０１５０】
【数３】
2018018340.tif 000005
【０１５１】
以後の処理においては、式（６）により算出した係数ａから係数ｄを、ｎ＝１に対応する時刻における係数として扱う。すなわち、ＣＰＵ２１は、式（５）のｎ＝１に対応する時刻および係数ａから係数ｄを、図１９を使用して説明した係数変化ＤＢに記録する。
【０１５２】
ＣＰＵ２１は、温度実測値変化ＤＢに記録された温度に基づいて、それぞれの被管理サーバ１４の吸気温度の予測値を算出し、図１７を使用して説明した温度予測値ＤＢの吸気温度予測値フィールドに記録する。なお、予測することが可能な数のデータが温度実測値変化ＤＢに記録されていない場合には、ＣＰＵ２１は、必要数のデータが記録されるまで前述のデータの取得、記録および係数算出の処理を繰り返す。
【０１５３】
ＣＰＵ２１は、実測値ＤＢ４２の吸気温度実測値フィールドに記録されたデータの最大値および最小値を抽出する。ＣＰＵ２１は抽出した最大値から最小値を減算して、温度差を算出する。ＣＰＵ２１は、算出した温度差が許容範囲内であるか否かを判定する。温度差が許容範囲を超えている場合、ＣＰＵ２１は温度差を縮小させるように被管理サーバ１４上で実行する仮想機械の配置を調整する。
【０１５４】
ＣＰＵ２１は、それぞれの被管理サーバ１４の吸気温度、消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率の取得、係数ａから係数ｄの算出、吸気温度の予測ならびに仮想機械の配置の調整を繰り返す。
【０１５５】
本実施の形態の仮想機械の配置の調整について説明する。なお、図１３を使用して説明した予測サブルーチンを使用して将来のデータを予測することが可能な数のデータが、使用率実測値変化ＤＢおよび係数変化ＤＢに記録されていることを前提として、以下の説明を行う。予測することが可能な数のデータが記録されていない場合には、必要数のデータが記録されるまで前述の処理を繰り返す。
【０１５６】
ＣＰＵ２１は、温度予測値ＤＢの吸気温度予測値フィールドに記録された予測値の平均値を算出する。以後の処理では、算出した平均値を被管理サーバ１４の吸気温度の目標値に使用する。ＣＰＵ２１は、算出した平均値と、それぞれの被管理サーバ１４の吸気温度の予測値との差を、温度実測値変化ＤＢの増減値フィールドに記録する。
【０１５７】
ＣＰＵ２１は、使用率実測値変化ＤＢのプロセッサ使用率フィールドに記録されたデータに基づいて、所定の時刻ｔにおける被管理サーバ１４のプロセッサ使用率Ｐtを予測し、補助記憶装置２３に記憶する。ＣＰＵ２１は、使用率実測値変化ＤＢの記憶装置稼働率フィールドに記録されたデータに基づいて、所定の時刻ｔにおける被管理サーバ１４の記録装置稼働率Ｓtを予測し、補助記憶装置２３に記憶する。ＣＰＵ２１は、使用率実測値変化ＤＢのファン稼働率フィールドに記録されたデータに基づいて、所定の時刻ｔにおける被管理サーバ１４のファン稼働率Ｆtを予測し、補助記憶装置２３に記憶する。ＣＰＵ２１は、係数変化ＤＢのａフィールドからｄフィールドに記録されたデータに基づいて、所定の時刻ｔにおける係数ａtから係数ｄtをそれぞれ予測し、補助記憶装置２３に記憶する。
【０１５８】
ＣＰＵ２１は、予測したプロセッサ使用率Ｐt、記憶装置稼働率Ｓt、ファン稼動率Ｆtおよび係数ａtから係数ｄtを使用して、式（７）に基づいて所定の時刻ｔにおける消費電力の予測値Ｗtを算出する。
【０１５９】
【数４】
2018018340.tif 000006
【０１６０】
ＣＰＵ２１は、温度予測値ＤＢの増減値フィールドより、被管理サーバ１４の吸気温度の増減値を取得する。ＣＰＵ２１は、式（３）を使用して取得した増減値に対応する消費電力調整量ΔＷを算出する。
【０１６１】
ＣＰＵ２１は、式（７）に基づいて予測した消費電力Ｗｔを消費電力調整量ΔＷだけ低下させる場合のプロセッサ使用率、すなわちプロセッサ使用率目標値ＰDを、式（８）に基づいて算出する。
【０１６２】
【数５】
2018018340.tif 000007
【０１６３】
ＣＰＵ２１は、プロセッサ使用率Ｐt、記憶装置稼働率Ｓt、ファン稼動率Ｆtおよび係数ａtから係数ｄtの予測、ΔＷの算出ならびにＰDの算出を繰り返して、各被管理サーバ１４のプロセッサ使用率目標値ＰDを算出する。ＣＰＵ２１は、各被管理サーバ１４のプロセッサ使用率目標値ＰDに基づいて、仮想機械を再配置する。仮想機械の再配置は従来から行われているので、説明を省略する。
【０１６４】
図２１は、実施の形態５のプログラムの処理の流れを示すフローチャートである。図２１を使用して、本実施の形態の処理の流れを説明する。
【０１６５】
ＣＰＵ２１は、温度センサ１６からそれぞれの被管理サーバ１４の吸気温度を取得して、図９を使用して説明した温度実測値変化ＤＢに記録する（ステップＳ６４１）。ＣＰＵ２１は、それぞれの被管理サーバ１４のプロセッサから、被管理サーバ１４の消費電力、プロセッサ使用率、記憶装置稼働率およびファン稼働率を取得して図１８を使用して説明した使用率実測値変化ＤＢに記録する（ステップＳ６４２）。
【０１６６】
ＣＰＵ２１は、温度実測値変化ＤＢおよび使用率実測値変化ＤＢに４回分以上の測定結果が記録されているか否かを判定する（ステップＳ６４３）。記録されていないと判定した場合（ステップＳ６４３でＮＯ）、ＣＰＵ２１はステップＳ６４１に戻る。
【０１６７】
記録されていると判定した場合（ステップＳ６４３でＹＥＳ）ＣＰＵ２１は、係数算出のサブルーチンを起動する（ステップＳ６４４）。係数算出のサブルーチンは、４回分のプロセッサ使用率Ｐ、消費電力Ｗ、記憶装置稼働率Ｓおよびファン稼働率Ｆに基づいて、式（５）を満たす、係数ａから係数ｄを算出するサブルーチンである。係数算出のサブルーチンの処理の流れは後述する。
【０１６８】
ＣＰＵ２１は、温度実測値変化ＤＢに所定回数以上のデータを記録したか否かを判定する（ステップＳ６４５）。ここで所定回数とは時系列的な変化に基づいて将来の温度を予測するために必要なデータの測定回数である。所定回数のデータを記録していないと判定した場合（ステップＳ６４５でＮＯ）、ＣＰＵ２１はステップＳ６４１に戻る。
【０１６９】
所定回数以上のデータを記録したと判定した場合（ステップＳ６４５でＹＥＳ）、ＣＰＵ２１はカウンタＩを初期値１に設定する（ステップＳ６４６）。ＣＰＵ２１は、予測サブルーチンを起動する（ステップＳ６４７）。予測サブルーチンは、図１３を使用して説明したサブルーチンを使用する。ステップＳ６４６においては、ＣＰＵ２１は温度実測値変化ＤＢのＩ番目の被管理サーバ１４の吸気温度フィールドに記録された所定回数分の吸気温度データに基づいて、Ｉ番目の被管理サーバ１４の吸気温度を予想する。
【０１７０】
ＣＰＵ２１は、予測した吸気温度を、図１７を使用して説明した温度予測値ＤＢの吸気温度予測値フィールドに記録する（ステップＳ６４８）。ＣＰＵ２１は、同じレコードの増減値フィールドに記録されたデータを削除する。
【０１７１】
ＣＰＵ２１は、すべての被管理サーバ１４の吸気温度を予測する処理が完了したか否かを判定する（ステップＳ６４９）。処理が完了していないと判定した場合（ステップＳ６４９でＮＯ）、ＣＰＵ２１はカウンタＩに１を加算する（ステップＳ６５０）。ＣＰＵ２１は、ステップＳ６４７に戻る。
【０１７２】
処理が完了したと判定した場合（ステップＳ６４９でＹＥＳ）、ＣＰＵ２１は、温度予測値ＤＢの吸気温度予測値フィールドを検索して、最高温度および最低温度が記録されたレコードをそれぞれ抽出する（ステップＳ６５１）。ＣＰＵ２１は、抽出した最高温度から最低温度を減算して温度差を算出する（ステップＳ６５２）。
【０１７３】
ＣＰＵ２１は、温度差が許容範囲内であるか否かを判定する（ステップＳ６５３）。温度差が許容範囲を超えると判定した場合（ステップＳ６５３でＮＯ）、ＣＰＵ２１は温度差縮小のサブルーチンを起動する（ステップＳ６５４）。
【０１７４】
温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。なお、本実施の形態の温度差縮小のサブルーチンの処理の流れは後述する。
【０１７５】
温度差が許容範囲内であると判定した場合（ステップＳ６５３でＹＥＳ）およびステップＳ６５４の終了後、ＣＰＵ２１は処理を終了するか否かを判定する（ステップＳ６５５）。処理を終了する場合とは、たとえばネットワークを介してサーバシステム１０の温度制御を終了するという入力を受け付けた場合である。
【０１７６】
処理を終了しないと判定した場合（ステップＳ６５５でＮＯ）、ＣＰＵ２１はステップＳ６４１に戻る。処理を終了すると判定した場合（ステップＳ６５５でＹＥＳ）、ＣＰＵ２１は処理を終了する。
【０１７７】
図２２は、実施の形態５の係数算出のサブルーチンの処理の流れを示すフローチャートである。係数算出のサブルーチンは、４回分のプロセッサ使用率Ｐ、消費電力Ｗ、記憶装置稼働率Ｓおよびファン稼働率Ｆに基づいて、前述の式（５）を満たす、係数ａから係数ｄを算出するサブルーチンである。図２２を使用して、係数算出のサブルーチンの処理の流れを説明する。
【０１７８】
ＣＰＵ２１は、図１８を使用して説明した使用率実測値変化ＤＢから、消費電力Ｗ、プロセッサ使用率Ｐ、記憶装置使用率Ｓおよびファン稼働率Ｆの最新の４回分の実測値を取得する（ステップＳ６７１）。ＣＰＵ２１は、式（６）に示す行列Ａの逆行列Ａ-1を算出する（ステップＳ６７２）。行列から逆行列を算出する方法は従来から使用されているので説明を省略する。
【０１７９】
ＣＰＵ２１は、算出した逆行列を使用して、式（６）に基づいて係数ａから係数ｄまでを算出する（ステップＳ６７３）。ＣＰＵ２１は、ステップＳ６７１で取得したレコードのうち最新のレコードの時刻フィールドに記録されている時間および係数ａから係数ｄまでを図１９を使用して説明した係数変化ＤＢに記録する（ステップＳ６７４）。
【０１８０】
図２３は、実施の形態５の温度差縮小のサブルーチンの処理の流れを示すフローチャートである。温度差縮小のサブルーチンは、温度差を縮小させるように被管理サーバ１４に割り当てたジョブを調整するサブルーチンである。図２３を使用して、温度差縮小のサブルーチンの処理の流れを説明する。
【０１８１】
ＣＰＵ２１は、図１７を使用して説明した温度予測値ＤＢの吸気温度予測値フィールドに記録された、すべての被管理サーバ１４の吸気温度予測値を取得する。ＣＰＵ２１は、取得した吸気温度予測値の平均値を算出し、変数「目標温度」に記録する（ステップＳ６８１）。ＣＰＵ２１は、それぞれの被管理サーバ１４の吸気温度予測値から目標温度を減算して、それぞれの被管理サーバ１４の吸気温度の増減値ΔＴを算出する（ステップＳ６８２）。ＣＰＵ２１は、算出した吸気温度の増減値ΔＴを温度予測値ＤＢの増減量フィールドに記録する。
【０１８２】
ＣＰＵ２１は、カウンタＩを初期値１に設定する（ステップＳ６８３）。ＣＰＵ２１は、カウンタＪを初期値１に設定する（ステップＳ６８４）。ＣＰＵ２１は、予測サブルーチンを起動する（ステップＳ６８５）。予測サブルーチンは、図１３を使用して説明したサブルーチンを使用する。
【０１８３】
ステップＳ６４においては、Ｊ＝１である場合には、ＣＰＵ２１は使用率実測値変化ＤＢのＩ番目のプロセッサ使用率フィールドに記録された所定回数分のプロセッサ使用率データに基づいて、所定の時刻ｔにおけるＩ番目の被管理サーバ１４のプロセッサ使用率Ｐtを予測する。同様にして、ＣＰＵ２１は、Ｊ＝２である場合には記憶装置稼働率Ｓtを、Ｊ＝３である場合にはファン稼働率Ｆtをそれぞれ予測する。
【０１８４】
Ｊ＝４である場合には、ＣＰＵ２１は係数変化ＤＢのａフィールドに記録された所定回数分の係数ａのデータに基づいて、所定の時刻ｔにおけるＩ番目の被管理サーバ１４の係数ａtを予測する。同様にして、ＣＰＵ２１は、Ｊ＝５である場合には係数ｂtを、Ｊ＝６である場合には係数ｃtを、Ｊ＝７である場合には係数ｄtをそれぞれ予測する。
【０１８５】
ＣＰＵ２１は、プロセッサ使用率から係数ｄまでの予測がすべて完了したか否かを判定する（ステップＳ６８６）。完了していないと判定した場合（ステップＳ６８６でＮＯ）、ＣＰＵ２１はカウンタＪに１を加算する（ステップＳ６８７）。ＣＰＵ２１はステップＳ６８５に戻る。
【０１８６】
完了したと判定した場合（ステップＳ６８６でＹＥＳ）、ＣＰＵ２１は、予測したプロセッサ使用率Ｐt、記憶装置稼働率Ｓt、ファン稼動率Ｆtおよび係数ａtから係数ｄtを使用して、前述の式（７）に基づいて所定の時刻ｔにおける消費電力の予測値Ｗtを算出する（ステップＳ６８８）。
【０１８７】
ＣＰＵ２１は、温度予測値ＤＢの増減値フィールドより、Ｉ番目の被管理サーバ１４の吸気温度の増減値を取得する。ＣＰＵ２１は、式（３）のΔＴに取得した増減量を代入して、消費電力調整量ΔＷを算出する（ステップＳ６８９）。
【０１８８】
ＣＰＵ２１は、式（７）に基づいて予測した消費電力Ｗｔを消費電力調整量ΔＷだけ低下させる場合のプロセッサ使用率、すなわちプロセッサ使用率目標値ＰDを、式（８）に基づいて算出する（ステップＳ６９０）。
【０１８９】
ＣＰＵ２１は、すべての被管理サーバ１４について、プロセッサ使用率目標値ＰDの算出を完了したか否かを判定する（ステップＳ６９１）。完了していないと判定した場合（ステップＳ６９１でＮＯ）、ＣＰＵ２１はカウンタＩに１を加算する（ステップＳ６９２）。
【０１９０】
完了したと判定した場合（ステップＳ６９１でＹＥＳ）、ＣＰＵ２１は、各被管理サーバ１４のプロセッサ使用率目標値ＰDに基づいて、仮想機械を再配置する（ステップＳ６９３）。仮想機械の再配置は従来から行われているので、説明を省略する。
【０１９１】
本実施の形態によると、式（７）に基づいて所定の時刻ｔにおける消費電力の予測値Ｗｔを算出する。そのため、単純に消費電力の時系列変化に基づいて予測する場合よりも精度良くＷｔを予測し、温度差の拡大を的確に防止することが可能である。
【０１９２】
さらに、プロセッサと記憶装置との消費電力の比率が大きく異なる被管理サーバ１４が混在するような複雑なサーバシステム１０である場合にも、温度差の拡大を的確に防止することが可能である。
【０１９３】
［実施の形態６］
実施の形態６は、汎用のコンピュータとプログラム２９とを組み合わせて動作させることにより、本実施の形態のサーバシステム１０を管理する管理装置を実現する形態に関する。図２４は、実施の形態６の管理装置の動作を示す機能ブロック図である。図２４を使用して、本実施の形態の構成を説明する。なお、実施の形態１と共通する部分の説明は省略する。
【０１９４】
実施の形態６のサーバシステム１０の管理装置は、ＣＰＵ２１による制御に基づいて以下のように動作する。
【０１９５】
取得部６１は、棚１１に配置された複数の電子機器１４のそれぞれの吸気温度を取得する。算出部６２は、取得部６１が取得した吸気温度に基づいて複数の電子機器１４間の吸気温度の温度差を算出する。変更部６３は、算出部６２が算出した温度差が所定の値よりも大きい場合に、取得部６１が取得した吸気温度に基づいて電子機器１４の動作状態を変更する。
【０１９６】
［実施の形態７］
実施の形態７は、サーバシステム１０とプログラム２９とを組み合わせて動作させる形態に関する。本実施の形態においても、サーバシステム１０は、棚１１および棚１１の内部に配置された複数の電子機器を備える。棚１１は、内部の電子機器を冷却する冷却機能を備える。
【０１９７】
サーバシステム１０は相互に代替可能な複数の電子機器を棚１１に設置したシステムである。相互に代替可能な電子機器は、たとえば仮想機械が動作する被管理サーバ１４である。以下では、これらの具体例を使用して説明する。実施の形態１と共通する部分については説明を省略する。
【０１９８】
図２５は、実施の形態７のハードウェア構成を示す装置構成図である。図２５を使用して、本実施の形態の構成を説明する。なお、実施の形態１と共通する部分の説明は省略する。
【０１９９】
サーバシステム１０は、棚１１、棚１１に設置された複数の電子機器、送風機１８および冷却機能を備える。棚１１は、高さ方向に配列した複数の電子機器を固定して設置することが可能な、たとえば１９インチラックである。
【０２００】
棚１１に設置された電子機器は、たとえば通信機器１２、管理サーバ１３および複数の被管理サーバ１４である。通信機器１２は、管理サーバ１３と被管理サーバ１４との間の通信およびサーバシステム１０と外部のネットワーク１との間の通信を行う。
【０２０１】
管理サーバ１３はサーバシステム１０を管理する。管理サーバ１３は、ＣＰＵ２１、主記憶装置２２、補助記憶装置２３、通信インターフェイス２４、時計２５、読取部２６およびバスを備える。
【０２０２】
読取部２６は、可搬型記録媒体２７を読み取る装置であり、具体的にはたとえばマイクロＳＤカードスロットである。ＣＰＵ２１、主記憶装置２２、補助記憶装置２３、通信インターフェイス２４、時計２５は実施の形態１と同様なので説明を省略する。
【０２０３】
プログラム２９は、可搬型記録媒体２７に記録されている。ＣＰＵ２１は、読取部２６を介してプログラム２９を読み込み、補助記憶装置２３に保存する。またＣＰＵ２１は、管理サーバ１３内に実装されたフラッシュメモリ等の半導体メモリ３０に記憶されたプログラム２９を読出しても良い。さらに、ＣＰＵ２１は、通信インターフェイス２４を介して接続される図示しない他のサーバコンピュータからプログラム２９をダウンロードして補助記憶装置２３に保存しても良い。
【０２０４】
ＣＰＵ２１は、上述した各種ソフトウェア処理を実行するプログラム２９を、可搬型記録媒体２７もしくは半導体メモリ３０から読み取り、または通信インターフェイス２４を介して図示しない他のサーバコンピュータからダウンロードする。プログラム２９は、管理サーバ１３の制御プログラムとしてインストールされ、主記憶装置２２にロードされて実行される。これにより、管理サーバ１３は全体として上述した管理装置として機能する。
【０２０５】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０２０６】
以上の実施の形態１から７を含む実施形態に関し、さらに以下の付記を開示する
【０２０７】
（付記１）
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させるプログラム。
【０２０８】
（付記２）
前記電子機器それぞれの電力消費情報を取得し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度および前記電力消費情報に基づいて前記電子機器の動作状態を変更する
付記１に記載のプログラム。
【０２０９】
（付記３）
前記棚は冷却装置に接続されており、
前記温度差が所定の値よりも大きい場合に、前記冷却装置の出力を取得し、
前記冷却装置の出力が所定の値よりも小さい場合に、前記冷却装置の出力を大きくし、
前記冷却装置の出力が所定の値よりも大きい場合に、前記電子機器の動作状態を変更する
付記１または付記２に記載のプログラム。
【０２１０】
（付記４）
取得した前記吸気温度が高い前記電子機器の動作の一部を停止または中断する
付記１から付記３のいずれか一つに記載のプログラム。
【０２１１】
（付記５）
前記電子機器は、動作クロックに基づいて動作するデジタル機器であり、
取得した前記吸気温度が高い前記電子機器の動作クロックを低速に変更する
付記１から付記３のいずれか一つに記載のプログラム。
【０２１２】
（付記６）
取得した前記吸気温度の最大値と最小値との差に基づいて前記温度差を算出する
付記１から付記５のいずれか一つに記載のプログラム。
【０２１３】
（付記７）
取得する前記吸気温度は、時系列的な吸気温度であり、
前記時系列的な吸気温度に基づいて予測したそれぞれの電子機器の吸気温度に基づいて前記温度差を算出する
付記１から付記６のいずれか一つに記載のプログラム。
【０２１４】
（付記８）
前記電子機器には、動作中に相互に代替可能な複数の前記電子機器が含まれており、
代替可能な前記電子機器のうちの予測した前記吸気温度が相対的に高い前記電子機器から、予測した前記吸気温度が相対的に低い前記電子機器に負荷を移動する
付記７に記載のプログラム。
【０２１５】
（付記９）
前記電力消費情報は、前記電子機器のそれぞれの消費電力であり、
前記電子機器の消費電力に基づいて負荷の移動可否を判定する付記８に記載のプログラム。
【０２１６】
（付記１０）
代替可能な前記電子機器は、複数の仮想機械を動作させる電子計算機であり、
前記電子計算機に対する前記仮想機械の配置を変更する
付記８または付記９に記載のプログラム。
【０２１７】
（付記１１）
前記電子機器は、プロセッサ、記憶装置およびファンを備える電子計算機であり、
それぞれの前記電子機器の消費電力、プロセッサ使用率、記憶装置使用率およびファン稼働率を時系列的に取得し、
取得時刻に対応する係数ａ、係数ｂ、係数ｃおよび係数ｄを式（６）に基づいて算出し、
所定の時刻におけるプロセッサ使用率、記憶装置使用率、ファン稼働率、係数ａ、係数ｂ、係数ｃおよび係数ｄをそれぞれの時系列的変化に基づいて予測し、
前記所定の時刻における前記電子機器の消費電力の予測値を式（７）に基づいて算出し、
前記電子機器の消費電力と吸気温度の変化量との関係に基づいて、前記温度差を縮小する場合の消費電力の変化量を算出し、
該変化量を得る際のプロセッサ使用率の目標値を式（８）に基づいて算出し、
それぞれの前記電子機器のプロセッサ使用率の目標値に基づいて前記仮想機械を再配置する
付記１０に記載のプログラム。
【０２１８】
（付記１２）
棚に配置された複数の電子機器のそれぞれの吸気温度を取得し、
取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出し、
前記温度差が所定の値よりも大きい場合に、前記吸気温度に基づいて前記電子機器の動作状態を変更する
処理をコンピュータに実行させる管理方法。
【０２１９】
（付記１３）
棚に配置された複数の電子機器のそれぞれの吸気温度を取得する取得部と、
前記取得部が取得した前記吸気温度に基づいて複数の前記電子機器間の吸気温度の温度差を算出する算出部と、
前記算出部が算出した温度差が所定の値よりも大きい場合に、前記取得部が取得した吸気温度に基づいて前記電子機器の動作状態を変更する変更部と
を備える管理装置。
【０２２０】
（付記１４）
前記棚は、上下方向に配列した区画を備え、
前記電子機器は、消費電力効率が相対的に高い前記電子機器が上の区画に配置されている
付記１３に記載の管理装置。
【符号の説明】
【０２２１】
１０  サーバシステム
１１  棚
１２  通信機器
１３  管理サーバ
１４  被管理サーバ（電子機器）
１６  温度センサ
１８  送風機
１９  熱交換器
２１  ＣＰＵ
２２  主記憶装置
２３  補助記憶装置
２４  通信インターフェイス
２５  時計
２６  読取部
２７  可搬型記録媒体
２９  プログラム
３０  半導体メモリ
３３  冷凍機
３４  緩衝タンク
３５  冷媒管
３５１  冷媒支管
３６  ポンプ
３７  冷媒センサ
３８  弁
４１  仕様ＤＢ
４２  実測値ＤＢ
６１  取得部
６２  算出部
６３  変更部
【図１】
2018018340.tif 000011
【図２】
2018018340.tif 000012
【図３】
2018018340.tif 000013
【図４】
2018018340.tif 000014
【図５】
2018018340.tif 000015
【図６】
2018018340.tif 000016
【図７】
2018018340.tif 000017
【図８】
2018018340.tif 000018
【図９】
2018018340.tif 000019
【図１０】
2018018340.tif 000020
【図１１】
2018018340.tif 000021
【図１２】
2018018340.tif 000022
【図１３】
2018018340.tif 000023
【図１４】
2018018340.tif 000024
【図１５】
2018018340.tif 000025
【図１６】
2018018340.tif 000026
【図１７】
2018018340.tif 000027
【図１８】
2018018340.tif 000028
【図１９】
2018018340.tif 000029
【図２０】
2018018340.tif 000030
【図２１】
2018018340.tif 000031
【図２２】
2018018340.tif 000032
【図２３】
2018018340.tif 000033
【図２４】
2018018340.tif 000034
【図２５】
2018018340.tif 000035