(57)【要約】仮想マシンシステムにおいて、処理装置の故障に対して耐障害性を有する仮想マシンの配置を行う。  仮想マシン管理装置１００は、類似グループ生成部１０２と配置制約生成部１０５とを含む。類似グループ生成部１０２は、複数の仮想マシン２０１の内で、各時刻における性能値が略一致する類似関係を有する仮想マシン２０１のグループを生成する。配置制約生成部１０５は、類似関係を有する仮想マシン２０１のグループを、仮想マシン２０１の処理を実行する複数の処理装置２００の内の異なる処理装置２００へ配置する仮想マシン２０１のグループを示す分散配置制約として出力する。
2012144647.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成する類似グループ生成手段と、
前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する配置制約生成手段とを備えた
仮想マシン管理装置。
【請求項２】
さらに、前記複数の仮想マシンの内で、性能値間の相関関係を有する仮想マシンのグループを生成する相関グループ生成手段を含み、
前記配置制約生成手段は、さらに、前記相関関係を有する仮想マシンのグループを、前記複数の処理手段の内の同一の処理手段へ配置する仮想マシンのグループを示す第２の配置制約として出力する
請求項１に記載の仮想マシン管理装置。
【請求項３】
前記配置制約生成手段は、前記類似関係を有する仮想マシンのグループ内の仮想マシンの異なる処理手段への配置と前記相関関係を有する仮想マシンのグループ内の仮想マシンの同一の処理手段への配置との両方を行うことができない場合、前記相関関係を有する仮想マシンのグループ内の仮想マシンの内で、前記第１の配置制約を満たす範囲で、前記複数の処理手段の内の同一の処理手段に配置可能な仮想マシンのグループを生成し、当該生成したグループを、前記第２の配置制約として出力する
請求項２に記載の仮想マシン管理装置。
【請求項４】
前記配置制約生成手段は、前記類似関係を有する仮想マシンのグループ内の仮想マシンの異なる処理手段への配置と前記相関関係を有する仮想マシンのグループ内の仮想マシンの同一の処理手段への配置との両方を行うことができない場合、前記類似関係を有する仮想マシンのグループ内の仮想マシンの内で、前記第２の配置制約を満たす範囲で、前記複数の処理手段の内の異なる処理手段に配置可能な仮想マシンのグループを生成し、当該生成したグループを、前記第１の配置制約として出力する
請求項２に記載の仮想マシン管理装置。
【請求項５】
さらに、異なる処理手段へ配置する仮想マシンのグループとして入力された第１の外部制約と同一の処理手段へ配置する仮想マシンのグループとして入力された第２の外部制約の内の少なくとも一方を含む外部制約情報を記憶する外部制約記憶部を備え、
前記配置制約生成手段は、
前記外部制約情報が前記第１の外部制約を含む場合、前記相関関係を有する仮想マシンのグループ内の仮想マシンの内で、前記第１の外部制約を満たす範囲で、前記複数の処理手段の内の同一の処理手段に配置可能な仮想マシンのグループを生成し、当該生成したグループを前記第２の配置制約として出力し、
前記外部制約情報が前記第２の外部制約を含む場合、前記類似関係を有する仮想マシンのグループ内の仮想マシンの内で、前記第２の外部制約を満たす範囲で、前記複数の処理手段の内の異なる処理手段に配置可能な仮想マシンのグループを生成し、当該生成したグループを前記第１の配置制約として出力する
請求項２から４のいずれかに記載の仮想マシン管理装置。
【請求項６】
さらに、前記第１の配置制約、及び、前記第２の配置制約をもとに、前記複数の処理手段の各々に配置する仮想マシンを決定する配置制御手段を備えた
請求項１乃至７のいずれかに記載の仮想マシン管理装置。
【請求項７】
複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成し、
前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する
仮想マシン管理方法。
【請求項８】
さらに、前記複数の仮想マシンの内で、性能値間の相関関係を有する仮想マシンのグループを生成し、
前記相関関係を有する仮想マシンのグループを、前記複数の処理手段の内の同一の処理手段へ配置する仮想マシンのグループを示す第２の配置制約として出力する
請求項７に記載の仮想マシン管理方法。
【請求項９】
コンピュータに、
複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成し、
前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する
処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【請求項１０】
さらに、前記複数の仮想マシンの内で、性能値間の相関関係を有する仮想マシンのグループを生成し、
前記相関関係を有する仮想マシンのグループを、前記複数の処理手段の内の同一の処理手段へ配置する仮想マシンのグループを示す第２の配置制約として出力する
処理を実行させる前記プログラムを格納する、請求項９に記載のコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理装置、仮想マシン管理方法、及び、プログラムに関し、特に、仮想マシンの配置を管理する仮想マシン管理装置、仮想マシン管理方法、及び、プログラムに関する。
【背景技術】
【０００２】
情報処理システムにおける資源を有効に利用する方法として、複数の仮想マシンを、その情報処理システムを構成する物理的な処理装置（仮想マシンサーバ）の負荷等に応じて配置する方法が知られている。このような仮想マシンを用いた情報処理システム（仮想マシンシステム）では、管理者が各仮想マシンの処理する内容をもとに、所定のポリシーに従って、各仮想マシンを配置する条件である配置制約を生成し、配置制約に従って各処理装置への仮想マシンの配置が行われる。
しかしながら、例えば、データセンター等、多数の顧客システムの仮想マシンが動作する大規模な仮想マシンシステムでは、管理者は、各々の仮想マシンの処理する内容を把握することができず、適切な配置制約が生成できないという問題がある。
このような問題を解決する技術の一例が、例えば、特許文献１に開示されている。特許文献１の仮想マシン管理装置は、各仮想マシンの負荷情報をもとに、相関関係を有する仮想マシンを抽出し、抽出された仮想マシンを同一の仮想マシンサーバに配置することにより、仮想マシンサーバの消費電力を低減する。
なお、関連技術として、特許文献２には、システムの複数種別の性能値の計測値をもとに、システムの相関モデルを生成し、生成された相関モデルを用いて、新たに入力された性能値に対する相関破壊を検出し、システムの障害原因を特定する運用管理システムが開示されている。
また、他の関連技術として、特許文献３には、各仮想マシンの負荷情報をもとに、各仮想マシンの最大負荷を予測し、予測した最大負荷をもとに各仮想マシンサーバへ配置する仮想マシンを決定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２１１５４６号公報
【特許文献２】特開２００９−１９９５３３号公報
【特許文献３】特開２０１０−２４４１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１では、仮想マシン管理装置が、相関関係がある仮想マシンを同じ仮想マシンサーバに配置するため、複数の仮想マシンが同一のサービスに対して分散処理を行っている場合でも、それらの仮想マシンが同じ仮想マシンサーバに配置される。このため、仮想マシンサーバが故障した場合、分散処理を行っているサービスが中断し、顧客の業務が継続できなくなるという問題がある。
本発明の目的は、上述の課題を解決した、仮想マシン管理装置、仮想マシン管理方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一態様における仮想マシン管理装置は、複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成する類似グループ生成手段と、前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する配置制約生成手段とを備える。
本発明の一態様における仮想マシン管理方法は、複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成し、前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する。
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、複数の仮想マシンの内で、各時刻における性能値が略一致する類似関係を有する仮想マシンのグループを生成し、前記類似関係を有する仮想マシンのグループを、仮想マシンの処理を実行する複数の処理手段の内の異なる処理手段へ配置する仮想マシンのグループを示す第１の配置制約として出力する処理を実行させるプログラムを格納する。
【発明の効果】
【０００６】
本発明の効果は、仮想マシンシステムにおいて、耐障害性を有する仮想マシンの配置を行うことができることである。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における仮想マシンシステム１の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、仮想マシン２０１により構成されるシステムの例を示す図である。
【図４】本発明の第１の実施の形態における仮想マシン管理装置１００の処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における性能系列情報１２１の例を示す図である。
【図６】本発明の第１の実施の形態における、性能値間の類似関係の検出結果の例を示す図である。
【図７】本発明の第１の実施の形態における相関モデル１２３の例を示す図である。
【図８】本発明の第１の実施の形態における、仮想マシン２０１間の類似関係、及び、相関関係の検出結果の例を示す図である。
【図９】本発明の第１の実施の形態における配置制約情報１２５（競合解消前）の例を示す図である。
【図１０】本発明の第１の実施の形態における配置制約情報１２５（競合解消後）の例を示す図である。
【図１１】本発明の第１の実施の形態における仮想マシン２０１の配置結果の例を示す図である。
【図１２】本発明の第２の実施の形態における仮想マシンシステム１の構成を示すブロック図である。
【発明を実施するための形態】
【０００８】
（第１の実施の形態）
次に、本発明の第１の実施の形態について説明する。
はじめに、本発明の第１の実施の形態の構成について説明する。図２は、本発明の第１の実施の形態における仮想マシンシステム１の構成を示すブロック図である。
図２を参照すると、本発明の第１の実施の形態における仮想マシンシステム１は、仮想マシン管理装置１００、及び、複数の処理装置２００を含む。
仮想マシン管理装置１００は、各仮想マシン（ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ））２０１の性能情報をもとに、仮想マシン２０１を処理装置２００へ配置するための条件である配置制約を生成し、配置制約に従って各仮想マシン２０１を各処理装置２００へ配置する。
処理装置２００は、配置された仮想マシン２０１の処理を実行する物理的なコンピュータである。仮想マシン２０１は、処理装置２００の資源を利用して構築される、仮想的なコンピュータである。各仮想マシン２０１上では、例えば、ＷＥＢサーバ、アプリケーション（ＡＰ）サーバ、データベース（ＤＢ）サーバ等の処理が実行される。また、顧客の業務等を行うシステムは、これらのサーバ処理を実行する仮想マシン２０１により構成される。
図３は、本発明の第１の実施の形態における、仮想マシン２０１により構成されるシステムの例を示す図である。図３の例は、ＷＥＢ、ＡＰ、ＤＢの３層モデルからなる業務Ａと業務Ｂの２つのシステムを示す。
業務Ａでは、ＷＥＢサーバである識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１が負荷分散構成を形成している。同様に、ＡＰサーバである識別子ＡＰ１とＡＰ２の仮想マシン２０１、ＤＢサーバである識別子ＤＢ１とＤＢ２の仮想マシン２０１も負荷分散構成を形成している。
業務Ｂでは、ＷＥＢサーバである識別子ＷＥＢ３とＷＥＢ４の仮想マシン２０１が負荷分散構成を形成している。ＡＰサーバである識別子ＡＰ３の仮想マシン２０１と、ＤＢサーバである識別子ＤＢ３の仮想マシン２０１は、単独構成である。
仮想マシン管理装置１００は、性能情報収集部１０１、類似グループ生成部１０２、相関モデル生成部１０３、相関グループ生成部１０４、配置制約生成部１０５、管理者対話部１０６、配置制御部１０７、性能情報記憶部１１１、相関モデル記憶部１１３、及び、配置制約記憶部１１５を含む。
ここで、性能情報収集部１０１は、所定の時間間隔で、各処理装置２００上の再配置対象の各仮想マシン２０１から、当該仮想マシン２０１において計測された複数種目の性能値の実測データ（計測値）を取得する。性能値の種目としては、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率（ＣＰＵ）、メモリ使用量（ＭＥＭ）、ディスク使用量（ＤＳＫ）等が取得される。
また、仮想マシン２０１と性能値の種目の組を性能値の種別（性能種別、または、単に種別）とし、同一時刻に計測された複数種別の性能値の組を性能情報とする。
性能情報収集部１０１は、性能情報の時系列変化を性能系列情報１２１として性能情報記憶部１１１に保存する。
図５は、本発明の第１の実施の形態における性能系列情報１２１の例を示す図である。図５の例では、性能系列情報１２１は、性能種別として、識別子ＷＥＢ１の仮想マシン２０１のＣＰＵ使用率（ＷＥＢ１．ＣＰＵ）、メモリ使用量（ＷＥＢ１．ＭＥＭ）、ディスク使用量（ＷＥＢ１．ＤＳＫ）、識別子ＷＥＢ２の仮想マシン２０１のＣＰＵ使用率（ＷＥＢ２．ＣＰＵ）等を含む。
類似グループ生成部１０２は、所定期間の性能系列情報１２１をもとに、再配置対象の複数の仮想マシン２０１の内、類似関係を有する仮想マシン２０１のグループを生成する。
ここで、類似グループ生成部１０２は、再配置対処の仮想マシン２０１の内の２つの仮想マシン２０１の組（仮想マシン２０１のペア）の各々について、同じ種目の性能値が、ほぼ同じ値で時系列変化するかどうか、すなわち、各時刻で、ほぼ同一の値かどうかを検出する。同じ種目の性能値が、ほぼ同一の値で時系列変化する場合、類似グループ生成部１０２は、その種目の性能値間に類似関係があると判定する。
ここで、類似グループ生成部１０２は、例えば、各時刻における同じ種目の性能値どうしを比較し、それらの性能値間の差分絶対値の所定期間における平均値、または、積分値が所定値以下の場合、その種目の性能値間に類似関係があると判定してもよい。
類似グループ生成部１０２は、再配置対処の仮想マシン２０１の内の各仮想マシン２０１のペアについて、類似関係を有する種目の数が所定値以上の場合、その仮想マシン２０１のペアに類似関係があると判定する。
なお、類似グループ生成部１０２は、類似関係を有する仮想マシン２０１のペアを、類似関係を有する種目の数により判定する以外に、例えば、所定の種目の性能値間の類似関係の有無により判定する等、他の方法により判定してもよい。
そして、類似グループ生成部１０２は、類似関係を有する仮想マシン２０１のペアにより関連付けられた複数の仮想マシン２０１を含むグループを、類似関係を有する仮想マシン２０１のグループとする。
ここで、類似グループ生成部１０２は、仮想マシンＡとＢのペアが類似関係を有する場合、仮想マシンＡとＢのグループを、類似関係を有する仮想マシン２０１のグループとする。また、類似グループ生成部１０２は、仮想マシンＡとＢのペア、及び、仮想マシンＢとＣのペアが、それぞれ、類似関係を有する場合、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、類似関係を有する仮想マシン２０１のグループとする。この場合、類似グループ生成部１０２は、仮想マシンＡとＣのペアが類似関係を有するかどうかにかかわらず、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、類似関係を有する仮想マシン２０１のグループとしてもよい。
なお、類似グループ生成部１０２は、仮想マシンＡとＢのペア、及び、仮想マシンＢとＣのペアに加えて、仮想マシンＡとＣのペアが類似関係を有する場合、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、類似関係を有する仮想マシン２０１のグループとしてもよい。
図６は、本発明の第１の実施の形態における、性能値間の類似関係の検出結果の例を示す図である。図６において、各ノードは性能種別、ノード間の点線の矢印は性能値間の類似関係を示す。
図６の例では、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１のペアにおいて、ＣＰＵ使用率とメモリ使用率にそれぞれ類似関係が検出されている。ここで、類似関係がある種目の数が２以上のときに、仮想マシン２０１のペアに類似関係があると判定する場合、類似グループ生成部１０２は、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１のペアに類似関係があると判定する。同様に、類似グループ生成部１０２は、識別子ＡＰ１とＡＰ２、識別子ＤＢ１とＤＢ２の仮想マシン２０１のペアに、それぞれ、類似関係があると判定する。そして、類似グループ生成部１０２は、識別子ＷＥＢ１とＷＥＢ２、ＡＰ１とＡＰ２、ＤＢ１とＤＢ２の仮想マシン２０１を含む各グループを、類似関係を有する仮想マシン２０１のグループとする。
相関モデル生成部１０３は、性能系列情報１２１をもとに、再配置対象の複数の仮想マシン２０１に対する相関モデル１２３を生成する。ここで、相関モデル生成部１０３は、性能系列情報１２１に含まれる所定期間に取得された性能情報に基づいて、複数の性能種別の内の異なる２つの性能種別毎に、当該２つの性能種別の性能値間の相関関係を示す相関関数（変換関数）を決定し、決定した相関関数の集合である相関モデル１２３を生成する。相関関数は、１つの性能種別の計測値の時系列から他の性能種別の性能値の時系列を予測する関数であり、特許文献２に示されるように、上述の異なる２つの性能種別の計測値の時系列に対するシステム同定処理によって決定される。相関モデル生成部１０３は、さらに、相関関数による変換誤差をもとに、相関関数毎に、例えば、変換誤差の平均値の大きさに応じて小さくなる重みを算出し、重みが所定値以上の相関関数の集合を相関モデル１２３としてもよい。
相関モデル記憶部１１３は、相関モデル生成部１０３が生成した相関モデル１２３を記憶する。
図７は、本発明の第１の実施の形態における相関モデル１２３の例を示す図である。図７において、丸印で表わされる各ノードは性能種別、ノード間の実線の矢印は、相関モデル生成部１０３によって決定される、２つの性能値間の相関関係を示す。これらの相関関係のそれぞれについて、相関関数（図示せず）が決定される。
なお、上述したように、性能値間の類似関係は、同じ種目の性能値が、ほぼ同じ値で時系列変化する場合に検出されるが、性能値間の相関関係は、異なる種目の性能値が、例えば、一定比率の大きさの異なる値で時系列変化する場合や、増減が反転した値で時系列する場合、時間がずれた時系列変化をする場合にも検出される。
相関グループ生成部１０４は、相関モデル記憶部１１３の相関モデル１２３をもとに、再配置対象の複数の仮想マシン２０１の内、相関関係を有する仮想マシン２０１のグループを生成する。
相関グループ生成部１０４は、再配置対象の複数の仮想マシン２０１の内、各仮想マシン２０１のペアにおける一方の仮想マシン２０１の各種目の性能値と他方の仮想マシン２０１の各種目の性能値との間の相関関係の数が所定値以上の場合、その仮想マシン２０１のペアに相関関係があると判定する。
なお、相関グループ生成部１０４は、相関関係を有する仮想マシン２０１のペアを、相関関係を有する性能値間の相関関係の数により判定する以外に、例えば、各仮想マシン２０１のペアにおける一方の仮想マシン２０１の所定の種目の性能値と他方の仮想マシン２０１の所定の種目の性能値との間の相関関係の有無により判定する等、他の方法により判定してもよい。
そして、相関グループ生成部１０４は、相関関係を有する仮想マシン２０１のペアにより関連付けられた複数の仮想マシン２０１を含むグループを、相関関係を有する仮想マシン２０１のグループとする。
ここで、相関グループ生成部１０４は、仮想マシンＡとＢのペアが相関関係を有する場合、仮想マシンＡとＢのグループを、相関関係を有する仮想マシン２０１のグループとする。また、相関グループ生成部１０４は、仮想マシンＡとＢのペア、及び、仮想マシンＢとＣのペアが、それぞれ、相関関係を有する場合、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、相関関係を有する仮想マシン２０１のグループとする。この場合、相関グループ生成部１０４は、仮想マシンＡとＣのペアが相関関係を有するかどうかにかかわらず、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、相関関係を有する仮想マシン２０１のグループとしてもよい。
なお、相関グループ生成部１０４は、仮想マシンＡとＢのペア、及び、仮想マシンＢとＣのペアに加えて、仮想マシンＡとＣのペアが相関関係を有する場合、仮想マシンＡ、Ｂ、及び、Ｃを含むグループを、相関関係を有する仮想マシン２０１のグループとしてもよい。
例えば、図７の相関モデル１２３において、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１のペアにおいて、識別子ＷＥＢ１の仮想マシン２０１のＣＰＵ使用率と識別子ＷＥＢ２の仮想マシン２０１のディスク使用率間、識別子ＷＥＢ２の仮想マシン２０１のＣＰＵ使用率と識別子ＷＥＢ１の仮想マシン２０１のディスク使用率間に相関関係が検出されている。ここで、性能値間の相関関係の数が１以上のときに、仮想マシン２０１のペアに相関関係があると判定する場合、相関グループ生成部１０４は、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１のペアに相関関係があると判定する。同様に、相関グループ生成部１０４は、識別子ＡＰ１とＡＰ２、ＤＢ１とＤＢ２、ＷＥＢ１とＡＰ１、ＷＥＢ１とＡＰ２、ＷＥＢ２とＡＰ１、ＷＥＢ２とＡＰ２、ＡＰ１とＤＢ１、ＡＰ１とＤＢ２、ＡＰ２とＤＢ１、ＡＰ２とＤＢ２の仮想マシン２０１のペアに、それぞれ、相関関係があると判定する。そして、相関グループ生成部１０４は、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、及び、ＤＢ２の仮想マシン２０１を含むグループを、相関関係を有する仮想マシン２０１のグループとする。
配置制約生成部１０５は、類似関係を有する仮想マシン２０１のグループの情報と相関関係を有する仮想マシン２０１のグループの情報とをもとに、配置制約を生成する。
配置制約記憶部１１５は、配置制約生成部１０５が生成した配置制約を示す配置制約情報１２５を記憶する。
図９、及び、図１０は、本発明の第１の実施の形態における配置制約情報１２５の例を示す図である。図９、及び、図１０の例では、配置制約として、異なる処理装置２００へ配置する仮想マシン２０１のグループを示す分散配置制約（第１の配置制約）、及び、同一の処理装置２００へ配置する仮想マシン２０１のグループを示す集約配置制約（第２の配置制約）が設定されている。
本発明の実施の形態では、図３のシステムにおける、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１のように、仮想マシン２０１が負荷分散構成を形成している場合、これらの仮想マシン２０１は、上述の類似関係を有する仮想マシン２０１のグループを構成する可能性が高いと仮定する。
本発明の実施の形態では、類似関係を有する仮想マシン２０１のグループを異なる処理装置２００へ配置する仮想マシン２０１のグループ（分散配置制約）とする。例えば、図３のシステムに対して、類似関係を有する仮想マシン２０１のグループとして、識別子ＷＥＢ１とＷＥＢ２の仮想マシン２０１を含むグループが生成された場合、このグループは、分散配置制約に設定される。
また、図３のシステムにおける、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、ＤＢ２の仮想マシン２０１のように、複数の仮想マシン２０１が同じ業務システムを構成している場合、これらの仮想マシン２０１は、上述の相関関係を有する仮想マシン２０１のグループを構成する可能性が高いと仮定する。
本発明の実施の形態では、相関関係を有する仮想マシン２０１のグループを同一の処理装置２００へ配置する仮想マシン２０１のグループ（集約配置制約）とする。例えば、図３のシステムに対して、相関関係を有する仮想マシン２０１のグループとして、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、ＤＢ２の仮想マシン２０１を含むグループが生成された場合、このグループは、集約配置制約に設定される。
さらに、配置制約生成部１０５は、分散配置制約と集約配置制約との両方を満たすような仮想マシン２０１の配置ができない場合、すなわち、分散配置制約と集約配置制約が競合する場合、これらの配置制約のいずれかを優先することにより、競合を解消した配置制約を生成する。
分散配置制約を優先する場合、配置制約生成部１０５は、集約配置制約に含まれる仮想マシン２０１のグループの内、分散配置制約を満たすような仮想マシン２０１の配置ができないグループ（競合グループ）の各々について、当該グループに含まれる仮想マシン２０１の内、分散配置制約を満たす範囲で、同一の処理装置２００に配置可能である仮想マシン２０１の１以上のグループを新たに生成し、生成されたグループのそれぞれを新たな集約配置制約とする。分散配置制約を満たす範囲で新たなグループを生成できない場合、配置制約生成部１０５は、その競合グループを削除する。
ここで、配置制約生成部１０５は、新たに生成される各グループに含まれる仮想マシン２０１の数が、できるだけ多くなうように、グループを生成してもよい。
例えば、分散配置制約が、識別子ＷＥＢ１とＷＥＢ２、ＡＰ１とＡＰ２、ＤＢ１とＤＢ２の仮想マシン２０１を含む各グループであり、集約配置制約が、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、ＤＢ２の仮想マシン２０１を含むグループである場合、集合配置制約のグループは、競合グループである。配置制約生成部１０５は、競合グループに含まれる仮想マシン２０１をもとに、分散配置制約を満たすように、識別子ＷＥＢ１、ＡＰ１、ＤＢ１の仮想マシン２０１を含むグループ、及び、識別子ＷＥＢ２、ＡＰ２、ＤＢ２の仮想マシン２０１を含むグループを生成し、それぞれのグループを新たな集約配置制約とする。
一方、集約配置制約を優先する場合、配置制約生成部１０５は、分散配置制約に含まれる仮想マシン２０１のグループの内、集約配置制約を満たすような仮想マシン２０１の配置ができないグループ（競合グループ）の各々について、当該グループに含まれる仮想マシン２０１の内、集約配置制約を満たす範囲で、異なる処理装置２００に配置可能である仮想マシン２０１の１以上のグループを新たに生成する。そして、配置制約生成部１０５は、生成されたグループのそれぞれを新たな集約配置制約とする。集約配置制約を満たす範囲で新たなグループを生成できない場合、配置制約生成部１０５は、その競合グループを削除する。
ここで、配置制約生成部１０５は、新たに生成される各グループに含まれる仮想マシン２０１の数が、できるだけ多くなうように、グループを生成してもよい。
例えば、上述と同様に、分散配置制約が、識別子ＷＥＢ１とＷＥＢ２、ＡＰ１とＡＰ２、ＤＢ１とＤＢ２の仮想マシン２０１を含む各グループであり、集約配置制約が、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、ＤＢ２の仮想マシン２０１を含むグループである場合、分散配置制約の各グループは、競合グループである。この場合、配置制約生成部１０５は、各競合グループに含まれる仮想マシン２０１をもとに、集約配置制約を満たす範囲で、それぞれが同一の処理手段に配置可能な仮想マシン２０１のグループを生成できない。従って、配置制約生成部１０５は、分散配置制約を削除する。
管理者対話部１０６は、配置制約生成部１０５が生成した配置制約情報１２５を管理者等に提示し、管理者等から仮想マシン２０１の配置変更の指示を受け付ける。
配置制御部１０７は、管理者対話部１０６からの指示に応じて、配置制約情報１２５に従って、処理装置２００に仮想マシン２０１を配置、または、処理装置２００上の仮想マシン２０１の配置変更を行う。
なお、仮想マシン管理装置１００は、ＣＰＵとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、性能情報記憶部１１１、相関モデル記憶部１１３、及び、配置制約記憶部１１５は、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
次に、本発明の第１の実施の形態における仮想マシン管理装置１００の動作について説明する。
図４は、本発明の第１の実施の形態における仮想マシン管理装置１００の処理を示すフローチャートである。
ここでは、識別子ＳＶ１とＳＶ２の処理装置２００に配置されている仮想マシン２０１を再配置の対象として、これらの処理装置２００上に再配置する場合を例に、動作を説明する。また、これらの処理装置２００において、図３のように、業務Ａと業務Ｂのシステムを構成する仮想マシン２０１が実行されているとする。
はじめに、仮想マシン管理装置１００の性能情報収集部１０１は、各処理装置２００に配置されている再配置対象の各仮想マシン２０１の性能情報を取得し、性能系列情報１２１として性能情報記憶部１１１に保存する（ステップＳ１０１）。
例えば、性能情報収集部１０１は、識別子ＳＶ１とＳＶ２の処理装置２００に配置されている、再配置対象である識別子ＷＥＢ１、ＷＥＢ２、ＷＥＢ３、ＷＥＢ４、ＡＰ１、ＡＰ２、ＡＰ３、ＤＢ１、ＤＢ２、ＤＢ３の仮想マシン２０１から、図５のような性能系列情報１２１を取得し、性能情報記憶部１１１に保存する。
また、相関モデル生成部１０３は、性能情報記憶部１１１に記憶された所定期間の性能系列情報１２１をもとに、再配置対象の仮想マシン２０１についての相関モデル１２３を生成し、相関モデル記憶部１１３に保存する（ステップＳ１０２）。
例えば、相関モデル生成部１０３は、再配置対象の仮想マシン２０１について、図７のような相関モデル１２３を生成し、相関モデル記憶部１１３に保存する。
次に、類似グループ生成部１０２は、所定期間の性能系列情報１２１をもとに、再配置対象の複数の仮想マシン２０１の内、類似関係を有する仮想マシン２０１のグループを生成する（ステップＳ１０３）。
図８は、本発明の第１の実施の形態における、仮想マシン２０１間の類似関係、及び、相関関係の検出結果の例を示す図である。
例えば、類似グループ生成部１０２は、図５の性能系列情報１２１をもとに、図６のように性能値間の類似関係を検出する。ここで、類似関係を有する種目の数が２以上のときに仮想マシン２０１のペアに類似関係があると判断する場合、類似グループ生成部１０２は、仮想マシン２０１のペアについての類似関係を、図８のように抽出する。そして、類似グループ生成部１０２は、図８のように、識別子ＷＥＢ１とＷＥＢ２、ＡＰ１とＡＰ２、ＤＢ１とＤＢ２、ＷＥＢ３とＷＥＢ４の仮想マシン２０１を含む各グループを、類似関係を有する仮想マシン２０１のグループとする。
次に、相関グループ生成部１０４は、相関グループ生成部１０４は、相関モデル記憶部１１３の相関モデル１２３をもとに、再配置対象の複数の仮想マシン２０１の内、相関関係を有する仮想マシン２０１のグループを生成する（ステップＳ１０４）。
例えば、図７の相関モデル１２３において、性能値間の相関関係の数が１以上のときに仮想マシン２０１間に相関関係があると判断する場合、相関グループ生成部１０４は、仮想マシン２０１のペアについての相関関係を、図８のように抽出する。そして、類似グループ生成部１０２は、図８のように、識別子ＷＥＢ１、ＷＥＢ２、ＡＰ１、ＡＰ２、ＤＢ１、及び、ＤＢ２の仮想マシン２０１を含むグループ、及び、識別子ＷＥＢ３、ＷＥＢ４、ＡＰ３、及び、ＤＢ３の仮想マシン２０１を含むグループを、それぞれ、相関関係を有する仮想マシン２０１のグループとする。
次に、配置制約生成部１０５は、ステップＳ１０３で生成された類似関係を有する仮想マシン２０１のグループの情報と、ステップＳ１０４で生成された相関関係を有する仮想マシン２０１のグループの情報とをもとに、配置制約情報１２５を生成し、配置制約記憶部１１５に保存する（ステップＳ１０５）。
例えば、図８のように、類似関係を有する仮想マシン２０１のグループと相関関係を有する仮想マシン２０１のグループが生成された場合、配置制約生成部１０５は、配置制約情報１２５において、図９のように、類似関係を有する仮想マシン２０１のグループを分散配置制約、相関関係を有する仮想マシン２０１のグループを集約配置制約に設定する。
図９において、分散配置制約の条件１、２、３と集約配置制約の条件５、分散配置制約の条件４と集約配置制約の条件６は、それぞれ競合する。ここで、分散配置制約を優先する場合、配置制約生成部１０５は、競合を解消して、集約配置制約の条件５、６に示される各グループに含まれる仮想マシン２０１をもとに、図１０のように、条件５−１、５−２、６−１、６−２に示される各グループを生成する。なお、競合の解消により、仮想マシン２０１が１つとなるグループ（図１０における条件６−２）は、配置制約から削除してもよい。配置制約生成部１０５は、図１０の配置制約情報１２５を配置制約記憶部１１５に保存する。
次に、管理者対話部１０６は、配置制約生成部１０５が生成した配置制約情報１２５を管理者等に提示する（ステップＳ１０６）。
配置制御部１０７は、管理者対話部１０６を通して、管理者等から配置変更の指示を受け付けると、配置制約情報１２５の配置制約を満たすように、処理装置２００上の仮想マシン２０１の配置を決定し、仮想マシン２０１の配置を変更する（ステップＳ１０７）。
図１１は、本発明の第１の実施の形態における仮想マシン２０１の配置結果の例を示す図である。
例えば、配置制御部１０７は、図１０の配置制約情報１２５をもとに、仮想マシン２０１を配置する処理装置２００を決定する。この結果、例えば、図１１に示すように、識別子ＳＶ１の処理装置２００には、識別子ＷＥＢ１、ＡＰ１、ＤＢ１、及び、ＷＥＢ３の仮想マシン２０１が配置される。また、識別子ＳＶ１の処理装置２００には、識別子ＷＥＢ２、ＡＰ２、ＤＢ２、ＷＥＢ４、ＡＰ３、及び、ＤＢ３の仮想マシン２０１が配置される。
このように、業務Ａのシステムにおいて、ＷＥＢ、ＡＰ、ＤＢの各層で負荷分散構成を形成している仮想マシン２０１が、識別子ＳＶ１とＳＶ２の処理装置２００のそれぞれに分散配置される。同様に、業務Ｂのシステムにおいて、ＷＥＢ層で負荷分散構成を形成している仮想マシン２０１も、識別子ＳＶ１とＳＶ２の処理装置２００のそれぞれに分散配置される。また、識別子ＳＶ１の処理装置２００には、業務Ｂのシステムの各層が集約配置され、識別子ＳＶ２の処理装置２００には、業務Ａ、及び、業務Ｂのシステムの各層が集約配置される。
ここで、例えば、識別子ＳＶ１の処理装置２００に障害が発生した場合でも、識別子ＳＶ２の処理装置２００には業務Ａ、及び、業務Ｂを提供できる３層システムが存在するため、業務Ａ、及び、業務Ｂは継続される。同様に、識別子ＳＶ２の処理装置２００が故障した場合、業務Ｂは継続できないが、業務Ａは継続される。このように、処理装置２００の故障に対して耐障害性を有する仮想マシン２０１の配置が行われる。
また、同じ業務システムを構成する仮想マシン２０１間では、仮想マシン２０１上の各サーバ間の通信が行われるが、同じ業務システムを構成する仮想マシン２０１を同じ処理装置２００に集約配置することで、処理装置２００間の通信量を減らすことが可能となる。また、例えば、同じ業務システムのＷＥＢサーバとＡＰサーバのように、あるサービスに対する処理が、それぞれのサーバにおいて時間的にずれて行われる場合、これらのサーバは、同じ処理装置２００の同じＣＰＵやメモリを、順次利用することが可能となる。このように、処理装置２００間のネットワークや処理装置２００のＣＰＵ、メモリなど、仮想マシンシステム１の資源を効率的に利用するように、仮想マシン２０１の配置が行われる。
以降、処理装置２００により、配置された仮想マシン２０１の処理が行われる。
そして、仮想マシン管理装置１００による配置制約の生成と仮想マシン２０１の再配置（ステップＳ１０１からＳ１０７）が、繰り返し実行される。
以上により、本発明の第１の実施の形態の動作が完了する。
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
図１を参照すると、仮想マシン管理装置１００は、類似グループ生成部１０２と配置制約生成部１０５とを含む。
類似グループ生成部１０２は、複数の仮想マシン２０１の内で、各時刻における性能値が略一致する類似関係を有する仮想マシン２０１のグループを生成する。
配置制約生成部１０５は、類似関係を有する仮想マシン２０１のグループを、仮想マシン２０１の処理を実行する複数の処理装置２００の内の異なる処理装置２００へ配置する仮想マシン２０１のグループを示す分散配置制約として出力する。
本発明の第１の実施形態によれば、仮想マシンシステム１において、処理装置２００の故障に対して耐障害性を有する仮想マシン２０１の配置を行うことができる。その理由は、類似グループ生成部１０２が、複数の仮想マシン２０１の内で、各時刻における性能値が略一致する類似関係を有する仮想マシン２０１のグループを生成し、配置制約生成部１０５が、類似関係を有する仮想マシン２０１のグループを、仮想マシン２０１の処理を実行する複数の処理装置２００の内の異なる処理装置２００へ配置する仮想マシン２０１のグループを示す分散配置制約として出力するためである。
また、本発明の第１の実施形態によれば、仮想マシンシステム１の資源を効率的に利用するように、仮想マシン２０１の配置を行うことができる。その理由は、相関グループ生成部１０４が、複数の仮想マシン２０１の内で、相関関係を有する仮想マシン２０１のグループを生成し、配置制約生成部１０５が、相関関係を有する仮想マシン２０１のグループを、複数の処理装置２００の内の同一の処理装置２００へ配置する仮想マシン２０１のグループを示す集約配置制約として出力するためである。
また、本発明の第１の実施形態によれば、仮想マシンシステム１の管理者等が、各々の仮想マシン２０１が処理する内容を知らなくても、耐障害性を有し、資源を効率的に利用するように、仮想マシン２０１の配置を行うことができる。その理由は、類似グループ生成部１０２と相関グループ生成部１０４が、複数の仮想マシン２０１の各々の性能値の時系列をもとに、類似関係を有する仮想マシン２０１のグループと、相関関係を有する仮想マシン２０１のグループをそれぞれ生成するためである。
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態においては、管理者等により入力された配置制約（外部制約）を優先して、配置制約が生成される。
図１２は、本発明の第２の実施の形態における仮想マシンシステム１の構成を示すブロック図である。本発明の第２の実施の形態における仮想マシン管理装置１００は、本発明の第１の実施の形態における仮想マシン管理装置１００の構成に加えて、外部制約記憶部１１６を含む。
外部制約記憶部１１６は、管理者等により入力された外部制約を示す外部制約情報１２６を記憶する。外部制約情報１２６の外部制約は、管理者等により管理者対話部１０６を介して入力される。外部制約には、図１０の配置制約情報１２５と同様の、分散配置制約（外部分散配置制約、または、第１の外部制約）、及び、集約配置制約（外部集約配置制約、または、第２の外部制約）の内の少なくとも一方が設定される。
配置制約生成部１０５は、ステップＳ１０５において生成された配置制約に、外部制約情報１２６の外部制約を加えて、新たな配置制約として出力する。
また、配置制約生成部１０５は、ステップＳ１０５において生成された配置制約と外部制約との両方を満たすような仮想マシン２０１の配置ができない場合、すなわち、ステップＳ１０５において生成された配置制約と外部制約が競合する場合、外部制約を優先することにより、競合を解消した配置制約を生成する。
配置制約生成部１０５は、上述の、分散配置制約と集約配置制約の競合の解消と同様の方法で、ステップＳ１０５において生成された配置制約と外部制約の競合を解消する。
すなわち、配置制約生成部１０５は、ステップＳ１０５において生成された集約配置制約に含まれる仮想マシン２０１のグループの内、外部分散配置制約を満たすような仮想マシン２０１の配置ができないグループ（競合グループ）の各々について、当該グループに含まれる仮想マシン２０１の内、外部分散配置制約を満たす範囲で、同一の処理装置２００に配置可能である仮想マシン２０１の１以上のグループを新たに生成する。そして、配置制約生成部１０５は、生成されたグループに、外部集約配置制約を加えて、新たな集約配置制約とする。
また、配置制約生成部１０５は、ステップＳ１０５において生成された分散配置制約に含まれる仮想マシン２０１のグループの内、外部集約配置制約を満たすような仮想マシン２０１の配置ができないグループ（競合グループ）の各々について、当該グループに含まれる仮想マシン２０１の内、外部集約配置制約を満たす範囲で、異なる処理装置２００に配置可能である仮想マシン２０１の１以上のグループを新たに生成する。そして、配置制約生成部１０５は、生成されたグループに、外部分散配置制約を加えて、新たな分散配置制約とする。
これにより、管理者等により入力された特定の配置制約を満たした仮想マシン２０１の配置が可能となる。
例えば、処理装置２００の定期保守や仮想マシン２０１の構成変更などで、一時的に仮想マシン２０１を特定の処理装置２００に集約する必要がある場合、外部集約配置制約により、特定の仮想マシン２０１を集約させることができる。
本発明の第２の実施形態によれば、仮想マシンシステム１の管理者等による特定の配置制約を満たしつつ、耐障害性を有し、資源を効率的に利用するように、仮想マシン２０１の配置を行うことができる。その理由は、配置制約生成部１０５が、管理者等により入力された配置制約（外部制約）を優先して配置制約を生成するためである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２０１１年４月２０日に出願された日本出願特願２０１１−０９４１１９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０００９】
１  仮想マシンシステム
１００  仮想マシン管理装置
１０１  性能情報収集部
１０２  類似グループ生成部
１０３  相関モデル生成部
１０４  相関グループ生成部
１０５  配置制約生成部
１０６  管理者対話部
１０７  配置制御部
１１１  性能情報記憶部
１１３  相関モデル記憶部
１１５  配置制約記憶部
１１６  外部制約記憶部
１２１  性能系列情報
１２３  相関モデル
１２５  配置制約情報
１２６  外部制約情報
２００  処理装置
２０１  仮想マシン
【図１】
2012144647.tif 000003
【図２】
2012144647.tif 000004
【図３】
2012144647.tif 000005
【図４】
2012144647.tif 000006
【図５】
2012144647.tif 000007
【図６】
2012144647.tif 000008
【図７】
2012144647.tif 000009
【図８】
2012144647.tif 000010
【図９】
2012144647.tif 000011
【図１０】
2012144647.tif 000012
【図１１】
2012144647.tif 000013
【図１２】
2012144647.tif 000014
【国際調査報告】
2012144647.tif 000015
2012144647.tif 000016