(57)【要約】  仮想マシン管理システム（１）は、仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理する管理部（１０２）と、配備する第２仮想マシンがあるとき、第２仮想マシンの配備先候補毎に、配備による影響を考慮して、仮想マシンの移行先を探索する探索部（１０４）と、配備先候補毎に、移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、配備によって生じる移行リスクの変化分を算出する算出部（１０５）と、移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を配備先に決定する決定部（１０６）と、を備える。
2013171944.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行する管理手段と、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンまたは前記第２仮想マシンの移行先を探索する探索手段と、
前記第２仮想マシンの配備先候補毎に、前記探索手段が探索した前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出する算出手段と、
前記算出手段が算出した前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定する決定手段と、を備え、
前記探索手段は、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの前記移行先をそれぞれ探索し、
前記管理手段は、前記決定手段が決定した前記配備先に前記第２仮想マシンを配備する仮想マシン管理システム。
【請求項２】
請求項１に記載の仮想マシン管理システムにおいて、
前記第２仮想マシンの配備による影響を受ける第１仮想マシンとして、前記第２仮想マシンの前記配備先候補の前記最下位システムを前記移行先としている第１仮想マシン、および前記第２仮想マシンの前記配備先候補の前記最下位システムで動作している第１仮想マシンを求める判別手段をさらに備え、
前記判別手段が求めた前記第１仮想マシンおよび前記第２仮想マシンについて、前記探索手段が移行先を探索するとともに、前記算出手段が、前記移行リスクの変化分を算出する仮想マシン管理システム。
【請求項３】
請求項１または２に記載の仮想マシン管理システムにおいて、
前記算出手段は、階層毎に、前記階層構造の上位のシステム程、前記移行コストが大きくなるように定義される関数を用いて前記移行コストを算出する仮想マシン管理システム。
【請求項４】
請求項３に記載の仮想マシン管理システムにおいて、
前記関数は、前記第１仮想マシンまたは前記第２仮想マシン毎に定められたサービスレベルに応じて変わる前記移行コストを、前記第１仮想マシンおよび前記第２仮想マシンの前記サービスレベルを引数としてそれぞれ定義される仮想マシン管理システム。
【請求項５】
請求項３または４に記載の仮想マシン管理システムにおいて、
前記算出手段は、前記移行先に影響がある前記第１仮想マシンおよび当該第２仮想マシンについて前記探索手段が探索した前記移行先に将来移行する可能性の度合として、前記第１仮想マシンおよび前記第２仮想マシンが動作する最下位システムが将来的に過負荷状態になる可能性の度合を、前記移行コストの前記関数に乗じて前記移行リスクをそれぞれ算出する仮想マシン管理システム。
【請求項６】
請求項３乃至５いずれかに記載の仮想マシン管理システムにおいて、
前記算出手段が、定期的に、前記最下位システムの前記移行リスクを算出し、各階層のシステム毎に前記移行リスクの総和を求め、
前記算出手段が求めた前記各階層のシステム毎の前記移行リスクの総和を保持する保持手段と、
前記各階層のシステム毎の前記移行リスクの総和が、前記階層毎に予め設定された閾値を超えているか否かを判定する判定手段と、をさらに備え、
前記探索手段は、前記判定手段により前記閾値を超えていると判定された階層のシステムに含まれる下位のシステムは、探索対象から外す仮想マシン管理システム。
【請求項７】
請求項１乃至６いずれかに記載の仮想マシン管理システムにおいて、
前記システム上で実行している前記第１仮想マシンの性能情報または前記システムの性能情報を監視し、前記性能情報における一定値以上の変動を検知する監視手段をさらに備え、
前記監視手段が前記性能情報における一定値以上の前記変動を検知したとき、前記探索手段は、前記変動が検知されたシステムの最下位システム上で実行している前記第１仮想マシン、および当該最下位システムを前記移行先とする前記第１仮想マシンに対し、前記移行先を再探索し、それぞれ更新する仮想マシン管理システム。
【請求項８】
請求項１乃至７いずれかに記載の仮想マシン管理システムにおいて、
過負荷状態になったシステムが存在するかを確認する確認手段と、
前記過負荷状態になったシステムに対し、当該システム上の第１仮想マシンの中から、前記過負荷状態を回避可能で、かつ、前記移行コストが小さい第１仮想マシンの集合を求める手段と、をさらに備え、
前記管理手段は、前記集合を求める手段が求めた前記集合の第１仮想マシンに対し、移行を実行する仮想マシン管理システム。
【請求項９】
仮想マシンを管理する管理サーバが、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行し、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索し、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出し、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定し、
決定された前記配備先に前記第２仮想マシンを配備する仮想マシン管理方法。
【請求項１０】
仮想マシンを管理する管理サーバを実現するコンピュータに、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行する手順、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索する手順、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出する手順、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定する手順、
決定された前記配備先に前記第２仮想マシンを配備する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理システム、仮想マシン管理方法およびプログラムに関し、特に、仮想マシンの配備を管理する仮想マシン管理システム、仮想マシン管理方法およびプログラムに関する。
【背景技術】
【０００２】
現在、仮想化環境ではシステムの過負荷状態を回避するためにシステム上の仮想マシンを別のシステム上へ動的に移行するライブマイグレーションと呼ばれる技術が用いられている。【０００３】
しかしながら、移行の実行自体にＣＰＵ（Central Processing Unit）やネットワークＩ／Ｏ（Input/Output）のバースト的なオーバーヘッドが発生するため、システムの過負荷状態を悪化させることや、ネットワーク帯域を占有し他のシステムへ影響を与える可能性がある。さらに、移行中は仮想マシンを一定時間、停止させる必要があり、また移行のオーバーヘッドによるリソース不足などによりサービスの品質を落とす可能性がある。【０００４】
そのため、仮想環境における運用では他のシステムへの影響を抑えるために仮想マシンの移行先を同一ラック内に制限する場合もある。これは、移行の影響をラック内に限定できるためである。また、ブレードサーバなどは複数のブレードサーバを１つの筐体に収納する形をとるが、移行の範囲を筐体内のみに限定すればより移行の影響範囲を抑えることができる。しかしながら、移行の範囲を限定することはシステム全体の柔軟性を制限することにつながり、たとえば、過負荷状態からの回避を困難にする可能性がある。【０００５】
仮想マシン移動管理サーバの一例が特許文献１に記載されている。特許文献１の仮想マシン移動管理サーバは、仮想マシン同士の性能情報の相関関係を考慮して仮想マシンを物理マシンに配備することで、定期的に最適化を行い、移行の発生を防止する。
また、特許文献２には、物理マシンの負荷の変動傾向を分析することにより、一時的なゆらぎで不要な移行が行われないようにするサーバ管理装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１１７７６０号公報
【特許文献２】特開２０１１−０９０５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した仮想マシン管理装置においては、仮想マシン同士の性能情報に相関性がない場合や、仮想マシンの負荷の傾向が予測できない場合は想定されていないため、将来の移行にかかる移行コストを抑えることができないという問題点があった。そもそも将来の移行にかかる移行コスト自体が考慮されていなかった。【０００８】
本発明の目的は、上述した課題である移行コストを抑えることができないという問題点を解決する仮想マシン管理システム、仮想マシン管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の仮想マシン管理システムは、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行する管理手段と、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンまたは前記第２仮想マシンの移行先を探索する探索手段と、
前記第２仮想マシンの配備先候補毎に、前記探索手段が探索した前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出する算出手段と、
前記算出手段が算出した前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定する決定手段と、を備え、
前記探索手段は、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの前記移行先をそれぞれ探索し、
前記管理手段は、前記決定手段が決定した前記配備先に前記第２仮想マシンを配備する。【００１０】
本発明の仮想マシン管理方法は、
仮想マシンを管理する管理サーバが、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行し、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索し、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出し、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定し、
決定された前記配備先に前記第２仮想マシンを配備する。【００１１】
本発明のプログラムは、
仮想マシンを管理する管理サーバを実現するコンピュータに、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行する手順、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索する手順、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出する手順、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定する手順、
決定された前記配備先に前記第２仮想マシンを配備する手順を実行させるためのプログラムである。【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。【００１３】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。【００１４】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。【００１５】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１６】
本発明によれば、移行コストを効果的に抑えることができる仮想マシン管理システム、仮想マシン管理方法およびプログラムが提供される。
【図面の簡単な説明】
【００１７】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１８】
【図１】本発明の実施の形態に係る仮想マシン管理システムの構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係る仮想マシン管理システムの動作の一例を示すフローチャートである。
【図３】本発明の実施の形態に係る仮想マシン管理システムの構成を示す機能ブロック図である。
【図４】本発明の実施の形態に係る仮想マシン管理システムの動作の一例を示すフローチャートである。
【図５】本発明の実施の形態に係る仮想マシン管理システムの構成を示す機能ブロック図である。
【図６】本発明の実施の形態に係る仮想マシン管理システムの要部構成を示す機能ブロック図である。
【図７】本発明の実施の形態に係る仮想マシン管理システムの動作の一例を示すフローチャートである。
【図８】本発明の実施の形態に係る仮想マシン管理システムの動作の一例を示すフローチャートである。
【図９】本発明に係る仮想マシン管理システムの実施例において、管理サーバの動作の一例を示すフローチャートである。
【図１０】本発明に係る仮想マシン管理システムの実施例の仮想マシンの配置例を示す図である。
【図１１】本発明に係る仮想マシン管理システムの実施例の各仮想マシンの要求リソース量およびサービスレベルを示す図である。
【図１２】本発明に係る仮想マシン管理システムの実施例の各仮想マシンの移行先を示す図である。
【図１３】本発明に係る仮想マシン管理システムの実施例において、新規に仮想マシンを配備した際の仮想マシンの配置を示す図である。
【図１４】本発明に係る仮想マシン管理システムの実施例において、新規に仮想マシンを配備した際の各仮想マシンの移行先を示す図である。
【図１５】本発明に係る仮想マシン管理システムに対する比較例において、新規に仮想マシンを配備した際の仮想マシンの配置を示す図である。
【図１６】本発明に係る仮想マシン管理システムに対する比較例において、新規に仮想マシンを配備した際の各仮想マシンの移行先を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
（第１の実施の形態）
図１は、本発明の実施の形態に係る仮想マシン管理システム１の構成を示す機能ブロック図である。
本発明の実施の形態に係る仮想マシン管理システム１は、管理対象システム２００を管理する管理サーバ１００を備える。
【００２１】
本発明の管理対象システム２００は、仮想マシン（Virtual Machine：ＶＭ）（不図示）が動作する複数の物理マシン（不図示）を備え、たとえば、企業やデータセンタなどの施設に設置される。管理対象システム２００において、物理マシン上では、複数の仮想マシン（不図示）がそれぞれ稼働することができる。管理対象システム２００がユーザに提供するサービスは様々なものが含まれ、本発明では特に限定されない。
【００２２】
本発明の管理サーバ１００は、管理対象システム２００を管理し、特に、仮想環境においてシステムの過負荷状態を回避するために利用される仮想マシンの移行を管理し、実行する。また、管理サーバ１００は、新規に配備する仮想マシンの管理および配備の実行も行う。以下、本明細書では、既に物理マシン上で動作している仮想マシンを第１仮想マシンと呼び、新規に配備する仮想マシンを第２仮想マシンと呼んで区別するものとする。なお、区別する必要がない場合は、単に仮想マシンと呼ぶものとする。
【００２３】
また、仮想マシン管理システム１の各構成要素は、ＣＰＵ（不図示）、メモリ（不図示）、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット（不図示）、ネットワーク接続用インタフェース（不図示）を備える任意のコンピュータ（不図示）のハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
なお、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００２４】
また、管理サーバ１００は、図示していないサーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。または、管理サーバ１００は、複数のコンピュータから構成されてもよい。本発明では、特に説明しないが、管理サーバ１００は、キーボードやマウス等の入力装置（不図示）やディスプレイなどの表示装置やプリンタ等の出力装置（不図示）等のユーザインタフェースを備えてもよい。この構成により、管理サーバ１００のユーザ、たとえば、仮想マシン管理システム１の管理者は、管理対象システム２００の構成や運用状況の閲覧、または指示や設定の操作等を行うことができる。
【００２５】
本実施形態のコンピュータプログラムは、管理サーバ１００を実現させるためのコンピュータに、少なくとも一つの仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、システムの状態に応じて第１仮想マシンを予め定めた移行先に移行する手順、配備する第２仮想マシンがあるとき、第２仮想マシンの配備による影響を考慮して、第１仮想マシンが動作している最下位システムまたは第２仮想マシンの配備先候補の最下位システムを起点として、階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、第１仮想マシンまたは第２仮想マシンの移行先をそれぞれ探索する手順、第２仮想マシンの配備先候補毎に、探索された移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、第２仮想マシンの配備によって生じる移行リスクの変化分を算出する手順、算出された移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を第２仮想マシンの配備先に決定する手順、決定された配備先に第２仮想マシンを配備する手順、を実行させるように記述されている。
【００２６】
本発明のコンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
【００２７】
管理対象システム２００は、図１に示すように、階層構造を有し、たとえば、最上位システム２０２、最上位システム２０２に包含される上位システム２０４ａと２０４ｂ（以後、特に区別が不要な場合は、単に上位システム２０４と呼ぶ）、各上位システムに包含される最下位システム２０６ａ〜２０６ｄ（以後、特に区別が不要な場合は、単に最下位システム２０６と呼ぶ）が定義されているものとする。
【００２８】
本発明において、最下位システム２０６は、仮想マシン管理システム１における管理サーバ１００による管理の最小単位である。上位システム２０４は、少なくとも一つの最下位システム２０６を包含する。最上位システム２０２は、少なくとも一つの上位システム２０４を包含し、管理の対象のシステム全体を指す。
【００２９】
また、管理対象システム２００は、図１に示す３層の階層構造に限定されるものではなく、任意の多層システムであってよい。本実施形態では、多層システムとして扱う場合、最下位システム２０６を０階層システムとして扱い、上位のシステムになるにつれ１階層システム、２階層システムと階層の段階を上げるものとして定義する。
【００３０】
また、システムの具体的な例を挙げると、物理ＣＰＵを最下位システム２０６とし、ブレード、ブレード筐体、ラック、データセンタの順に上位システム２０４とすることもできる。また、システムの階層構造は物理的な構成だけでなく、論理的な構成をさらに含んでもよい。
【００３１】
論理的な構成とは、たとえば、アプリケーションソフトウェアの管理対象範囲やサービスを提供する対象ユーザの範囲を示す階層構造（部門、支店支局、会社、系列グループ、または分野等）等である。
すなわち、本発明において、階層構造とは、仮想マシンの移行コストに及ぼす影響が異なる階層が定義できる構造である。
【００３２】
図１に示すように、本発明の実施の形態に係る仮想マシン管理システム１の管理サーバ１００は、管理部１０２と、探索部１０４と、算出部１０５と、決定部１０６と、階層構造情報記憶部（図中、「階層構造情報」と示す）１０８と、を備える。
【００３３】
管理部１０２は、少なくとも一つの仮想マシンが動作する物理マシンを有するシステム（管理対象システム２００）を、物理的または論理的な階層構造を定義して管理し、システムの状態に応じて第１仮想マシンを予め定めた移行先に移行する。ここで、配備先とは、新規に仮想マシンを配備する最下位システムを指し、移行先とは、過負荷状態にあるシステムの過負荷回避のために、既に稼働している仮想マシンを移行する他の最下位システムのことを指す。
【００３４】
探索部１０４は、配備する第２仮想マシンがあるとき、第２仮想マシンの配備先候補毎に、第２仮想マシンの配備による影響を考慮して、第１仮想マシンまたは第２仮想マシンの移行先を探索する。そして、探索部１０４は、第１仮想マシンが動作している最下位システムまたは第２仮想マシンの配備先候補の最下位システム２０６を起点として、階層構造のより上位のシステム（上位システム２０４）に包含される近隣の最下位システム２０６を、探索範囲を拡大して探索して、第１仮想マシンまたは第２仮想マシンの移行先をそれぞれ探索する。移行先は、仮想マシン毎に移行先記憶部（不図示）に記憶してもよい。
【００３５】
ここで、新規に配備する第２仮想マシンの配備先候補は、第２仮想マシンが必要とする要求リソース量分の空きを有する物理マシンである。探索部１０４は、新規に配備する第２仮想マシンがあるとき、第２仮想マシンが必要とする要求リソース量分の空きを有する物理マシンを管理対象システム２００の全ての最下位システム（たとえば、最下位システム２０６ａ〜２０６ｄ）について探索し、該当する物理マシンを全て配備先候補とする。このときは、階層構造を考慮した下位システムから上位システムへの探索は行わない。
【００３６】
また、探索部１０４は、各仮想マシンの移行先については、上述したように、その仮想マシンが必要とする要求リソース量分の空きを有する物理マシンを、階層構造を考慮した下位システムから上位システムへ探索する。
【００３７】
算出部１０５は、第２仮想マシンの配備先候補毎に、探索部１０４が探索した移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、第２仮想マシンの配備よって生じる移行リスクの変化分を算出する。
決定部１０６は、算出部１０５が算出した移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小になる配備先候補を第２仮想マシンの配備先に決定する。決定した第２仮想マシンの配備先は、仮想マシン毎に配備先記憶部（不図示）に記憶してもよい。配備先候補の中から第２仮想マシンの配備先を決定する方法については、後述する実施形態で詳細に説明する。
【００３８】
なお、探索部１０４は、配備される第２仮想マシンが必要とするリソースの空き容量を有するシステムを、システムの階層構造の最下位システム２０６から上位システム２０４へ順に探索して、第２仮想マシンの配備先候補とすることができる。
【００３９】
本発明では、管理対象システム２００内で移行を行う際に、移行の対象となるシステムとは別の他のシステムへ与える影響度と、移行の対象となる仮想マシンに与える影響度とを、移行にかかるコストに勘案して移行コストとして定義する。また、本発明では前述した仮想ＣＰＵと物理ＣＰＵの対応付けの動的な変更も移行の１つとして扱う。
【００４０】
他のシステムへ与える影響度は、どの階層間で移行を伴うかで移行コストの大きさが変わる。たとえば、物理ＣＰＵ間、ブレード間、ブレード筐体間、ラック間の順に移行コストは高くなり、つまり、階層の深いところの（上位システムを跨ぐ）移行を伴うほど移行コストが高くなる。
【００４１】
仮想マシンを配備する際、仮想マシンには仮想ＣＰＵという単位でＣＰＵリソースが割当てられる。仮想ＣＰＵは物理ＣＰＵと対応付けられるが、一般的には静的な対応付けは行われず、スケジューラにより動的に対応付けられる。しかし、キャッシュなどの効果により仮想ＣＰＵと物理ＣＰＵを静的に対応付けることで性能が向上する場合がある。さらに、リソースの競合が少ない仮想マシン同士を同一の物理ＣＰＵに割当てることでリソースを効率的に利用することも可能となる。マルチコアのシステムでは、仮想マシンの仮想ＣＰＵと物理ＣＰＵを静的に割当てた場合でも、その物理ＣＰＵがリソース不足になった場合は、その物理ＣＰＵを利用している仮想マシンを別の物理ＣＰＵを使うように切り替えればよく、この切り替え自体はネットワークＩ／Ｏ負荷が発生せず、短時間で行うことができるため、非常に低コストといえる。
【００４２】
たとえば、管理対象システム２００が複数のラックを有し、各ラック内に複数のブレードが格納されている場合について考える。ブレードの階層を０階層システム、ラックの階層を１階層システムとする。この場合、同一ラック内のブレード（起点となる最下位システムが包含される上位システム内の最下位システムに相当）間の移行コストよりラックを跨るブレード間（起点となる最下位システムが包含される上位システムの近隣の上位システム内に包含される近隣の最下位システムに相当）の移行コストの方が高くなる。本発明のように、仮想マシンが動作している最下位システムを起点として、近隣から順に移行先の最下位システムを探索し、さらに、探索範囲を近隣の上位システム内に順次拡大しながら探索を行うことで、階層を跨がない同一上位システムになるべく近い最下位システムを将来の移行先とすることができる。これにより、移行によるコストへの影響を小さく抑えることができる。
【００４３】
このように、本発明では、管理サーバ１００は、管理対象システム２００上で実行している仮想マシンの移行コストに関連するシステムの階層構造を考慮し、仮想マシンおよび管理対象システム２００の性能情報に基づいて、システム全体の移行リスクが小さくなる仮想マシンの配備先を決定する。
【００４４】
また、管理部１０２は、決定された配備先に仮想マシンを配備する。本実施形態では、決定部１０６が配備先を決定した後、直ぐに仮想マシンを配備先に配備する構成としているが、これに限定されない。この構成は、特に、新規に仮想マシンを配備する場合に好ましい。その他の形態として後述するように、たとえば、予め仮想マシン毎に配備先を決定しておき、システムの過負荷状態を検知した場合や、過負荷状態になることが将来的に予測される場合などに、適切な仮想マシンを予め決定してあった配備先に移行してもよい。また、他の実施形態で後述するように、各仮想マシンの配備先または移行先は、管理対象システム２００の性能情報に基づいて定期的にまたは随時更新されるのが好ましい。
【００４５】
階層構造情報記憶部１０８は、管理対象システム２００の構成情報を格納する。管理対象システム２００の構成情報は、上述したような管理対象システム２００の階層構造とともに、各システムの情報を含む。たとえば、データセンタ内のフロア情報、ラック識別子、ブレード筐体識別子、ブレード識別子、物理ＣＰＵ、または物理サーバ上で稼働中の仮想マシン識別子等を互い関連付けて記憶する。さらに、物理ＣＰＵの性能やメモリ容量等の情報も含んでもよい。
【００４６】
上述のような構成において、本実施の形態の仮想マシン管理システム１における仮想マシン管理方法を以下に説明する。
図２は、本発明の実施の形態に係る仮想マシン管理システム１の管理サーバ１００の動作の一例を示すフローチャートである。以下、図１および図２を用いて説明する。
【００４７】
本実施形態の仮想マシン管理方法は、仮想マシンを管理する管理サーバ１００が、少なくとも一つの仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行することでシステムの状態を安定化させる。また、配備する第２仮想マシンがあるとき（ステップＳ１０１のＹＥＳ）、管理サーバ１００が、第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは第２仮想マシンの前記配備先候補の最下位システムを起点として、階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、第１仮想マシンまたは第２仮想マシンの移行先をそれぞれ探索し（ステップＳ１０３〜ステップＳ１０７）、第２仮想マシンの配備先候補毎に、探索された移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、第２仮想マシンの配備によって生じる移行リスクの変化分を算出し（ステップＳ１０９）、算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定し（ステップＳ１１１）、決定された配備先に第２仮想マシンを配備する（ステップＳ１１３）。
【００４８】
より詳細には、まず、管理サーバ１００において、配備する第２仮想マシンがあるとき（ステップＳ１０１のＹＥＳ）、探索部１０４が、第２仮想マシンの配備先候補毎に、第２仮想マシンの配備による影響を考慮して、第１仮想マシンまたは第２仮想マシンの移行先を探索する（ステップＳ１０３）。このとき、探索部１０４は、第１仮想マシンが動作する最下位システムまたは第２仮想マシンの配備先候補の最下位システムを起点として、第１仮想マシンまたは第２仮想マシンが将来移行予定の移行先となる最下位システムを探索する。なお、ステップＳ１０１で、配備する第２仮想マシンがないとき（ステップＳ１０１のＮＯ）、本処理は行われない。
【００４９】
たとえば、移行元の仮想マシンが動作する最下位システムを最下位システム２０６ａとすると、探索部１０４が、起点となる最下位システム２０６ａを包含する上位システム２０４ａ内で、移行先となる最下位システムの探索を行う。最下位システム２０６ｂが移行先となる場合、すなわち、最下位システム２０６ｂが要求リソース量分の空きを有している場合（ステップＳ１０５のＹＥＳ）、探索部１０４は、その最下位システム２０６ｂを仮想マシンの移行先として、ステップＳ１０９に進む。この場合は、階層を跨がない移行となる。
一方、最下位システム２０６ｂが移行先とならなかった場合、すなわち、最下位システム２０６ｂが要求リソース量分の空きを有していない場合（ステップＳ１０５のＮＯ）、ステップＳ１０７に進む。
【００５０】
ステップＳ１０５で移行先がなかった場合（ステップＳ１０５のＮＯ）、探索部１０４が、近隣の上位システム（図１の上位システム２０４ｂ）に包含される近隣の最下位システム２０６ｃ、２０６ｄについて、探索範囲を拡大して探索を行う（ステップＳ１０７）。そして、たとえば、上位システム２０４ｂの最下位システム２０６ｃまたは最下位システム２０６ｄのいずれか少なくとも一つが移行先となる場合、すなわち、いずれか少なくとも一つが要求リソース量分の空きを有している場合（ステップＳ１０５のＹＥＳ）、探索部１０４は、その最下位システム２０６を仮想マシンの移行先として、ステップＳ１０９に進む。この場合は、階層を跨ぐ移行になり、階層を跨がない移行に比較して移行にかかるコストが高くなる可能性がある。ここでは、移行元の仮想マシンが動作する最下位システムが包含される上位システムにより近い他の上位システム内から順に移行先の近隣の最下位システムを探すことで、なるべく移行にかかるコストがかからないようにしている。
【００５１】
なお、図１では最上位システム２０２に包含される上位システム２０４は、上位システム２０４ａと上位システム２０４ｂであるが、さらに他の上位システム２０４ｃ（不図示）を包含していてもよい。そして、上位システム２０４ａと上位システム２０４ｂともに移行先となる最下位システム２０６が見つからなかった場合には、上位システム２０４ｃ内の最下位システム２０６をさらに探索していくこととなる。
なお、最上位システム２０２に包含されるすべての最下位システム２０６のいずれも移行先とならなかった場合、すなわち、いずれも要求リソース量分の空きを有していない場合、本処理を終了する（不図示）。
【００５２】
次に、算出部１０５が、移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、第２仮想マシンの配備によって生じる移行リスクの変化分を算出する（ステップＳ１０９）。ここで、移行リスクは、全ての仮想マシンについて算出するのではなく、配備の影響による変化分を算出する。
そして、決定部１０６が、ステップＳ１０９で算出された各仮想マシンの移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小になる配備先を決定する（ステップＳ１１１）。ステップＳ１１１で決定部１０６が決定した配備先に、管理部１０２が第２仮想マシンを配備する（ステップＳ１１３）。
【００５３】
第２仮想マシンの配備先候補が見つからず、本処理を終了する場合は、終了前に、たとえば、管理部１０２が、休止中の物理マシンの中から新規に物理マシンを起動し、その物理サーバ内の最下位システムを配備先と決定して配備してもよい。あるいは、管理部１０２が、管理者にリソース不足によるエラーや物理マシンの増設が必要である旨を通知し、異常終了してもよい。通知方法は、特に限定されないが、たとえば、管理サーバ１００の表示装置にメッセージやアイコン等を表示して管理者に通知してもよい。
【００５４】
以上説明したように、本実施形態の仮想マシン管理システム１によれば、新規に第２仮想マシンを配備するとき、配備による影響を考慮して、階層を跨がないグループ内の階層構造の最下位システムから順に仮想マシンの移行先を決定し、さらに、その移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、第２仮想マシンの配備によって生じる移行リスクの変化分を算出し、システム全体の移行リスクの変化分が最小となるよう配備先を検討するので、配備によるコストへの影響を小さく抑えることができる。このようにして、移行コストをできる限り抑えることができる。
【００５５】
さらに、本発明の実施の形態に係る仮想マシン管理システム１において、探索部１０４が、第１仮想マシンの移行先を事前に計算しておくことができる。これにより、第１仮想マシンの移行が必要になった場合に、移行先を検索する時間が短くなり、移行の判断を短時間で行うことができる。
【００５６】
（第２の実施の形態）
図３は、本発明の実施の形態に係る仮想マシン管理システム１の構成を示す機能ブロック図である。
本発明の実施の形態に係る仮想マシン管理システム１は、上記実施形態とは配備による影響を受ける仮想マシンを判別し、将来的な移行時のシステムへの影響を考慮して適切な配備先を決定する構成をさらに有する点で相違する。本実施形態の仮想マシン管理システム１は、管理対象システム２００を管理する管理サーバ３００を備える。
図３の管理サーバ３００は、図１の実施形態の仮想マシン管理システム１の管理サーバ１００と同様な管理部１０２と、探索部１０４と、階層構造情報記憶部（図中、「階層構造情報」と示す）１０８とを備えるとともに、さらに、算出部３１２と、配備情報記憶部（図中、「配備情報」と示す）３１４と、決定部３１６と、判別部３１８と、を備える。
【００５７】
また、本実施形態において、管理サーバ３００は、さらに、管理対象システム２００から性能情報を取得する性能情報収集部３２２と、性能情報収集部３２２が収集した性能情報を格納する性能情報データベース（図中、「性能情報ＤＢ」と示す）３２４をさらに備える。なお、性能情報収集部３２２および性能情報データベース３２４は、必ずしも管理サーバ３００が備える必要はなく、管理対象システム２００の性能情報が格納される性能情報データベース３２４に管理サーバ３００がアクセスでき、性能情報を取得できる構成であればよい。
【００５８】
性能情報収集部３２２は、定期的または随時、管理対象システム２００にネットワーク３を介してアクセスし、性能情報を収集する。性能情報は、管理対象システム２００のリソースのキャパシティを定義できる適切な階層のシステムから取得する。たとえば、性能情報収集部３２２は、最下位システムおよび最下位システム上で実行している仮想マシンの性能情報を取得する。また、最下位システムが物理ＣＰＵである場合であっても、性能情報収集部３２２は、物理ＣＰＵより上位システムのブレード（すなわち、物理サーバ）単位で、物理ＣＰＵ単位の情報も含めて性能情報を収集してもよい。
【００５９】
性能情報は、たとえば、ＣＰＵ使用率、メモリ使用量、ディスク使用量、消費電力量、または二酸化炭素換算量などの情報を含む。
【００６０】
本実施形態の仮想マシン管理システム１の管理サーバ３００において、判別部３１８は、第２仮想マシンの配備による影響を受ける第１仮想マシンとして、第２仮想マシンの配備先候補の最下位システムを移行先としている第１仮想マシン、および第２仮想マシンの配備先候補の最下位システムで動作している第１仮想マシンを求める。
本実施形態において、判別部３１８が求めた第１仮想マシンおよび第２仮想マシンについて、探索部１０４が移行先を探索するとともに、算出部３１２が、移行リスクの変化分を算出する。
算出部３１２は、探索部１０４が探索した仮想マシンの移行先に、将来移行する可能性の度合と移行コストを考慮した移行リスクと、移行リスクを判別部３１８が求めた仮想マシンについて算出することで、第２仮想マシンの配備によって生じる移行リスクの変化分（増分）を算出する。
【００６１】
配備情報記憶部３１４は、探索部１０４が探索した、配備する第２仮想マシンの配備先候補と、既に稼働している各仮想マシンの移行先とを記憶する。算出部３１２および決定部３１６は、配備情報記憶部３１４を参照して動作する。なお、各仮想マシンの移行先は、各仮想マシンが移行された後、または、定期的に探索部１０４、算出部３１２、および決定部３１６によって計算して決定し、配備情報記憶部３１４に新規にまたは更新して記憶することができる。
【００６２】
本発明において、移行コストは、移行自体にかかるコストであるため、システムが過負荷状態になる可能性の度合いについては考慮されていない。そこで、本発明では、システムが過負荷状態になる可能性を考慮した将来的な移行コストを移行リスクとして定義する。移行リスクは、現在動作中の各仮想マシンに対して性能情報に基づいて計算することができる。ある仮想マシンの移行リスクは、その仮想マシンが存在するシステムにおいて過負荷状態になり、別の物理マシンへ移行しなければならない可能性の度合いとその仮想マシンの移行コストの乗算で計算されるものと定義するが、他の計算方式を用いてもよい。
【００６３】
本発明では、新規に第２仮想マシンを配備する際、システム全体の移行リスクの増加量が最も小さくなる最下位システムを配備先として決定することで、システム全体の将来的な移行コストを抑えることを可能にする。
【００６４】
上述のような構成において、本実施の形態の仮想マシン管理システム１における仮想マシン管理方法を以下に説明する。
図４は、本発明の実施の形態に係る仮想マシン管理システム１の管理サーバ３００の動作の一例を示すフローチャートである。以下、図３および図４を用いて説明する。図４は、特に、本実施形態の管理サーバ３００における、配備による移行リスクの算出動作の手順を示し、上記実施形態の図２のステップＳ１０３〜ステップＳ１０９のより具体的な処理の詳細手順を示す。本実施形態の管理サーバ３００の他の動作は、図２に示す手順と同様であり、図１の手順でステップＳ１０１の判定結果がＹＥＳの時、すなわち、新規に配備する第２仮想マシンがある場合、本図のフローチャートの手順が開始される。
【００６５】
本実施形態の仮想マシン管理方法は、管理サーバ３００が、第２仮想マシンの配備による影響を受ける第１仮想マシンとして、第２仮想マシンの配備先候補の最下位システムを移行先としている第１仮想マシン、および第２仮想マシンの配備先候補の最下位システムで動作している第１仮想マシンを求め（ステップＳ２０５）、ステップＳ２０５で求めた第１仮想マシンおよび第２仮想マシンについて、移行先を探索するとともに（ステップＳ２０７）、移行リスクの変化分を算出する（ステップＳ２１１）。
【００６６】
より詳細には、まず、探索部１０４が探索した新規に配備する第２仮想マシンが要求するリソース量の空きリソースがある最下位システム、すなわち、配備先候補が複数あるか否かを判定する（ステップＳ２０１）。複数ある場合（ステップＳ２０１のＹＥＳ）、ステップＳ２０３に進み、複数ない場合（ステップＳ２０１のＮＯ）、ステップＳ２１９に進む。ステップＳ２１９では、決定部１０６が、その配備先候補を新規に配備する第２仮想マシンの配備先に決定し、本処理を終了し、図２のステップＳ１１３に戻る。
【００６７】
ステップＳ２０３に進んだ場合は、ステップＳ２０３〜ステップＳ２１５の間のループ処理を、複数の配備先候補の最下位システムを一つずつ選択して順に繰り返し実行する。このループ処理で、管理サーバ３００における第２仮想マシン配備後のシステム全体の移行リスクの増加分が計算される。
【００６８】
ここで、配備先候補となっている空きリソースは、別の第１仮想マシンの移行先になっている可能性がある。その場合は、その場所に新規に第２仮想マシンを配備すると、第１仮想マシンが将来的に移行できなくなるため、第１仮想マシンの移行先を更新する必要がでてくる。
【００６９】
そこで、選択した最下位システムに第２仮想マシンを配備した際、判別部３１８が、移行先の変更が必要な第１仮想マシンがあるか否かを判定する（ステップＳ２０５）。変更が必要な第１仮想マシンがある場合（ステップＳ２０５のＹＥＳ）、探索部１０４が、変更が必要な第１仮想マシンの新たな移行先を探索する（ステップＳ２０７）。このとき、探索部１０４は、図２の上記実施形態のフローチャートのステップＳ１０３〜ステップＳ１０７と同様な手順で、第１仮想マシンが動作する最下位システムを起点として、起点となる最下位システムを包含する上位システム内で、移行先となる最下位システムを探索し、上位システム内に適切な移行先が見つからない場合は、近隣の上位システムに包含される近隣の最下位システムを、順に探索範囲を拡大して探索する。そして、同様に、配備される第２仮想マシンの移行先も探索する（ステップＳ２０９）。
そして、算出部３１２が、ステップＳ２０７およびステップＳ２０９で探索された第１仮想マシンおよび第２仮想マシンの移行先の移行リスクを再計算する（ステップＳ２１１）。変更が必要な第１仮想マシンがない場合（ステップＳ２０５のＮＯ）、ステップＳ２０７はバイパスし、ステップＳ２０９に進む。
【００７０】
なお、第２仮想マシンの配備前の第１仮想マシンの移行先の移行リスクと、第２仮想マシンを配備した時に、移行先の変更が必要となる第１仮想マシンの移行先の移行リスクとの差分が、第１仮想マシンに関する移行リスクの増加分となる。複数の第１仮想マシンが、第２仮想マシンの配備先候補の空きリソースを移行先としていた場合、算出部３１２は、それぞれの第１仮想マシンに対して移行リスクを再計算する。そして、算出部３１２は、各第１仮想マシンおよび第２仮想マシンの移行リスクの増加分の総和をその空きリソースに第２仮想マシンを新規配備することによる移行リスクの増分として求める（ステップＳ２１３）。
【００７１】
複数の最下位システムに空きリソースがある場合、各配備先候補について、ステップＳ２０５〜ステップＳ２１３の処理を繰り返し、算出部３１２が、複数の配備先候補のそれぞれに対して同様に移行リスクの増分を求めた後、ループ処理を終了し（ステップＳ２１５）、ステップＳ２１７に進む。そして、決定部３１６が、ステップＳ２１３で算出された移行リスクの増分が最小の最下位システムを新規第２仮想マシンの配備先に決定する（ステップＳ２１７）。
【００７２】
また、管理対象システム２００の性能情報は刻々と変化するため、本実施形態において、算出部３１２および決定部３１６は、各第１仮想マシンの移行先を定期的に再計算し、配備情報記憶部３１４の各第１仮想マシンの移行先を更新する。
【００７３】
以上より、新規に第２仮想マシンを配備する際、システム全体へ将来的な移行コストを最も小さくする配備先を決定することができる。
【００７４】
以上説明したように、本発明の実施の形態に係る仮想マシン管理システム１によれば、上記実施形態と同様な効果を奏するとともに、さらに、新規に第２仮想マシンを配備する際、将来的に仮想マシンの移行が必要になった場合のシステム全体への影響または仮想マシンへの影響を小さくすることができる。
【００７５】
（第３の実施の形態）
図５は、本発明の実施の形態に係る仮想マシン管理システム１の構成を示す機能ブロック図である。
本発明の実施の形態に係る仮想マシン管理システム１は、上記実施形態とは、階層毎に、階層構造の上位のシステム程、移行コストが大きくなるように定義される関数を用いて移行コストを算出する構成をさらに有する点で相違する。本実施形態の仮想マシン管理システム１は、管理対象システム２００を管理する管理サーバ４００を備える。
【００７６】
図５の管理サーバ４００は、図３の実施形態の仮想マシン管理システム１の管理サーバ３００と同様な管理部１０２と、探索部１０４と、階層構造情報記憶部１０８と、配備情報記憶部３１４と、判別部３１８と、を備えるとともに、さらに、算出部４１２と、決定部４１６と、を備える。さらに、管理サーバ４００は、図３の管理サーバ３００と同様な性能情報収集部３２２と、性能情報データベース３２４と、を備えてもよい。
【００７７】
本実施形態において、管理対象システム２００は、たとえば、様々なユーザにサービスを提供するものとすることができる。ユーザに提供されるサービスは、たとえば、ＳＬＡ（Service Level Agreement、サービスレベル契約）をユーザと事前に交わし、その品質をユーザに保証する。サービスレベルは、様々な項目について設定することができ、項目は、たとえば、ＣＰＵ使用率、メモリ使用量、ディスク使用量、消費電力量、または二酸化炭素換算量等を含むことができる。サービスレベルは、特に限定されないが、たとえば、レベルが高い順に、Ｓ、Ａ、Ｂ、およびＣランクなどの４段階に定義することができる。
【００７８】
本実施形態では、各仮想マシンに対して、リソース不足に対する許容度を示すサービスレベルが設定されているものとする。たとえば、許容できるＣＰＵ使用率やメモリ使用量などをそれぞれ定義したサービスレベルが設定されているものとする。
【００７９】
たとえば、リアルタイム性を要求する仮想マシンの場合、一時的なリソース不足によりリアルタイム性を確保できなくなる可能性があるため、高いサービスレベルが設定される。たとえば、「最低限、５秒平均で、ＣＰＵ１コア分のリソースを保証する」などのサービスレベルが設定される。一方で、バッチ処理を行う仮想マシンなどは一時的なリソース不足は大きな問題とはならないため、低いサービスレベルが設定される。たとえば、「最低限、１時間平均で、ＣＰＵ１コア分のリソースを保証する」などのサービスレベルが設定される。
【００８０】
上述したように、本発明では、管理対象システム２００内で移行を行う際に、移行の対象となるシステムとは別の他のシステムへ与える影響度と、移行の対象となる仮想マシンに与える影響度とを、移行にかかるコストに勘案して移行コストとして定義する。他のシステムへ与える影響度はどの階層間で移行を伴うかでコストの大きさが変わる。たとえば、物理ＣＰＵ間、ブレード間、ブレード筐体間、ラック間の順に移行のコストは高くなり、つまり、階層の深いところの（上位システムを跨ぐ）移行を伴うほど移行コストが高くなる。
【００８１】
そこで、本実施形態では、算出部４１２は、階層毎に、階層構造の上位のシステム程、移行コストが大きくなるように定義される関数を用いて移行コストを算出する。
【００８２】
次に、移行の対象となる仮想マシンに対して与えられる影響度について考える。移行コストは、移行される仮想マシンのサービスレベルによっても変わる。より高いサービスレベルが設定された仮想マシンほど移行に伴うリソース不足によるサービス品質の劣化などのリスクが高いため、移行コストも高いと言える。
【００８３】
そこで、本実施形態では、各階層間の移行コストを仮想マシンのサービスレベルを引数（パラメータα）にとる移行コスト関数として定義することにする。つまり、移行コスト関数は各階層間に１つ存在することになる。ｉ階層システムの移行コスト関数を（式１）とすると、各階層の移行コスト関数の関係は（式２）のようになる。ただし、ｘは仮想マシンのサービスレベルを指し、仮想マシン間で比較可能な指標とする。
【数１】
2013171944.tif 000003
【数２】
2013171944.tif 000004
【００８４】
本実施形態において、上記の移行コスト関数は、さらに、第１仮想マシンまたは第２仮想マシン毎に定められたサービスレベルに応じて変わる移行コストを、第１仮想マシンおよび第２仮想マシンのサービスレベルを引数（パラメータα）としてそれぞれ定義される。
【００８５】
たとえば、複数のラックがあり、各ラック内に複数のブレードが格納されているシステムを考える。ブレードの階層を０階層システム、ラックの階層を１階層システムとする。この場合、同一ラック内のブレード間の移行コストよりラックを跨るブレード間の移行コストのほうが高くなる。
【００８６】
また、ある仮想マシンを新規に配備する際、空きリソースの少ないラック内のブレードに仮想マシンを詰め込むとラック全体として過負荷状態になる可能性が高く、将来的に過負荷状態の回避のために自らまたは他の仮想マシンをラック外へ移行する必要が生じる可能性が高い。ラック内に含まれる仮想マシンのサービスレベルが高い場合、そのラックに新規に第２仮想マシンを配備すると、将来的に過負荷になった場合、サービスレベルの高い、つまり、移行コストの大きい仮想マシンを他の物理マシンへ移行する必要性が出てくる可能性が高くなる。一方、そのラック内に含まれる仮想マシンのサービスレベルが低い場合、そのラック内に新規に第２仮想マシンを配備しても、将来的に過負荷になった場合に、サービスレベルの低い、つまり、移行コストの小さい仮想マシンを別のラックへ移行させればよい。このように、仮想マシンのサービスレベルを考慮すると移行コストに対して最適な配備先が変わってくる。
【００８７】
たとえば、新規に仮想マシンを配備することを考える。ある最下位システムＡのリソース使用率が５０％で、別の最下位システムＢのリソース使用率が７０％の場合、リソースの使われ方が同じであれば最下位システムＢのほうが過負荷状態になる度合いが高い。しかし、最下位システムＡ上の他の仮想マシンのサービスが高く、最下位システムＢ上の仮想マシンのサービスレベルが低い場合、最下位システムＢ上に仮想マシンを配備した方がよい場合がある。これは、最下位システムＢ上の仮想マシンのサービスレベルが低いため、過負荷状態になったとしても仮想マシンを他へ移行するコストが小さいためである。
【００８８】
上述したように、移行コストは、移行自体にかかるコストであるため、システムが過負荷状態になる可能性の度合いについては考慮されていない。そこで、本発明では、システムが過負荷状態になる可能性を考慮した将来的な移行コストを移行リスクとして定義する。移行リスクは、現在動作中の各仮想マシンに対して性能情報に基づいて計算することができる。ある仮想マシンの移行リスクは、その仮想マシンが存在するシステムにおいて過負荷状態になり、別の物理マシンへ移行しなければならない可能性の度合いとその仮想マシンの移行コストの乗算で計算されるものと定義する。
【００８９】
本実施形態において、算出部４１２は、さらに、移行先に影響がある前記第１仮想マシンおよび当該第２仮想マシンについて探索部１０４が探索した移行先に将来移行する可能性の度合として、第１仮想マシンおよび第２仮想マシンが動作する最下位システムが将来的に過負荷状態になる可能性の度合を、移行コスト関数に乗じて移行リスクをそれぞれ算出することができる。
【００９０】
本発明では上述したようなシステム全体の移行リスクを考慮して、新規に仮想マシンを配備する際、システム全体の移行リスクの増加量が最も小さくなる最下位システムを配備先として決定することで、システム全体の将来的な移行コストを抑えることを可能にする。
【００９１】
算出部４１２において、システム全体の移行リスクは以下のようにして計算される。
まず、既に動作している全ての仮想マシンに対して、各仮想マシンが動作しているシステムが過負荷状態になった場合の移行先とその移行コストを計算する。ある仮想マシンの移行先は、その仮想マシンを格納するだけの空きリソースが存在する最下位システムの中で、移行コストが最も小さいところを指す。
【００９２】
たとえば、物理ＣＰＵを最下位システム（０階層システム）とし、物理サーバがその上位システム（１階層システム）である場合を考える。同一物理サーバの最下位システム間の移行は、仮想マシンに割り当てる物理ＣＰＵの切り替えに相当する。ある仮想マシンのサービスレベルをαとすると、同一物理マシン内にその仮想マシンを実行するだけの空きリソースのある物理ＣＰＵが存在する場合、その仮想マシンの移行先は同一物理マシン内の他の物理ＣＰＵとなり、移行コストはｆ０（α）で計算される。
【００９３】
一方、同一物理マシン内のいずれの物理ＣＰＵにも空きリソースが存在しない場合は、他の物理マシン（他のグループ）が移行先となり、移行コスト関数はｆ１（α）となる。
ｆ０（α）は、同一グループ内の物理ＣＰＵ間の移行の移行コスト関数であり、ｆ１（α）は階層を跨ぐ他のグループの物理サーバ間の移行コスト関数である。
移行コスト関数は、各仮想マシンの移行先が、上位システムを跨ぐ他のグループか否かに応じて変わり、階層毎に定義される。
本実施形態では、移行コスト関数は、サービスレベルαを引数として、階層毎に事前に定義されているものとする。ここで、上記の式（２）から、ｆ０（α）＜ｆ１（α）である。
【００９４】
上述したように、本実施形態において、仮想マシンの移行先および移行コストは現在配備されている最下位システムから順に階層の深いシステムに対して空きリソースを検索することで求まる。もし、最上位システムにも空きが存在しない場合には、エラーとして出力するか、移行コストを非常に高い値とすることができる。
【００９５】
さらに、算出部４１２は、仮想マシンが配備されている最下位システムの現在または過去一定時間の平均のリソース使用率から将来的に過負荷状態になる可能性の度合いを計算する。この計算方法はある確率分布を用いて過負荷状態になる確率として計算してもよいし、過負荷状態にどれだけ近いかという抽象的な単純な指標を用いてもよい。仮想マシンの移行コストに対して、その仮想マシンが配備されている最下位システムの過負荷状態になる可能性の度合いを乗算することで、その仮想マシンの移行リスクが計算される。このようにして、仮想マシンが配備されている最下位システムの過負荷状態になる可能性の度合いを移行コスト関数に乗算して移行リスクを算出することができる。
【００９６】
システム全体の移行リスクは、全ての第１仮想マシンの移行リスクの総和とする。また、新規に第２仮想マシンを配備する際のシステム全体の移行リスクの増加量は、第２仮想マシンを配備後のシステム全体の移行リスクの予測値から配備前のシステム全体の移行リスクを引いたものとして定義する。
【００９７】
以上により、本実施形態の算出部４１２は、移行リスクを、サービスレベル（パラメータα）、リソースが過負荷状態になる可能性の度合、または階層構造における上位システムを跨ぐか否かに基づいて、予め定めた評価式（関数）により算出することができる。
【００９８】
本実施形態の仮想マシン管理システム１の動作は、算出部４１２における移行リスクの算出方法が異なる以外は上記実施形態と同様であるので、詳細な説明は省略する。
【００９９】
以上説明したように、本実施形態の仮想マシン管理システム１によれば、上記実施形態と同様な効果を奏するとともに、さらに、仮想環境においてシステムの過負荷状態を回避するために利用される仮想マシンの移行にかかるコストを抑えることができる。
【０１００】
（第４の実施の形態）
本発明の実施の形態に係る仮想マシン管理システムは、上記実施形態とは、新規に仮想マシンを配備する際、全ての最下位システムを対象として移行リスクの増分を計算し、配備先を決定するのではなく、階層ごとに移行リスクの配備閾値を定義し、配備閾値を超えている階層に含まれるシステムは配備の対象外とする構成を有する点で相違する。
【０１０１】
図６は、本発明の実施の形態に係る仮想マシン管理システムの管理サーバ５００の要部構成を示す機能ブロック図である。
本実施形態の仮想マシン管理システムは、図５の上記実施形態と同様な管理部１０２（図６には図示せず）と、階層構造情報記憶部１０８（図６には図示せず）と、配備情報記憶部３１４と、算出部４１２と、決定部４１６（図６には図示せず）と、性能情報収集部３２２と、性能情報データベース３２４とを有するとともに、さらに、判定部５０２と、探索部５０４とを備える。なお、図６では管理サーバ５００の要部構成のみを示している。
なお、本実施形態の管理サーバ５００は、図３の上記実施形態と同様な構成とすることもできる。
【０１０２】
本実施形態の仮想マシン管理システムにおいて、管理サーバ５００の算出部４１２は、定期的に、最下位システムの移行リスクを算出する。本実施形態において、各階層のシステム毎の移行リスクは、そのシステム内に含まれる仮想マシンの移行リスクの総和として定義される。算出部４１２は、定期的に各階層のシステム毎の移行リスクの総和を計算し、配備情報記憶部３１４に記憶する。そして、管理サーバ５００は、算出部４１２が算出した各階層のシステム毎の移行リスクの総和が、階層毎に予め設定された閾値を超えているか否かを判定する判定部５０２をさらに備える。
探索部５０４は、判定部５０２により閾値を超えていると判定された階層のシステムに含まれる下位のシステムは、探索対象から外す。
【０１０３】
判定部５０２は、配備情報記憶部３１４を参照し、最上位システムから、最下位システムに向けて、閾値判定を行い、探索対象のシステムを検索する。そして、探索部５０４は、判定部５０２が対象外と判定したシステムについては、探索部５０４は検索を行わず、探索対象のシステムについてのみ、配備先候補の探索を行う。
なお、判定部５０２の判定結果は、各階層のシステム毎に、配備情報記憶部３１４に保持しておくこともできる。
【０１０４】
また、算出部４１２は、判定部５０２が探索対象と判定したシステムに含まれる最下位システムに対してのみ第２仮想マシンを配備した際の移行リスクの増分を計算する。よって、算出部４１２は、配備前の探索対象のシステムの移行リスクと、配備後の探索対象のシステムの移行リスクとの差分を、配備による移行リスクの増分として算出する。
【０１０５】
以上説明したように、本実施形態の仮想マシン管理システムによれば、上記実施形態と同様な効果を奏するとともに、さらに、移行リスクが閾値を超えているシステムは手順から外し、探索対象になったシステムの最下位システムに対してのみ配備先候補の探索と、仮想マシンを配備した際の移行リスクの増分の計算が行われるため、すべてのシステムについて処理を行う場合に比較して、処理効率がよい。
【０１０６】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、他の態様として、管理対象システム２００が過負荷状態になった際の管理サーバの処理を以下のようにすることができる。
【０１０７】
この実施形態において、管理サーバは、過負荷状態になった最下位システムが存在するかを確認する確認部（不図示）と、過負荷状態になったシステムに対し、当該システム上の第１仮想マシンの中から、過負荷状態を回避可能で、かつ、移行コストが小さい第１仮想マシンの集合を求める計算部（不図示）と、をさらに備えることができる。管理部１０２は、集合を求める計算部が求めた集合の第１仮想マシンに対し、移行を実行する。
ここで、管理サーバは、図１、図３、図５、または図６のいずれかの構成または、これらの構成の組み合わせとすることができる。ここでは、図５の構成を例として説明する。なお、集合を求める計算部は、図５の探索部１０４または決定部４１６に含まれるものとし、下記では、探索部１０４および決定部４１６として説明する。なお、管理サーバが、性能情報収集部３２２を含まない場合は、上述したように管理サーバは、定期的に管理対象システム２００から収集された性能情報を用いるものとする。
【０１０８】
図７のフローチャートに示すように、管理サーバ４００の性能情報収集部３２２が、定期的に管理対象システム２００から性能情報を取得し、性能情報データベース３２４に格納する（ステップＳ３０１）。確認部が、性能情報データベース３２４を参照し、過負荷状態になった最下位システムが存在するかを確認する（ステップＳ３０３）。過負荷状態になった最下位システムが存在する場合（ステップＳ３０３のＹＥＳ）、探索部１０４および決定部４１６が、その最下位システムに含まれる仮想マシンのうち、過負荷状態を回避できる仮想マシンの組み合わせを求める（ステップＳ３０５）。さらに、探索部１０４および決定部４１６が、移行コストが最小となる仮想マシンの組み合わせを選択して最適な仮想マシンの集合を求める（ステップＳ３０７）。そして、管理部１０２が、ステップＳ３０７で求められた集合に含まれる第１仮想マシンに対し移行を実行する（ステップＳ３０７）。なお、過負荷状態になった最下位システムが存在しない場合（ステップＳ３０３のＮＯ）、ステップＳ３０１に戻る。
【０１０９】
さらに、他の態様として、管理サーバは、前回取得した性能情報の値に対して一定値以上の変動があった最下位システムがあるか否か判定する変動検出部（不図示）をさらに備えてもよい。ここで、管理サーバは、図１、図３、図５、または図６のいずれかの構成または、これらの構成の組み合わせとすることができる。ここでは、図５の構成を例として説明する。なお、管理サーバが、性能情報収集部３２２を含まない場合は、上述したように管理サーバは、定期的に管理対象システム２００から収集された性能情報を用いるものとする。
【０１１０】
この例では、管理サーバ４００は、システム上で実行している仮想マシンの性能情報またはシステムの性能情報を監視し、前記性能情報における一定値以上の変動を検知する監視部（不図示）をさらに備えることができる。そして、監視部が性能情報における一定値以上の変動を検知したとき、探索部１０４は、変動が検知されたシステムの最下位システム上で実行している仮想マシン、および当該最下位システムを配備先とする仮想マシンに対し、移行先を再探索し、更新することができる。
【０１１１】
図８に、この態様の管理サーバ４００の動作について説明する。
図８に示すように、管理サーバ４００の性能情報収集部３２２は、定期的に管理対象システム２００から性能情報を取得し、性能情報データベース３２４に格納する（ステップＳ３０１）。そして、変動検出部が、性能情報データベース３２４を参照し、前回取得した性能情報の値に対して一定値以上の変動があった最下位システムがあるか否か判定する（ステップＳ３２３）。性能情報の変動が一定値以上の最下位システムがあった場合（ステップＳ３２３のＹＥＳ）、算出部４１２および決定部４１６が、その最下位システム内の仮想マシンおよびその最下位システムを移行先としている仮想マシンに対して移行先の更新を行う（ステップＳ３２５）。なお、性能情報の変動が一定値以上の最下位システムがなかった場合（ステップＳ３２３のＮＯ）、ステップＳ３０１に戻る。
【０１１２】
この構成によれば、管理対象システム２００の性能情報の状態の変動にも柔軟に適応できる移行コストを抑えた効率のよい移行を行うことができる。
【０１１３】
さらに、他の態様として、複数の種類のリソースを対象とすることもでき、リソース毎に異なる階層構造を定義してもよい。この場合、移行リスクの増分もリソース毎に計算し、その総和を考えればよい。
【０１１４】
さらに、上記実施形態では、ある最下位システムが過負荷状態になった場合、その最下位システム上の仮想マシンで過負荷状態を回避するのに必要な仮想マシンの集合のうち、移行コストが小さくなる集合を求め、移行を実行している。上記実施形態のように、この仮想マシンの集合を求める問題は移行コストが最小となる集合を厳密に求めてもよいし、他の態様として、たとえば、仮想マシンの利用リソース量を仮想マシンの移行コストで除算した値を降順にソートし、過負荷状態を回避できるだけの仮想マシンを上から順に選択する、という方式でもよい。
【実施例】
【０１１５】
（実施例１）
以下、本発明の仮想マシン管理システム１の実施例について説明する。
本実施例では、図５の構成を有する仮想マシン管理システム１を例として説明する。
この構成において、本実施例の管理サーバ４００は、図９に示す手順で動作する。【０１１６】
図９は、本実施例の仮想マシン管理システム１の動作の一例を示すフローチャートである。
まず、管理サーバ４００の探索部１０４が、新規に配備する第２仮想マシンの要求リソース量分の空きリソースのある最下位システムをシステム全体から検索する（ステップＳ４０１）。複数の最下位システムが存在する場合には（ステップＳ４０１のＹＥＳ、かつステップＳ４０３のＹＥＳ）、探索部１０４が、それらを配備先の候補とし、この時点の最適配備先は"なし"とし（ステップＳ４０７）、ステップＳ４０９に進む。一方、１つの最下位システムしか存在しない場合は（ステップＳ１０４のＹＥＳ、かつステップＳ４０３のＮＯ）、探索部１０４が、その最下位システムを最適配備先とし（ステップＳ４０５）、ステップＳ４１９に進む。【０１１７】
また、１つの最下位システムも存在しない場合には（ステップＳ４０１のＮＯ）、リソースに空きにある最下位システムが存在しないため、管理サーバ４００は、異常終了とするか、新しくサーバを起動し、その中の最下位システムを配備先とし（ステップＳ４２１）、処理を終了する。【０１１８】
複数の最下位システムが候補となる場合（ステップＳ４０３のＹＥＳ）、ステップＳ４０７の後、探索部１０４が、配備候補を最下位システムから１つ選択し、配備候補から削除する（ステップＳ４０９）。そして、選択した最下位システムに第２仮想マシンを配備した際、探索部１０４が、移行先の変更が必要な第１仮想マシンを求める（ステップＳ４１１）。そして、算出部４１２が、それぞれの最下位システムに対して第２仮想マシンを配備した際の移行リスクの増加分を計算する（ステップＳ４１３）。【０１１９】
最適配備先が"なし"の場合は、決定部４１６が、その最下位システムを最適配備先として設定する（ステップＳ４１５）。または、既に最適配備先が設定されている場合、決定部４１６が、その最適配備先へ配備した場合の移行リスクの増分を比較し、移行リスクの増分が小さい場合、最適配備先をその最下位システムで置き換える（ステップＳ４１５）。この工程を全ての配備先の候補に対して行う（ステップＳ４１７のＹＥＳ）。【０１２０】
すべての配備先の候補に対して処理が終わったら（ステップＳ４１７のＮＯ）、最後に設定された最適配備先に対して移行リスクの増加分が一定値以下であれば（ステップＳ４１９のＹＥＳ）、決定部４１６が、その最適配備先を第２仮想マシンの配備先とする（ステップＳ４２３）。最適配備先の移行リスクの増加分が一定値以上の場合には（ステップＳ４１９のＮＯ）、管理サーバ４００は、リソース不足として異常終了とするか、新しくサーバを起動し、その中の最下位システムを配備先とする（ステップＳ４２１）。【０１２１】
このように構成された本実施例において、まず、図１０に示すように、５台の仮想マシンＶＭ１〜ＶＭ５が管理対象システム２００に配備されている場合に、新規に仮想マシンＶＭ６を配備することとした。管理対象システム２００の階層構造は２階層とした。
また、説明の簡単化のために、仮想マシンのサービスレベルを"高"と"低"の２段階とする。サービスレベル"高"の仮想マシンがサービスレベル"低"の仮想マシンより５倍移行コストが高いものとし、それぞれ５α、１αと示す。以下、本実施例でのα、βは、上記実施形態で説明したパラメータとは定義が少し異なる。すなわち、たとえば、２段階のサービスレベル"高"と"低"を引数とした上記実施形態の移行コスト関数で求めた結果を、５αと１αとしてそれぞれ示している。【０１２２】
また、過負荷状態になる度合いも"高"、"低"の２段階で表すものとする。最下位システム２０６のリソース使用率が６割を超えた場合、過負荷状態になる度合いが"高"になるとする。過負荷状態になる度合いが"高"の状態の移行リスクは"低"の状態の２倍となるとし、それぞれ２β、１βとする。
また、上位システムを跨がない最下位システム２０６間の移行コストを１γとし、上位システム２０４を跨る移行コストを５γとする。【０１２３】
なお、各仮想マシンのサービスレベルと要求リソース量は図１１に示す通りであるとする。空きリソースの対象はＣＰＵリソースに限定し、それぞれの最下位システムの格納許容容量は４ＧＨｚであるとする。仮想マシンが消費するリソースの総和がこの値を一定時間超過した場合を過負荷状態として定義する。【０１２４】
はじめに、探索部１０４と算出部４１２が、仮想マシンＶＭ６を配備する前の図１０の状態における各仮想マシンＶＭ１〜ＶＭ５の移行先と移行リスクを計算する。図１０において、最下位システム２０６の矩形の面積が、その最下位システム２０６の格納許容容量の大きさを示している。探索部１０４は、各仮想マシンに対して、現在配備されている最下位システム２０６から、より深い階層に対して順に空きリソースを移行先として検索していけばよい。【０１２５】
探索結果は図１２のようになる。各仮想マシンから出ている矢印の先が移行先を示す。矢印が点線のものは、移行する度合いが"低"、実線のものは"高"を指す。また、仮想マシンＶＭの矩形が太線で示されているものは、サービスレベルが"高"、細線で示されているものは、サービスレベルが"低"であることを意味する。たとえば、仮想マシンＶＭ１の移行リスクは、仮想マシンのサービスレベルが"高"であり、現在配備されている最下位システムの過負荷状態になる度合いは、容量４ＧＨｚに対して３ＧＨｚ分の仮想マシンが配備されているため"高"となる。【０１２６】
移行先は上位システムを跨がない移行になるため、仮想マシンＶＭ１の移行リスクは５α×２β×１γ＝１０αβγとなる。
同様に仮想マシンＶＭ２〜ＶＭ５についても計算すると、それぞれ２αβγ、１αβγ、５αβγ、１αβγとなり、システム全体の移行リスクはその総和の１９αβγとなる。【０１２７】
次に、探索部１０４によって、最下位システム２０６ｂ、２０６ｃ、２０６ｄがＶＭ６の配備先候補として探索される。各配備先候補について、移行リスクを算出する。最下位システム２０６ｂの場合、図１６に示すようになり、配備による影響を受ける仮想マシンは、ＶＭ１とＶＭ２とＶＭ３になる。ＶＭ１、ＶＭ２、およびＶＭ３におけるＶＭ６配備後の移行リスクは、それぞれ５０αβγ、２αβγ、および２αβγになる。さらに、ＶＭ６の移行リスクは、５０αβγである。よって、配備後の移行リスクの増分は、９１αβγとなる。【０１２８】
同様にして、ＶＭ６の配備先が最下位システム２０６ｃおよび２０６ｄの場合、配備による影響を受ける仮想マシンは、ともにＶＭ４とＶＭ５になる。ＶＭ６の配備先が最下位システム２０６ｃの場合、ＶＭ４とＶＭ５の配備後の移行リスクは、１０αβγと５αβγとなる。ＶＭ６の移行リスクは１０αβγとなる。よって、ＶＭ６配備後のＶＭ４、ＶＭ５、およびＶＭ６の移行リスクは、２５αβγとなる。【０１２９】
ＶＭ６の配備先が最下位システム２０６ｄの場合、ＶＭ４とＶＭ５におけるＶＭ６配備後の移行リスクは、２５αβγと２αβγとなる。ＶＭ６の移行リスクは１０αβγである。よって、ＶＭ６配備後のＶＭ４、ＶＭ５、およびＶＭ６の移行リスクは、３７αβγとなる。
ＶＭ６配備前のＶＭ４とＶＭ５の移行リスクは、６αβγである。よって、配備先が最下位システム２０６ｃおよび２０６ｄの場合、配備後の移行リスクの増分は、それぞれ１９αβγおよび３１αβγとなる。したがって、配備後の移行リスクの増分が最も小さいのは、１９αβγであり、ＶＭ６の配備先が最下位システム２０６ｃの時である。よって、ＶＭ６の配備先は、最下位システム２０６ｃとなる。【０１３０】
このように本発明の仮想マシン管理方式では、配備後の移行リスクが最も小さくなるように配備先を決定するため、配備後は図１３のようになる。このときの各仮想マシンの移行先は、図１４のように更新される。仮想マシンＶＭ１〜ＶＭ６の移行リスクを計算すると、それぞれ１０αβγ、２αβγ、１αβγ、１０αβγ、５αβγ、１０αβγとなり、システム全体の移行リスクは３８αβγとなった。この結果は、後述する比較例に比べて小さい値となる。【０１３１】
このように、本発明の仮想マシン管理システム１によれば、仮想マシンを移行する状況になった際の移行コストを抑えることを可能する。【０１３２】
（比較例１）
比較例１では、移行リスクを考慮せず、最も空きのある最下位システムに配備する方式を用いた。
移行リスクを考慮せず、最も空きのある最下位システムに配備する方式では、図１５のように配備されることになる。図１５のように仮想マシンＶＭ６を最下位システム２０６ｂに配備した後の移行リスクを計算した。【０１３３】
この場合、仮想マシンＶＭ１の移行先が図１６のように変更され、移行には上位システムを跨る必要が生じることなる。仮想マシンＶＭ１から仮想マシンＶＭ６の移行リスクを計算すると、それぞれ５０αβγ、２αβγ、２αβγ、５αβγ、１αβγ、５０αβγとなり、システム全体の移行リスクは１１０αβγとなる。
上述した実施例１のシステム全体の移行リスク３８αβγと比較して、比較例１では移行リスクが大きいことがわかる。【０１３４】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１３５】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
仮想マシンを管理する管理サーバが、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行し、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索し、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出し、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定し、
決定された前記配備先に前記第２仮想マシンを配備する仮想マシン管理方法。
（付記２）
付記１に記載の仮想マシン管理方法において、
前記管理サーバが、
前記第２仮想マシンの配備による影響を受ける第１仮想マシンとして、前記第２仮想マシンの前記配備先候補の前記最下位システムを前記移行先としている第１仮想マシン、および前記第２仮想マシンの前記配備先候補の前記最下位システムで動作している第１仮想マシンを求め、
求められた前記第１仮想マシンおよび前記第２仮想マシンについて、移行先を探索するとともに、前記移行リスクの変化分を算出する仮想マシン管理方法。
（付記３）
付記１または２に記載の仮想マシン管理方法において、
前記管理サーバが、
階層毎に、前記階層構造の上位のシステム程、前記移行コストが大きくなるように定義される関数を用いて前記移行コストを算出する仮想マシン管理方法。
（付記４）
付記３に記載の仮想マシン管理方法において、
前記関数は、前記第１仮想マシンまたは前記第２仮想マシン毎に定められたサービスレベルに応じて変わる前記移行コストを、前記第１仮想マシンおよび前記第２仮想マシンの前記サービスレベルを引数としてそれぞれ定義される仮想マシン管理方法。
（付記５）
付記３または４に記載の仮想マシン管理方法において、
前記管理サーバが、
前記移行先に影響がある前記第１仮想マシンおよび当該第２仮想マシンについて探索された前記移行先に将来移行する可能性の度合として、前記第１仮想マシンおよび前記第２仮想マシンが動作する最下位システムが将来的に過負荷状態になる可能性の度合を、前記移行コストの前記関数に乗じて前記移行リスクをそれぞれ算出する仮想マシン管理方法。
（付記６）
付記３乃至５いずれかに記載の仮想マシン管理方法において、
前記管理サーバが、前記移行リスクを保持する記憶装置を備え、
前記管理サーバが、
定期的に、前記最下位システムの前記移行リスクを算出し、
各階層のシステム毎に前記移行リスクの総和を求め、
求めた前記各階層のシステム毎の前記移行リスクの総和を前記記憶装置に保持し、
前記各階層のシステム毎の前記移行リスクの総和が、前記階層毎に予め設定された閾値を超えているか否かを判定し、
前記閾値を超えていると判定された階層のシステムに含まれる下位のシステムは、探索対象から外す仮想マシン管理方法。
（付記７）
付記１乃至６いずれかに記載の仮想マシン管理方法において、
前記管理サーバが、
前記システム上で実行している前記第１仮想マシンの性能情報または前記システムの性能情報を監視し、前記性能情報における一定値以上の変動を検知し、
前記性能情報における一定値以上の前記変動を検知したとき、前記変動が検知されたシステムの最下位システム上で実行している前記第１仮想マシン、および当該最下位システムを前記移行先とする前記第１仮想マシンに対し、前記移行先を再探索し、それぞれ更新する仮想マシン管理方法。
（付記８）
付記１乃至７いずれかに記載の仮想マシン管理方法において、
過負荷状態になったシステムが存在するかを確認し、
前記過負荷状態になったシステムに対し、当該システム上の第１仮想マシンの中から、前記過負荷状態を回避可能で、かつ、前記移行コストが小さい第１仮想マシンの集合を求め、
前記集合の第１仮想マシンに対し、移行を実行する仮想マシン管理方法。
（付記９）
仮想マシンを管理する管理サーバを実現するコンピュータに、
少なくとも一つの第１仮想マシンが動作する物理マシンを有するシステムを、物理的または論理的な階層構造を定義して管理し、前記システムの状態に応じて前記第１仮想マシンを予め定めた移行先に移行する手順、
配備する第２仮想マシンがあるとき、前記第２仮想マシンの配備先候補毎に、前記第２仮想マシンの配備による影響を考慮して、前記第１仮想マシンが動作している最下位システムまたは前記第２仮想マシンの前記配備先候補の最下位システムを起点として、前記階層構造のより上位のシステムに包含される近隣の最下位システムを、探索範囲を拡大して探索して、前記第１仮想マシンまたは前記第２仮想マシンの移行先をそれぞれ探索する手順、
前記第２仮想マシンの配備先候補毎に、探索された前記移行先に将来移行する可能性の度合と移行コストを考慮した移行リスクと、前記第２仮想マシンの配備によって生じる前記移行リスクの変化分を算出する手順、
算出された前記移行リスクの変化分に基づいて、システム全体の移行リスクの変化分が最小となる配備先候補を前記第２仮想マシンの配備先に決定する手順、
決定された前記配備先に前記第２仮想マシンを配備する手順を実行させるためのプログラム。
（付記１０）
付記９に記載のプログラムにおいて、
前記コンピュータに、
前記第２仮想マシンの配備による影響を受ける第１仮想マシンとして、前記第２仮想マシンの前記配備先候補の前記最下位システムを前記移行先としている第１仮想マシン、および前記第２仮想マシンの前記配備先候補の前記最下位システムで動作している第１仮想マシンを求める手順、
前記第１仮想マシンを求める手順で求めた前記第１仮想マシンおよび前記第２仮想マシンについて、移行先を探索するとともに、前記移行リスクの変化分を算出する手順を実行させるためのプログラム。
（付記１１）
付記９または１０に記載のプログラムにおいて、
前記階層毎に、前記階層構造の上位のシステム程、前記移行コストが大きくなるように定義される関数を用いて前記移行コストを算出する手順を実行させるためのプログラム。
（付記１２）
付記１１に記載のプログラムにおいて、
前記関数は、前記第１仮想マシンまたは前記第２仮想マシン毎に定められたサービスレベルに応じて変わる前記移行コストを、前記第１仮想マシンおよび前記第２仮想マシンの前記サービスレベルを引数としてそれぞれ定義されるプログラム。
（付記１３）
付記１１または１２に記載のプログラムにおいて、
前記コンピュータに、前記移行先に影響がある前記第１仮想マシンおよび当該第２仮想マシンについて探索された前記移行先に将来移行する可能性の度合として、前記第１仮想マシンおよび前記第２仮想マシンが動作する最下位システムが将来的に過負荷状態になる可能性の度合を、前記移行コストの前記関数に乗じて前記移行リスクをそれぞれ算出する手順を実行させるためのプログラム。
（付記１４）
付記１１乃至１３いずれかに記載のプログラムにおいて、
前記コンピュータが、前記移行リスクを保持する記憶装置を備え、
前記コンピュータに、
定期的に、前記最下位システムの前記移行リスクを算出する手順、
各階層のシステム毎に前記移行リスクの総和を求める手順、
求めた前記各階層のシステム毎の前記移行リスクの総和を前記記憶装置に保持する手順、
前記各階層のシステム毎の前記移行リスクの総和が、前記階層毎に予め設定された閾値を超えているか否かを判定する手順、
前記探索する手順において、前記閾値を超えていると判定された階層のシステムに含まれる下位のシステムは、探索対象から外す手順を実行させるためのプログラム。
（付記１５）
付記９乃至１４いずれかに記載のプログラムにおいて、
前記コンピュータに、
前記システム上で実行している前記第１仮想マシンの性能情報または前記システムの性能情報を監視し、前記性能情報における一定値以上の変動を検知する手順、
前記性能情報における一定値以上の前記変動を検知したとき、前記変動が検知されたシステムの最下位システム上で実行している前記第１仮想マシン、および当該最下位システムを前記移行先とする前記第１仮想マシンに対し、前記移行先を再探索し、更新する手順を実行させるためのプログラム。
（付記１６）
付記９乃至１５いずれかに記載のプログラムにおいて、
前記コンピュータに、
過負荷状態になったシステムが存在するかを確認する手順、
前記過負荷状態になったシステムに対し、当該システム上の第１仮想マシンの中から、前記過負荷状態を回避可能で、かつ、前記移行コストが小さい第１仮想マシンの集合を求める手順、
求められた前記集合の第１仮想マシンに対し、移行を実行する手順を実行させるためのプログラム。【０１３６】
この出願は、２０１２年５月１５日に出願された日本出願特願２０１２−１１１３９６号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2013171944.tif 000005
【図２】
2013171944.tif 000006
【図３】
2013171944.tif 000007
【図４】
2013171944.tif 000008
【図５】
2013171944.tif 000009
【図６】
2013171944.tif 000010
【図７】
2013171944.tif 000011
【図８】
2013171944.tif 000012
【図９】
2013171944.tif 000013
【図１０】
2013171944.tif 000014
【図１１】
2013171944.tif 000015
【図１２】
2013171944.tif 000016
【図１３】
2013171944.tif 000017
【図１４】
2013171944.tif 000018
【図１５】
2013171944.tif 000019
【図１６】
2013171944.tif 000020
【国際調査報告】
2013171944.tif 000021
2013171944.tif 000022
2013171944.tif 000023
2013171944.tif 000024