(57)【要約】【課題】システムの負荷の上昇を抑えた仮想マシンの負荷の平準化を行う情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法を提供する。【解決手段】仮想マシン群管理部１０２は、複数の仮想マシン４のうち所定の関連性を有する仮想マシン４を組み合わせて複数の仮想マシン群を作成する。移行制御部１０５は、各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定する。移行実施部１０６は、移行制御部１０５により決定された仮想マシン群の組合せ毎に仮想マシン４を各物理マシン３に割当てる。【選択図】図３
2014167713.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンのうち所定の関連性を有する前記仮想マシンをまとめて複数の仮想マシン群を作成する群作成部と、
各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定する平準化部と、
前記平準化部により決定された前記仮想マシン群の組合せ毎に前記仮想マシンを各物理マシンに割当てる割当部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記平準化部は、各前記仮想マシン群の負荷の相関関係を求め、負の相関が高い前記仮想マシン群を組み合わせることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記平準化部は、各前記仮想マシン群間の負荷の相関係数を算出し、絶対値が最大となる負の相関係数を有する前記仮想マシン群を組み合わせることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記群作成部は、前記仮想マシン間で通信が行われる場合に、該通信を行う前記仮想マシン同士が前記所定の関連性を有すると判定することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
複数の物理マシンと、仮想マシンが動作する複数の前記物理マシンを管理する管理装置とを有する情報処理システムであって、
前記管理装置は、
前記仮想マシンのうち所定の関連性を有する前記仮想マシンをまとめて複数の仮想マシン群を作成する群作成部と、
各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定する平準化部と、
前記平準化部により決定された前記仮想マシン群の組合せ毎に前記仮想マシンを各前記物理マシンに割当てる割当部とを備え、
前記物理マシンは、
前記割当部により割当てられた前記仮想マシンを動作させる仮想マシン実行部を備えた
ことを特徴とする情報処理システム。
【請求項６】
複数の仮想マシンのうち所定の関連性を有する前記仮想マシンをまとめて複数の仮想マシン群を作成し、
各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定し、
前記仮想マシン群の組合せ毎に前記仮想マシンを各物理マシンに割当てる
処理をコンピュータに実行させることを特徴とする情報処理装置管理プログラム。
【請求項７】
複数の仮想マシンのうち所定の関連性を有する前記仮想マシンをまとめて複数の仮想マシン群を作成し、
各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定し、
前記仮想マシン群の組合せ毎に前記仮想マシンを各物理マシンに割当てる
ことを特徴とする情報処理装置管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの発展により、大量のサーバがデータセンターに配置され、サーバを複数台利用してサービスを提供する形態がとられている。このような形態において、ハードウェアリソースの柔軟な活用やサーバ集約などの観点から、１台の物理マシン上に複数台の仮想サーバを動作させる仮想化技術が採用されることがある。
【０００３】
仮想化技術を採用したシステムでは、１つのデータセンター内に数千、数万台規模の仮想サーバが配備され、仮想サーバ同士が通信を行うことにより膨大な量の処理を実現している。仮想マシンは、必要に応じ短時間で生成や削除を行うことが可能であり、また、別の物理マシン上に移動することも可能である。
【０００４】
このように、仮想化環境において、１台の物理マシンのリソースは複数の仮想マシンによって共有されている。このような状況で、仮想マシンのリソースの使用率が物理マシンのリソースの限度を超過することが考えられる。その場合に、Central  Processing  Unit（ＣＰＵ）やメモリ、トラフィックを基に各物理マシンに割当て可能な処理量の計算を行い、仮想マシンを物理マシンに再配置することで、物理的なリソースの最適化を行う従来技術がある。
【０００５】
また、仮想マシンの再配置の技術として、仮想マシンの負荷情報から所定の相関関係を有する仮想マシンを抽出し、抽出した所定の相関関係を有する仮想マシン同士を同じ物理マシンに配置する従来技術がある。その他にも、仮想マシン毎の最大負荷を求めて、最大負荷の総計が物理マシンの性能の上限に収まるように再配置する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１１６８５２号公報
【特許文献２】特開平０４−１６７０４６号公報
【特許文献３】国際公開第２００４／０２７６７６号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
最近の仮想化環境では、１台の仮想マシンに１機能が割当てられていることが多い。これに対して、サービスの提供と言う観点では、複数の機能が連携することで１つのサービスが提供されることが一般的である。そのため、多くのシステムでは、複数の仮想マシンサーバが連携して１つのサービスを提供することが行われている。
【０００８】
このような状況で、単に物理マシンの処理量のみを考慮して仮想マシンを分散させた場合、同じサービスを提供する複数の仮想マシンが異なる物理マシンに配置されるおそれがある。この場合、同じ物理マシン内の仮想サーバが１つのサービスを提供する場合に比べて、物理マシン間の通信量が増えてしまうなど、ネットワークや物理マシンなどの負荷が増加し、システム全体の負荷が高くなってしまう。
【０００９】
また、所定の相関関係を考慮して再配置する従来技術を用いても、負荷の平滑化を目的とした相関関係を有する仮想マシン同士が同じ物理マシンに配置されてしまい、通信量を減らすなどシステムの負荷を軽減することは困難である。また、仮想マシン毎の最大負荷を基に再配置を行う従来技術を用いても、仮想マシン間の通信量は考慮されておらず、システムの負荷を軽減することは困難である。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、システムの負荷の上昇を抑えた仮想マシンの負荷の平準化を行う情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法は、一つの態様において、群作成部は、複数の仮想マシンのうち所定の関連性を有する前記仮想マシンをまとめて複数の仮想マシン群を作成する。平準化部は、各前記仮想マシン群の負荷を基に、組合せた仮想マシン群全体の時間毎の負荷が均一になるように前記仮想マシン群の組合せを決定する。割当部は、前記平準化部により決定された前記仮想マシン群の組合せ毎に前記仮想マシンを各物理マシンに割当てる。
【発明の効果】
【００１２】
本願の開示する情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法の一つの態様によれば、システムの負荷の上昇を抑えた仮想マシンの負荷の平準化を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係る情報処理システムの概略構成図である。
【図２】図２は、実施例に係る情報処理システムのソフトウェア構成を表す概略図である。
【図３】図３は、実施例に係る情報処理システムのブロック図である。
【図４】図４は、物理リソース表の一例を示す図である。
【図５】図５は、仮想リソース表の一例を示す図である。
【図６】図６は、物理マシンに配置された仮想マシンの一例を示す図である。
【図７】図７は、仮想マシン通信表の一例の図である。
【図８】図８は、仮想マシン群表の一例の図である。
【図９】図９は、Ａ群の負荷総計の算出を説明するための図である。
【図１０】図１０は、各仮想マシン群の負荷総計を表す図である。
【図１１】図１１は、仮想マシン群間の相関係数の一例を示す図である。
【図１２】図１２は、実施例に係る情報処理システムにおける仮想マシンの再配置の処理のフローチャートである。
【図１３】図１３は、実施例に係る管理サーバによる負荷の平準化の効果を説明するための図である。
【図１４】図１４は、管理サーバのハードウェア構成図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法が限定されるものではない。
【実施例】
【００１５】
図１は、実施例に係る情報処理システムの概略構成図である。また、図２は、実施例に係る情報処理システムのソフトウェア構成を表す概略図である。
【００１６】
図１に示すように、本実施例に係る情報処理システムは、複数の物理マシン３を有している。物理マシン３とは、機械としての実態を有する情報処理装置であり、物理的なサーバなどである。
【００１７】
各物理マシン３は、仮想マシン４を有している。仮想マシン４は、仮想的な情報処理装置であり、仮想サーバなどである。図１では、仮想マシン４が、各物理マシン３に２つずつ搭載されているが、１台の物理マシン３に搭載される仮想マシン４の数に特に制限は無い。
【００１８】
さらに、各物理マシン３は、スイッチ２に接続されている。スイッチ２は、情報システム内に複数台配置されネットワークを構成している。そして、各物理マシン３は、スイッチ２が構成するネットワークを介して物理マシン３同士で通信を行うことができる。
【００１９】
また、管理サーバ１は、ネットワークを構成するスイッチ２のいずれかに接続されている。管理サーバ１は、スイッチ２が構成するネットワークを介して全ての物理マシン３と通信を行うことができる。図１における破線は、管理サーバ１が、ネットワークを介してスイッチ２を監視し、物理マシン３同士の間での通信状態を監視していることを表している。また、一点鎖線は、管理サーバ１が、ネットワークを介して各物理マシンのシステムの状態を監視していることを表している。また、二点差線は、管理サーバ１が、ネットワークを介して仮想マシン４のリソースを監視していることを表している。
【００２０】
さらに、図２を参照して、管理サーバ１及び物理マシン３の具体的なソフトウェア構成について説明する。
【００２１】
物理マシン３は、ハイパーバイザー３１を有する。ハイパーバイザー３１は、仮想マシンを実現するための制御プログラムである。ハイパーバイザー３１は、ホストOperation  System（ＯＳ）上でミドルウェアとして動作しても良いし、ハードウェア上で直接動作しても良い。
【００２２】
ハイパーバイザー３１は、負荷計測部３０１及び情報格納部３０２を有する。負荷計測部３０１及び情報格納部３０２については後で詳細に説明する。
【００２３】
さらに、仮想マシン４は、ハイパーバイザー３１上で動作する。仮想マシン４は、仮想ＯＳ４１及びアプリ４２を有している。
【００２４】
仮想ＯＳ４１は、仮想マシン４上で動作する仮想のＯＳであり、仮想マシン４の動作を統括制御する。
【００２５】
アプリ４２は、仮想ＯＳ上で動作する。アプリ４２は、例えばウェブサーバ機能やデータベースサーバ機能といった情報システムが利用者にサービスとして提供する各種機能を実現するための処理を行う。
【００２６】
また、物理マシン３は、ネットワークインタフェース３２及び３３を有している。ネットワークインタフェース３２は、管理用のネットワークに接続されている。ネットワークインタフェース３３は、他の物理マシン３とのデータの送受信を行うネットワークに接続されている。ここで、図１では、データの送受信用と管理用とでネットワークを分けずに示しているが、実際には、セキュリティやネットワーク負荷などの観点から、図２のようにデータの送受信用と管理用とでネットワークを分けることが好ましい。また、図２の管理用のネットワークでは、スイッチを省いて記載しているが、管理用のネットワークにもスイッチやルータなどの通信機器が用いられてもよい。
【００２７】
スイッチ２は、物理マシン３のネットワークインタフェース３３と接続されている。また、スイッチ２は、管理サーバ１のネットワークインタフェース１３と接続されている。
【００２８】
管理サーバ１は、ネットワークインタフェース１２及びネットワークインタフェース１３を有している。
【００２９】
ネットワークインタフェース１２は、管理用のネットワークに接続されている。管理サーバ１は、ネットワークインタフェース１２を用いて各物理マシン３及び仮想マシン４の監視や制御を行う。
【００３０】
ネットワークインタフェース１３は、データの送受信用のネットワークにスイッチ２を介して接続されている。管理サーバ１は、ネットワークインタフェース１３を用いて、物理マシン３同士の通信状態などを取得する。
【００３１】
さらに、管理サーバ１では、ＯＳ１１が動作している。そして、ＯＳ１１上で、本実施例の各機能を実現するための各部が動作している。例えば、ＯＳ１１上では、ネットワーク監視部１０１、仮想マシン群管理部１０２、物理リソース監視部１０３、仮想リソース監視部１０４、移行制御部１０５及び移行実施部１０６が動作している。これらの各部については次に詳細に説明する。
【００３２】
図３は、実施例に係る情報処理システムのブロック図である。図３では、説明の都合上、物理マシン３及びスイッチ２を１つずつのみ記載している。
【００３３】
物理マシン３及び物理マシン３上で動作する仮想マシン４について説明する。
【００３４】
負荷計測部３０１は、物理マシン３に搭載されているＣＰＵ、メモリ及びネットワーク帯域の使用率を所定時間毎に計測する。本実施例では、負荷計測部３０１は、１時間ごとに各使用率の計測を実行する。そして、負荷計測部３０１は、計測結果を情報格納部３０２に格納する。
【００３５】
また、負荷計測部３０１は、計測したＣＰＵ、メモリ及びネットワークの使用率の中で、各仮想マシン４が使用しているＣＰＵ、メモリ及びネットワークの使用率を、それぞれの仮想マシン４の情報格納部４３に送信する。
【００３６】
情報格納部３０２は、物理マシン３のＣＰＵ、メモリ及びネットワークの情報を格納する。例えば、情報格納部３０２は、ＣＰＵの情報として、ＣＰＵコアの数及びクロック数などを格納する。また、例えば、情報格納部３０２は、メモリの情報として、メモリの容量などを格納する。また、例えば、情報格納部３０２は、ネットワークの情報として、回線速度などを格納する。
【００３７】
さらに、情報格納部３０２は、負荷計測部３０１から送られてくるＣＰＵ、メモリ及びネットワーク帯域の使用率の計測結果を計測順に格納する。
【００３８】
仮想マシン４は、情報格納部４３を有している。仮想マシン４は、予め使用する物理的なリソースとして、ＣＰＵ、メモリ及びネットワーク帯域などが割当てられている。仮想マシン４は、割り当てられた物理的なリソースを用いて処理を実行する。
【００３９】
情報格納部４３は、当該情報格納部４３を有する仮想マシン４に割当てられているＣＰＵ、メモリ及びネットワークの情報を格納する。
【００４０】
さらに、情報格納部４３は、負荷計測部３０１から送られてくる当該情報格納部４３を有する仮想マシン４に割り当てられているＣＰＵ、メモリ及びネットワーク帯域の使用率の計測結果を計測順に格納する。
【００４１】
次に、管理サーバ１について説明する。
【００４２】
物理リソース監視部１０３は、各物理マシン３のＣＰＵ、メモリ及びネットワークの情報を各物理マシン３の情報格納部３０２から取得する。さらに、物理リソース監視部１０３は、物理マシン３のＣＰＵ、メモリ及びネットワーク帯域の構成が変更された場合、ＣＰＵ、メモリ及びネットワークの情報を当該物理マシン３の情報格納部３０２から再取得する。
【００４３】
物理リソース監視部１０３は、取得した情報から各物理マシン３のＣＰＵのコア数及びクロック数、メモリ容量、並びに、回線速度を抽出する。そして、物理リソース監視部１０３は、抽出した情報と各物理マシン３とを対応させて物理リソース表１１３を作成し、作成した物理リソース表１１３を記憶部１１０に格納する。
【００４４】
図４は、物理リソース表の一例を示す図である。図４に示すように、物理リソース表１１３は、物理マシン３毎に、物理マシン名に対応させて、その物理マシン３に搭載されているＣＰＵのコア数及びクロック数、メモリ容量、並びに、回線速度が登録されている。以下では、第ｉ物理マシンのＣＰＵコア数を「ｃｃｉ」、クロック数を「ｃｌｉ」、メモリ容量を「ｍｃｉ」、及び回線速度を「ｎｓｉ」として表す場合がある。
【００４５】
また、物理リソース監視部１０３は、定期的に各物理マシン３の情報格納部３０２にアクセスし、ＣＰＵ、メモリ及びネットワーク帯域の使用率の計測結果を取得する。この場合、物理リソース監視部１０３が情報格納部３０２にアクセスする間隔は、各物理マシン３の負荷の変化に適切に対応するためは、物理マシン３の負荷計測部３０１により使用率が計測されるタイミングと同期することが好ましい。ただし、物理マシン３の負荷の変化への対応に有る程度の許容時間が認められるなら、その許容時間に合わせて、物理リソース監視部１０３が情報格納部３０２にアクセスする間隔を延ばしてもよい。
【００４６】
そして、物理リソース監視部１０３は、物理マシンのリソースが不足すると、仮想マシン４の再配置を移行制御部１０５に指示する。本実施例では、物理リソース監視部１０３は、ＣＰＵ、メモリ又はネットワーク帯域の使用率が予め決められた値を超えた場合、仮想マシン４の再配置を移行制御部１０５に指示する。
【００４７】
仮想リソース監視部１０４は、各仮想マシン４に割り当てられているＣＰＵ、メモリ及びネットワークの情報を各仮想マシン４の情報格納部４３から取得する。また、仮想マシン４のＣＰＵ、メモリ及びネットワーク帯域の構成が変更された場合、仮想リソース監視部１０４は、ＣＰＵ、メモリ及びネットワークの情報を当該仮想マシン４の情報格納部４３から再取得する。
【００４８】
さらに、仮想リソース監視部１０４は、定期的に各仮想マシン４の情報格納部４３にアクセスし、ＣＰＵ、メモリ及びネットワーク帯域の使用率の計測結果を取得する。ここで、仮想リソース監視部１０４が情報格納部４３にアクセスする間隔は、各仮想マシン４の負荷の変化に適切に対応するためには、負荷計測部３０１により使用率が計測されるタイミングと同期することが好ましい。ただし、仮想マシン４の負荷の変化への対応に有る程度の許容時間が認められるのであれば、その許容時間に合わせて、仮想リソース監視部１０４が情報格納部４３にアクセスする間隔を延ばしてもよい。
【００４９】
そして、仮想リソース監視部１０４は、各仮想マシン４と当該仮想マシン４に割当てられているＣＰＵのコア数及びクロック数、メモリ容量、並びに、回線速度を対応させて仮想リソース表１１４を作成する。さらに、仮想リソース監視部１０４は、作成した仮想リソース表１１４における各仮想マシン４に対応させて、各時刻におけるＣＰＵ、メモリ及びネットワーク帯域の使用率を登録する。その後、仮想リソース監視部１０４は、作成した仮想リソース表１１４を記憶部１１０に格納する。
【００５０】
図５は、仮想リソース表の一例を示す図である。図５に示すように、仮想リソース表１１４は、仮想マシン４毎に、仮想マシン名に対応させて、その仮想マシン４に搭載されているＣＰＵのコア数及びクロック数、メモリ容量、回線速度、ＣＰＵ使用率、メモリ使用率、並びに、ネットワーク帯域使用率が登録されている。以下では、第ｓ仮想マシンのＣＰＵコア数を「ｃｃｓ」、クロック数を「ｃｌｓ」、メモリ容量を「ｍｃｓ」、及び回線速度を「ｎｓｓ」として表す場合がある。また、第ｓ仮想マシンにおけるＣＰＵ使用率を「ｃｕｓｊ」、メモリ使用率を「ｍｕｓｊ」、ネットワーク使用率を「ｎｕｓｊ」として表す場合がある。ここで、「ｊ」は時刻を表している。図５では、使用率として現在の使用率のみを記載しているが、実際には、過去の使用率も時刻毎に格納されている。ただし、本実施例では２４時間前までの使用率を利用するので、仮想リソース監視部１０４は、仮想リソース表１１４に現在から２４時間前までの各時刻の使用率を登録している。
【００５１】
ネットワーク監視部１０１は、スイッチ２において転送されるデータを監視する。そして、ネットワーク監視部１０１は、転送される各データの通信元及び通信先の仮想マシン４の情報を取得する。ここで、ネットワーク監視部１０１は、同一の物理マシン３内に配置された仮想マシン４同士の通信が発生した場合のデータの通信元及び通信先の仮想マシン４の情報も、スイッチ２経由で取得する。
【００５２】
ネットワーク監視部１０１は、取得した仮想マシン４の間の通信における通信元の仮想マシン４の情報と通信先の仮想マシン４の情報とを対応付けて仮想マシン通信表１１１を作成する。そして、ネットワーク監視部１０１は、作成した仮想マシン通信表１１１を記憶部１１０に格納する。  
【００５３】
ここで、例えば、図６に示すような構成の場合で説明する。図６は、物理マシンに配置された仮想マシンの一例を示す図である。
【００５４】
図６では、物理マシン３Ａ〜３Ｆの６台の物理マシンが配置されている。そして、物理マシン３Ａに、仮想マシン＃１及び＃２が搭載されている。また、物理マシン３Ｂに、仮想マシン＃３が配置されている。また、物理マシン３Ｄに、仮想マシン＃４が配置されている。また、物理マシン３Ｅに、仮想マシン＃５及び＃６が配置されている。
【００５５】
図６の状態で、ネットワーク監視部１０１は、仮想マシン＃１〜＃６のそれぞれの間の通信を監視し、仮想マシン＃１〜＃６の間の通信における通信元と通信先の情報を取得する。そして、ネットワーク監視部１０１は、取得した通信元と通信先の情報を用いて、図７に示す、仮想マシン通信表１１１を作成し記憶部１１０へ格納する。図７は、仮想マシン通信表の一例の図である。
【００５６】
図７に示すように、仮想マシン通信表１１１は、仮想マシン＃１〜＃６のそれぞれを通信元とする通信においてどの仮想マシン４が通信先となったかを表示している。例えば、仮想マシン＃１を通信元とする通信では、仮想マシン＃４及び＃５が通信先とされている。
【００５７】
また、ネットワーク監視部１０１は、ネットワークトラフィックの負荷を監視している。そして、ネットワークワークトラフィックの負荷が予め決められた閾値を超えた場合、ネットワーク監視部１０１は、仮想マシン４の再配置を移行制御部１０５へ指示する。
【００５８】
図３に戻って説明を続ける。仮想マシン群管理部１０２は、記憶部１１０に格納されている仮想マシン通信表１１１を用いて、通信の送信先と送信元となった仮想マシン４を組み合わせて仮想マシン群を作成する。そして、仮想マシン群管理部１０２は、作成した仮想マシン群を表す仮想マシン群表１１２を作成して、記憶部１１０へ格納する。この仮想マシン群管理部１０２が、「群作成部」の一例にあたる。
【００５９】
例えば、図６の構成で、図７の仮想マシン通信表１１１がネットワーク監視部１０１により作成された場合、仮想マシン群管理部１０２は、通信元である仮想マシン＃１と通信先である仮想マシン＃４及び＃５を組み合わせる。さらに、仮想マシン群管理部１０２は、仮想マシン＃１，＃４及び＃５と通信する他のマシンが無いかを検出する。通信を行う他のマシンがない場合には、仮想マシン群管理部１０２は、仮想マシン＃１，＃４及び＃５を１つの仮想マシン群とする。これに対して、通信を行う他のマシンが有る場合、仮想マシン群管理部１０２は、そのマシンを仮想マシン＃１，＃４及び＃５と組み合わせる。このようにして、仮想マシン群管理部１０２は、通信が発生する仮想マシン４の全ての組を組み合わせて一つの群を作成する。本実施例では、仮想マシン群管理部１０２は、仮想マシン＃１，＃４及び＃５により１つの仮想マシン群であるＡ群を作成する。
【００６０】
同様に、仮想マシン群管理部１０２は、全ての仮想マシン＃１〜＃６がいずれかの群に属するようになるまで、群を作成する。そして、仮想マシン群管理部１０２は、図８に示す仮想マシン群表１１２を作成し記憶部１１０へ格納する。図８は、仮想マシン群表の一例の図である。ここでは、仮想マシン群管理部１０２は、仮想マシン群としてＡ群、Ｂ群及びＣ群を生成する。Ａ群には、仮想マシン＃１，＃４及び＃５が含まれる。また、Ｂ群には、仮想マシン＃２が含まれる。また、Ｃ群には、仮想マシン＃３及び＃６が含まれる。
【００６１】
ここで、本実施例では、仮想マシン群管理部１０２が通信状態を確認して、通信を行っている仮想マシン４同士を組み合わせて仮想マシン群を作成しているが、仮想マシン群の作成方法はこれに限らない。例えば、情報処理システムの管理者が、１つのサービスを提供する仮想マシン４をまとめて仮想マシン群として予め登録しておいてもよい。また、情報処理システムの管理者が、同じＶＬＡＮ（Virtual  Local  Area  Network）の識別情報を有する仮想マシン４をまとめて仮想マシン群として予め登録しておいてもよい。
【００６２】
図３に戻って説明を続ける。移行制御部１０５は、ネットワークトラフィックの負荷が閾値を超えた場合、仮想マシン４の再配置実行の指示をネットワーク監視部１０１から受ける。また、移行制御部１０５は、物理マシンのリソースが不足した場合、例えば、ＣＰＵ、メモリ又はネットワーク帯域などの使用率が閾値を超えた場合、仮想マシン４の再配置実行の指示を物理リソース監視部１０３から受ける。移行制御部１０５は、仮想マシン４の再配置実行の指示を受けると、以下の処理を行う。
【００６３】
移行制御部１０５は、各物理マシン３のＣＰＵコア数、クロック数、メモリ容量、回線速度を物理リソース表１１３から取得する。
【００６４】
次に、移行制御部１０５は、次の数式（１）を用いて各物理マシン３の許容量を算出する。ここで、許容量とは、搭載された仮想マシン４による負荷に対して、どのくらいの負荷まで耐えられるかを表す値である。数式（１）は、第ｉ物理マシンの負荷度ｙｉ（ｉ＝１，２，・・・，ｎ）を算出するための式である。
【００６５】
【数１】
2014167713.tif 000003
【００６６】
ここで、ｋαはＣＰＵの重み付けであり、ｋβはメモリの重み付けであり、ｋγはネットワークの重み付けである。本実施例では、各リソースの負荷全体に対する評価を一致させるため、以下の数式（２）〜（４）のように重み付けを行う。
【００６７】
【数２】
2014167713.tif 000004
【００６８】
【数３】
2014167713.tif 000005
【００６９】
【数４】
2014167713.tif 000006
【００７０】
数式（２）〜（４）は、各リソースの能力を数値として足し合わせ全体のリソースの能力を求め、全体のリソースの能力と各リソースの比を求めることで、全体のリソースに対して各リソースがどの程度の影響を有するかを表す式となっている。
【００７１】
例えば、図４の物理リソース表１１３及び図５の仮想リソース表１１４を用いた場合、ｋα＝６．６７・・・≒６、ｋβ＝１．１８・・・≒１、ｋγ＝１９４．４７・・・≒１９４となる。
【００７２】
さらに、移行制御部１０５は、各仮想マシン４のＣＰＵコア数、クロック数、メモリ容量、回線速度、ＣＰＵ使用率、メモリ使用率及びネットワーク帯域使用率を仮想リソース表１１４から取得する。ここで、本実施例では、移行制御部１０５は、ＣＰＵ使用率、メモリ使用率及びネットワーク帯域使用率は、最も新しい使用率から２４時間前の使用率までの各時刻の使用率を取得する。
【００７３】
次に、移行制御部１０５は、次の数式（５）を用いて各仮想マシン４の各時刻における負荷度を算出する。数式１は、第Ｓ仮想マシンの負荷度ｘｓｊ（ｓ＝１，２，・・・Ｎ）を算出するための式である。本実施例では１時間に１回使用率を計算しているので、ｊは、１〜２４のいずれかである。
【００７４】
【数５】
2014167713.tif 000007
【００７５】
例えば、図４の物理リソース表１１３を用いて図４における第１物理マシンの許容量ｙ１を算出する場合を説明する。この場合、ｙ１＝６＊６＊３＋１＊９６＋１９４＊０．１となる。したがって、移行制御部１０５は、図４における第１物理マシンの許容量ｙ１を、ｙ１≒２２３と算出する。
【００７６】
また、例えば、図５の仮想リソース表１１４を用いて図５における第１仮想マシンの負荷度ｘ１を算出する場合を説明する。この場合、図４のタイミングでの負荷度は、ｘ１＝６＊１＊１＊０．８＋１＊２＊０．６＋１９４＊０．１＊０．８となる。したがって、移行制御部１０５は、図５における第１仮想マシンの許容量ｘ１を、ｘ１≒２１と算出する。
【００７７】
以上のようにして、移行制御部１０５は、各物理マシン３の許容量を求める。また、移行制御部１０５は、各仮想マシン４の時間毎の負荷度を求める。
【００７８】
次に、移行制御部１０５は、記憶部１１０に格納されている仮想マシン群表１１２から各仮想マシン群に含まれる仮想マシン４の情報を取得する。そして、移行制御部１０５は、仮想マシン群毎に、算出した各仮想マシン４の時間毎の負荷度の中からその群に含まれる各仮想マシン４の時間毎の負荷度を取得する。そして、移行制御部１０５は、各仮想マシン群に含まれる仮想マシン４の時間毎の負荷度を合算し、各仮想マシン群の負荷総計を算出する。
【００７９】
例えば、図６のような構成で、図８のような仮想マシン群表１１２が仮想マシン群管理部１０２によって作成された場合で説明する。ここでは、図９を参照して、Ａ群の負荷総計の算出を例に説明する。図９は、Ａ群の負荷総計の算出を説明するための図である。図９のグラフ５０１〜５０３及び５１１は、横軸で時間を表し、縦軸で負荷を表している。この場合、移行制御部１０５は、仮想リソース表１１４の値及び数式（５）を用いて、Ａ群に含まれる仮想マシン＃１，＃４及び＃５の時間毎の負荷度を求める。
【００８０】
例えば、移行制御部１０５は、仮想マシン＃１の時間毎の負荷度として、図９のグラフ５０１で表される負荷度を取得する。また、移行制御部１０５は、仮想マシン＃４の時間毎の負荷度として、図９のグラフ５０２で表される負荷度を取得する。また、移行制御部１０５は、仮想マシン＃５の時間毎の負荷度として、図９のグラフ５０３で表される負荷度を取得する。
【００８１】
そして、移行制御部１０５は、Ａ群に属する仮想マシン＃１，＃４及び＃５の時間毎の負荷度を時間毎に足し合わせて、グラフ５１１で表されるＡ群の負荷総計ＺＡを求める。
【００８２】
続いて、移行制御部１０５は、図１０のグラフ５１２で表されるＢ群の負荷総計ＺＢ及びグラフ５１３で表されるＣ群の負荷総計ＺＣを算出する。図１０は、各仮想マシン群の負荷総計を表す図である。図１０のグラフ５１１〜５２１は、横軸で時刻を表し、縦軸で負荷を表している。
【００８３】
その後、移行制御部１０５は、各仮想マシン群の間の相関係数を次の数式（６）を用いて求める。数式６は、Ａ群とＢ群との相関係数を表す式である。
【００８４】
【数６】
2014167713.tif 000008
【００８５】
ここで、小文字の「ｚ」は、相加平均を表している。
【００８６】
仮想マシン群であるＡ群〜Ｃ群が図１０のような負荷総計を有している場合、図１１に示すように、各仮想マシン群間の相関係数が求められる。図１１は、仮想マシン群間の相関係数の一例を示す図である。
【００８７】
移行制御部１０５は、求めた相関係数から、負の相関が高い仮想マシン群の組合せを抽出する。相関係数は、正の値の絶対値が大きくなるほど負の相関は低くなり、負の値の絶対値が大きくなるほど負の相関が高くなる。そこで、移行制御部１０５は、求めた相関係数の中で最も絶対値の大きい負の値を特定し、その特定した値の相関関係を有する仮想マシン群の組合せを抽出する。例えば、図１１のように各仮想マシン群間の相関係数が求まった場合、欄６０１及び６０２の「−０．４」が最も絶対値が大きい負の値である。そこで、移行制御部１０５は、欄６０１及び６０２の相関係数を有する仮想マシン群の組合せとして、Ａ群とＢ群の組合せを抽出する。
【００８８】
そして、移行制御部１０５は、負の相関が高い仮想マシン４の組合せを新たな仮想マシン群として再形成する。例えば、移行制御部１０５は、Ａ群とＢ群を組み合わせて新たなＡ＋Ｂ群を作成し、Ｃ群はそのままとする。
【００８９】
ここで、仮想マシン群の数が物理マシンの数よりも多い場合、移行制御部１０５は、新たな仮想マシン群の負荷総計を用いて、再度仮想マシン群間の相関係数を求め、負の相関が高い仮想マシン群同士を組み合わせて新たな仮想マシン群を作成する。
【００９０】
移行制御部１０５は、仮想マシン群の数が物理マシンの数以下になった時点で、各仮想マシン群の負荷総計を求める。そして、移行制御部１０５は、算出した各物理マシン３の許容量に収まるように、仮想マシン群の物理マシン３への配置を決定する。ここで、移行制御部１０５は、同じ仮想マシン群に属する仮想マシン４はなるべく同じ物理マシン３に配置されるように配置を決定する。そして、同じ仮想マシン群に属する仮想マシン４が１台の物理マシン３に搭載できない場合、移行制御部１０５は、許容量に余裕のある物理マシン３に余った仮想マシン４を配置する。
【００９１】
移行制御部１０５は、物理マシン３への各仮想マシン４の配置を決定すると、決定した物理マシン３への各仮想マシン４の配置を移行実施部１０６に通知する。この移行制御部１０５が、「平準化部」の一例にあたる。
【００９２】
ここで、本実施例では、移行制御部１０５は、ネットワークトラフィックの負荷の超過及び物理マシン３のリソースの不足をトリガとして、仮想マシン４の再配置を行っているが、再配置のタイミングはこれに限らない。例えば、移行制御部１０５は、１月や１年など予め決められた期間で定期的に再配置を行ってもよい。また、移行制御部１０５は、情報システムの構成の変更が発生した場合に再配置を行ってもよい。
【００９３】
また、本実施例では、移行制御部１０５は、仮想マシン４の負荷情報として２４時間のうちの１時間毎の負荷情報を用いて仮想マシン４の配置を決定したが、利用する負荷情報の期間や間隔はこれに限らない。例えば、移行制御部１０５は、１年間又は１時間の間の負荷情報を用いて仮想マシン４の配置を決定してもよい。また、移行制御部１０５は、３０分毎の負荷情報を用いて仮想マシン４の配置を決定してもよい。ただし、移行制御部１０５が利用する負荷情報の間隔に合わせて、物理マシン３の負荷計測部３０１は使用率の計測を行い、仮想リソース監視部１０４は計測結果を取得することが好ましい。
【００９４】
移行実施部１０６は、物理マシン３への各仮想マシン４の配置の通知を移行制御部１０５から受信する。そして、移行実施部１０６は、仮想マシン４に対してマイグレーションを行い、移行制御部１０５により指定された物理マシン３に各仮想マシン４を再配置する。この移行実施部１０６が、「割当部」の一例にあたる。
【００９５】
次に、図１２を参照して、本実施例に係る情報処理システムにおける仮想マシン４の再配置の処理を説明する。図１２は、実施例に係る情報処理システムにおける仮想マシンの再配置の処理のフローチャートである。
【００９６】
ネットワーク監視部１０１は、仮想マシン４の間の通信状態をスイッチ２から取得する（ステップＳ１）。
【００９７】
そして、ネットワーク監視部１０１は、取得した通信状態から仮想マシン４の間の通信における通信元及び通信先の情報を取得する。次に、ネットワーク監視部１０１は、仮想マシン４の間の通信の通信元と通信先との関係を表す仮想マシン通信表１１１を作成する(ステップＳ２)。ネットワーク監視部１０１は、作成した仮想マシン通信表１１１を記憶部１１０へ格納する。
【００９８】
仮想マシン群管理部１０２は、仮想マシン通信表１１１に記載されている通信元及び通信先の情報から、通信を行う仮想マシン４を組み合わせて仮想マシン群を作成する。そして、仮想マシン群管理部１０２は、各仮想マシン群に属する仮想マシン４を表す仮想マシン群表１１２を作成する（ステップＳ３）。仮想マシン群管理部１０２は、作成した仮想マシン群表１１２を記憶部１１０へ格納する。
【００９９】
物理リソース監視部１０３は、物理マシン３の性能を表すＣＰＵ、メモリ及びネットワークの情報を物理マシン３の情報格納部３０２から取得する。また、仮想リソース監視部１０４は、仮想マシン４の性能を表す仮想マシン４に割り当てられたＣＰＵ、メモリ及びネットワークの情報を仮想マシン４の情報格納部４３から取得する（ステップＳ４）。
【０１００】
物理リソース監視部１０３は、取得した情報からＣＰＵコア数及びクロック数、メモリ容量、並びに、回線速度の情報を抽出し、物理リソース表１１３を作成する。そして、物理リソース監視部１０３は、物理リソース表１１３を記憶部１１０に格納する。また、仮想リソース監視部１０４は、取得した情報から仮想マシン４に割り当てられているＣＰＵコア数及びクロック数、メモリ容量並びに回線速度を抽出し、仮想リソース表１１４を作成する。そして、仮想リソース監視部１０４は、仮想リソース表１１４を記憶部１１０に格納する（ステップＳ５）。
【０１０１】
次に、仮想リソース監視部１０４は、所定時間毎に仮想マシン４に割当てられたＣＰＵ、メモリ及びネットワーク帯域の使用率を仮想マシン４の情報格納部４３から取得する（ステップＳ６）。
【０１０２】
そして、仮想リソース監視部１０４は、時間毎のＣＰＵの使用率、メモリの使用率及びネットワーク帯域使用率を用いて仮想リソース表１１４を更新する（ステップＳ７）。
【０１０３】
移行制御部１０５は、ネットワーク監視部１０１又は物理リソース監視部１０３から仮想マシン４の再配置の指示を受けたか否かを判定する（ステップＳ８）。ネットワーク監視部１０１は、ネットワークトラフィックの負荷が閾値を超えた場合に、仮想マシン４の再配置の指示を移行制御部１０５へ通知する。また、物理リソース監視部１０３は、物理リソースが不足した場合に、仮想マシン４の再配置の指示を移行制御部１０５へ通知する。再配置の指示がない場合（ステップＳ８：否定）、移行制御部１０５は、ステップＳ６へ戻る。
【０１０４】
これに対して、再配置の指示があった場合（ステップＳ８：肯定）、移行制御部１０５は、物理リソース表１１３の情報及び数式（１）を用いて各物理マシン３の許容量を算出する（ステップＳ９）。
【０１０５】
次に、移行制御部１０５は、仮想リソース表１１４の情報及び数式（５）を用いて各仮想マシン４の負荷総計を算出する（ステップＳ１０）。
【０１０６】
次に、移行制御部１０５は、算出した負荷総計及び数式（６）を用いて、仮想マシン群間の相関係数を算出する（ステップＳ１１）。
【０１０７】
そして、移行制御部１０５は、負の相関が高い仮想マシン群を組合せて新たな仮想マシン群を作成する（ステップＳ１２）。
【０１０８】
移行制御部１０５は、仮想マシン群の数が物理マシン３の数以下であるか否かを判定する（ステップＳ１３）。仮想マシン群の数が物理マシン３の数より多い場合（ステップＳ１３：否定）、移行制御部１０５は、ステップＳ１０へ戻る。
【０１０９】
これに対して、仮想マシン群の数が物理マシン３の数以上の場合（ステップＳ１３：肯定）、移行制御部１０５は、作成した各仮想マシン群の負荷総計が物理マシンの許容量内に納まるように仮想マシン４の物理マシン３への配置を決定する。そして、移行制御部１０５は、決定した仮想マシン４の物理マシン３への配置を移行実施部１０６へ通知する。移行実施部１０６は、移行制御部１０５から通知された仮想マシン４の配置となるように、仮想マシン４のマイグレーションを行い、仮想マシン４を再配置する（ステップＳ１４）。
【０１１０】
図１３は、実施例に係る管理サーバによる負荷の平準化の効果を説明するための図である。
【０１１１】
ここでは、例えば、情報処理システム内に物理マシン３１１〜３１３が配置されている場合で説明する。そして、図１３の各物理マシン３１１〜３１３の中に記載されている枠は仮想マシン４を表し、枠内の数字は、その仮想マシン４が属する仮想マシン群を表している。例えば、物理マシン３１１には、第１群に属する仮想マシン４が１台、第２群に属する仮想マシン４が１台、第３群に属する仮想マシン４が１台、第５群に属する仮想マシン４が１台搭載されている。そして、グラフ７０１〜７０３は、物理マシン３１１〜３１３ぞれぞれの負荷の遷移を表している。グラフ７０１〜７０３は、横軸が時間を表し、縦軸が負荷を表している。
【０１１２】
そして、本実施例に係る管理サーバ１により、仮想マシン４の再配置が行われた後の状態が、物理マシン３２１〜３２３である。物理マシン３２１〜３２３は、それぞれ物理マシン３１１〜３１３に対応している。そして、再配置後の物理マシン３１１〜３１３の負荷の遷移を表すグラフが、グラフ７１１〜７１３である。管理サーバ１により負荷総計の負の相関が高い管理マシン群同士が組み合わせられるので、グラフ７１１〜７１３に示すように、物理マシン３２１〜３２３のいずれにおいても、各時間帯における負荷が平準化され突出したピークを有さなくなる。これにより、物理マシン３２１〜３２３は安定して稼動することができる。
【０１１３】
物理マシン３２１〜３２３では、同じ仮想マシン群に属する仮想マシン４が同じ物理マシンに配置されている。これにより、物理マシン３２１〜３２３のそれぞれの間での通信を抑えることができ、ネットワークの負荷を低減することができる。
【０１１４】
以上に説明したように、本実施例に係る管理サーバは、相互に通信を行う仮想マシン４を組み合わせて仮想マシン群を作成し、作成した仮想マシン群間の相関関係を求め、負の相関が高い群を組み合わせて１つの物理マシンに配置する。これにより、物理マシン間の通信を押えることができ、ネットワークの負荷や物理マシンの処理負荷を軽減することができる。また、各物理マシンの負荷を平準化することができ、物理マシンが有するリソースを有効利用することができる。このように、本実施例に係る管理サーバは、システム全体の負荷の上昇を抑えつつ、各物理マシンの負荷の平準化に寄与することができる。
【０１１５】
図１４は、管理サーバのハードウェア構成図である。図１４に示すように、管理サーバ１は、ＣＰＵ９０１、メモリ９０２、ハードディスク９０３及びネットワークコントローラ９０４を有している。
【０１１６】
メモリ９０２、ハードディスク９０３及びネットワークコントローラ９０４は、ＣＰＵ９０１にバスで接続されている。
【０１１７】
ネットワークコントローラ９０４は、図２に例示したネットワークインタフェース１２及び１３の機能を実現する。
【０１１８】
ハードディスク９０３は、図３に例示した記憶部１１０の機能などを実現する。すなわち、ハードディスク９０３は、仮想マシン通信表１１１、仮想マシン群表１１２、物理リソース表１１３及び仮想リソース表１１４を記憶している。
【０１１９】
また、ハードディスク９０３は、図３に例示した、ネットワーク監視部１０１、仮想マシン群管理部１０２、物理リソース監視部１０３、仮想リソース監視部１０４、移行制御部１０５及び移行実施部１０６の機能を実現するプログラムなど各種プログラムを記憶している。
【０１２０】
ＣＰＵ９０１及びメモリ９０２は、図３に例示した、ネットワーク監視部１０１、仮想マシン群管理部１０２、物理リソース監視部１０３、仮想リソース監視部１０４、移行制御部１０５及び移行実施部１０６の機能を実現する。具体的には、ＣＰＵ９０１は、ハードディスク９０３に格納された各種プログラムを読みだす。そして、ＣＰＵ９０１は、図３に例示した、ネットワーク監視部１０１、仮想マシン群管理部１０２、物理リソース監視部１０３、仮想リソース監視部１０４、移行制御部１０５及び移行実施部１０６の機能を実現するプロセスをメモリ９０２上に展開し、実行する。
【０１２１】
また、物理マシン３も、一例として、図１４に示す管理サーバ１と同様のハードウェア構成であってもよい。
【０１２２】
その場合、ＣＰＵ９０１及びメモリ９０２は、図３に例示した仮想マシン４及び負荷計測部３０１の機能などを実現する。また、ハードディスク９０３は、情報格納部４３及び情報格納部３０２の機能などを実現する。
【符号の説明】
【０１２３】
１  管理サーバ
２  スイッチ
３  物理マシン
４  仮想マシン
４３  情報格納部
１０１  ネットワーク監視部
１０２  仮想マシン群管理部
１０３  物理リソース監視部
１０４  仮想リソース監視部
１０５  移行制御部
１０６  移行実施部
１１０  記憶部
１１１  仮想マシン通信表
１１２  仮想マシン群表
１１３  物理リソース表
１１４  仮想リソース表
３０１  負荷計測部
３０２  情報格納部
【図１】
2014167713.tif 000009
【図２】
2014167713.tif 000010
【図３】
2014167713.tif 000011
【図４】
2014167713.tif 000012
【図５】
2014167713.tif 000013
【図６】
2014167713.tif 000014
【図７】
2014167713.tif 000015
【図８】
2014167713.tif 000016
【図９】
2014167713.tif 000017
【図１０】
2014167713.tif 000018
【図１１】
2014167713.tif 000019
【図１２】
2014167713.tif 000020
【図１３】
2014167713.tif 000021
【図１４】
2014167713.tif 000022