(57)【要約】【課題】リソース使用量が不足すると予測された物理サーバが今後動作不安定になることを抑制する。【解決手段】仮想マシン移動制御を行うプログラムは、管理サーバ１に、複数の仮想マシンを搭載する物理サーバについて、所定期間内でのリソース不足を予測し、該予測したリソース不足の時点にリソース不足が予測された物理サーバに搭載されている仮想マシンから他の物理サーバに移動することによりリソース不足を解消可能な仮想マシンを特定し、該特定した仮想マシンの所定期間内でのリソースの使用量およびリソースの使用量に対応する時点に基づいて、特定した仮想マシンを他の物理サーバに移動する処理を実行させる。【選択図】図２
2014006739.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、
該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、
該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する
処理を実行させることを特徴とするプログラム。
【請求項２】
該特定する処理は、複数の仮想マシンの移動によってリソース不足が解消される場合、リソース不足が解消される複数の仮想マシンの数が最小となる仮想マシンの組合せを特定することを特徴とする請求項１に記載のプログラム。
【請求項３】
該特定する処理は、さらに、前記組合せが複数ある場合、リソース不足が予測された物理マシンのリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシンを含む組合せを特定することを特徴とする請求項２に記載のプログラム。
【請求項４】
該移動する処理は、該特定した仮想マシンのリソースの使用量が最小になる時点で、当該仮想マシンを他の物理マシンに移動することを特徴とする請求項３に記載のプログラム。
【請求項５】
該移動する処理は、さらに、該特定した仮想マシンを移動した場合のリソースの使用量がリソース不足と判定される上限値を超えず且つ前記リソースの使用量が当該上限値に最も近い物理マシンを移動先として決定し、決定した移動先に該特定した仮想マシンを移動することを特徴とする請求項４に記載のプログラム。
【請求項６】
複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測する予測部と、
前記予測部によって予測されたリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定する特定部と、
前記特定部によって特定された仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する移動部と
を有することを特徴とする管理サーバ。
【請求項７】
コンピュータが、
複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、
該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、
該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する
各処理を実行することを特徴とする仮想マシン移動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、管理サーバおよび仮想マシン移動制御方法に関する。
【背景技術】
【０００２】
従来、サーバのマシンリソースを、ハイパーバイザが管理し、１台のサーバ上に複数の仮想マシンを並行して稼働させる仮想化技術が知られている。かかる仮想化技術では、サーバのマシンリソースをサーバに効率良く利用させるために、サーバを管理する管理サーバが、実行中の仮想マシンを、構築されているサーバから別のサーバに無停止で移動させる。これを「ライブマイグレーション」と呼ぶ。
【０００３】
ライブマイグレーションでは、管理サーバが移動元のメモリイメージを移動先へコピーする。実行中の仮想マシンのメモリは変更され続けているので、厳密に言えば、管理サーバがコピーしているいずれかのタイミングで、仮想マシンは一時的にダウン（停止）することは避けられない。この一時的にダウンする時間（「ダウンタイム」という）は、通常数秒であるが、移動する仮想マシンのリソースの使用状況に依存し、リソースを大量に使用しているときに移動すると数秒を超える長時間となってしまう。
【０００４】
そこで、ライブマイグレーションによる長時間のダウンの発生を回避する技術が開示されている。かかる技術では、管理サーバが、高次方程式を使用して今後の物理サーバのリソース使用量を予測する。管理サーバは、リソース不足の発生を予測した場合、リソース使用量が負荷に関する移動の上限を定めた移動閾値を超えない時間帯が存在し、かつ、移動がなされる移動仮想マシンの移動時間がこの時間帯に含まれれば、この時間帯において移動仮想マシンを移動する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１７７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、物理サーバの今後のリソース使用量が不足すると予測されても、物理サーバ上の仮想マシンのリソース使用量が移動閾値を下回る時間帯が存在しない場合、物理サーバ上の仮想マシンの移動が制限される。この結果、リソース使用量が不足すると予測された物理サーバは、今後動作不安定になる可能性があるという問題がある。
【０００７】
１つの側面では、リソース使用量が不足すると予測された物理サーバが、今後動作不安定になることを抑制することを目的とする。
【課題を解決するための手段】
【０００８】
一態様のプログラムは、コンピュータに、複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する処理を実行させる。
【発明の効果】
【０００９】
本願の開示するプログラムの１つの態様によれば、リソース使用量が不足すると予測された物理サーバが、今後動作不安定になることを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る情報処理システムの全体を示す図である。
【図２】図２は、実施例に係る管理サーバの構成を示す機能ブロック図である。
【図３】図３は、性能情報ＤＢのデータ構造の一例を示す図である。
【図４】図４は、構成情報ＤＢのデータ構造の一例を示す図である。
【図５】図５は、仮想マシン予測情報テーブルのデータ構造の一例を示す図である。
【図６】図６は、物理サーバ予測情報テーブルのデータ構造の一例を示す図である。
【図７】図７は、マイグレーション情報ＤＢのデータ構造の一例を示す図である。
【図８Ａ】図８Ａは、直近のサンプリングの差分絶対和の算出例を示す図である。
【図８Ｂ】図８Ｂは、曜日のサンプリングの差分絶対和の算出例を示す図である。
【図８Ｃ】図８Ｃは、日にちのサンプリングの差分絶対和の算出例を示す図である。
【図９】図９は、予測リソース使用量の算出例を示す図である。
【図１０】図１０は、予測性能情報作成部における予測性能情報の作成フローを説明する図である。
【図１１】図１１は、マイグレーション元決定部におけるマイグレーション元の決定を説明する図である。
【図１２】図１２は、マイグレーション元決定部におけるマイグレーション情報ＤＢへの追加例を示す図である。
【図１３】図１３は、マイグレーション先決定部におけるマイグレーション情報ＤＢからの検索例を示す図である。
【図１４】図１４は、マイグレーション先決定部における差分和を説明する図である。
【図１５】図１５は、マイグレーション先決定部におけるマイグレーション情報ＤＢへの追加例を示す図である。
【図１６】図１６は、マイグレーション実行依頼部におけるマイグレーション情報ＤＢからの検索例を示す図である。
【図１７】図１７は、マイグレーション実行依頼部によって行われるマイグレーション情報ＤＢの実行状態の遷移を示す図である。
【図１８】図１８は、実施例に係るマイグレーション制御部のメイン処理の手順を示すフローチャートである。
【図１９】図１９は、実施例に係る予測性能情報作成処理の手順を示すフローチャートである。
【図２０】図２０は、実施例に係るリソース不足予測処理の手順を示すフローチャートである。
【図２１】図２１は、実施例に係るマイグレーション元決定処理の手順を示すフローチャートである。
【図２２】図２２は、仮想マシンの移動組合せを特定する処理の手順を示すフローチャートである。
【図２３】図２３は、実施例に係るマイグレーション先決定処理の手順を示すフローチャートである。
【図２４】図２４は、物理サーバの予測リソース使用量を取得する処理の手順を示すフローチャートである。
【図２５】図２５は、実施例に係るマイグレーション実行依頼処理の手順を示すフローチャートである。
【図２６】図２６は、マイグレーション制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するプログラム、管理サーバおよび仮想マシン移動制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［実施例に係る情報処理システムの構成］
図１は、実施例に係る情報処理システムの全体を示す図である。図１に示すように、情報処理システム９は、管理サーバ１と、複数の物理サーバ２とを有する。物理サーバ２は、１つのハイパーバイザ２１と複数の仮想マシン２２とを備える。ハイパーバイザ２１は、仮想マシン２２を動かすための必要なソフトウェアであり、物理サーバ２に搭載されているＣＰＵ（Central  Processing  Unit）やメモリ等の資源を各仮想マシン２２に割り当てる。
【００１３】
管理サーバ１は、複数の仮想マシン２２を備える物理サーバ２のリソース不足になる時点を予測し、予測した時点が来る前、且つシステムのダウンタイムを最小化できるタイミングを見つけ出し、見つけ出したタイミングで自動的にライブマイグレーションする。ライブマイグレーションするタイミングは、例えば移動する仮想マシンのリソース使用量が最小になる時点である。また、移動する仮想マシンは、リソース使用量が最小になる時点が最早の時点の仮想マシンであることが望ましい。なお、ライブマイグレーションは、以降、「マイグレーション」と略記するものとする。
【００１４】
［実施例に係る管理サーバの構成］
管理サーバ１の構成について、図２を参照して説明する。図２は、実施例に係る管理サーバの構成を示す機能ブロック図である。図２に示すように、管理サーバ１は、記憶部１１と、性能情報収集部１２と、構成情報収集部１３と、マイグレーション制御部１４とを有する。
【００１５】
記憶部１１は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部１１は、性能情報ＤＢ（DataBase）１１１と、予測性能情報ＤＢ１１２と、構成情報ＤＢ１１３と、マイグレーション情報ＤＢ１１４とを有する。
【００１６】
性能情報ＤＢ１１１は、ハイパーバイザ２１から仮想マシン２２毎に収集された実際の性能情報を記憶する。ここでいう性能情報とは、ＣＰＵ使用量（ＭＨｚ）であったり、メモリ使用量（ｂｙｔｅ）であったり、ディスク使用量（ｂｙｔｅ／ｓｅｃ）であったりするが、これらに限定されない。すなわち、性能情報とは、物理サーバ２のリソースを仮想マシン２２毎に共有して使用できる使用量であれば良い。なお、実施例では、ＣＰＵ使用量を性能情報として、性能情報ＤＢ１１１に収集されるとする。また、ＣＰＵ使用量は、以降、リソース使用量と同義に扱う。そして、性能情報ＤＢ１１１は、後述する性能情報収集部１２によって生成される。
【００１７】
予測性能情報ＤＢ１１２は、仮想マシン予測情報テーブル１１２１と物理サーバ予測情報テーブル１１２２とを有する。仮想マシン予測情報テーブル１１２１は、仮想マシン２２毎に、予測開始日時から予測終了日時までの予測期間内で予測されるリソース使用量を記憶する。物理サーバ予測情報テーブル１１２２は、物理サーバ毎に、今後予測されるリソース使用量を記憶する。なお、予測性能情報ＤＢ１１２は、後述する予測性能情報作成部１４２によって生成される。
【００１８】
構成情報ＤＢ１１３は、システムの構成情報を記憶する。構成情報には、物理サーバ２と仮想マシン２２との対応関係と、物理サーバ２のリソースの上限値とが示される。マイグレーション情報ＤＢ１１４は、マイグレーションに関する情報を記憶する。マイグレーションに関する情報には、例えばマイグレーションする日時、マイグレーション元の物理サーバと仮想マシン、マイグレーション先の物理サーバおよびマイグレーションの実行状態が含まれる。なお、構成情報ＤＢ１１３は、後述する構成情報収集部１３によって生成される。また、各ＤＢのデータ構造は、後述するものとする。
【００１９】
性能情報収集部１２は、ハイパーバイザ２１から定期的に、ハイパーバイザ２１が管理する仮想マシンの性能情報を収集し、収集した性能情報を性能情報ＤＢ１１１に記録する。例えば、性能情報収集部１２は、ハイパーバイザ２１から５分毎に、ハイパーバイザ２１が管理しているリソース使用量を収集し、収集したリソース使用量を性能情報ＤＢ１１１に記録する。
【００２０】
ここで、性能情報ＤＢ１１１のデータ構造について、図３を参照して説明する。図３は、性能情報ＤＢのデータ構造の一例を示す図である。図３に示すように、性能情報ＤＢ１１１は、収集日時１１１ａと、物理サーバ名１１１ｂと、仮想マシン名１１１ｃと、ＣＰＵ使用量１１１ｄとを対応付けて記憶する。収集日時１１１ａは、性能情報としてＣＰＵ使用量を収集した日時を示す。物理サーバ名１１１ｂは、物理サーバの名称を示す。仮想マシン名１１１ｃは、仮想マシンの名称を示す。ＣＰＵ使用量１１１ｄは、性能情報としてのＣＰＵの使用量を示す。一例として、収集日時１１１ａが「２０１１／１０／１１  ００：００：００」である場合、物理サーバ名１１１ｂとして「Ｓｅｒｖｅｒ１」、仮想マシン名１１１ｃとして「Ｇｅｓｔ００１」、ＣＰＵ使用量１１１ｄとして「５００」と記憶している。すなわち、収集日時が「２０１１／１０／１１  ００：００：００」である場合に、物理サーバ「Ｓｅｒｖｅｒ１」の仮想マシン「Ｇｅｓｔ００１」では、ＣＰＵ使用量が「５００」ＭＨｚであったことを示している。
【００２１】
図２に戻って、構成情報収集部１３は、ハイパーバイザ２１から定期的に、ハイパーバイザ２１が管理する構成情報を収集し、収集した構成情報を構成情報ＤＢ１１３に記録する。例えば、構成情報収集部１３は、ハイパーバイザ２１から１時間毎に、ハイパーバイザ２１が管理している構成情報を収集し、収集した構成情報を構成情報ＤＢ１１３に記録する。
【００２２】
ここで、構成情報ＤＢ１１３のデータ構造について、図４を参照して説明する。図４は、構成情報ＤＢのデータ構造の一例を示す図である。図４に示すように、構成情報ＤＢ１１３は、物理サーバ名１１３ａと、ハイパーバイザが管理する仮想マシン名１１３ｂと、ＣＰＵ使用量の上限値１１３ｃとを対応付けて記憶する。物理サーバ名１１３ａは、物理サーバの名称を示す。ハイパーバイザが管理する仮想マシン名１１３ｂは、ハイパーバイザ２１が管理する仮想マシンの名称を示す。ＣＰＵ使用量の上限値１１３ｃは、物理サーバのＣＰＵ使用量の上限値を示す。一例として、物理サーバ名１１３ａが「Ｓｅｒｖｅｒ１」である場合、ハイパーバイザが管理する仮想マシン名１１３ｂを「Ｇｅｓｔ１−１、Ｇｅｓｔ１−２、Ｇｅｓｔ１−３」、ＣＰＵ使用量の上限値１１３ｃを「３００００」と記憶している。
【００２３】
図２に戻って、マイグレーション制御部１４は、マイグレーション制御に関する、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、マイグレーション制御部１４は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。また、マイグレーション制御部１４は、メイン処理部１４１と、予測性能情報作成部１４２とを有する。さらに、マイグレーション制御部１４は、リソース不足予測部１４３と、マイグレーション元決定部１４４と、マイグレーション先決定部１４５と、マイグレーション実行依頼部１４６とを有する。
【００２４】
メイン処理部１４１は、マイグレーション制御に関する各種処理のメインの処理部である。例えば、メイン処理部１４１は、定期的に、マイグレーションをスケジュールする。一例として、メイン処理部１４１は、５分毎に、マイグレーションをスケジュールする時刻か否かを判定する。そして、メイン処理部１４１は、マイグレーションをスケジュールする時刻であると判定した場合、マイグレーションをスケジュールする際に用いられる予測性能情報を作成すべく、後述する予測性能情報作成部１４２を呼び出す。一方、メイン処理部１４１は、マイグレーションをスケジュールする時刻でないと判定した場合、スケジュールされたマイグレーションの実行依頼をすべく、後述するマイグレーション実行依頼部１４６を呼び出す。
【００２５】
予測性能情報作成部１４２は、性能情報ＤＢ１１１に記憶された過去のリソース使用量を用いて、物理サーバ２上の仮想マシン２２毎に、リソース使用量の３種類のサンプリングを行う。例えば、１種類目のサンプリングでは、直近の数日間をサンプリング対象とし、「直近のサンプリング」という。２種類目のサンプリングは、サンプリングを行う日と同じ曜日の数日間をサンプリング対象とし、「曜日のサンプリング」という。３種類目のサンプリングは、サンプリングを行う日と同じ日にちの数日間をサンプリング対象とし、「日にちのサンプリング」という。そして、予測性能情報作成部１４２は、３種類のサンプリングについて、種類毎に定められたそれぞれのサンプリング対象のリソース使用量をサンプリングする。サンプリングするリソース使用量は、所定期間の複数時点のものである。但し、サンプリングを行う日数とサンプリングする所定期間は、いずれのサンプリングの種類でも同じとする。例えば、サンプリングを行う日が１１／１０（木）で、サンプリングを行う日数が３である場合、「直近のサンプリング」では、１１／９、１１／８、１１／７がサンプリング対象となる。「曜日のサンプリング」では、１１／３（木）、１０／２７（木）、１０／２０（木）がサンプリング対象となる。「日にちのサンプリング」では、１０／１０、９／１０、８／１０がサンプリング対象となる。
【００２６】
また、予測性能情報作成部１４２は、サンプリングした３種類のサンプリング毎に、バラツキの大きさを求める。バラツキの大きさを求める方法は、各サンプリング対象の同じ収集時点のリソース使用量を用いて差分絶対和を算出し、算出した収集時点毎の差分絶対和の合計値を算出する。算出した差分絶対和の合計値がサンプリング種類のバラツキの大きさとなる。なお、差分絶対和は、例えば画像の類似度の判定に用いられることが知られている。画像類似度の判定に用いられる場合、差分絶対和は、２つの画像の同じ座標の画素毎に求められる差分の絶対値を加算した値であり、値が小さい程２つの画像が類似しているとみなされる。予測性能情報作成部１４２では、各サンプリング対象におけるリソース使用量を時系列で配列化したものを差分絶対和の対象とし、差分絶対和を算出した合計値を使用して、３種類のそれぞれのサンプリングのバラツキの大きさを判定する。そして、予測性能情報作成部１４２は、３種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。特定したサンプリングの種類を用いて、予測性能情報作成部１４２が、仮想サーバ２２および物理サーバ２の予測性能情報を作成するのである。
【００２７】
ここで、バラツキの大きさをサンプリングの種類毎に算出する例を、図８Ａ〜図８Ｃを参照しながら説明する。図８Ａは、直近のサンプリングの差分絶対和の算出例を示す図である。図８Ｂは、曜日のサンプリングの差分絶対和の算出例を示す図である。図８Ｃは、日にちのサンプリングの差分絶対和の算出例を示す図である。
【００２８】
図８Ａに示すように、１１／７、１１／８、１１／９がサンプリング対象であり、サンプリングする所定期間は、午前０時０分（０：００）〜午前０時１５分（０：１５）とする。予測性能情報作成部１４２は、各サンプリング対象１１／７、１１／８、１１／９の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻０：００について、１１／７と１１／８とのＣＰＵ使用量の差分の絶対値は１００、１１／８と１１／９とのＣＰＵ使用量の差分の絶対値は５０、１１／７と１１／９とのＣＰＵ使用量の差分の絶対値は１５０である。したがって、収集時刻０：００の差分絶対和は、各差分の絶対値を加算した３００となる。同様に、収集時刻０：０５の差分絶対和は６００、収集時刻０：１０の差分絶対和は５００、収集時刻０：１５の差分絶対和は４００となる。
【００２９】
そして、予測性能情報作成部１４２は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部１４２は、各収集時刻の差分絶対和を合計（３００＋６００＋５００＋４００）し、差分絶対和の合計１８００を算出する。この算出値が、直近のサンプリングのバラツキの大きさとなる。
【００３０】
図８Ｂに示すように、１０／２０、１０／２７、１１／３がサンプリング対象であり、サンプリングする所定期間は、直近のサンプリングの場合と同様に午前０時０分（０：００）〜午前０時１５分（０：１５）とする。予測性能情報作成部１４２は、各サンプリング対象１０／２０、１０／２７、１１／３の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻０：００について、１０／２０と１０／２７とのＣＰＵ使用量の差分の絶対値は２００、１０／２７と１１／３とのＣＰＵ使用量の差分の絶対値は５０、１０／２０と１１／３とのＣＰＵ使用量の差分の絶対値は１５０である。したがって、収集時刻０：００の差分絶対和は、各差分の絶対値を加算した４００となる。同様に、収集時刻０：０５の差分絶対和は２００、収集時刻０：１０の差分絶対和は４００、収集時刻０：１５の差分絶対和は２００となる。
【００３１】
そして、予測性能情報作成部１４２は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部１４２は、各収集時刻の差分絶対和を合計（４００＋２００＋４００＋２００）し、差分絶対和の合計１２００を算出する。この算出値が、曜日のサンプリングのバラツキの大きさとなる。
【００３２】
図８Ｃに示すように、８／１０、９／１０、１０／１０がサンプリング対象であり、サンプリングする所定期間は、直近および曜日のサンプリングの場合と同様に午前０時０分（０：００）〜午前０時１５分（０：１５）とする。予測性能情報作成部１４２は、各サンプリング対象８／１０、９／１０、１０／１０の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻０：００について、８／１０と９／１０とのＣＰＵ使用量の差分の絶対値は２５０、９／１０と１０／１０とのＣＰＵ使用量の差分の絶対値は１５０、８／１０と１０／１０とのＣＰＵ使用量の差分の絶対値は１００である。したがって、収集時刻０：００の差分絶対和は、各差分の絶対値を加算した５００となる。同様に、収集時刻０：０５の差分絶対和は６００、収集時刻０：１０の差分絶対和は６００、収集時刻０：１５の差分絶対和は７００となる。
【００３３】
そして、予測性能情報作成部１４２は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部１４２は、各収集時刻の差分絶対和を合計（５００＋６００＋６００＋７００）し、差分絶対和の合計２４００を算出する。この算出値が、日にちのサンプリングのバラツキの大きさとなる。
【００３４】
さらに、予測性能情報作成部１４２は、差分絶対和の合計値を用いて、３種類のそれぞれのサンプリングのバラツキの大きさを判定する。そして、予測性能情報作成部１４２は、３種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。ここでは、直近のサンプリングの差分絶対和の合計は１８００、曜日のサンプリングの差分絶対和の合計は１２００、日にちのサンプリングの差分絶対和の合計は２４００である。したがって、予測性能情報作成部１４２は、バラツキの大きさが一番小さいサンプリングの種類として、曜日のサンプリングを特定する。
【００３５】
図２に戻って、予測性能情報作成部１４２は、特定したサンプリング種類のサンプリング対象のリソース使用量を用いて、仮想マシン２２毎に、それぞれの収集時点のリソース使用量の平均を求める。すなわち、予測性能情報作成部１４２は、求めたリソース使用量の平均を、該当する仮想マシン２２の今後のリソース使用量とみなす。かかるリソース使用量の平均を「予測リソース使用量」という。
【００３６】
ここで、「予測リソース使用量」の算出例を、図９を参照しながら説明する。図９は、予測リソース使用量の算出例を示す図である。図９に示すように、特定したサンプリングの種類を曜日のサンプリングとする。予測性能情報作成部１４２は、特定した曜日のサンプリングの各サンプリング対象１０／２７、１１／８、１１／３のＣＰＵ使用量を用いて、ある仮想マシン２２のそれぞれの収集時刻について各ＣＰＵ使用量の平均を求める。ここでは、予測性能情報作成部１４２は、例えば収集時刻０：００について、各ＣＰＵ使用量８００、１０００、９５０を用いて、各ＣＰＵ使用量の平均値「９１６」を算出する。この値が、収集時刻０：００の予測リソース使用量となる。
【００３７】
図２に戻って、予測性能情報作成部１４２は、前述したように仮想マシン２２毎に予測リソース使用量を求め、求めた予測リソース使用量を、仮想マシン２２毎に、仮想マシン予測情報テーブル１１２１に記録する。さらに、予測性能情報作成部１４２は、物理サーバ２上の全ての仮想マシン２２の予測リソース使用量の合計値を算出し、物理サーバ２の予測リソース使用量として、物理サーバ予測情報テーブル１１２２に記録する。
【００３８】
ここで、仮想マシン予測情報テーブル１１２１のデータ構造について、図５を参照して説明する。図５は、仮想マシン予測情報テーブルのデータ構造の一例を示す図である。図５に示すように、仮想マシン予測情報テーブル１１２１は、今後の日時１１２１ａと、物理サーバ名１１２１ｂと、仮想マシン名１１２１ｃと、予測したＣＰＵ使用量１１２１ｄとを対応付けて記憶する。今後の日時１１２１ａは、予測開始日時から予測終了日時までの予測期間内の日時である。物理サーバ名１１２１ｂは、物理サーバの名称を示す。仮想マシン名１１２１ｃは、仮想マシンの名称を示す。予測したＣＰＵ使用量１１２１ｄは、予測したＣＰＵの使用量を示す。一例として、今後の日時１１２１ａが「２０１１／１０／１２  ００：００：００」である場合、物理サーバ名１１２１ｂとして「Ｓｅｒｖｅｒ１」、仮想マシン名１１２１ｃとして「Ｇｅｓｔ００１」、予測したＣＰＵ使用量１１２１ｄとして「７０」と記憶している。すなわち、今後の日時が「２０１１／１０／１２  ００：００：００」である場合に、物理サーバ「Ｓｅｒｖｅｒ１」の仮想マシン「Ｇｅｓｔ００１」では、予測したＣＰＵ使用量が「７０」ＭＨｚであることを示している。
【００３９】
ここで、物理サーバ予測情報テーブル１１２２のデータ構造について、図６を参照して説明する。図６は、物理サーバ予測情報テーブルのデータ構造の一例を示す図である。図６に示すように、物理サーバ予測情報テーブル１１２２は、今後の日時１１２２ａと、物理サーバ名１１２２ｂと、予測したＣＰＵ使用量１１２２ｃとを対応付けて記憶する。今後の日時１１２２ａは、予測開始日時から予測終了日時までの予測期間内の日時である。物理サーバ名１１２２ｂは、物理サーバの名称を示す。予測したＣＰＵ使用量１１２２ｃは、予測したＣＰＵの使用量を示す。一例として、今後の日時１１２２ａが「２０１１／１０／１２  ００：００：００」である場合、物理サーバ名１１２２ｂとして「Ｓｅｒｖｅｒ１」、予測したＣＰＵ使用量１１２２ｃとして「２５０」と記憶している。すなわち、今後の日時が「２０１１／１０／１２  ００：００：００」である場合に、物理サーバ「Ｓｅｒｖｅｒ１」では、予測したＣＰＵ使用量が「２５０」ＭＨｚであることを示している。
【００４０】
図２に戻って、リソース不足予測部１４３は、物理サーバ２毎に物理サーバ予測情報テーブル１１２２からリソース使用量を取得し、取得したリソース使用量が閾値を越えているか否かを判定する。リソース不足予測部１４３は、リソース使用量が閾値を越えていると判定した場合、リソース不足が予測されたと判断し、後述するマイグレーション元決定部１４４を呼び出す。ここで、閾値は、例えばリソース使用量の上限値の８０％であるが、これに限定されず、リソース不足と推定される限界値であれば良い。リソース使用量の上限値は、構成情報ＤＢ１１３の物理サーバ２に対応するＣＰＵ使用量の上限値１１３ｃに記憶されている。また、リソース使用量は、物理サーバ予測情報テーブル１１２２の今後の日時１１２２ａに対応する、予測したＣＰＵ使用量１１２２ｃに記憶されている。つまり、リソース不足予測部１４３は、今後の日時１１２２ａ毎に、対応する予測したＣＰＵ使用量１１２２ｃが閾値を超えているか否かを判定する。
【００４１】
マイグレーション元決定部１４４は、リソース不足が予測された物理サーバ２からマイグレーションする仮想マシン２２を決定するとともに、物理サーバ２からマイグレーションするタイミングを決定する。例えば、マイグレーション元決定部１４４は、リソース不足が予測された物理マシン２のリソース不足の時点に当該物理マシン２に搭載されている仮想マシン２２から、他の物理マシン２に移動することによりリソース不足を解消可能な仮想マシン２２の組合せを特定する。かかる組合せを「移動組合せ」と呼ぶ。なお、マイグレーション元決定部１４４は、物理サーバ２のリソース不足の時点で、ある仮想マシン２２のリソース使用量が物理サーバ２のリソース使用量の一定割合（例えば、３割以上）を占める場合には、当該仮想マシン２２を移動組合せの対象から除外する。この仮想マシン２２をマイグレーションすると移動先のリソース使用量が不足するおそれがあるからである。
【００４２】
また、マイグレーション元決定部１４４は、移動組合せのうち、移動組合せに含まれる仮想マシン２２の数が最小となる移動組合せを特定する。これにより、マイグレーション元決定部１４４は、マイグレーションによる業務への影響を最小化することができる。
【００４３】
また、マイグレーション元決定部１４４は、特定した移動組合せが複数存在する場合、リソース不足が予測された物理サーバ２のリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシン２２を含む移動組合せを採用する。なお、マイグレーション元決定部１４４は、特定した移動組合せが複数存在する場合、リソース使用量が最小になる時点の平均が最早な移動組合せを採用しても良い。
【００４４】
また、マイグレーション元決定部１４４は、移動組合せが１つの場合、この移動組合せに含まれる仮想マシン２２を、マイグレーションする仮想マシンとする。そして、マイグレーション元決定部１４４は、この移動組合せに含まれる仮想マシン２２について、リソース使用量が最小になる時点が最早な仮想マシン２２からマイグレーション情報ＤＢ１１４に記録する。また、マイグレーション元決定部１４４は、移動組合せが複数の場合に採用した移動組合せに含まれる仮想マシン２２を、マイグレーションする仮想マシンとする。そして、マイグレーション元決定部１４４は、この移動組合せに含まれる仮想マシン２２について、リソース使用量が最小になる時点が最早な仮想マシン２２からマイグレーション情報ＤＢ１１４に記録する。つまり、リソース使用量が最小になる時点がマイグレーションするタイミングとなる。そして、マイグレーション元決定部１４４は、最小になる時点が早い程マイグレーションするタイミングを早くできる。
【００４５】
ここで、マイグレーション情報ＤＢ１１４のデータ構造について、図７を参照して説明する。図７は、マイグレーション情報ＤＢのデータ構造の一例を示す図である。図７に示すように、マイグレーション情報ＤＢ１１４は、マイグレーション日時１１４ａと、マイグレーション元物理サーバ名１１４ｂと、マイグレーション元仮想マシン名１１４ｃと、マイグレーション元物理サーバ名１１４ｄと、実行状態１１４ｅとを対応付けて記憶する。マイグレーション日時１１４ａは、マイグレーションする日時を示す。マイグレーション元物理サーバ名１１４ｂは、マイグレーション元の物理サーバの名称を示す。マイグレーション元仮想マシン名１１４ｃは、マイグレーション元の仮想マシンの名称を示す。マイグレーション先物理サーバ名１１４ｄは、マイグレーション先の物理サーバの名称である。実行状態１１４ｅは、マイグレーションの実行状態を示す。例えば、実行状態には、マイグレーションが実行前であることを示す「実行前」、実行中であることを示す「実行中」、マイグレーションが正常に完了したことを示す「実行完了」、マイグレーションが異常であったことを示す「未完了」が含まれる。一例として、マイグレーション日時１１４ａが「２０１１／１０／１２  ５：２５：００」である場合、マイグレーション元物理サーバ名１１４ｂとして「Ｓｅｒｖｅｒ１」と記憶している。さらに、マイグレーション元仮想マシン名１１４ｃとして「Ｇｅｓｔ１−１」、マイグレーション先物理サーバ名１１４ｄとして「Ｓｅｒｖｅｒ５」、実行状態１１４ｅとして「実行完了」と記憶している。
【００４６】
マイグレーション先決定部１４５は、マイグレーション先の物理サーバ２を決定する。例えば、マイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４を参照し、マイグレーション元仮想マシン名１１４ｃが設定され、且つマイグレーション先物理サーバ名１１４ｄが設定されていないレコードがあるか否かを判定する。そして、マイグレーション先決定部１４５は、該当するレコードがあると判定した場合、該当するレコードのマイグレーション元の仮想マシン２２に対して、マイグレーション先の物理サーバ２を決定する。
【００４７】
マイグレーション先の物理サーバ２の決定は、例えば、以下のように行われる。マイグレーション先決定部１４５は、マイグレーション元の仮想マシン２２を移動することにより、移動先の物理サーバ２のリソース使用量が閾値を超えない物理サーバ２を特定する。なお、閾値として、リソース不足予測部１４３で用いられたリソース使用量の閾値と同じ値が用いられる。さらに、マイグレーション先決定部１４５は、特定した物理サーバ２のうち、移動先の物理サーバ２のリソース使用量が閾値に最も近い物理サーバ２をマイグレーション先の物理サーバ２として決定する。
【００４８】
一例として、マイグレーション先決定部１４５は、仮想マシン予測情報テーブル１１２１から、マイグレーション元の仮想マシン２２の予測リソース使用量を取得する。また、マイグレーション先決定部１４５は、物理サーバ予測情報テーブル１１２２から、物理サーバ２毎の予測リソース使用量を取得する。そして、マイグレーション先決定部１４５は、仮想マシン２２の予測リソース使用量を、それぞれの物理サーバ２の予測リソース使用量にマージする。このとき、マージする対象の物理サーバ２の名称が既にマイグレーション情報ＤＢ１１４にマイグレーション先の物理サーバとして設定されている場合は、マイグレーション先決定部１４５は、移動元の仮想マシン２２の予測リソース使用量も同様にマージする。そして、マイグレーション先決定部１４５は、物理サーバ２毎にマージした予測リソース使用量のうち、閾値を超えている予測リソース使用量があるか否かを判定する。マイグレーション先決定部１４５は、閾値を超えている予測リソース使用量があると判定した場合、この予測リソース使用量に該当する物理サーバ２をマイグレーション先から除外する。この物理サーバ２をマイグレーション先とすると、マイグレーション後に当該物理サーバ２のリソース使用量が不足するおそれがあるからである。そして、マイグレーション先決定部１４５は、閾値を超えていない物理サーバ２を対象に、マージ後の予測リソース使用量と閾値との差分を算出する。この差分は、予測期間内の時点（今後の日時）毎に算出されるものである。そして、マイグレーション先決定部１４５は、予測期間内の時点毎に算出される差分の和（「差分和」という）を算出する。すなわち、「差分和」は、以下の式（１）で表される。
差分和＝閾値の和−（マイグレーション元の仮想マシンの予測リソース使用量の和＋マイグレーション先の物理サーバの予測リソース使用量の和）・・・式（１）
そして、マイグレーション先決定部１４５は、差分和が最小となる物理サーバ２をマイグレーション先に決定する。差分和が最小となる物理サーバ２をマイグレーション先とするのは、マイグレーション後もリソースを最大限に有効活用するためである。そして、マイグレーション先決定部１４５は、マイグレーション先に決定した物理サーバ２について、その名称と実行状態（「実行前」）をマイグレーション情報ＤＢ１１４に記録する。
【００４９】
なお、全ての物理サーバ２の予測リソース使用量が閾値を超えた場合、マイグレーション先決定部１４５は、閾値を増加して再度処理を行うようにすれば良い。
【００５０】
マイグレーション実行依頼部１４６は、一定間隔でマイグレーションの実行依頼を行う。例えば、マイグレーション実行依頼部１４６は、マイグレーション情報ＤＢ１１４を参照し、レコード毎に、マイグレーションが必要であるか否かを判定する。一例として、マイグレーション実行依頼部１４６は、マイグレーション日時１１４ａが経過し、且つ実行状態１１４ｅが「実行前」である場合、マイグレーションが必要であると判定する。そして、マイグレーション実行依頼部１４６は、マイグレーションが必要であると判定した場合、マイグレーション元の仮想マシン２２およびマイグレーション先の物理サーバ２のそれぞれのハイパーバイザ２１に対して、マイグレーションの実行を依頼する。そして、マイグレーション実行依頼部１４６は、マイグレーションの実行状態を、マイグレーション情報ＤＢ１１４の実行状態１１４ｅに更新する。
【００５１】
［予測性能情報作成処理の説明］
次に、予測性能情報作成部１４２における予測性能情報の作成フローを、図１０を参照して説明する。図１０は、予測性能情報作成部における予測性能情報の作成フローを説明する図である。図１０に示すように、予測性能情報作成部１４２は、物理サーバ２上の仮想マシン２２毎に、性能情報ＤＢ１１１に記憶された過去のリソース使用量を用いて、３種類のサンプリングを行う。ここでは、予測性能情報作成部１４２は、「直近のサンプリング」と「曜日のサンプリング」と「日にちのサンプリング」を行う。すなわち、予測性能情報作成部１４２は、サンプリングの種類毎に定められたサンプリング対象について、リソース使用量をサンプリングする。
【００５２】
そして、予測性能情報作成部１４２は、サンプリングしたリソース使用量を用いて、サンプリングの種類毎に差分絶対和の合計値を算出する。そして、予測性能情報作成部１４２は、差分絶対和の合計値を用いて、３種類のそれぞれのサンプリングのバラツキの大きさを判定し、３種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。ここでは、「直近のサンプリング」、「曜日のサンプリング」、「日にちのサンプリング」のそれぞれのバラツキの大きさは、２５０、３５０、１００であるとする。すると、予測性能情報作成部１４２は、バラツキの大きさが一番小さいサンプリングの種類として、「日にちのサンプリング」を特定する。
【００５３】
そして、予測性能情報作成部１４２は、特定した「日にちのサンプリング」のサンプリング対象のリソース使用量を用いて、それぞれの収集時点におけるリソース使用量の平均値を求める。そして、予測性能情報作成部１４２は、それぞれの収集時点における求めた平均値を、該当する仮想マシン２２の予測リソース使用量として、予測性能情報ＤＢ１１２の仮想マシン予測情報テーブル１１２１に記録する。さらに、予測性能情報作成部１４２は、物理サーバ２上の全ての仮想マシン２２の予測リソース使用量の合計値を算出し、物理サーバ２の予測リソース使用量として、予測性能情報ＤＢ１１２の物理サーバ予測情報テーブル１１２２に記録する。
【００５４】
［マイグレーション元決定処理の説明］
次に、マイグレーション元決定部１４４におけるマイグレーション元の決定を、図１１を参照して説明する。図１１は、マイグレーション元決定部におけるマイグレーション元の決定を説明する図である。なお、図１１は、リソース不足予測部１４３によってリソース不足と予測された物理サーバ２の予測期間内の時点と予測リソース使用量との対応を示している。また、リソース不足と予測された物理サーバ２上の各仮想マシン（Ｇｅｓｔ１−１、Ｇｅｓｔ１−２、Ｇｅｓｔ１−３）の予測リソース使用量が対応付けられている。
【００５５】
図１１に示すように、Ｘ軸は時間、Ｙ軸は予測リソース使用量を表している。また、ｔ０が予測期間内の予測開始時刻であり、ｔ９が予測期間内の予測終了時刻である。そして、ｔ４の時点で、物理サーバ２の予測リソース使用量が閾値を超えている。つまり、ｔ４の時点がリソース不足の時点である。
【００５６】
このような状況の下、マイグレーション元決定部１４４は、リソース不足が予測された物理マシン２のリソース不足の時点ｔ４に、他の物理マシン２に移動することによりリソース不足を解消可能な仮想マシン２２の移動組合せを特定する。但し、マイグレーション元決定部１４４は、物理サーバ２のリソース不足の時点ｔ４（ピーク時）に、ある仮想マシン２２の予測リソース使用量が物理サーバ２の予測リソース使用量の一定割合を占める場合には、当該仮想マシン２２を移動組合せの対象から除外する。ここでは、Ｇｅｓｔ１−１が、ピーク時の予測リソース使用量ｒ４１が物理サーバ２の予測リソース使用量の一定割合を占めているとして除外される。また、ピーク時のＧｅｓｔ１−２、Ｇｅｓｔ１−３のそれぞれの予測リソース使用量ｒ４２、ｒ４３は、物理サーバ２の不足するリソース使用量ｒ４０より大きいので、移動組合せとして特定する。したがって、マイグレーション元決定部１４４は、移動組合せとして、｛Ｇｅｓｔ１−２｝、｛Ｇｅｓｔ１−３｝、｛Ｇｅｓｔ１−２、Ｇｅｓｔ１−３｝の３通りを特定する。
【００５７】
そして、マイグレーション元決定部１４４は、移動組合せのうち、移動組合せに含まれる仮想マシン２２の数が最小となる移動組合せを特定する。ここでは、仮想マシン２２の数が１つである｛Ｇｅｓｔ１−２｝および｛Ｇｅｓｔ１−３｝が特定される。
【００５８】
そして、マイグレーション元決定部１４４は、特定した移動組合せが複数存在するので、物理サーバ２のリソース不足が発生するｔ４より前の時点であって予測リソース使用量が最小になる時点が最早な仮想マシン２２を含む移動組合せを採用する。ここでは、Ｇｅｓｔ１−２の予測リソース使用量が最小（ｒ２）になる時点はｔ２であり、Ｇｅｓｔ１−３の予測リソース使用量が最小（ｒ１）になる時点はｔ１である。したがって、マイグレーション元決定部１４４は、予測リソース使用量が最小になる時点が最早な移動組合せとして｛Ｇｅｓｔ１−３｝を採用する。すなわち、マイグレーション元決定部１４４は、Ｇｅｓｔ１−３の仮想マシンをマイグレーション元の仮想マシンと決定する。このｔ１の時点がＧｅｓｔ１−３の仮想マシンをマイグレーションするタイミングとなる。
【００５９】
次に、マイグレーション元決定部１４４におけるマイグレーション情報ＤＢ１１４への追加例を、図１２を参照して説明する。図１２は、マイグレーション元決定部におけるマイグレーション情報ＤＢへの追加例を示す図である。図１２に示すように、マイグレーション元決定部１４４は、マイグレーション元として採用した移動組合せに含まれる仮想マシン２２について、予測リソース使用量が最小になる時点が最早な仮想マシン２２からマイグレーション情報ＤＢ１１４に記録する。ここでは、移動組合せに含まれる仮想マシン２２がＧｅｓｔ１−３のみであるとすると、Ｇｅｓｔ１−３の予測リソース使用量が最小になる時点である「２０１１／１０／１２  ５：２５：００」をマイグレーション日時として記憶する。さらに、Ｇｅｓｔ１−３が存在する物理サーバの名称である「Ｓｅｒｖｅｒ１」をマイグレーション元物理サーバ名とし、「Ｇｅｓｔ１−３」をマイグレーション元仮想マシン名として記憶する。
【００６０】
［マイグレーション先決定処理の説明］
次に、マイグレーション先決定部１４５におけるマイグレーション情報ＤＢ１１４からの検索例を、図１３を参照して説明する。図１３は、マイグレーション先決定部におけるマイグレーション情報ＤＢからの検索例を示す図である。図１３に示すように、マイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４を参照し、マイグレーション元仮想マシン名１１４ｃが設定され、且つマイグレーション先物理サーバ名１１４ｄが設定されていないレコードがあるか否かを判定する。そして、マイグレーション先決定部１４５は、該当するレコードがあると判定した場合、該当するレコードに対して、マイグレーション元の仮想マシン２２のマイグレーション先の物理サーバ２を決定する。ここでは、マイグレーション元仮想マシン名「Ｇｅｓｔ３−１」、「Ｇｅｓｔ４−２」に対応するレコードには、マイグレーション先物理サーバ名が設定されていないので、該当するレコードがあると判定される。そして、マイグレーション先決定部１４５は、該当するレコードに対して、マイグレーション元仮想マシン名「Ｇｅｓｔ３−１」および「Ｇｅｓｔ４−２」のそれぞれのマイグレーション先の物理サーバ２を決定する。
【００６１】
次に、マイグレーション先決定部１４５における差分和について、図１４を参照して説明する。図１４は、マイグレーション先決定部における差分和を説明する図である。図１４に示すように、それぞれのグラフでは、Ｘ軸が時間、Ｙ軸が予測リソース使用量を表している。ｍ１は、リソース使用量の予測期間内における閾値の和である。ｍ２は、リソース使用量の予測期間内におけるマイグレーション元の仮想マシン２２の予測リソース使用量の和である。ｍ３は、リソース使用量の予測期間内におけるマイグレーション先の物理サーバ２の予測リソース使用量の和である。このような場合に、マイグレーション先決定部１４５は、差分和を、ｍ１から（ｍ２＋ｍ３）を引いた結果として算出する。そして、マイグレーション先決定部１４５は、マイグレーション先の物理サーバを、差分和が最小となる物理サーバ２に決定する。差分和が最小となる物理サーバ２は、リソースを有効活用することができるからである。
【００６２】
次に、マイグレーション先決定部１４５におけるマイグレーション情報ＤＢ１１４への追加例を、図１５を参照して説明する。図１５は、マイグレーション先決定部におけるマイグレーション情報ＤＢへの追加例を示す図である。なお、図１５では、マイグレーション先決定部１４５によってマイグレーション元仮想マシン名「Ｇｅｓｔ３−１」のマイグレーション先の物理サーバ２が「Ｓｅｒｖｅｒ６」に決定された場合を説明する。図１５に示すように、マイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４の、マイグレーション元の仮想マシン名「Ｇｅｓｔ３−１」に対応するマイグレーション先物理サーバ名１１４ｄに「Ｓｅｒｖｅｒ６」を記録する。また、マイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４の、マイグレーション元仮想マシン名「Ｇｅｓｔ３−１」に対応するマイグレーション実行状態１１４ｅに「実行前」を記録する。
【００６３】
［マイグレーション実行依頼処理の説明］
次に、マイグレーション実行依頼部１４６におけるマイグレーション情報ＤＢ１１４からの検索例を、図１６を参照して説明する。図１６は、マイグレーション実行依頼部におけるマイグレーション情報ＤＢからの検索例を示す図である。図１６に示すように、マイグレーション実行依頼部１４６は、マイグレーション情報ＤＢ１１４を参照し、レコード毎に、マイグレーションが必要であるか否かを判定する。ここでは、マイグレーション先物理サーバ名１１４ｄが「Ｓｅｒｖｅｒ７」であるレコードｎ１の実行状態１１４ｅが、「実行前」である。そこで、マイグレーション実行依頼部１４６は、現在の時刻がマイグレーション日時１１４ａ「２０１１／１０／１２  ７：２８：００」を経過している場合、マイグレーションが必要であると判定する。
【００６４】
次に、マイグレーション実行依頼部１４６によって行われるマイグレーション情報ＤＢ１１４の実行状態の遷移を、図１７を参照して説明する。図１７は、マイグレーション実行依頼部によって行われるマイグレーション情報ＤＢの実行状態の遷移を示す図である。図１７上段に示すように、マイグレーション先物理サーバ名１１４ｄが「Ｓｅｒｖｅｒ７」であるレコードの実行状態１１４ｅが、「実行前」と設定されている。
【００６５】
マイグレーション実行依頼部１４６は、このレコードに関して、マイグレーションが必要であると判定した場合、図１７中段に示すように、実行状態１１４ｅを「実行中」に更新する。そして、マイグレーション実行依頼部１４６は、マイグレーション元の仮想マシン２２およびマイグレーション先の物理サーバ２のそれぞれのハイパーバイザ２１に対して、マイグレーションの実行を依頼する。そして、マイグレーション実行依頼部１４６は、実行依頼の結果、マイグレーションが成功した場合、図１７下段に示すように、実行状態１１４ｅを「実行完了」に更新する。なお、実行依頼の結果、マイグレーションが失敗した場合、マイグレーション実行依頼部１４６は、実行状態１１４ｅを「実行未」に更新する。
【００６６】
［マイグレーション制御部のメイン処理の手順］
次に、マイグレーション制御部１４によるマイグレーション制御処理の手順について、図１８〜図２５を参照して説明する。図１８は、実施例に係るマイグレーション制御部のメイン処理の手順を示すフローチャートである。
【００６７】
まず、メイン処理部１４１は、一定間隔（例えば５分）が経過したか否かを判定する（ステップＳ１１）。一定間隔が経過していないと判定した場合（ステップＳ１１；Ｎｏ）、メイン処理部１４１は、一定間隔が経過するまで判定処理を繰り返す。一方、一定間隔が経過したと判定した場合（ステップＳ１１；Ｙｅｓ）、メイン処理部１４１は、現時刻がマイグレーションをスケジュールする時刻（例えば０：００）であるか否かを判定する（ステップＳ１２）。
【００６８】
現時刻がマイグレーションをスケジュールする時刻であると判定した場合（ステップＳ１２；Ｙｅｓ）、メイン処理部１４１は、仮想マシン２２および物理サーバ２の予測リソース使用量を作成する（ステップＳ１３）。メイン処理部１４１は、予測性能情報作成部１４２の予測性能情報作成処理を呼び出す。
【００６９】
続いて、メイン処理部１４１は、今後リソース不足となる物理サーバ２を予測し、予測した物理サーバ２について、マイグレーション元の仮想マシン２２とマイグレーション時刻を決定する（ステップＳ１４）。メイン処理部１４１は、リソース不足予測部１４３のリソース不足予測処理を呼び出す。
【００７０】
続いて、メイン処理部１４１は、決定したマイグレーション元の仮想マシン２２をマイグレーションするマイグレーション先の物理サーバ２を決定する（ステップＳ１５）。メイン処理部１４１は、マイグレーション先決定部１４５のマイグレーション先決定処理を呼び出す。そして、メイン処理部１４１は、ステップＳ１７に移行する。
【００７１】
ステップＳ１２では、現時刻がマイグレーションをスケジュールする時刻でないと判定した場合（ステップＳ１２；Ｎｏ）、メイン処理部１４１は、マイグレーションを実行する（ステップＳ１６）。メイン処理部１４１は、マイグレーション実行依頼部１４６のマイグレーション実行依頼処理を呼び出す。そして、メイン処理部１４１は、ステップＳ１７に移行する。
【００７２】
そして、メイン処理部１４１は、マイグレーション制御を終了するか否かを判定する（ステップＳ１７）。マイグレーション制御を終了しないと判定した場合（ステップＳ１７；Ｎｏ）、メイン処理部１４１は、ステップＳ１１に移行する。一方、マイグレーション制御を終了すると判定した場合（ステップＳ１７；Ｙｅｓ）、メイン処理部１４１は、メイン処理を終了する。
【００７３】
［マイグレーション制御部の予測性能情報作成処理の手順］
図１９は、実施例に係る予測性能情報作成処理の手順を示すフローチャートである。
【００７４】
メイン処理部１４１から呼び出された予測性能情報作成部１４２は、全ての物理サーバ２に対し予測性能情報を作成したか否かを判定する（ステップＳ２１）。全ての物理サーバ２に対し予測性能情報を作成していないと判定した場合（ステップＳ２１；Ｎｏ）、予測性能情報作成部１４２は、未作成の物理サーバ２を処理対象とする（ステップＳ２２）。
【００７５】
そして、予測性能情報作成部１４２は、処理対象の物理サーバ２上の全ての仮想マシン２２に対し予測性能情報を作成したか否かを判定する（ステップＳ２３）。処理対象の物理サーバ２上の全ての仮想マシン２２に対し予測性能情報を作成していないと判定した場合（ステップＳ２３；Ｎｏ）、予測性能情報作成部１４２は、未作成の仮想マシン２２を処理対象とする（ステップＳ２４）。
【００７６】
続いて、予測性能情報作成部１４２は、リソース使用量について、１つの種類のサンプリングを取得する（ステップＳ２５）。例えば、予測性能情報作成部１４２は、性能情報ＤＢ１１１に記憶されたＣＰＵ使用量１１１ｄを用いて、処理対象の仮想マシン２２のＣＰＵ使用量のサンプリングを行う。サンプリングは、「直近のサンプリング」、「曜日のサンプリング」、「日にちのサンプリング」の３つの種類のサンプリングの中から１つずつ取得される。
【００７７】
そして、予測性能情報作成部１４２は、取得したサンプリングを用いて、差分絶対和を算出する（ステップＳ２６）。例えば、予測性能情報作成部１４２は、サンプリングの種類毎に定められた各サンプリング対象の同じ収集時点のＣＰＵ使用量を用いて、差分絶対和を算出する。
【００７８】
そして、予測性能情報作成部１４２は、３種類のサンプリングを実施したか否かを判定する（ステップＳ２７）。３種類のサンプリングを実施していないと判定した場合（ステップＳ２７；Ｎｏ）、予測性能情報作成部１４２は、次の種類のサンプリングを取得すべく、ステップＳ２５に移行する。
【００７９】
一方、３種類のサンプリングを実施したと判定した場合（ステップＳ２７；Ｙｅｓ）、予測性能情報作成部１４２は、差分絶対和の合計が最小になるサンプリング種類のサンプリングの結果からリソース使用量の平均値を算出する（ステップＳ２８）。例えば、予測性能情報作成部１４２は、差分絶対和の合計が最小になるサンプリング種類を特定する。そして、予測性能情報作成部１４２は、特定したサンプリング種類の各サンプリング対象のリソース使用量を用いて、それぞれの収集時点におけるリソース使用量の平均値を求める。リソース使用量は、性能情報ＤＢ１１１のＣＰＵ使用量１１１ｄに対応する。
【００８０】
そして、予測性能情報作成部１４２は、算出結果を予測性能情報ＤＢ１１２の仮想マシン予測情報テーブル１１２１に記録する（ステップＳ２９）。そして、予測性能情報作成部１４２は、未作成の仮想マシン２２を処理対象とすべく、ステップＳ２３に移行する。
【００８１】
ステップＳ２３では、処理対象の物理サーバ２上の全ての仮想マシン２２に対し予測性能情報を作成したと判定した場合（ステップＳ２３；Ｙｅｓ）、予測性能情報作成部１４２は、処理対象の物理サーバ２の予測リソース使用量を取得する（ステップＳ３０）。予測性能情報作成部１４２は、処理対象の物理サーバ２上の全ての仮想マシン２２の予測リソース使用量を合計することで、当該物理サーバ２の予測リソース使用量を取得する。
【００８２】
そして、予測性能情報作成部１４２は、取得した予測リソース使用量を予測性能情報ＤＢ１１２の物理サーバ予測情報テーブル１１２２に記録する（ステップＳ３１）。そして、予測性能情報作成部１４２は、未作成の物理サーバ２を処理対象とすべく、ステップＳ２１に移行する。
【００８３】
ステップＳ２１では、全ての物理サーバ２に対し予測性能情報を作成したと判定した場合（ステップＳ２１；Ｙｅｓ）、予測性能情報作成部１４２は、予測性能情報作成処理を終了する。
【００８４】
［マイグレーション制御部のリソース不足予測処理の手順］
図２０は、実施例に係るリソース不足予測処理の手順を示すフローチャートである。
【００８５】
メイン処理部１４１から呼び出されたリソース不足予測部１４３は、全ての物理サーバ２に対しリソース不足の予測をしたか否かを判定する（ステップＳ４１）。全ての物理サーバ２に対しリソース不足の予測をしていないと判定した場合（ステップＳ４１；Ｎｏ）、リソース不足予測部１４３は、まだ予測をしていない物理サーバ２を選択する。そして、リソース不足予測部１４３は、選択した物理サーバ２の予測リソース使用量を物理サーバ予測情報テーブル１１２２から取得する（ステップＳ４２）。予測リソース使用量は、今後の日時１１２１ａ毎の予測したＣＰＵ使用量１１２１ｄに対応する。
【００８６】
続いて、リソース不足予測部１４３は、取得した予測リソース使用量が閾値を超えたか否かを判定する（ステップＳ４３）。取得した予測リソース使用量が閾値を超えたと判定した場合（ステップＳ４３；Ｙｅｓ）、リソース不足予測部１４３は、選択した物理サーバ２上のマイグレーション元の仮想マシン２２とマイグレーション日時を決定する（ステップＳ４４）。選択した物理サーバ２のリソース不足が予測されたものである。リソース不足予測部１４３は、マイグレーション元決定部１４４のマイグレーション元決定処理を呼び出す。そして、リソース不足予測部１４３は、まだ予測していない物理サーバ２を選択すべく、ステップＳ４１に移行する。
【００８７】
一方、取得した予測リソース使用量が閾値を超えていないと判定した場合（ステップＳ４３；Ｎｏ）、リソース不足予測部１４３は、まだ予測していない物理サーバ２を選択すべく、ステップＳ４１に移行する。ステップＳ４１では、全ての物理サーバ２に対しリソース不足の予測をしたと判定した場合（ステップＳ４１；Ｙｅｓ）、リソース不足予測部１４３は、リソース不足予測処理を終了する。
【００８８】
［マイグレーション制御部のマイグレーション元決定処理の手順］
図２１は、実施例に係るマイグレーション元決定処理の手順を示すフローチャートである。
【００８９】
リソース不足予測部１４３から呼び出されたマイグレーション元決定部１４４は、リソース不足と予測された物理サーバ２のリソース不足を解消する仮想マシン２２の移動組合せを特定する（ステップＳ５１）。そして、マイグレーション元決定部１４４は、特定した移動組合せが１つだけであるか否かを判定する（ステップＳ５２）。特定した移動組合せが１つだけであると判定した場合（ステップＳ５２；Ｙｅｓ）、マイグレーション元決定部１４４は、ステップＳ５９に移行する。
【００９０】
一方、特定した移動組合せが１つだけでないと判定した場合（ステップＳ５２；Ｎｏ）、マイグレーション元決定部１４４は、全ての移動組合せを選択したか否かを判定する（ステップＳ５３）。全ての移動組合せを選択していないと判定した場合（ステップＳ５３；Ｎｏ）、マイグレーション元決定部１４４は、未選択の移動組合せを選択する（ステップＳ５４）。
【００９１】
そして、マイグレーション元決定部１４４は、選択した移動組合せに関し、仮想マシン２２のリソース使用量が最小になる時刻のうち最早の時刻を取得する（ステップＳ５５）。そして、マイグレーション元決定部１４４は、選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早いか否かを判定する（ステップＳ５６）。選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早くないと判定した場合（ステップＳ５６；Ｎｏ）、マイグレーション元決定部１４４は、未選択の移動組合せを選択すべく、ステップＳ５３に移行する。
【００９２】
一方、選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早いと判定した場合（ステップＳ５６；Ｙｅｓ）、マイグレーション元決定部１４４は、選択した移動組合せで取得した時刻を移動時刻として取得する（ステップＳ５７）。そして、マイグレーション元決定部１４４は、選択した移動組合せを保持し（ステップＳ５８）、未選択の移動組合せを選択すべく、ステップＳ５３に移行する。
【００９３】
ステップＳ５３では、全ての移動組合せを選択したと判定した場合（ステップＳ５３；Ｙｅｓ）、マイグレーション元決定部１４４は、ステップＳ５９に移行する。ステップＳ５９では、マイグレーション元決定部１４４は、移動組合せ内の全ての仮想マシン２２について、リソース使用量が最小になる時刻が早いものからマイグレーション情報ＤＢ１１４に記録する（ステップＳ５９）。そして、マイグレーション元決定部１４４は、マイグレーション元決定処理を終了する。
【００９４】
［仮想マシンの移動組合せを特定する処理の手順］
次に、図２１のＳ５１による処理について、図２２を参照して説明する。図２２は、仮想マシンの移動組合せを特定する処理の手順を示すフローチャートである。
【００９５】
マイグレーション元決定部１４４は、リソース不足と予測された物理サーバ２上の全ての仮想マシン２２を選択したか否かを判定する（ステップＳ６１）。リソース不足と予測された物理サーバ２上の全ての仮想マシン２２を選択していないと判定した場合（ステップＳ６１；Ｎｏ）、マイグレーション元決定部１４４は、未選択の仮想マシン２２を選択する（ステップＳ６２）。
【００９６】
そして、マイグレーション元決定部１４４は、選択した仮想マシン２２のピーク時におけるリソース使用量が所定値より小さいか否かを判定する（ステップＳ６３）。所定値は、リソース不足と予測された物理サーバ２のリソース使用量の上限値の一定割合（例えば３割）になる値である。選択した仮想マシン２２のピーク時におけるリソース使用量が所定値より小さくないと判定した場合（ステップＳ６３；Ｎｏ）、マイグレーション元決定部１４４は、選択した仮想マシン２２を除外する。そして、マイグレーション元決定部１４４は、未選択の仮想マシン２２を選択すべく、ステップＳ６１に移行する。
【００９７】
一方、選択した仮想マシン２２のピーク時におけるリソース使用量が所定値より小さいと判定した場合（ステップＳ６３；Ｙｅｓ）、マイグレーション元決定部１４４は、選択した仮想マシン２２を特定する（ステップＳ６４）。そして、マイグレーション元決定部１４４は、未選択の仮想マシン２２を選択すべく、ステップＳ６１に移行する。
【００９８】
ステップＳ６１では、リソース不足と予測された物理サーバ２上の全ての仮想マシン２２を選択したと判定した場合（ステップＳ６１；Ｙｅｓ）、マイグレーション元決定部１４４は、当該物理サーバ２の不足するリソース使用量を算出する（ステップＳ６５）。すなわち、マイグレーション元決定部１４４は、リソース不足と予測された物理サーバ２のピーク時のリソース使用量と閾値との差分を算出する。そして、マイグレーション元決定部１４４は、特定した全ての仮想マシン２２の組合せ（総組合せ）を取得する（ステップＳ６６）。
【００９９】
続いて、マイグレーション元決定部１４４は、全ての組合せを選択したか否かを判定する（ステップＳ６７）。全ての組合せを選択していないと判定した場合（ステップＳ６７；Ｎｏ）、マイグレーション元決定部１４４は、未選択の組合せを選択する（ステップＳ６８）。そして、マイグレーション元決定部１４４は、選択した組合せ内の全ての仮想マシン２２のピーク時のリソース使用量の合計値を算出する（ステップＳ６９）。
【０１００】
そして、マイグレーション元決定部１４４は、算出した合計値が不足するリソース使用量よりも大きいか否かを判定する（ステップＳ７０）。算出した合計値が不足するリソース使用量よりも大きいと判定した場合（ステップＳ７０；Ｙｅｓ）、マイグレーション元決定部１４４は、選択した組合せを移動候補組合せとして取得する（ステップＳ７１）。マイグレーション元決定部１４４は、リソース不足と予測された物理サーバ２のリソース不足を解消できると判断したためである。そして、マイグレーション元決定部１４４は、未選択の組合せを選択すべく、ステップＳ６７に移行する。
【０１０１】
一方、算出した合計値が不足するリソース使用量よりも大きくないと判定した場合（ステップＳ７０；Ｎｏ）、マイグレーション元決定部１４４は、未選択の組合せを選択すべく、ステップＳ６７に移行する。マイグレーション元決定部１４４は、リソース不足と予測された物理サーバ２のリソース不足を解消できないと判断したためである。
【０１０２】
ステップＳ６７では、全ての組合せを選択したと判定した場合（ステップＳ６７；Ｙｅｓ）、マイグレーション元決定部１４４は、全ての移動候補組合せを選択したか否かを判定する（ステップＳ７２）。全ての移動候補組合せを選択していないと判定した場合（ステップＳ７２；Ｎｏ）、マイグレーション元決定部１４４は、未選択の移動候補組合せを選択する（ステップＳ７３）。
【０１０３】
そして、マイグレーション元決定部１４４は、選択した移動候補組合せの要素数（仮想マシン数）が最小であるか否かを判定する（ステップＳ７４）。選択した移動候補組合せの要素数（仮想マシン数）が最小であると判定した場合（ステップＳ７４；Ｙｅｓ）、マイグレーション元決定部１４４は、移動組合せとして特定する（ステップＳ７５）。そして、マイグレーション元決定部１４４は、未選択の移動候補組合せを選択すべく、ステップＳ７２に移行する。
【０１０４】
一方、選択した移動候補組合せの要素数（仮想マシン数）が最小でないと判定した場合（ステップＳ７４；Ｎｏ）、マイグレーション元決定部１４４は、未選択の移動候補組合せを選択すべく、ステップＳ７２に移行する。
【０１０５】
ステップＳ７２では、全ての移動候補組合せを選択したと判定した場合（ステップＳ７２；Ｙｅｓ）、マイグレーション元決定部１４４は、仮想マシンの移動組合せを特定する処理を終了する。
【０１０６】
［マイグレーション制御部のマイグレーション先決定処理の手順］
図２３は、実施例に係るマイグレーション先決定処理の手順を示すフローチャートである。
【０１０７】
メイン処理部１４１から呼び出されたマイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４の全ての定義（レコード）を選択したか否かを判定する（ステップＳ８１）。マイグレーション情報ＤＢ１１４の全ての定義を選択していないと判定した場合（ステップＳ８１；Ｎｏ）、マイグレーション先決定部１４５は、未選択の定義を選択する（ステップＳ８２）。
【０１０８】
そして、マイグレーション先決定部１４５は、選択した定義について、マイグレーション先の物理サーバ２が未設定であるか否かを判定する（ステップＳ８３）。マイグレーション先の物理サーバ２が未設定でない、すなわち設定されていると判定した場合（ステップＳ８３；Ｎｏ）、マイグレーション先決定部１４５は、未選択の定義を選択すべく、ステップＳ８１に移行する。一方、マイグレーション先の物理サーバ２が未設定であると判定した場合（ステップＳ８３；Ｙｅｓ）、マイグレーション先決定部１４５は、仮想マシン予測情報テーブル１１２１から、移動元の仮想マシン２２の予測リソース使用量を取得する（ステップＳ８４）。
【０１０９】
続いて、マイグレーション先決定部１４５は、全ての物理サーバを選択したか否かを判定する（ステップＳ８５）。全ての物理サーバを選択していないと判定した場合（ステップＳ８５；Ｎｏ）、マイグレーション先決定部１４５は、未選択の物理サーバ２を選択する（ステップＳ８６）。そして、マイグレーション先決定部１４５は、選択した物理サーバ２（マイグレーション先候補）の予測リソース使用量を取得する（ステップＳ８７）。
【０１１０】
そして、マイグレーション先決定部１４５は、移動元の仮想マシン２２の予測リソース使用量と、選択した物理サーバ２の予測リソース使用量をマージする（ステップＳ８８）。そして、マイグレーション先決定部１４５は、マージ後の予測リソース使用量が閾値を超えたか否かを判定する（ステップＳ８９）。マージ後の予測リソース使用量が閾値を超えていないと判定した場合（ステップＳ８９；Ｎｏ）、マイグレーション先決定部１４５は、マージ後の予測リソース使用量と閾値との差分和を算出する（ステップＳ９０）。
【０１１１】
そして、マイグレーション先決定部１４５は、既に選択した物理サーバ２の差分和と今回選択した物理サーバ２の差分和を比較し、小さい方の物理サーバ２をマイグレーション先とする（ステップＳ９１）。そして、マイグレーション先決定部１４５は、未選択の物理サーバを選択すべく、ステップＳ８５に移行する。
【０１１２】
一方、マージ後の予測リソース使用量が閾値を超えたと判定した場合（ステップＳ８９；Ｙｅｓ）、マイグレーション先決定部１４５は、選択した物理サーバ２をマイグレーション先から除外する。そして、マイグレーション先決定部１４５は、未選択の物理サーバを選択すべく、ステップＳ８５に移行する。
【０１１３】
ステップＳ８５では、全ての物理サーバを選択したと判定した場合（ステップＳ８５；Ｙｅｓ）、マイグレーション先決定部１４５は、マイグレーション先の物理サーバ２が決定したか否かを判定する（ステップＳ９２）。マイグレーション先の物理サーバ２が決定していないと判定した場合（ステップＳ９２；Ｎｏ）、マイグレーション先決定部１４５は、未選択の定義を選択すべく、ステップＳ８１に移行する。
【０１１４】
一方、マイグレーション先の物理サーバ２が決定したと判定した場合（ステップＳ９２；Ｙｅｓ）、マイグレーション先決定部１４５は、マイグレーション先の物理サーバ名をマイグレーション情報ＤＢ１１４に記録する（ステップＳ９３）。そして、マイグレーション先決定部１４５は、未選択の定義を選択すべく、ステップＳ８１に移行する。
【０１１５】
ステップＳ８１では、マイグレーション情報ＤＢ１１４の全ての定義を選択したと判定した場合（ステップＳ８１；Ｙｅｓ）、マイグレーション先決定部１４５は、マイグレーション先決定処理を終了する。
【０１１６】
次に、図２３のＳ８７による処理について、図２４を参照して説明する。図２４は、物理サーバの予測リソース使用量を取得する処理の手順を示すフローチャートである。
【０１１７】
マイグレーション先決定部１４５は、物理サーバ予測情報テーブル１１２２から、物理サーバ（マイグレーション先候補）の予測リソース使用量を取得する（ステップＳ１０１）。
【０１１８】
続いて、マイグレーション先決定部１４５は、マイグレーション情報ＤＢ１１４のマイグレーション先物理サーバ名１１４ｄに既に登録された全ての物理サーバ２を選択したか否かを判定する（ステップＳ１０２）。マイグレーション情報ＤＢ１１４に既に登録された全ての物理サーバ２を選択していないと判定した場合（ステップＳ１０２；Ｎｏ）、マイグレーション先決定部１４５は、未選択の物理サーバ２を選択する（ステップＳ１０３）。
【０１１９】
そして、マイグレーション先決定部１４５は、選択した物理サーバ２がマイグレーション先候補の物理サーバと同一であるか否かを判定する（ステップＳ１０４）。選択した物理サーバ２がマイグレーション先候補と同一であると判定した場合（ステップＳ１０４；Ｙｅｓ）、マイグレーション先決定部１４５は、マイグレーション先候補の予測リソース使用量を補正する（ステップＳ１０５）。すなわち、マイグレーション先決定部１４５は、取得したマイグレーション先候補の物理サーバ２の予測リソース使用量に、マイグレーション情報ＤＢ１１４に既に登録された、当該物理サーバ２に移動予定の仮想マシン２２の予測リソース使用量をマージする。そして、マイグレーション先決定部１４５は、未選択の物理サーバ２を選択すべく、ステップＳ１０２に移行する。
【０１２０】
一方、選択した物理サーバ２がマイグレーション先候補と同一でないと判定した場合（ステップＳ１０４；Ｎｏ）、マイグレーション先決定部１４５は、未選択の物理サーバ２を選択すべく、ステップＳ１０２に移行する。
【０１２１】
ステップＳ１０２では、マイグレーション情報ＤＢ１１４に既に登録された全ての物理サーバ２を選択したと判定した場合（ステップＳ１０２；Ｙｅｓ）、マイグレーション先決定部１４５は、マイグレーション先候補の予測リソース使用量を呼び出し元に戻す。
【０１２２】
［マイグレーション制御部のマイグレーション実行依頼処理の手順］
図２５は、実施例に係るマイグレーション実行依頼処理の手順を示すフローチャートである。
【０１２３】
メイン処理部１４１から呼び出されたマイグレーション実行依頼部１４６は、マイグレーション情報ＤＢ１１４の全ての定義（レコード）を選択したか否かを判定する（ステップＳ１１１）。マイグレーション情報ＤＢ１１４の全ての定義を選択していないと判定した場合（ステップＳ１１１；Ｎｏ）、マイグレーション実行依頼部１４６は、マイグレーション情報ＤＢ１１４の未選択の定義を選択する（ステップＳ１１２）。
【０１２４】
続いて、マイグレーション実行依頼部１４６は、選択した定義について、マイグレーションが必要か否かを判定する（ステップＳ１１３）。すなわち、マイグレーション実行依頼部１４６は、選択した定義について、マイグレーション日時１１４ａが経過し、且つ実行状態１１４ｅが「実行前」であるか否かを判定する。マイグレーション日時１１４ａが経過し、且つ実行状態１１４ｅが「実行前」である場合、マイグレーションが必要であると判定する。
【０１２５】
マイグレーションが必要であると判定した場合（ステップＳ１１３；Ｙｅｓ）、マイグレーション実行依頼部１４６は、選択した定義について、マイグレーション情報ＤＢ１１４の実行状態１１４ｅを「実行中」に更新する（ステップＳ１１４）。そして、マイグレーション実行依頼部１４６は、マイグレーション元の仮想マシン２２およびマイグレーション先の物理サーバ２のそれぞれのハイパーバイザ２１に対して、マイグレーションの実行を依頼する（ステップＳ１１５）。
【０１２６】
そして、マイグレーション実行依頼部１４６は、マイグレーションの実行後、正常に完了した場合、選択した定義について、マイグレーション情報ＤＢ１１４の実行状態１１４ｅを「実行完了」に更新する（ステップＳ１１６）。なお、マイグレーション実行依頼部１４６は、マイグレーションの実行が異常であった場合、選択した定義について、マイグレーション情報ＤＢ１１４の実行状態１１４ｅを「未完了」に更新する。そして、マイグレーション実行依頼部１４６は、未選択の定義を選択すべく、ステップＳ１１１に移行する。
【０１２７】
ステップＳ１１３では、マイグレーションが必要でないと判定した場合、マイグレーション実行依頼部１４６は、未選択の定義を選択すべく、ステップＳ１１１に移行する。
【０１２８】
ステップＳ１１１では、マイグレーション情報ＤＢ１１４の全ての定義を選択したと判定した場合（ステップＳ１１１；Ｙｅｓ）、マイグレーション実行依頼部１４６は、マイグレーション実行依頼処理を終了する。
【０１２９】
［実施例の効果］
上記実施例によれば、管理サーバ１は、複数の仮想マシン２２を搭載する物理サーバ２について、所定期間内でのリソース不足を予測する。そして、管理サーバ１は、該予測したリソース不足の時点にリソース不足が予測された物理サーバ２に搭載されている仮想マシン２２から他の物理サーバ２に移動することによりリソース不足を解消可能な仮想マシン２２を特定する。そして、管理サーバ１は、該特定した仮想マシン２２の所定期間内でのリソースの使用量およびリソースの使用量に対応する時点に基づいて、特定した仮想マシン２２を他の物理サーバ２に移動する。かかる構成によれば、管理サーバ１は、物理サーバ２のリソース不足が予測された時点にリソース不足を解消することが可能となり、当該物理サーバ２が動作不安定になることを抑制できる。
【０１３０】
また、上記実施例によれば、管理サーバ１は、複数の仮想マシン２２の移動によってリソース不足が解消される場合、リソース不足が解消される複数の仮想マシン２２の数が最小となる仮想マシン２２の移動組合せを特定する。かかる構成によれば、管理サーバ１は、リソース不足が解消される複数の仮想マシン２２の数が最小となる仮想マシン２２の移動組合せを特定するので、特定した移動組合せの仮想マシン２２を他の物理サーバ２に速く移動することが可能となる。このため、管理サーバ１は、移動時の業務に関わる影響を最小化することが可能となる。
【０１３１】
また、上記実施例によれば、管理サーバ１は、さらに、移動組合せが複数ある場合、リソース不足が予測された物理サーバ２のリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシン２を含む移動組合せを特定する。かかる構成によれば、管理サーバ１は、リソース不足が予測された物理サーバ２のリソース不足が発生する時点になるまでに、特定した移動組合せの仮想マシン２を安全に移動することが可能となる。
【０１３２】
また、上記実施例によれば、管理サーバ１は、移動が特定された仮想マシン２２のリソースの使用量が最小になる時点で、当該仮想マシン２２を他の物理サーバ２に移動する。かかる構成によれば、管理サーバ１は、移動が特定された仮想マシン２２を他の物理サーバ２に速く移動できる。このため、管理サーバ１は、移動時の業務に関わる影響を最小化することが可能となる。
【０１３３】
また、上記実施例によれば、管理サーバ１は、さらに、移動が特定された仮想マシン２２を移動した場合のリソースの使用量がリソース不足と判定される上限値を超えず且つリソースの使用量が当該上限値に最も近い物理サーバ２を移動先として決定する。そして、管理サーバ１は、決定した移動先に、移動が特定された仮想マシン２２を移動する。かかる構成によれば、管理サーバ１は、移動が特定された仮想マシン２２を移動先として決定された物理サーバ２に移動した場合、移動先の物理サーバ２のリソースを有効に活用できる。
【０１３４】
［プログラム等］
なお、管理サーバ１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記したマイグレーション制御部１４と、記憶部１１等の各機能を搭載することによって実現することができる。
【０１３５】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、マイグレーション制御部１４と性能情報収集部１２と構成情報収集部１３とを１個の部として統合しても良い。一方、マイグレーション元決定部１４４を、移動組合せを特定する特定部と、特定した移動組合せの中から最適な移動組合せを採用する採用部とに分散しても良い。また、性能情報ＤＢ１１１等の記憶部１１を管理サーバ１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１３６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図２に示した管理サーバ１と同様の機能を実現するマイグレーション制御プログラムを実行するコンピュータの一例を説明する。図２６は、マイグレーション制御プログラムを実行するコンピュータの一例を示す図である。
【０１３７】
図２６に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１３８】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、マイグレーション制御プログラム２０５ａ、性能情報収集プログラム２０５ｂ、構成情報収集プログラム２０５ｃおよびマイグレーション制御関連情報２０５ｄを記憶する。
【０１３９】
ＣＰＵ２０３は、マイグレーション制御プログラム２０５ａを読み出して、メモリ２０１に展開する。マイグレーション制御プログラム２０５ａは、マイグレーション制御プロセス２０１ａとして機能する。また、ＣＰＵ２０３は、性能情報収集プログラム２０５ｂを読み出して、メモリ２０１に展開する。性能情報収集プログラム２０５ｂは、性能情報収集プロセス２０５ｂとして機能する。また、ＣＰＵ２０３は、構成情報収集プログラム２０５ｃを読み出して、メモリ２０１に展開する。構成情報収集プログラム２０５ｃは、構成情報収集プロセス２０５ｃとして機能する。
【０１４０】
例えば、マイグレーション制御プロセス２０１ａは、マイグレーション制御部１４の各機能部に対応する。また、性能情報収集プロセス２０５ｂは、性能情報収集部１２に対応する。構成情報収集プロセス２０５ｃは、構成情報収集部１３に対応する。マイグレーション制御関連情報２０５ｄは、性能情報ＤＢ１１１、予測性能情報ＤＢ１１２、構成情報ＤＢ１１３およびマイグレーション情報ＤＢ１１４に対応する。
【０１４１】
なお、各プログラム２０５ａ、２０５ｂ、２０５ｃについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから各プログラム２０５ａ、２０５ｂ、２０５ｃを読み出して実行するようにしても良い。
【符号の説明】
【０１４２】
１  管理サーバ
１１  記憶部
１２  性能情報収集部
１３  構成情報収集部
１４  マイグレーション制御部
１１１  性能情報ＤＢ
１１２  予測性能情報ＤＢ
１１２１  仮想マシン予測情報テーブル
１１２２  物理サーバ予測情報テーブル
１１３  構成情報ＤＢ
１１４  マイグレーション情報ＤＢ
１４１  メイン処理部
１４２  予測性能情報作成部
１４３  リソース不足予測部
１４４  マイグレーション元決定部
１４５  マイグレーション先決定部
１４６  マイグレーション実行依頼部
２  物理サーバ
２１  ハイパーバイザ
２２  仮想マシン
９  情報処理システム
【図１】
2014006739.tif 000003
【図２】
2014006739.tif 000004
【図３】
2014006739.tif 000005
【図４】
2014006739.tif 000006
【図５】
2014006739.tif 000007
【図６】
2014006739.tif 000008
【図７】
2014006739.tif 000009
【図８Ａ】
2014006739.tif 000010
【図８Ｂ】
2014006739.tif 000011
【図８Ｃ】
2014006739.tif 000012
【図９】
2014006739.tif 000013
【図１０】
2014006739.tif 000014
【図１１】
2014006739.tif 000015
【図１２】
2014006739.tif 000016
【図１３】
2014006739.tif 000017
【図１４】
2014006739.tif 000018
【図１５】
2014006739.tif 000019
【図１６】
2014006739.tif 000020
【図１７】
2014006739.tif 000021
【図１８】
2014006739.tif 000022
【図１９】
2014006739.tif 000023
【図２０】
2014006739.tif 000024
【図２１】
2014006739.tif 000025
【図２２】
2014006739.tif 000026
【図２３】
2014006739.tif 000027
【図２４】
2014006739.tif 000028
【図２５】
2014006739.tif 000029
【図２６】
2014006739.tif 000030