(57)【特許請求の範囲】
【請求項１】
ネットワークに接続されている複数の物理マシン上で動作可能な複数の仮想マシンを制御する情報処理装置において、
前記複数の物理マシンから物理リソース状況を取得し、前記複数の仮想マシンの各々について、当該仮想マシンを移行元の物理マシンから移行先の物理マシンに移行させた場合における、前記移行先の物理マシンの第１の物理コストを前記物理リソース状況と前記仮想マシンのリソース使用率とに基づいて算出する物理リソース監視部と、
前記複数の仮想マシンの各々について、当該仮想マシンを前記移行元の物理マシンから前記移行先の物理マシンに移行させた場合における、前記ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行した仮想マシンと他の仮想マシンとの予測通信時間から第１のネットワークコストを算出するネットワーク負荷監視部と、
前記ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行前の仮想マシンと他の仮想マシンとの予測通信時間から算出される第２のネットワークコストと前記物理リソース状況と前記仮想マシンのリソース使用率から算出される第２の物理コストとに基づいて定める移行前コストから前記複数の仮想マシンのうちいずれかの仮想マシンが前記複数の物理マシンそれぞれに移行した場合における前記第１の物理コストと前記第１のネットワークコストとに基づいて定める複数の移行コストのうち最小の移行コストを引いて求められる移行メリット値を前記複数の仮想マシンそれぞれで算出し、前記複数の仮想マシンそれぞれに対して算出した前記移行メリット値のうち最大の移行メリット値を有する仮想マシンを移行対象の仮想マシンに決定する移行制御部と、
前記移行対象の仮想マシンを移行させる移行実施部とを含む
ことを特徴とする情報処理装置。
【請求項２】
前記物理リソース監視部が、前記複数の仮想マシンの各々についての前記第１の物理コストを格納する物理コスト表を生成し、
前記ネットワーク負荷監視部が、前記複数の仮想マシンの各々についての前記第１のネットワークコストを格納するネットワークコスト表を生成し、
前記移行制御部が、前記物理コスト表の前記第１の物理コストと前記ネットワークコスト表の前記第１のネットワークコストとに基づいて前記移行コストを算出することにより、前記複数の仮想マシンの各々についての前記移行コストを格納する移行コスト表を生成し、前記移行コスト表に基づいて、前記移行対象の仮想マシンを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記移行制御部が、前記第１の物理コストに予め定められた第１の係数を乗算した値と、前記第１のネットワークコストに予め定められた第２の係数を乗算した値とを加算することにより、前記移行コストを算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記移行制御部が、前記最大の移行メリットと移行を行なうか否かの判断を行なう閾値とを比較し、前記最大の移行メリットが前記閾値より大きい場合に、抽出した前記仮想マシンを前記移行対象の仮想マシンとして決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記移行制御部が、前記移行対象の仮想マシンの決定の都度に前記最大の移行メリットを保持し、直近の予め定められた数の前記最大の移行メリットに基づいて、前記閾値を動的に定める
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記移行制御部が、予め定められた時間間隔で前記移行対象の仮想マシンを決定すると共に、前記複数の物理マシンのいずれかにおけるリソースの枯渇時、及び、前記ネットワークにおけるネットワーク負荷の発生時に前記移行対象の仮想マシンを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
ネットワークに接続されている複数の物理マシン上で動作可能な複数の仮想マシンを制御する情報処理装置の制御方法であって、
前記複数の物理マシンから物理リソース状況を取得し、前記複数の仮想マシンの各々について、当該仮想マシンを移行元の物理マシンから移行先の物理マシンに移行させた場合における、前記移行先の物理マシンの第１の物理コストを前記物理リソース状況と前記仮想マシンのリソース使用率とに基づいて算出し、
前記複数の仮想マシンの各々について、当該仮想マシンを前記移行元の物理マシンから前記移行先の物理マシンに移行させた場合における、前記ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行した前記仮想マシンと他の仮想マシンとの通信時間から第１のネットワークコストを算出し、
前記ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行前の仮想マシンと他の仮想マシンとの予測通信時間から算出される第２のネットワークコストと前記物理リソース状況と前記移行前の仮想マシンのリソース使用率から算出される第２の物理コストとに基づいて定める移行前コストから前記複数の仮想マシンのうちいずれかの仮想マシンが前記複数の物理マシンそれぞれに移行した場合における前記第１の物理コストと前記第１のネットワークコストとに基づいて定める複数の移行コストのうち最小の移行コストを引いて求められる移行メリット値を前記複数の仮想マシンそれぞれで算出し、前記複数の仮想マシンそれぞれに対して算出した前記移行メリット値のうち最大の移行メリット値を有する仮想マシンを移行対象の仮想マシンに決定し、
前記移行対象の仮想マシンを移行させる
ことを特徴とする仮想マシン制御方法。
【請求項８】
仮想マシンの制御プログラムであって、
前記プログラムは、コンピュータに、
複数の仮想マシンの各々について、当該仮想マシンを移行元の物理マシンから移行先の物理マシンに移行させた場合における、前記移行先の物理マシンの第１の物理コストを複数の物理マシンから取得した物理リソース状況と前記仮想マシンのリソース使用率とに基づいて算出する処理と、
前記複数の仮想マシンの各々について、当該仮想マシンを前記移行元の物理マシンから前記移行先の物理マシンに移行させた場合における、ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行した前記仮想マシンと他の仮想マシンとの通信時間から第１のネットワークコストを算出する処理と、
前記ネットワークでの前記複数の物理マシンの通信時間に応じて定められる移行前の仮想マシンと他の仮想マシンとの予測通信時間から算出される第２のネットワークコストと前記物理リソース状況と前記移行前の仮想マシンのリソース使用率から算出される第２の物理コストとに基づいて定める移行前コストから前記複数の仮想マシンのうちいずれかの仮想マシンが前記複数の物理マシンそれぞれに移行した場合における前記第１の物理コストと前記第１のネットワークコストとに基づいて定める複数の移行コストのうち最小の移行コストを引いて求められる移行メリット値を前記複数の仮想マシンそれぞれで算出し、前記複数の仮想マシンそれぞれに対して算出した前記移行メリット値のうち最大の移行メリット値を有する仮想マシンを移行対象の仮想マシンに決定する処理と、
前記移行対象の仮想マシンを移行させる処理とを、実行させる
ことを特徴とする仮想マシン制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、仮想マシン制御方法、仮想マシン制御プログラムに関する。
【背景技術】
【０００２】
仮想マシンシステム１００において、複数の物理マシン１０１上で複数の仮想マシン１１１が動作する。例えば、図２０に示すように、３個の物理マシン１０１上で９個の仮想マシン１１１が動作しているとする。この時、左端の物理マシン１０１上では４個の仮想マシン１１１が動作しているのに対して、右端の物理マシン１０１上では２個の仮想マシン１１１しか動作していない。従って、３個の物理マシン１０１において、物理マシン１０１を構成するメモリやＣＰＵ等の物理リソースの使用率が不均等になっている。
【０００３】
そこで、１個の仮想マシン１１１を、矢印で示すように、左端の物理マシン１０１から右端の物理マシン１０１へ移行させる。これにより、３個の物理マシン１０１の負荷をほぼ等しくして、物理マシン１０１を構成するメモリやＣＰＵ等の物理リソースの使用率を、３個の物理マシン１０１においてほぼ均等にすることができる。
【０００４】
なお、複数の物理サーバで仮想マシンが動作する仮想化環境において仮想マシン間の通信量を測定する通信量測定手段と、通信量測定手段が測定した通信量に基づいて、所定の仮想マシンを動作させる物理サーバを異なる物理サーバに変更した場合のネットワーク使用率の期待値を算出する期待値算出手段と、期待値算出手段が算出した期待値に基づいて、仮想マシンを動作させる物理サーバの変更が妥当か否かを判定する妥当性判定手段と、妥当性判定手段の判定結果に基づいて、仮想マシンを動作させる物理サーバを変更する変更手段とを含むことが提案されている。
【０００５】
また、異なる物理マシンで実行されている２つの仮想マシン間の通信量を取得して、この通信量が通信量閾値を超えた回数をカウントし、前記した２つの仮想マシン間の双方向で、この回数が規定値を超えたとき、これら２つの仮想マシンが、同じ物理マシンで実行されるよう、前記物理マシンに前記２つの仮想マシンのうち、少なくとも１つの配置を決定し、前記決定に従って前記仮想マシンを移動させることが提案されている。
【０００６】
また、ネットワーク状況情報取得部は、仮想マシンの移動先候補となる物理マシンごとに算出された、仮想マシンの移動時に必要となる、仮想マシンシステムのネットワークにおける経路の再設定コストの情報を、再設定コスト算出部から取得し、取得された再設定コストの情報をネットワーク状況情報記憶部に記憶し、ＶＭ移動先決定部は、リソース状況情報記憶部に記憶されたリソース状況情報と、ネットワーク状況情報記憶部に記憶された再設定コストの情報とを用いて、仮想マシンの移動先候補となる各物理マシンの評価を行い、ＶＭ移動先決定部は、最も評価が高い物理マシンを仮想マシンの移動先に決定することが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１８０８８９号公報
【特許文献２】特開２０１０−１４０１３４号公報
【特許文献３】特開２０１１−２８４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、前述の従来の仮想マシンシステムでは、異なる物理マシン上の２個の仮想マシンの間における通信量が閾値を超えた回数が規定値を超えた場合に、前記２個の仮想マシンが同一の物理マシンで実行されるようにする。しかし、実際には、前記２個の仮想マシンを同一の物理マシン上へ移動することができない場合がある。この場合、前述の従来の仮想マシンシステムでは、同一の物理マシン以外の物理マシンへの仮想マシンの移動は考慮されていないので、同一の物理マシン以外の物理マシンへの移動の優先順位が得られない。従って、結果として、同一の物理マシン以外の物理マシンへ、仮想マシンを移動させることができない場合が生じる。
【０００９】
また、前述の他の従来の仮想マシンシステムでは、仮想マシンの移動時に必要となる仮想マシンシステムのネットワークにおける経路の再設定コストの情報と、リソース状況情報とを用いて、移動先候補となる各物理マシンの中で評価が高い物理マシンを仮想マシンの移動先に決定する。換言すれば、仮想マシンシステムがデータ領域を物理マシン本体に持たないので、仮想マシンの移動時にネットワーク上のストレージへ頻繁にアクセスすることが考慮されているので、当該アクセスの際の予め定められた単位でのネットワーク使用量の平均化を測ることはできる。しかし、前述の他の従来の仮想マシンシステムでは、仮想マシンシステムにおける通常の通信の最適化には対応することができず、また、ネットワーク負荷が発生した場合にも対応することができない。
【００１０】
本発明は、一側面によれば、物理マシン間で仮想マシンを移行する際の優先順位を物理マシン毎に算出して、物理マシン間で仮想マシンを移行することが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示される情報処理装置は、一側面によれば、ネットワークに接続されている複数の物理マシン上で動作可能な複数の仮想マシンを制御する情報処理装置であって、物理リソース監視部と、ネットワーク負荷監視部と、移行制御部と、移行対象の仮想マシンを移行させる移行実施部とを含む。物理リソース監視部は、複数の物理マシンから物理リソース状況を取得し、複数の仮想マシンの各々について、当該仮想マシンを移行元の物理マシンから移行先の物理マシンに移行させた場合における、移行先の物理マシンの第１の物理コストを物理リソース状況と仮想マシンのリソース使用率とに基づいて算出する。ネットワーク負荷監視部は、複数の仮想マシンの各々について、当該仮想マシンを移行元の物理マシンから移行先の物理マシンに移行させた場合における、ネットワークでの複数の物理マシンの通信時間に応じて定められる移行した仮想マシンと他の仮想マシンとの予測通信時間から第１のネットワークコストを算出する。移行制御部は、ネットワークでの複数の物理マシンの通信時間に応じて定められる移行前の仮想マシンと他の仮想マシンとの予測通信時間から算出される第２のネットワークコストと物理リソース状況と仮想マシンのリソース使用率から算出される第２の物理コストとに基づいて定める移行前コストから複数の仮想マシンのうちいずれかの仮想マシンが複数の物理マシンそれぞれに移行した場合における第１の物理コストと第１のネットワークコストとに基づいて定める複数の移行コストのうち最小の移行コストを引いて求められる移行メリット値を複数の仮想マシンそれぞれで算出し、複数の仮想マシンそれぞれに対して算出した移行メリット値のうち最大の移行メリット値を有する仮想マシンを移行対象の仮想マシンに決定する。
【発明の効果】
【００１２】
開示される情報処理装置は、一側面によれば、物理マシン間で仮想マシンを移行する際の優先順位を物理マシン毎に算出して、物理マシン間で仮想マシンを移行することができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置の構成の一例を示す図である。
【図２】情報処理装置の構成の一例を示す図である。
【図３】監視サーバの構成の一例を示す図である。
【図４】物理コスト表の説明図である。
【図５】物理コスト表の説明図である。
【図６】影響度表の説明図である。
【図７】ネットワークコスト表の説明図である。
【図８】ネットワークコスト表の説明図である。
【図９】影響度表の更新の説明図である。
【図１０】移行コスト表の説明図である。
【図１１】移行対象の仮想マシンの決定の説明図である。
【図１２】移行対象の仮想マシンの決定の説明図である。
【図１３】移行閾値の説明図である。
【図１４】移行閾値の説明図である。
【図１５】仮想マシンの移行処理フローチャートである。
【図１６】仮想マシンの移行処理フローチャートである。
【図１７】仮想マシンの移行処理の説明図である。
【図１８】仮想マシンの移行処理フローチャートである。
【図１９】仮想マシンの移行処理フローチャートである。
【図２０】仮想マシンの移行の説明図である。
【発明を実施するための形態】
【００１４】
図１は、情報処理装置の構成の一例を示す図である。
【００１５】
情報処理装置は、仮想マシンシステムであって、複数の物理マシン１と、ネットワーク２と、監視サーバ３と、ネットワーク４と、ネットワーク５とを含む。ネットワーク２は、複数の物理マシン１の間を相互に接続する。監視サーバ３は、ネットワーク４を介して複数の物理マシン１を監視し、ネットワーク５を介してネットワーク２を監視する。
【００１６】
物理マシン１は、その上で仮想マシン１１が動作するホストマシンであり、例えば物理ＣＰＵである。物理マシン１上で、仮想マシン１１が動作する。仮想マシン１１は、物理マシン１上で動作する論理的なマシンであり、図１等において、ＶＭと表記される。各々の物理マシン１上で、複数の仮想マシン１１が動作可能とされる。各々の物理マシン１上で動作する仮想マシン１１の数は、図１に示すように、異なっていても良い。
【００１７】
ネットワーク２は、例えば、ＬＡＮ（Local Area Network）であり、ツリー状に接続された複数のネットワークスイッチ２１を含む。複数の物理マシン１の間を相互に接続するためのネットワーク２の構成は、ツリー構造に限られず、ネットワーク２として種々の構造のネットワークを用いることができる。最下層のネットワークスイッチ２１に接続される物理マシン１の数は２個に限られない。
【００１８】
ネットワーク４及びネットワーク５は、各々、例えば、ＬＡＮ（Local Area Network）であり、ネットワーク２とは別のネットワークである。ネットワーク４及びネットワーク５として、ネットワーク２を用いるようにしても良い。ネットワーク４は、監視サーバ３と各々の物理マシン１との間を接続するが、図１において、監視サーバ３と１個の物理マシン１との間のネットワーク４についてのみ示している。ネットワーク５は、監視サーバ３と各々のネットワークスイッチ２１との間を接続するが、図１において、監視サーバ３と１個のネットワークスイッチ２１との間のネットワーク５についてのみ示している。
【００１９】
図２は、情報処理装置の構成の一例を示す図である。
【００２０】
物理マシン１は、複数の仮想マシン１１と、ハイパーバイザー１４と、ＬＡＮ制御部１７及び１８とを含む。図２において、ＬＡＮ制御部１７及び１８はＬＡＮと表記される。仮想マシン１１は、アプリケーション１２と、仮想ＯＳ（オペレーティングシステム）１３とを含む。アプリケーション１２は、予め定められた処理を実行するアプリケーションプログラムである。ハイパーバイザー１４は、負荷計測部１５と、情報格納部１６とを含む。複数の物理マシン１は、例えば相互に同一の構成を有する。複数の仮想マシン１１は、例えば相互に同一の構成を有する。
【００２１】
物理マシン１において、ハイパーバイザー１４は、仮想マシン１１を実現する仮想化ソフトウェアであり、物理マシン１のＯＳ上で動作する、換言すれば、物理マシン１のＯＳ上で実行される。ハイパーバイザー１４上で、仮想マシン１１のＯＳである仮想ＯＳ１３が動作することにより、仮想マシン１１が実現される。仮想ＯＳ１３上でアプリケーション１２が動作することにより、アプリケーション１２が、予め定められた処理を実行する。
【００２２】
ハイパーバイザー１４において、負荷計測部１５は、自己の属する物理マシン１に含まれる物理リソースの負荷を計測し、計測した結果を物理リソース情報として情報格納部１６に格納する。ハイパーバイザー１４は、物理リソース監視部３４から物理リソース情報の取得要求を受信すると、情報格納部１６に格納した物理リソース情報を読み出し、読み出した物理リソース情報を物理リソース監視部３４に送信する。
【００２３】
ＬＡＮ制御部１７は、送受信部であって、ネットワーク４を介して、監視サーバ３のＬＡＮ制御部３６に接続される。これにより、物理マシン１は監視サーバ３との間で通信を行う。例えば、ＬＡＮ制御部１７は、ネットワーク４を介して、監視サーバ３のＬＡＮ制御部３６から受信した物理リソース情報の取得要求をハイパーバイザー１４に送り、ハイパーバイザー１４から依頼された物理リソース情報を監視サーバ３のＬＡＮ制御部３６に送信する。
【００２４】
ＬＡＮ制御部１８は、送受信部であって、ネットワーク２に接続され、ネットワーク２を介して、他の物理マシン１のＬＡＮ制御部１８に接続される。ＬＡＮ制御部１８は、予め定められた１個のネットワークスイッチ２１に接続され、前記１個のネットワークスイッチ２１を介して、他のネットワークスイッチ２１又は物理マシン１に接続される。従って、ＬＡＮ制御部１８は、１個又は複数個のネットワークスイッチ２１を介して、他の物理マシン１に接続される。これにより、物理マシン１は、他の物理マシン１との間で通信を行う。
【００２５】
ネットワークスイッチ２１は、自己における通信の状態を記録し、記録した結果をネットワーク情報として保持する。ネットワークスイッチ２１は、ネットワーク負荷監視部３３からネットワーク情報の取得要求を受信すると、保持したネットワーク情報をネットワーク負荷監視部３３に送信する。
【００２６】
ネットワークスイッチ２１は、監視サーバ３との間で通信を行う。例えば、ネットワークスイッチ２１は、ネットワーク５を介して、監視サーバ３のＬＡＮ制御部３７から受信したネットワーク情報の取得要求に応じて、要求されたネットワーク情報を監視サーバ３のＬＡＮ制御部３７に送信する。
【００２７】
監視サーバ３は、移行制御部３１と、移行実施部３２と、ネットワーク負荷監視部３３と、物理リソース監視部３４と、ＯＳ３５と、ＬＡＮ制御部３６及び３７とを含む。ＯＳ３５は監視サーバ３のＯＳである。移行制御部３１、移行実施部３２、ネットワーク負荷監視部３３、物理リソース監視部３４がＯＳ３５上で動作する。監視サーバ３の構成については、図３を参照して説明する。
【００２８】
ＬＡＮ制御部３６は、送受信部であって、ネットワーク４を介して、各々の物理マシン１のＬＡＮ制御部１７に接続される。これにより、監視サーバ３は物理マシン１の各々との間で通信を行う。例えば、ＬＡＮ制御部３６は、ネットワーク４を介して、物理マシン１のＬＡＮ制御部１７に物理リソース情報の取得要求を送信し、物理リソース情報を物理マシン１のＬＡＮ制御部１７から受信する。
【００２９】
ＬＡＮ制御部３７は、送受信部であって、ネットワーク５を介して、ネットワークスイッチ２１の各々に接続される。ＬＡＮ制御部３７は、これにより、監視サーバ３はネットワークスイッチ２１の各々との間で通信を行う。例えば、ＬＡＮ制御部３７は、ネットワーク５を介して、ネットワークスイッチ２１にネットワーク情報の取得要求を送信し、ネットワーク情報をネットワークスイッチ２１から受信する。
【００３０】
図３は、主として、監視サーバの構成の一例を示す図である。
【００３１】
物理リソース監視部３４は、複数の物理マシン１を監視する。例えば、物理リソース監視部３４は、予め定められた第１の時間間隔で、ＬＡＮ制御部３６を介して、複数の物理マシン１の各々に物理リソース情報の取得要求を送信する。これにより、物理リソース監視部３４は、複数の物理マシン１の各々から物理リソース情報を取得する。
【００３２】
物理リソース監視部３４は、複数の物理マシン１の監視の結果に基づいて、換言すれば、物理リソース情報に基づいて、複数の仮想マシン１１の各々について、物理コストを算出する。物理コストは、当該仮想マシン１１を移行元の物理マシン１から移行先の物理マシン１に移行させた場合における、移行先の物理マシン１における予測物理リソース状態に基づいて定まる値である。移行元の物理マシン１は、処理対象の仮想マシン１１が現在動作している物理マシン１である。移行先の物理マシン１は、処理対象の仮想マシン１１が移行する場合における移行先である。
【００３３】
物理コストは、基本的には、予め定められた第１の時間間隔で算出される。これにより、物理リソース監視部３４は、複数の仮想マシン１１の各々についての物理コストを格納する物理コスト表３８を生成し、更新する。
【００３４】
ここで、物理リソース情報について説明する。物理リソース情報は、例えば、「物理マシン１のリソース使用状況」「仮想マシン１１のリソース使用状況」「仮想マシン１１の配置先情報」を含む。
【００３５】
物理マシン１のリソース使用状況は、各々の物理マシン１のＣＰＵ使用量やメモリ使用量であり、各々の物理マシン１の負荷計測部１５により生成され、各々の物理マシン１の情報格納部１６に格納されている。仮想マシン１１のリソース使用状況は、各々の仮想マシン１１のＣＰＵ使用量やメモリ使用量であり、各々の仮想マシン１１が動作している物理マシン１の負荷計測部１５により生成され、各々の仮想マシン１１が動作している物理マシン１の情報格納部１６に格納されている。仮想マシン１１の配置先情報は、各々の物理マシン上で動作している仮想マシン１１を示す情報であり、各々の物理マシン１の負荷計測部１５により生成され、各々の物理マシン１の情報格納部１６に格納されている。従って、物理リソース監視部３４は、物理リソース情報を、複数の物理マシン１の各々から取得することができる。
【００３６】
図４は、物理コスト表の説明図である。
【００３７】
図４（Ａ）は、仮想マシン１１のリソース使用状況と、仮想マシン１１の配置先情報とをまとめて表形式で示している。換言すれば、図４（Ａ）は、仮想マシン１１のリソース使用状況、換言すれば、各々の仮想マシン１１のＣＰＵ使用量やメモリ使用量と、仮想マシン１１の配置先情報とを示す。例えば、仮想マシンＡについて、ＣＰＵ使用量は７００ＭＨｚであり、メモリ使用量は１００００Ｍバイトであり、物理マシン＃２上で動作していることが、物理リソース情報として得られる。
【００３８】
なお、以下の説明において、複数の物理マシン１の各々を区別する場合には、「物理マシン＃１」等という。また、例えば「物理マシン＃１」を図示する場合には、該当する数字を丸で囲んだ「丸付き数字」で示す。複数の仮想マシン１１の各々を区別する場合には、「仮想マシンＡ」等という。
【００３９】
図４（Ｂ）は、物理マシン１のリソース使用状況、換言すれば、各々の物理マシン１のＣＰＵ使用量やメモリ使用量を示す。例えば、物理マシン＃１について、合計ＣＰＵ使用量は１２００ＭＨｚであり、ＣＰＵ全体容量は５０００ＭＨｚであり、合計メモリ使用量は３００００Ｍバイトであり、メモリ全体容量は４８０００Ｍバイトであることが、物理リソース情報として得られる。
【００４０】
例えば、物理マシン＃２上で動作している仮想マシンＡを、物理マシン＃１上に移行するとする。この場合、物理マシン＃１における現在のメモリ使用量「３００００Ｍバイト」に、新たに増加する仮想マシンＡのメモリ使用量「１００００Ｍバイト」を加算した値が新たなメモリ使用量である。従って、物理マシン＃１への移行後の仮想マシンＡについてのメモリ使用率は、図４（Ｃ）に示すように、８３％となる。同様にして、物理マシン＃１への移行後の仮想マシンＡについてのＣＰＵ使用率は、図４（Ｃ）に示すように、３８％となる。
【００４１】
図３に戻って、物理リソース監視部３４は、取得した物理リソース情報に基づいて、「物理リソース枯渇情報」「各々の物理リソースの使用率のコスト」を生成する。
【００４２】
物理リソース枯渇情報は、以下のようにして得られる。物理マシン１のリソース使用状況に基づいて、ＣＰＵ使用率及びメモリ使用率が算出される。そして、算出されたＣＰＵ使用率及びメモリ使用率が、各々、ＣＰＵ使用率閾値及びメモリ使用率閾値を超えた回数をカウントする。これにより、物理リソース枯渇情報が得られる。ＣＰＵ使用率閾値及びメモリ使用率閾値は、各々、予め定められる。物理リソース枯渇情報は、第１の時間間隔で、例えば、物理マシン１のリソース使用状況の取得の都度に得られる。
【００４３】
各々の物理リソースの使用率のコストは、算出したＣＰＵ使用率及びメモリ使用率を、予め定められたコストに変換することにより得られる。ＣＰＵ使用率に対応するコストは予め定められ、例えば、ＣＰＵ使用率が３０％以下はコスト「０」とされる。メモリ使用率についても同様である。各々の物理リソースの使用率のコストは、第１の時間間隔で、例えば、ＣＰＵ使用率及びメモリ使用率の算出の都度に得られる。
【００４４】
図５は、物理コスト表の説明図である。
【００４５】
図５（Ａ）は、ＣＰＵ使用率及びメモリ使用率を使用率のコストに変換するための変換表である。変換表は、実際には、保持する必要はなく、演算により変換するようにしても良い。変換表の段階の数は５段階であるが、これに限られない。変換表は、仮想マシンシステムの運用中に更新するようにしても良い。
【００４６】
例えば、物理マシン＃１への移行後の仮想マシンＡについてのメモリ使用率「８３％」はコスト「１０」に相当する。物理マシン＃１への移行後の仮想マシンＡについてのＣＰＵ使用率「３８％」はコスト「１」に相当する。従って、物理マシン＃１への移行後の仮想マシンＡについての物理コストは、図５（Ｂ）に示すように、「１１」となる。
【００４７】
図５（Ｃ）は、物理コスト表３８の一例を示す。物理コスト表３８は、複数の仮想マシン１１の各々について、当該仮想マシン１１を移行元の物理マシン１から移行先の物理マシン１に移行した場合の物理コストを格納する。移行元の物理マシン１は、当該仮想マシン１１が現在動作している物理マシン１である。また、物理コスト表３８は、「物」の欄に示すように、移行元の物理マシン１を格納する。
【００４８】
例えば、物理コスト表３８において、仮想マシンＡの移行元の物理マシン１は、物理マシン＃２である。仮想マシンＡを、移行元の物理マシン＃２から移行先の物理マシン＃１へ移行した場合において、移行後の物理マシン＃１における物理コストは「１１」である。仮想マシンＡを他の物理マシン１に移行した場合の物理コストも、同様にして求められる。他の仮想マシン１１を移行した物理コストも、同様にして求められる。
【００４９】
図３に戻って、ネットワーク負荷監視部３３は、ネットワーク２を監視する。例えば、ネットワーク負荷監視部３３は、ＬＡＮ制御部３６を介して、ネットワーク２から、換言すれば、ネットワークスイッチ２１の各々から、逐次ネットワーク情報を取得する。
【００５０】
ネットワーク負荷監視部３３は、ネットワーク２の監視の結果に基づいて、換言すれば、逐次取得したネットワーク情報に基づいて、複数の仮想マシン１１の各々について、予め定められた第１の時間間隔で、ネットワークコストを算出する。なお、以下の説明において、ネットワークコストをＮＷコストということとする。ＮＷコストは、当該仮想マシン１１を移行元の物理マシン１から移行先の物理マシン１に移行させた場合における、ネットワーク２における予測通信状態に基づいて定まる値である。
【００５１】
ＮＷコストは、基本的には、第２の時間間隔で算出される。これにより、ネットワーク負荷監視部３３は、複数の仮想マシン１１の各々についてのＮＷコストを格納するネットワークコスト表４０を生成し、更新する。なお、以下の説明において、ネットワークコスト表４０をＮＷコスト表ということとする。ＮＷコストの算出において、ネットワーク負荷監視部３３は影響度表３９を用いる。影響度表３９は、例えば予めネットワーク負荷監視部３３に備えられる。
【００５２】
図６は、影響度表の説明図である。
【００５３】
図６（Ａ）は、物理マシン１とネットワークスイッチ２１との接続を示す。例えば、通信元の物理マシン１が物理マシン＃１であり、通信先の物理マシン１が物理マシン＃１であるとする。この場合、ネットワークスイッチ２１を介することなく、換言すれば、０個のネットワークスイッチ２１を介して、物理マシン＃１の内部での通信が可能である。従って、通信元の物理マシン＃１と通信先の物理マシン＃１との間に存在するネットワークスイッチ２１の数は「０」である。
【００５４】
ネットワークスイッチ２１の数をホップ数ということとする。通信元の物理マシン１と通信先の物理マシン１との間の通信時間は、概略、経由するネットワークスイッチ２１の数に依存して定まる。従って、ホップ数は、通信元の物理マシン１と通信先の物理マシン１との間のおよその通信時間、換言すれば、通信のしやすさを表すパラメータである。
【００５５】
また、通信元の物理マシン１が物理マシン＃１であり、通信先の物理マシン１が物理マシン＃２であるとする。この場合、通信元の物理マシン＃１と通信先の物理マシン＃２との間のホップ数は「１」である。同様にして、複数の物理マシン１の各々の組み合わせについて、通信元の物理マシン１と通信先の物理マシン１との間のホップ数を予め知ることができる。
【００５６】
図６（Ｂ）は、影響度表３９を示す。影響度表３９は、複数の物理マシン１の各々の組み合わせについて、通信元の物理マシン１と通信先の物理マシン１との間に存在するホップ数を格納する。従って、影響度表３９は、複数の物理マシン１の各々の組み合わせについて、通信元の物理マシン１と通信先の物理マシン１との間の通信のしやすさを表すパラメータを格納する。
【００５７】
前述したように、ネットワーク２の構成はツリー状に限られない。従って、ホップ数に代えて、通信のしやすさを表すパラメータとして、通信元の物理マシン１と通信先の物理マシン１との間の通信時間を用いるようにしても良い。通信時間は、例えば経験により又は実測により得られる。通信時間は、例えばホップ数のように、段階的に数値化、換言すれば、量子化される。
【００５８】
図３に戻って、ネットワーク負荷監視部３３は、ネットワーク情報に基づいて、ネットワーク２における異常な負荷であるネットワーク負荷を検出する。ネットワーク負荷監視部３３は、ネットワーク負荷の発生を検出すると、検出したネットワーク負荷に基づいて、影響度表３９を更新する。これにより、ネットワーク負荷を影響度表３９を介してネットワークに反映させることができる。
【００５９】
ここで、ネットワーク情報について説明する。ネットワーク情報は、各々のネットワークスイッチ２１における通信量であり、ネットワーク負荷監視部３３が各々のネットワークスイッチ２１から取得する。例えば、ネットワークスイッチ２１に設けたミラーポートを、ネットワーク５を介して、監視サーバ３に接続する。これにより、ネットワーク負荷監視部３３は、各々のネットワークスイッチ２１における通信量、換言すれば、ネットワーク情報を得ることができる。通信量は、例えばネットワークスイッチ２１を通過するパケットの数として得られる。
【００６０】
ネットワーク負荷監視部３３は、取得したネットワーク情報に基づいて、「通信傾向情報」「通信傾向の強い仮想マシンの情報」「ネットワーク負荷発生情報」を生成する。
【００６１】
通信傾向情報は、通信量が通信閾値を超えた場合における、送信元の仮想マシン１１と送信先の仮想マシン１１とを示す情報である。通信傾向情報は、前述したように、パケットを監視することにより、通信量が通信閾値を超える都度に得られる。通信閾値は予め定められる。
【００６２】
通信傾向の強い仮想マシン１１の情報は、予め定められた期間内において、通信傾向情報として取得された送信元の仮想マシン１１及び送信先の仮想マシン１１の一覧である。通信傾向の強い仮想マシン１１の情報は、前述したように、パケットを監視することにより得られる。予め定められた期間は、例えば、第２の時間間隔と同一である。予め定められた期間を短くすることにより、ネットワーク負荷を確実に検出してＮＷコストに反映することができる。
【００６３】
ネットワーク負荷発生情報は、予め定められた期間内において、ネットワーク情報として取得された通信量が通信閾値を超えた場合に、通信閾値を超えた回数をカウントする。例えば、通信閾値を超えた回数がネットワーク負荷閾値を超えた場合に、ネットワーク負荷発生情報が得られる。通信閾値及びネットワーク負荷閾値は予め定められる。
【００６４】
図７は、ＮＷコスト表の説明図である。
【００６５】
図７（Ａ）は、物理マシン１と仮想マシン１１との関係を示す。例えば、仮想マシンＡが物理マシン＃１上で動作し、仮想マシンＤが物理マシン＃４上で動作し、仮想マシンＥが物理マシン＃２上で動作しているとする。
【００６６】
図７（Ｂ）は、通信元の仮想マシン１１と通信先の仮想マシン１１との関係、換言すれば、通信傾向の強い仮想マシン１１の情報を示す。例えば、仮想マシンＡについて、通信傾向の強い仮想マシン１１の情報として、仮想マシンＤ及びＥが得られたとする。
【００６７】
図８は、ＮＷコスト表の説明図である。
【００６８】
図８（Ａ）は、仮想マシンＡのＮＷコストの算出について示す。仮想マシンＡは、仮想マシンＤ及びＥとの間で通信傾向が強い。そこで、物理マシン＃１上で動作する仮想マシンＡを、仮想マシンＤが動作する物理マシン＃４上に移行させる場合について、ＮＷコストを求める。仮想マシンＡは物理マシン＃４上で動作するので、影響度表３９から、図８（Ａ）に示すように、物理マシン＃１及び物理マシン＃２との間の通信のしやすさは「３」であり、物理マシン＃３との間の通信のしやすさは「１」であり、物理マシン＃４との間の通信のしやすさは「０」であることが求まる。これが、仮想マシンＡの仮想マシンＤに対するＮＷコストである。
【００６９】
同様にして、物理マシン＃１上で動作する仮想マシンＡを、仮想マシンＥが動作する物理マシン＃２上に移行させる場合についても、図８（Ａ）に示すように、求めることができる。これが、仮想マシンＡの仮想マシンＥに対するＮＷコストである。
【００７０】
次に、仮想マシンＡの仮想マシンＤに対するＮＷコストと、仮想マシンＡの仮想マシンＥに対するＮＷコストとを合計することにより、仮想マシンＡのＮＷコストが算出される。これにより、仮想マシンＡを仮想マシンＤが動作する物理マシン＃４又は仮想マシンＥが動作する物理マシン＃２上に移行させる場合についてのＮＷコストが求まる。
【００７１】
他の仮想マシンＢ等についても、同様にして、ＮＷコストが求まる。これにより、図８（Ｂ）に示すように、ＮＷコスト表４０が生成される。ＮＷコスト表４０は、複数の仮想マシン１１の各々について、当該仮想マシン１１を移行元の物理マシン１から移行先の物理マシン１に移行した場合の物理コストを格納する。移行元の物理マシン１は、前述したように、当該仮想マシン１１が現在動作している物理マシン１である。
【００７２】
図９は、影響度表の更新の説明図である。
【００７３】
図９（Ａ）は、ネットワーク負荷の発生について示す。ネットワーク負荷監視部３３が、ネットワーク２において、例えば図９（Ａ）に示すネットワークの部分Ｘでネットワーク負荷の発生を検出したとする。ネットワークの部分Ｘは、通信の負荷が集中している部分であり、例えば２個のネットワークスイッチ２１に挟まれた区間である。この場合、ネットワーク負荷監視部３３は、ネットワーク負荷の発生を検出すると、ネットワーク負荷の発生を反映するように影響度表３９を更新する。更新された影響度表３９を用いてＮＷコストを再度求めることにより、ネットワーク負荷の発生をＮＷコストに反映させることができる。
【００７４】
ネットワークの部分Ｘを経由する通信は、物理マシン＃３又は＃４が他の物理マシン＃１、＃２、＃５〜＃８との間で行う通信である。そこで、影響度表３９において、ネットワークの部分Ｘを経由する通信に対して、予め定められた値を加算する。これにより、図９（Ｂ）に示す影響度表３９を得る。
【００７５】
例えば、図６（Ｂ）において、通信元の物理マシン１が物理マシン＃３又は＃４である通信に対して、図９（Ｂ）に示すように、ホップ数「５」を加算する。但し、物理マシン＃３と物理マシン＃４との間の通信については、ネットワークの部分Ｘを経由しないので、ホップ数「５」は加算されない。また、通信元の物理マシン１が物理マシン＃１、＃２、＃５〜＃８である通信に対して、図９（Ｂ）に示すように、ホップ数「５」を加算する。但し、物理マシン＃１と物理マシン＃２との間の通信、及び、物理マシン＃５〜＃８の間の通信については、ホップ数「５」は加算されない。
【００７６】
なお、加算するホップ数の値は、５以外であっても良く、また、ネットワーク負荷の程度に応じて変動するようにしても良い。また、ホップ数に代えて他の通信のしやすさを表すパラメータを用いる場合には、加算する値を適宜変更するようにしても良い。
【００７７】
図３に戻って、移行制御部３１は、第３の時間間隔で、移行対象の仮想マシン１１を決定する。従って、移行コスト表４１は第３の時間間隔で定期的に更新される。これにより、物理リソースの使用率を平均化し、ネットワーク負荷を減少させることができる。
【００７８】
第３の時間間隔は、第１の時間間隔及び第２の時間間隔より長くされる。これは、物理コスト及びネットワークコストの算出は仮想マシン１１の移行に直結するので、第３の時間間隔が短いと、仮想マシン１１の移行の負荷が大きくなることを防止するためである。なお、第１の時間間隔と第２の時間間隔とは、等しくても良く、異なっていても良い。
【００７９】
また、移行制御部３１は、複数の物理マシン１のいずれかにおける物理リソースの枯渇時に、移行対象の仮想マシン１１を決定する。従って、移行コスト表４１は、定期的に更新される他に、物理リソースの枯渇時に、物理リソースの枯渇をトリガとして、更新される。これにより、物理リソースの枯渇を早期に解消することができる。
【００８０】
また、移行制御部３１は、ネットワーク２におけるネットワーク負荷の発生時に、移行対象の仮想マシン１１を決定する。従って、移行コスト表４１は、定期的に更新される他に、ネットワーク２におけるネットワーク負荷の発生時に、ネットワーク２におけるネットワーク負荷の発生をトリガとして、更新される。これにより、ネットワーク負荷を早期に解消することができる。
【００８１】
移行制御部３１は、第３の時間間隔で、複数の仮想マシン１１の各々について、移行コストを算出する。移行コストは、当該仮想マシン１１を移行元の物理マシン１から移行先の物理マシン１に移行させた場合における、物理コストとＮＷコストとに基づいて定まる。実際には、移行制御部３１は、物理コスト表３８の物理コストとＮＷコスト表４０のＮＷコストとに基づいて移行コストを算出し、移行コスト表４１を生成する。移行コスト表４１は、複数の仮想マシン１１の各々についての移行コストを格納する。
【００８２】
図１０（Ａ）は、物理コスト表３８の物理コストとＮＷコスト表４０のＮＷコストとによる移行コストの算出について示す。移行コストは、基本的には、図１０（Ａ）に示すように、物理コスト表３８の物理コストと、これに対応するＮＷコスト表４０のＮＷコストとを加算することにより得られる。
【００８３】
ここで、移行制御部３１は、物理コストに予め定められた第１の係数を乗算した値と、ＮＷコストに予め定められた第２の係数を乗算した値とを加算することにより、移行コストを算出する。第１の係数及び第２の係数は、経験的に求めることができ、例えば予め定められた固定の値とされる。第１の係数及び第２の係数は、例えば、物理リソースの枯渇の発生の回数と、ネットワーク２におけるネットワーク負荷の発生の回数とに基づいて変動させるようにしても良い。
【００８４】
例えば、図１１（Ａ）に示すように、物理コストに第１の係数ｎを乗算した値と、ＮＷコストに第２の係数ｍを乗算した値とを加算することにより、移行コストを算出する。ｎの値は例えば「１」とされ、ｍの値は例えば「４」とされる。例えば、仮想マシンＡの物理マシン＃１への移行について見ると、物理コスト「１１」に第１の係数「１」を乗算し、ＮＷコスト「３」に第２の係数「４」を乗算することにより、物理マシン＃１への移行コスト「２３」が得られる。
【００８５】
ｎ及びｍの値は、例えば経験的に定めることができる。ｎの値は「１」に限られず、ｍの値は「４」に限られない。ｎ及びｍの値を「１」にすることにより、物理コストとＮＷコストとを均等に加算するようにしても良い。ｎの値又はｍの値を「０」にすることにより、物理コストとＮＷコストのいずれか一方のみに基づいて移行コストを求めるようにしても良い。また、ｎ及びｍの値を動的に変更するようにしても良い。この場合、例えば物理リソースの枯渇の発生の回数とネットワーク負荷の派生の回数とを記録し、両者の比に応じてｎ及びｍの値を定めるようにしても良い。
【００８６】
図３に戻って、移行制御部３１は、複数の仮想マシン１１の各々についての移行コストに基づいて、移行対象の仮想マシン１１を決定する。実際には、移行制御部３１は、移行コスト表４１に基づいて、移行対象の仮想マシン１１を決定する。
【００８７】
具体的には、移行制御部３１は、複数の仮想マシン１１の各々について、移行メリットＰを算出する。移行メリットＰは、移行元の物理マシン１についての移行コストから、当該仮想マシン１１についての最小の移行コストを引くことにより、算出される。そして、移行制御部３１は、移行メリットＰの中の最大の移行メリットＰを有する仮想マシン１１を抽出し、最大の移行メリットＰと移行閾値Ｔとを比較する。最大の移行メリットＰが移行閾値Ｔより大きい場合に、移行制御部３１は、抽出した仮想マシン１１を移行対象の仮想マシン１１として決定する。
【００８８】
移行制御部３１は、移行対象の仮想マシン１１を、移行実施部３２に通知する。移行実施部３２は、移行対象の仮想マシン１１の通知を受け取ると、移行対象の仮想マシン１１を、移行元の物理マシン１から移行先の物理マシン１に移行させる。
【００８９】
図１１（Ｂ）は、移行メリットＰについて示す。移行メリットＰは、移行についての優先度を表す。移行メリットＰが大きいほど、移行が優先される。移行メリットＰは、仮想マシン１１の各々について、算出される。移行メリットＰは、図１１（Ｂ）に示すように、移行元の物理マシン１についての移行コストから、当該仮想マシン１１についての最小の移行コストを引くことにより算出される。
【００９０】
例えば、図１０（Ｂ）において、仮想マシンＡについてみると、仮想マシンＡは物理マシン＃２上で動作しているので、移行元の物理マシン１についての移行コストは「１０」である。また、仮想マシンＡの全ての移行先の物理マシン１の中で最小の移行コストは「９」である。これにより、移行メリット「１」が求まる。
【００９１】
他の仮想マシン１１についても、同様に、各々の物理マシン１への移行コストが得られる。これにより、図１０（Ｂ）に示すように、移行コスト表４１が得られる。移行コスト表４１は、「物」の欄に示すように、現在の物理マシン１、換言すれば、移行元の物理マシン１と、「Ｐ」の欄に示すように、移行メリットＰとを格納する。
【００９２】
図１２は、移行対象の仮想マシンの決定の説明図である。
【００９３】
図１２に示す移行コスト表４１において、例えば、仮想マシンＧが、移行メリットＰの中の最大の移行メリットＰ＝３０を有する。そこで、仮想マシンＧが移行対象の候補として抽出され、仮想マシンＧの移行メリットＰが移行閾値Ｔと比較される。
【００９４】
仮想マシンＧの移行メリットＰが移行閾値Ｔより大きい場合に、抽出した仮想マシンＧが移行対象の仮想マシン１１として決定される。仮想マシンＧの移行先物理マシン１の中で最小の移行コストを有する物理マシン１は、物理マシン＃３である。従って、仮想マシンＧが、移行元の物理マシン＃４から、移行先である最小の移行コスト「１０」を有する物理マシン＃３に移行される。
【００９５】
仮想マシンＧの移行メリットＰが移行閾値Ｔ以下である場合に、抽出した仮想マシンＧは、移行対象の仮想マシン１１とされない。従って、仮想マシンＧは移行されない。これにより、仮想マシン１１の移行を頻繁に実行することにより、移行による負荷が増加することを防止することができる。
【００９６】
図３に戻って、移行制御部３１は、移行閾値Ｔを動的に定める。例えば、移行制御部３１は、移行対象の仮想マシン１１の決定の都度に最大の移行メリットＰを保持する。保持される最大の移行メリットＰの数は、直近の予め定められた数とされる。そして、移行制御部３１は、直近の予め定められた数の最大の移行メリットＰに基づいて、移行閾値Ｔを定める。例えば、移行閾値Ｔは、直近の予め定められた数の最大の移行メリットＰの平均値とされる。
【００９７】
図１３及び図１４は、移行閾値の説明図である。
【００９８】
図１３（Ａ）は、移行閾値Ｔの決定について示す。移行対象の仮想マシン１１の決定の都度に、最大の移行メリットＰが保持される。移行コスト表４１の更新契機は、移行コストの算出が第３の時間間隔で実行された回数であり、更新契機「１」は１回目の移行コストの算出を示す。移行閾値Ｔは、直近の予め定められた数の最大の移行メリットＰに基づいて定められる。
【００９９】
例えば、図１３（Ｂ）に示すように、移行閾値Ｔは、直近の３個の最大の移行メリットＰを平均することによりに定められる。この場合、最初の移行閾値Ｔは「２８」となる。移行閾値Ｔが「２８」であり、最大の移行メリットＰが「１００」であるので、図１３（Ａ）に「○」で示すように、移行が実行される。次の移行閾値Ｔは「５２」となる。なお、３個の最大の移行メリットＰが保持されるまでは、移行は実行されない。
【０１００】
図１３（Ｂ）をグラフ化すると、図１４に示すようなグラフとなる。横軸は時間であり、縦軸は移行メリットＰ及び移行閾値Ｔの値である。なお、移行メリットＰは「１００」以上の値であっても良い。図１４のグラフによれば、移行閾値Ｔは、移行メリットＰに基づいて、動的に変化することが判る。従って、移行メリットＰが大きいほど移行の優先度が高く、移行される可能性が高いが、一方、移行メリットＰが大きくても、移行閾値Ｔ以下であれば移行されない。
【０１０１】
移行閾値Ｔの算出に用いる最大の移行メリットＰの数は、３個に限られない。また、例えば図１３（Ｃ）に示すように、標準的にはＰの平均値を求め閾値Ｔを算出し、移行を行い難くするには２（用いたＰの個数よりも小さい値）で除し閾値Ｔを算出し、移行を積極的に行うには４（用いたＰの個数よりも大きい値）で除し閾値Ｔを算出すれば良い。また、仮想マシンシステムの運用中に、例えば単位時間当たりに移行が実行された回数に基づいて、移行閾値Ｔの算出の際に除する数値を変更するようにしても良い。
【０１０２】
また、移行閾値Ｔを、予め定められた値としても良い。この場合、移行閾値Ｔは、経験により又は実測により基づいて求められる。仮想マシンシステムの運用中に、例えば単位時間当たりに移行が実行された回数に基づいて、移行閾値Ｔを段階的な値として決定するようにしても良い。
【０１０３】
図１５は、仮想マシンの移行処理フローチャートであり、特に、定期的に実行される仮想マシンの移行について示す。
【０１０４】
物理リソース監視部３４は、第１の時間間隔で、複数の物理マシン１の各々から、物理リソース情報を取得する（ステップＳ１１）。これにより、物理リソース監視部３４は、最新の物理リソース情報を保持することができる。そして、物理リソース監視部３４は、移行制御部３１からの物理コスト表３８の再計算の要求を受信すると、その時点までに取得した物理リソース情報に基づいて、物理コスト表３８を再計算して更新する（ステップＳ１２）。この後、物理リソース監視部３４は、最新の物理コスト表３８を、物理コスト表３８の再計算の要求に対する応答として、移行制御部３１に通知する。
【０１０５】
一方、ネットワーク負荷監視部３３は、第２の時間間隔で、ネットワークスイッチ２１の各々から、ネットワーク負荷情報を取得する（ステップＳ１３）。これにより、ネットワーク負荷監視部３３は、最新のネットワーク負荷情報を保持することができる。そして、ネットワーク負荷監視部３３は、移行制御部３１からのＮＷコスト表４０の再計算の要求を受信すると、その時点までに取得したネットワーク負荷情報に基づいて、ＮＷコスト表４０を再計算して更新する（ステップＳ１４）。この後、ネットワーク負荷監視部３３は、最新のＮＷコスト表４０を、ＮＷコスト表４０の再計算の要求に対する応答として、移行制御部３１に通知する。
【０１０６】
移行制御部３１は、所定の時間、例えば第３の時間間隔が経過したか否かを判断し（ステップＳ１５）、第３の時間間隔が経過しない場合には（ステップＳ１５  ＮＯ）、ステップＳ１５を繰り返す。第３の時間間隔が経過した場合には（ステップＳ１５  ＹＥＳ）、移行制御部３１は、移行コスト表４１の更新を開始する（ステップＳ１６）。これにより、移行コスト表４１が定期的に更新される。
【０１０７】
例えば、移行制御部３１は、物理コスト表３８の再計算の要求を物理リソース監視部３４に送信し、応答として、物理リソース監視部３４から最新の物理コスト表３８を受信する。また、移行制御部３１は、ＮＷコスト表４０の再計算の要求をネットワーク負荷監視部３３に送信し、応答として、ネットワーク負荷監視部３３から最新のＮＷコスト表４０を受信する。
【０１０８】
この後、移行制御部３１は、最新の物理コスト表３８の通知及び最新のＮＷコスト表４０の通知を受信すると、最新のＮＷコスト表４０及び最新の物理コスト表３８を用いて移行コストを計算する（ステップＳ１７）。そして、移行制御部３１は、計算した移行コストに基づいて、移行メリットＰを計算し（ステップＳ１８）、計算した移行メリットＰの中の最大の移行メリットＰを抽出し（ステップＳ１９）、抽出した最大の移行メリットＰと移行閾値Ｔとを比較する（ステップＳ１１０）。
【０１０９】
抽出した最大の移行メリットＰが移行閾値Ｔより大きい場合には（ステップＳ１１０  ＹＥＳ）、移行制御部３１は、当該最大の移行メリットＰを有する仮想マシン１１を、移行対象の仮想マシン１１として選択し、移行対象として選択した仮想マシン１１を移行実施部３２に通知する。移行実施部３２は、移行制御部３１からの移行対象として選択された仮想マシン１１の通知に基づいて、移行対象として選択された仮想マシン１１を移行する（ステップＳ１１１）。これにより、１回の移行コスト表４１の更新の都度に移行される仮想マシン１１の数は１個に限られるので、移行の負荷が大きくなることを回避することができる。なお、移行の数は、２以上であっても良い。この後、移行制御部３１は、ステップＳ１６を実行する。
【０１１０】
抽出した最大の移行メリットＰが移行閾値Ｔより大きくない場合には（ステップＳ１１０  ＮＯ）、移行制御部３１は、処理を終了する。
【０１１１】
図１６は、仮想マシンの移行処理フローチャートであり、特に、物理リソースの枯渇を検出した場合に実行される移行について示す。図１７は、仮想マシンの移行処理の説明図である。
【０１１２】
物理リソース監視部３４は、複数の物理マシン１を監視することにより、いずれかの物理マシン１の物理リソースの枯渇を検出し（ステップＳ２１）、物理リソースが枯渇した物理マシン１上に存在する仮想マシン１１の一覧を取得、換言すれば、生成する（ステップＳ２２）。そして、物理リソース監視部３４は、仮想マシン１１の一覧に基づいて、移行制御部３１に対して、仮想マシン１１の移行が必要であることを通知し、移行対象の候補である仮想マシン１１を通知する。この後、物理リソース監視部３４は、物理コスト表３８を再計算し（ステップＳ２３）、計算により更新した最新の物理コスト表３８を、移行制御部３１に対して通知する。
【０１１３】
例えば、物理マシン＃４において物理リソースの枯渇を検出され、この時、物理マシン＃４上で仮想マシンＡ、Ｃ及びＦが動作していたとする。この場合、図１７（Ａ）に示す仮想マシン１１の一覧が取得され、仮想マシンＡ、Ｃ及びＦが移行対象の候補として通知される。また、更新した最新の物理コスト表３８として、図１７（Ｂ）において左側に示す物理コスト表３８が、移行制御部３１に対して通知される。従って、物理リソース監視部３４は、物理リソースの枯渇を検出された物理マシン＃４上の仮想マシンＡ、Ｃ及びＦについてのみ、物理コスト表３８を更新する。
【０１１４】
移行制御部３１は、仮想マシン１１の移行が必要であることの通知、及び、移行対象の候補である仮想マシン１１の通知を、物理リソース監視部３４から受信すると、移行対象の候補である仮想マシン１１について、ＮＷコスト表４０の再計算を、ネットワーク負荷監視部３３に依頼する。
【０１１５】
ネットワーク負荷監視部３３は、ＮＷコスト表４０の再計算の依頼を受信すると、ＮＷコスト表４０を再計算する（ステップＳ２４）。この後、ネットワーク負荷監視部３３が、計算により更新した最新のＮＷコスト表４０を、移行制御部３１に対して通知するようにしても良い。この場合、更新した最新のＮＷコスト表４０として、図１７（Ｂ）において右側に示すＮＷコスト表４０が、移行制御部３１に対して通知される。
【０１１６】
移行制御部３１は、最新の物理コスト表３８の通知を、物理リソース監視部３４から受信すると、図１７（Ｂ）に示すように、最新の物理コスト表３８及びＮＷコスト表４０を用いて移行コストを計算し（ステップＳ２５）、図１７（Ｃ）に示すように、移行コスト表４１を得る。この時、ＮＷコスト表４０としては、ネットワーク負荷監視部３３から通知された最新のＮＷコスト表４０を用いても、直近のステップＳ２４において取得したＮＷコスト表４０を用いても良い。移行コストは、物理リソースの枯渇を検出された物理マシン＃４上の仮想マシンＡ、Ｃ及びＦについてのみ計算される。
【０１１７】
この後、移行制御部３１は、最小の移行コストとなる仮想マシン１１を移行対象として選択し（ステップＳ２６）、移行対象として選択した仮想マシン１１を移行実施部３２に通知する。例えば、図１７（Ｃ）に示す移行コスト表４１において、仮想マシンＣを移行元の物理マシン＃４から移行先の物理マシン＃３に移行した場合に、最小の移行コスト「２」となる。従って、移行対象として仮想マシンＣを選択し、移行先は物理マシン＃３とされる。
【０１１８】
移行実施部３２は、移行制御部３１からの移行対象として選択された仮想マシン１１の通知に基づいて、移行対象として選択された仮想マシン１１を移行する（ステップＳ２７）。この後、移行実施部３２は、物理リソース監視部３４に対して、リソース枯渇改善確認要求を送信する。
【０１１９】
物理リソース監視部３４は、リソース枯渇改善確認要求を受信すると、物理リソースが枯渇した物理マシン１において物理リソースの枯渇が改善したか否かを判断する（ステップＳ２８）。物理リソースの枯渇が改善していない場合（ステップＳ２８  ＮＯ）、物理リソース監視部３４は、ステップＳ２２を繰り返す。物理リソースの枯渇が改善した場合（ステップＳ２８  ＹＥＳ）、物理リソース監視部３４は、処理を終了する。
【０１２０】
図１８は、仮想マシンの移行処理フローチャートであり、特に、ネットワーク負荷の発生を検出した場合に実行される移行について示す。
【０１２１】
ネットワーク負荷監視部３３は、ネットワーク２を監視することにより、ネットワーク負荷の発生を検出する（ステップＳ３１）。そして、ネットワーク負荷監視部３３は、移行制御部３１に対して、仮想マシン１１の移行が必要であることを通知する。
【０１２２】
この後、ネットワーク負荷監視部３３は、検出したネットワーク負荷に基づいてネットワーク２への影響度表３９を更新し（ステップＳ３２）、更新した影響度表３９に基づいてＮＷコスト表４０を再計算し（ステップＳ３３）、計算により更新した最新のＮＷコスト表４０を、移行制御部３１に対して通知する。
【０１２３】
移行制御部３１は、仮想マシン１１の移行が必要であることの通知を、ネットワーク負荷監視部３３から受信すると、物理コスト表３８の再計算を、物理リソース監視部３４に依頼する。
【０１２４】
物理リソース監視部３４は、物理コスト表３８の再計算の依頼を受信すると、物理コスト表３８を再計算する（ステップＳ３４）。そして、物理リソース監視部３４は、計算により更新した最新の物理コスト表３８を、移行制御部３１に対して通知する。
【０１２５】
移行制御部３１は、ネットワーク負荷監視部３３からの最新のＮＷコスト表４０の通知、及び、物理リソース監視部３４からの最新の物理コスト表３８の通知を受信すると、最新のＮＷコスト表４０及び最新の物理コスト表３８を用いて移行コストを計算する（ステップＳ３５）。そして、移行制御部３１は、計算した移行コストに基づいて、移行メリットＰを計算し（ステップＳ３６）、計算した移行メリットＰに基づいて、移行メリットＰが最大となる仮想マシン１１の移行を選択し（ステップＳ３７）、移行対象として選択した仮想マシン１１を移行実施部３２に通知する。
【０１２６】
移行実施部３２は、移行制御部３１からの移行対象として選択された仮想マシン１１の通知に基づいて、移行対象として選択された仮想マシン１１を移行する（ステップＳ３８）。この後、移行実施部３２は、ネットワーク負荷監視部３３に対して、ネットワーク負荷改善確認要求を送信する。
【０１２７】
ネットワーク負荷監視部３３は、ネットワーク負荷改善確認要求を受信すると、検出されたネットワーク負荷が改善したか否かを判断する（ステップＳ３９）。物理リソースの枯渇が改善していない場合（ステップＳ３９  ＮＯ）、物理リソース監視部３４は、ステップＳ３１を繰り返す。物理リソースの枯渇が改善した場合（ステップＳ３９  ＹＥＳ）、物理リソース監視部３４は、処理を終了する。
【０１２８】
図１９は、仮想マシンの移行処理フローチャートである。
【０１２９】
移行制御部３１は、移行対象である仮想マシン１１の移行の実施と、移行先の物理マシン１とを決定する（ステップＳ４１）。そして、移行制御部３１は、移行実施部３２に対して、移行対象である仮想マシン１１の移行の実施、及び、移行先の物理マシン１を通知する。
【０１３０】
移行実施部３２は、仮想マシン１１の移行の実施、及び、移行先の物理マシン１を通知を受けると、移行元の物理マシン１に対して、移行対象である仮想マシン１１の情報の送信要求を送信する。
【０１３１】
移行元の物理マシン１は、移行対象である仮想マシン１１の情報の送信要求を受信すると、移行対象である仮想マシン１１の情報を取得して（ステップＳ４２）、取得した移行対象である仮想マシン１１の情報を、移行先の物理マシン１に送信する。更に、移行元の物理マシン１は、移行対象である仮想マシン１１の動作を停止させ（ステップＳ４３）、動作を停止させた仮想マシン１１についての停止完了の通知を、移行実施部３２に送信する。
【０１３２】
一方、移行先の物理マシン１は、移行対象である仮想マシン１１の情報を受信すると、移行対象である仮想マシン１１の動作を開始させ（ステップＳ４４）、動作を開始させた仮想マシン１１についての再開完了の通知を、移行実施部３２に送信する。
【０１３３】
移行実施部３２は、仮想マシン１１についての停止完了の通知と仮想マシン１１についての再開完了の通知の双方を受信すると、仮想マシン１１の移行を完了する（ステップＳ４５）。そして、移行実施部３２は、移行制御部３１に対して、仮想マシン１１の移行完了の通知を送信する。これにより、物理マシン１の負荷とネットワークの状態とを考慮して、仮想マシン１１を最適な物理マシン１に移行させることができる。
【符号の説明】
【０１３４】
１    物理マシン
２    ネットワーク
３    監視サーバ
１１    仮想マシン
１２    アプリケーション
１３    仮想ＯＳ
１４    ハイパーバイザー
１５    負荷計測部
１６    情報格納部
１７、１８    ＬＡＮ制御部
２１    ネットワークスイッチ
３１    移行制御部
３２    移行実施部
３３    ネットワーク負荷監視部
３４    物理リソース監視部
３５    ＯＳ
３６、３７    ＬＡＮ制御部
３８    物理コスト表
３９    影響度表
４０    ネットワークコスト表（ＮＷコスト表）
４１    移行コスト表
【図１】
0005935505.tif 000002
【図２】
0005935505.tif 000003
【図３】
0005935505.tif 000004
【図４】
0005935505.tif 000005
【図５】
0005935505.tif 000006
【図６】
0005935505.tif 000007
【図７】
0005935505.tif 000008
【図８】
0005935505.tif 000009
【図９】
0005935505.tif 000010
【図１０】
0005935505.tif 000011
【図１１】
0005935505.tif 000012
【図１２】
0005935505.tif 000013
【図１３】
0005935505.tif 000014
【図１４】
0005935505.tif 000015
【図１５】
0005935505.tif 000016
【図１６】
0005935505.tif 000017
【図１７】
0005935505.tif 000018
【図１８】
0005935505.tif 000019
【図１９】
0005935505.tif 000020
【図２０】
0005935505.tif 000021