(57)【要約】  データセンタは、空調機と、空調機から吹出口を介して吹き出される空気によって冷却される複数のサーバを備えた情報処理システムを有する。複数のサーバの各々は、プログラムを実行し、自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得する。また、複数のサーバの各々は、他のサーバに対応する吹出口からの風量を測定する風量測定器が測定した第２の風量を取得する。そして、複数のサーバの各々は、第１の風量情報と第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他のサーバを特定する。その後、複数のサーバの各々は、実行するプログラムを、特定した他のサーバに移動させる。
2012053115.tif 000002
【特許請求の範囲】
【請求項１】
空調機と、前記空調機から吹出口を介して吹き出される空気によって冷却される複数の情報処理装置を備えた情報処理システムを有するデータセンタであって、
前記複数の情報処置装置の各々は、
プログラムを実行する演算処理部と、
自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得する第１の風量情報取得部と、
他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量情報を取得する第２の風量情報取得部と、
前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定する判定部と、
前記演算処理部が実行するプログラムを、前記判定部が特定した他の情報処理装置に移動させる移動制御部と、
を有することを特徴とするデータセンタ。
【請求項２】
吹出口から吹き出される空気によって冷却される複数の情報処理装置を有する情報処理システムであって、
前記複数の情報処置装置の各々は、
プログラムを実行する演算処理部と、
自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得する第１の風量情報取得部と、
他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量情報を取得する第２の風量情報取得部と、
前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定する判定部と、
自装置の演算処理部が実行するプログラムを、前記判定部が特定した他の情報処理装置に移動させる移動制御部と
を有することを特徴とする情報処理システム。
【請求項３】
前記情報処理システムにおいて、
前記複数の情報処置装置の各々はさらに、
前記他の情報処理装置の負荷情報を取得する負荷情報取得部を有し、
前記判定部はさらに、
前記特定した他の情報処理装置について、前記負荷情報取得部が取得した負荷情報と自装置の付加情報に基づいて、前記特定した他の情報処理装置が前記プログラムを動作可能か判定し、
前記移動制御部は、前記判定部が前記特定した他の情報処理装置が前記プログラムを動作可能であると判定した場合に、前記プログラムを、前記特定した他の情報処理装置に移動させることを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記情報処理システムにおいて、
前記複数の情報処置装置の各々は、
前記風量測定器が有する無線通信部との間の無線通信から算出した前記情報処理装置に対応する風量測定器と自装置との間の距離に基づいて、前記自装置に対応する風量測定器を特定する特定部をさらに有し、
前記第１風量情報取得部は、前記特定部が特定した吹出口に設置される風量測定器によって測定された風量を取得することを特徴とする請求項２記載の情報処理システム。
【請求項５】
前記情報処理システムにおいて、
前記複数の情報処置装置の各々は、
前記風量測定器が有する無線通信部との間の無線通信から算出した前記情報処理装置に対応する風量測定器の座標と自装置の座標とに基づいて、前記自装置に対応する風量測定器を特定する特定部をさらに有し、
前記第１風量情報取得部は、前記特定部が特定した吹出口に設置される風量測定器によって測定された風量を取得することを特徴とする請求項２記載の情報処理システム。
【請求項６】
前記情報処理システムにおいて、
前記複数の情報処置装置の各々はさらに、
前記特定部が特定した情報処理装置に対応する風量測定器の座標と、予め定められた情報処理装置の座標に基づいて、吹出口の位置が情報処理装置の下方に位置するかを判定する位置判定部と、
前記位置判定部が情報処理装置の下方に位置すると判定した吹出口以外の吹出口に対応する風量測定器の座標と対応する吹出口が下にないと判定された情報処理装置の座標とに基づいて、前記情報処理装置の下方に位置すると判定した吹出口以外の吹出口からの空気の吹き出す方向を検出する検出部と、
前記検出部が検出した前記情報処理装置の下方に位置すると判定した吹出口以外の吹出口から吹き出す空気の方向と、前記情報処理装置の下方に位置すると判定した吹出口以外の吹出口に対応する情報処理装置の座標とに基づいて、他の情報処理装置からの排気を吸気する情報処理装置を特定する装置特定部と、
前記位置判定部が吹出口の位置が情報処理装置の下方に位置すると判定した情報処理装置と、前記装置特定部が特定した情報処理装置以外の情報処理装置を第１グループ、前記装置特定部が特定した情報処理装置を第２グループに分類する分類部とを有し、
前記判定部は、
前記第１風量情報取得部が取得した風量よりも大きい風量で冷却される情報処理装置について、前記第１グループに属する情報処理装置、前記第２グループに属する情報処理装置の順に、前記プログラムが稼動できる情報処理装置であるかを判定することを特徴とする請求項５記載の情報処理システム。
【請求項７】
前記情報処理システムにおいて、
前記負荷情報取得部は、前記他の情報処理装置が有する各パーティションの負荷情報を取得し、
前記判定部は、前記負荷情報取得部が取得した前記他の情報処理装置の各パーティションの負荷情報から算出した各パーティションで許容できる負荷に基づいて、前記プログラムが動作できるパーティションの複数の組み合わせを特定し、
前記移動制御部は、前記判定部が特定した前記他の情報処理装置のパーティションに、前記プログラムを移動させることを特徴とする請求項３記載の情報処理システム。
【請求項８】
前記情報処理システムは、
複数の情報処理装置を有し、
前記判定部は、前記負荷情報取得部が取得した前記複数の他の情報処理装置の各々の負荷情報から算出した他の情報処理装置の各々で許容できる負荷に基づいて、前記プログラムが動作できる複数の他の情報処理装置の組み合わせを特定し、
前記移動制御部は、前記判定部が特定した前記複数の他の情報処理装置に、前記プログラムを移動させることを特徴とする請求項３記載の情報処理システム。
【請求項９】
前記情報処理システムにおいて、
前記移動制御部は、
前記プログラムを移動した他の情報処理装置の負荷が所定値以上になった場合、前記プログラムを自装置に移動させることを特徴とする請求項２〜８のいずれか１項に記載の情報処理システム。
【請求項１０】
プログラムを実行する演算処理部と、
自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得する第１の風量情報取得部と、
他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量情報を取得する第２の風量情報取得部と、
前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定する判定部と、
自装置の演算処理部が実行するプログラムを、前記判定部が特定した他の情報処理装置に移動させる移動制御部と
を有することを特徴とする情報処理装置。
【請求項１１】
前記他の情報処理装置の負荷情報を取得する負荷情報取得部をさらに有し、
前記判定部はさらに、
前記特定した他の情報処理装置について、前記負荷情報取得部が取得した負荷情報と自装置の付加情報に基づいて、前記特定した他の情報処理装置が前記プログラムを動作可能か判定し、
前記移動制御部は、前記判定部が前記特定した他の情報処理装置が前記プログラムを動作可能であると判定した場合に、前記プログラムを、前記特定した他の情報処理装置に移動させることを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
情報処理装置によって実行される制御方法であって、
自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得し、
他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量情報を取得し、
前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定し、
自装置の演算処理部が実行するプログラムを、前記特定した他の情報処理装置に移動させる
ことを特徴とする情報処理装置の制御方法。
【請求項１３】
前記他の情報処理装置を特定する処理は
前記特定した他の情報処理装置について、前記他の情報処理装置の負荷情報をさらに取得し、取得した負荷情報と自装置の付加情報に基づいて、前記特定した他の情報処理装置が前記プログラムを動作可能か判定し、
前記移動させる処理は、前記特定した他の情報処理装置が前記プログラムを動作可能であると判定した場合に、前記プログラムを、前記特定した他の情報処理装置に移動させることを特徴とする請求項１２記載の情報処理装置の制御方法。
【請求項１４】
情報処理装置によって実行される制御プログラムであって、
自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得し、
他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量情報を取得し、
前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定し、
自装置の演算処理部が実行するプログラムを、前記特定した他の情報処理装置に移動させる
ことを特徴とする情報処理装置の制御プログラム。
【請求項１５】
前記他の情報処理装置を特定する処理は
前記特定した他の情報処理装置について、前記他の情報処理装置の負荷情報をさらに取得し、取得した負荷情報と自装置の付加情報に基づいて、前記特定した他の情報処理装置が前記プログラムを動作可能か判定し、
前記移動させる処理は、前記特定した他の情報処理装置が前記プログラムを動作可能であると判定した場合に、前記プログラムを、前記特定した他の情報処理装置に移動させることを特徴とする請求項１４記載の情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセンタ、情報処理システム、情報処理装置、情報処理装置の制御方法および制御プログラムに関する。
【背景技術】
【０００２】
従来、ＩＴ（Information  Technology）機器等を搭載したラック装置や電子回路等を内蔵したサーバが設置されるデータセンタでは、温かい空気を吸って冷却風を供給する空調機を用いて、ＩＴ機器やサーバの冷却を行っている。【０００３】
例えば、図２２は、計算機センタ又はデータセンタ等におけるサーバの配置例を示す図である。図２２における空調機２１０は、サーバ２０１〜２０３からデータセンタ２００内に排気された暖かい空気２１１を排気口２１０ａから吸い込み、低温の冷却風２１２を床下に供給する。各サーバ２０１〜２０３は、床に設けられた吹出口２０１ｂ〜２１０ｄ各々に対応して設置され、床下に供給された冷却風２１２を吹出口から吸い込んで、内蔵される電子回路等を冷却する。そして、サーバ２０１〜２０３は、電子回路等を冷却したために温められた空気２１１をデータセンタ２００内に排気する。このようにして、データセンタ２００内では、空調機２１０によって冷却風２１２と排気風２１１を巡回させることにより、サーバの冷却を行っている。【０００４】
このようなデータセンタでは、データセンタ内の空気流を監視し、監視結果に基づいて空調設備が送出する冷却風を制御する技術が知られている。また、データセンタに設置されたサーバの負荷と消費電力とを予測し、予測結果に基づいて空調機が送出する冷却風の風量を制御する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２０８０００号公報
【特許文献２】特開２００９−２９３８５１号公報
【非特許文献】
【０００６】
【非特許文献１】“データセンタのグリーン化への取り組み（空調に関する最新技術）”、［online］、［平成２１年７月２６日検索］、インターネット＜http://www.impressrd.jp/idc/2008spring/sp1/part1souron.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、データセンタに供給される冷却風の風量に関らず、データセンタに設置された各サーバの冷却効率が悪いという課題があった。【０００８】
例えば、データセンタでは、図２３に示す床下の高さ（ｈ）と空調機からサーバまでの距離（ｄ）との相関関係によって、空調機から送出される冷却風の風圧差が生じ、吹出口の風量が変わることが知られている。つまり、空調機に近い吹出口の風量が、空調機から遠い吹出口の風量より必ずしも大きいとは限らない。例えば、床下の高さが所定値より高い場合には、空調機から遠い吹出口の風量が大きくなる。なお、図２３は、床下の高さと空調機までの距離を示す図である。【０００９】
また、データセンタに一度設置して稼動を開始したサーバの設置場所を変更することは難しい。例えば、一度稼動させたサーバは、既にシステム運用中であるため、移動させるにはシステムを停止させることとなり、業務に支障をきたす恐れがある。また、サーバの移動に伴って、吹出口も移動させることになり、床下の設計や再構築を実施する時間もコストもかかる。【００１０】
したがって、データセンタにサーバや吹出口を設置する場合には、床下の高さと空調機からの距離とを考慮して、発熱量が多いサーバに対応して風量が大きい吹出口を設置し、発熱量が少ないサーバに対応して風量が小さい吹出口を設置することが行われている。ところが、サーバの発熱量は、ＣＰＵ（Central  Processing  Unit）の使用率、起動時間、サーバを利用するユーザ数の増加、サーバ内で起動する仮想マシン（Virtual  Machine）の動作状態等の様々な状況により、サーバの稼動を開始した後に変化する場合がある。【００１１】
例えば、データセンタ内に複数台のサーバが設置されている状態で、データセンタの設置時には発熱量が小さかった１台のサーバの処理負荷が高くなり、発熱量が高くなったとする。このサーバは、風量が小さい吹出口に対応して設置されていることから、十分に冷却することができない。一方で、上述したように、発熱量が高くなったサーバの設置位置を変更することは難しい。このような状況で、従来の技術を用いて、空調機から送出される冷却風の風量を大きくした場合、発熱量が高くなったサーバが吸気する冷却風の量が多くなるものの、風量が大きくなる前から冷却できている他サーバが吸気する冷却風の量も多くなる。【００１２】
つまり、従来の技術では、単に空調機から供給される冷却風を多くしているに過ぎない。したがって、不要な冷却風も多く、風量を大きくした分消費電力も大きくなりコストも増加することから、データセンタに設置されたサーバの冷却効率がよいとは言い難い。【００１３】
本発明は、上記に鑑みてなされたものであって、データセンタに設置された各サーバの冷却効率を向上させることできるデータセンタ、情報処理システム、情報処理装置、情報処理装置の制御方法および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、開示するデータセンタ、情報処理システム、情報処理装置、情報処理装置の制御方法および制御プログラムの一形態は、空調機と、前記空調機から吹出口を介して吹き出される空気によって冷却される複数の情報処理装置を備えた情報処理システムを有するデータセンタである。前記複数の情報処置装置の各々は、プログラムを実行する演算処理部と、自装置に対応する吹出口からの風量を測定する風量測定器が測定した第１の風量情報を取得する第１の風量情報取得部とを有する。他の情報処理装置に対応する吹出口からの風量を測定する風量測定器が測定した第２の風量を取得する第２の風量情報取得部を有する。前記第１の風量情報と前記第２の風量情報とに基づいて、自装置を冷却する風量よりも大きい風量により冷却される他の情報処理装置を特定する判定部を有する。前記演算処理部が実行するプログラムを、前記判定部が特定した他の情報処理装置に移動させる移動制御部を有する。
【発明の効果】
【００１５】
開示するデータセンタ、情報処理システム、情報処理装置、情報処理装置の制御方法および制御プログラムは、データセンタに設置された各サーバの冷却効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係るサーバが設置されたデータセンタの例を示す図である。
【図２】図２は、実施例１に係る無線センサの構成を示すブロック図である。
【図３Ａ】図３Ａは、ＲＡＭに記憶される情報の例を示す図である。
【図３Ｂ】図３Ｂは、ＲＯＭに記憶される情報の例を示す図である。
【図４】図４は、実施例１に係るサーバの構成を示すブロック図である。
【図５】図５は、ハイパーバイザで実現されるＶＭの構成例を示す図である。
【図６】図６は、ＶＭのマイグレーションを説明する図である。
【図７】図７は、実施例１に係るＶＭ移動制御処理の流れを示すフローチャートである。
【図８】図８は、ＶＭ移動制御処理における優先順位決定処理の流れを示すフローチャートである。
【図９】図９は、ＶＭ移動制御処理における移動処理の流れを示すフローチャートである。
【図１０】図１０は、実施例２に係るパーティションを跨ってＶＭをマイグレーションさせる例を説明する図である。
【図１１】図１１は、実施例２に係るサーバが実行する移動処理の流れを示すフローチャートである。
【図１２】図１２は、実施例３に係る複数のサーバを跨って設定されたパーティションにＶＭをマイグレーションさせる例を説明する図である。
【図１３】図１３は、実施例３に係るサーバが実行する移動処理の流れを示すフローチャートである。
【図１４】図１４は、実施例４に係るＶＭ再移動制御処理の流れを示すフローチャートである。
【図１５】図１５は、実施例５に係るサーバのグループ分けを説明する図である。
【図１６】図１６は、実施例５に係るサーバの構成を示すブロック図である。
【図１７】図１７は、実施例５に係るグループ分け処理の流れを示すフローチャートである。
【図１８】図１８は、実施例５に係る移動処理の流れを示すフローチャートである。
【図１９】図１９は、実施例５に係るグループ分けの具体例を示す図である。
【図２０】図２０は、検索範囲の例を示す図である。
【図２１】図２１は、移動制御プログラムを実行するコンピュータシステムの例を示す図である。
【図２２】図２２は、データセンタにおけるサーバの配置例を示す図である。
【図２３】図２３は、床下の高さと空調機までの距離を示す図である。
【発明を実施するための形態】
【００１７】
以下に、データセンタ、情報処理システム、情報処理装置、情報処理装置の制御方法および制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で、適宜組み合わせることが可能である。
【実施例１】
【００１８】
実施例１では、開示するサーバが設置されるデータセンタの例、データセンタに設置される各装置の構成、サーバにおける処理の流れ、実施例による効果を順に説明する。【００１９】
［データセンタ（全体構成）］
図１は、実施例１に係るサーバが設置されたデータセンタの例を示す図である。図１に示すように、データセンタ１は、空調機２と、排気口３と、吹出口４ａ〜４ｃと、サーバ２０と、サーバ４０と、サーバ６０とを有する。なお、図１に示したサーバの台数など各装置の台数および各装置等の設置位置などは、あくまで例示であり、これに限定されるものではない。【００２０】
空調機２は、サーバ２０、サーバ４０、サーバ６０各々から排気される暖かい排気風１ａを排気口３から吸入する。そして、空調機２は、吸入した空気を冷却した冷却風１ｂを床下に供給する。ここでは、床下に冷却風１ｂを供給する床下空調機を例示したが、これに限定されるものではなく、天井に設置されて天井から冷却風を供給する空調機などであってもよい。【００２１】
吹出口４ａ〜４ｃは、空調機２から床下に供給された冷却風１ｂが吹き出す通り道である。吹出口４ａには、吹出口４ａから吹き出す冷却風１ｂの風量を測定する風量センサ７ａと、風量センサ７ａに接続され、他装置と無線で通信する無線センサ１０ａとが設置される。同様に、吹出口４ｂには、風量センサ７ｂと無線センサ１０ｂとが設置され、吹出口４ｃには、風量センサ７ｃと無線センサ１０ｃとが設置される。なお、風量センサと無線センサとは、同一の筐体で実現されてもよく、別筐体で実現されてもよい。【００２２】
サーバ２０は、吹出口４ａから冷却風１ｂを吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。同様に、サーバ４０は、吹出口４ｂから冷却風１ｂを吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。サーバ６０は、吹出口４ｃから冷却風１ｂを吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。【００２３】
また、サーバ２０、サーバ４０、サーバ６０各々には、ハイパーバイザ（ＨＶ：HyperVisor）とサービスプロセッサ（ＳＶＰ：Service  Processor）とが搭載されている。各サーバは、実装されたＨＶを用いて、仮想的なコンピュータである仮想マシン（ＶＭ：Virtual  Machine）を稼動させている。なお、これらのサーバは、ＬＡＮ（Local  Area  Network）などのネットワークを介して相互に通信可能に接続されている。【００２４】
このような状況において、各サーバは、自装置を冷却する空気が吹き出す吹出口に設置される風量センサが測定した風量を取得する。そして、各サーバは、他のサーバを冷却する空気が吹き出す吹出口に設置される風量センサが測定した風量をそれぞれ取得する。その後、各サーバは、自サーバを冷却する風量と他のサーバを冷却する風量とに基づいて、自サーバを冷却する風量よりも大きい風量によって冷却される他のサーバを特定し、特定した他のサーバに自サーバで稼動する仮想マシンを移動させる。【００２５】
例えば、図１に示したデータセンタ１において、吹出口４ａから吹き出す風量が一番小さく、次に吹出口４ｂから吹き出す風量が小さく、吹出口４ｃから吹き出す風量が一番大きいとする。この場合、サーバ２０は、吹出口４ａに設置された風量センサ７ａが測定した風量Ａを取得する。さらに、サーバ２０は、吹出口４ｂに設置された風量センサ７ｂが測定した風量Ｂと、吹出口４ｃに設置された風量センサ７ｃが測定した風量Ｃとを取得する。【００２６】
そして、サーバ２０は、風量Ａと風量Ｂと風量Ｃとを比較し、風量Ａよりも大きくかつ一番大きい風量が風量Ｃ、すなわち、サーバ６０が吸気する風量が最も大きいと判定する。その後、サーバ２０は、自装置で稼動するＶＭをサーバ６０に移動させるライブマイグレーション（以下、「マイグレーション」という）を実行する。【００２７】
つまり、各サーバは、自サーバよりも大きい風量を吸気して冷却を実施しているサーバにＶＭをマイグレーションするので、大きな風量で冷却を実施しているサーバにＶＭを集約させることができる。この結果、データセンタに設置された各サーバの冷却効率を向上させることできる。【００２８】
［無線センサの構成］
次に、図１に示した無線センサ１０ａ〜１０ｃの構成について説明する。図２は、実施例１に係る無線センサの構成を示すブロック図である。なお、無線センサ１０ａ〜１０ｃは、同様の構成を有するので、ここでは無線センサ１０ａについて説明する。【００２９】
図２に示すように、無線センサ１０ａは、制御Ｉ／Ｆ部１１ａと無線Ｉ／Ｆ部１２ａとＲＡＭ１３ａとＲＯＭ（Read  Only  Memory）１４ａとメモリ管理ユニット１５ａと制御部１６ａとを有する。【００３０】
制御Ｉ／Ｆ部１１ａは、例えばＲＳ−２３２ＣなどのシリアルポートやＩ２Ｃ（Inter-Integrated  Circuit）などのバスを介して、風量センサ７ａと接続されるインタフェースであり、風量センサ７ａが測定した風量を受信する。なお、風量センサ７ａは、風量センサ７ｂと風量センサ７ｃと同様の構成を有するとともに、吹出口４ａに設置され、吹出口４ａから吹き出す風量を定期的または常時測定する。【００３１】
無線Ｉ／Ｆ部１２ａは、例えばＺｉｇＢｅｅ（登録商標）などの無線通信規格に準拠し、サーバ２０、サーバ４０、サーバ６０、他の無線センサなど他装置との間の無線通信を制御するインタフェースである。無線Ｉ／Ｆ部１２ａは、他装置との間の無線通信において、無線周波数を用いたＲＦ（Radio  Frequency）メッセージとともに、超音波パルスを送信する。【００３２】
無線Ｉ／Ｆ部１２ａから送信するＲＦメッセージには、例えば「無線センサ１０ａを識別する識別子」、「風量センサ７ａを識別する識別子」、「風量センサ７ａが測定した風量」、「風量センサ７ａのアドレス情報」などが含まれる。これらの他にも、例えばＲＡＭ１３ａ等に書き込まれた、無線センサ１０ａの２次元座標を示す位置座標などが後述する制御部１６ａによってＲＦメッセージに書き込まれる。【００３３】
また、無線Ｉ／Ｆ部１２ａは、他装置からはＲＦメッセージとともに、超音波パルスを受信する。そして、無線Ｉ／Ｆ部１２ａは、超音波パルスを受信してからＲＦメッセージを受信するまでの時間差に基づいて、送信元との距離を算出することができる。別の手法としては、無線Ｉ／Ｆ部１２ａは、超音波パルスを送信して、送信先装置からの反射を受信し、送信してから受信するまでの時間に基づいて、送信元との距離を算出することもできる。【００３４】
この無線Ｉ／Ｆ部１２ａは、ＧＰＳ（Global  Positioning  System）受信機能を有していてもよい。無線Ｉ／Ｆ部１２ａがＧＰＳ受信機能を有する場合、無線Ｉ／Ｆ部１２ａが送受信するＲＦメッセージに、無線センサの位置情報などを含めることもできる。【００３５】
ＲＡＭ１３ａは、制御部１６ａによる各種処理に必要なデータおよびプログラムを格納する主記憶部であり、例えば、風量センサ７ａが測定した風量などを記憶する。ＲＯＭ１４ａは、読み出し専用の半導体メモリであり、例えば管理者等によって予め指定された無線センサ１０ａの位置座標、無線センサ１０ａを識別する識別子、風量センサ７ａを識別する識別子などを記憶する。【００３６】
一例として、図３Ａは、ＲＡＭに記憶される情報の例を示す図であり、図３Ｂは、ＲＯＭに記憶される情報の例を示す図である。ＲＡＭ１３ａは、図３Ａに示すように、可変値である「風量」として「２０ｍ３／ｈ」などを記憶する。一例として、ＲＯＭ１４ａは、図３Ｂに示すように、固定値である「無線センサ識別子、風量センサ識別子、座標」として「０１、００１、（１００．９０）」などを記憶する。なお、ここで記憶される情報は、全てＲＡＭ１３ａに記憶されていてもよい。【００３７】
「無線センサ識別子」は、無線センサ１０ａを一意に識別する識別子であり、「風量センサ識別子」は、無線センサ１０ａと接続される風量センサ７ａを一意に識別する識別子であり、これらの識別子は、管理者等によって書き込まれる。「風量」は、風量センサ７ａが測定した風量であり、制御部１６ａによって書き込まれる。「座標」は、無線通信やＧＰＳが測定したＸ軸（横軸）とＹ軸（縦軸）から形成される２次元座標であり、制御部１６ａによって書き込まれる。【００３８】
図２に戻り、メモリ管理ユニット１５ａは、制御部１６ａからＲＡＭ１３ａに要求されたメモリアクセスを処理する。例えば、メモリ管理ユニット１５ａは、ＲＡＭ１３ａが保持するデータの読み出し機能及びＲＡＭ１３ａへのデータの書き込み機能などを有する。【００３９】
制御部１６ａは、無線センサ１０ａにおける各種処理を実行するＣＰＵ（Central  Processing  Unit）などのプロセッサである。例えば、制御部１６ａは、メモリ管理ユニット１５ａを介して、制御Ｉ／Ｆ部１１ａから取得した風量をＲＡＭ１３ａ等に書き込む。また、制御部１６ａは、無線Ｉ／Ｆ部１２ａを介してＲＦメッセージを送信する場合に、ＲＯＭ１４ａ又はＲＡＭ１３ａ等に記憶される各種情報をメッセージに含めて送信する。また、制御部１６ａは、無線Ｉ／Ｆ部１２ａを介してＲＦメッセージを受信した場合、当該ＲＦメッセージに含まれる各種情報を読み出してＲＡＭ１３ａ等に書き込む。【００４０】
［サーバの構成］
次に、図１に示したサーバ２０、サーバ４０、サーバ６０の構成について、実施例１に係るサーバの構成を示すブロック図である図４を用いて説明する。なお、サーバ２０、サーバ４０、サーバ６０は、同様の構成を有するので、ここではサーバ２０について説明する。【００４１】
図４に示すように、サーバ２０は、無線Ｉ／Ｆ部２１と、クロスバスイッチ２２と、ＣＰＵボード２３〜２５と、ＩＯボード２６〜２８と、サービスプロセッサ２９とを有する。また、ＣＰＵボード２３とＩＯボード２６とでパーティション１を形成し、ＣＰＵボード２４とＣＰＵボード２５とＩＯボード２７とＩＯボード２８とでパーティション２を形成する。ここで、１台のサーバを複数の領域に分割し、それぞれの分割された領域でＯＳやアプリケーションを動作させて、複数のシステム構築を可能にする技術をパーティショニングと呼び、分割された１つ１つの領域をパーティションという。なお、ここで図示したＣＰＵボード、ＩＯボードの数、パーティションの形成、パーティション数などは、あくまで例示であり、これに限定されるものではない。【００４２】
無線Ｉ／Ｆ部２１は、無線センサ１０ａの無線Ｉ／Ｆ部１２ａと同様、例えばＺｉｇＢｅｅなどの無線通信規格に準拠し、他装置との間の無線通信を制御するインタフェースである。例えば、無線Ｉ／Ｆ部２１は、各無線センサ１０ａ〜１０ｃからＲＦメッセージと超音波パルスとを受信して、サービスプロセッサ２９に出力する。ここで無線Ｉ／Ｆ部２１が受信するＲＦメッセージには、「無線センサを識別する識別子」、「風量センサを識別する識別子」、「風量センサが測定した風量値」、「無線センサの２次元座標」などが含まれる。【００４３】
また、無線Ｉ／Ｆ部２１は、各無線センサ１０ａ〜１０ｃに対してＲＦメッセージと超音波パルスとを送信する。ここで無線Ｉ／Ｆ部２１が送信するＲＦメッセージには、「サーバ２０を識別する識別子」、「サーバ２０のアドレス情報」、「サーバ２０のパーティション情報」などが含まれる。ここで例示した各情報は、サービスプロセッサ２９やハイパーバイザによってＲＦメッセージに書き込まれる。【００４４】
クロスバスイッチ２２は、サービスプロセッサ２９、ＣＰＵボード２３〜２５、ＩＯボード２６〜２８の間でやり取りされるデータの経路を動的に選択するスイッチである。【００４５】
ＣＰＵボード２３〜２５は、ＯＳ（Operating  System）やＶＭを動作させるプロセッサを搭載した拡張ボードであり、各種処理部を搭載する。なお、ＣＰＵボード２３〜２５は、同様の構成を有するので、ここではＣＰＵボード２３について説明する。なお、ここで説明するＣＰＵボードに搭載される機能部は、あくまで例示であり、これに限定されるものではない。【００４６】
ＣＰＵボード２３は、図４に示すように、メモリ２３ａと不揮発性ＲＡＭ２３ｂとハイパーバイザ２３ｃとメモリ制御部２３ｄとＣＰＵ２３ｅとを有する。メモリ２３ａは、ＣＰＵ２３ｅによる各種処理に必要なデータおよびプログラムを格納する主記憶部であり、例えば、後述するハイパーバイザ２３ｃによって実行されるＶＭの情報や、ＶＭ上で処理されるデータ等が記憶される。ＶＭの情報として、例えば、動作するＯＳの種別、ＶＭで実行されるアプリケーションプログラム、各種データなどがある。【００４７】
不揮発性ＲＡＭ２３ｂは、ＣＰＵボード２３で実行されるＶＭが使用するネットワーク情報や、ＶＭを管理制御するハイパーバイザ２３ｃのプログラムを記憶するメモリであり、メモリ２３ａに比べて小容量である。なお、ここで記憶される情報は、後述するディスク２６ａに記憶されてもよい。【００４８】
ハイパーバイザ２３ｃは、仮想化モニタや仮想ＯＳなどと呼ばれ、ＣＰＵ２３ｅに実行され、複数の論理パーティションを構成するとともにＶＭの識別情報を管理し、ＶＭ動作を実現する。ここで、ハイパーバイザ２３ｃが実現するＶＭについて説明する。図５は、ハイパーバイザで実現されるＶＭの構成例を示す図である。図５に示すように、ハイパーバイザ２３ｃは、当該ハイパーバイザ２３ｃ上で「仮想マシンイメージ」や「仮想コンテキスト」を管理し、「システムファームウェア」、「ＯＳ」、「アプリケーション」を実行することで、ＶＭを動作させる。【００４９】
「仮想マシンイメージ」は、ＶＭを構成する論理的なデータであり、ＶＭを実行するプログラムと当該プログラムに関する各種データなどで構成される。「仮想コンテキスト」は、ＶＭで実行される一連のプログラムの最小単位である。「システムファームウェア」は、ＶＭを動作させるために各種ハードウェアを制御するファームウェアである。「ＯＳ」は、ＶＭで動作するオペレーティングシステムであり、「アプリケーション」は、ＶＭ上で動作するソフトウエアである。【００５０】
また、ハイパーバイザ２３ｃは、動作中の各ＶＭの負荷情報として、ＣＰＵ負荷率、メモリ使用量などの情報を収集し、サービスプロセッサ２９に出力したり、他サーバに送信したりする。また、ハイパーバイザ２３ｃは、サービスプロセッサ２９の指示によって、動作中のＶＭを他サーバに移動させるマイグレーションを実行する。【００５１】
図４に戻り、メモリ制御部２３ｄは、ＣＰＵ２３ｅからメモリ２３ａに要求されたメモリアクセスを処理するメモリコントローラであり、例えば、バス調停機能などを有する。ＣＰＵ２３ｅは、パーティション１内の各種制御を実行するプロセッサであり、例えばハイパーバイザ２３ｃを実行してＶＭを動作させる。【００５２】
ＩＯボード２６〜２８は、クロスバスイッチ２２を介して他のＣＰＵボードやＩＯボードと接続されるとともに、入出力デバイスや他サーバと接続される。なお、ＩＯボード２６〜２８は、同様の構成を有するので、ここではＩＯボード２６について説明する。なお、ここで説明するＩＯボードに搭載される機能部は、あくまで例示であり、これに限定されるものではない。【００５３】
ＩＯボード２６は、図４に示すように、ディスク２６ａとＳＡＳ（Serial  Attached  Small  Computer  System  Interface）コントローラ２６ｂとネットワークコントローラ２６ｃとＩＯ制御部２６ｄを有する。ディスク２６ａは、メモリ２３ａや不揮発性ＲＡＭ２３ｂに比べて容量の大きい記憶装置であり、パーティション１の構成情報などを記憶するハードディスクである。パーティション１の構成情報としては、例えばディスク容量や各ボード数などがある。【００５４】
ＳＡＳコントローラ２６ｂは、ディスク２６ａとＩＯ制御部２６ｄとの間をＳＡＳで接続し、高速転送を実現するシリアルインタフェースである。ネットワークコントローラ２６ｃは、他装置との間の通信を制御するインタフェースであり、例えばマイグレーションによりＶＭ転送等を実施する。ＩＯ制御部２６ｄは、ＣＰＵボード２３から受信したデータアクセスを、ＳＡＳコントローラ２６ｂを介してディスク２６ａに実行する。この結果、ＣＰＵボード２３におけるＣＰＵ２３ｅやハイパーバイザ２３ｃは、データをディスク２６ａに書き込んだり、ディスク２６ａからデータを読み出したりすることができる。【００５５】
サービスプロセッサ２９は、内部メモリを有し、サーバ２０で実行されるパーティションやＶＭなどを統合的に管理制御するプロセッサである。このサービスプロセッサ２９は、センサ特定部２９ａと風量取得部２９ｂと情報取得部２９ｃと判定部２９ｄと移動制御部２９ｅと情報提供部２９ｆとを有する。【００５６】
センサ特定部２９ａは、吹出口４ａ〜４ｃごとに設置された無線センサ１０ａ〜１０ｃと間の無線通信から、各無線センサと自装置との間の距離を算出し、算出した距離に基づいて、サーバ２０が主に吸気する冷却風が吹き出す吹出口を特定する。【００５７】
例えば、センサ特定部２９ａは、無線Ｉ／Ｆ部２１を制御して、無線センサ１０ａ〜１０ｃ各々と無線通信を実行する。そして、センサ特定部２９ａは、各無線センサごとに、ＲＦメッセージと超音波パルスとの到着差、ＲＦメッセージの伝送速度、超音波の伝送速度等に基づいて無線センサとの距離を算出する。そして、センサ特定部２９ａは、各無線センサごとに算出した距離のうち、最も近い距離である無線センサを特定し、特定結果をサービスプロセッサ２９の各制御部に出力する。図１の例では、センサ特定部２９ａは、サーバ２０に最も近い距離にあるセンサが無線センサ１０ａであると特定する。【００５８】
別の手法としては、受信電波強度を用いた位置検出手法（参考文献：「無線を使った位置検出」、沖テクニカルレビュー、２００５年１０月／第２０４号Ｖｏｌ．７２、Ｎｏ．４）を利用することができる。具体的には、各無線センサ１０ａ〜１０ｃは、信号を発し、各無線センサ１０ａ〜１０ｃがその信号の受信電波強度を測定する。そして、各サーバのセンサ特定部２９ａは、実環境における無線伝播特性を確率モデル化して最尤法を用いて統計的推測を行う位置検出アルゴリズムと、各無線センサから取得した受信電波強度とを用いて、無線センサの位置を推測する。【００５９】
具体例を挙げると、センサ特定部２９ａは、実環境における無線伝播特性を確率モデル化する。例えば、センサ特定部２９ａは、設置した無線センサ間の距離と受信電波強度との関係を得る。なお、無線センサを移動させてもよい。そして、センサ特定部２９ａは、無線センサからの距離ｒにおける受信電波強度Ｐの条件付確率密度関数ｐ（Ｐ／ｒ）を算出する。この条件付確率密度関数ｐ（Ｐ／ｒ）は、式（１）と式（２）で表すことができる。なお、条件付確率密度関数ｐ（Ｐ／ｒ）は、データセンタのシミュレーション等により予め算出しておくこともできる。ここで、式（２）の左辺は、距離ｒにおける平均受信電波強度を示し、式（２）の右辺のＣおよび減衰係数αは、伝播環境のモデル化時に決まるパラメータである。【００６０】
【数１】
2012053115.tif 000003
【数２】
2012053115.tif 000004
【００６１】
例えば、無線センサ（無線タグ）の実位置をθ＝（ｘ、ｙ）、各無線センサから送信されてきた受信電波強度をＰ＝（Ｐ１、Ｐ２、・・・ＰＮ）と表し、検出対象の無線センサの位置をθであると仮定する。この場合、センサ特定部２９ａは、各無線センサの受信電波強度がＰである確率を条件付確率密度関数ｐ（Ｐ／θ）で表す。また、無線センサ間の伝播路が独立であると考えると、センサ特定部２９ａは、ｐ（Ｐ／θ）を式（３）のように、無線センサの各位置での条件付確率密度関数の積で表すことができる。ここで、式（３）のｒｉは、検出対象の無線センサの位置をθとした時の当該無線センサから受信電波強度Ｐｉを測定した他無線センサまでの距離である。センサ特定部２９ａは、式（３）を無線センサの位置θの関数とみなした関数「Ｌ（θ）：＝ｐ（Ｐ／θ）」を尤度関数とし、Ｌ（θ）を最大にするθを、検出対象の無線センサの位置として推定する。【００６２】
【数３】
2012053115.tif 000005
【００６３】
風量取得部２９ｂは、センサ特定部２９ａが特定した吹出口に設置される風量センサが測定した、当該特定された吹出口から吹き出す風量を取得する。例えば、図１の場合、風量取得部２９ｂは、センサ特定部２９ａが特定した吹出口４ａの風量を風量センサ７ａから取得して、サービスプロセッサ２９の各制御部に出力する。一例として、風量取得部２９ｂは、風量センサ７ａと接続される無線センサ１０ａから受信したＲＦメッセージに含まれる「風量センサ７ａの風量」を取得し、内部メモリ等に格納する。別例としては、風量取得部２９ｂは、吹出口４ａに設置される無線センサ１０ａに接続し、無線センサ１０ａのＲＡＭ１３ａ等に記憶される「風量センサ７ａの風量」を読み出す。【００６４】
情報取得部２９ｃは、他の吹出口に設置される風量センサが測定した他のサーバが吸気する風量と、他のサーバの負荷情報（ＣＰＵ負荷率、メモリ使用量等）とを取得する。図１の例では、情報取得部２９ｃは、吹出口４ｂ近傍に設置されたサーバ４０からＬＡＮなどを介して、風量センサ７ｂが測定した風量を取得する。同様に、情報取得部２９ｃは、吹出口４ｃ近傍に設置されたサーバ６０からＬＡＮなどを介して、風量センサ７ｃが測定した風量を取得する。また、情報取得部２９ｃは、サーバ４０の負荷情報として、サーバ４０のＣＰＵ使用率やメモリ使用量などを取得する。同様に、情報取得部２９ｃは、サーバ６０の負荷情報として、サーバ６０のＣＰＵ使用率やメモリ使用量などを取得する。そして、情報取得部２９ｃは、取得した各情報を判定部２９ｄなどの各制御部に出力する。【００６５】
情報取得部２９ｃが風量を取得する手法としては、例えば風量をサーバ各々内部の風量センサから取得してもよく、風量を無線センサから取得するようにしてもよい。具体的に説明すると、サーバ４０およびサーバ６０は、サーバ２０と同様に、自サーバに最も近い吹出口を特定し、特定した吹出口に設置される無線センサから、風量センサの情報を取得してメモリ等に格納する。【００６６】
つまり、サーバ４０は、風量センサ７ｂからの風量を取得しており、サーバ６０は、風量センサ７ｃからの風量を取得している。したがって、情報取得部２９ｃは、ＬＡＮなどを介して各サーバのサービスプロセッサに風量情報のリクエストを送信して、風量および負荷情報を取得することもできる。このように、各サーバは、自装置が吸気する風量および負荷情報を他のサーバ間で相互に交換することにより、他サーバが吸気する風量および負荷情報を対応付けて取得することができる。【００６７】
判定部２９ｄは、情報取得部２９ｃが取得した風量のうち風量取得部２９ｂが取得した風量よりも大きい風量を吸気する各サーバの風量を並べ替え、風量が大きいサーバほど優先順位が高くなるように優先順位を決定する。そして、判定部２９ｄは、決定した優先順位の順に、情報取得部２９ｃが取得した他のサーバの負荷情報と、移動対象のＶＭの負荷情報とに基づいて、ＶＭが稼動できるサーバであるか否かを判定する。そして、判定部２９ｄは、移動できると判定したサーバの情報を移動制御部２９ｅに出力する。【００６８】
例えば、図１を用いて具体的に説明すると、判定部２９ｄは、サーバ６０から取得した風量の方がサーバ４０から取得した風量よりも大きいため、サーバ６０、サーバ４０の順番で優先度を決定する。続いて、判定部２９ｄは、自サーバ２０のパーティション１で実行されるＶＭのＣＰＵ使用率「３０％」をハイパーバイザ２３ｃから取得する。また、判定部２９ｄは、最も優先度が高いサーバ６０から取得したＣＰＵ使用率「６０％」を取得し、「１００（％）−６０（％）」から許容できるＣＰＵ負荷「４０（％）」を算出する。そして、判定部２９ｄは、移動対象のＶＭのＣＰＵ使用率が「３０％」であり、移動先候補のサーバ６０が許容できるＣＰＵ負荷が「４０（％）」であることから、ＶＭが稼動できるサーバとしてサーバ６０を移動先として決定する。【００６９】
一方、最も優先度が高いサーバ６０から取得したＣＰＵ使用率が「８０％」であるため、許容できるＣＰＵ負荷「２０（％）」だったとする。この場合、判定部２９ｄは、移動対象のＶＭのＣＰＵ使用率が「３０％」であり、移動対象のサーバ６０が許容できるＣＰＵ負荷「２０（％）（＝１００（％）−８０（％））」であることから、サーバ６０を移動先候補から除外する。【００７０】
そして、判定部２９ｄは、次に優先度が高いサーバ４０について同様の処理を行う。例えば、次に優先度が高いサーバ４０から取得したＣＰＵ使用率が「２０％」であるため、許容できるＣＰＵ負荷「８０（％）」だったとする。この場合、判定部２９ｄは、移動対象のＶＭのＣＰＵ使用率が「３０％」であり、移動対象のサーバ４０が許容できるＣＰＵ負荷「８０（％）（＝１００（％）−２０（％））」であることから、サーバ４０を移動可能であると判定する。【００７１】
この結果、判定部２９ｄは、移動可能だと判定したサーバ４０を移動先として決定し、サーバ４０が移動不可能だと判定した場合には、他にサーバが存在しないので、ＶＭを移動させないと判定する。【００７２】
なお、ここでは、負荷情報としてＣＰＵ使用率を用いて判定する例を説明したが、これに限定されるものではない。例えば、メモリ使用量を用いてもよく、ＣＰＵ使用率とメモリ使用量との両方を用いてもよく、任意の負荷情報および負荷情報の組み合わせを用いることができる。【００７３】
移動制御部２９ｅは、判定部２９ｄによってＶＭが稼動できると判定されたサーバにＶＭを移動させ、マイグレーションを行う。上述した例では、移動制御部２９ｅは、移動対象ＶＭが動作するハイパーバイザ２３ｃに対して、サーバ６０へのＶＭ移動指示を送信する。ＶＭ移動指示を受信したハイパーバイザ２３ｃは、当該ＶＭをサーバ６０へマイグレーションする。【００７４】
ここで、サーバ間におけるＶＭのマイグレーションについて、図６を用いて説明する。なお、ここで説明する処理は、移動対象のＶＭ上で動作するハイパーバイザが実行する。図６に示すように、まず、移動元サーバは、移動対象ＶＭに対応する仮想コンテキストのうち、ＶＭ内で未実行である移動可能な仮想コンテキストを移動元サーバのメモリから読み出して、移動先サーバのメモリにコピーする。そして、移動元サーバは、コピー済みの仮想コンテキストに実行権が割り与えられ、未コピーの仮想コンテキストが解放されると、当該仮想コンテキストを移動元サーバのメモリから読み出し、移動先サーバのメモリにコピーする。このようにして、移動元サーバは、メモリに記憶される仮想コンテキストや仮想マシンイメージの一部を移動先サーバのメモリにコピーする。【００７５】
続いて、移動元サーバは、メモリに記憶されるＶＭの情報を移動先サーバに書き込むと、移動元サーバのディスクに格納される仮想マシンイメージをコピーして、移動先サーバのディスクに書き込む。その後、移動先サーバは、移動先サーバのディスクに書き込んだ仮想マシンイメージを移動先サーバのメモリに展開する。もしくは、ＬＡＮなどのネットワークを介して、移動元サーバのディスクを移動先サーバと共有することにより、移動先サーバが、仮想マシンイメージをそのメモリに展開してもよい。この結果、移動元サーバは、自装置で動作していたＶＭを移動先サーバにマイグレーションさせることができる。【００７６】
図４に戻り、情報提供部２９ｆは、自サーバが吸気する風量および自サーバの負荷情報をＬＡＮなどのネットワークを介して他サーバに送信する。例えば、情報提供部２９ｆは、他サーバから情報取得要求を受信した場合に、無線センサ１０ａから取得した風量と各パーティションの各ハイパーバイザから取得した負荷情報とをＬＡＮなどを介して要求元に送信する。なお、負荷情報は、各パーティションごとの負荷情報であってもよく、各パーティションの情報を合計したサーバ２０全体の負荷情報であってもよい。【００７７】
［処理の流れ］
次に、図７〜図９を用いて、サーバ２０が実行する処理の流れをそれぞれ説明する。図７は、実施例１に係るＶＭ移動制御処理の流れを示すフローチャートであり、図８は、ＶＭ移動制御処理における優先順位決定処理の流れを示すフローチャートであり、図９は、ＶＭ移動制御処理における移動処理の流れを示すフローチャートである。【００７８】
（ＶＭ移動制御処理の流れ）
図７に示すように、サーバ２０のサービスプロセッサ２９のセンサ特定部２９ａは、処理開始指示を管理者端末等から受信すると（ステップＳ１０１Ｙｅｓ）、各無線センサと無線通信を実行する（ステップＳ１０２）。【００７９】
続いて、センサ特定部２９ａは、各無線センサから受信したＲＦメッセージと超音波パルス等に基づいて算出した距離から、サーバ２０に最も近い無線センサを特定する（ステップＳ１０３）。すなわち、センサ特定部２９ａは、サーバ２０に最も近い無線センサを特定することで、当該無線センサが設置された、サーバ２０が主に吸気する冷却風が吹き出す吹出口４ａを特定できる。【００８０】
そして、風量取得部２９ｂは、センサ特定部２９ａが特定した吹出口４ａに設置された風量センサ７ａが測定した風量、言い換えると、吹出口４ａから吹き出す風量の値またはサーバ２０が吸気する風量の値を取得する（ステップＳ１０４）。このとき、判定部２９ｄは、移動対象となるＶＭの負荷情報を、当該ＶＭを動作させるハイパーバイザから収集する。【００８１】
続いて、情報取得部２９ｃおよび判定部２９ｄは、他の吹出口の風量および他サーバの負荷情報を取得し（ステップＳ１０５）、取得した風量に基づいて、移動先候補とするサーバに対して優先順位を決定することにより優先度を決定する優先順位決定処理を実行する（ステップＳ１０６）。その後、判定部２９ｄおよび移動制御部２９ｅは、移動先サーバを決定し、決定した移動先サーバにＶＭをマイグレーションさせる移動処理を実行する（ステップＳ１０７）。【００８２】
（優先順位決定処理の流れ）
次に、図７に示したステップＳ１０６で実行される優先順位決定処理の流れについて説明する。なお、ここでは、ヒープソートを例にして説明するが、これに限定されるものではなく、例えばバブルソートなど他のソートアルゴリズムを用いてもよい。【００８３】
図８に示すように、判定部２９ｄは、情報取得部２９ｃが取得した各サーバの風量（Ｑｘ）についてデータ配列を生成し（ステップＳ２０１）、総数をＮとする（ステップＳ２０２）。さらに、判定部２９ｄは、初期の比較要素の列番号を「ｉ＝（Ｎ−１）／２」とする（ステップＳ２０３）。次に基礎（親）の比較要素の列番号を「ａ＝ｉ」とする（ステップＳ２０４）。ここで示したｘは、各風量センサから取得された風量を区別する添え字であり、図１に示したように、風量センサが３台ある場合には、ｘは０、１、２となる。一例を挙げると、Ｑ０が風量センサ７ａにより取得された風量を示し、Ｑ１が風量センサ７ｂにより取得された風量を示し、Ｑ２が風量センサ７ｃにより取得された風量を示す。【００８４】
その後、判定部２９ｄは、Ｎ−１が２＊ｉ＋１以上であり（ステップＳ２０５Ｙｅｓ）、Ｎ−１が２*ｉ＋２以上である場合（ステップＳ２０６Ｙｅｓ）、ＱｉとＱ２＊ｉ＋２、Ｑ２＊ｉ＋１とＱ２ｉ＋２とを比較する（ステップＳ２０７）。つまり、判定部２９ｄは、（Ｎ−１）≧（２ｉ＋１）かつ（Ｎ−１）≧（２ｉ＋２）である場合に、ステップＳ２０７を実行する。【００８５】
そして、判定部２９ｄは、Ｑ２＊ｉ＋２がＱｉより大きく且つＱ２＊ｉ＋２がＱ２＊ｉ＋１より大きいと判定した場合には（ステップＳ２０７Ｙｅｓ）、ＱｉとＱ２＊ｉ＋２を入れ替えて、ｉに２＊ｉ＋２を代入する（ステップＳ２０８）。その後、ステップＳ２０５に戻って以降の処理を実行する。【００８６】
一方、判定部２９ｄは、Ｑ２＊ｉ＋２がＱｉより小さくまたはＱ２＊ｉ＋２がＱ２＊ｉ＋１より小さいと判定した場合には（ステップＳ２０７Ｎｏ）、ＱｉとＱ２＊ｉ＋１を比較する（ステップＳ２０９）。そして、判定部２９ｄは、Ｑ２＊ｉ＋１がＱｉより大きいと判定した場合には（ステップＳ２０９Ｙｅｓ）、ＱｉとＱ２＊ｉ＋１を入れ替えて、ｉに２＊ｉ＋１を代入する（ステップＳ２１０）。その後、ステップＳ２０５に戻って以降の処理を実行する。【００８７】
また、判定部２９ｄは、Ｑ２＊ｉ＋１がＱｉより小さいと判定した場合には（ステップＳ２０９Ｎｏ）、ｉにａを代入する（ステップＳ２１１）。なお、判定部２９ｄは、Ｎ−１が２＊ｉ＋２以上でない場合（ステップＳ２０５Ｎｏ）、ステップＳ２１１以降を実行する。【００８８】
ステップＳ２１１を実行した判定部２９ｄは、ｉ＝０であるか否かを判定し（ステップＳ２１２）、ｉ＝０でない場合には（ステップＳ２１２Ｎｏ）、ｉにｉ−１に代入し（ステップＳ２１３）、ステップＳ２０４に戻って以降の処理を実行する。【００８９】
一方、判定部２９ｄは、ｉ＝０である場合には（ステップＳ２１２Ｙｅｓ）、並び替えた風量Ｑｘのヒープ構造から、最大値Ｑ０を抽出する（ステップＳ２１４）。そして、判定部２９ｄは、最大値Ｑ０とＱＮ−１とを交換して（ステップＳ２１５）、新たなＮをＮ−１とし（ステップＳ２１６）、Ｎ＝０であるか否かを判定する（ステップＳ２１７）。【００９０】
続いて、判定部２９ｄは、Ｎ＝０でない場合（ステップＳ２１７Ｎｏ）、ステップＳ２０３に戻って以降の処理を実行してヒープ構造を再構成する。一方、判定部２９ｄは、Ｎ＝０である場合（ステップＳ２１７Ｙｅｓ）、最も大きい風量が最も優先度が高くなるように、ソートした順に優先順位が高くなるように優先度を付加して、優先順位を決定する（ステップＳ２１８）。その後、判定部２９ｄは、移動処理に処理を遷移させる（ステップＳ２１９）。【００９１】
（移動処理の流れ）
次に、図７に示したステップＳ１０７で実行される移動処理の流れについて説明する。図９に示すように、判定部２９ｄは、図８に示した優先順位決定処理によって、最も高い優先度が付加されたサーバを移動先候補として取得する（ステップＳ３０１）。続いて、判定部２９ｄは、自サーバで動作するＶＭから移動対象とするＶＭを１つ特定し、当該ＶＭの負荷情報をハイパーバイザから取得する（ステップＳ３０２）。【００９２】
そして、判定部２９ｄは、情報取得部２９ｃが取得した移動先候補の負荷情報から許容できる負荷を算出する（ステップＳ３０３）。その後、判定部２９ｄは、許容できる負荷が移動対象ＶＭの負荷よりも大きい場合には（ステップＳ３０４Ｙｅｓ）、当該移動先候補を移動先サーバに決定する（ステップＳ３０５）。そして、移動制御部２９ｅは、判定部２９ｄによって決定された移動先サーバに、当該ＶＭを移動させる指示をハイパーバイザに出力した結果、ハイパーバイザによってＶＭのマイグレーションが実行される（ステップＳ３０６）。【００９３】
一方、判定部２９ｄは、許容できる負荷が移動対象ＶＭの負荷よりも小さい場合には（ステップＳ３０４Ｎｏ）、当該移動先候補で当該ＶＭが動作することができないと判定し、次に優先度が高いサーバがあるか否かを判定する（ステップＳ３０７）。【００９４】
そして、判定部２９ｄは、次に優先度が高いサーバがあると判定した場合（ステップＳ３０７Ｙｅｓ）、次に優先度の高いサーバを新たな移動先候補として、ステップＳ３０３以降の処理を実行する。一方、判定部２９ｄは、次に優先度が高いサーバがないと判定した場合（ステップＳ３０７Ｎｏ）、ＶＭを移動できるサーバが存在しないので、ＶＭをマイグレーションさせることなく維持する（ステップＳ３０８）。【００９５】
［実施例１による効果］
実施例１によれば、各サーバは、自装置を主に冷却する空気が吹き出す吹出口に設置される風量センサが測定した風量を取得する。各サーバは、他のサーバを冷却する空気が吹き出す吹出口に設置される風量センサが測定した風量を取得する。各サーバは、自装置を冷却する風量よりも大きい風量によって冷却される他のサーバを特定し、特定した他のサーバに自サーバで稼動対象のＶＭをマイグレーションさせる。【００９６】
この結果、各サーバは、自サーバよりも大きい風量を吸気して冷却を実施しているサーバにＶＭをマイグレーションするので、大きな風量で冷却を実施しているサーバにＶＭを集約させることができる。この結果、データセンタに設置された各サーバの冷却効率を向上させることができる。【００９７】
また、実施例１によれば、各サーバは、他のサーバの負荷情報を取得する。各サーバは、自サーバが吸気する風量よりも大きい風量で冷却される他のサーバから、他のサーバの負荷情報とＶＭの負荷情報とに基づいて、ＶＭが稼動できるサーバであるか否かを判定する。各サーバは、ＶＭが稼動できると判定された他のサーバに、ＶＭをマイグレーションさせる。【００９８】
この結果、移動先候補となったサーバのうち移動対象のＶＭが稼動できるかどうかの判断結果に基づいて、ＶＭをマイグレーションさせることができる。つまり、移動先候補のサーバが吸気する風量だけでなく、移動対象のＶＭが稼動できる場合にのみＶＭをマイグレーションさせるため、ＶＭのマイグレーションにより移動先サーバの冷却効率が低下し、冷却できなくなることを抑止することができる。【００９９】
また、実施例１によれば、各サーバは、吹出口ごとに設置された無線センサと間の無線通信から、各無線センサと自サーバとの間の距離を算出し、算出した距離に基づいて、自サーバを主に冷却する空気が吹き出す吹出口を特定する。各サーバは、特定された吹出口に設置される風量センサが測定した風量を取得する。【０１００】
この結果、新たなデータセンタを構築する際だけでなく、既に構築されているデータセンタに、開示する無線センサを各吹出口に設置するとともに、各制御を実行する機能部をサーバに設けることで、データセンタにおける各サーバの冷却効率を向上させることできる。したがって、既存のデータセンタを改築する等のコストを削減することができるとともに、各サーバの冷却効率を向上させることもできる。【０１０１】
また、実施例１によれば、空調機２を制御することなく、つまり、データセンタ１内における空調機２の冷却風１ｂの供給量を変更することなく、各サーバの冷却効率を向上させることができる。したがって、空調機２を制御して、冷却風１ｂの供給量を増やす手法を実施する従来技術に比べて、コストを削減することもできる。
【実施例２】
【０１０２】
ところで、開示するサーバは、移動先サーバのパーティションを跨ってＶＭをマイグレーションさせることもできる。そこで、実施例２では、移動先サーバのパーティションを跨ってＶＭをマイグレーションさせる例について説明する。【０１０３】
［全体構成］
図１０は、実施例２に係るパーティションを跨ってＶＭをマイグレーションさせる例を説明する図である。図１０に示すデータセンタ１は、図１と同様、空調機２と、排気口３と、吹出口４ａ〜４ｃと、サーバ２０と、サーバ４０と、サーバ６０とを有する。ここでは、吹出口４ｃ、吹出口４ｂ、吹出口４ａの順に風量が多いとする。なお、図１０に示したサーバの台数など各装置の台数および各装置等の設置位置などは、あくまで例示であり、これに限定されるものではない。【０１０４】
このような状況において、サーバ２０は、自装置の吸気する冷却風１ｂが吹き出す吹出口４ａに設置される風量センサ７ａが測定した当該吹出口４ａから吹き出す風量を取得する。そして、サーバ２０は、他の吹出口各々に設置される風量センサ各々が測定した他のサーバ各々が吸気する風量を取得する。その後、サーバ２０は、サーバ６０、サーバ４０の順に優先順位が高くなるように優先度を決定するとともに、自サーバで動作するＶＭのうち移動対象とするＶＭを決定し、ＬＡＮ等のネットワークを介して当該ＶＭの負荷情報を取得する。【０１０５】
そして、サーバ２０は、最も優先度が高いサーバ６０におけるパーティション１の構成情報およびパーティション１における負荷情報を取得する。続いて、サーバ２０は、パーティション１における負荷情報からパーティション１での許容できる負荷を算出し、ＶＭが動作可能か否かを判定する。ここでは、パーティション１では動作できない、すなわちパーティション１へのＶＭのマイグレーションが不可能であると判定したとする。【０１０６】
この場合、サーバ２０は、サーバ６０におけるパーティション２の構成情報およびパーティション２における負荷情報をＬＡＮ等のネットワークを介して取得する。そして、サーバ２０は、パーティション１の負荷情報とパーティション２の負荷情報とに基づいて、パーティション１とパーティション２の両方を用いて許容できる負荷を算出し、ＶＭが動作可能か否かを判定する。ここでは、パーティション１とパーティション２の両方を用いれば、ＶＭが動作できると判定したとする。【０１０７】
すると、サーバ２０は、サーバ６０のパーティション１とパーティション２の両方を移動先として決定する。そして、サーバ２０は、サーバ６０のパーティション１とパーティション２に、仮想コンテキストをコピーするとともに仮想マシンイメージを配置し、パーティション１とパーティション２を跨ってＶＭが動作できる環境を設定する。【０１０８】
このように、実施例２によれば、サーバ２０は、サーバ６０のパーティションごとに負荷を取得し、取得した各パーティションの負荷を組み合わせ、組み合わせたパーティション上でＶＭが動作可能であるか否かを判定し、動作可能であればＶＭのマイグレーションを行う。したがって、移動先サーバの資源を効率的に利用することができる。【０１０９】
［処理の流れ］
次に、実施例２に係る処理の流れを説明する。図１１は、実施例２に係るサーバが実行する移動処理の流れを示すフローチャートである。なお、ここでは、サーバ２０によって、サーバ６０、サーバ４０の順に優先順位が高くなるように優先度が決定されたとする。【０１１０】
図１１に示すように、サーバ２０の判定部２９ｄは、移動対象となるＶＭの数（Ｍ個）を計数する（ステップＳ４０１）。続いて、判定部２９ｄは、１つのＶＭを移動対象として選択して、当該ＶＭのＣＰＵ使用率およびメモリ使用量を対応するハイパーバイザから取得する（ステップＳ４０２）。【０１１１】
そして、判定部２９ｄは、移動済みＶＭを強制的に移動元のサーバに戻す旨の指示がなされていない場合（ステップＳ４０３Ｎｏ）、最も優先度の高いサーバとしてサーバ６０を取得する（ステップＳ４０４）。続いて、判定部２９ｄは、移動先候補であるサーバ６０のサービスプロセッサからサーバ６０のパーティション情報を取得する（ステップＳ４０５）。ここでは、パーティション構成がＰＮ−０からＰＮ−ｘ、初期値がｘ＝０であるとする。ここで、ＰＮ−ｘに示されるＮは、データセンタ内に存在し、移動先候補となる物理サーバを示し、ｘは、物理サーバ内で構成されるパーティション数である。一例として、サーバ４０でパーティションが４つ形成されている場合には、パーティション構成は、Ｐ４０−０、Ｐ４０−１、Ｐ４０−２、Ｐ４０−３となる。【０１１２】
その後、判定部２９ｄは、現在対象となっているパーティション（ＰＮ−ｘ）のＣＰＵ使用率をサーバ６０のサービスプロセッサもしくはハイパーバイザから取得する（ステップＳ４０６）。そして、判定部２９ｄは、現在までに取得したパーティション（ＰＮ−０からＰＮ−ｘ）ごとに、取得したＣＰＵ使用率を用いてＣＰＵの未使用率（ΣＰ）を算出する（ステップＳ４０７）。さらに、判定部２９ｄは、サーバ６０のサービスプロセッサからメモリの空き容量も取得する（ステップＳ４０８）。【０１１３】
そして、判定部２９ｄは、ステップＳ４０９を実行する。すなわち、判定部２９ｄは、パーティションごとに算出したＣＰＵの未使用率（ΣＰ）の合計（ΣΣＰ）が移動対象のＶＭのＣＰＵ使用率よりも大きく、かつ、サーバ６０のメモリ使用量がＶＭの使用量を満たすか否かを判定する。【０１１４】
続いて、判定部２９ｄは、未使用率の合計（ΣΣＰ）が移動対象のＶＭのＣＰＵ使用率よりも大きく、かつ、サーバ６０のメモリ使用量がＶＭの使用量を満たす場合（ステップＳ４０９Ｙｅｓ）、ステップＳ４１０を実行する。すなわち、判定部２９ｄは、移動先と決定したサーバ６０に１００％未使用のＣＰＵおよびメモリがあるか否かを判定する。【０１１５】
そして、判定部２９ｄは、サーバ６０に１００％未使用のＣＰＵおよびメモリがある場合（ステップＳ４１０Ｙｅｓ）、当該ＣＰＵとメモリとを使用できるように、サーバ６０のサービスプロセッサにパーティション再構築リクエストを送信する（ステップＳ４１１）。その後、判定部２９ｄは、サーバ６０で再構築されたパーティションを移動先と決定し、移動制御部２９ｅは、判定部２９ｄによって決定された移動先に、ここではサーバ６０に再構築されたパーティションにＶＭをマイグレーションさせる。【０１１６】
このとき、移動制御部２９ｅは、ＶＭの個数から１を減じたＭ−１を算出し、算出したＭ−１を新たなＶＭの個数Ｍとして、Ｍ＝０であるか否かを判定する（ステップＳ４１３）。そして、Ｍ＝０である場合には（ステップＳ４１３Ｙｅｓ）、処理を終了する。一方、移動制御部２９ｅは、Ｍ＝０でない場合には（ステップＳ４１３Ｎｏ）、言い換えると、サーバ２０にまだＶＭが動作している場合、次のＶＭを移動対象と決定した上で、ステップＳ４０２以降の処理を実行する（ステップＳ４１４）。【０１１７】
一方、ステップＳ４１０において、判定部２９ｄは、サーバ６０に１００％未使用のＣＰＵおよびメモリがない場合（ステップＳ４１０Ｎｏ）、現在移動先の対象としているパーティション（ＰＮ−０からＰＮ−ｘ）を移動先に決定してステップＳ４１２以降を実行する。【０１１８】
また、ステップＳ４０９において、判定部２９ｄは、未使用率の合計（ΣΣＰ）が移動対象のＶＭのＣＰＵ使用率よりも小さく、または、サーバ６０のメモリ使用量がＶＭの使用量を満たさない場合（ステップＳ４０９Ｎｏ）、ステップＳ４１５を実行する。すなわち、判定部２９ｄは、サーバ６０に他のパーティションがあるかないか、つまり、現在のｘが最大値であるか否かを判定する。【０１１９】
ステップＳ４１５において、判定部２９ｄが、サーバ６０に他のパーティションがないと判定した場合（ステップＳ４１５Ｙｅｓ）、次に優先度の高いサーバがあるか否かを判定する（ステップＳ４１６）。判定部２９ｄは、次に優先度の高いサーバがないと判定した場合（ステップＳ４１６Ｎｏ）、現在移動対象としたＶＭをマイグレーションさせることなく、自サーバに維持したまま動作を継続させる（ステップＳ４１７）。その後、判定部２９ｄは、ＶＭの個数ＭをデクリメントしてＭ−１とした上で、ステップＳ４１３以降の処理を実行する。【０１２０】
判定部２９ｄは、次に優先度の高いサーバがあると判定した場合（ステップＳ４１６Ｙｅｓ）、当該サーバを移動先候補として、ＰＮ−０からＰＮ−ｘのＮを次のサーバに変更して、ステップＳ４０５以降の処理を実行する（ステップＳ４１８）。つまり、判定部２９ｄは、サーバ６０の各パーティションにおけるＣＰＵの未使用率を合算しても、ＶＭを動作することができないと判定し、次に優先度が高いサーバの各パーティションのＣＰＵの未使用率を合算し、ＶＭの移動が可能かどうかについての判定処理を実行する。【０１２１】
また、判定部２９ｄは、サーバ６０に他のパーティションがあると判定した場合（ステップＳ４１５Ｎｏ）、ｘをインクリメントすることによりｘ＝ｘ＋１とした上で、ステップＳ４０６以降の処理を実行する（ステップＳ４１９）。つまり、判定部２９ｄは、次のパーティションのＣＰＵ使用率等を取得し、パーティション（ＰＮ−０からＰＮ−ｘ）で移動対象のＶＭを動作できるか否かを判定する処理を実行する。【０１２２】
また、ステップＳ４０３において、判定部２９ｄは、移動済みＶＭを移動元のサーバに強制的に戻すと判定した場合（ステップＳ４０３Ｙｅｓ）、ステップＳ４１７以降の処理を実行する。つまり、判定部２９ｄは、現在対象となっているＶＭは移動対象外とし、次のＶＭについて上述した処理を実行する。【０１２３】
［実施例２による効果］
実施例２によれば、各サーバは、他のサーバで形成されるパーティションごとに、当該パーティション内の負荷情報を取得する。各サーバは、他のサーバにおける各パーティションの負荷情報から、各パーティションで許容できる負荷を算出し、算出した各パーティションで許容できる負荷に基づいて、ＶＭを移動させて動作できるパーティションの組み合わせを特定する。各サーバは、特定された他のサーバにおいて特定されたパーティションの組合せに対して、ＶＭをマイグレーションさせる。【０１２４】
この結果、ＶＭの移動元であるサーバは、移動先のサーバの各パーティションで使用されていないＣＰＵやメモリを合算して、移動対象のＶＭが動作可能な環境を作り出すことができる。したがって、移動先サーバのハードウェア資源を効率的に利用することができる。また、移動先サーバで使用されていないＣＰＵやメモリ等を用いることから、ＶＭ移動後に移動先サーバの負荷が上昇することを防止することもできる。
【実施例３】
【０１２５】
ところで、実施例２では、１台の移動先サーバ内に設定された複数のパーティションを跨って動作するようにＶＭをマイグレーションさせる例について説明したが、これに限定されるものではない。例えば、開示するサーバは、複数のサーバに跨って設定されたパーティション上で動作するようにＶＭをマイグレーションさせることもできる。そこで、実施例３では、複数のサーバに跨って設定されたパーティション上で動作するようにＶＭをマイグレーションさせる例について説明する。【０１２６】
［全体構成］
図１２は、実施例３に係る複数のサーバを跨って設定されたパーティションにＶＭをマイグレーションさせる例を説明する図である。図１２に示すデータセンタ１は、図１と同様、空調機２と、排気口３と、吹出口４ａ〜４ｃと、サーバ２０と、サーバ４０と、サーバ６０とを有する。【０１２７】
このような状況において、サーバ２０は、自装置が主に吸気する冷却風１ｂが吹き出す吹出口４ａに設置される風量センサ７ａが測定した当該吹出口４ａの風量を取得する。そして、サーバ２０は、他の吹出口各々に設置される風量センサ各々が測定した他のサーバ各々が主に吸気する風量を取得する。その後、サーバ２０は、サーバ６０、サーバ４０の順に優先順位が高くなるように優先度を決定するとともに、自サーバで動作するＶＭのうち移動対象とするＶＭを決定し、当該ＶＭの負荷情報を取得する。【０１２８】
そして、サーバ２０は、最も優先度が高いサーバ６０の負荷情報からサーバ６０単独で許容できる負荷を算出する。続いて、サーバ２０は、サーバ６０単独で許容できる負荷と移動対象のＶＭの負荷とを比較し、サーバ６０単独で移動対象のＶＭが動作できるか否かを判定する。ここでは、サーバ６０単独で移動対象のＶＭが動作できないと判定したとする。【０１２９】
続いて、サーバ２０は、次に優先度の高いサーバ４０単独の負荷情報からサーバ４０単独で許容できる負荷を算出する。続いて、サーバ２０は、サーバ４０単独で許容できる負荷と移動対象のＶＭの負荷とを比較し、サーバ４０単独で移動対象のＶＭが動作できるか否かを判定する。ここでは、サーバ４０単独で移動対象のＶＭが動作できないと判定したとする。【０１３０】
すると、サーバ２０は、サーバ６０が許容する負荷とサーバ４０が許容する負荷とを合算した値がＶＭの負荷よりも大きいか否かを判定する。つまり、サーバ２０は、サーバ６０およびサーバ４０を跨って設定されたパーティションに、ＶＭをマイグレーションさせることができるか否かを判定する。【０１３１】
そして、サーバ２０は、サーバ６０が許容する負荷とサーバ４０が許容する負荷とを合算した値が移動対象のＶＭの負荷よりも大きい場合、ＶＭをマイグレーションさせることができると判定し、サーバ６０とサーバ４０に跨って設定されたパーティションを移動先として決定する。その後、サーバ２０は、サーバ６０とサーバ４０各々に対して、仮想コンテキストや仮想マシンイメージをコピーし、ＶＭを両サーバに跨って設定されたパーティションにマイグレーションさせる。【０１３２】
ここでは、サーバ２０は、優先度が高いサーバから順に、ＶＭが動作できるか否かを判定し、全てのサーバでＶＭが動作できないと判定された場合に、サーバを跨って設定されたパーティションにマイグレーションさせることができるか否かを判定する例を説明したが、これに限定されるものではない。例えば、サーバ２０は、管理者等により予め指定された場合など、自サーバが吸気する風量よりも大きい風量を吸気するサーバから、ＶＭが動作できるサーバの組み合わせを特定し、特定したサーバ間に跨って設定されたパーティションにＶＭをマイグレーションさせることもできる。なお、パーティションが跨って設定されるサーバ数は、少なくとも２台以上であればよい。【０１３３】
［処理の流れ］
次に、実施例３に係る処理の流れを説明する。図１３は、実施例３に係るサーバが実行する移動処理の流れを示すフローチャートである。なお、ここでは、サーバ２０によって、サーバ６０、サーバ４０の順に優先順位が高くなるように優先度が決定されたとする。【０１３４】
図１３に示すように、サーバ２０の判定部２９ｄは、最も高い優先度が付与されたサーバを移動先候補として取得する（ステップＳ５０１）。続いて、判定部２９ｄは、移動対象とするＶＭを特定するとともに当該ＶＭのＣＰＵ使用率を該当するハイパーバイザから取得する（ステップＳ５０２）。【０１３５】
次に、判定部２９ｄは、移動先候補とされたサーバ上で動作するパーティションのＣＰＵ使用率から許容できるＣＰＵ使用率を算出し（ステップＳ５０３）、当該サーバのパーティションが許容できるＣＰＵ使用率が移動対象のＶＭのＣＰＵ使用率よりも大きいか否かを判定する（ステップＳ５０４）。【０１３６】
そして、判定部２９ｄは、移動先候補としたサーバのパーティションが許容できるＣＰＵ使用率が移動対象のＶＭのＣＰＵ使用率よりも大きいと判定した場合（ステップＳ５０４Ｙｅｓ）、当該サーバのパーティションを移動先に決定する（ステップＳ５０５）。その後、移動制御部２９ｅは、決定された移動先のサーバのパーティションに、移動対象のＶＭをマイグレーションさせる（ステップＳ５０６）。【０１３７】
一方、判定部２９ｄは、移動先候補としたサーバのパーティションが許容できるＣＰＵ使用率が移動対象のＶＭのＣＰＵ使用率よりも小さいと判定した場合（ステップＳ５０４Ｎｏ）、移動先候補であるサーバのパーティションが許容できるＣＰＵ使用率を判定部２９ｄのメモリ等に一時的に格納する（ステップＳ５０７）。続いて、判定部２９ｄは、次に優先度が高いサーバが存在するか否かを判定し（ステップＳ５０８）、存在しない場合には（ステップＳ５０８Ｎｏ）、処理を終了する。【０１３８】
一方、判定部２９ｄは、次に優先度が高いサーバが存在すると判定した場合（ステップＳ５０８Ｙｅｓ）、当該サーバに設定されたパーティションを新たな移動先候補とした上で、当該サーバのＣＰＵ使用率から、新たな移動先候補であるサーバのパーティションが許容できるＣＰＵ使用率を算出する（ステップＳ５０９）。【０１３９】
続いて、判定部２９ｄは、先の移動先候補のサーバのパーティションが許容できるＣＰＵ使用率と新たな移動先候補のサーバに設定されたそれぞれのパーティションが許容できるＣＰＵ使用率を合算した値が、移動対象であるＶＭのＣＰＵ使用率よりも大きいか否かを判定する（ステップＳ５１０）。【０１４０】
そして、判定部２９ｄは、先の移動先候補と新たな移動先候補のサーバに設定されたそれぞれのパーティションが許容できるＣＰＵ使用率を合算した値が、移動対象であるＶＭのＣＰＵ使用率よりも大きいと判定した場合（ステップＳ５１０Ｙｅｓ）、先の移動先候補と新たな移動先候補のサーバを跨るようにパーティションを再設定する（ステップＳ５１１）。その後、判定部２９ｄは、当該両サーバに跨って設定されたパーティションを移動先として決定してステップＳ５１２を実行する。すなわち、判定部２９ｄは、両サーバに跨って設定されたパーティションに対して共用ストレージおよび仮想ＬＡＮの設定リクエストを送信する。【０１４１】
その後、移動制御部２９ｅは、仮想コンテキストや仮想マシンイメージを当該両サーバに跨って設定されたパーティションにコピーし、当該パーティションで設定された共用ストレージおよび仮想ＬＡＮを使用して動作するように、移動対象のＶＭをマイグレーションさせる（ステップＳ５１３）。【０１４２】
一方、判定部２９ｄは、両サーバに跨って設定されたパーティションが許容できるＣＰＵ使用率を合算した値が移動対象であるＶＭのＣＰＵ使用率よりも小さいと判定した場合（ステップＳ５１０Ｎｏ）、ステップＳ５０７に戻って、次に優先度の高いサーバのパーティションを新たな移動先候補として処理を実行する。なお、移動元のサーバで動作している各ＶＭについて、図１３の処理が実行される。【０１４３】
［実施例３による効果］
実施例３によれば、各サーバは、自サーバ以外の他のサーバのパーティションの負荷情報から、他のサーバの各々のパーティションで許容できる負荷を算出し、算出したサーバのパーティションで許容できる負荷に基づいて、ＶＭが動作できるサーバのパーティションの組み合わせを特定する。各サーバは、特定された組合せに係る複数のサーバのパーティションについて、当該複数のサーバを跨るパーティションを再設定し、再設定された複数のサーバを跨るパーティションにＶＭが動作するようにＶＭをマイグレーションさせる。この結果、サーバ単体のパーティションではＶＭが動作できない場合でも、複数のサーバに跨って設定されたパーティションを用いてＶＭをマイグレーションさせることができるので、各サーバの資源を有効的に利用しつつ、冷却効率も向上させることができる。
【実施例４】
【０１４４】
ところで、開示するサーバは、一旦マイグレーションさせたＶＭを、移動先サーバから移動元の自サーバに再度マイグレーションすることにより、自サーバに戻すこともできる。そこで、実施例４では、自サーバからマイグレーションさせたＶＭを再度マイグレーションさせて、自サーバで再動作させる例について説明する。【０１４５】
図１４は、実施例４に係るＶＭ再移動制御処理の流れを示すフローチャートである。図１４に示すように、サーバ２０の移動制御部２９ｅは、他サーバとのＬＡＮ等のネットワークを介した定期的な通信等によって、高負荷サーバを検出すると（ステップＳ６０１Ｙｅｓ）、高負荷サーバで実行されるＶＭ情報を収集する（ステップＳ６０２）。例えば、移動制御部２９ｅは、定期的に収集した他サーバのＣＰＵ使用率が所定値以上になったサーバを高負荷サーバとして検出する。【０１４６】
そして、移動制御部２９ｅは、受信したＶＭ情報から、高負荷サーバで動作するＶＭにが自サーバからマイグレーションしたＶＭが存在するか、すなわち、自サーバを移動元とするＶＭであるか否かを判定する（ステップＳ６０３）。【０１４７】
例えば、移動制御部２９ｅは、他サーバとの間でＬＡＮ等のネットワークを介して定期的に負荷情報を受信したり、監視ソフト等を用いて定期的に負荷を監視する。そして、移動制御部２９ｅは、高負荷であるサーバに対して、ＶＭ情報の提供についてのリクエストを送信する。その後、移動制御部２９ｅは、当該リクエストに対応して高負荷サーバから受信したＶＭ情報に含まれる識別子等の情報によって移動元サーバを特定する。【０１４８】
その後、移動制御部２９ｅは、高負荷サーバで動作するＶＭに、自サーバを移動元とするＶＭが存在すると判定した場合（ステップＳ６０３Ｙｅｓ）、ステップＳ６０４を実行する。すなわち、移動制御部２９ｅは、自サーバの負荷情報を取得して、当該ＶＭを受け入れ可能か否か、言い換えると自サーバで動作可能か否かを判定する。【０１４９】
そして、移動制御部２９ｅは、自サーバを移動元とするＶＭを受け入れ可能であると判定した場合（ステップＳ６０４Ｙｅｓ）、高負荷サーバに対して当該ＶＭのマイグレーション指示を送信し（ステップＳ６０５）、その後、マイグレーションされたＶＭを自サーバで動作させる（ステップＳ６０６）。そして、移動制御部２９ｅは、マイグレーションしたＶＭ以外のＶＭについて、自サーバを移動元とするＶＭが高負荷サーバに存在しないと判定した場合（ステップＳ６０７Ｙｅｓ）、処理を終了する。一方、マイグレーションしたＶＭ以外のＶＭについて、自サーバを移動元とするＶＭが高負荷サーバに存在すると判定した場合（ステップＳ６０７Ｎｏ）、ステップＳ６０３以降の処理を実行する。【０１５０】
また、ステップＳ６０４において、移動制御部２９ｅは、自サーバを移動元とするＶＭを受け入れ可能でないと判定した場合（ステップＳ６０４Ｎｏ）、他のサーバに対して、当該ＶＭのマイグレーションを実施する指示を送信する（ステップＳ６０８）。また、ステップＳ６０３において、移動制御部２９ｅは、高負荷サーバで動作するＶＭに、自サーバを移動元とするＶＭが存在しないと判定した場合（ステップＳ６０３Ｎｏ）、処理を終了する。【０１５１】
［実施例４による効果］
実施例４によれば、各サーバは、ＶＭをマイグレーションした他のサーバの処理負荷が所定値以上になった場合には、ＶＭを自サーバに再度マイグレーションさせる要求を他のサーバに送信する。この結果、ＶＭをマイグレーションさせたことによって、移動先サーバが高負荷となり、冷却効率も低下した場合であっても、移動元サーバにＶＭを再度マイグレーションさせることができる。したがって、ＶＭのマイグレーション後でも、冷却効率を向上させるように、データセンタ内各サーバにＶＭを分散させることができる。
【実施例５】
【０１５２】
ところで、実施例１〜３では、各サーバに対応して設置された吹出口からの風量によって、ＶＭの移動先候補としての優先順位を決定する例について説明したが、これに限定されるものではない。例えば、吹出口から吹き出す冷却風の風向、サーバが主に吸気する冷却風の風量等に基づいて、各サーバをグループ分けした上で優先順位を決定することもできる。【０１５３】
そこで、実施例５では、各サーバをグループ分けした上で優先順位を決定する例について説明する。なお、実施例５では、全体構成、処理の流れ、実施例５による効果を順に説明する。【０１５４】
［全体構成］
図１５は、実施例５に係るサーバのグループ分けを説明する図である。図１５に示すように、データセンタ１は、空調機２と、排気口３と、吹出口４ａ〜４ｄと、サーバ２０と、サーバ４０と、サーバ６０と、サーバ８０とを有する。【０１５５】
空調機２は、実施例１と同様の機能を有する。吹出口４ａ〜４ｄは、実施例１とは配置が異なるものが有っても良く、実施例１で説明した各吹出口と同様の機能を有する。また、吹出口４ａ〜４ｄに設置される風量センサ７ａ〜７ｄと、無線センサ１０ａ〜１０ｄについても、実施例１とは配置が異なるものが有っても良く、実施例１と同様の機能を有する。【０１５６】
サーバ２０は、対応して設置された吹出口４ａから冷却風を主に吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。同様に、サーバ４０は、対応して設置された吹出口４ｂから冷却風を主に吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。サーバ６０は、自装置の下に対応して設置された吹出口４ｃから冷却風を主に吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。サーバ８０は、対応して設置された吹出口４ｄから冷却風を主に吸気して、内蔵される電子機器を冷却し、温まった空気を排気する情報処理装置である。【０１５７】
このような状況において、サーバ２０は、吹出口から吹き出す冷却風の風向、吹出口の位置、冷却風を吸気するサーバの吸気口および温風を排気する排気口の位置と無線センサとの位置関係などに基づいて、データセンタ１内にある各サーバを所定のグループに分類する。具体的には、吹出口からの冷却風を主に吸気するサーバか、または、他サーバからの排気も吸気するサーバかに基づき、各サーバをグループ分けする。そして、吹き出し口からの冷却風を主に吸気するサーバをグループ１、他サーバからの排気も吸気するサーバをグループ２に分類し、グループ１をグループ２よりも優先するように、優先度を付加する。その後は、実施例１と同様、サーバ２０は、付加した優先度に基づいて、ＶＭを移動できるサーバを特定し、特定したサーバに移動対象のＶＭをマイグレーションさせる。【０１５８】
［サーバの構成］
次に、図１５に示したサーバ２０、サーバ４０、サーバ６０、サーバ８０の構成について説明する。図１６は、実施例５に係るサーバの構成を示すブロック図である。なお、サーバ２０、サーバ４０、サーバ６０、サーバ８０は、同様の構成を有するので、ここではサーバ２０について説明する。【０１５９】
図１６に示すように、サーバ２０は、無線Ｉ／Ｆ部２１と、クロスバスイッチ２２と、ＣＰＵボード２３〜２５と、ＩＯボード２６〜２８と、サービスプロセッサ２９とを有する。また、ＣＰＵボード２３とＩＯボード２６とでパーティション１を形成し、ＣＰＵボード２４、２５とＩＯボード２７、２８とでパーティション２を形成する。なお、ここで図示したＣＰＵボード、ＩＯボードの数、パーティションの構成、パーティション数などは、あくまで例示であり、これに限定されるものではない。【０１６０】
ここで、無線Ｉ／Ｆ部２１、クロスバスイッチ２２、ＣＰＵボード２３〜２５、及び、ＩＯボード２６〜２８は、実施例１と同様の機能を有するので、詳細な説明は省略する。また、サービスプロセッサ２９が有する風量取得部２９ｂと情報取得部２９ｃと移動制御部２９ｅと情報提供部２９ｆとについても、実施例１と同様の機能を有するので、詳細な説明は省略する。【０１６１】
ここでは、実施例１とは異なる機能を有する、センサ特定部３０、位置判定部３１、検出部３２、装置特定部３３、分類部３４、及び、判定部３５について説明する。【０１６２】
センサ特定部３０は、吹出口ごとに設置された無線センサとの間の無線通信を用いて、各無線センサの座標を特定し、特定した各無線センサの座標と自サーバ２０の座標とに基づいて、自サーバ２０を主に冷却する冷却風が吹き出す吹出口を特定する。【０１６３】
例えば、データセンタ設計時に、各サーバの位置座標が予め決定されている場合、センサ特定部３０は、各無線センサから受信するＲＦメッセージから無線センサの位置座標を取得する。そして、センサ特定部３０は、自サーバ２０の位置座標と取得した無線センサの位置座標とを比較することで、自サーバ２０に対応して設置された最も近い無線センサ１０ａを特定する。【０１６４】
同様に、センサ特定部３０は、サーバ４０〜サーバ８０各々から、各サーバの位置座標および各サーバに最も近い無線センサの位置座標を取得する。そして、センサ特定部３０は、各無線センサと対応するサーバとの位置関係を特定することで、各サーバが主に吸気する冷却風が吹き出す吹出口とサーバとの位置関係を特定する。【０１６５】
別の手法としては、位置座標［０．０］に基準となる無線センサを設置し、各無線センサは、当該基準とした無線センサと通信を実行することにより、基準とした無線センサと自身との距離を算出する。さらに、各無線センサは、他の無線センサと通信を実行することで、基準とした無線センサからの座標を算出する。つまり、各無線センサは、基準とした無線センサおよび他の無線センサとの間で通信を実行し、それぞれからの距離を算出することで、自センサの位置座標を予測することができる。したがって、センサ特定部３０は、このようして予測された位置座標を各無線センサから取得し、自サーバの位置座標と比較することで、自サーバに最も近い吹出口を特定できる。【０１６６】
位置判定部３１は、センサ特定部３０が特定した各無線センサの座標に基づいて、各吹出口の位置がサーバの下か否かを判定する。例えば、位置判定部３１は、センサ特定部３０が取得した無線センサ１０ａの座標と自サーバ２０の位置座標とから、無線センサと自サーバとの位置関係を把握し、無線センサ１０ａが設置される吹出口４ａが自サーバ２０の下にあるのかそれともサーバ２０の下以外の前後等の位置にあるのかを特定する。同様に、位置判定部３１は、各サーバから取得した各サーバの位置座標およびセンサ特定部３０が取得した無線センサの位置座標から、各吹出口が各サーバのどこに位置するのかを特定する。そして、位置判定部３１は、検出部３２と装置特定部３３と分類部３４とのそれぞれに、特定した各サーバの位置と各無線センサとの位置関係を出力する。なお、ここで「サーバの下に位置する」とは、例えば２次元座標を用いた場合、特定したサーバの位置を中心として、無線センサのＸ座標とＹ座標の値が、所定の範囲内にあるか否か、横軸（Ｘ座標）が一致かつ縦軸（Ｙ座標）が所定範囲内にあるか否かなどの手法を用いて検出することができる。また、２次元座標に関わらず、３次元座標等を用いてもよい。【０１６７】
図１５の場合、検出部３２は、サーバの下に位置すると判定された吹出口４ｃについては、サーバ６０の下から冷却風が床下から床上の方向へ吹き出すと検出する。また、検出部３２は、位置判定部３１がサーバの下に位置すると判定した吹出口以外の吹出口について、設置された無線センサの座標と対応するサーバの座標とに基づいて、当該吹出口から吹き出す冷却風の方向を検出する。【０１６８】
そして、検出部３２は、サーバの下に位置しないと判定した吹出口については、位置判定部３１が特定した無線センサの位置座標とサーバの位置座標とに基づいて、無線センサがサーバの吸気口側または排気口側に位置するのかを特定する。そして、検出部３２は、吹出口からサーバの吸気口に向かうベクトル座標を冷却風のベクトル座標として算出する。【０１６９】
図１５の場合、検出部３２は、吹出口４ａから吹き出す冷却風の風向を、空調機２からサーバ２０へ向かうベクトル座標として検出する。同様に、検出部３２は、吹出口４ｂから吹き出す冷却風の風向を、空調機２からサーバ４０へ向かうベクトル座標として検出する。検出部３２は、吹出口４ｃから吹き出す冷却風の風向を、床下からサーバ６０へ向かうベクトル座標として検出する。検出部３２は、吹出口４ｄから吹き出す冷却風の方向を、空調機２からサーバ８０へ向かうベクトルとして検出する。そして、検出部３２は、検出した結果を装置特定部３３に出力する。【０１７０】
装置特定部３３は、検出部３２によって検出された各吹出口から吹き出す冷却風の方向と、各サーバの座標とに基づいて、他のサーバの一定の排気を吸気するサーバを特定する。例えば、装置特定部３３は、センサ特定部３０が特定した各サーバの位置座標を比較して、サーバの前後に他サーバが存在するかなど各サーバ間の位置関係を把握する。そして、装置特定部３３は、把握した各サーバ間の位置関係と、検出部３２によって各吹出口ごとに検出された冷却風のベクトル、さらには、各サーバの吸気口および排気口から、他サーバからの一定の排気を吸気するサーバを特定する。装置特定部３３は、特定結果を分類部３４に出力する。【０１７１】
図１５の例の場合、装置特定部３３は、サーバ４０について、吹出口４ｂから吹き出す冷却風とサーバ２０から排気される一定の排気とを吸気しているサーバと特定する。同様に、装置特定部３３は、サーバ２０について、当該サーバから空調機２までの間に他サーバが存在しないので、吹出口４ａから吹き出す冷却風を主に吸気しているサーバと特定する。同様に、装置特定部３３は、サーバ８０について、サーバ６０からの排気は、上向きにしか排気されないので、サーバ６０からの排気はほとんど吸気しない。そのため、吹出し口４ｄから吹き出す冷却風を主に吸気するサーバと特定する。また、装置特定部３３は、サーバ６０について、吹出口４ｃがサーバ６０の下に設置されていることから、吹出口４ｃから吹き出す冷却風を主に吸気しているサーバと特定する。【０１７２】
例えば、分類部３４は、位置判定部３１によって吹出口の位置が情報処理装置の下であると判定されたサーバおよび装置特定部３３が特定したサーバ以外のサーバを第１グループ、装置特定部３３が特定したサーバを第２グループに分類する。図１５の場合、分類部３４は、自サーバに対応して設置された吹出口から吹き出す冷却風を吸気していると特定されたサーバ２０およびサーバ６０をグループ１に分類する。また、分類部３４は、自サーバに対応して設置された吹出口から吹き出す冷却風と他サーバからの排気とを吸気していると特定されたサーバ４０およびサーバ８０をグループ２に分類する。そして、分類部３４は、上記の分類結果を判定部３５に出力する。【０１７３】
判定部３５は、風量取得部２９ｂが取得した風量よりも大きい風量を吸気する他サーバのうち、第１グループに属するサーバ、第２グループに属するサーバの順に、ＶＭが稼動できるサーバか否かを判定する。例えば、判定部３５は、吹出口４ａから吹き出す冷却風の風量よりも大きい風量が吹き出す吹出口に設置された他サーバを特定する。【０１７４】
そして、判定部３５は、特定した他サーバのうち、グループ１に属するサーバについて風量でソートし、風量が大きいサーバから優先度が高くなるように優先度を付加する。同様に、判定部３５は、特定した他サーバのうち、グループ２に属するサーバについて風量でソートし、風量が大きいサーバから優先度が高くなるように優先度を付加する。その後、判定部３５は、グループ１における優先度が最も低いサーバの次に、グループ２における優先度が最も高いサーバの優先度が高くなるように、他サーバ全体の優先度を付加する。そして、判定部３５は、優先度を付加したサーバ情報を移動制御部２９ｅに出力する。【０１７５】
［処理の流れ］
次に、図１７と図１８を用いて、実施例５に係る処理の流れを説明する。図１７は、実施例５に係るグループ分け処理の流れを示すフローチャートであり、図１８は、実施例５に係る移動処理の流れを示すフローチャートである。【０１７６】
（グループ分け処理の流れ）
図１７に示すように、センサ特定部３０は、吹出口ごとに設置された無線センサとの間の無線通信から、各無線センサの位置座標および対応する各サーバの位置座標を特定し、特定した無線センサの位置座標を各吹出口の位置座標とする（ステップＳ７０１）。ここで、センサ特定部３０は、全サーバの数をＮ（自然数）とする。【０１７７】
続いて、検出部３２は、無線センサの位置座標と対応するサーバの位置座標とに基づいて、吹出口からサーバの吸気口に向かうベクトル座標を冷却風のベクトル座標として算出する（ステップＳ７０２）。その後、位置判定部３１は、いずれかのサーバを選択し（ステップＳ７０３）、センサ特定部３０が特定した各無線センサの座標に基づいて、各吹出口の位置がサーバの下か否かを判定する（ステップＳ７０４）。【０１７８】
そして、分類部３４は、位置判定部３１によって吹出口の位置が情報処理装置の下であると判定された場合（ステップＳ７０４Ｙｅｓ）、当該サーバをグループ１に分類し、他にグループ１の分類対象となるサーバがあるか判定する（ステップＳ７０５）。すなわち、分類部３４は、ステップＳ７０４Ｙｅｓ実施後、ＮをＮ−１とし、Ｎが０であるか否かを判定する。【０１７９】
一方、分類部３４は、位置判定部３１によって吹出口の位置が情報処理装置の下でないと判定された場合（ステップＳ７０４Ｎｏ）、他サーバからの一定の排気も吸気するサーバであるか否かを判定する（ステップＳ７１１）。そして、分類部３４は、他サーバからの一定の排気も吸気するサーバであると判定した場合（ステップＳ７１１Ｙｅｓ）、当該サーバをグループ２に分類し（ステップＳ７１２）、他に対象となるサーバがあるか判定する（ステップＳ７０６）。また、分類部３４は、他サーバからの一定の排気も吸気するサーバでないと判定した場合（ステップＳ７１１Ｎｏ）、当該サーバをグループ１に分類し、他にグループ１の分類対象となるサーバがあるか判定する（ステップＳ７０５）。【０１８０】
そして、判定部３５は、分類部３４が全サーバを分類した場合（ステップＳ７０６Ｙｅｓ）、グループ１内において風量のソートを行って優先度を付加し（ステップＳ７０７）、続いて、グループ２内において風量のソートを行って優先度を付加する（ステップＳ７０８）。その後、判定部３５は、グループ１の最後にグループ２が来るように並び替えて、サーバ全体に優先度を付加した後（ステップＳ７０９）、移動処理に遷移させる（ステップＳ７１０）。一方、分類部３４によって未分類のサーバが存在すると判定された場合（ステップＳ７０６Ｎｏ）、次のサーバに対して、ステップＳ７０３以降の処理が実行される。【０１８１】
（移動処理の流れ）
図１８に示すように、判定部３５は、グループ１のうち最も高い優先度が付加されたサーバを移動先候補として選択する（ステップＳ８０１）。続いて、判定部３５は、自サーバで動作するＶＭから移動対象とするＶＭを１つ特定し、当該ＶＭの負荷情報をハイパーバイザから取得する（ステップＳ８０２）。【０１８２】
そして、判定部３５は、情報取得部２９ｃが取得した移動先候補の負荷情報から許容できる負荷を算出する（ステップＳ８０３）。その後、判定部３５は、許容できる負荷が移動対象ＶＭの負荷よりも大きい場合には（ステップＳ８０４Ｙｅｓ）、当該移動先候補を移動先サーバに決定する（ステップＳ８０５）。そして、移動制御部２９ｅは、判定部３５によって決定された移動先サーバに、当該ＶＭを移動させる指示をハイパーバイザに出力した結果、ハイパーバイザによってＶＭのマイグレーションが実行される（ステップＳ８０６）。【０１８３】
一方、判定部３５は、許容できる負荷が移動対象ＶＭの負荷よりも小さい場合には（ステップＳ８０４Ｎｏ）、当該移動先候補のサーバで当該ＶＭが動作することができないと判定し、グループ１に次に優先度が高いサーバがあるか否かを判定する（ステップＳ８０７）。【０１８４】
そして、判定部３５は、グループ１に次に優先度が高いサーバがあると判定した場合（ステップＳ８０７Ｙｅｓ）、次に優先度の高いサーバを新たな移動先候補として、ステップＳ８０２以降の処理を実行する。一方、判定部３５は、グループ１に次に優先度が高いサーバがないと判定した場合（ステップＳ８０７Ｎｏ）、グループ２を処理対象に設定し、グループ２のうち最も高い優先度が付加されたサーバを移動先候補として選択する（ステップＳ８０８）。その後、グループ２を処理対象として、ステップＳ８０２以降の処理が実行される。なお、図１８の処理は、移動元サーバで動作するＶＭの数だけ実行される。【０１８５】
［具体例］
次に、図１９と図２０を用いて、実施例５で説明したグループ分けおよび優先度付加について具体例を挙げて説明する。図１９は、実施例５に係るグループ分けの具体例を示す図であり、図２０は、検索範囲の例を示す図である。なお、図１９の白丸は吹出口を示し、四角はサーバを示し、二重丸は上向きの冷却風の方向を示し、矢印は横向きの冷却風の方向を示す。図２０の黒丸は検索対象座標を示す。【０１８６】
図１９に示すように、この例では、サーバＳ１〜サーバＳ１２が設置されている。サーバＳ１は、近傍に設置された吹出口から例えば３ｍ３／ｍｉｎの風量を吸気しており、サーバＳ２は、サーバの下に設置された吹出口から例えば６ｍ３／ｍｉｎの風量を吸気している。サーバＳ３は、近傍に設置された吹出口から例えば１２ｍ３／ｍｉｎの風量を吸気しており、サーバＳ４は、近傍に設置された吹出口から例えば１８ｍ３／ｍｉｎの風量を吸気している。【０１８７】
また、サーバＳ５は、近傍に設置された吹出口から例えば３ｍ３／ｍｉｎの風量を吸気しており、サーバＳ６は、近傍に設置された吹出口から例えば６ｍ３／ｍｉｎの風量を吸気している。サーバＳ７は、近傍に設置された吹出口から例えば１２ｍ３／ｍｉｎの風量を吸気しており、サーバＳ８は、サーバの下に設置された吹出口から例えば１８ｍ３／ｍｉｎの風量を吸気している。【０１８８】
また、サーバＳ９は、近傍に設置された吹出口から例えば３ｍ３／ｍｉｎの風量を吸気しており、サーバＳ１０は、近傍に設置された吹出口から例えば１２ｍ３／ｍｉｎの風量を吸気している。サーバＳ１１は、近傍に設置された吹出口から例えば１８ｍ３／ｍｉｎの風量を吸気しており、サーバＳ１２は、近傍に設置された設置された吹出口から例えば６ｍ３／ｍｉｎの風量を吸気している。【０１８９】
このような状態において、各サーバは、無線センサとの通信から取得した位置座標に基づいて、自サーバの所定周囲に他サーバが存在するか否かを検索する。例えば、サーバは、図２０に示した検索位置座標の範囲内で、自サーバに対応する吹出口からの冷却風の方向と冷却風の方向が同じ吹出口に対応する他サーバが存在するか否かを検索する。図２０に示した黒点は検索対象座標であり、サーバは、黒点で示した検索対象位置を検索対象として、他サーバが存在するか否かを検索する。なお、サーバは、黒点で示した検索対象位置から所定範囲を検索対象として、他サーバが存在するか否かを検索するようにしてもよい。【０１９０】
そして、各サーバは、上述した風量の取得、位置座標の特定、サーバおよび吹出口の位置座標の特定等を実施することで、吹出口がサーバの下にあるサーバＳ２およびＳ８をグループ１に分類する。同様に、各サーバは、他サーバの排気の影響を受けないサーバＳ１、Ｓ３、Ｓ４、Ｓ９、Ｓ１０、Ｓ１１、Ｓ１２をグループ１に分類する。また、各サーバは、他サーバの排気の影響を受けるサーバＳ７、Ｓ６、Ｓ５をグループ２に分類する。【０１９１】
さらに、各サーバは、グループ１について、吸気する風量に基づいてサーバＳ４、Ｓ８、Ｓ１１、Ｓ３、Ｓ１０、Ｓ２、Ｓ１２、Ｓ１、Ｓ９の順に優先順位が高くなるように優先度を付加する。また、各サーバは、グループ２について、吸気する風量に基づいてサーバＳ７、Ｓ６、Ｓ５の順に優先順位が高くなるように優先度を付加する。続いて、各サーバは、グループ１をグループ２より優先させることから、全体的な優先度をサーバＳ４、Ｓ８、Ｓ１１、Ｓ３、Ｓ１０、Ｓ２、Ｓ１２、Ｓ１、Ｓ９、Ｓ７、Ｓ６、Ｓ５と決定する。その後、この優先度に基づいて、移動対象のＶＭのマイグレーション処理が実施される。【０１９２】
［実施例５による効果］
実施例５によれば、各サーバは、各無線センサの座標に基づいて、各吹出口の位置が情報処理装置の下か否かを判定する。各サーバは、サーバの下に位置すると判定された吹出口以外の吹出口について、当該吹出口に設置された無線センサの座標と対応するサーバの座標とに基づいて当該吹出口から吹き出す冷却風の方向を検出する。各サーバは、検出された各吹出口から吹き出す冷却風の方向と、対応する各サーバの座標とに基づいて、他のサーバからの排気を吸気するサーバを特定する。各サーバは、吹出口の位置がサーバの下であると判定されたサーバおよび他のサーバからの排気を吸気すると特定されたサーバ以外のサーバを第１グループに分類する。各サーバは、他のサーバからの排気を吸気すると特定されたサーバを第２グループに分類する。各サーバは、自サーバの風量よりも大きい風量を吸気するサーバのうち、１グループに属するサーバ、第２グループに属するサーバの順に、ＶＭが稼動できるサーバか否かを判定する。【０１９３】
この結果、主に対応する吹出口からの冷却風で冷却されるサーバ群であるグループ１と、他サーバからの排気も吸い込んで冷却するサーバ群であるグループ２とに分類し、冷却効率のよりよいグループ１に優先的にＶＭを移動させることができる。
【実施例６】
【０１９４】
さて、これまで実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１９５】
（位置座標の測定）
上述した実施例で説明した無線センサの位置座標の測定手法以外にも、様々な手法で無線センサの位置座標を測定および算出することができる。例えば、ＧＰＳを用いることもでき、無線ノード「ＭＯＴＥ」（登録商標）などの公知の無線モジュールを用いて測定することもできる。【０１９６】
（有線通信）
上述した実施例では、風量センサに接続される無線センサから風量を取得する例や他のサーバから風量センサが測定した風量を取得する例について説明したが、これに限定されるものではない。例えば、風量センサと各サーバとをＬＡＮなどの有線で接続することもでき、この場合、各サーバは、無線センサを介することなく、風量センサから直接風量を取得できる。【０１９７】
（実施例の組み合わせ）
上述した実施例各々で説明した各手法は、任意に組み合わせることができる。つまり、サーバのグループ分けを考慮して、サーバやパーティションを跨るようにＶＭを移動させてもよく、負荷情報を考慮せずに、自サーバより大きい風量を吸気するサーバにＶＭを移動させることもできる。【０１９８】
（負荷情報）
上述した実施例では、移動先サーバのＣＰＵ使用率に基づいてＶＭが動作可能であると判定した場合に、ＶＭをマイグレーションさせる例について説明したが、これに限定されるものではない。例えば、負荷情報を考慮せずに、自サーバより大きい風量を吸気するサーバにＶＭを移動させることもできる。また、負荷情報として、ＣＰＵ使用率だけでなく、メモリ使用量、ディスク使用量、ネットワーク通信量など任意の負荷情報を用いることができ、さらには、これらを組み合わせて移動対象のＶＭが稼動可能かどうかの判定に用いることもできる。【０１９９】
また、各サーバのＣＰＵの性能が異なる場合などは、性能の違いを考慮して、移動先候補サーバの許容できるＣＰＵ使用率が移動対象のＶＭの使用率より大きいか否かを判定することもできる。例えば、移動先候補のサーバのＣＰＵのクロック周波数が、移動元サーバのＣＰＵの２倍だったとする。この場合、移動元サーバは、「移動先候補サーバの許容できるＣＰＵ使用率＞ＶＭの使用率／２」などと判定することもできる。なお、クロック周波数に限らず、ＣＰＵに含まれるプロセッサコア数などを考慮してもよい。【０２００】
（システム構成）
また、実施例において上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、上述した実施例では、ハイパーバイザを用いてＶＭを動作させる例について説明したが、これに限定されるものではなく、ホストＯＳ上で仮想化ソフトを実行し、仮想化ソフトでＶＭを動作させる場合など、様々な手法を用いることができる。【０２０１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば風量取得部２９ｂと情報取得部２９ｃとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０２０２】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをサーバやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。【０２０３】
図２１は、移動制御プログラムを実行するコンピュータシステムの例を示す図である。図２１に示すように、コンピュータシステム１００は、クロスバスイッチ１０１、ＣＰＵボード１０２、ＩＯボード１０３、ＲＯＭ１０４、サービスプロセッサ１０５を有する。ここで、ＲＯＭ１０４には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図２１に示すように、ＲＯＭ１０４には、センサ特定プログラム１０４ａ、風量取得プログラム１０４ｂ、情報取得プログラム１０４ｃが記憶される。さらに、ＲＯＭ１０４には、判定プログラム１０４ｄ、移動制御プログラム１０４ｅがあらかじめ記憶されている。【０２０４】
そして、図２１に示すように、サービスプロセッサには、これらのプログラム１０４ａ〜１０４ｅを読み出し、各プロセスとして実行する。つまり、プログラム１０４ａ〜１０４ｅ各々は、センサ特定プロセス１０５ａ、風量取得プロセス１０５ｂ、情報取得プロセス１０５ｃ、判定プロセス１０５ｄ、移動制御プロセス１０５ｅとして実行される。【０２０５】
なお、センサ特定プロセス１０５ａの実行には、図４に示したセンサ特定部２９ａが特定するセンサ情報が用いられ、同様に、風量取得プロセス１０５ｂの実行には、風量取得部２９ｂが取得する風量情報が用いられる。また、情報取得プロセス１０５ｃの実行には、図４に示した情報取得部２９ｃが取得する情報が用いられ、判定プロセス１０５ｄの実行には、判定部２９ｄが用いられる。また、移動制御プロセス１０５ｅの実行には、移動制御部２９ｅが用いられる。【０２０６】
ところで、上記したプログラム１０４ａ〜１０４ｅは、必ずしもＲＯＭ１０４に記憶させておく必要はない。例えば、プログラム１０４ａ〜１０４ｅは、コンピュータシステム１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム１００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム１００に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム１００がこれらからプログラムを読み出して実行するようにしてもよい。【０２０７】
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、コンピュータシステム１００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム１００によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０２０８】
１  データセンタ
１ａ  排気風
１ｂ  冷却風
２  空調機
３  排気口
４ａ〜４ｄ  吸気口
７ａ〜７ｄ  風量センサ
１０ａ〜１０ｄ  無線センサ
１１ａ  制御Ｉ／Ｆ部
１２ａ  無線Ｉ／Ｆ部
１３ａ  ＲＡＭ
１４ａ  ＲＯＭ
１５ａ  メモリ管理ユニット
１６ａ  制御部
２０、４０、６０、８０  サーバ
２１  無線Ｉ／Ｆ部
２２  クロスバスイッチ
２３〜２５  ＣＰＵボード
２３ａ  メモリ
２３ｂ  不揮発性ＲＡＭ
２３ｃ  ハイパーバイザ
２３ｄ  メモリ制御部
２３ｅ  ＣＰＵ
２６〜２８  ＩＯボード
２６ａ  ディスク
２６ｂ  ＳＡＳコントローラ
２６ｃ  ネットワークコントローラ
２６ｄ  ＩＯ制御部
２９  サービスプロセッサ
２９ａ、３０  センサ特定部
２９ｂ  風量取得部
２９ｃ  情報取得部
２９ｄ、３５  判定部
２９ｅ  移動制御部
２９ｆ  情報提供部
３１  位置判定部
３２  検出部
３３  装置特定部
３４  分類部
【図１】
2012053115.tif 000006
【図２】
2012053115.tif 000007
【図３Ａ】
2012053115.tif 000008
【図３Ｂ】
2012053115.tif 000009
【図４】
2012053115.tif 000010
【図５】
2012053115.tif 000011
【図６】
2012053115.tif 000012
【図７】
2012053115.tif 000013
【図８】
2012053115.tif 000014
【図９】
2012053115.tif 000015
【図１０】
2012053115.tif 000016
【図１１】
2012053115.tif 000017
【図１２】
2012053115.tif 000018
【図１３】
2012053115.tif 000019
【図１４】
2012053115.tif 000020
【図１５】
2012053115.tif 000021
【図１６】
2012053115.tif 000022
【図１７】
2012053115.tif 000023
【図１８】
2012053115.tif 000024
【図１９】
2012053115.tif 000025
【図２０】
2012053115.tif 000026
【図２１】
2012053115.tif 000027
【図２２】
2012053115.tif 000028
【図２３】
2012053115.tif 000029
【国際調査報告】
2012053115.tif 000030
2012053115.tif 000031
2012053115.tif 000032
2012053115.tif 000033