(57)【要約】【課題】仮想マシンが物理マシンにかける負荷の判定を短い時間かつ高い精度で行える技術を提供する。【解決手段】仮想マシン管理装置２０００は、負荷統計情報取得部２０２０及び過負荷率上界値算出部２０４０を有する。負荷統計情報取得部２０２０は、対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する。過負荷率上界値算出部２０４０は、対象仮想マシンによって対象物理マシンにかかる負荷が、対象物理マシンによって許容される負荷を超える確率の、上界値を算出する。【選択図】図１
2015022321.tif 000002
【特許請求の範囲】
【請求項１】
対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得手段と、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出手段と、
を有する仮想マシン管理装置。
【請求項２】
前記過負荷率上界値算出手段によって算出された前記上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させることができるか否かを判定する動作可否判定手段と、
前記動作可否判定手段によって、前記対象物理マシンが前記対象仮想マシンを動作させられると判定された場合のみ、前記対象仮想マシンを前記対象物理マシンに配置する配置手段と、
を有する請求項１に記載の仮想マシン管理装置。
【請求項３】
前記過負荷率上界値算出手段は、チェビシェフの不等式又はチェビシェフの不等式を変形して得られる不等式を用いて、前記上界値を算出する、請求項１又は２に記載の仮想マシン管理装置。
【請求項４】
前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得手段と、
前記負荷履歴情報に示されている負荷の、平均及び分散を算出することで、負荷統計情報を生成する負荷統計情報生成手段と、を有し、
前記負荷統計情報取得手段は、前記負荷統計情報生成手段によって算出された前記負荷統計情報を取得する、
請求項１乃至３いずれか一項に記載の仮想マシン管理装置。
【請求項５】
複数の対象仮想マシンが前記対象物理マシン上で動作しており、
前記複数の対象仮想マシンそれぞれについて、その対象仮想マシンを除く全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値と、その対象仮想マシンを含む全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値との違いから、前記対象物理マシンに対するその対象仮想マシンの影響度を算出する、影響度算出手段と、
前記複数の対象仮想マシンのうち、前記影響度が最も大きい対象仮想マシンを、前記対象物理マシンの外部へ移行する対象仮想マシンにする、移行対象決定手段と、
を有する請求項１乃至４いずれか一項に記載の仮想マシン管理装置。
【請求項６】
前記対象仮想マシンの数を取得する対象仮想マシン数取得手段と、
前記対象仮想マシンの数に基づいて、複数の判定方式の中から、前記動作可否判定手段によって実行される前記判定方式を選択する判定方式選択手段と、を有し、
前記動作可否判定手段は、前記判定方式選択手段によって選択された前記判定方式を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う、
請求項２に記載の仮想マシン管理装置。
【請求項７】
前記複数の判定方式は、
各前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得し、各負荷情報が示す前記確率分布の畳み込みを算出することで、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を算出し、算出した確率分布を用いて、前記対象仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率である過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第１判定方式と、
前記過負荷率上界値算出手段によって算出された前記過負荷率の上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第２判定方式と、
各前記対象仮想マシンに関する前記負荷統計情報を用いて、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を表す正規分布を算出し、算出した正規分布を用いて、前記過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第３判定方式と、
のうち、いずれか複数を含み、
前記複数の判定方式が前記第１判定方式を含む場合、前記負荷情報を取得する負荷情報取得手段を有する、
請求項６に記載の仮想マシン管理装置。
【請求項８】
前記判定方式選択手段は、
前記対象仮想マシンの数が第１閾値以下の場合、前記第１判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第１閾値より大きくかつ第２閾値以下である場合、前記第２判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第２閾値より大きい場合、前記第３判定方式を前記判定方式として選択する、
請求項７に記載の仮想マシン管理装置。
【請求項９】
代表的な仮想マシンである代表仮想マシンが物理マシンにかける負荷の平均及び分散を示す代表統計情報を取得する、代表統計値取得手段と、
前記代表統計情報を用いて、複数の前記代表仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率の上界値を算出し、その上界値に基づいて、前記対象物理マシン上で動作させることができる前記代表仮想マシンの数である予測稼働数を算出する予測稼働数算出手段を有し、
前記対象仮想マシン数取得手段は、前記予測稼働数算出手段によって算出された予測稼働数を、前記対象仮想マシンの数として取得する、
請求項６乃至８いずれか一項に記載の仮想マシン管理装置。
【請求項１０】
前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得する、負荷情報取得手段と、
前記負荷情報に示される負荷の確率分布から、その負荷の平均及び分散を算出することで、前記負荷統計情報を生成する、負荷統計情報生成手段を有する、請求項１乃至９いずれか一項に記載の仮想マシン管理装置。
【請求項１１】
前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得手段と、
前記負荷履歴情報に示されている負荷の履歴から、その負荷の確率分布を算出することで、前記負荷情報を生成する、負荷情報生成手段と、
を有し、
前記負荷情報取得手段は、前記負荷情報生成手段によって生成された前記負荷情報を取得する、
請求項７乃至１０いずれか一項に記載の仮想マシン管理装置。
【請求項１２】
コンピュータによって実行される仮想マシン管理方法であって、
対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得ステップと、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出ステップと、
を有する仮想マシン管理方法。
【請求項１３】
コンピュータに、仮想マシン管理装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得機能と、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出機能と、
を持たせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンを管理する技術に関する。
【背景技術】
【０００２】
一台の物理マシンに対して、より多くの仮想マシンを集約することで、仮想マシンを動作させるために必要な物理マシンの数を減らすことができる。これにより、例えば、消費電力の削減などの効果が得られる。ただし、仮想マシンを少数の物理マシンへ集約する際、一台の物理マシンに対して過剰に仮想マシンを集約すると、各仮想マシンの性能が低下する可能性がある。これは、物理マシンに過剰な負荷がかかってしまい、物理マシンが持つ計算機リソースが不足してしまうためである。したがって、仮想マシンを物理マシン上で動作させる場合、その仮想マシンによってその物理マシンにかかる負荷を考慮し、物理マシンの計算機リソースが不足しないようにする必要がある。
【０００３】
例えば特許文献１は、物理マシン上で動作させる各仮想マシンのリソース使用量のピークが重ならないようにすることで、仮想マシンの性能低下を防ぐ技術を開示している。特許文献１において、仮想マシンのリソース使用量の経時変化は、特定の関数で表される。また、特許文献２や非特許文献１は、仮想マシンのリソース使用量を確率分布としてモデル化することで、仮想マシンを配置した後の、物理マシンのリソース使用量を予測する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１１７７６０
【特許文献２】特願２０１１−１５６９２５
【非特許文献】
【０００５】
【非特許文献１】Ming Chen、Hui Zhang、Ya-Yunn Su、Xiaorui Wang、Guofei Jiang、Kenji Yoshihira、「Effective VM sizing in virtualized data centers」、2011 IFIP/IEEE International Symposium on Integrated Network Managemento、pp.594-601
【発明の概要】
【発明が解決しようとする課題】
【０００６】
仮想マシンのリソース使用量は、特定の関数に精度よく回帰できない場合がある。その場合、その仮想マシンを動作させた場合における物理マシンのリソース使用量を、正確に予測することが難しい。一方、確率分布を用いて仮想マシンのリソース使用量をモデル化する場合、仮想マシンのリソース使用量を正確にモデル化することができる。しかし、物理マシン上で多くの仮想マシンを動作させた場合、確率分布を用いて仮想マシンのリソース使用量をモデル化する手法は、計算のコストが大きい。その結果、物理マシンのリソース使用量を予測するためにかかる時間が長くなる。
【０００７】
本発明は、以上の課題に鑑みてなされたものである。本発明の目的は、仮想マシンが物理マシンにかける負荷の判定を短い時間かつ高い精度で行える技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明が提供する仮想マシン管理装置は、対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得手段と、前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出手段と、を有する。
【０００９】
本発明が提供するプログラムは、コンピュータに、本発明が提供する仮想マシン管理装置として動作する機能を持たせる。当該プログラムは、コンピュータに、上記仮想マシン管理装置が有する各機能構成部の機能を持たせる。
【００１０】
本発明が提供する仮想マシン管理方法は、コンピュータによって実行される。当該仮想マシン管理方法は、対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得ステップと、前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出ステップと、を有する。
【発明の効果】
【００１１】
本発明によれば、仮想マシンが物理マシンにかける負荷の判定を短い時間かつ高い精度で行える技術が提供される。
【図面の簡単な説明】
【００１２】
【図１】実施形態１に係る仮想マシン管理装置を示すブロック図である。
【図２】負荷統計情報の構成を例示する図である。
【図３】実施形態１に係る仮想マシン管理装置のハードウエア構成を例示するブロック図である。
【図４】実施形態１に係る仮想マシン管理装置によって実行される処理の流れを示すフローチャートである。
【図５】実施形態２に係る仮想マシン管理装置を示すブロック図である。
【図６】実施形態２の仮想マシン管理装置が行う仮想マシンの配置の例示する図である。
【図７】実施形態２に係る仮想マシン管理装置によって実行される処理の流れを示すフローチャートである。
【図８】実施形態３に係る仮想マシン管理装置を示すブロック図である。
【図９】負荷履歴情報の構成を例示する図である。
【図１０】実施形態３に係る仮想マシン管理装置によって実行される処理の流れを示すフローチャートである。
【図１１】実施例１に係る仮想マシン管理装置を、その使用環境と共に示すブロック図である。
【図１２】仮想マシンによる負荷及び仮想マシンの配置を示す図である。
【図１３】実施形態４に係る仮想マシン管理装置を示すブロック図である。
【図１４】実施形態４に係る仮想マシン管理装置によって実行される処理の流れを示すフローチャートである。
【図１５】実施形態５に係る仮想マシン管理装置を示すブロック図である。
【図１６】負荷情報の構成を例示する図である。
【図１７】実施形態５に係る仮想マシン管理装置によって実行される処理の流れを示すフローチャートである。
【図１８】実施形態６に係る仮想マシン管理装置を示すブロック図である。
【図１９】実施形態７に係る仮想マシン管理装置を示すブロック図である。
【図２０】実施形態８に係る仮想マシン管理装置を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１４】
[実施形態１]
図１は、実施形態１に係る仮想マシン管理装置２０００を示すブロック図である。図１において、矢印の流れは情報の流れを示している。また、図１において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。
【００１５】
仮想マシン管理装置２０００は、物理マシン上で動作させる仮想マシンが、その物理マシンにかける負荷を、確率的な値を用いて予測する。仮想マシン管理装置２０００は、確率的な値を用いることにより、仮想マシンが物理マシンにかける負荷の不確実性を、定量的に予測する。ここで、仮想マシン管理装置２０００が負荷を予測する対象の物理マシンを、対象物理マシンと呼ぶ。また、対象物理マシン上で動作させる仮想マシンを、対象仮想マシンと呼ぶ。対象仮想マシンは、１つであってもよいし、複数であってもよい。ここにおける物理マシンとは、種々の計算機である。例えば物理マシンは、PC (Personal Computer)、サーバ、及び携帯型計算機などである。また、ここにおける仮想マシンとは、ソフトウエアによって生成された仮想的なハードウエアで構成される、仮想的な計算機である。例えば仮想マシンは、仮想マシンモニタやエミュレータなどによって生成及び管理される。そして、ある物理マシン上で動作する仮想マシンは、その物理マシンが持つ計算機リソースを使用して動作する。計算機リソースは、CPU、メモリ、ストレージ、及びネットワークインタフェースなど、物理マシンが持つ種々のハードウエアである。
【００１６】
仮想マシン管理装置２０００は、負荷統計情報取得部２０２０及び過負荷率上界値算出部２０４０を有する。以下、それぞれについて詳しく説明する。
【００１７】
＜負荷統計情報取得部２０２０＞
負荷統計情報取得部２０２０は、負荷統計情報を取得する。負荷統計情報は、対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す。仮想マシンが物理マシンにかける負荷は、例えば、その仮想マシンによって使用される、物理マシンの計算機リソースの量である。仮想マシンによって使用される物理マシンの計算機リソースの量は、例えば、単位時間当たりに使用される計算機リソースの量を示す、リソース使用率で表される。
【００１８】
仮想マシンが物理マシンにかける負荷は、仮想マシンが使用する複数の計算機リソースのうち、１つの計算機リソースのみに関する値で表されてもよいし、複数の計算機リソースに関する値で表されてもよい。前者の場合、例えばその負荷は、その仮想マシンが最も使用している計算機リソースに関する値や、管理者が着目したい計算機リソースに関する値である。後者の場合、例えばその負荷は、その仮想マシンによる各計算機リソースの使用量の平均などで表される。ただし、仮想マシンが物理マシンにかける負荷の表し方は、これらに限定されない。
【００１９】
対象仮想マシンに関する負荷統計情報は、例えばその対象仮想マシンが対象物理マシンにかける負荷に関する情報である。また、対象仮想マシンに関する負荷統計情報は、その対象仮想マシンが対象物理マシン以外の物理マシンにかける負荷に関する情報であってもよい。例えば、対象物理マシンが既に運用されている場合、対象仮想マシンが対象物理マシンにかける負荷を実測しようとすると、既に運用されているサービスに影響を及ぼす場合がある。例えばこのような場合、対象仮想マシンが対象物理マシン以外の物理マシンにかける負荷を実測することで算出された負荷の平均及び分散を、対象仮想マシンが対象物理マシンにかける負荷の平均及び分散の代わりに用いてもよい。この場合、実測に用いる物理マシンは、対象物理マシンと同様のハードウエア構成及びソフトウエア構成を有することが好ましい。
【００２０】
図２は、負荷統計情報の構成を例示する図である。図２において、負荷統計情報は、テーブル形式で表されている。図２に示されている負荷統計情報を、負荷統計情報テーブル１００と表記する。負荷統計情報テーブル１００は、仮想マシン ID １０２、平均１０４、及び分散１０６を有する。仮想マシン ID １０２は、各対象仮想マシンの ID を示す。そして、負荷統計情報テーブル１００の各レコードは、仮想マシン ID １０２で特定される対象仮想マシンが物理マシンにかける負荷の平均と分散のそれぞれを、平均１０４と分散１０６に示す。
【００２１】
負荷統計情報取得部２０２０が負荷統計情報を取得する方法は様々である。例えば負荷統計情報取得部２０２０は、仮想マシン管理装置２０００の内部で生成される負荷統計情報、又は仮想マシン管理装置２０００の内部に格納されている負荷統計情報を取得する。その他にも例えば、負荷統計情報取得部２０２０は、仮想マシン管理装置２０００の外部から、負荷統計情報の入力を受け付ける。この場合、負荷統計情報は、手動で入力されてもよいし、外部の装置から入力されてもよい。
【００２２】
仮想マシンに関する負荷統計情報は、その仮想マシンを実際に物理マシン上で動作させて計測した実測値から生成されてもよいし、シミュレーションや経験則に基づく予測値から生成されてもよい。
【００２３】
＜過負荷率上界値算出部２０４０＞
過負荷率上界値算出部２０４０は、対象仮想マシンによって対象物理マシンにかかる負荷が、対象物理マシンによって許容される負荷を超える確率の、上界値を算出する。ここで、対象仮想マシンによって対象物理マシンにかかる負荷が、対象物理マシンによって許容される負荷を超える確率を、過負荷率と表記する。また、ここで、対象物理マシンによって許容される負荷の閾値を、負荷閾値と表記する。つまり、過負荷率は、対象仮想マシンによって対象物理マシンにかかる負荷が、対象物理マシンの負荷閾値を超える確率とも表現できる。さらに、過負荷率は、ある単位時間内において、対象物理マシン上で動作する仮想マシンによって対象物理マシンにかかる負荷が、対象物理マシンの負荷閾値を超える時間の割合とも表現できる。ここで、過負荷率上限値算出部２０４０が算出する確率の上界値は、確率の上界値の近似値など、確率の上界値に近いと考えられる値でもよい。
【００２４】
過負荷率上界値算出部２０４０は、負荷統計情報取得部２０２０によって取得された負荷統計情報を用いて、過負荷率の上界値を算出する。ここで、負荷統計情報が、対象仮想マシンが対象物理マシン以外の物理マシンにかける負荷に関する情報を示している場合、過負荷率上界値算出部２０４０は、この負荷統計情報が示す情報を、対象仮想マシンが対象物理マシンにかける負荷に関する情報とみなして扱う。以降で説明する過負荷率上界値算出部２０４０の各動作においても、同様である。
【００２５】
過負荷率上界値算出部２０４０が過負荷率の上界値を算出する方法の具体例を説明する。例えば、過負荷率上界値算出部２０４０は、過負荷率の上界値を、チェビシェフの不等式又はその変形式を用いて算出する。チェビシェフの不等式は、以下の数式（１）で表される不等式である。X は、平均が E(X)、かつ分散が V(X) である確率変数である。a は、任意の非負実数である。P() は、() 内に示されている事象が起こる確率である。
【数１】
2015022321.tif 000003
【００２６】
チェビシェフの不等式を用いて数２に示す式変形を行うことで、数式（２）が導かれる。ここで、Ｔは任意の実数である。
【数２】
2015022321.tif 000004
【００２７】
過負荷率の上界値は、例えば数式（２）を用いて算出することができる。以下、その理由を説明する。まず、数２の各変数を、以下のように扱う。X は、対象仮想マシンが対象物理マシンにかける負荷の大きさを表す確率変数とする。なお、対象仮想マシンが複数ある場合、X は、各対象仮想マシンが対象物理マシンにかける負荷の合計である。そして、T は、対象物理マシンの負荷閾値であるとする。こうすることで、数式（２）の左辺は、対象仮想マシンが対象物理マシンにかける負荷 X が、対象物理マシンによって許容される負荷を示す負荷閾値 T を超える確率、つまりは過負荷率を表す。そのため、数式（２）の右辺を計算することで、過負荷率の上界値を算出できる。
【００２８】
ここで、前述したように、E(X) と V(X) はそれぞれ、X の平均と分散である。そのため、X を、対象仮想マシンが対象物理マシンにかける負荷の大きさを表す確率変数とする場合、E(X) と V(X) はそれぞれ、対象仮想マシンが対象物理マシンにかける負荷の平均と分散となる。なお、対象仮想マシンが複数ある場合、E(X) と V(X) はそれぞれ、各対象仮想マシンが対象物理マシンにかける負荷の、平均の合計と分散の合計である。したがって、数式（２）の右辺は、負荷統計情報及び対象物理マシンの負荷閾値を用いて計算することができる。そこで、過負荷率上界値算出部２０４０は、負荷統計情報及び対象物理マシンの負荷閾値を用いて数式（２）の右辺を計算することで、過負荷率の上界値を算出する。過負荷率上界値算出部２０４０は、仮想マシン管理装置２０００の内部に格納されている負荷閾値を取得してもよいし、仮想マシン管理装置２０００の外部から負荷閾値を取得してもよい。
【００２９】
また、チェビシェフの不等式を用いて数３に示す式変形を行うことで、数式（３）が導かれる。各変数の意味は、前述した通りである。過負荷率上界値算出部２０４０は、数式（３）の右辺を計算することで得られる値を、過負荷率の上界値としてもよい。ここで、数３の２行目の「P(|X-E(X)|>=T-E(X))」は、「X>=E(X) の場合における P(X-E(X)>=T-E(X))」と、「X<E(X) の場合における P(E(X)-X>=T-E(X))」との和に等しい。また、「X>=E(X) の場合における P(X-E(X)>=T-E)」と「X<E(X) の場合における P(E(X)-X>=T-E(X))」の値がほぼ等しいと仮定すれば、「P(|X-E(X)|>=T-E(X))/2= P(X-E(X)>=T-E(X))」とみなせる。そこで、数３の１行目の右辺を、２行目の式に変形できる。ただし、数３の２行目の式は、「P(|X-E(X)|>=T-E(X))」を２以外の数値で割る式であってもよい。
【数３】
2015022321.tif 000005
【００３０】
＜ハードウエア構成＞
仮想マシン管理装置２０００が有する各機能構成部は、例えば、個々に又は複数組み合わせられた状態で、少なくとも１つのハードウエア構成要素として実現される。その他にも例えば、各機能構成部は、少なくとも１つのソフトウエア構成要素として実現される。その他にも例えば、各機能構成部は、ハードウエア構成要素とソフトウエア構成要素の組み合わせにより実現される。
【００３１】
図３は、仮想マシン管理装置２０００のハードウエア構成を例示するブロック図である。図３において、仮想マシン管理装置２０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、及びストレージ１０８０を有する。ただし、仮想マシン管理装置２０００のハードウエア構成は、図３に示す構成に限定されない。例えば、負荷統計情報取得モジュール１２２０や過負荷率上界値算出モジュール１２４０は、メモリ１０６０に格納されてもよい。この場合、仮想マシン管理装置２０００は、ストレージ１０８０を備えていなくてもよい。
【００３２】
バス１０２０は、プロセッサ１０４０、メモリ１０６０、及びストレージ１０８０が、相互にデータを送受信するためのデータ伝送路である。プロセッサ１０４０は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ１０６０は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ１０８０は、例えばハードディスク、USB (Universal Serial Bus) メモリ、又は SSD (Solid State Drive) などの記憶装置である。また、ストレージ１０８０は、RAM や ROM 等のメモリであってもよい。
【００３３】
負荷統計情報取得モジュール１２２０は、仮想マシン管理装置２０００に、負荷統計情報取得部２０２０の機能を持たせるためのプログラムである。プロセッサ１０４０は、負荷統計情報取得モジュール１２２０を実行することで、負荷統計情報取得部２０２０の機能を実現する。
【００３４】
過負荷率上界値算出モジュール１２４０は、仮想マシン管理装置２０００に、過負荷率上界値算出部２０４０の機能を持たせるためのプログラムである。プロセッサ１０４０は、過負荷率上界値算出モジュール１２４０を実行することで、過負荷率上界値算出部２０４０の機能を実現する。
【００３５】
例えばプロセッサ１０４０は、上記各モジュールをメモリ１０６０上に読み出して実行する。ただし、プロセッサ１０４０は、上記各モジュールを、メモリ１０６０上に読み出さずに実行してもよい。
【００３６】
ストレージ１０８０は、負荷統計情報取得モジュール１２２０及び過負荷率上界値算出モジュール１２４０を格納する。
【００３７】
＜処理の流れ＞
図４は、実施形態１に係る仮想マシン管理装置２０００が行う処理の流れを示すフローチャートである。ステップＳ１０２において、負荷統計情報取得部２０２０は、対象物理マシン上で動作させる対象仮想マシンについて、負荷統計情報を取得する。ステップＳ１０４において、過負荷率上界値算出部２０４０は、対象仮想マシンが対象物理マシンにかける負荷が、対象物理マシンの負荷閾値を超える確率である過負荷率の、上界値を算出する。
【００３８】
＜作用・効果＞
本実施形態の仮想マシン管理装置２０００は、仮想マシンが物理マシンにかける負荷の平均及び分散を用いて、過負荷率の上界値を算出する。そのため、本実施形態の仮想マシン管理装置２０００によれば、仮想マシンが物理マシンにかける負荷の変動が特定の関数に精度よく回帰できない場合であっても、物理マシンにかかる負荷を高い精度で判定できる。
【００３９】
ここで、物理マシンにかける負荷は、各仮想マシンが物理マシンにかける負荷の和で求めることができる。負荷の確率分布が特定の関数に精度よく回帰できない場合、ノンパラメトリックな分布を用いることで、物理マシンの負荷の確率分布を精度良く求めることが可能になる。しかしノンパラメトリックな分布を用いる場合、物理マシンの負荷の確率分布を求める計算の計算コストが大きくなってしまう。例えば、負荷の確率分布をヒストグラムで表し、ヒストグラムの分割数を k、対象仮想マシンの数を N とすると、計算コストは O(k^N） である。一方、本実施形態の仮想マシン管理装置２０００は、各仮想マシンが物理マシンにかける負荷の平均及び分散を用いることで、物理マシンにかかる負荷が閾値を超過する確率を予測する。この計算コストは、各仮想マシンが物理マシンにかける負荷の和の確率分布を計算するコストよりも小さい。例えば、チェビシェフの不等式を用いた場合、対象仮想マシンの数を N とすると、計算コストは O(N) である。そのため、本実施形態の仮想マシン管理装置２０００によれば、物理マシン上で動作させる仮想マシンの数が多い場合であっても、仮想マシンが物理マシンにかかる負荷を短い時間で判定できる。
【００４０】
[実施形態２] 
図５は、実施形態２に係る仮想マシン管理装置２０００を示すブロック図である。図５において、矢印の流れは情報の流れを示している。また、図５において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態２の仮想マシン管理装置２０００は、下記で説明する点を除き、実施形態１の仮想マシン管理装置２０００と同様である。
【００４１】
実施形態２の仮想マシン管理装置２０００は、動作可否判定部２１４０及び配置部２１６０をさらに有する。実施形態２の仮想マシン管理装置２０００は、過負荷率上界値算出部２０４０によって算出された過負荷率の上界値を用いて、対象仮想マシンの配置を行う。以下、具体的に説明する。
【００４２】
＜動作可否判定部２１４０＞
動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率の上界値を用いて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する。例えば動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率を、所定の閾値と比較する。そして、動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率が所定の閾値より大きい場合に、対象物理マシンは対象仮想マシンを動作させられないと判定する。一方、動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率が所定の閾値以下である場合に、対象物理マシンは対象仮想マシンを動作させられると判定する。ここで、「物理マシンが仮想マシンを動作させられる」とは、その物理マシン上で仮想マシンを動作させた場合に、その仮想マシンが、許容できる性能で動作することを意味する。
【００４３】
＜配置部２１６０＞
配置部２１６０は、動作可否判定部２１４０によって、対象物理マシンが対象仮想マシンを動作させられると判断された場合のみ、対象仮想マシンを対象物理マシンに配置する。ここで、「仮想マシンを物理マシンに配置する」とは、ある物理マシン上で既に動作している仮想マシンを別の物理マシンに移すこと、及びまだ動作していない新たな仮想マシンを物理マシンに配置することの両方を含む。ここで、ある物理マシン上で既に動作している仮想マシンを別の物理マシンへ移す処理を、仮想マシンの移行と呼ぶ。例えば仮想マシンの移行は、移行元の物理マシン上にある仮想マシンを、移行先の物理マシン上へコピーすることで実現する。一般にこの処理は、仮想マシンの移送（マイグレーション）と呼ばれる。ここにおける移送は、仮想マシンを動作させたまま移送処理を開始する移送（ライブマイグレーション）であってもよいし、仮想マシンの動作を停止させてから移送処理を開始する移送であってもよい。その他にも例えば、仮想マシンの移行は、移行元の物理マシン上にある仮想マシンを削除し、その仮想マシンと同等に扱う新たな仮想マシンを、移行先の物理マシン上で動作させる処理であってもよい。例えば、移行先で動作させる新たな仮想マシンに、移行元で動作させていた仮想マシンと同一のＩＤを割り当てることで、移行先で動作させる新たな仮想マシンを、移行元で動作させていた仮想マシンと同等に扱う。以降の各実施形態及び実施例で用いられる「移行」についても、同様の意味を持つ。
【００４４】
動作可否判定部２１４０によって、対象物理マシンが対象仮想マシンを動作させられないと判断された場合、例えば配置部２１６０は、対象物理マシン以外の物理マシンに、対象仮想マシンを配置する。その他にも例えば、動作可否判定部２１４０によって、対象物理マシンが対象仮想マシンを動作させられないと判断された場合、配置部２１６０は、対象仮想マシンの配置を行わない。
【００４５】
図６は、仮想マシン管理装置２０００によって行われる仮想マシンの配置を例示する図である。図６において、P1 は物理マシンであり、V1 〜 Vn は仮想マシンである。図６（ａ）は、仮想マシンが動作していない物理マシン P1 に対して仮想マシンを配置するケースを示している。仮想マシン管理装置２０００は、 P1 が、V1 〜 Vn を動作させられるか否かを判定する。具体的には、過負荷率上界値算出部２０４０は、V1 〜 Vn によって P1 にかかる負荷が、P1 の負荷閾値を超える過負荷率の、上界値を算出する。動作可否判定部２１４０は、算出された過負荷率を用いて、仮想マシン V1 〜 Vn を P1 上で動作させられるか否かを判定する。そして、動作可否判定部２１４０によって、V1 〜 Vn を P1 上で動作させられると判定された場合、配置部２１６０は、V1 〜 Vn を P1 に配置する。図６（ａ）の場合、例えば仮想マシン管理装置２０００は、V1 〜 Vn のうち、様々な仮想マシンの組み合わせについて過負荷率の上界値を算出することで、P1 上で動作させることができる仮想マシンの組み合わせを割り出すことができる。
【００４６】
図６（ｂ）は、既に仮想マシンが動作している物理マシン P1 に対して、新たに仮想マシンを配置するケースである。具体的には、V1 〜 Vn-1 が動作している P1 に対し、新たに Vn を配置する。そのために、過負荷率上界値算出部２０４０は、既に P1 上で動作している V1 〜 Vn-1 と、P1 上で動作させようとしている Vn とを合わせた V1 〜 Vn が P1 にかける負荷について、過負荷率の上界値を算出する。そして、動作可否判定部２１４０は、P1 が V1〜 Vn を動作させられるか否かを判定する。動作可否判定部２１４０によって、P1 が V1 〜 Vn を動作させられると判定された場合、配置部２１６０は、Vn を P1 に配置する。
【００４７】
図６（ｃ）は、既に P1 上で動作している仮想マシンを、そのまま動作させ続けることができるか否かを判定するケースである。P1 は、V1 〜 Vn を動作させている。一般に、仮想マシンが物理マシンにかける負荷は変動するため、ある時点において P1 上で動作可能と判断された V1 〜 Vn が、その後もずっと P1 上で動作可能であるとは限らない。そのため、例えば仮想マシン管理装置２０００は、定期的に、P1 が V1 〜 Vn を動作させられるか否かを判定する。そして仮想マシン管理装置２０００は、P1 が V1 〜 Vn を動作させられないと判定した場合、例えば V1 〜 Vn のいずれか１つ以上を別の物理マシンへ移行することで、P1 にかかる負荷を低減させる。
【００４８】
＜処理の流れ＞
図７は、実施形態２の仮想マシン管理装置２０００によって実行される処理の流れを例示するフローチャートである。図７において、ステップＳ２０２及びＳ２０４以外の各ステップは、図４に示されている同符号の各ステップと同様の処理である。
【００４９】
ステップＳ２０２において、動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率の上界値を用いて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する。動作可否判定部２１４０が、「対象物理マシンは対象仮想マシンを動作させられる」と判定した場合、図７の処理は、ステップＳ２０４に進む。一方、動作可否判定部２１４０が、「対象物理マシンは対象仮想マシンを動作させられない」と判定した場合、図７の処理は終了する。ステップＳ２０４において、配置部２１６０は、対象仮想マシンを対象物理マシンに配置する。
【００５０】
＜作用・効果＞
本実施形態によれば、動作可否判定部２１４０は、過負荷率の上界値を用いて、対象仮想マシンを対象物理マシン上で動作させられるか否かを判定する。したがって、対象仮想マシンを物理マシン上で動作させられるか否かを、短い時間かつ高い精度で判定することができる。また、仮想マシン管理装置２０００は、動作可否判定部２１４０によって、対象物理マシンが対象仮想マシンを動作させられると判断された場合のみ、対象仮想マシンを対象物理マシンに配置する。したがって、対象仮想マシンを対象物理マシンに配置した場合に、対象仮想マシンが、許容できる性能で動作する確率が高い。
【００５１】
[実施形態３]
図８は、実施形態３に係る仮想マシン管理装置２０００を示すブロック図である。図８において、矢印の流れは情報の流れを示している。また、図８において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態３の仮想マシン管理装置２０００は、下記で説明する点を除き、前述した各実施形態のいずれかと同様である。
【００５２】
実施形態３の仮想マシン管理装置２０００は、負荷履歴情報取得部２０６０及び負荷統計情報生成部２０８０をさらに有する。そして、実施形態３の仮想マシン管理装置２０００は、対象仮想マシンが物理マシンにかけた負荷の履歴から、負荷統計情報を生成する機能を有する。以下、具体的に説明する。
【００５３】
＜負荷履歴情報取得部２０６０＞
負荷履歴情報取得部２０６０は、対象仮想マシンが物理マシンにかけた負荷の履歴を示す、負荷履歴情報を取得する。負荷履歴情報は、対象仮想マシンが対象物理マシンにかけた負荷の履歴を示してもよいし、対象仮想マシンが対象物理マシン以外の物理マシンにかけた負荷の履歴を示してもよい。
【００５４】
負荷履歴情報が負荷の履歴を表す方法は様々である。例えば、負荷履歴情報は、過去の複数の時点それぞれにおいて、対象仮想マシンが物理マシンにかけた負荷を示してもよい。また、負荷履歴情報は、過去の複数の期間ごとに、その期間において対象仮想マシンが物理マシンにかけた負荷の統計値（平均や中央値など）を示してもよい。
【００５５】
図９は、負荷履歴情報の構成を例示する図である。図９において、負荷履歴情報は、テーブル形式で表されている。図９に示されている負荷履歴情報を、負荷履歴情報テーブル２００と表記する。負荷履歴情報テーブル２００は、仮想マシン ID ２０２及び負荷履歴２０４を有する。仮想マシン ID ２０２は、各対象仮想マシンの ID を示す。負荷履歴情報テーブル２００の各レコードは、仮想マシン ID ２０２で特定される対象仮想マシンが、物理マシンにかけた負荷の履歴を、負荷履歴２０４に示す。負荷履歴２０４は、時点 T1 〜 Tn それぞれにおいて、対象仮想マシンが物理マシンにかけた負荷を示している。
【００５６】
＜負荷統計情報生成部２０８０＞
負荷統計情報生成部２０８０は、負荷履歴情報を用いて、負荷統計情報を生成する。具体的には、負荷統計情報生成部２０８０は、対象仮想マシンに関する負荷履歴情報が示す負荷の、平均及び分散を算出することで、その対象仮想マシンに関する負荷統計情報を生成する。例えば、負荷履歴情報が図９に示す負荷履歴情報テーブル２００で表されている場合、仮想マシン管理装置２０００は、各仮想マシンについて、時点 T1 〜 Tn における負荷から、それらの平均及び分散を算出することで、各仮想マシンに関する負荷統計情報を算出する。
【００５７】
＜負荷統計情報取得部２０２０＞
本実施形態の負荷統計情報取得部２０２０は、負荷統計情報生成部２０８０によって生成された負荷統計情報を取得する。
【００５８】
＜処理の流れ＞
図１０は、実施形態３に係る仮想マシン管理装置２０００が行う処理の流れを示すフローチャートである。図１０において、ステップＳ３０２及びＳ３０４以外の各ステップは、図４に示されている同符号の各ステップと同様の処理である。ステップＳ３０２において、負荷履歴情報取得部２０６０は、対象仮想マシンの負荷履歴情報を取得する。ステップＳ３０４において、負荷統計情報生成部２０８０は、対象仮想マシンの負荷履歴情報を用いて、対象仮想マシンの負荷統計情報を生成する。
【００５９】
＜作用・効果＞
本実施形態の仮想マシン管理装置２０００によれば、各対象仮想マシンが物理マシンにかけた負荷の履歴から、負荷統計情報が算出される。これにより、仮想マシン管理装置２０００は、外部から負荷統計情報が提供されなくても、過負荷率の上界値を算出することができる。
【００６０】
＜実施例１＞
実施形態２と実施形態３の組み合わせに係る仮想マシン管理装置２０００の具体的な動作を、実施例１として説明する。図１１は、実施例１に係る仮想マシン管理装置２０００を、その使用環境と共に示す図である。図１１において、矢印の流れは情報の流れを示している。また、図１１において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。
【００６１】
情報処理システム４０は、仮想マシン管理装置２０００、３つのサーバ装置２０−１〜３を有する。サーバ装置２０は、前述した物理マシンに相当する。また、各サーバ装置２０は、仮想マシン１０を動作させている。仮想マシン管理装置２０００は、定期的に、仮想マシン１０を、より少数のサーバ装置２０に集約することを試みる。そして、仮想マシン１０を動作させていないサーバ装置の電源を切る。こうすることで、消費電力を削減する。
【００６２】
本実施例において、仮想マシン管理装置２０００は、仮想マシン１０によって使用される、サーバ装置２０の CPU リソースの使用率（以下、CPU 使用率）を、仮想マシン１０がサーバ装置２０にかける負荷として扱う。ここで、各サーバ装置２０はそれぞれ、１つ の CPU を有する。そして、これらの CPU はそれぞれ 4 つのコアを有する。ここで、１つのコアが有するリソースが 100% 使用されている状態を、CPU 使用率が 100% の状態であると定義する。したがって、各サーバ装置２０の CPU 使用率の最大値は 400% となる。本実施例において、サーバ装置２０は、サーバ装置２０が有する CPU リソースの、80% までが使用されることを許容すると仮定する。したがって、サーバ装置２０によって許容される負荷の負荷閾値は 320% （400% の 80 %）となる。
【００６３】
実施例１の仮想マシン管理装置２０００は、実施形態２の仮想マシン管理装置２０００が有する各機能構成部及び実施形態３の仮想マシン管理装置２０００が有する各機能構成部に加え、候補選択部２４００、負荷履歴情報格納部２４１０、負荷統計情報格納部２４２０をさらに有する。また、サーバ装置２０は、負荷計測部２２を有する。以下、それぞれについて説明する。
【００６４】
＜＜候補選択部２４００＞＞
候補選択部２４００は、仮想マシン１０の移行先とするサーバ装置２０の候補を選択する。この候補は、「仮想マシン１０を動作させるサーバ装置２０の候補」とも表現できる。選択されたサーバ装置２０は、前述の対象物理マシンに相当する。また、候補選択部２４００は、選択されたサーバ装置２０へ移行する候補とする仮想マシン１０を選択する。選択されたサーバ装置２０上で既に動作している仮想マシン１０、及び移行候補として選択された仮想マシン１０は、前述の対象仮想マシンに相当する。候補選択部２４００は、種々の既存手法を用いて、仮想マシン１０とサーバ装置２０を選択する。本実施例において、候補選択部２４００は、リソース使用率の平均が最も低いサーバ装置２０上で動作している仮想マシン１０の中から、移行候補の仮想マシン１０を選択する。また、候補選択部２４００は、リソース使用率の平均が最も高いサーバ装置２０を、移行先候補のサーバ装置２０とする。
【００６５】
＜＜負荷計測部２２＞＞
負荷計測部２２は、サーバ装置２０上で動作している仮想マシン１０がサーバ装置２０に対してかける負荷を計測する。本実施例の場合、負荷計測部２２は、各仮想マシン１０の CPU 使用率を計測する。
【００６６】
＜＜負荷履歴情報格納部２４１０＞＞
負荷履歴情報格納部２４１０は、各負荷計測部２２から、各仮想マシン１０がサーバ装置２０にかけた負荷を取得し、取得した負荷の履歴を、負荷履歴情報として格納する。本実施例の負荷統計情報生成部２０８０は、負荷履歴情報格納部２４１０に格納されている負荷履歴情報を用いて、負荷統計情報を生成する。
【００６７】
＜＜負荷統計情報格納部２４２０＞＞
負荷統計情報格納部２４２０は、負荷統計情報生成部２０８０によって生成された負荷統計情報を格納する。本実施例の負荷統計情報取得部２０２０は、負荷統計情報格納部２４２０に格納されている負荷統計情報を取得する。
【００６８】
＜＜処理の流れ＞＞
以下、仮想マシン管理装置２０００によって行われる処理を具体的に説明する。ここで、情報処理システム４０は、５つの仮想マシン１〜５を有しているとする。また、動作可否判定部２１４０は、対象仮想マシンがサーバ装置２０にかける負荷の過負荷率の上界値が 5% 以下である場合に、サーバ装置２０が対象仮想マシンを動作させられると判定する。
【００６９】
各仮想マシンがサーバ装置２０にかける負荷の平均及び分散、及び初期状態における各仮想マシンの配置は、図１２に示す通りである。まず、候補選択部２４００は、移行候補とする仮想マシン、及び移行先候補とするサーバ装置２０を選択する。各サーバ装置２０の CPU 使用率の合計はそれぞれ、200%、20%、30% である。そのため、CPU 使用率が最も低いサーバ装置２０は、サーバ装置２０−２である。そこで、候補選択部２４００は、サーバ装置２０−２上で動作している仮想マシン４を、別のサーバ装置２０へ移行する候補として選択する。また、CPU 使用率が最も大きいサーバ装置２０は、サーバ装置２０−１である。そこで候補選択部２４００は、サーバ装置２０−１を、仮想マシン４を移行する、移行先の候補として選択する。
【００７０】
過負荷率上界値算出部２０４０は、移行候補の仮想マシン４、及びサーバ装置２０−１上で動作している仮想マシン１〜３という、４つの仮想マシンが、サーバ装置２０−１にかける負荷の過負荷率の上界値を算出する。ここで、本実施例の過負荷率上界値算出部２０４０は、前述した数式（３）を用いて、過負荷率の上界値を算出する。仮想マシン１〜３及び仮想マシン４による CPU 使用率の平均及び分散の合計はそれぞれ、220、1100 である。これらの値、及び負荷閾値である 320 を数式（３）に代入すると、過負荷率の上界値は約 5.5% となる。
【００７１】
動作可否判定部２１４０は、過負荷率上界値算出部２０４０によって算出された過負荷率の上界値を用いて、サーバ装置２０−１が仮想マシン１〜４を動作させられるか否かを判定する。前述したように、過負荷率が 5% より大きい場合、動作可否判定部２１４０は、サーバ装置２０が対象仮想マシンを動作させられないと判断する。したがって、動作可否判定部２１４０は、サーバ装置２０−１が、仮想マシン１〜４を動作させられないと判定する。したがって、配置部２１６０は、仮想マシン４を仮想マシン１に配置しない。
【００７２】
次に、候補選択部２４００は、移行候補の仮想マシンとして、仮想マシン５を選択する。数式（３）を用いて、仮想マシン５、及びサーバ装置２０−１上で動作している仮想マシン１〜３の４つの仮想マシンが、サーバ装置２０−１にかける負荷の過負荷率の上界値を算出すると、その値は約 4.3% となる。したがって、動作可否判定部２１４０は、サーバ装置２０−１が、仮想マシン１〜３及び５を動作させられると判定する。そのため、配置部２１６０は、仮想マシン５を、サーバ装置２０−１へ移行する。この結果、サーバ装置２０−３上で動作している仮想マシンは無くなるため、サーバ装置２０−３の電源を切ることができる。
【００７３】
[実施形態４]
図１３は、実施形態４に係る仮想マシン管理装置２０００を示すブロック図である。図１３において、矢印の流れは情報の流れを示している。また、図１３において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態４の仮想マシン管理装置２０００は、以下で説明する点を除き、上述した各実施形態のいずれかと同様である。
【００７４】
実施形態４の仮想マシン管理装置２０００は、影響度算出部２１００及び移行対象決定部２１２０をさらに有する。そして、実施形態４の仮想マシン管理装置２０００は、対象物理マシン上で既に動作している複数の対象仮想マシンの中から、他の物理マシンへ移行する対象仮想マシンを決定する。以下、詳しく説明する。
【００７５】
＜影響度算出部２１００＞
影響度算出部２１００は、各対象仮想マシンが対象物理マシンに与える影響の度合いを示す影響度を算出する。ある対象仮想マシンの影響度は、その対象仮想マシンを含む全ての対象仮想マシンが対象物理マシン上で動作させる場合における過負荷率の上界値と、その対象仮想マシンを除く全ての対象仮想マシンが対象物理マシン上で動作させる場合における過負荷率の上界値との違いを示す値である。なお、影響度算出部２１００が過負荷率の上界値を算出する方法は、過負荷率上界値算出部２０４０が過負荷率の上界値を算出する方法と同様である。
【００７６】
影響度算出部２１００は、例えば以下の数式（４）や数式（５）を用いて、対象仮想マシンの１つである対象仮想マシン i の、対象物理マシンに対する影響度 I(i) を算出する。E(X-i) と V(X-i) はそれぞれ、対象仮想マシン i 以外の各対象仮想マシンが対象物理マシンにかける負荷の平均の合計、分散の合計である。また、E(Xall) と V(Xall) はそれぞれ、対象仮想マシン i を含めた各対象仮想マシンが対象物理マシンにかける負荷の平均の合計、分散の合計である。T は負荷閾値である。
【数４】
2015022321.tif 000006
【００７７】
数式（４）は、対象仮想マシン i が対象物理マシン上で動作している場合における過負荷率の上界値を、対象仮想マシン i が対象物理マシン上で動作していない場合における過負荷率の上界値で除算した値である。一方、数式（５）は、対象仮想マシン i が対象物理マシン上で動作している場合における過負荷率の上界値から、対象仮想マシン i が対象物理マシン上で動作していない場合における過負荷率の上界値を引いた値である。
【００７８】
＜移行対象決定部２１２０＞
実施形態４の仮想マシン管理装置２０００は、移行対象決定部２１２０を有する。移行対象決定部２１２０は、対象物理マシン上で動作している各対象仮想マシンの影響度に基づいて、対象物理マシンから他の物理マシンへ移行する仮想マシンを決定する。例えば移行対象決定部２１２０は、対象物理マシンに対する影響度が最も大きい対象仮想マシンを、他の物理マシンへ移行する仮想マシンとする。こうすることで、一度の移行で、対象物理マシン上に残った他の対象仮想マシンによって対象物理マシンにかかる負荷を、より小さくすることができる。また例えば移行対象決定部２１２０は、対象物理マシンに対する影響度が最も小さい仮想マシンを、他の物理マシンへ移行する仮想マシンとする。こうすることで、対象物理マシンにかかる負荷が、許容できる範囲内においてできる限り大きくなるため、対象物理マシンの計算機リソースを無駄なく利用することができる。また、移行対象決定部２１２０は、対象仮想マシンを別の物理マシンに移行した後に対象物理マシンにかかる負荷をどの程度の大きさにしたいかを考慮して、適度な影響度を持つ対象仮想マシンを、他の物理マシンへ移行する仮想マシンとしてもよい。
【００７９】
＜処理の流れ＞
図１４は、実施形態４に係る仮想マシン管理装置２０００が行う処理の流れを示すフローチャートである。ステップＳ４０２において、負荷統計情報取得部２０２０は、負荷統計情報を取得する。
【００８０】
ステップＳ４０４〜Ｓ４０８は、全ての対象仮想マシンについて実行されるループ処理Ａである。ステップＳ４０４において、影響度算出部２１００は、全ての対象仮想マシンについてループ処理Ａを実行したか否かを判定する。全ての対象仮想マシンについてループ処理Ａを実行した場合、図１４の処理は、ステップＳ４１０に進む。一方、まだ全ての対象仮想マシンについてループ処理Ａを実行していない場合、影響度算出部２１００は、まだループ処理Ａの対象としていない対象仮想マシンの中から１つを選択する。ここで選択された対象仮想マシンを、対象仮想マシンｉと表記する。そして、図１４の処理は、ステップＳ４０６に進む。
【００８１】
ステップＳ４０６において、影響度算出部２１００は、対象物理マシンに対する対象仮想マシンｉの影響度を算出する。ステップＳ４０８は、ループ処理Ａの終端である。図１４の処理は、ステップＳ４０４に進む。
【００８２】
ステップＳ４１０において、移行対象決定部２１２０は、対象物理マシン上で動作している対象仮想マシンの中から、他の物理マシンへ移行する対象仮想マシンを決定する。
【００８３】
＜作用・効果＞
本実施形態によれば、対象物理マシン上で動作している仮想マシンの中から、他の物理マシンへ移行する仮想マシンが、その仮想マシンの影響度を用いて決定される。ここで、影響度は、過負荷率の上界値に基づいて算出される。そのため、他の物理マシンへ移行する対象仮想マシンを、短い時間かつ高い精度で決定できる。
【００８４】
[実施形態５]
図１５は、実施形態５に係る仮想マシン管理装置２０００を示すブロック図である。図１５において、矢印の流れは情報の流れを示している。また、図１５において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態５の仮想マシン管理装置２０００は、下記で説明する点を除き、前述した各実施形態のいずれかの仮想マシン管理装置２０００と同様である。
【００８５】
仮想マシン管理装置２０００は、対象仮想マシン数取得部２１８０、判定方式選択部２２００、及び負荷情報取得部２２２０をさらに有する。そして、仮想マシン管理装置２０００は、対象物理マシンが対象仮想マシンを動作させられるか否かの判定を行う判定方式を、複数の判定方式の中から選択する機能を有する。以下、詳しく説明する。
【００８６】
＜対象仮想マシン数取得部２１８０＞
対象仮想マシン数取得部２１８０は、対象仮想マシンの数（以下、対象仮想マシン数）を取得する。ここで、対象仮想マシン数は、対象物理マシン上で動作させる対象仮想マシンの数でもよいし、対象物理マシンが動作させることができる対象仮想マシンの数の予測値でもよい。対象物理マシンが動作させることができる対象仮想マシンの数の予測値は、例えば、仮想マシンが物理マシンにかける負荷の予測値や、経験則などによって定められる値である。
【００８７】
対象仮想マシン数取得部２１８０が対象仮想マシン数を取得する方法は様々である。例えば対象仮想マシン数取得部２１８０は、仮想マシン管理装置２０００の内部に格納されている対象仮想マシン数や、仮想マシン管理装置２０００の内部で算出された対象仮想マシン数を取得する。また、対象仮想マシン数取得部２１８０は、仮想マシン管理装置２０００の外部から、手動による対象仮想マシン数の入力を受け付けてもよい。さらに、対象仮想マシン数取得部２１８０は、仮想マシン管理装置２０００の外部の装置から、対象仮想マシン数を取得してもよい。
【００８８】
＜負荷情報取得部２２２０＞
負荷情報取得部２２２０は、負荷情報を取得する。負荷情報は、対象仮想マシンが物理マシンにかける負荷の確率分布を示す。例えばこの確率分布は、関数やヒストグラムで表される。
【００８９】
対象仮想マシンに関する負荷情報は、例えばその対象仮想マシンが対象物理マシンにかける負荷に関する情報である。また、対象仮想マシンに関する負荷情報は、その対象仮想マシンが対象物理マシン以外の物理マシンにかける負荷に関する情報であってもよい。また、ある仮想マシンに関する負荷情報は、その仮想マシンを実際に物理マシン上で動作させて計測した実測値から生成されてもよいし、シミュレーションや経験則に基づく予測値から生成されてもよい。
【００９０】
図１６は、負荷情報の構成を例示する図である。図１６において、負荷情報は、テーブル形式で表されている。図１６に示す負荷情報を、負荷情報テーブル３００と表記する。負荷情報テーブル３００は、仮想マシン ID ３０２及び負荷確率３０４を示す。仮想マシン ID ３０２は、各対象仮想マシンの ID を示す。そして、負荷情報テーブル３００の各レコードは、仮想マシン ID ３０２で特定される対象仮想マシンが物理マシンにかける負荷の確率分布を、負荷確率３０４に示す。負荷確率３０４は、対象仮想マシンが物理マシンにかける負荷であるリソース使用率Ｘが、負荷確率３０４に示す各リソース使用率の範囲となる確率を示している。例えば、仮想マシン VM1 のリソース使用率が 0% 以上 ３０ % 未満である確率は、5% である。
【００９１】
負荷情報取得部２２２０が負荷情報を取得する方法は様々である。例えば負荷情報取得部２２２０は、仮想マシン管理装置２０００の内部で生成される負荷情報、又は仮想マシン管理装置２０００の内部に格納されている負荷情報を取得する。その他にも例えば、負荷情報取得部２２２０は、仮想マシン管理装置２０００の外部から、負荷情報の入力を受け付ける。この場合、負荷情報は、手動で入力されてもよいし、外部の装置から入力されてもよい。
【００９２】
＜判定方式選択部２２００＞
判定方式選択部２２００は、対象仮想マシン数取得部２１８０によって取得された対象仮想マシン数に基づいて、複数の判定方式の中から、動作可否判定部２１４０が用いる判定方式を選択する。例えば判定方式選択部２２００は、後述する第１判定方式、第２判定方式、及び第３判定方式のうち、いずれか複数を含む。ここで、判定方式選択部２２００が選択しうる負荷判定方式に、第１判定方式が含まれない場合、仮想マシン管理装置２０００は、負荷情報取得部２２２０を有しなくてもよい。
【００９３】
第２判定方式は、過負荷率上界値算出部２０４０によって算出される過負荷率の上界値を用いて判定を行う方式である。これは、実施形態２の仮想マシン管理装置２０００によって行われる判定の方式である。したがって、第２判定方式に関する説明は省略する。
【００９４】
これに対し、第１判定方式及び第３判定方式はいずれも、過負荷率を算出することで、判定を行う方式である。以下、第１判定方式及び第３判定方式について詳しく説明する。
【００９５】
＜＜第１判定方式及び第３判定方式＞＞
各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布が分かれば、過負荷率を算出することができる。過負荷率は、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布における、負荷の合計が負荷閾値を超える範囲の積分値に相当するためである。そこで、第１判定方式及び第３判定方式は、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を算出する。ただし、この２つの判定方式は、この確率分布を算出する方法が異なる。
【００９６】
一般に、確率変数の和の確率分布は、各確率変数の確率分布の畳み込みとなる。したがって、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布は、各対象仮想マシンが対象物理マシンにかける負荷の確率分布の、畳み込みを算出することで求められる。
【００９７】
そこで、第１判定方式は、上述の畳み込みを算出することで、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を求める。具体的には、第１判定方式を用いる場合、動作可否判定部２１４０は、以下の処理を行う。まず、動作可否判定部２１４０は、各対象仮想マシンに関する負荷情報を用いて、各対象仮想マシンが対象物理マシンにかける負荷の確率分布の畳み込みを算出する。これにより、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布が算出される。また、動作可否判定部２１４０は、算出した確率分布を用いて過負荷率を算出する。そして、動作可否判定部２１４０は、算出した過負荷率に基づいて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する。例えば動作可否判定部２１４０は、過負荷率が所定の閾値以下である場合に、対象物理マシンが対象仮想マシンを動作させられると判定する。
【００９８】
一方、第３判定方式は、第１判定方式とは異なる方法で、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を算出する。具体的には、第３判定方式は、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を、正規分布として算出する。これは、対象仮想マシンの数が十分に多い場合、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を、正規分布とみなすことができるためである。以下、詳しく説明する。
【００９９】
まず、どんな確率分布を持つ確率変数の和でも、確率変数の数が多くなるにつれ、正規分布に近づくという定理が存在する。この定理は、中心極限定理と呼ばれる。したがって、対象仮想マシンの数が十分多ければ、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布は、正規分布になると仮定できる。また、ある確率変数の確率分布が正規分布の場合、その確率分布は、確率変数の平均と分散によって一意に定まる。ここで、各対象仮想マシンが対象物理マシンにかける負荷が独立であるとみなせば、対象仮想マシンが対象物理マシンにかける負荷の平均は、各対象仮想マシンが対象物理マシンにかける負荷の平均を合計した値となる。また、同様に、対象仮想マシンが対象物理マシンにかける負荷の分散は、各対象仮想マシンが対象物理マシンにかける負荷の分散を合計した値となる。以上のことから、対象仮想マシンの数が十分多ければ、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布は、各対象仮想マシンが対象物理マシンにかける負荷の平均の合計値及び分散の合計値によって一意に定まる正規分布となる。
【０１００】
そこで、第３判定方式は、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を、正規分布として算出する。具体的には、第３判定方式を用いる場合、動作可否判定部２１４０は、以下の処理を行う。まず、動作可否判定部２１４０は、各対象仮想マシンの負荷統計情報を用いて、各対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を表す正規分布を算出する。具体的には、各対象仮想マシンそれぞれが物理マシンにかける負荷の平均の合計、及び分散の合計によって一意に定まる正規分布を算出する。そして、動作可否判定部２１４０は、算出した確率分布を用いて過負荷率を算出する。さらに、動作可否判定部２１４０は、第１判定方式と同様に、過負荷率に基づいて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する。
【０１０１】
＜＜判定方式の選択方法＞＞
例えば判定方式選択部２２００は、動作可否判定部２１４０が行う計算の計算コストや、動作可否判定部２１４０による判定の精度などを考慮して、第１判定方式、第２判定方式、及び第３判定方式の中から、動作可否判定部２１４０が用いる判定方式を選択する。まず、判定方式選択部２２００には、第１閾値及び第２閾値が与えられる。第１閾値は、第２閾値よりも小さい。判定方式選択部２２００は、対象仮想マシン数取得部２１８０によって取得された対象仮想マシン数が第１閾値以下の場合に、第１判定方式を選択する。判定方式選択部２２００は、対象仮想マシン数が第１閾値より大きく、第２閾値以下である場合に、第２判定方式を選択する。判定方式選択部２２００は、対象仮想マシン数が第２閾値より大きい場合に、第３判定方式を選択する。第１閾値及び第２閾値は、仮想マシン管理装置２０００の内部に格納されていてもよいし、仮想マシン管理装置２０００の外部から入力されてもよい。
【０１０２】
判定方式選択部２２００が前述したように負荷判定方式を選択する理由を説明する。まず、過負荷率を用いる負荷判定方式である第１判定方式及び第３判定方式は、過負荷率の上界値を算出する第２判定方式よりも、判定の精度が高い。しかし、確率分布の畳み込み計算を用いて過負荷率を算出する第１判定方式は、対象仮想マシンの数が多くなると、計算コストが高くなる。例えば、負荷の確率分布をヒストグラムで表し、ヒストグラムの分割数を k、対象仮想マシンの数を N とすると、第１判定方式の計算コストは O(k^N） である。また、対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を正規分布として算出する第３判定方式は、対象仮想マシンの数が少ない場合、対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布は正規分布から遠いため、判定の精度が低くなる。これに対し、第２判定方式は、対象仮想マシンの数によらず、低い計算コストで判定が可能である。具体的には、第２判定方式の計算コストは、対象仮想マシンの数を N とした場合、O(N) である。また、第２判定方式は、第１判定方式や第３判定方式には及ばないものの、高い精度で判定が可能である。
【０１０３】
そこで、例えば、第１判定方式による計算コストが許容できる大きさである対象仮想マシンの数の上界値を第１閾値とする。例えば第１閾値は、１０程度である。こうすることで、第１判定方式による計算コストが許容できる大きさの場合は、第１判定方式が選択される。この場合、第１判定方式を用いることで、短い時間かつ高い精度で過負荷率を算出できる。そのため、動作可否判定部２１４０は、短い時間かつ高い精度で判定を行える。
【０１０４】
また例えば、対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を正規分布とみなせる対象仮想マシンの数の下限値を第２閾値とする。例えば第２閾値は、３０〜５０程度である。こうすることで、対象仮想マシンが対象物理マシンにかける負荷の合計の確率分布を正規分布とみなせる場合に、第３判定方式が選択される。この場合、第３判定方式を用いることで、短い時間かつ高い精度で、過負荷率を算出できる。そのため、動作可否判定部２１４０は、短い時間かつ高い精度で判定を行える。
【０１０５】
そして、対象仮想マシン数が第１閾値より大きく、第２閾値以下である場合、判定方式選択部２２００は、第２判定方式を選択する。こうすることで、第１判定方式を用いると計算時間が長くなり、かつ第３判定方式を用いると精度が低くなる場合に、第２判定方式が選択される。動作可否判定部２１４０は、このような場合でも、第２判定方式を用いることで、短い時間かつ高い精度で判定を行える。
【０１０６】
＜動作可否判定部２１４０＞
実施形態５の動作可否判定部２１４０は、判定方式選択部２２００によって選択された判定方式を用いて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する。
【０１０７】
＜処理の流れ＞
図１７は、実施形態６に係る仮想マシン管理装置２０００によって実行される処理の流れを例示するフローチャートである。
【０１０８】
ステップＳ５０２において、対象仮想マシン数取得部２１８０は、対象仮想マシン数を取得する。ステップＳ５０４において、判定方式選択部２２００は、対象仮想マシン数取得部２１８０によって取得された対象仮想マシン数を第１閾値と比較する。対象仮想マシン数が第１閾値以下である場合、図１７の処理は、ステップＳ５０６に進む。ステップＳ５０６において、判定方式選択部２２００は、第１判定方式を選択する。
【０１０９】
一方、ステップＳ５０４において、対象仮想マシン数が第１閾値より大きい場合、図１７の処理は、ステップＳ５０８に進む。ステップＳ５０８において、判定方式選択部２２００は、対象仮想マシン数を第２閾値と比較する。対象仮想マシン数が第２閾値以下であった場合、図１７の処理は、ステップＳ５１０に進む。ステップＳ５１０において、判定方式選択部２２００は、第２判定方式を選択する。
【０１１０】
一方、対象仮想マシン数が第２閾値より大きい場合、図１７の処理は、ステップＳ５１２に進む。ステップＳ５１２において、判定方式選択部２２００は、第３判定方式を選択する。
【０１１１】
＜作用・効果＞
以上のように、仮想マシン管理装置２０００は、まず対象仮想マシン数を用いて、動作可否の判定に用いる判定方式を選択する。そして、仮想マシン管理装置２０００は、その判定方式を用いて動作可否の判定を行う。したがって、仮想マシン管理装置２０００によれば、対象仮想マシンの数に応じて、対象物理マシンが対象仮想マシンを動作させられるか否かを判定する適切な方法が選択される。一般に、判定方式の精度や計算コストは、対象仮想マシン数によって異なる。仮想マシン管理装置２０００によれば、対象仮想マシン数に応じて動作可否判定手段が選択されるため、高い精度かつ低い計算コストで、動作可否の判定を行うことができる。
【０１１２】
[実施形態６]
図１８は、実施形態６に係る仮想マシン管理装置２０００を示すブロック図である。図１８において、矢印の流れは情報の流れを示している。また、図１８において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。仮想マシン管理装置２０００は、下記で説明する点を除いて、実施形態６の仮想マシン管理装置２０００と同様である。
【０１１３】
実施形態６の仮想マシン管理装置２０００は、代表統計情報取得部２２４０及び予測稼働数算出部２２６０をさらに有する。実施形態６の仮想マシン管理装置２０００は、予測稼働数を算出し、算出した予測稼働数を対象仮想マシン数とする機能を有する。以下、詳しく説明する。
【０１１４】
＜代表統計情報取得部２２４０＞
実施形態６の仮想マシン管理装置２０００は、代表統計情報取得部２２４０を有する。代表統計情報取得部２２４０は、代表的な仮想マシンである代表仮想マシンが対象物理マシンにかける負荷の平均及び分散を示す代表統計情報を取得する。例えば代表仮想マシンが代表物理マシンにかける負荷の平均は、対象仮想マシンが対象物理マシン又はその他の物理マシンにかける負荷の平均の、平均である。その他にも例えば、代表仮想マシンが対象物理マシンにかける負荷の平均は、シミュレーションや経験則に基づき、一般的な仮想マシンが対象物理マシンにかけると予測される、予測値であってもよい。代表仮想マシンが対象物理マシンにかける負荷の分散についても同様である。
【０１１５】
代表統計情報取得部２２４０が代表統計情報を取得する方法は様々である。例えば代表統計情報取得部２２４０は、仮想マシン管理装置２０００の内部で生成される代表統計情報、又は仮想マシン管理装置２０００の内部に格納されている代表統計情報を取得する。その他にも例えば、代表統計情報取得部２２４０は、仮想マシン管理装置２０００の外部から、代表統計情報の入力を受け付ける。この場合、代表統計情報は、手動で入力されてもよいし、外部の装置から入力されてもよい。
【０１１６】
＜予測稼働数算出部２２６０＞
実施形態６の仮想マシン管理装置２０００は、予測稼働数算出部２２６０を有する。予測稼働数算出部２２６０は、代表統計情報を用いて、対象物理マシン上で動作させることができる代表仮想マシンの数（以下、予測稼働数）を算出する。具体的には、予測稼働数算出部２２６０は、代表統計情報取得部２２４０によって取得された代表統計情報を用いて、複数の代表仮想マシンが対象物理マシンにかける負荷の合計が、対象物理マシンの負荷閾値を超える確率の上界値を算出する。この上界値は、例えば実施形態１で説明した過負荷率の上界値と同様に、チェビシェフの不等式又はその変形式を用いて算出される。予測稼働数算出部２２６０は、算出した上界値を用いて、予測稼働数を算出する。例えば予測稼働数算出部２２６０は、算出した上界値が所定の閾値以下となる場合のうち、代表仮想マシンの数が最大である場合における代表仮想マシンの数を、予測稼働数とする。
【０１１７】
実施形態６の対象仮想マシン数取得部２１８０は、予測稼働数算出部２２６０によって算出された予測稼働数を、対象仮想マシン数として取得する。
【０１１８】
＜作用・効果＞
実施形態６の仮想マシン管理装置２０００によれば、対象仮想マシン数が内部で算出されるため、対象仮想マシン数が提供されない場合であっても、対象物理マシンが対象仮想マシンを動作させられるか否かを判定できる。さらに、複数の代表仮想マシンが対象物理マシンにかける負荷が対象物理マシンの負荷閾値を超える確率の上界値を用いて対象仮想マシン数を算出するため、対象仮想マシン数を、短い時間かつ高い精度で算出することができる。
【０１１９】
[実施形態７] 
図１８は、実施形態４に係る仮想マシン管理装置２０００を示すブロック図である。図１８において、矢印の流れは情報の流れを示している。また、図１８において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態４の仮想マシン管理装置２０００は、下記で説明する点を除き、上述したいずれかの実施形態の仮想マシン管理装置２０００と同様である。
【０１２０】
本実施形態の仮想マシン管理装置２０００は、負荷情報を用いて、負荷統計情報を生成する。そのため、本実施形態の仮想マシン管理装置２０００は、負荷情報取得部２２２０及び負荷統計情報生成部２０８０を有する。負荷情報取得部２２２０は、実施形態６で説明した負荷情報取得部２２２０と同様である。
【０１２１】
＜負荷統計情報生成部２０８０＞
実施形態７の負荷統計情報生成部２０８０は、負荷情報を用いて、負荷統計情報を生成する。具体的には、負荷統計情報生成部２０８０は、対象仮想マシンに関する負荷情報が示す負荷の確率分布を用いて、その負荷の平均及び分散を算出する。負荷情報から負荷統計情報を求めることは、確率変数の確率分布を用いて、確率変数の平均及び分散を求めることに相当する。確率変数の確率分布を用いて確率変数の平均及び分散を算出する方法は公知であるため、説明を省略する。
【０１２２】
＜作用・効果＞
実施形態７の仮想マシン管理装置２０００によれば、負荷統計情報が提供されない場合であっても、対象物理マシンが対象仮想マシンを動作させられるか否かを判定できる。
【０１２３】
[実施形態８] 
図２０は、実施形態８に係る仮想マシン管理装置２０００を示すブロック図である。図２０において、矢印の流れは情報の流れを示している。また、図２０において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。実施形態８の仮想マシン管理装置２０００は、下記で説明する点を除き、実施形態６の実施形態の仮想マシン管理装置２０００と同様である。
【０１２４】
実施形態８の仮想マシン管理装置２０００は、負荷履歴情報を用いて、負荷情報を生成する。そのために、実施形態８の仮想マシン管理装置２０００は、負荷情報生成部２２８０をさらに有する。以下、詳しく説明する。
【０１２５】
＜負荷情報生成部２２８０＞
負荷情報生成部２２８０は、負荷履歴情報取得部２０６０によって取得される負荷履歴情報を用いて、負荷情報を生成する。具体的には、負荷情報生成部２２８０は、対象仮想マシンに関する負荷履歴情報が示す負荷の履歴から、その負荷がとりうる値の確率分布を算出して、負荷情報が示す確率分布とする。負荷履歴情報から負荷情報を算出することは、事象から確率分布を算出することに相当する。事象から確率分布を算出する方法は公知であるため、説明を省略する。
【０１２６】
負荷情報取得部２２２０は、負荷情報生成部２２８０によって生成された負荷統計情報を取得する。
【０１２７】
＜作用・効果＞
以上により、実施形態８の仮想マシン管理装置２０００によれば、負荷情報が提供されない場合であっても、対象物理マシンが対象仮想マシンを動作させられるか否かを判定できる。
【０１２８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記実施形態の組み合わせ、及び上記実施形態以外の様々な構成を採用することもできる。
【０１２９】
以下、参考形態の例を付記する。
１．  対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得手段と、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出手段と、
を有する仮想マシン管理装置。
２．  前記過負荷率上界値算出手段によって算出された前記上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させることができるか否かを判定する動作可否判定手段と、
前記動作可否判定手段によって、前記対象物理マシンが前記対象仮想マシンを動作させられると判定された場合のみ、前記対象仮想マシンを前記対象物理マシンに配置する配置手段と、
を有する１．に記載の仮想マシン管理装置。
３．  前記過負荷率上界値算出手段は、チェビシェフの不等式又はチェビシェフの不等式を変形して得られる不等式を用いて、前記上界値を算出する、１．又は２．に記載の仮想マシン管理装置。
４．  前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得手段と、
前記負荷履歴情報に示されている負荷の、平均及び分散を算出することで、負荷統計情報を生成する負荷統計情報生成手段と、を有し、
前記負荷統計情報取得手段は、前記負荷統計情報生成手段によって算出された前記負荷統計情報を取得する、
１．乃至３．いずれか一項に記載の仮想マシン管理装置。
５．  複数の対象仮想マシンが前記対象物理マシン上で動作しており、
前記複数の対象仮想マシンそれぞれについて、その対象仮想マシンを除く全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値と、その対象仮想マシンを含む全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値との違いから、前記対象物理マシンに対するその対象仮想マシンの影響度を算出する、影響度算出手段と、
前記複数の対象仮想マシンのうち、前記影響度が最も大きい対象仮想マシンを、前記対象物理マシンの外部へ移行する対象仮想マシンにする、移行対象決定手段と、
を有する請求項１．乃至４．いずれか一項に記載の仮想マシン管理装置。
６．  前記対象仮想マシンの数を取得する対象仮想マシン数取得手段と、
前記対象仮想マシンの数に基づいて、複数の判定方式の中から、前記動作可否判定手段によって実行される前記判定方式を選択する判定方式選択手段と、を有し、
前記動作可否判定手段は、前記判定方式選択手段によって選択された前記判定方式を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う、
２．に記載の仮想マシン管理装置。
７．  前記複数の判定方式は、
各前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得し、各負荷情報が示す前記確率分布の畳み込みを算出することで、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を算出し、算出した確率分布を用いて、前記対象仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率である過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第１判定方式と、
前記過負荷率上界値算出手段によって算出された前記過負荷率の上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第２判定方式と、
各前記対象仮想マシンに関する前記負荷統計情報を用いて、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を表す正規分布を算出し、算出した正規分布を用いて、前記過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第３判定方式と、
のうち、いずれか複数を含み、
前記複数の判定方式が前記第１判定方式を含む場合、前記負荷情報を取得する負荷情報取得手段を有する、
６．に記載の仮想マシン管理装置。
８．  前記判定方式選択手段は、
前記対象仮想マシンの数が第１閾値以下の場合、前記第１判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第１閾値より大きくかつ第２閾値以下である場合、前記第２判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第２閾値より大きい場合、前記第３判定方式を前記判定方式として選択する、
７．に記載の仮想マシン管理装置。
９．  代表的な仮想マシンである代表仮想マシンが物理マシンにかける負荷の平均及び分散を示す代表統計情報を取得する、代表統計値取得手段と、
前記代表統計情報を用いて、複数の前記代表仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率の上界値を算出し、その上界値に基づいて、前記対象物理マシン上で動作させることができる前記代表仮想マシンの数である予測稼働数を算出する予測稼働数算出手段を有し、
前記対象仮想マシン数取得手段は、前記予測稼働数算出手段によって算出された予測稼働数を、前記対象仮想マシンの数として取得する、
６．乃至８．いずれか一項に記載の仮想マシン管理装置。
１０．  前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得する負荷情報取得手段と、
前記負荷情報に示される負荷の確率分布から、その負荷の平均及び分散を算出することで、前記負荷統計情報を生成する、負荷統計情報生成手段を有する、請求項１．乃至９．いずれか一項に記載の仮想マシン管理装置。
１１．  前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得手段と、
前記負荷履歴情報に示されている負荷の履歴から、その負荷の確率分布を算出することで、前記負荷情報を生成する、負荷情報生成手段と、
を有し、
前記負荷情報取得手段は、前記負荷情報生成手段によって生成された前記負荷情報を取得する、
７．乃至１０．いずれか一項に記載の仮想マシン管理装置。
１２．  コンピュータによって実行される仮想マシン管理方法であって、
対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得ステップと、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出ステップと、
を有する仮想マシン管理方法。
１３．  前記過負荷率上界値算出ステップによって算出された前記上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させることができるか否かを判定する動作可否判定ステップと、
前記動作可否判定ステップによって、前記対象物理マシンが前記対象仮想マシンを動作させられると判定された場合のみ、前記対象仮想マシンを前記対象物理マシンに配置する配置ステップと、
を有する１２．に記載の仮想マシン管理方法。
１４．  前記過負荷率上界値算出ステップは、チェビシェフの不等式又はチェビシェフの不等式を変形して得られる不等式を用いて、前記上界値を算出する、１２．又は１３．に記載の仮想マシン管理方法。
１５．  前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得ステップと、
前記負荷履歴情報に示されている負荷の、平均及び分散を算出することで、負荷統計情報を生成する負荷統計情報生成ステップと、を有し、
前記負荷統計情報取得ステップは、前記負荷統計情報生成ステップによって算出された前記負荷統計情報を取得する、
１２．乃至１４．いずれか一項に記載の仮想マシン管理方法。
１６．  複数の対象仮想マシンが前記対象物理マシン上で動作しており、
前記複数の対象仮想マシンそれぞれについて、その対象仮想マシンを除く全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値と、その対象仮想マシンを含む全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値との違いから、前記対象物理マシンに対するその対象仮想マシンの影響度を算出する、影響度算出ステップと、
前記複数の対象仮想マシンのうち、前記影響度が最も大きい対象仮想マシンを、前記対象物理マシンの外部へ移行する対象仮想マシンにする、移行対象決定ステップと、
を有する請求項１２．乃至１５．いずれか一項に記載の仮想マシン管理方法。
１７．  前記対象仮想マシンの数を取得する対象仮想マシン数取得ステップと、
前記対象仮想マシンの数に基づいて、複数の判定方式の中から、前記動作可否判定ステップによって実行される前記判定方式を選択する判定方式選択ステップと、を有し、
前記動作可否判定ステップは、前記判定方式選択ステップによって選択された前記判定方式を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う、
１３．に記載の仮想マシン管理方法。
１８．  前記複数の判定方式は、
各前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得し、各負荷情報が示す前記確率分布の畳み込みを算出することで、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を算出し、算出した確率分布を用いて、前記対象仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率である過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第１判定方式と、
前記過負荷率上界値算出ステップによって算出された前記過負荷率の上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第２判定方式と、
各前記対象仮想マシンに関する前記負荷統計情報を用いて、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を表す正規分布を算出し、算出した正規分布を用いて、前記過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第３判定方式と、
のうち、いずれか複数を含み、
前記複数の判定方式が前記第１判定方式を含む場合、前記負荷情報を取得する負荷情報取得ステップを有する、
１７．に記載の仮想マシン管理方法。
１９．  前記判定方式選択ステップは、
前記対象仮想マシンの数が第１閾値以下の場合、前記第１判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第１閾値より大きくかつ第２閾値以下である場合、前記第２判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第２閾値より大きい場合、前記第３判定方式を前記判定方式として選択する、
１８．に記載の仮想マシン管理方法。
２０．  代表的な仮想マシンである代表仮想マシンが物理マシンにかける負荷の平均及び分散を示す代表統計情報を取得する、代表統計値取得ステップと、
前記代表統計情報を用いて、複数の前記代表仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率の上界値を算出し、その上界値に基づいて、前記対象物理マシン上で動作させることができる前記代表仮想マシンの数である予測稼働数を算出する予測稼働数算出ステップを有し、
前記対象仮想マシン数取得ステップは、前記予測稼働数算出ステップによって算出された予測稼働数を、前記対象仮想マシンの数として取得する、
１７．乃至１９．いずれか一項に記載の仮想マシン管理方法。
２１．  前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得する負荷情報取得ステップと、
前記負荷情報に示される負荷の確率分布から、その負荷の平均及び分散を算出することで、前記負荷統計情報を生成する、負荷統計情報生成ステップを有する、請求項１２．乃至２０．いずれか一項に記載の仮想マシン管理方法。
２２．  前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得ステップと、
前記負荷履歴情報に示されている負荷の履歴から、その負荷の確率分布を算出することで、前記負荷情報を生成する、負荷情報生成ステップと、
を有し、
前記負荷情報取得ステップは、前記負荷情報生成ステップによって生成された前記負荷情報を取得する、
１８．乃至２１．いずれか一項に記載の仮想マシン管理方法。
２３．  コンピュータに、仮想マシン管理装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
対象仮想マシンが物理マシンにかける負荷の平均及び分散を示す負荷統計情報を取得する、負荷統計情報取得機能と、
前記対象仮想マシンに関する前記負荷統計情報を用いて、前記対象仮想マシンが対象物理マシンにかける負荷が、前記対象物理マシンによって許容される負荷を超える確率である過負荷率の、上界値を算出する過負荷率上界値算出機能と、
を持たせるプログラム。
２４．  前記コンピュータに、
前記過負荷率上界値算出機能によって算出された前記上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させることができるか否かを判定する動作可否判定機能と、
前記動作可否判定機能によって、前記対象物理マシンが前記対象仮想マシンを動作させられると判定された場合のみ、前記対象仮想マシンを前記対象物理マシンに配置する配置機能と、
を持たせる２３．に記載のプログラム。
２５．  前記過負荷率上界値算出機能は、チェビシェフの不等式又はチェビシェフの不等式を変形して得られる不等式を用いて、前記上界値を算出する、２３．又は２４．に記載のプログラム。
２６．  前記コンピュータに、
前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得機能と、
前記負荷履歴情報に示されている負荷の、平均及び分散を算出することで、負荷統計情報を生成する負荷統計情報生成機能と、を持たせ、
前記負荷統計情報取得機能は、前記負荷統計情報生成機能によって算出された前記負荷統計情報を取得する、
２３．乃至２５．いずれか一項に記載のプログラム。
２７．  複数の対象仮想マシンが前記対象物理マシン上で動作しており、
前記コンピュータに、
前記複数の対象仮想マシンそれぞれについて、その対象仮想マシンを除く全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値と、その対象仮想マシンを含む全ての前記複数の対象仮想マシンによって前記対象物理マシンにかかる負荷が前記対象物理マシンによって許容される負荷を超える確率の上界値との違いから、前記対象物理マシンに対するその対象仮想マシンの影響度を算出する、影響度算出機能と、
前記複数の対象仮想マシンのうち、前記影響度が最も大きい対象仮想マシンを、前記対象物理マシンの外部へ移行する対象仮想マシンにする、移行対象決定機能と、
を持たせる請求項２３．乃至２６．いずれか一項に記載のプログラム。
２８．  前記コンピュータに、
前記対象仮想マシンの数を取得する対象仮想マシン数取得機能と、
前記対象仮想マシンの数に基づいて、複数の判定方式の中から、前記動作可否判定機能によって実行される前記判定方式を選択する判定方式選択機能と、を持たせ、
前記動作可否判定機能は、前記判定方式選択機能によって選択された前記判定方式を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う、
２４．に記載のプログラム。
２９．  前記複数の判定方式は、
各前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得し、各負荷情報が示す前記確率分布の畳み込みを算出することで、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を算出し、算出した確率分布を用いて、前記対象仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率である過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第１判定方式と、
前記過負荷率上界値算出機能によって算出された前記過負荷率の上界値を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第２判定方式と、
各前記対象仮想マシンに関する前記負荷統計情報を用いて、各前記対象仮想マシンが前記物理マシンにかける負荷の合計の確率分布を表す正規分布を算出し、算出した正規分布を用いて、前記過負荷率を算出し、算出した過負荷率を用いて、前記対象物理マシンが前記対象仮想マシンを動作させられるか否かの判定を行う第３判定方式と、
のうち、いずれか複数を含み、
前記複数の判定方式が前記第１判定方式を含む場合、前記コンピュータに、前記負荷情報を取得する負荷情報取得機能を持たせる、
２８．に記載のプログラム。
３０．  前記判定方式選択機能は、
前記対象仮想マシンの数が第１閾値以下の場合、前記第１判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第１閾値より大きくかつ第２閾値以下である場合、前記第２判定方式を前記判定方式として選択し、
前記対象仮想マシンの数が前記第２閾値より大きい場合、前記第３判定方式を前記判定方式として選択する、
２９．に記載のプログラム。
３１．  前記コンピュータに、
代表的な仮想マシンである代表仮想マシンが物理マシンにかける負荷の平均及び分散を示す代表統計情報を取得する、代表統計値取得機能と、
前記代表統計情報を用いて、複数の前記代表仮想マシンが前記対象物理マシンにかける負荷の合計が前記対象物理マシンによって許容される負荷を超える確率の上界値を算出し、その上界値に基づいて、前記対象物理マシン上で動作させることができる前記代表仮想マシンの数である予測稼働数を算出する予測稼働数算出機能と、を持たせ、
前記対象仮想マシン数取得機能は、前記予測稼働数算出機能によって算出された予測稼働数を、前記対象仮想マシンの数として取得する、
２８．乃至３０．いずれか一項に記載のプログラム。
３２．  前記コンピュータに、
前記対象仮想マシンが物理マシンにかける負荷の確率分布を示す負荷情報を取得する負荷情報取得機能と、
前記負荷情報に示される負荷の確率分布から、その負荷の平均及び分散を算出することで、前記負荷統計情報を生成する、負荷統計情報生成機能と、を持たせる、請求項２３．乃至３１．いずれか一項に記載のプログラム。
３３．  前記コンピュータに、
前記対象仮想マシンが物理マシンにかけた負荷の履歴を示す負荷履歴情報を取得する、負荷履歴情報取得機能と、
前記負荷履歴情報に示されている負荷の履歴から、その負荷の確率分布を算出することで、前記負荷情報を生成する、負荷情報生成機能と、
を持たせ、
前記負荷情報取得機能は、前記負荷情報生成機能によって生成された前記負荷情報を取得する、
２９．乃至３２．いずれか一項に記載のプログラム。
【符号の説明】
【０１３０】
１０ 仮想マシン
２０ サーバ装置
２２ 負荷計測部
４０ 情報処理システム
１００ 負荷統計情報テーブル
１０２ 仮想マシン ID
１０４ 平均
１０６ 分散
２００ 負荷履歴情報テーブル
２０２ 仮想マシン ID
２０４ 負荷履歴
３００ 負荷情報テーブル
３０２ 仮想マシン ID
３０４ 負荷確率
１０２０ バス
１０４０ プロセッサ
１０６０ メモリ
１０８０ ストレージ
１２２０ 負荷統計情報取得モジュール
１２４０ 過負荷率上界値算出モジュール
２０００ 仮想マシン管理装置
２０２０ 負荷統計情報取得部
２０４０ 過負荷率上界値算出部
２０６０ 負荷履歴情報取得部
２０８０ 負荷統計情報生成部
２１００ 影響度算出部
２１２０ 移行対象決定部
２１４０ 動作可否判定部
２１６０ 配置部
２１８０ 対象仮想マシン数取得部
２２００ 判定方式選択部
２２２０ 負荷情報取得部
２２４０ 代表統計情報取得部
２２６０ 予測稼働数算出部
２２８０ 負荷情報生成部
２４００ 候補選択部
２４１０ 負荷履歴情報格納部
２４２０ 負荷統計情報格納部
【図１】
2015022321.tif 000007
【図２】
2015022321.tif 000008
【図３】
2015022321.tif 000009
【図４】
2015022321.tif 000010
【図５】
2015022321.tif 000011
【図６】
2015022321.tif 000012
【図７】
2015022321.tif 000013
【図８】
2015022321.tif 000014
【図９】
2015022321.tif 000015
【図１０】
2015022321.tif 000016
【図１１】
2015022321.tif 000017
【図１２】
2015022321.tif 000018
【図１３】
2015022321.tif 000019
【図１４】
2015022321.tif 000020
【図１５】
2015022321.tif 000021
【図１６】
2015022321.tif 000022
【図１７】
2015022321.tif 000023
【図１８】
2015022321.tif 000024
【図１９】
2015022321.tif 000025
【図２０】
2015022321.tif 000026