(57)【要約】【課題】不稼働情報、リソースの依存関係を考慮して物理リソースを有効に活用できる仮想化システム制御方法を提供する。【解決手段】仮想化システムは、複数の仮想マシン１０４を動作させる監視対象マシン１０１、エージェントマシン１０２、分析マシン１０３を有している。分析マシン１０３は、所定の処理に必要なリソースの適正値を算出する際に、仮想マシンのリソースの稼働実績情報３０３にリソースの不稼働情報３０２を加算してリソースの予定稼働情報を求め、不稼働情報を加算による稼働実績情報の変動を、予定稼働情報に基づいて定積分により特定の時間ごとの微小面積の総和として算出し、所定の処理に必要な総和を満たす予定終了時間を算出する。また、リソースのひとつはＣＰＵであり、ＣＰＵに依存するリソースであるメモリに対して、メモリが使用される予定終了時間をＣＰＵの予定終了時間に補正する。【選択図】図１
2010277208.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンの配置を変更するハイパーバイザを有する物理マシンと、前記仮想マシンの構成情報、リソースの稼働実績情報、および前記リソースの不稼働情報を含む情報を取得する情報収集マシンと、前記情報収集マシンから前記情報を取得し、前記仮想マシンのマイグレーション指示を前記ハイパーバイザにする分析マシンと、を備える仮想化システムにおいて、前記仮想マシンのリソースの適正値を算出し、前記算出したリソースの適正値に基づいて前記ハイパーバイザへマイグレーション指令をする仮想化システム制御方法であって、
前記分析マシンは、
所定の処理に必要な前記リソースの適正値を算出する際に、前記仮想マシンの前記リソースの稼働実績情報に前記リソースの不稼働情報を加算してリソースの予定稼働情報を求め、前記不稼働情報の加算による稼働実績情報の変動を、前記予定稼働情報に基づいて定積分により特定の時間ごとの微小面積の総和として算出し、前記所定の処理に必要な総和を満たす予定終了時間を算出する
ことを特徴とする仮想化システム制御方法。
【請求項２】
前記分析マシンは、前記所定の処理に必要なリソースの適正値を算出する際に、
前記リソースのひとつであるＣＰＵに依存するリソースであるメモリに対して、前記メモリが使用される予定終了時間を前記ＣＰＵの前記予定終了時間に補正する
ことを特徴とする請求項１に記載の仮想化システム制御方法。
【請求項３】
前記分析マシンは、前記仮想マシンごとに算出された適正値を基に、前記分析マシンで管理される仮想マシンの組合せに対して相関分析を行い、負の相関関係の強い組合せを導き出す
ことを特徴とする請求項２に記載の仮想化システム制御方法。
【請求項４】
前記分析マシンは、前記導き出された仮想マシンの組合せから、新たなひとつの適正データを生成して相関分析の組合せ対象とし、３つ以上の仮想マシンの組合せを分析可能とする
ことを特徴とする請求項３に記載の仮想化システム制御方法。
【請求項５】
請求項１から請求項４のいずれか１項に記載の仮想システム制御方法を
コンピュータに実行させるための仮想化システム制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化システムをマイグレーションするための仮想化システム制御方法、およびそのシステムに係る制御プログラムの技術に関する。
【背景技術】
【０００２】
従来、例えば、特許文献１では、移動元マシンのリソース、ハードウェア性能などのスペック情報を基に、それらの条件を満たす別のマシンを割り当てることによってマイグレーションを行う技術について開示されている。仮想マシンの組合せを導き出す過程で基になる情報は、仮想マシンの負荷状況などの情報、仮想マシンが動作している物理マシンのスペック情報が使用されている。
【０００３】
また、従来技術として、昼間のＷｅｂサービスと夜間バッチ処理など、過去の稼働実績情報を基に処理のピークが重ならない業務をそれぞれ担う仮想マシンの組合せを、同じ物理マシンに搭載し、効率良くリソースを活用する方法が利用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２７６３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、限られたリソースで構成される物理マシンに対して、仮想マシンの配置を決定する場合、仮想マシンの過去の稼働実績情報を基に、仮想マシンの動作に必要十分なリソースを確保できるよう、物理マシンを選択し、その物理マシン上で動作する仮想マシンの組合せを決定するのが一般的である。しかし、仮想化システムの仮想マシンで、不稼働が発生した場合や、リソース間の依存関係まで含めた適正な動作環境までは考慮できておらず、コンピュータによる自動化もできていないという問題があった。
【０００６】
また、仮想マシンを制御するハイパーバイザ(hypervisor)によるロードバランシングの結果、本来必要なリソースが確保できずに不稼働情報が発生していても、稼働実績情報上は問題ないように動作できてしまう問題があった。なお、ハイパーバイザは、リソースの割当の結果、当初の要求に対する不稼働が発生すると不稼働情報を出力する。
【０００７】
また、不稼働情報を加算して必要なリソースを算出することにより、不稼働情報を加算したリソースの動きにさらに別のリソースが影響をうけてしまうことがあるが、それらも考慮できていなかった。
【０００８】
このため、全ての仮想マシンが、本来必要十分なリソースを確保するためには、ロードバランシングされない状態での必要リソース量を見極めると共に、それに伴う関連リソースの動きまで考慮し、仮想マシンを最適な物理マシンに配置できるようにする必要がある。
【０００９】
本発明は、前記の課題を解決するための発明であって、不稼働情報、リソースの依存関係を考慮して物理リソースを有効に活用できる仮想化システム制御方法および仮想化システム制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記目的を達成するため、本発明は、仮想化システムをマイグレーションするための方法として、（１）仮想マシンの稼働実績情報、仮想マシンで発生した不稼働情報、およびリソース間の依存関係まで考慮して、仮想マシンのリソースごとに適正値を導き出す方法、
（２）リソースごとの適正値を相関分析により負の相関関係の強い組合せを導き出す方法とを含む。
【００１１】
本発明は、仮想マシンの稼働実績情報に、仮想マシンの稼働の際のハイパーバイザから得られた不稼働情報を加算し、本来必要なリソース量（例えば、ＣＰＵ（Central Processing Unit）使用率、メモリ使用量）を導き出すことが特徴である。なお、不稼働情報は、仮想マシンの稼働実績情報と、ハイパーバイザのロードバランシングにより調整されたリソースの情報との差をいう。
【００１２】
また、稼働実績情報に対して、不稼働情報を加算することにより、そのリソース（例えば、ＣＰＵ）に依存するリソース（例えば、メモリ）の稼働データも変動する。このため、リソースの依存関係を、依存元リソースの稼働データ（例えば、図１６のグラフ６０７）から定積分により面積として算出し処理の終了時間に反映することで、依存先のリソースに与える影響（例えば、図１６のグラフ６０９）も考慮することができる。
【発明の効果】
【００１３】
本発明によれば、不稼働情報、リソースの依存関係を考慮して物理リソースを有効に活用できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の仮想化システムの全体構成を示す図である。
【図２】監視対象マシンごとの構成情報のデータ構造とデータ例を示す図である。
【図３】仮想マシンごとの不稼働情報のデータ構造とデータ例を示す図である。
【図４】仮想マシンごとの稼働実績情報のデータ構造とデータ例を示す図である。
【図５】全ての監視対象マシンの構成情報のデータ構造とデータ例を示す図である。
【図６】分析に必要な構成情報を保持する分析対象情報のデータ構造とデータ例を示す図である。
【図７】分析定義情報のデータ構造とデータ例を示す図である。
【図８】分析結果情報のデータ構造とデータ例を示す図である。
【図９】分析マネージャの処理の流れを示すフローチャートである。
【図１０】仮想マシンの適正値生成処理の流れを示すフローチャートである。
【図１１】仮想マシンの組合せに対する相関分析処理の流れを示すフローチャートである。
【図１２】監視対象マシンへの配置処理の流れを示すフローチャートである。
【図１３】相関分析の概念を示す説明図である。
【図１４】分析対象仮想マシン選定の概念を示す説明図である。
【図１５】不稼働情報の考慮によるリソース動作の概要を示す説明図である。
【図１６】不稼働情報とリソースの依存関係を考慮した適正値算出の概念を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態を図面に基づいて詳細に説明する。
図１は、本発明の仮想化システムの全体構成を示す図である。仮想化システムは、監視対象マシン１０１、エージェントマシン１０２（情報収集マシン）、分析マシン１０３を備えている。監視対象マシン１０１は、物理マシンであり、複数の仮想マシン１０４を動作させることが可能であり、収集エージェント１０６に対して、構成情報３０１（図２参照）の情報を提供する。仮想環境を提供する仮想化システムでは、物理マシン上で複数の仮想マシン１０４を稼働させることができる。
【００１６】
エージェントマシン１０２は、収集エージェント１０６が動作するマシンであり、収集エージェント１０６により生成される監視対象情報ＤＢ２０１を保持する。監視対象情報ＤＢ２０１は、監視対象マシン１０１ごとの構成情報３０１と、仮想マシン１０４ごとの不稼働情報３０２（図３参照）、仮想マシン１０４ごとの稼働実績情報３０３（図４参照）により構成される。
【００１７】
分析マシン１０３は、収集マネージャ１０７、構成マネージャ１０８、分析マネージャ１０９が動作するマシンであり、収集マネージャ１０７、構成マネージャ１０８、分析マネージャ１０９により生成される、分析情報ＤＢ２０２を保持する。分析情報ＤＢ２０２は、全ての監視対象マシン１０１の情報を含む構成情報４０１（図５参照）と、全ての仮想マシン１０４の情報を含む分析対象情報４０２（図６参照）と、ユーザにより定義された分析定義情報４０３（図７参照）と、それを基に分析し、導き出された分析結果情報４０４（図８参照）により構成される。
【００１８】
仮想マシン１０４は、仮想化されたマシンであり、監視対象マシン１０１上で動作する。仮想マシン１０４は、収集エージェント１０６に対して、稼働実績情報３０３の情報を提供する。
【００１９】
ハイパーバイザ１０５は、監視対象マシン１０１上で動作するファームウェアであり、各仮想マシン１０４への割り当てリソース量を調整し、限られた物理リソースの範囲内で、全ての仮想マシン１０４が動作できるようにするためのロードバランシング機能を有する。
【００２０】
ハイパーバイザ１０５は、仮想マシン１０４から要求される必要リソース量に対して、その瞬間に割り当て可能なリソース量を判断することでロードバランシングを行うが、同一監視対象マシン１０１上に他の仮想マシン１０４が存在している場合は、全ての仮想マシン１０４を動作させるため、状況によってはその瞬間に必要なリソース量のすべてを割り当てられない場合があり、そこで割り当てられなかったリソース量が、不稼働量として発生する。
【００２１】
ハイパーバイザ１０５は、構成マネージャ１０８からのマイグレーション指示により、監視対象マシン１０１で動作する仮想マシン１０４の配置を動的に変更する機能を有する。ハイパーバイザ１０５は、収集エージェント１０６に対して、不稼働情報３０２の情報を提供する。
【００２２】
収集エージェント１０６は、定期的に自律動作し、複数の監視対象マシン１０１からの構成情報３０１、ハイパーバイザ１０５からの不稼働情報３０２、仮想マシン１０４からの稼働実績情報３０３を収集し、監視対象情報ＤＢ２０１に書き込む機能を有する。
【００２３】
収集マネージャ１０７は、分析マネージャ１０９からの分析情報収集指示により動作し、複数の収集エージェント１０６が収集した不稼働情報３０２、稼働実績情報３０３を収集する。収集マネージャ１０７は、収集した不稼働情報３０２、稼働実績情報３０３から、全ての仮想マシン１０４の情報を含む分析対象情報４０２を生成して、分析情報ＤＢ２０２に書き込む機能と、複数の収集エージェント１０６が収集した構成情報３０１を収集し、構成マネージャ１０８に通知する機能とを有する。
【００２４】
構成マネージャ１０８は、収集マネージャ１０７から監視対象マシン１０１ごとの構成情報３０１を受け取り、全ての監視対象マシン１０１の情報を含む構成情報４０１を生成し、分析情報ＤＢ２０２に書き込む機能と、分析マネージャ１０９からのマイグレーション指示により、構成情報４０１を更新する機能とを有する。
【００２５】
分析マネージャ１０９は、ユーザ定義された分析周期に基づいて自律動作、またはユーザからの分析要求に応じて動作し、収集マネージャ１０７に対して、分析情報収集指示を出すことにより、分析情報ＤＢ２０２にデータを格納させる機能と、分析情報ＤＢ２０２に保持された構成情報４０１、分析対象情報４０２、分析定義情報４０３を基に、適正値の算出と、適正値に対する相関分析を行い、最適な仮想マシン（ＶＭ：Virtual Machine）の組合せを導き出して、分析結果情報４０４を生成する機能と、分析結果情報４０４に基づいて、構成マネージャ１０８に対してマイグレーション指示を出す機能とを有する。
【００２６】
次に、各情報を図２から図８を参照して説明する。
図２は、監視対象マシンごとの構成情報のデータ構造とデータ例を示す図である。図２に示す構成情報３０１は、監視対象マシン１０１の保有リソース量と、監視対象マシン１０１上に存在する仮想マシン１０４を関連付けるための情報を持つテーブルである。構成情報３０１は、監視対象マシンＩＤ、ＣＰＵ性能、メモリ容量、仮想マシンＩＤなどを有している。具体的には、実マシンである監視対象マシンＰＭ１は、ＣＰＵ性能が２．０ＧＨｚ、メモリ容量が８．０ＧＢのリソースがあり、仮想マシンＶＭ１１，ＶＭ１２，ＶＭ１３を有している。
【００２７】
図３は、仮想マシンごとの不稼働情報のデータ構造とデータ例を示す図である。図３に示す不稼働情報３０２は、仮想マシン１０４と不稼働情報を関連付けるための情報を持つテーブルである。不稼働情報３０２は、仮想マシンＩＤ、時刻、対象リソース、不稼働値などを有している。不稼働情報３０２は、仮想マシン１０４からのリソース割り当て要求に対して、不稼働が発生した時点の瞬時値が記録される。
【００２８】
各不稼働値（不稼働量）は、仮想マシンの稼働実績情報３０３に、ハイパーバイザ１０５のロードバランシングにより調整されたリソースを加算し本来必要なリソース量を導き出し、仮想マシンの稼働実績値（稼働実績量）と、ハイパーバイザのロードバランシングにより調整されたリソース量の差である。
【００２９】
図４は、仮想マシンごとの稼働実績情報のデータ構造とデータ例を示す図である。図４に示す稼働実績情報３０３は、仮想マシン１０４と、仮想マシン１０４のリソースごとの稼働実績情報を関連付けるための情報を持つテーブルである。稼働実績情報３０３は、仮想マシン１０４からのリソース割り当て要求に対して、ハイパーバイザ１０５が実際に割り当てたリソース量が、割り当て時点の瞬時値として記録される。稼働実績情報３０３は、仮想マシンＩＤ、時刻、対象リソース、稼働実績値などを有している。
【００３０】
図５は、全ての監視対象マシンの構成情報のデータ構造とデータ例を示す図である。図５に示す構成情報４０１は、全ての監視対象マシン１０１の保有リソース量と、監視対象マシン１０１上に存在する仮想マシン１０４を関連付けるための情報を持つテーブルである。構成情報４０１は、監視対象マシンＩＤ、ＣＰＵ性能、メモリ容量、仮想マシンＩＤなどを有している。監視対象マシン１０１ごとの情報は図２と同じである。
【００３１】
図６は、分析に必要な構成情報を保持する分析対象情報のデータ構造とデータ例を示す図である。図６に示す分析対象情報４０２は、分析に必要な情報を保持するテーブルである。分析対象情報４０２は、仮想マシン１０４ごとに、不稼働情報と稼働実績情報を関連付けて保持しており、仮想マシン１０４がリソースの割り当て要求を行った結果として、実際に割り当てられたリソース量を稼働実績情報として保持し、ロードバランシングにより割り当てできなかったリソース量を不稼働情報として保持する。稼働実績情報と不稼働情報は、それぞれ仮想マシン１０４がリソースの割り当て要求を行った時点に発生した瞬時値である。分析対象情報４０２は、監視対象マシンＩＤ、仮想マシンＩＤ、時刻、対象リソース、不稼働値、稼働実績値などを有している。
【００３２】
図７は、分析定義情報のデータ構造とデータ例を示す図である。図７に示す分析定義情報４０３は、分析で使用する定義情報であり、ユーザが定義し、相関分析処理において使用される。分析定義情報４０３は、組合せ確定相関強度、分析対象期間、分析周期などを有している。組合せ確定相関強度は、分析対象の仮想マシン選定するときに用いられ、図１４の説明のときにさらに詳しく説明する。
【００３３】
図８は、分析結果情報のデータ構造とデータ例を示す図である。図８に示す分析結果情報４０４は、仮想マシン１０４のリソースそれぞれが、本来必要としている適正値を保持する分析結果情報である。分析結果情報４０４は、監視対象マシンＩＤ、仮想マシンＩＤ、時刻、対象リソース、適正値などを有している。
【００３４】
次に、処理の流れについて説明する。
図９は、分析マネージャの処理の流れを示すフローチャートである。分析マネージャー１０９は、処理Ｓ５０１において、仮想マシンの適性値生成処理（図１０参照）を行う。具体的には、全ての仮想マシン１０４の、全てのリソースに対して、適正値を生成する。そして、処理Ｓ５０２において、分析対象の仮想マシンの組合せの有無を判定し、組合せがあれば（処理Ｓ５０２，有）、処理Ｓ５０３に進む。組合せがなければ（処理Ｓ５０２，無）、処理Ｓ５０４に進む。
【００３５】
処理Ｓ５０３において、仮想マシンの組合せに対する適正値の相関分析処理（図１１参照）を行い、処理Ｓ５０２に戻る。全ての組合せに対して相関分析を完了したら、処理Ｓ５０４において、確定した仮想マシンの組合せにより監視対象マシンへの配置処理（図１２参照）を行い、一連の処理を終了する。
【００３６】
なお、処理Ｓ５０２における分析対象の組合せ有無判定方法については、分析対象仮想マシン選定の概念を表現した説明図である図１４を用いて説明する。
【００３７】
図１４は、分析対象仮想マシン選定の概念を示す説明図である。図１４には、組合せを確定する相関強度を−０．８（図７参照）と仮定し、ＶＭ１１からＶＭ１５までの、５台の仮想マシンに対して、全ての仮想マシンの組合せに対して相関分析を実施して、最適な組合せを導き出す例として記載している。
【００３８】
分析対象の仮想マシンは、２つの組合せを選出し、その組合せに対して相関分析を繰り返し実施することで、負の相関強度の高い組合せから組合せを確定する。負の相関関係の高い組合せとは、相関分析した結果が、図７に示す分析定義情報４０３で定義された組合せ確定相関強度よりも小さい値になった組合せのことを指す。
【００３９】
相関分析は、結果として−１〜＋１までの数値で相関強度を表現しており、−１に近い（数値が小さい）ほど、負の相関が高い。従って、確定する組合せは、
「相関分析結果  ≦  （−０．８）」となった組合せである。
【００４０】
図１４では、まず、ＶＭ１１、ＶＭ１２、ＶＭ１３、ＶＭ１４、ＶＭ１５の５台の単体仮想マシン全ての組合せに対して、相関分析を行う。その結果、ＶＭ１１とＶＭ１２、およびＶＭ１３とＶＭ１５の組合せで、−０．８以下の値となっているため、負の相関関係が高い（負の相関関係が強い）と判断して組合せを確定する。
【００４１】
さらに、確定した組合せに対しては、その組合せ結果の適正値から、新たな適正値であるＶＭ１１−１２とＶＭ１３−１５を生成し、確定した組合せであるＶＭ１１−１２とＶＭ１３−１５の適正値を分析対象に加えることで、確定した組合せに含まれていない仮想マシンであるＶＭ１４との相関分析を行う。
【００４２】
結果として、ＶＭ１１、ＶＭ１２、ＶＭ１３、ＶＭ１４、ＶＭ１５と、ＶＭ１１とＶＭ１２の組合せであるＶＭ１１−１２、ＶＭ１３とＶＭ１５の組合せであるＶＭ１３−１５、さらに、ＶＭ１１とＶＭ１２とＶＭ１４の組合せであるＶＭ１１−１２−１４の８パターンが確定した組合せとなる。
【００４３】
図１０は、仮想マシンの適正値生成処理の流れを示すフローチャートである。図１０には、分析マネージャ１０９の処理Ｓ５０１の仮想マシンの適正値生成処理を示す。仮想マシン１０４が算出する適正値として、ＣＰＵ使用率と、メモリ使用量とがある。まず、ＣＰＵ使用率の適正値を導き出す。
【００４４】
処理Ｓ５０５で、ＣＰＵ使用率の不稼働情報３０２の有無を判定する。不稼働情報３０２が発生していれば（処理Ｓ５０５，有）、処理Ｓ５０６に進み、稼働実績情報３０３に不稼働情報３０２を加算して適正値を生成する。具体的には、各時刻でのＣＰＵ使用率の稼働実績値に不稼働値を加算して、次に稼働するときのＣＰＵ使用率の適正値を求め、処理Ｓ５０８に進む。一方、ＣＰＵ使用率に不稼働情報３０２が発生していなければ（処理Ｓ５０５，無）、処理Ｓ５０７により、稼働実績情報を適正値とする。具体的には、各時刻でのＣＰＵ使用率の稼働実績値を次に稼働するときのＣＰＵ使用率の適正値とし、処理Ｓ５０９に進む。
【００４５】
処理Ｓ５０８において、不稼働情報３０２（不稼働値）を加算したことにより、ＣＰＵ使用時間の変化を定積分により算出する。すなわち、ＣＰＵ使用率に変動があった場合、予定終了時間を補正する処理である。予定終了時間は、ＣＰＵ使用率と時間の関係を面積として捉え、ＣＰＵ使用率の定積分値を使って算出できる。
【００４６】
定積分値は、特定の時間ごとのＣＰＵ使用率から求められる微小面積を基準とし、全ての時間に対する微小面積を足し合わせることで、処理ごとに必要なＣＰＵ使用率の面積を求めることができる。
【００４７】
処理を完結させるために必要なＣＰＵ使用率の面積は変わらないため、不稼働情報３０２の加算による値の変動を反映し、特定のタイミングでＣＰＵ使用率が増加することにより、終了時間は変動することになる。処理Ｓ５０８における処理の概念は、不稼働情報３０２の考慮によるリソース動作の概要を表現した説明図である図１５により説明する。
【００４８】
図１５は、不稼働情報の考慮によるリソース動作の概要を示す説明図である。稼働実績情報３０３に不稼働情報３０２を加算した予定ＣＰＵ使用率６０４は、不稼働情報３０２を加算していない稼働実績ＣＰＵ使用率６０５に対して、時間０、１、２、３のタイミングでＣＰＵ使用率が増加しているため、時間０、１、２、３のタイミングで処理できる量が、稼働実績ＣＰＵ使用率６０５よりも増加する。処理を完結させるために必要なＣＰＵ使用率の面積は変わらないため、ＣＰＵ使用率が増加すると必要な処理時間は減少する。なお、予定ＣＰＵ使用率６０４は、予定稼働情報のひとつである。
【００４９】
具体的には、稼働実績ＣＰＵ使用率６０５は、合計で３３０％（＝４０＋６０＋７０＋７０＋５０＋４０）のＣＰＵ使用率が必要となるが、稼働実績情報３０３に不稼働情報３０２を加算した予定ＣＰＵ使用率６０４は、不稼働情報３０２を加算したことにより、時間０から３までの面積だけで３００％（＝５０＋７０＋９０＋９０）となり、時間４以降で３０％のＣＰＵ使用率を確保できれば良いことになる。従って、時間４で３０％の使用率を確保することにより、従来の時間６到達前の時間５（予定終了時間）に処理を完了でき、処理時間を減少することができる。
【００５０】
図１０に戻り、処理Ｓ５０９以降は、メモリ使用量の適正値を導き出す処理であり、考え方はＣＰＵ使用率の算出方法と同じである。処理Ｓ５０９で、メモリ使用量の不稼働情報３０２の有無を判定する。不稼働情報３０２が発生していれば（処理Ｓ５０９，有）、処理Ｓ５１０に進み、稼働実績情報３０３に不稼働情報３０２を加算して適正値を生成する。具体的には、各時刻でのメモリ使用量の稼働実績値に不稼働値を加算して、次に稼働するときのＣＰＵ使用率の適正値を求め、処理Ｓ５１２に進む。一方、メモリ使用量に不稼働情報３０２が発生していなければ（処理Ｓ５０９，無）、処理Ｓ５１１により、稼働実績情報を適正値とする。具体的には、各時刻でのメモリ使用量の稼働実績値を次に稼働するときのメモリ使用量の適正値とし、処理を終了する。
【００５１】
処理Ｓ５１２において、ＣＰＵ使用時間の変化に応じて、メモリ使用時間を補正する。すなわち、ＣＰＵ使用率との依存関係により処理終了時間を補正する処理である。メモリを使用する期間は、ＣＰＵが動作している期間内であり、ＣＰＵ使用率の変動により終了時間（予定終了時間）が変わった場合、その終了時間にあわせて、メモリが必要な時間も補正する必要がある。不稼働情報３０２とリソースの依存関係を考慮した適正値算出の概念を表現した説明図である図１６により、さらに説明する。
【００５２】
図１６は、不稼働情報とリソースの依存関係を考慮した適正値算出の概念を示す説明図である。不稼働情報加算前のＣＰＵ使用率のグラフ６０６から、不稼働情報を加算し、ＣＰＵ使用率の定積分値から終了時間を補正したグラフ６０７が生成されることにより、不稼働情報加算前のメモリ使用量のグラフ６０８が、不稼働情報を加算し、ＣＰＵ使用率終了時間（ＣＰＵの予定終了時間）から、メモリ使用量の終了時間（メモリの予定終了時間）を補正したグラフ６０９のように変化する。
【００５３】
図１１は、仮想マシンの組合せに対する相関分析処理の流れを示すフローチャートである。図１１には、分析マネージャ１０９の処理Ｓ５０３の適正値の相関分析処理を示す。処理Ｓ５１３は、まだ相関分析していない２つの適正値の組合せに対して、ユーザにより定義された分析対象期間（図７参照）の相関分析を行い相関強度を算出する。処理Ｓ５１３での相関強度算出処理の概念は、相関分析の概念を表現した説明図である図１３により説明する。
【００５４】
図１３は、相関分析の概念を示す説明図である。相関分析は、２変数の規則的関係を表しており、２変数が同じ傾向を示すことを、正の相関があると言い、２変数が逆の傾向を示すことを、負の相関があると言う。相関分析は、結果として−１〜＋１までの数値で相関強度を表現され、同じ傾向が強い（正の相関が高い）と＋１に近づき、逆の傾向が強い（負の相関が高い）と−１に近づく。従って、全く同じ動きをする２変数を相関分析した結果は＋１となり、全く逆の動きをする２変数を相関分析した結果は−１となる。リソースを有効に利用するためには、負の相関関係が最も高く、かつ加算した結果がリソース範囲内に収まる組合せが最適である。具体的には、図１３に示すように、グラフａにグラフｂを加算するとグラフｃが得られる。
【００５５】
図１３では、仮想マシンＡのＣＰＵ使用率６０１と、仮想マシンＢのＣＰＵ使用率６０２との、２変数分析対象データを単純加算により組合せた結果６０３が示されている。組合せた結果６０３は、縦軸方向（ＣＰＵ使用率方向）に変動しない結果となっており、これは、仮想マシンＡのＣＰＵ使用率６０１と、仮想マシンＢのＣＰＵ使用率６０２は、負の相関が高い（強い）ことを示す。
【００５６】
図１１に戻り、処理Ｓ５１４において、処理Ｓ５１３で算出した相関強度が、ユーザにより定義された組合せ確定相関強度よりも小さい値かどうか（相関性の強弱）を判定する。相関性が強ければ、すなわち、相関強度がユーザにより定義された組合せ確定相関強度よりも小さい値であれば（処理Ｓ５１４，強）、処理Ｓ５１５に進む。処理Ｓ５１５において、２つの適正値を加算して新たな仮想的な適正値を生成し分析対象とし、処理Ｓ５１３に戻る。一方、相関性が弱ければ、すなわち、相関強度がユーザにより定義された組合せ確定相関強度よりも大きい値であれば（処理Ｓ５１４，弱）、処理を終了する。
【００５７】
本実施形態では、組合せ結果データから、ひとつの新たな適正値を生成する。この新たな適正値は、分析対象適正値として追加することで、３つ以上の仮想マシンの組合せを分析可能となる。
【００５８】
図１２は、監視対象マシンへの配置処理の流れを示すフローチャートである。図１２には、分析マネージャ１０９の処理Ｓ５０４の物理マシンへの配置処理を示す。処理Ｓ５１６で、物理マシンへの配置を検証していない組合せ結果データがあるかどうか（未検証の組合せ有無）を判定し、検証していない組合せ結果データがあれば（処理Ｓ５１６，有）、処理Ｓ５１７に進み、検証していない組合せ結果データがなければ（処理Ｓ５１６，無）、処理終了となる。
【００５９】
処理Ｓ５１７において、組合せ結果データを配置可能な監視対象マシンがあるかどうか（有無）を判定する。配置可能な監視対象マシンがある場合（処理Ｓ５１７，有）、処理Ｓ５１８に進み、配置可能な監視対象マシンがない場合（処理Ｓ５１７，無）、処理Ｓ５１６へ戻る。組合せ結果データで必要なリソース量を許容できる監視対象マシンがなければ、その組合せは配置不可能となる。
【００６０】
処理Ｓ５１８において、監視対象マシンのリソースを使用する割合が最も高くなる組合せ結果データを選択し、処理Ｓ５１９に進む。
【００６１】
処理Ｓ５１９において、配置候補の有効性判定を行う。配置候補の有効性判定とは、他の仮想マシンと監視対象マシンの組合せよりもリソース使用の割合が多いかどうかを判定する処理である。判定対象となる適正値よりも、リソースを使用する割合が高い組合せが他にあった場合は、その組合せを優先する。配置候補が有効であれば（処理Ｓ５１９，有効）、処理Ｓ５２０に進み、配置候補が有効でなければ（処理Ｓ５１９，無効）、処理Ｓ５１６に戻る。
【００６２】
処理Ｓ５２０において、分析結果情報４０４の生成処理を行い、配置する監視対象マシンと適正値を結果情報として保存する。そして、処理Ｓ５２１において、分析マネージャ１０９は構成マネージャ１０８にマイグレーション指示を出し、構成マネージャ１０８はハイパーバイザ１０５にマイグレーション指示をし、処理Ｓ５１６に戻る。なお、指示を受理したハイパーバイザ１０５は、マイグレーションを実施する。
【００６３】
本実施形態によれば、不稼働情報や、リソースの依存関係を考慮してリソースの適正値を導き出せる。また、適正値を相関分析することで、物理リソースを最も有効に活用できる仮想マシンの組合せを決定することができる。
【００６４】
本実施形態の仮想化システムは、仮想マシンの配置を変更するハイパーバイザを有する物理マシン（例えば、監視対象マシン１０１）と、仮想マシンの構成情報、リソースの稼働実績情報、およびリソースの不稼働情報を含む情報を取得する情報収集マシン（例えば、エージェントマシン１０２）と、情報収集マシンから情報を取得し、仮想マシンのマイグレーション指示をハイパーバイザ１０５にする分析マシン１０３と、を備える。この仮想化システムにおいて、仮想マシンのリソースの適正値を算出し、算出したリソースの適正値に基づいてハイパーバイザへマイグレーション指令をする仮想化システム制御方法である。
【００６５】
分析マシン１０３は、所定の処理に必要なリソースの適正値を算出する際に、仮想マシンのリソースの稼働実績情報にリソースの不稼働情報を加算してリソースの予定稼働情報を求め（例えば、ステップＳ５０６）、不稼働情報を加算による稼働実績情報の変動を、予定稼働情報に基づいて定積分により特定の時間ごとの微小面積の総和として算出し（例えば、ステップＳ５０８）、所定の処理に必要な総和を満たす予定終了時間を算出する。具体的には、所定の処理に必要なリソースの適正値として、図１５に示す予定ＣＰＵ使用率６０４は、リソースの稼働実績情報に不稼働情報を加算した上で、時間５が予定終了時間として得られる。
【００６６】
分析マシン１０３は、所定の処理に必要なリソースの適正値を算出する際に、リソースのひとつはＣＰＵであり、ＣＰＵに依存するリソースであるメモリに対して、メモリが使用される予定終了時間をＣＰＵの予定終了時間に補正する。具体的には、図１６に示すグラフ６０７とグラフ６０９との関係である。
【符号の説明】
【００６７】
１０１    監視対象マシン（物理マシン）
１０２    エージェントマシン（情報収集マシン）
１０３    分析マシン
１０４    仮想マシン
１０５    ハイパーバイザ
１０６    収集エージェント
１０７    収集マネージャ
１０８    構成マネージャ
１０９    分析マネージャ
２０１    監視対象情報ＤＢ
２０２    分析情報ＤＢ
３０１    構成情報
３０２    不稼働情報
３０３    稼働実績情報
４０１    構成情報
４０２    分析対象情報
４０３    分析定義情報
４０４    分析結果情報
Ｓ５０１    処理（仮想マシンの適正値生成処理）
Ｓ５０２    処理（分析対象の組合せ有無判定）
Ｓ５０３    処理（適正値の相関分析処理）
Ｓ５０４    処理（物理マシンへの配置処理）
【図１】
2010277208.tif 000003
【図２】
2010277208.tif 000004
【図３】
2010277208.tif 000005
【図４】
2010277208.tif 000006
【図５】
2010277208.tif 000007
【図６】
2010277208.tif 000008
【図７】
2010277208.tif 000009
【図８】
2010277208.tif 000010
【図９】
2010277208.tif 000011
【図１０】
2010277208.tif 000012
【図１１】
2010277208.tif 000013
【図１２】
2010277208.tif 000014
【図１３】
2010277208.tif 000015
【図１４】
2010277208.tif 000016
【図１５】
2010277208.tif 000017
【図１６】
2010277208.tif 000018