(57)【要約】      （修正有）【課題】アイドル状態である仮想マシンを特定する。【解決手段】情報処理装置において動作する仮想マシンを管理する管理サーバ１において、処理を実行しない第１の仮想マシンを情報処理装置に配備することを要求する配備要求を情報処理装置に送信し、第１の仮想マシンの動作に関する情報及び情報処理装置において動作する、第１の仮想マシン以外の仮想マシンの動作に関する情報を、情報処理装置から取得し、取得された第１の仮想マシンの動作に関する情報と第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する。【選択図】図２
2014191368.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置において動作する仮想マシンを管理する管理装置に実行させるためのプログラムであって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信し、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、
取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する
処理を前記管理装置に実行させるための管理プログラム。
【請求項２】
前記情報処理装置の数が複数であり、
前記配備要求を前記情報処理装置に送信する処理において、
複数の情報処理装置の中に属性が同じである複数の情報処理装置がある場合に、当該属性が同じである複数の情報処理装置のうちいずれかの情報処理装置に、前記配備要求を送信する
ことを特徴とする請求項１記載の管理プログラム。
【請求項３】
前記処理を実行していない仮想マシンを特定する処理において、
前記第１の仮想マシンの動作に関する情報から、アイドル状態か否かを判定するための閾値を算出し、
前記第１の仮想マシン以外の仮想マシンの動作に関する情報に含まれる数値が、算出された前記閾値を超えているか否かを判定することにより、前記処理を実行していない仮想マシンを特定する
ことを特徴とする請求項１又は２記載の管理プログラム。
【請求項４】
前記情報処理装置において動作する仮想マシンが実行するオペレーティングシステムの種別の数が複数であり、
前記配備要求を前記情報処理装置に送信する処理において、
複数のオペレーティングシステムの各々について前記第１の仮想マシンを配備することを要求する配備要求を前記情報処理装置に送信する
ことを特徴とする請求項１記載の管理プログラム。
【請求項５】
情報処理装置において動作する仮想マシンを管理する管理装置により実行される管理方法であって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信し、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、
取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する
処理を前記管理装置が実行する管理方法。
【請求項６】
情報処理装置において動作する仮想マシンを管理する管理装置であって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信する第１処理部と、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する第２処理部と、
を有する管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの管理技術に関する。
【背景技術】
【０００２】
データセンタに構築されるクラウドシステムにおいては、物理サーバが処理を実行することによって電力が消費される。物理サーバにおいて動作する仮想マシンは常に処理を実行しているわけではなく、処理を実行していない（すなわち、アイドル状態である）仮想マシンもある。物理サーバは、物理サーバにおいて動作する仮想マシンがアイドル状態であっても電力を消費するため、省エネルギーの観点から、アイドル状態である仮想マシンを可能な限り停止するのが好ましい。
【０００３】
しかし、クラウドシステムにおいては、管理者が仮想マシンに関して取得できる情報は限られている。管理者は、例えば、仮想マシンのＣＰＵ（Central Processing Unit）負荷、メモリ使用率、Ｉ／Ｏ（Input／Output）負荷又はネットワークにおけるデータ転送量等について知ることはできるが、仮想マシンがアイドル状態であるか否かについて知ることはできない。これは、仮想マシンの情報は仮想マシンの利用者の情報であり、管理者が利用者の情報を取得できるのは問題であるためである。
【０００４】
クラウドシステムの消費電力の削減に関して、以下のような技術が知られている。具体的には、複数のブレードサーバが配置されたシステムにおいて、ブレードサーバにおいて動作する仮想マシンの消費電力を測定し、ブレードサーバに設定された最大電力を超えないように仮想マシンを集約（すなわち片寄せ）する。そして、集約によって仮想マシンが起動されなくなったブレードサーバを停止することにより、システムの消費電力を削減する。
【０００５】
しかし、この技術においては、アイドル状態である仮想マシンを特定することは想定されていない。この技術においては、アイドル状態である仮想マシンであっても、アイドル状態ではない仮想マシンと同様にブレードサーバに集約される。そのため、アイドル状態である仮想マシンを停止することはできず、消費電力の削減量が限られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４４８８０７２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、１つの側面では、アイドル状態である仮想マシンを特定するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る管理方法は、情報処理装置において動作する仮想マシンを管理する管理装置により実行される管理方法である。そして、本管理方法は、処理を実行しない第１の仮想マシンを情報処理装置に配備することを要求する配備要求を情報処理装置に送信し、第１の仮想マシンの動作に関する情報及び情報処理装置において動作する、第１の仮想マシン以外の仮想マシンの動作に関する情報を、情報処理装置から取得し、取得された第１の仮想マシンの動作に関する情報と第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する処理を含む。
【発明の効果】
【０００９】
アイドル状態である仮想マシンを特定できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態に係るシステム概要を示す図である。
【図２】図２は、管理サーバの機能ブロック図である。
【図３】図３は、物理サーバの機能ブロック図である。
【図４】図４は、システムの構成の一例を示す図である。
【図５】図５は、制御データ格納部に格納されるデータの一例を示す図である。
【図６】図６は、直近及び過去の期間について説明するための図である。
【図７】図７は、メインの処理フローを示す図である。
【図８】図８は、サーバデータの一例を示す図である。
【図９】図９は、ＶＭデータの一例を示す図である。
【図１０】図１０は、性能データの一例を示す図である。
【図１１】図１１は、集計された性能データの一例を示す図である。
【図１２】図１２は、性能に関する数値と閾値との比較について説明するための図である。
【図１３】図１３は、性能に関する数値と閾値との比較について説明するための図である。
【図１４】図１４は、メインの処理フローを示す図である。
【図１５】図１５は、停止の優先順位を決定する際のルールを示す図である。
【図１６】図１６は、メインの処理フローを示す図である。
【図１７】図１７は、手順のデータの一例を示す図である。
【図１８】図１８は、手順のデータの一例を示す図である。
【図１９】図１９は、手順のデータの一例を示す図である。
【図２０】図２０は、本実施の形態の効果について説明するための図である。
【図２１】図２１は、本実施の形態を適用しない場合におけるアイドルＶＭの検出について説明するための図である。
【図２２】図２２は、本実施の形態を適用する場合におけるアイドルＶＭの検出について説明するための図である。
【図２３】図２３は、ストレージ装置が消費する電力の削減方法について説明するための図である。
【図２４】図２４は、ストレージ装置が消費する電力の削減方法について説明するための図である。
【図２５】図２５は、物理サーバの電力特性を示す図である。
【図２６】図２６は、ＶＭに割り当てるメモリの量と性能との関係について説明するための図である。
【図２７】図２７は、データセンタにおけるＣＰＵ使用率について説明するための図である。
【図２８】図２８は、ネットワークにおけるデータ転送量の時系列変化を示す図である。
【図２９】図２９は、ネットワークにおけるデータ転送量の時系列変化を示す図である。
【図３０】図３０は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１に、本実施の形態に係るシステム概要を示す。本実施の形態における主要な処理を実行する管理サーバ１は、ＬＡＮ（Local Area Network）等のネットワーク３を介して物理サーバＡ乃至Ｃと接続されている。物理サーバＡ乃至Ｃは、例えば、データセンタ等に設置されたブレードサーバである。なお、図１においては物理サーバの数は３であるが、物理サーバの数に限定は無い。
【００１２】
図２に、管理サーバ１の機能ブロック図を示す。図２の例では、管理サーバ１は、制御データ格納部１０１と、前処理部１０２と、収集部１０３と、収集データ格納部１０４と、設定部１０５と、第１特定部１０７、第２特定部１０８及び生成部１０９を含む計画部１０６と、手順データ格納部１１０と、実行部１１１とを含む。
【００１３】
前処理部１０２は、制御データ格納部１０１に格納されているデータを用いて処理を行い、処理結果を収集部１０３に出力する。収集部１０３は、サーバデータ、ＶＭデータ及び性能データを収集し、収集データ格納部１０４に格納する。設定部１０５は、収集データ格納部１０４に格納されているデータを用いて、ＶＭの停止順番を求める処理を実行する。第１特定部１０７は、使用電力が目標電力を下回るサーバの組合せを探索する処理を実行し、処理結果を生成部１０９に出力する。第２特定部１０８は、ＶＭの配置の組合せを特定する処理を実行し、処理結果を生成部１０９に出力する。生成部１０９は、第１特定部１０７から受け取ったデータ及び第２特定部１０８から受け取ったデータを用いて、消費電力を削減する手順のデータを生成し、手順データ格納部１１０に格納する。実行部１１１は、手順データ格納部１１０に格納されている手順のデータに従い、消費電力を削減するための処理を実行する。なお、データセンタにおける作業を自動化するためのソフトウェアが開発されているので、そのようなソフトウェアを利用することで実行部１１１を実現することができる。
【００１４】
図３に、物理サーバＡ乃至Ｃの機能ブロック図を示す。図３の例では、物理サーバＡ乃至Ｃは、制御部５０と、業務処理を実行するＶＭ（Virtual Machine）５０１乃至５０３とを含む。制御部５０は、ＶＭを実行するための制御ソフトウェアであるハイパバイザであり、制御部５０によってＶＭ５０１乃至５０３が実現される。なお、ＶＭの数に限定は無い。
【００１５】
以下では、説明をわかりやすくするため、図４に示すような状態において消費電力を削減することを考える。すなわち、物理サーバＡのホスト１上にはＶＭ１乃至４が実現されており、物理サーバＢのホスト２上にはＶＭ５乃至７が実現されており、物理サーバＣのホスト３上にはＶＭ８乃至１０が実現されている。ホストは、ＶＭを実行するための制御ソフトウェアである（制御ソフト５０である場合もある）。各ＶＭには、各仮想システムのＯＳ（Operating System）が含まれる。各物理サーバの物理メモリの量は３２ＧＢ（ギガバイト）であるとする。図４においてＶＭ名の下に示された数値は、ＣＰＵ使用率と割り当てられたメモリ量とを表す。物理サーバＡの消費電力は２５０Ｗ（ワット）であり、物理サーバＢの消費電力は２５５Ｗであり、物理サーバＣの消費電力は１９０Ｗであるため、合計の消費電力は６９５Ｗである。
【００１６】
図５に、制御データ格納部１０１に格納される制御文のデータの一例を示す。図５の例では、目標電力を指定するデータ（「ＰｏｗｅｒＬｉｍｉｔ＝・・・」の部分）と、物理サーバのホスト名、最大消費電力及び待機電力を指定するデータ（「Ｓｅｒｖｅｒ＝・・・」の部分）と、直近及び過去の期間を指定するデータ（「ＴｉｍｅＲａｎｇｅ＝・・・」の部分）と、性能データが格納されるフォルダを指定するデータ（「ＬｏｇＤｉｒ＝・・・」の部分）と、アイドル状態であるＶＭ（以下、アイドルＶＭと呼ぶ）を検出した際に直ちにそのアイドルＶＭを停止するか否かを指定するデータ（「Ｉｄｌｅｓｔｏｐ＝・・・」の部分）と、ＶＭ名及び業務優先順位を指定するデータ（「ＶＭ＝・・・」の部分）とを含む。
【００１７】
目標電力は、例えば消費電力を２０％カットする場合６９５×（１−０．２）＝５５６Ｗであり、例えば消費電力を５０％カットする場合６９５×（１−０．５）＝３５８Ｗであり、例えば消費電力を８０％カットする場合６９５×（１−０．８）＝１３９Ｗであり、例えば消費電力を１００％カットする場合６９５×１＝６９５Ｗである。
【００１８】
物理サーバのホスト名等は、電力削減の対象になる物理サーバについて指定される。例えば管理サーバ等、消費電力削減の対象にならないサーバについては指定されない。待機電力は、カタログ又は仕様書等に記載されているデータを用いてもよいし、実際に測定してもよい。
【００１９】
直近の期間は、例えば図６に示すように、過去の１時点（図６の例では、９／１０  １３：００）から現在（図６の例では、９／１１  １３：００）までの時間の長さによって指定する。過去の期間は、過去の１時点（（図６の例では、９／４  １３：００））から直近の期間の開始時点（（図６の例では、９／１０  １３：００））までの時間の長さによって指定する。
【００２０】
性能データは、ＣＰＵ使用率、メモリ使用量、ディスク装置等のＩ／Ｏデータ量及びネットワークにおけるデータ転送量等を含むデータであり、指定されたフォルダに格納される。
【００２１】
制御文のデータに、Ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃというデータが含まれる場合には、アイドルＶＭを検出した際にそのＶＭを直ちに停止する。Ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃというデータが含まれない場合には、実際にＶＭの移動をする段階で停止する。
【００２２】
業務優先順位は、ＶＭが実行する業務処理の優先順位を表す。０である場合、たとえＶＭがアイドル状態であっても停止されることはない。例えば、ＶＭ利用者と管理者との間で停止不可の契約を結んでいる場合には業務優先順位は０である。優先順位の値が１以上である場合には、アイドル状態であればＶＭが停止される可能性がある。
【００２３】
次に、図７乃至図２４を用いて、管理サーバ１の動作について説明する。管理サーバ１の制御データ格納部１０１には、管理者による指定を含む制御文のデータが格納されているとする。そして、管理サーバ１に対して管理者から消費電力削減モードの運用開始が指示されたとする。
【００２４】
まず、管理サーバ１の前処理部１０２は、運用開始指示を受け付けると、運用開始を示す通知を、例えばメールによりＶＭ利用者の端末に通知する（図７：ステップＳ１）。
【００２５】
前処理部１０２は、制御データ格納部１０１から、制御文のデータを読み出す（ステップＳ３）。
【００２６】
前処理部１０２は、制御文のデータにおいて指定されている物理サーバに、ＯＳの種別（例えば、Ｗｉｎｄｏｗｓ（登録商標）或いはＬｉｎｕｘ（登録商標）等）毎にアイドルＶＭを配備することを要求する配備要求を送信する（ステップＳ５）。なお、物理サーバには、ＶＭのＯＳであるゲストＯＳが複数種別存在する場合がある。そのような場合には、物理サーバに、ＯＳの種別毎にアイドルＶＭを配備させる。例えば、図３に示した物理サーバにおいて実行するＶＭのＯＳがＯＳ＃１及びＯＳ＃２である場合には、ＯＳがＯＳ＃１であるアイドルＶＭ及びＯＳがＯＳ＃２であるアイドルＶＭを配備させる。
【００２７】
なお、属性（例えば、物理サーバの機種、物理サーバにインストールされたＯＳ又は接続環境等）が同じである複数の物理サーバが配置されている場合、複数の物理サーバの各々にアイドルＶＭを配備すると資源の無駄になる。そのような場合には、複数の物理サーバのうちいずれか１つの物理サーバにアイドルＶＭを配備するようにしてもよい。但し、運用を継続しているうちに複数の物理サーバが異なる属性になる可能性があるため、定期的にアイドルＶＭを配備して確認をする方がよい。
【００２８】
前処理部１０２は、運用終了の条件を満たすか判断する（ステップＳ７）。運用終了の条件とは、例えば、現在の時刻が運用終了の時刻になるという条件である。
【００２９】
運用終了の条件を満たさない場合（ステップＳ７：Ｎｏルート）、前処理部１０２は、制御文のデータを含む、処理の実行要求を収集部１０３に要求する。これに応じ、収集部１０３は、サーバデータ及びＶＭデータを物理サーバＡ乃至Ｃから収集し、収集データ格納部１０４に格納する（ステップＳ９）。なお、収集部１０３は、サーバデータを収集データ格納部１０４におけるサーバテーブルに格納し、ＶＭデータを収集データ格納部１０４におけるＶＭテーブルに格納する。
【００３０】
図８に、サーバデータの一例を示す。図８の例では、ホスト名と、消費電力の最大値と、待機電力と、プロセッサ周波数と、仮想ＣＰＵの数と、メモリ量と、状態を示すデータとを含む。収集部１０３は、ホスト名、消費電力の最大値及び待機電力を、管理サーバ１が管理するデータ格納部（図示せず）或いは物理サーバから取得する。また、収集部１０３は、プロセッサ周波数、仮想ＣＰＵの数及びメモリ量を、例えば、物理サーバにインストールされているサーバ管理用ソフトウェアから取得する。状態を示すデータは、物理サーバが稼動していればｒｕｎであり、稼動していなければｓｔｏｐである。状態を示すデータは、生死監視の技術を用いて取得することができる。生死監視の技術はよく知られているので、ここでは詳細な説明を省略する。
【００３１】
図９に、ＶＭデータの一例を示す。図９の例では、ＶＭ名と、ホスト名と、割り当てられた仮想ＣＰＵの数と、割り当てられたメモリ量と、業務優先順位と、停止優先順位と、アイドル時間と、停止順番とを含む。業務優先順位、停止優先順位、アイドル時間及び停止順番は、ステップＳ９の時点では設定されず、後の処理において設定される。ＶＭ名、ホスト名、割り当てられた仮想ＣＰＵの数及び割り当てられたメモリ量は、物理サーバにおける制御部５０から取得される。
【００３２】
収集部１０３は、サーバテーブルにおける状態を示すデータを走査することにより、稼動中のサーバが無いか判断する（ステップＳ１１）。稼動中のサーバが無い場合（ステップＳ１１：Ｙｅｓルート）、消費電力を削減することはできないので、ステップＳ７の処理に戻る。そして、次の所定時刻になった場合にステップＳ７の処理を実行する。これにより、処理を定期的に行うことができる。
【００３３】
一方、稼動中のサーバが有る場合（ステップＳ１１：Ｎｏルート）、収集部１０３は、性能データを収集し、収集データ格納部１０４に格納する（ステップＳ１２）。
【００３４】
図１０に、性能データの一例を示す。図１０の例では、日時と、ＶＭ名と、ＣＰＵ使用率と、Ｉ／Ｏデータ量と、ネットワークにおけるデータ転送量とを含む。収集部１０３は、定期的に、制御文のデータにおけるＬｏｇＤｉｒで指定されたフォルダにアクセスし、性能データを収集する。
【００３５】
なお、収集部１０３は、収集された性能データを直近及び過去の期間について集計する。図１１に、集計された性能データの一例を示す。図１１の例では、直近及び過去の期間について、平均のＣＰＵ使用率と、平均のＩ／Ｏデータ量と、平均のデータ転送量と、アイドル状態であるか否かを示すデータと、その期間内におけるアイドル時間とを含む。Ｒｕｎはアイドル状態ではないことを表し、Ｉｄｌｅはアイドル状態であることを表す。なお、ステップＳ１２の処理の時点においては、アイドル状態であるか否かを示すデータ及びアイドル時間は格納されていない。
【００３６】
収集部１０３は、ステップＳ５の処理により配備されたアイドルＶＭについて集計された性能データから閾値を算出し（ステップＳ１３）、メインメモリ等の記憶装置に格納する。閾値は、例えば、直近の期間におけるアイドルＶＭの性能に関する数値をそのまま用いる或いは所定の割合をその数値に乗じることにより求める。なお、ステップＳ１３の処理は１回実行すれば十分であり、２回目以降は実行しなくてもよい処理であるため、図７において点線のブロックで示している。
【００３７】
収集部１０３は、ＶＭの性能に関する数値とステップＳ１３において算出された閾値とを比較することにより、現時点においてアイドル状態であるＶＭを特定する（ステップＳ１４）。本実施の形態においては、ＣＰＵ使用率、Ｉ／Ｏデータ量及びネットワークにおけるデータ転送量のいずれもが閾値以下であるＶＭを、アイドルＶＭであると判定することとする。
【００３８】
収集部１０３は、現時点においてアイドル状態であるＶＭが有り且つ「ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃ」が設定されているか判断する（ステップＳ１５）。現時点においてアイドル状態であるＶＭが無い又は「ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃ」が設定されていない場合（ステップＳ１５：Ｎｏルート）、処理は端子Ａを介して図１４のＳ１９に移行する。
【００３９】
一方、現時点においてアイドル状態であるＶＭが有り且つ「ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃ」が設定されている場合（ステップＳ１５：Ｙｅｓルート）、収集部１０３は、アイドルＶＭの停止要求をそのＶＭを実行する物理サーバに送信する。また、収集部１０３は、そのＶＭについて起動ガードの実行を要求する起動ガード要求を物理サーバに要求する（ステップＳ１７）。これに応じ、物理サーバにおける制御部５０は起動ガードを実行する。起動ガードとは、特定のＶＭが実行されないように制御することである。そして処理は端子Ａを介して図１４のＳ１９に移行する。
【００４０】
図１４の説明に移行し、収集部１０３は、過去及び直近について、ＶＭ毎にアイドル時間を算出し、アイドル時間及びアイドル状態であるか否かを示すデータを図１１に示したテーブルに格納する（ステップＳ１９）。例えば、直近においてアイドル時間の比率が９０％以上である場合には直近の期間についてはアイドル状態であると判定し、過去においてアイドル時間の比率が９０％以上である場合には過去の期間についてはアイドル状態であると判定する。
【００４１】
図１２及び図１３を用いて、性能に関する数値と閾値との比較について説明する。図１２に、データ転送量の時系列変化の一例を示す。図１２においては、縦軸がデータ転送量（ＫＢ／ｓ）を表し、横軸が時刻を表す。点線は閾値を表し、閾値の大きさは５ＫＢ／ｓである。図１２の例では、ＶＭ１乃至ＶＭ４のデータ転送量は期間中５ＫＢ／ｓ以下であるため、ＣＰＵ使用率及びＩ／Ｏデータ量も閾値以下である場合にはアイドル状態であると判定される。
【００４２】
図１３に、ＣＰＵ使用率の時系列変化の一例を示す。図１３においては、縦軸がＣＰＵ使用率（％）を表し、横軸が時刻を表す。点線は閾値を表し、閾値の大きさは１０％である。図１３の例では、ＶＭ１及びＶＭ３のＣＰＵ使用率はほぼ全期間において１０％以下であるが、ＶＭ２及びＶＭ４のＣＰＵ使用率は特に後半に１０％を超えることが多い。このような場合には、ＶＭ２及びＶＭ４については、アイドル状態ではないと判定されることになる。
【００４３】
なお、直近及び過去について、アイドル時間の比率が９０％以上である場合にアイドルＶＭであると判定しているのは、一時的な処理（例えばウイルススキャン等）の影響によりアイドルＶＭではないと判定されるのを防ぐためである。
【００４４】
図１４の説明に戻り、設定部１０５は、停止の優先順位、業務の優先順位及びアイドル時間をＶＭテーブルに設定する。また、設定部１０５は、停止の優先順位、業務の優先順位及びアイドル時間に基づきＶＭの停止順番を求め（ステップＳ２１）、ＶＭテーブルに設定する。
【００４５】
停止の優先順位は、例えば図１５に示すルールに従い設定する。すなわち、過去及び直近のいずれもアイドル状態であるというパターン、直近だけがアイドル状態であるというパターン、過去だけがアイドル状態であるというパターン、いずれもアイドル状態ではないというパターンの順に順位を上にする。備考は、各パターンにおけるユーザの特徴を示すデータである。このようなルールのデータは、管理サーバ１におけるデータ格納部（図示せず）に格納されている。
【００４６】
業務の優先順位は、制御データ格納部１０１に格納されているデータを用いて決定する。
【００４７】
本実施の形態においては、設定部１０５は、第１キーを業務優先順位、第２キーを停止優先順位、第３キーをアイドル時間としてＶＭテーブルを降順にソートする。そして、設定部１０５は、先頭行から順に停止順番を割り振る。
【００４８】
図１４の説明に戻り、第１特定部１０７は、現在の電力が、制御データ格納部１０１において指定されている目標電力以下であるか判断する（ステップＳ２３）。現在の電力は、例えば電力センサによって取得した、各物理サーバの消費電力の合計を用いる。現在の電力が目標電力以下である場合（ステップＳ２３：Ｙｅｓルート）、これ以上ＶＭを停止しなくてもよいので、処理は端子Ｂを介して図７のステップＳ７の処理に戻る。そして、次の所定時刻になった場合にステップＳ７の処理を実行する。これにより、処理を定期的に行うことができる。
【００４９】
一方、現在の電力が目標電力より大きい場合（ステップＳ２３：Ｎｏルート）、第１特定部１０７は、使用電力が目標電力を下回るサーバの組合せを探索する（ステップＳ２５）。ステップＳ２５において、第１特定部１０７は、サーバテーブルにおける消費電力の最大値を用いて組合せを探索する。
【００５０】
例えば、サーバテーブルに図８に示したデータが格納されており且つ目標電力が５５６Ｗ（すなわち消費電力を２０％削減）である場合、以下の６つの組合せが検出される。（１）ホスト１及びホスト２（２６２Ｗ＋２６２Ｗ＋１６Ｗ＝５４０Ｗ＜５５６Ｗ）、（２）ホスト１及びホスト３（２６２Ｗ＋１６Ｗ＋２６２Ｗ＝５４０Ｗ＜５５６Ｗ）、（３）ホスト２及びホスト３（１６Ｗ＋２６２Ｗ＋２６２Ｗ＝５４０Ｗ＜５５６Ｗ）、（４）ホスト１（２６２Ｗ＋１６Ｗ＋１６Ｗ＝２９４Ｗ＜５５６Ｗ）、（５）ホスト２（１６Ｗ＋２６２Ｗ＋１６Ｗ＝２９４Ｗ＜５５６Ｗ）、（６）ホスト３（１６Ｗ＋１６Ｗ＋２６２Ｗ＝２９４Ｗ＜５５６Ｗ）。
【００５１】
例えば、サーバテーブルに図８に示したデータが格納されており且つ目標電力が３４８Ｗ（すなわち消費電力を５０％削減）である場合、以下の３つの組合せが検出される。（１）ホスト１（２６２Ｗ＋１６Ｗ＋１６Ｗ＝２９４Ｗ＜３４８Ｗ）、（２）ホスト２（１６Ｗ＋２６２Ｗ＋１６Ｗ＝２９４Ｗ＜３４８Ｗ）、（６）ホスト３（１６Ｗ＋１６Ｗ＋２６２Ｗ＝２９４Ｗ＜３４８Ｗ）。
【００５２】
なお、例えば消費電力を８０％或いは１００％削減するように指定された場合には、該当する組合せは無い。
【００５３】
第１特定部１０７は、サーバの組合せが１つも無いか判断する（ステップＳ２７）。サーバの組合せが１つも無い場合（ステップＳ２７：Ｙｅｓルート）、第１特定部１０７は、生成部１０９に処理の実行を要求する。これに応じ、生成部１０９は、全サーバの電源を落とす手順又は全サーバへの電力供給を断つ手順のデータを生成し（ステップＳ２９）、手順データ格納部１１０に格納する。処理は端子Ｃを介して図１６のステップＳ４３に移行する。このように、サーバの組合せが１つも無い場合には全サーバへの電力供給を断つことで、消費電力を目標電力以下にすることを保証できるようになる。
【００５４】
なお、サーバへの電力供給を断つ方法には、例えば、サーバのメインスイッチを切るという方法、分電盤におけるブレーカーを落とすという方法及びコンセントを抜くという方法等がある。なお、自動で実行することができない処理については、手順を示すデータを表示装置等に出力することにより、管理者等に作業を行わせるようにしてもよい。
【００５５】
図１７に、ステップＳ２９において生成される手順のデータの一例を示す。図１７の例では、ＶＭ１、ＶＭ２及びＶＭ４乃至ＶＭ９を停止する処理と、ホスト１乃至３のサーバの電源をオフにする処理とを示すデータが含まれる。
【００５６】
一方、サーバの組合せが少なくとも１つ有る場合（ステップＳ２７：Ｎｏルート）、第２特定部１０８は、サーバの組合せ毎にＶＭの配置の組合せを探索する（ステップＳ３１）。
【００５７】
例えば消費電力を２０％削減する場合について考える。本実施の形態の例においては、Ｉｄｌｅｓｔｏｐ＝ｄｙｎａｍｉｃが指定されているため、ＶＭ３及びＶＭ１０は既に削除されている。従って、例えば以下のような組合せが存在する。
【００５８】
（１）ホスト１において、ＶＭ１、ＶＭ２、ＶＭ４及びＶＭ８を実行する。メモリ使用量は８ＧＢ×４＝３２ＧＢであり、物理メモリ量３２ＧＢより少ない。ホスト２においては、ＶＭ５、ＶＭ６、ＶＭ７及びＶＭ９を実行する。メモリ使用量は８ＧＢ×２＋４ＧＢ×２＝２４ＧＢであり、物理メモリ量３２ＧＢより少ない。ＶＭの移動回数は２回であり、移動するデータの量は８ＧＢ（ＶＭ８）＋４ＧＢ（ＶＭ９）＝１２ＧＢである。
【００５９】
（２）ホスト１において、ＶＭ１、ＶＭ２、ＶＭ４及びＶＭ９を実行する。メモリ使用量は８ＧＢ×３＋４ＧＢ＝２８ＧＢであり、物理メモリ量３２ＧＢより少ない。ホスト２においては、ＶＭ５、ＶＭ６、ＶＭ７及びＶＭ８を実行する。メモリ使用量は８ＧＢ×３＋４ＧＢ＝２８ＧＢであり、物理メモリ量３２ＧＢより少ない。ＶＭの移動回数は２回であり、移動するデータの量は８ＧＢ（ＶＭ８）＋４ＧＢ（ＶＭ９）＝１２ＧＢである。
【００６０】
（３）ホスト１において、ＶＭ１、ＶＭ２、ＶＭ４及びＶＭ５を実行する。メモリ使用量は８ＧＢ×４＝３２ＧＢであり、物理メモリ量３２ＧＢより少ない。ホスト２においては、ＶＭ６、ＶＭ７、ＶＭ８及びＶＭ９を実行する。メモリ使用量は８ＧＢ×２＋４ＧＢ×２＝２４ＧＢであり、物理メモリ量３２ＧＢより少ない。ＶＭの移動回数は３回であり、移動するデータの量は８ＧＢ（ＶＭ５）＋８ＧＢ（ＶＭ８）＋４ＧＢ（ＶＭ９）＝２０ＧＢである。
【００６１】
また、消費電力を５０％削減する場合について考える。この場合には物理サーバを１台しか使用することができないため、物理メモリ量の制約から、全てのＶＭを配備することはできない。例えば、稼動させる物理サーバにＶＭ１、ＶＭ２、ＶＭ６及びＶＭ７を起動するという組合せが考えられる。この際、停止するＶＭはＶＭ４、ＶＭ５、ＶＭ８及びＶＭ９である。
【００６２】
図１４の説明に戻り、第２特定部１０８は、ＶＭの配置の組合せが１つも無いか判断する（ステップＳ３３）。ステップＳ３３においては、停止せざるを得ないＶＭが１つでも存在すれば、ＶＭの配置の組合せが無いと判断する。ＶＭの配置の組合せが少なくとも１つ有る場合（ステップＳ３３：Ｎｏルート）、処理は端子Ｄを介して図１６のステップＳ３９に移行する。
【００６３】
一方、ＶＭの配置の組合せが１つも無い場合（ステップＳ３３：Ｙｅｓルート）、第２特定部１０８は、ＶＭテーブルに設定されている停止順番に従い、停止するＶＭを特定する（ステップＳ３５）。ステップＳ３５においては、１又は複数の停止するＶＭを特定することにより、残りのＶＭをいずれかの物理サーバに配置できるようにする。
【００６４】
第２特定部１０８は、ステップＳ３５において特定されたＶＭ以外のＶＭについて、配置の組合せを特定する（ステップＳ３７）。そして処理は端子Ｄを介して図１６のステップＳ３９に移行する。
【００６５】
図１６の説明に移行し、第２特定部１０８は、ステップＳ３７において特定された組合せの中から、最適なＶＭの配置を特定する（ステップＳ３９）。ここで、最適な配置とは、ＶＭの移動回数が最も少なく且つ移動するデータの量が最も少ない配置である。第２特定部１０８は、特定された配置を示すデータを生成部１０９に出力する。
【００６６】
生成部１０９は、特定された配置を実現するための手順のデータを生成し（ステップＳ４１）、手順データ格納部１１０に格納する。
【００６７】
図１８及び図１９に、ステップＳ４１において生成される手順のデータの一例を示す。図１８の例では、ＶＭ１０を停止する処理と、ＶＭ８及び９を移動する処理と、ホスト３のサーバの電源をオフにする処理とを示すデータが含まれる。また、図１９の例では、ＶＭ４、ＶＭ５、ＶＭ８及びＶＭ９を停止する処理と、ＶＭ６及びＶＭ７を移動する処理と、ホスト２及び３のサーバの電源をオフにする処理とを示すデータが含まれる。
【００６８】
実行部１１１は、手順データ格納部１１０から読み出した手順のデータに従い、消費電力を目標電力以下にするための手順を実行する（ステップＳ４３）。
【００６９】
図７の説明に戻り、ステップＳ７において運用終了の条件を満たすと判断された場合（ステップＳ７：Ｙｅｓルート）、前処理部１０２は、起動ガードが実行されているＶＭについて起動ガードの解除を要求する起動ガード解除要求を物理サーバに要求する（ステップＳ４５）。これに応じ、起動ガード解除要求を受信した物理サーバにおける制御部５０は、起動ガードが実行されているＶＭについて起動ガードを解除する。
【００７０】
前処理部１０２は、通常どおりの運用を再開するための処理（例えば、負荷分散機構の有効化等）を実行する（ステップＳ４７）。また、前処理部１０２は、運用終了を示す通知をＶＭの利用者の端末に送信する（ステップＳ４９）。そして処理を終了する。
【００７１】
以上のような処理を実行すれば、実際にアイドル状態であるＶＭから得られた性能データに基づき閾値を生成することができるので、アイドル状態であるＶＭを高精度で特定できるようになる。また、そのときの動作環境に合った閾値が自動で設定されれば、管理者が閾値を設定する作業を行わなくてもよいので、作業コストを削減することができるようになる。
【００７２】
また、過去及び直近の利用状況に応じて停止順番を決めるので、ユーザ間で公平であり、ユーザにとって納得がいく運用を行うことができるようになる。
【００７３】
また、指定された目標電力を超えないように制御できるので、電力消費のピークカットを行えるようになる。
【００７４】
図４に示すような状態のシステムに対して、目標電力を５５６Ｗとして本実施の形態を適用した場合、例えば図２０に示すような状態のシステムになる。図２０の例では、物理サーバＡにおいて実行されていたアイドルＶＭ３は停止し、物理サーバＣにおいて実行されていたアイドルＶＭ１０は停止している。また、物理サーバＣにおいて実行されていたＶＭ８は物理サーバＡに移動し、物理サーバＣにおいて実行されていたＶＭ９は物理サーバＢに移動している。これにより、物理サーバＣにおいて実行されるＶＭが無くなり、物理サーバＣの電源をオフにしたので、物理サーバＣが消費する電力は待機電力である１６Ｗになっている。そして、合計の消費電力は、２５５Ｗ＋２６０Ｗ＋１６Ｗ＝５３１Ｗになり、当初の消費電力である６９５Ｗと比べると２３％の削減になる。
【００７５】
図２１を用いて、本実施の形態を適用しない場合におけるアイドルＶＭの検出について説明する。図２１の例においては、「ＯＳ♯１−ＶＭ♯１」及び「ＯＳ♯２−ＶＭ♯１」が物理サーバＡにおいて実行されており、「ＯＳ♯２−ＶＭ♯２」及び「ＯＳ♯２−ＶＭ♯３」が物理サーバＢにおいて実行されており、「ＯＳ♯１−ＶＭ♯２」及び「ＯＳ♯２−ＶＭ♯４」が物理サーバＣにおいて実行されている。なお、例えば「ＯＳ♯２−ＶＭ♯１」は、「ＯＳの種別が２であり、割り振られた番号が１であるＶＭ」のことである。物理サーバＡはアドレスが「１０．２００．３０．ｘｘｘ」であるネットワークに接続されており、物理サーバＢはアドレスが「１０．２００．３１．ｘｘｘ」であるネットワークに接続されており、物理サーバＣはアドレスが「１０．２００．３２．ｘｘｘ」であるネットワークに接続されている。閾値１８０は、物理サーバＡ乃至Ｃについて一律に設定される閾値である。図２１の例においては、閾値１８０と各ＶＭの性能に関する数値とを比較し、いずれの項目においても数値が閾値を下回る場合にはアイドルＶＭであると判定する。
【００７６】
図２１の例においては、物理サーバＡにおける「ＯＳ♯２−ＶＭ♯１」はアイドルＶＭとして検出される。しかし、「ＯＳ♯２−ＶＭ♯２」についてはアイドルＶＭであるにもかかわらず検出されない。これは、アドレスが「１０．２００．３１．ｘｘｘ」であるネットワークにはハートビート通信を行うサーバが接続されており、「ＯＳ♯２−ＶＭ♯２」のデータ転送量が通常のアイドルＶＭのデータ転送量より高いからである。また、「ＯＳ♯１−ＶＭ♯２」もアイドルＶＭであるにもかかわらず検出されない。これは、ＯＳがＯＳ♯１であるＶＭはアイドル状態であっても５１２ＭＢ（メガバイト）程度のメモリを使用するにもかかわらず、閾値１８０においてはその事情が反映されていないからである。さらに、ＯＳ♯２−ＶＭ♯４は稼働中であるにもかかわらずアイドルＶＭとして検出される。これは、物理サーバＣのＣＰＵの能力は物理サーバＡ及び物理サーバＢと比較して２倍の能力であり、物理サーバＡ及び物理サーバＢと同じ仕事をしたとしてもＣＰＵ使用率が閾値を超えないので、アイドル状態であると判定されるからである。
【００７７】
このように、本実施の形態を適用しない場合には、アイドルＶＭであるにもかかわらず検出することができないだけでなく、稼働中のＶＭを誤ってアイドルＶＭとして検出することがある。
【００７８】
図２２を用いて、本実施の形態を適用する場合におけるアイドルＶＭの検出について説明する。図２２の例は、各物理サーバにＯＳの種別毎にアイドルＶＭを故意に配備した点が異なる。図２２の例においては、「ＯＳ♯１−Ｉｄｌｅ♯１」及び「ＯＳ♯２−Ｉｄｌｅ♯１」が物理サーバＡにおいて実行されており、「ＯＳ♯１−Ｉｄｌｅ♯２」及び「ＯＳ♯２−Ｉｄｌｅ♯２」が物理サーバＢにおいて実行されており、「ＯＳ♯１−Ｉｄｌｅ♯３」及び「ＯＳ♯２−Ｉｄｌｅ♯３」が物理サーバＣにおいて実行されている。なお、例えば「ＯＳ♯２−Ｉｄｌｅ♯１」とは、「ＯＳの種別が２であり、割り振られた番号が１であるアイドルＶＭ」のことである。図２２の例においては、各物理サーバにおいてＯＳの種別毎に算出した閾値を用いてアイドル状態であるか否かが判定される。具体的には、「ＯＳ♯１−ＶＭ♯１」の性能に関する数値は「ＯＳ♯１−Ｉｄｌｅ♯１」の性能に関する数値を用いて算出された閾値と比較され、「ＯＳ♯２−ＶＭ♯１」の性能に関する数値は「ＯＳ♯２−Ｉｄｌｅ♯１」の性能に関する数値を用いて算出された閾値と比較され、「ＯＳ♯２−ＶＭ♯２」の性能に関する数値は「ＯＳ♯２−Ｉｄｌｅ♯２」の性能に関する数値を用いて算出された閾値と比較され、「ＯＳ♯２−ＶＭ♯３」の性能に関する数値は「ＯＳ♯２−Ｉｄｌｅ♯２」の性能に関する数値を用いて算出された閾値と比較され、「ＯＳ♯１−ＶＭ♯２」の性能に関する数値は「ＯＳ♯１−Ｉｄｌｅ♯３」の性能に関する数値を用いて算出された閾値と比較され、「ＯＳ♯２−ＶＭ♯４」の性能に関する数値は「ＯＳ♯２−Ｉｄｌｅ♯３」の性能に関する数値を用いて算出された閾値と比較される。
【００７９】
図２２の例においては、「ＯＳ♯２−ＶＭ♯１」がアイドルＶＭとして検出されるだけでなく、「ＯＳ♯２−ＶＭ♯２」及び「ＯＳ♯１−ＶＭ♯２」もアイドルＶＭとして検出される。これは、「ＯＳ♯２−Ｉｄｌｅ♯２」が物理サーバＢに配置されているため、データ転送量の閾値が図２１の例と比較して高く設定されているからである。また、「ＯＳ♯１−Ｉｄｌｅ♯３」の性能に関する数値をもとにメモリ使用量の閾値を算出したため、メモリ使用量の閾値が図２１の例と比較して高く設定されているからである。
【００８０】
また、稼動中である「ＯＳ♯２−ＶＭ♯４」は、図２１の例においては誤検出されていたが、図２２の例においては誤検出されず、稼動中であると判定される。これは、「ＯＳ♯２−Ｉｄｌｅ♯３」が物理サーバＣに配置されているため、ＣＰＵ使用率の閾値が図２１の例と比較して低く設定されているからである。
【００８１】
このように、本実施の形態を適用すれば、アイドルＶＭを高精度で検出できるようになる。
【００８２】
また、本実施の形態の考え方を応用することで、ストレージ装置が消費する電力を削減することができるようになる。これについては、図２３及び図２４を用いて説明する。
【００８３】
図２３に、物理サーバとストレージ装置とを含むシステムの構成を示す。図２３の上段は本実施の形態の処理を実行する前の物理サーバの状態を表し、中段は実施の形態の処理を実行した後の物理サーバの状態を表し、下段は物理サーバに接続されるストレージ装置を表す。ストレージ装置のうち運用ストレージは、ＬＵＮ（Logical Unit Number）♯０とＬＵＮ♯１とＬＵＮ♯２とを含み、ストレージ装置のうち保管ストレージは、ＬＵＮ♯ＡとＬＵＮ♯Ｂとを含む。保管ストレージは、運用ストレージよりも安価であるが低速である。図２３の例においては、アイドルＶＭであるＶＭ３及び６を停止し、ＶＭ７及び８を移動することにより、ホスト３についての物理サーバの電源を落としている。これにより、物理サーバ全体として消費電力を２０％削減している。図２３においては、１ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループにＬＵＮを１つ割り当てている。
【００８４】
図２４に、運用ストレージ及び保管ストレージに格納されるＶＭのファイルを示す。図２４の上段は処理前の状態を示しており、図２４の下段は処理後の状態を示している。まず、停止したＶＭ３及６のファイルを保管用ストレージのうちＬＵＮ♯Ａに移動する。これにより、運用ストレージであるＬＵＮ♯０及びＬＵＮ♯１の空き容量を増加させることができる。次に、ＬＵＮ♯２におけるＶＭ７のファイルをＬＵＮ♯０に移動し、ＬＵＮ♯２におけるＶＭ８のファイルをＬＵＮ♯１に移動する。これにより、ＬＵＮ♯２にはＶＭのファイルが無くなるので、ＭＡＩＤ（Massive Array of Idle Disks）機能により自動でＬＵＮ♯２の電源をオフにすることができる。また、ＬＵＮ♯Ａについても、ＶＭ３及び６のファイルにアクセスがあるまでは、電源をオフにすることができる。なお、図２４におけるＶＭ１乃至ＶＭ８は、ＶＭ本体を構成するファイルであってもよいし、ＶＭからアクセスされるデータ領域であってもよい。
【００８５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理サーバ１及び物理サーバＡ乃至Ｃの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００８６】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００８７】
なお、目標電力（「ＰｏｗｅｒＬｉｍｉｔ＝・・・」）は、カット率で指定（例えば「ＰｏｗｅｒＣｕｔ＝・・・」）してもよい。その場合には、どの期間のピーク電力に対するカット率であるのかを明確にするため、カット率と共にピーク電力を指定するようにしてもよい。
【００８８】
また、ステップＳ１３の処理による閾値の算出が完了した場合には、ステップＳ５の処理によって配備されたアイドルＶＭを停止してもよい。このようにすれば、アイドルＶＭによって無駄に電力及び資源が消費されるのを防ぐことできるようになる。
【００８９】
また、例えば図１９において、ＶＭ４、ＶＭ５、ＶＭ８及びＶＭ９の停止後に、これらのＶＭを電源をオフしない物理サーバに移動する手順を出力しておけば、万一停止されたＶＭを起動する必要が生じたときに迅速に対応（例えば起動）できる。
【００９０】
［付録］
本付録においては、本実施の形態に関連する事項について説明する。
【００９１】
（１）物理サーバの電力特性
物理サーバは、アイドル状態であっても相当の電力を消費することが知られている。図２５に、ＣＰＵ使用率と消費電力との関係の一例を示す。図２５において、横軸はＣＰＵ使用率（％）を表し、縦軸は消費電力（Ｗ）を表す。図２５には、ＣＰＵのＰ−ｓｔａｔｅが「Ｐ０」である場合のデータと、ＣＰＵのＰ−ｓｔａｔｅが「Ｐ６」である場合のデータと、原点を通る点線とが示されている。図２５に示すように、物理サーバは、アイドル状態（すなわち、ＣＰＵ使用率が０％付近）であっても相当の電力を消費しており、消費電力の曲線は、原点を通る直線にはならない。例えば、図２５の例に示した物理サーバを１０台使用してクラウドシステムを構築した場合、１０台の物理サーバのいずれもアイドル状態であったとしても、約１５００Ｗの電力を消費することになる。
【００９２】
また、ＣＰＵのＰ−ｓｔａｔｅを変更したとしても、消費電力を大きく削減できるとは限らない。図２５の例では、ＣＰＵ使用率が２０％以下であるときは消費電力の削減率は数％であり、ＣＰＵ使用率が８０％以上であっても消費電力の削減率は約１０％程度である。
【００９３】
なお、制御文において指定する最大消費電力として、図２５に示したグラフから求めた、最大負荷における消費電力を用いることができる。
【００９４】
（２）ＶＭに割り当てるメモリの量
物理サーバにおいて動作するＶＭの数を徐々に増加させると、特定のタイミングにおいて急激に性能が劣化する。これについては、特定の物理サーバについての実測のデータから生成された、図２６のグラフを用いて説明する。図２６において、横軸はＶＭに割り当てるメモリの量を表し、縦軸はコンパイル実行時間の比を表す。コンパイル実行時間の比とは、測定用のＶＭだけを配置した環境におけるコンパイル実行時間（ここでは５３６秒）との比のことであり、値が大きいほど性能が劣化することを表す。物理サーバが備える物理メモリの量は３２ＧＢである。図２６に示すように、ＶＭに割り当てるメモリの量が３２ＧＢ以下である場合には性能はほとんど変わらない。しかしながら、ＶＭに割り当てるメモリの量が３２ＧＢを超えると、コンパイル実行時間の比は急激に大きくなる。これは、メモリオーバーコミットが起きているためである。
【００９５】
（３）データセンタにおけるＣＰＵ使用率
データセンタにおいては、アイドルＶＭが多数存在し、ＶＭが効率的に利用されていないことが指摘されている。これについては、特定のデータセンタにおける実測のデータから生成された、図２７のグラフを用いて説明する。図２７において、横軸はＶＭのＣＰＵ使用率（％）を表し、左の縦軸はＶＭ数を表し、右の縦軸はＶＭ数の累計（％）を表す。図２７が示すように、このデータセンタにおいてはＣＰＵ使用率が１０％以下であるＶＭが約半数を占め、ＣＰＵ使用率が５０％以下であるＶＭが約８割を占める。ＣＰＵ使用率が低いＶＭの中からアイドルＶＭを検出し、アイドルＶＭを停止すれば、データセンタによる電力の消費を大幅に減らすことができるようになる。また、アイドルＶＭが使用する資源を他の用途に使用することができるので、資源を効率的に使用することができるようになる。
【００９６】
（４）ネットワークにおけるデータ転送量
図２８に、ＯＳがＯＳ♯１であるＶＭ１乃至４のデータ転送量を示す。ＶＭ１乃至４は、ネットワークアドレスが異なっており、その他の条件は同じである。ＶＭ１乃至４はアイドルＶＭである。図２８に示すように、ＶＭ２以外のＶＭのデータ転送量は概ね１ＫＢ／ｓであるが、ＶＭ２だけがデータ転送量が約４ＫＢ／ｓである。
【００９７】
図２９に、ＯＳがＯＳ♯１であるＶＭ５乃至８のデータ転送量を示す。ＶＭ５乃至８は、ネットワークアドレスが異なっており、その他の条件は同じである。ＶＭ５乃至８はアイドルＶＭである。図２９に示すように、ＶＭ８以外のＶＭのデータ転送量は概ね０ＫＢ／ｓであるが、ＶＭ８だけがデータ転送量が約３ＫＢ／ｓである。
【００９８】
このように、配置されるネットワークが異なるとデータ転送量が異なる原因の１つに、ハートビート通信がある。ハートビート通信は、コンピュータが正常に動作していることを周りに知らせるために行う通信である。ハートビート通信を行うコンピュータが存在するネットワークに配置されたＶＭは、ハートビート通信のブロードキャストパケットを受け取るため、ＶＭが配置されたネットワークにおけるデータ転送量が多くなると考えられる。従って、データ転送量の閾値を本実施の形態のような方法を用いて適切に設定しなければ、アイドルＶＭを検出することはできない。
【００９９】
なお、上で述べた管理サーバ１は、コンピュータ装置であって、図３０に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１００】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１０１】
本実施の形態に係る管理方法は、情報処理装置において動作する仮想マシンを管理する管理装置により実行される管理方法である。そして、本管理方法は、（Ａ）処理を実行しない第１の仮想マシンを情報処理装置に配備することを要求する配備要求を情報処理装置に送信し、（Ｂ）第１の仮想マシンの動作に関する情報及び情報処理装置において動作する、第１の仮想マシン以外の仮想マシンの動作に関する情報を、情報処理装置から取得し、（Ｃ）取得された第１の仮想マシンの動作に関する情報と第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する処理を含む。
【０１０２】
このようにすれば、実際にアイドル状態である仮想マシンの動作に関する情報を利用できるので、アイドル状態である仮想マシンを高精度で特定できるようになる。
【０１０３】
また、上で述べた情報処理装置の数が複数であってもよい。そして、上で述べた配備要求を情報処理装置に送信する処理において、（ａ１）複数の情報処理装置の中に属性が同じである複数の情報処理装置がある場合に、当該属性が同じである複数の情報処理装置のうちいずれかの情報処理装置に、配備要求を送信する処理を含む。属性（例えば、情報処理装置の機種、情報処理装置にインストールされたＯＳ又は接続環境等）が同じである複数の情報処理装置から取得された、仮想マシンの動作に関する情報は、ほぼ同じになると考えられる。そこで、上で述べたようにすれば、情報処理装置のリソースを無駄に消費することがなくなる。
【０１０４】
また、上で述べた処理を実行していない仮想マシンを特定する処理において、（ｃ１）第１の仮想マシンの動作に関する情報から、アイドル状態か否かを判定するための閾値を算出し、（ｃ２）第１の仮想マシン以外の仮想マシンの動作に関する情報に含まれる数値が、算出された閾値を超えているか否かを判定することにより、処理を実行していない仮想マシンを特定してもよい。このようにすれば、ユーザが一律に閾値を設定する場合等と比べて適切な閾値を設定することができるようになる。
【０１０５】
また、上で述べた情報処理装置において動作する仮想マシンが実行するオペレーティングシステムの種別の数が複数であってもよい。そして、上で述べた配備要求を情報処理装置に送信する処理において、（ａ２）複数のオペレーティングシステムの各々について第１の仮想マシンを配備することを要求する配備要求を情報処理装置に送信してもよい。同じ情報処理装置で動作する仮想マシンであってもオペレーティングシステムが異なれば動作の特性は異なることがある。そこで、上で述べたようにすれば、オペレーティングシステムの種別の数が複数である場合にも適切に対処できるようになる。
【０１０６】
また、本管理方法が、（Ｄ）特定された処理を実行していない仮想マシンを停止することを要求する停止要求を情報処理装置に送信する処理をさらに含むようにしてもよい。このようにすれば、アイドル状態である仮想マシンによって無駄に電力が消費されることを防止できるようになる。
【０１０７】
また、本管理方法が、（Ｅ）情報処理装置が消費する電力が所定の目標電力以上であるか判断し、（Ｆ）情報処理装置が消費する電力が所定の目標電力以上であると判断された場合に、情報処理装置において動作する仮想マシンについて、当該仮想マシンが過去所定期間にアイドル状態であった時間を用いて、停止する仮想マシンを特定し、（Ｇ）特定された仮想マシンを停止することを要求する停止要求を情報処理装置に送信する処理をさらに含むようにしてもよい。このようにすれば、情報処理装置が所定の目標電力以上の電力を消費しないように制御できるようになる。また、過去のアイドル状態を考慮できるので、停止するべきではない仮想マシンを停止することを抑制できるようになる。
【０１０８】
また、上で述べた停止要求を情報処理装置に送信する処理において、（ｄ１）情報処理装置において動作する仮想マシンが実行する処理の優先度をさらに用いて、停止する仮想マシンを特定してもよい。このようにすれば、優先して実行すべき処理が実行されなくなることを抑制できるようになる。
【０１０９】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１１０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）
情報処理装置において動作する仮想マシンを管理する管理装置に実行させるためのプログラムであって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信し、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、
取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する
処理を前記管理装置に実行させるための管理プログラム。
【０１１２】
（付記２）
前記情報処理装置の数が複数であり、
前記配備要求を前記情報処理装置に送信する処理において、
複数の情報処理装置の中に属性が同じである複数の情報処理装置がある場合に、当該属性が同じである複数の情報処理装置のうちいずれかの情報処理装置に、前記配備要求を送信する
ことを特徴とする付記１記載の管理プログラム。
【０１１３】
（付記３）
前記処理を実行していない仮想マシンを特定する処理において、
前記第１の仮想マシンの動作に関する情報から、アイドル状態か否かを判定するための閾値を算出し、
前記第１の仮想マシン以外の仮想マシンの動作に関する情報に含まれる数値が、算出された前記閾値を超えているか否かを判定することにより、前記処理を実行していない仮想マシンを特定する
ことを特徴とする付記１又は２記載の管理プログラム。
【０１１４】
（付記４）
前記情報処理装置において動作する仮想マシンが実行するオペレーティングシステムの種別の数が複数であり、
前記配備要求を前記情報処理装置に送信する処理において、
複数のオペレーティングシステムの各々について前記第１の仮想マシンを配備することを要求する配備要求を前記情報処理装置に送信する
ことを特徴とする付記１記載の管理プログラム。
【０１１５】
（付記５）
特定された前記処理を実行していない仮想マシンを停止することを要求する停止要求を前記情報処理装置に送信する
処理を前記管理装置にさらに実行させるための付記１記載の管理プログラム。
【０１１６】
（付記６）
前記情報処理装置が消費する電力が所定の目標電力以上であるか判断し、
前記情報処理装置が消費する電力が前記所定の目標電力以上であると判断された場合に、前記情報処理装置において動作する仮想マシンについて、当該仮想マシンが過去所定期間にアイドル状態であった時間を用いて、停止する仮想マシンを特定し、
特定された前記仮想マシンを停止することを要求する停止要求を前記情報処理装置に送信する
処理をさらに前記管理装置に実行させるための付記５記載の管理プログラム。
【０１１７】
（付記７）
前記停止要求を前記情報処理装置に送信する処理において、
前記情報処理装置において動作する仮想マシンが実行する処理の優先度をさらに用いて、停止する仮想マシンを特定する
ことを特徴とする付記６記載の管理プログラム。
【０１１８】
（付記８）
情報処理装置において動作する仮想マシンを管理する管理装置により実行される管理方法であって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信し、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、
取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する
処理を前記管理装置が実行する管理方法。
【０１１９】
（付記９）
情報処理装置において動作する仮想マシンを管理する管理装置であって、
処理を実行しない第１の仮想マシンを前記情報処理装置に配備することを要求する配備要求を前記情報処理装置に送信する第１処理部と、
前記第１の仮想マシンの動作に関する情報及び前記情報処理装置において動作する、前記第１の仮想マシン以外の仮想マシンの動作に関する情報を、前記情報処理装置から取得し、取得された前記第１の仮想マシンの動作に関する情報と前記第１の仮想マシン以外の仮想マシンの動作に関する情報とを用いて、前記第１の仮想マシン以外の仮想マシンの中から、処理を実行していない仮想マシンを特定する第２処理部と、
を有する管理装置。
【符号の説明】
【０１２０】
１  管理サーバ    ３  ネットワーク
Ａ，Ｂ，Ｃ  物理サーバ    １０１  制御データ格納部
１０２  前処理部    １０３  収集部
１０４  収集データ格納部    １０５  設定部
１０６  計画部    １０７  第１特定部
１０８  第２特定部    １０９  生成部
１１０  手順データ格納部    １１１  実行部
５０１，５０２，５０３  ＶＭ    ５０  制御部
【図１】
2014191368.tif 000003
【図２】
2014191368.tif 000004
【図３】
2014191368.tif 000005
【図４】
2014191368.tif 000006
【図５】
2014191368.tif 000007
【図６】
2014191368.tif 000008
【図７】
2014191368.tif 000009
【図８】
2014191368.tif 000010
【図９】
2014191368.tif 000011
【図１０】
2014191368.tif 000012
【図１１】
2014191368.tif 000013
【図１２】
2014191368.tif 000014
【図１３】
2014191368.tif 000015
【図１４】
2014191368.tif 000016
【図１５】
2014191368.tif 000017
【図１６】
2014191368.tif 000018
【図１７】
2014191368.tif 000019
【図１８】
2014191368.tif 000020
【図１９】
2014191368.tif 000021
【図２０】
2014191368.tif 000022
【図２１】
2014191368.tif 000023
【図２２】
2014191368.tif 000024
【図２３】
2014191368.tif 000025
【図２４】
2014191368.tif 000026
【図２５】
2014191368.tif 000027
【図２６】
2014191368.tif 000028
【図２７】
2014191368.tif 000029
【図２８】
2014191368.tif 000030
【図２９】
2014191368.tif 000031
【図３０】
2014191368.tif 000032