(57)【要約】      （修正有）【課題】同じ物理サーバ内にあるお互いに通信のある仮想マシンのうち、片方の仮想マシンを別の物理サーバへ移動させる場合、ＮＷリソースの増減を考慮することで、このようなＮＷ負荷の増大を防止して、仮想マシンをより効率よく配置する。【解決手段】移動予定の仮想マシン１０２、１０３のある物理サーバ１００の第一の通信容量と、仮想マシン移動後の物理サーバの第二の通信容量とを比較し、第二の通信容量が大きくなる場合に当該仮想マシンの移動をしない。【選択図】図１
2016162322.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシン移動前の当該移動予定の仮想マシンのある物理サーバの第一の通信容量と、仮想マシン移動後の前記物理サーバの第二の通信容量とを比較して、前記第二の通信容量が大きくなる場合に当該仮想マシンの移動をしないように制御する制御部を
有することを特徴とする仮想マシン配置管理装置。
【請求項２】
請求項１に記載の仮想マシン配置管理装置であって、
更に、
通信と、送信元仮想マシンと、送信先仮想マシンと、当該仮想マシン間の通信容量と、をそれぞれ対応づけて記憶するＮＷリソース使用量予測テーブルと、
通信と、送信元物理サーバと、前記送信元サーバ以外の物理サーバの送信先物理サーバと、をそれぞれ対応づけて記憶するＮＷリソース消費テーブルと、
前記制御部が、
移動予定の仮想マシンのある物理サーバを、仮想マシン移動前の前記ＮＷリソース消費テーブルに照合して、当該物理サーバのある通信を特定し、前記特定された通信を、仮想マシン移動前の前記ＮＷリソース消費テーブルに照合して、通信容量を特定して第一の通信容量とし、
移動予定の仮想マシンのある物理サーバを、仮想マシン移動後の前記ＮＷリソース消費テーブルに照合して、当該物理サーバのある通信を特定し、前記特定された通信を、仮想マシン移動後の前記ＮＷリソース消費テーブルに照合して、通信容量を特定して第二の通信容量とする
ことを特徴とする仮想マシン配置管理装置。
【請求項３】
請求項１乃至請求項２のいずれか一項に記載の仮想マシン管理装置であって、
前記制御部が、
当該移動予定の仮想マシンのある物理サーバの、仮想マシン移動前のＣＰＵ使用量と、仮想マシン移動後のＣＰＵ使用量とを更に比較して、
ＣＰＵリソースの差分が前記第一の通信料と前記第二の通信料の差分より小さい場合に仮想マシンを移動しないように制御する
ことを特徴とする仮想マシン配置管理装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の仮想マシン管理装置であって、
前記制御部が、
更に、
ＣＰＵ使用量や通信料から、当該物理サーバのリソース量を引いて算出される不足リソース量により仮想マシンを移動しないように制御する
ことを特徴とする仮想マシン配置管理装置。
【請求項５】
仮想マシン移動前の当該移動予定の仮想マシンの物理サーバの通信容量と、仮想マシン移動後の前記物理サーバの通信容量とを比較して、前記移動後の物理サーバの通信容量が小さくなる場合に当該仮想マシンの移動を決定するステップを
有することを特徴とする仮想マシン配置管方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの配置の技術に関する。
【背景技術】
【０００２】
仮想化ソフトウェアにより1台の物理サーバ上に複数台の仮想マシンを集約した場合、集約度合いが高くなり、物理サーバが高負荷になると、仮想マシンの性能低下に影響を与える。複数の物理サーバで仮想マシンの集約度合いに差があった場合に、負荷の高い物理サーバにある仮想マシンを負荷の低い物理サーバへ移動させて平準化することで仮想マシンの性能向上を図ることが、特開２０１２−２０８５４１号公報（特許文献１）に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０８５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献1では、仮想マシンの移動に伴って、仮想マシンが使用できるNWリソースの量が増減することが考慮されていない。同じ物理サーバ内にあるお互いに通信のある仮想マシンのうち、片方の仮想マシンを別の物理サーバへ移動させると、仮想マシン間の通信量だけ、物理サーバ間で通信が発生して、物理サーバのＮＷリソースの消費の増大を招くケースがある。そのため、ＮＷリソースの増減を考慮しないと、ＮＷ負荷が増大し仮想マシンを効率よく配置したとは言えない状況になってしまう可能性がある。本発明はこのようなＮＷ負荷の増大を防止して、仮想マシンをより効率よく配置することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の仮想マシン配置管理装置の一つでは、仮想マシン移動前の当該移動予定の仮想マシンのある物理サーバの第一の通信容量と、仮想マシン移動後の前記物理サーバの第二の通信容量とを比較して、前記第二の通信容量が大きくなる場合に当該仮想マシンの移動をしないように制御する制御部を有する。
【発明の効果】
【０００６】
本発明によれば、仮想マシンをより効率よく配置することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態のシステムの構成図。
【図２】物理サーバリソーステーブルを表す図。
【図３】仮想マシン配置テーブルを表す図。
【図４】仮想マシンリソーステーブルを表す図。
【図５】CPUリソース使用率テーブルを表す図。
【図６】ＮＷリソース使用量テーブルを表す図。
【図７】仮想マシン移動テーブルを表す図。
【図８】仮想マシン移動後の配置テーブルを表す図。
【図９】CPUリソース使用率予測テーブルを表す図。
【図１０】CPUリソース使用量予測テーブルを表す図。
【図１１】総要求ＣＰＵリソース予測テーブルを表す図。
【図１２】ＮＷリソース使用量予測テーブルを表す図。
【図１３】ＮＷリソース消費テーブルを表す図。
【図１４】総要求ＮＷリソース予測テーブルを表す図。
【図１５】不足CPUリソース予測テーブルを表す図。
【図１６】不足NWリソース予測テーブルを表す図。
【図１７】不足リソース合計量予測テーブルを表す図。
【図１８】リソース重みテーブルを表す図。
【図１９】仮想マシン配置の処理フローを表す図。
【発明を実施するための形態】
【０００８】
本実施例では、サーバリソース負荷平準化部が提示する仮想マシンの移動可否を決定するシステムについて説明する。本実施例では仮想マシンの移動可否を決定するためのリソースとしてＣＰＵとNWリソースに限定したが、物理サーバに固有かつ有限のリソースであれば、CPUとNWリソースに限定されるものではない。
【０００９】
図１は本発明の実施形態のシステムの構成図である。本実施の形態の処理システムは、物理サーバ１００と、物理サーバ１１０と、サーバリソース負荷平準化サーバ１２０と、仮想マシン監視サーバ１３０と、制御・記憶サーバ１４０と、を備える。物理サーバ１００と、物理サーバ１１０と、サーバリソース負荷平準化サーバ１２０と、仮想マシン監視サーバ１３０と、制御・記憶サーバ１４０はネットワークを介して接続されている。本実施例では、複数のサーバからなるシステムとしているが、この構成に限定されるものではなく、各サーバにある機能をまとめて一つのサーバ、装置としてもよい。
【００１０】
物理サーバ１００は、仮想化ソフトウェア１０１を備え、該当ソフトウェアの機能により、仮想マシン１０２と、仮想マシン１０３は物理サーバ１００上で稼働する。同様に物理サーバ１１０は、仮想化ソフトウェア１１１を備え、該当ソフトウェアの機能により、仮想マシン１１２は物理サーバ１１０上で稼働する。なお本実施例では物理サーバを２台、仮想マシンを３台としたが、物理サーバと仮想マシンの台数はこれに限定されるものではない。
【００１１】
サーバリソース負荷平準化サーバ１２０は物理サーバのサーバリソースの負荷を監視するサーバリソース負荷監視部１２１と物理サーバのサーバリソースの負荷が平準化されるような仮想マシンの移動を提示する仮想マシン移動情報提示部と、実際に仮想マシンを移動する仮想マシン移動実行部１２３からなる。本実施例ではサーバリソースとしてCPU、ＮＷに注目するが、サーバリソースは物理サーバが保有するリソースであれば種類は問わない。
【００１２】
仮想マシン監視サーバ１３０は仮想マシンのCPU使用率を監視するCPUリソース使用率監視部１３１と、仮想マシンのNWリソース消費量を監視するNWリソース消費量監視部１３２からなる。
【００１３】
制御・記憶サーバ１４０は制御部１４１と記憶部１４２を備える。制御部１４１は、仮想マシン移動情報提示部からの入力を基に、内部に格納されたプログラムに従って、仮想マシンの移動可否を判定し、仮想マシン移動実行部１２３に仮想マシンの移動可否を命令する。記憶部１４２は制御部１４１が仮想マシンの移動の可否を判定するために必要なテーブルを備える。
【００１４】
本発明である仮想マシン配置管理装置は仮想マシン監視サーバ１３０と制御・記憶サーバ１４０に相当するが、この形態に限定されるものではなく、仮想マシン監視サーバ１３０と制御・記憶サーバ１４０とをひとつのサーバとして仮想マシン配置管理装置としてもよい。また、仮想マシン配置管理装置はサーバに限定されるものではなく、仮想マシンの配置を管理する装置をいう。
【００１５】
図２は物理サーバリソーステーブル２００の構成図である。物理サーバリソーステーブル２００は、物理サーバＮｏ２０１と、ＣＰＵリソース２０２と、ＮＷリソース２０３と、を備える。ＣＰＵリソース２０２とは1台の物理サーバが保有するCPUの数、NWリソース２０３とは1台の物理サーバが使用できるNWの帯域をいう。なお、CPUリソース・NWリソースは物理サーバに固有でCPU・NWに関連するリソースであれば何でもよく、CPUの数、NWの帯域に限らない。
【００１６】
図３は仮想マシン配置テーブル３００の構成図である。仮想マシン配置テーブル３００は、仮想マシンを特定する仮想マシンＮｏ３０１と、物理サーバを特定する物理サーバＮｏ３０２を備える。この仮想マシン配置テーブル３００により、どの仮想マシンがどの物理サーバにあるかを管理する。
【００１７】
図４は仮想マシンリソーステーブル４００の構成図である。仮想マシンリソーステーブル４００は、仮想マシンを特定する仮想マシンＮｏ４０１と、各仮想マシンがどれぐらいのＣＰＵリソースを所持しているかを管理するCPUリソース４０２を備える。ここで、CPUリソース４０２とは仮想化ソフトウェアにより仮想マシンに割り当てられたCPUの数をいう。
【００１８】
図５は仮想マシンCPU使用率テーブル５００の構成図である。仮想マシンCPU使用率テーブル５００は、仮想マシンＮｏ５０１と、時刻５０２を備える。時刻５０２とは仮想マシン監視サーバ１３０のCPUリソース使用率監視部１３１により情報を取得した時刻のことをいう。CPUリソース使用率監視部１３１は設定されたポーリング間隔に従って、仮想マシンのCPUリソース使用率を取得する。時刻１００はCPUリソース使用率監視部１３１がデータを取得した最新の時刻を指し、時刻１は時刻１００から９９回前にCPUリソース使用率監視部１３１がデータを取得した時刻を指す。なおここでは過去１００回の取得データを保持することとしているが、保持するデータ量はCPUリソース使用率監視部１３１の設定次第であり、この限りでーブル６００の構成図である。なおここでは時刻１から時刻１００までとしているが、保持する時刻はこの限りではない。
【００１９】
図６は、ＮＷリソース使用テーブルの例である。ＮＷリソース使用テーブル６００は、送信元仮想マシンＮｏ６０１と、送信先仮想マシンＮｏ６０２と、時刻６０３を備える。送信元仮想マシンＮｏ６０１はデータの送信元の仮想マシンを特定するもので、送信先仮想マシンＮｏ６０２はデータの送信先の仮想マシンを特定するものである。例えば、送信元仮想マシンＮｏ６０１が仮想マシン１０２で、送信先仮想マシンＮｏ６０２が仮想マシン１０３の場合、仮想マシン１０２から仮想マシン１０３へのデータ送信量を管理する。
時刻６０３とは仮想マシン監視サーバ１３０のＮＷリソース消費量監視部１３２により情報を取得した時刻のことをいう。ＮＷリソース消費量監視部１３２は設定されたポーリング間隔に従って、仮想マシンのＮＷリソース使用率を取得する。時刻１００はＮＷリソース消費量監視部１３２がデータを取得した最新の時刻を指し、時刻１は時刻１００から９９回前にＮＷリソース消費量監視部１３２がデータを取得した時刻を指す。なおここでは過去１００回の取得データを保持することとしているが、保持するデータ量はＮＷリソース消費量監視部１３２の設定次第であり、この限りでーブル６００の構成図である。NWリソース使用量テーブル６００は、送信元仮想マシンＮｏ６０１と、送信先仮想マシンＮｏ６０２と、時刻６０３を備える。時刻６０３とは仮想マシン監視サーバ１３０により情報を取得した時刻のことをいう。なおここでは時刻１から時刻１００までとしているが、保持する時刻はこの限りではない。
【００２０】
図７は仮想マシン移動テーブル７００の構成図である。仮想マシン移動テーブル７００は、仮想マシンＮｏ７０１と、移動元物理サーバＮｏ７０２と、移動先物理サーバＮｏ７０３とを備える。サーバリソース負荷平準化サーバ１２０の仮想マシン移動情報提示部１２２が仮想マシンの移動を提示した際に本テーブルは作成される。なおここでは１つの仮想マシンの移動としているが、一度に移動する仮想マシンの数はこの限りではない。制御部１４１は仮想マシン移動テーブル７００を用い、仮想マシンを移動した場合と仮想マシンを移動しなかった場合の仮想マシンのパフォーマンスを比較し、仮想マシンの移動可否を判断する。
【００２１】
図８は仮想マシン移動後の配置テーブル８００の構成図である。仮想マシン移動後の配置テーブル８００は、仮想マシンＮｏ８０１と、物理サーバＮｏ８０２を備え、仮想マシン移動後にどの物理サーバにどの仮想マシンがあるかを管理する。
【００２２】
図９はCPUリソース使用率予測テーブル９００の構成図である。CPUリソース使用率予測テーブル９００は、仮想マシンＮｏ９０１と、時刻９０２と、を備える。ここで時刻１は仮想マシン移動情報提示部１２２が提示する仮想マシンの移動が完了後、CPUリソース使用率監視部１３１が最初にデータを取得する時刻を指し、時刻３は仮想マシン移動情報提示部１２２が次に提示する仮想マシンの移動前にCPUリソース使用率監視部１３１が最後にデータを取得する時刻を指す。なおここでは時刻３の後に仮想マシン移動情報提示部１２２が次の仮想マシンの移動を提示するとしているが、仮想マシン移動情報提示部１２２が仮想マシンを提示する間隔は仮想マシン移動情報提示部の設定次第のため、この限りではない。
【００２３】
図１０はCPUリソース使用量予測テーブル１０００の構成図である。CPUリソース使用量予測テーブル１０００は、仮想マシンＮｏ１００１と、時刻１００２と、を備える。CPUリソース使用量は仮想マシンリソーステーブル４００のCPUリソース２０２とCPUリソース使用率予測テーブル９００のCPUリソース使用率を掛け合わせて求められる。例えばCPUリソース使用量予測テーブル１０００の仮想マシン１０２の時刻１の値は、次のように求められる。CPUリソース使用率予測テーブル９００から仮想マシン１０２の時刻１の値が８０％であることが分かる。仮想マシンリソーステーブル４００から仮想マシン１０２のCPUリソースは２であることが分かる。以上よりCPUリソース使用量予測テーブル１０００の仮想マシン１０２の時刻１の値は、２×０．８＝１．６と算出される。
【００２４】
図１１は総要求CPUリソース予測テーブル１１００の構成図である。総要求CPUリソース予測テーブル１１００は、物理サーバＮｏ１１０１と、時刻１１０２を備える。総要求CPUリソース予測テーブル１０００と物理サーバリソーステーブル２００のCPUリソース２０２を比較することで、時刻ごと・物理サーバごとにCPUリソースがどれだけ不足しているかが分かる。ＣＰＵリソース使用量予測テーブル１０００の各仮想マシンＮｏと、仮想マシン配置テーブル３００によりどの物理サーバがどれだけのＣＰＵリソースの使用量があるか特定できる。
【００２５】
図１２はNWリソース使用量予測テーブル１２００の構成図である。NWリソース使用量予測テーブル１２００は、通信Ｎｏ１２０１と、送信元仮想マシンＮｏ１２０２と、送信先仮想マシンＮｏ１２０３と、時刻１２０４を備える。このテーブルにより、どの仮想マシンからどの仮想マシンにどれぐらいの通信量があるかを時刻毎に管理できる。例えば送信元仮想マシンＮｏが仮想マシン１０２、送信先仮想マシンＮｏが仮想マシン１０３、時刻１に０．３ＧＢの場合、仮想マシン１０２から仮想マシン１０３へ時刻１において０．３ＧＢの通信量があることを表している。
【００２６】
図１３はNWリソース消費テーブル１３００の構成図である。NWリソース消費テーブル１３００は、通信Ｎｏ１３０１と、送信元物理サーバＮｏ１３０２、送信先物理サーバＮｏ１３０３を備える。仮想マシン間で通信が発生する場合、送信元仮想マシンが稼動する送信元物理サーバと送信先仮想マシンが稼動する送信先物理サーバが同一の物理サーバの場合は、物理サーバのメモリ空間を利用して通信を行うため、物理サーバのNWリソースは消費しない。それに対し、送信元仮想マシンが稼動する送信元物理サーバと送信先仮想マシンが稼動する送信先物理サーバが異なる物理サーバの場合は、送信元物理サーバと送信先物理サーバの両方の物理サーバのNW帯域を消費する。そのため、送信元物理サーバと送信先物理サーバが異なる通信Ｎｏに関しては、送信元物理サーバＮｏ１２０２、送信先物理サーバＮｏ１２０３に物理サーバＮｏを入力し、送信元物理サーバと送信先物理サーバが同一の通信Ｎｏに関しては、送信元物理サーバＮｏ１２０２、送信先物理サーバＮｏ１２０３にＮＵＬＬ値を入力する。本実施例ではＮＵＬＬ値としているが、これに限定されるものではなく、同一の物理サーバを特定するような情報を入れてもよいし、送信元と送信先が同じであることを特定できる情報であるならなんでもよい。
【００２７】
図１４は総要求NWリソース予測テーブル１４００の構成図である。総要求NWリソース予測テーブル１４００は、物理サーバＮｏ１４０１と、時刻１４０２を備える。総要求NWリソース予測テーブル１４００と物理サーバリソーステーブル２００のＮＷリソース２０３を比較することで、時刻ごと・物理サーバごとにＮＷリソースがどれだけ不足しているかが分かる。
【００２８】
図１５は不足CPUリソース予測テーブル１５００の構成図である。不足CPUリソース予測テーブル１５００は、物理サーバＮｏ１５０１と、時刻１５０２と、を備える。例えば不足CPUリソース予測テーブル１５００の物理サーバ１１０の時刻２の値は、次のように求められる。総要求CPUリソース予測テーブル１１００から物理サーバ１１０に時刻２で要求されるCPUリソースは４．３５である。それに対し、物理サーバリソーステーブル２００から物理サーバ１１０のＣＰＵリソースは４であることが分かる。そのため、不足CPUリソース予測テーブル１４００の物理サーバ１１０の時刻２の値は４．３５−４＝０．３５と算出される。
【００２９】
図１６は不足NWリソース予測テーブル１６００の構成図である。不足NWリソース予測テーブル１６００は、物理サーバＮｏ１６０１と、時刻１６０２と、を備える。例えば不足NWリソース予測テーブル１６００の物理サーバ１１０の時刻２の値は、次のように求められる。総要求NWリソース予測テーブル１６００から物理サーバ１１０に時刻２で要求されるNWリソースは１．２GBである。それに対し、物理サーバリソーステーブル２００から物理サーバ１１０のNWリソースは１GBであることが分かる。そのため、不足NWリソース予測テーブル１６００の物理サーバ１１０の時刻２の値は１．２GB−１GB＝０．２GBと算出される。
【００３０】
図１７は不足リソース合計量予測テーブル１７００の構成図である。不足リソース合計量予測テーブル１７００は、物理サーバＮｏ１７０１と、CPU不足リソース１７０２と、NW不足リソース１７０３と、を備える。不足リソース合計量は時刻１から時刻３の不足リソースの合計値を表す。例えば不足リソース合計量予測テーブル１７００の物理サーバ１１０のCPU不足リソースの値は、不足CPUリソース予測テーブル１５００の物理サーバ１１０の時刻１から時刻３の不足CPUリソースを合計して、０＋０．３５＋０．３＝０．６５と算出される。本実施例では時刻1〜時刻３でのリソースを見ているがこれに限定されるものではなく、時刻１のようなある特定の時間を見るように制御してもよいし、その範囲は限定されない。
【００３１】
図１８はリソース重みテーブル１８００の構成図である。リソース重みテーブル１８００は、CPUリソース重み１８０１と、NWリソース重み１８０２と、を備える。それぞれの値はクラウドサービス提供者が任意に設定可能なため、値はこの限りではない。制御部１４１は不足リソース合計量予測テーブル１６００とリソース重みテーブル１８００から仮想マシン移動テーブル７００の実行可否を内部の処理に従って判断する。
【００３２】
図１９は、本発明を複数の仮想マシンが稼動している複数の物理サーバに適用した場合の処理手順の実施の形態を示すフローチャートである。図１９のフローチャートに基づく動作は以下のとおりである。
【００３３】
ステップ１９０１では、サーバリソース負荷平準化サーバ１２０の仮想マシン移動情報提示部１２２が物理サーバのサーバリソースの負荷が平準化されるような仮想マシンの移動情報を提示。制御部１４１は仮想マシン移動テーブル７００を作成する。
【００３４】
ステップ１９０２では、制御部１４１は記憶部１４２にアクセスし、仮想マシン配置テーブル３００と仮想マシン移動テーブル７００から、仮想マシン１０３の稼動する物理サーバを物理サーバ１１０に変更した仮想マシン移動後の配置テーブル８００を作成する。
【００３５】
ステップ１９０３では、制御部１４１は記憶部１４２にアクセスし、CPUリソース使用率テーブル５００から仮想マシンごとに過去１ヶ月の同曜日・同時間帯のCPUリソース使用率を取得し、平均値を算出することでCPUリソース使用率予測テーブル９００を作成する。なお過去何週間のデータの平均を取るかは任意に設定可能であり、この限りではない。次に仮想マシンリソーステーブル４００とCPUリソース使用率予測テーブル９００を掛け合わせることで、CPUリソース使用量予測テーブル１０００を作成する。
【００３６】
ステップ１９０４では、制御部１４１は記憶部１４２にアクセスし、ＮＷリソース使用量テーブル６００の仮想マシンごとに過去１ヶ月の同曜日・同時間帯のＮＷリソース使用量を取得し、平均値を算出することでＮＷリソース使用量予測テーブル１２００を作成する。なお過去何週間のデータの平均を取るかは任意に設定可能であり、この限りではない。
【００３７】
以下ステップ１９０５とステップ１９０６では、まずは仮想マシン移動テーブル７００を実行しなかった場合の処理を記載する。
【００３８】
ステップ１９０５では、制御部１４１は記憶部１４２にアクセスし、仮想マシン配置テーブル３００と、CPUリソース使用量予測テーブル１０００とから総要求CPUリソース予測テーブル１１００を作成する。具体的には、仮想マシンの配置テーブル３００から物理サーバ１００上で稼動する仮想マシンは仮想マシン１０２と仮想マシン１０３である。CPUリソース使用量予測テーブル１０００から時刻１の仮想マシン１０２のＣＰＵリソース使用量は１．６、時刻１の仮想マシン１０３のＣＰＵリソース使用量は２．４であることが分かる。以上より、仮想マシンを移動しなかった場合の物理サーバ予測要求CPU数テーブル１０００の物理サーバ１００の時刻１の値は、１．６＋２．４＝４．０と算出される。これにより、どの物理サーバがどれぐらいのＣＰＵリソースを必要としているかわかる。
【００３９】
ステップ１９０６では、制御部１４１は記憶部１４２にアクセスし、仮想マシン配置テーブル３００と、ＮＷリソース使用量予測テーブル１２００から、総要求ＮＷリソース予測テーブル１４００を作成する。以下に総要求ＮＷリソース予測テーブル１４００を作成する流れを示す。
【００４０】
まず、仮想マシン配置テーブル３００と、ＮＷリソース使用量予測テーブル１２００とから、NWリソース消費テーブル１３００を作成する。例えば、NWリソース消費テーブル１３００の通信１の送信元物理サーバＮｏと送信先物理サーバＮｏは次のように求められる。ＮＷリソース使用量予測テーブル１２００から通信１の送信元仮想マシンは仮想マシン１０２、送信先仮想マシンは１０３であることが分かる。仮想マシン配置テーブル３００から送信元仮想マシン１０２が稼動している送信元物理サーバは物理サーバ１００、送信先仮想マシン１０３が稼動している送信先物理サーバは物理サーバ１００であることが分かる。以上より送信元物理サーバと送信先物理サーバが同一の物理サーバであることが分かるため、NWリソース消費テーブル１３００の通信１の送信元物理サーバはＮＵＬＬ、送信先物理サーバはＮＵＬＬと決まる。
【００４１】
次にＮＷリソース使用量予測テーブル１２００とNWリソース消費テーブル１３００とから、総要求ＮＷリソース予測テーブル１４００を作成する。例えば総要求ＮＷリソース予測テーブル１４００の物理サーバ１００の時刻１の値は次のように求められる。NWリソース消費テーブル１３００から物理サーバ１００のＮＷリソースを消費する通信は通信３と通信４であることが分かる。ＮＷリソース使用量予測テーブル１２００から時刻１の通信３のＮＷリソース使用量は０．４ＧＢ、時刻１の通信４のＮＷリソース使用量は０．１ＧＢであることが分かる。以上より総要求ＮＷリソース予測テーブル１４００の物理サーバ１００の時刻１の値は０．４ＧＢ＋０．１ＧＢ＝０．５ＧＢと算出される。ここでは、移動対象となる仮想マシン１０３が、送信元仮想マシンもしくは送信先仮想マシンとなっているもので、送信元仮想マシンと送信先仮想マシンが異なる物理マシンにあるものの通信を特定して、総要求ＮＷリソース予測テーブルを作成しているが、これに限定されるものではなく、移動対象の仮想マシンが、送信元仮想マシンの場合、もしくは移動対象の仮想マシンが送信先仮想マシンの場合であってもよい。移動対象の仮想マシンが送信元仮想マシンの場合は、仮想マシンが別物理サーバへ移動された場合に、移動元の物理サーバの受信通信量が増大し、移動対象の仮想マシンが送信先の仮想マシンの場合は、移動元の物理サーバの送信通信量が増大することになる。本実施例ではこの二つを合わせて総要求ＮＷリソース容量としている。
【００４２】
ステップ１９０７とは、制御部１４１は記憶部１４２にアクセスし、総要求CPUリソース予測テーブル１１００と総要求ＮＷリソース予測テーブル１４００から仮想マシン移動テーブル７００を実行しなかった場合（移動予定の仮想マシンの移動前）の不足リソース合計量予測テーブル１７００を作成する。例えば不足リソース合計量予測テーブル１７００の不足ＣＰＵリソースの求め方を以下に示す。
【００４３】
まずは総要求CPUリソース予測テーブル１１００と物理サーバリソーステーブル２００から不足CPUリソース予測テーブル１５００を作成する。例えば不足CPUリソース予測テーブル１５００の物理サーバ１００の時刻２の値は次のように求められる。総要求CPUリソース予測テーブル１１００から時刻２に物理サーバ１００上で稼動する仮想マシンが要求するＣＰＵリソースの合計は４．３５であることが分かる。次に物理サーバリソーステーブル２００から物理サーバ１００のＣＰＵリソースは４であることが分かる。以上よりの時刻２の不足CPUリソース予測テーブル１５００の物理サーバ１００の時刻２の値は４．３５−４＝０．３５と算出される。
【００４４】
不足CPUリソース予測テーブル１５００の時刻１から時刻３までの不足ＣＰＵリソースを合計することで不足リソース合計量予測テーブル１７００の不足ＣＰＵリソースを算出する。本実施例では、時刻１から時刻３までを合計しているが、この時刻範囲に限定されるものではなく、時刻１としてもよいし、時刻１と時刻２の合計としてもよい。
【００４５】
次に、総要求ＮＷリソース予測テーブル１１００と物理サーバリソーステーブル２００から不足ＮＷリソース予測テーブルを作成する。例えば不足ＮＷリソース予測テーブル１６００の物理サーバ１００の時刻２の値は次のように求められる。総要求ＮＷリソース予測テーブル１１００から時刻２に物理サーバ１００上で稼動する仮想マシンが要求するＮＷリソースの合計は０．６ＧＢであることが分かる。次に物理サーバリソーステーブル２００から物理サーバ１００のＮＷリソース２０３は０．４であることが分かる。以上よりの時刻２の不足ＮＷリソース予測テーブル１５００の物理サーバ１００の時刻２の値は０．６−０．４＝０．２と算出される。
【００４６】
本ステップでは、要求される物理サーバ毎のＣＰＵリソースとＮＷリソースをそれぞれ算出し、物理サーバの本来もっているＣＰＵリソースのＮＷリソースのリソース容量との差分を見ることで、それぞれの不足分のリソース容量を算出しているが、これに限定されるわけではなく、移動予定の仮想マシンのある物理サーバの要求リソースをみて、要求リソースが仮想マシンの移動前より、仮想マシンの移動の後に大きくなっている場合に仮想マシンを移動しないように制御してもよい。
【００４７】
ステップ１９０８では、ステップ１９０５と同様に、仮想マシンを移動した場合（移動予定の仮想マシンの移動後）に関しても、仮想マシン移動後の配置テーブル８００と、CPUリソース使用量予測テーブル１０００とから総要求CPUリソース予測テーブル１１００を作成する。仮想マシンの移動は、サーバリソース負荷平準化サーバ１２０により特定され、仮想マシン移動テーブル７００に記憶される。例えば、仮想マシンＮｏ７０１が仮想マシン１０３、移動元物理サーバＮｏ７０２が物理サーバ１００、移動先物理サーバＮｏ７０３が物理サーバ１１０の場合は、仮想マシン１０３が物理マシン１００から物理サーバ１１０へ移動される候補として特定されることを意味する。また、配置テーブルは仮想マシン移動後の配置テーブル８００にアップデートされる。
【００４８】
ステップ１９０９では、ステップ１９０６と同様に、仮想マシンを移動した場合に関しても、仮想マシン移動後の配置テーブル８００と、ＮＷリソース使用量予測テーブル１２００から、総要求ＮＷリソース予測テーブル１４００を作成する。
【００４９】
ステップ１９１０では、ステップ１９０７と同様に、仮想マシンを移動した場合に関しても、総要求CPUリソース予測テーブル１１００と総要求ＮＷリソース予測テーブル１４００から仮想マシン移動テーブル７００を実行した場合の不足リソース合計量予測テーブル１７００を作成する。
【００５０】
ステップ１９１１では、仮想マシン移動テーブル７００を実行しなかった場合の不足リソース合計量予測テーブル１７００を比較して、仮想マシン移動テーブル７００を実行した場合の不足ＣＰＵリソースの増加量と不足ＮＷリソースの減少量を算出する。
【００５１】
ステップ１９１２では、ＣＰＵ不足リソース減少量×ＣＰＵリソース重みの値より、ＮＷ不足リソース増加量×ＮＷリソース重みの値が大きい場合はステップ１９１３に、小さい場合はステップ１９１４に進む。仮想マシンをある物理サーバから他の物理サーバへ移動させると、物理マシンのＣＰＵ不足リソースは減少することになる。一方でＮＷ不足リソース（通信量）が増加することになるケースがあるので、ＣＰＵ不足リソースの減少分とＮＷ不足リソースの増加分を比較して、ＣＰＵ不足リソースの減少分が小さくなる場合に、仮想マシンを移動しないように制御するものである。本ステップでは、重みづけをすることにより、ＣＰＵ不足リソースの減少分とＮＷリソース付属リソースの増加分を比較できるように値を調整している。
【００５２】
ステップ１９１３では、制御部１４１は仮想マシン移動実行部１２３に仮想マシン移動テーブル７００の中止を指示する。
【００５３】
ステップ１９１４では、制御部１４１は仮想マシン移動実行部１２３に仮想マシン移動テーブル７００の実行を指示する。また制御部１４１は記憶部１４２にアクセスし、仮想マシン移動後の配置テーブル８００を書き換える。
【００５４】
本実施例では、ＣＰＵのリソースとＮＷのリソースとの両方を見ているがこれに限定されるものではなく、ＮＷリソースだけを移動可否の判定の対象としてもよい。ＮＷリソースを見て仮想マシンの移動可否を判断する場合は、移動対象となる仮想マシンのある物理サーバの通信容量を見て、移動対象の仮想マシンを移動させる前と、移動させた後で、移動させた後のほうが、当該物理サーバの通信容量が大きくなってしまう場合に移動させないように制御する。ここでは移動させないよう制御したがこれに限定されるものではなく、通信容量が小さい場合に移動させるよう制御してもよい。このことにより、移動予定の仮想マシンのある物理サーバ内部での仮想サーバ同士の通信が多い場合、仮想マシンを他物理サーバに移動させてしまうと、移動先の物理サーバと移動元の物理サーバで通信が新たに発生してしまい、仮想マシンの移動の結果として、ＮＷリソースの消費がより激しくなってしまうことを防ぐことができる。
【００５５】
なお、仮想マシンを移動させる場合の通信容量を見る場合、本実施例では、仮想マシンが送信元となる場合、送信先となる場合の両方をみてＮＷリソースを管理しているが、これに限定されるものではなく、送信元となる場合、送信先となる場合、それぞれでＮＷリソース値を特定するように制御してもよい。
【符号の説明】
【００５６】
１００：物理サーバ、１０１：仮想化ソフトウェア、１０２：仮想マシン、１０３：仮想マシン、１１０：物理サーバ、１１１：仮想化ソフトウェア、１１２：仮想マシン、１２０：サーバリソース負荷平準化部、１３０：仮想マシン監視サーバ、１４１：制御部、１４２：記憶部、２００：物理サーバリソーステーブル、３００：仮想マシン配置テーブル、４００：仮想マシンリソーステーブル、５００：CPUリソース使用率テーブル、６００：ＮＷリソース使用量テーブル、７００：仮想マシン移動テーブル、８００：仮想マシン移動後の配置テーブル、９００： CPUリソース使用率予測テーブル、１０００：CPUリソース使用量予測テーブル、１１００：総要求ＣＰＵリソース予測テーブル、１２００：ＮＷリソース使用量予測テーブル、１３００：ＮＷリソース消費テーブル、１４００：総要求ＮＷリソース予測テーブル、１５００：不足CPUリソース予測テーブル、１６００：不足NWリソース予測テーブル、１７００：不足リソース合計量予測テーブル、１８００：リソース重みテーブル
【図１】
2016162322.tif 000003
【図２】
2016162322.tif 000004
【図３】
2016162322.tif 000005
【図４】
2016162322.tif 000006
【図５】
2016162322.tif 000007
【図６】
2016162322.tif 000008
【図７】
2016162322.tif 000009
【図８】
2016162322.tif 000010
【図９】
2016162322.tif 000011
【図１０】
2016162322.tif 000012
【図１１】
2016162322.tif 000013
【図１２】
2016162322.tif 000014
【図１３】
2016162322.tif 000015
【図１４】
2016162322.tif 000016
【図１５】
2016162322.tif 000017
【図１６】
2016162322.tif 000018
【図１７】
2016162322.tif 000019
【図１８】
2016162322.tif 000020
【図１９】
2016162322.tif 000021