(57)【特許請求の範囲】
【請求項１】
仮想マシンの第１のライブマイグレーションが開始された場合に、前記仮想マシンおよび他に動作している他の仮想マシンの処理状況を取得する取得部と、
前記取得部によって取得された各仮想マシンの処理状況を用いて、前記第１のライブマイグレーションが開始された仮想マシンの処理状況と前記他の仮想マシンの処理状況との相関係数を算出する算出部と、
前記算出部によって算出された相関係数が正の値である他の仮想マシンの第２のライブマイグレーションの実行を、前記第１のライブマイグレーションの実行中に開始する実行部と
を有することを特徴とする仮想マシン制御装置。
【請求項２】
前記取得部は、前記第１のライブマイグレーションが開始された場合に、開始された時刻の前後所定時間内における、前記仮想マシンおよび他に動作している仮想マシンの処理状況を取得し、
前記算出部は、前記第１のライブマイグレーションが開始された時刻の前後所定時間における各仮想マシンの処理状況を用いて、前記第１のライブマイグレーションが開始された仮想マシンの処理状況と前記他の仮想マシンの処理状況との相関係数を算出することを特徴とする請求項１に記載の仮想マシン制御装置。
【請求項３】
前記各仮想マシンにおける単位時間あたりのメモリ書き換え割合を用いて前記各仮想マシンの転送時間を算出し、算出した転送時間に基づいて、前記第１のライブマイグレーションの終了までにライブマイグレーションが終了する仮想マシンを特定する特定部をさらに有し、
前記実行部は、前記特定部によって特定された仮想マシンのうち、前記算出部によって算出された相関係数が正の値である他の仮想マシンの前記第２のライブマイグレーションを実行することを特徴とする請求項１または２に記載の仮想マシン制御装置。
【請求項４】
前記算出部によって算出された各仮想マシン間の相関係数を記憶する記憶部をさらに有し、
前記実行部は、前記第１のライブマイグレーションが開始された場合に、前記記憶部に記憶される当該仮想マシンの処理状況と他の仮想マシンの処理状況との相関関係が正の値である他の仮想マシンの前記第２のライブマイグレーションの実行を、前記第１のライブマイグレーションの実行中に開始することを特徴とする請求項１または２に記載の仮想マシン制御装置。
【請求項５】
前記仮想マシンは前記仮想マシン制御装置とは別の物理マシンで動作し、前記仮想マシンが動作する物理マシンと前記仮想マシン制御装置は、別のネットワークに属することを特徴とする請求項１〜４のいずれか一つに記載の仮想マシン制御装置。
【請求項６】
コンピュータに、
仮想マシンの第１のライブマイグレーションが開始された場合に、前記仮想マシンおよび他に動作している他の仮想マシンの処理状況を取得し、
前記取得した各仮想マシンの処理状況を用いて、前記第１のライブマイグレーションが開始された仮想マシンの処理状況と前記他の仮想マシンの処理状況との相関係数を算出し、
前記算出した相関係数が正の値である他の仮想マシンの第２のライブマイグレーションの実行を、前記第１のライブマイグレーションの実行中に開始する
処理を実行させることを特徴とする仮想マシン制御プログラム。
【請求項７】
コンピュータが実行する制御方法であって、
仮想マシンの第１のライブマイグレーションが開始された場合に、前記仮想マシンおよび他に動作している他の仮想マシンの処理状況を取得し、
前記取得した各仮想マシンの処理状況を用いて、前記第１のライブマイグレーションが開始された仮想マシンの処理状況と前記他の仮想マシンの処理状況との相関係数を算出し、
前記算出した相関係数が正の値である他の仮想マシンの第２のライブマイグレーションの実行を、前記第１のライブマイグレーションの実行中に開始することを特徴とする仮想マシン制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法に関する。
【背景技術】
【０００２】
従来、サーバなどの物理マシン（ＰＭ：Physical  Machine）上で、仮想マシン（ＶＭ：Virtual  Machine）を動作させる仮想化技術が利用されている。仮想化技術としては、ハードウェアの機能により論理的に分割するＬＰＡＲ（Logical  PARtitioning）やソフトウェアにより論理的に分割する仮想化ＯＳ（Operating  System）などがある。
【０００３】
物理マシンでは、ＬＰＡＲや仮想化ＯＳを用いて、ＣＰＵ（Central  Processing  Unit）や記憶装置などのリソースを仮想化し、仮想化したリソースでＯＳを動作させて、仮想マシンを実現する。例えば、複数の仮想マシンに仮想化したリソースを割り当てる手法としては、各ＬＰＡＲのリソース利用状況を収集して相関係数を算出し、収集したリソース利用状況と相関係数とに基づいて、各ＬＰＡＲのリソースを配置する手法が知られている。
【０００４】
近年、インターネット上のサービスとして、情報処理システムに用いるＣＰＵ、記憶装置、ソフトウェアなどを提供するＩａａＳ（Infrastructure  as  a  Service）において、仮想化技術が利用されている。
【０００５】
ＩａａＳを提供する提供者側では、仮想マシンを動作させている物理マシンの保守や仮想マシン管理基盤の更新などを行う場合でも、仮想マシンの利用者との間で締結したＳＬＡ（Service  Level  Agreement）により、仮想マシンの停止が制限される。この場合、物理マシン上で動作する仮想マシンのメモリ内容を別の物理マシンにネットワーク経由でコピーし、別の物理マシンに仮想マシンを動的に移動させるライブマイグレーションを実行した上で、物理マシンの保守等を実施する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１９９５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のライブマイグレーションは、効率的でないという課題があった。例えば、複数の仮想マシンをライブマイグレーションする場合について説明する。物理マシンは、ライブマイグレーションを実行する場合、ＣＰＵ、メモリ、ネットワーク帯域などリソースを使用するので、同時に複数のライブマイグレーションを実行すると、リソースを多く消費して他の処理に支障をきたす。また、仮想マシンを１つずつライブマイグレーションした場合には、ライブマイグレーションで使用するリソースの消費を抑えることができるが、時間がかかる。すなわち、いずれの手法であっても、効率的なライブマイグレーションとは言えない。
【０００８】
１つの側面では、ライブマイグレーションを効率的に実行できる仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、仮想マシンのライブマイグレーションが開始された場合に、仮想マシンおよび他に動作している仮想マシンの処理状況を取得する取得部を有する。取得部によって取得された各仮想マシンの処理状況を用いて、ライブマイグレーションが開始された仮想マシンの処理状況と他の仮想マシンの処理状況との相関係数を算出する算出部を有する。算出部によって算出された相関係数が正の値である仮想マシンのライブマイグレーションを、開始されたライブマイグレーションと並行して実行する実行部を有する。
【発明の効果】
【００１０】
ライブマイグレーションを効率的に実行できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るシステムの全体構成を示す図である。
【図２】図２は、実施例２に係る仮想マシン制御装置とサーバの構成を示すブロック図である。
【図３】図３は、処理件数テーブルに記憶される情報の例を示す図である。
【図４】図４は、相関係数テーブルに記憶される情報の例を示す図である。
【図５】図５は、ＶＭの依存関係例を示す図である。
【図６】図６は、ＶＭ１のライブマイグレーション開始後のＶＭ２の処理件数の変化例を示す図である。
【図７】図７は、ＶＭ１のライブマイグレーション開始後のＶＭ２以外の各ＶＭの処理件数の変化例を示す図である。
【図８】図８は、各ＶＭの処理件数の変化を表す図である。
【図９】図９は、実施例２に係る仮想マシン制御装置における処理の流れを示すフローチャートである。
【図１０】図１０は、実施例３に係る仮想マシン制御装置における処理の流れを示すフローチャートである。
【図１１】図１１は、仮想マシン制御プログラムを実行するコンピュータシステムの例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、開示する仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
図１は、実施例１に係るシステムの全体構成を示す図である。図１に示すように、このシステムは、サーバ１と、サーバ２と、サーバ３と、サーバ４と、仮想マシン制御装置１０とがネットワークを介して相互に通信可能に接続される。
【００１４】
サーバ１は、仮想マシンＶＭ（Virtual  Machine）１、ＶＭ２、ＶＭ３を動作させる物理マシンであり、サーバ２は、仮想マシンＶＭ４、ＶＭ５、ＶＭ６を動作させている物理マシンである。サーバ３とサーバ４は、仮想マシンを動作させていない物理マシンである。これらのサーバは、ＶＭを用いてＷｅｂサービス等を提供し、例えばＩａａＳ（Infrastructure  as  a  Service）などを実現するサーバである。
【００１５】
仮想マシン制御装置１０は、取得部１０ａと算出部１０ｂと実行部１０ｃとを有し、各サーバで動作しているＶＭの移動制御を実施するコンピュータである。ここでは、ＶＭの利用者との間で締結したＳＬＡ（Service  Level  Agreement）により、例えば一ヶ月あたり５分以上は停止することができないなどＶＭの停止が制限されているものとする。
【００１６】
このような状態において、サーバ１およびサーバ２を保守作業等のために停止させる場合について説明する。まず、仮想マシン制御装置１０は、サーバ１で動作するＶＭ１をサーバ３にライブマイグレーションする指示を管理者等から受け付ける。続いて、仮想マシン制御装置１０は、ライブマイグレーションの開始指示をサーバ１に送信する。この結果、サーバ１は、ＶＭ１のライブマイグレーションを実行する。
【００１７】
次に、仮想マシン制御装置１０の取得部１０ａは、ＶＭ１のライブマイグレーションが開始された場合に、ＶＭ１および他に動作しているＶＭ２〜ＶＭ６の処理状況を取得する。そして、算出部１０ｂは、取得部１０ａによって取得された各ＶＭ１〜ＶＭ６の処理状況を用いて、ライブマイグレーションが開始されたＶＭ１の処理状況との相関係数を算出する。その後、実行部１０ｃは、算出部１０ｂによって算出された相関係数が正の値であるＶＭ２を、開始されたライブマイグレーションと並行してライブマイグレーションを実行させるＶＭ２と決定し、決定したＶＭ２をサーバ３に移動させるライブマイグレーションを実行する。この結果、サーバ１は、先にライブマイグレーションを実行したＶＭ１と相関の強いＶＭ２についても、ＶＭ１と並行してライブマイグレーションを実行する。
【００１８】
つまり、仮想マシン制御装置１０は、ＶＭ１のリクエスト処理件数がライブマイグレーションによって減少したのと同様に、リクエスト処理件数が減少したＶＭ２を特定する。このＶＭ２は、ＶＭ１がボトルネックとなってリクエスト処理件数が減少しているため、リソースの使用状況に余裕がある。このことを利用して、仮想マシン制御装置１０は、ライブマイグレーション対象であるＶＭ２のライブマイグレーションをＶＭ１のライブマイグレーションの完了を待たずに実行する。
【００１９】
その後、仮想マシン制御装置１０は、ＶＭ１とＶＭ２のライブマイグレーションが完了すると、ＶＭ３をサーバ３にライブマイグレーションさせる指示をサーバ１に送信する。そして、仮想マシン制御装置１０は、上述した手法によって、ＶＭ３と並行してＶＭ４のライブマイグレーションを実行する。さらに、仮想マシン制御装置１０は、ＶＭ３とＶＭ４のライブマイグレーションが完了すると、ＶＭ５をサーバ３にライブマイグレーションさせる指示をサーバ２に送信する。そして、仮想マシン制御装置１０は、上述した手法によって、ＶＭ５と並行してＶＭ６のライブマイグレーションを実行する。
【００２０】
したがって、ＶＭ１〜ＶＭ６を１つずつライブマイグレーションする場合に比べて、ライブマイグレーション回数を削減できるとともに、ボトルネックを利用しているので、サーバのリソースを有効的に利用できる。この結果、ライブマイグレーションを効率的に実行できる。
【実施例２】
【００２１】
次に、仮想マシン制御装置および各サーバについて説明する。実施例２に係る仮想マシン制御装置２０と各サーバとの接続関係は図１と同様とする。ここでは、各装置の構成、仮想マシン制御装置における処理の流れ、実施例２による効果を順に説明する。
【００２２】
［サーバの構成］
実施例２に係るシステムを仮想マシン制御装置と各サーバの構成について説明する。図２は、実施例２に係る仮想マシン制御装置とサーバの構成を示すブロック図である。なお、図１に示した各サーバは同様の構成を有するので、ここでは、サーバ１について説明する。
【００２３】
図２に示すように、サーバ１は、通信制御Ｉ／Ｆ部１ａと、記憶部１ｂと、仮想マシン領域１ｃと、制御部１ｄとを有する。なお、ここで示した各機能部はあくまで例であり、これに限定されるものではなく、例えば、キーボード、マウス、ディスプレイ等を有していてもよい。
【００２４】
通信制御Ｉ／Ｆ部１ａは、他の装置との間の通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部１ａは、ライブマイグレーションに伴ってＶＭのメモリ内容を送受信し、仮想マシン制御装置２０からライブマイグレーションの実行指示等を受信する。
【００２５】
記憶部１ｂは、後述する制御部１ｄによる各種処理に必要なデータおよびプログラムを格納する半導体メモリ素子、または、ハードディスクなどの記憶装置である。例えば、ＶＭの識別番号、ＶＭのコンテキスト、ＶＭのマシンイメージ等のＶＭに関する情報を記憶する。仮想マシン領域１ｃは、制御部１ｄによって作成された複数のＶＭを起動する領域であり、任意に数のＶＭを起動することができる。ここでは、仮想マシン領域１ｃでは、ＶＭ１とＶＭ２が動作している。
【００２６】
制御部１ｄは、例えばＣＰＵ（Central  Processing  Unit）などの電子回路である。この制御部１ｄは、ＯＳなどの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、仮想マシン管理部１ｅを有し、これらによって各種処理を実行する。
【００２７】
仮想マシン管理部１ｅは、ＶＭの作成、削除、起動、停止などＶＭに関する各種制御を実施する制御部であり、計測部１ｆを有する。例えば、仮想マシン管理部１ｅは、ＶＭ作成指示を受け付けた場合には、仮想マシン領域１ｃにＶＭを作成して起動し、ＶＭ削除指示を受け付けた場合には、該当ＶＭを仮想マシン領域１ｃから削除する。また、仮想マシン管理部１ｅは、仮想マシン制御装置２０からライブマイグレーション実行指示を受信した場合には、該当するＶＭのライブマイグレーションを実行する。
【００２８】
ここで、ライブマイグレーションについて簡単に説明する。仮想マシン管理部１ｅは、記憶部１ｂに記憶される該当ＶＭに関する情報から、使用されていないコンテキストなどのメモリ情報をライブマイグレーション先にコピーする。そして、仮想マシン管理部１ｅは、ＶＭに使用されていたメモリ情報が解放されると、解放されたメモリ情報をライブマイグレーション先にコピーする。このように、仮想マシン管理部１ｅは、対象ＶＭに使用されていたメモリ情報を順次ライブマイグレーション先にコピーし、未コピーの容量が所定値未満になると、対象ＶＭを一時的に停止して、未コピーのメモリ情報をライブマイグレーション先にコピーする。そして、仮想マシン管理部１ｅは、ライブマイグレーション先にコピーされたＶＭの実行指示を送信する。このような手法で、仮想マシン管理部１ｅは、ＶＭをライブマイグレーションする。なお、ここで記載した手法はあくまで例示であり、これに限定されるものではない。
【００２９】
計測部１ｆは、仮想マシン領域１ｃ内で動作する各ＶＭの処理状況を収集して、仮想マシン制御装置２０に送信する。例えば、計測部１ｆは、ＶＭ１とＶＭ２のそれぞれについて、単位時間当たりのリクエスト処理件数、ＶＭに割り当てられた仮想ＣＰＵの使用率等を収集する。そして、計測部１ｆは、収集したＶＭごとの処理状況を仮想マシン制御装置２０に送信する。
【００３０】
例えば、計測部１ｆは、ＶＭが動作を開始すると常時、処理状況を収集してもよい。また、計測部１ｆは、ライブマイグレーションの実行指示を受信してから収集するようにしてもよい。また、計測部１ｆは、収集したＶＭごとの処理状況を仮想マシン制御装置２０に定期的に送信してもよく、ライブマイグレーションの実行指示を受信してから送信するようにしてもよい。また、計測部１ｆは、仮想マシン制御装置２０から取得要求を受信した後は、処理状況を収集するたびに送信することとしてもよい。
【００３１】
［仮想マシン制御装置の構成］
図２に示すように、仮想マシン制御装置２０は、通信制御Ｉ／Ｆ部２１と、入力部２２と、表示部２３と、記憶部２４と、制御部２５とを有する。なお、ここで示した各機能部は例であり、これに限定されるものではなく、他の制御部等を有していてもよい。
【００３２】
通信制御Ｉ／Ｆ部２１は、他の装置との間の通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部２１は、各サーバからＶＭの処理状況を受信し、各サーバにライブマイグレーションの実行指示を送信する。
【００３３】
入力部２２は、例えばキーボードやマウスなどであり、ライブマイグレーションの開始指示などを管理者等から受け付けて、制御部２５に出力する。表示部２３は、例えばモニタやスピーカーなどであり、制御部２５によって算出された相関係数やライブマイグレーション結果などを表示する。
【００３４】
記憶部２４は、制御部２５による各種処理に必要なデータおよびプログラムを格納するとともに、処理件数テーブル２４ａと相関係数テーブル２４ｂとを有する半導体メモリ素子、または、ハードディスクなどの記憶装置である。例えば、記憶部２４は、仮想マシン制御装置２０が制御対象とするサーバのＩＰ（Internet  Protocol）アドレスとサーバで実行されるＶＭとを対応付けて記憶する。
【００３５】
処理件数テーブル２４ａは、制御部２５の取得部２５ｂによって取得されたＶＭごとの処理件数を記憶する。図３は、処理件数テーブルに記憶される情報の例を示す図である。図３に示すように、処理件数テーブル２４ａは、「時刻、ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５、ＶＭ６」を対応付けて記憶する。
【００３６】
ここで記憶される「時刻」は、各サーバがＶＭのリクエスト処理件数の収集を開始してからの経過時間であり、「各ＶＭ」は、処理状況が収集されたＶＭのリクエスト処理件数を示す。なお、ここでは、図１に示したＶＭ１〜ＶＭ６が実行されている例について説明しているため、「ＶＭ１〜ＶＭ６」を対応付けて記憶している例を示したが、ＶＭ１〜ＶＭ１０が実行されている場合には、「ＶＭ１〜ＶＭ１０」を対応付けて記憶する。
【００３７】
図３の場合、各サーバがＶＭのリクエスト処理件数の収集を開始した時刻「０」では、ＶＭ１の処理件数が「５５」、ＶＭ２の処理件数が「５０」、ＶＭ３の処理件数が「７６」である。また、ＶＭ４の処理件数が「６５」、ＶＭ５の処理件数が「５９」、ＶＭ６の処理件数が「３２」であることを示す。
【００３８】
また、各サーバがＶＭのリクエスト処理件数の収集を開始してから１秒後の時刻「１」では、ＶＭ１の処理件数が「６２」、ＶＭ２の処理件数が「５６」、ＶＭ３の処理件数が「７７」である。また、ＶＭ４の処理件数が「５６」、ＶＭ５の処理件数が「６４」、ＶＭ６の処理件数が「３８」であることを示す。
【００３９】
また、各サーバがＶＭのリクエスト処理件数の収集を開始してから７秒後の時刻「７」では、ＶＭ１の処理件数が「２２」、ＶＭ２の処理件数が「１８」、ＶＭ３の処理件数が「８１」である。また、ＶＭ４の処理件数が「９４」、ＶＭ５の処理件数が「９７」、ＶＭ６の処理件数が「４１」であることを示す。
【００４０】
図２に戻り、相関係数テーブル２４ｂは、制御部２５の算出部２５ｃによって算出された相関係数を記憶する。図４は、相関係数テーブルに記憶される情報の例を示す図である。図４に示すように、相関係数テーブル２４ｂは、「実行ＶＭ」と「対象ＶＭ」とを対応付けて記憶する。「実行ＶＭ」は、先にライブマイグレーションが実行されたＶＭを示し、「対象ＶＭ」は、ライブマイグレーションが未実行であり並行実行の候補とするＶＭを示す。なお、図４では、ＶＭ４までを図示しているが、動作している各ＶＭについて記憶される。
【００４１】
図４の場合、ＶＭ１のライブマイグレーションが実行された場合、ＶＭ１のリクエスト処理件数とＶＭ２のリクエスト処理件数との相関係数が「０．８４」であることを示す。また、ＶＭ１のリクエスト処理件数とＶＭ３のリクエスト処理件数との相関係数が「−０．３１」であり、ＶＭ１のリクエスト処理件数とＶＭ４のリクエスト処理件数との相関係数が「−０．９９」であることを示す。
【００４２】
同様に、ＶＭ２のライブマイグレーションが実行された場合、ＶＭ２のリクエスト処理件数とＶＭ１のリクエスト処理件数との相関係数が「０．８５」であることを示す。また、ＶＭ２のリクエスト処理件数とＶＭ３のリクエスト処理件数との相関係数が「−０．３４」であり、ＶＭ２のリクエスト処理件数とＶＭ４のリクエスト処理件数との相関係数が「−０．９５」であることを示す。
【００４３】
制御部２５は、例えばＣＰＵなどの電子回路であり、ＯＳなどの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。制御部２５は、実行開始部２５ａと、取得部２５ｂと、算出部２５ｃと、実行制御部２５ｄとを有し、これらによって各種処理を実行する。
【００４４】
実行開始部２５ａは、ＶＭのライブマイグレーションを開始する。例えば、実行開始部２５ａは、入力部２２によって、ＶＭ１のライブマイグレーション開始指示が受け付けられた場合、ＶＭ１を実行するサーバ１に対して、ＶＭ１のライブマイグレーション開始指示を送信する。なお、実行開始部２５ａは、ライブマイグレーションのスケジューリング等を行うことで、管理者等から開始指示を受信せずに、自動的に開始時期を判定して開始指示を送信することもできる。
【００４５】
取得部２５ｂは、実行開始部２５ａによってＶＭのライブマイグレーションが開始された場合に、ライブマイグレーションが開始されたＶＭおよび他に動作しているＶＭのリクエスト処理件数を取得して、処理件数テーブル２４ａに格納する。例えば、取得部２５ｂは、ＶＭのライブマイグレーションが開始された場合、記憶部２４に記憶される各サーバのＩＰアドレスを用いて、各サーバに処理件数取得要求を送信し、各ＶＭのリクエスト処理件数を取得する。
【００４６】
図１の場合、取得部２５ｂは、ＶＭ１のライブマイグレーションが開始された場合、サーバ１〜サーバ４に対して処理件数取得要求を送信し、ＶＭ１〜ＶＭ６のリクエスト処理件数を受信する。このとき、例えば、取得部２５ｂは、ＶＭ１のライブマイグレーション開始前後５分間の処理件数を要求することもできる。つまり、取得部２５ｂは、ＶＭ１のライブマイグレーションが「１２：００」に開始された場合に、「１１：５５〜１２：０５」までに収集されたリクエスト処理件数を取得することもできる。そして、取得部２５ｂは、受信したＶＭ１〜ＶＭ６のリクエスト処理件数を処理件数テーブル２４ａに格納するとともに、リクエスト処理件数を受信したことを算出部２５ｃに出力する。
【００４７】
算出部２５ｃは、取得部２５ｂによって取得された各ＶＭの処理状況を用いて、先にライブマイグレーションが開始されたＶＭの処理状況と他のＶＭの処理状況との相関係数を算出する。そして、算出部２５ｃは、算出した相関係数を相関係数テーブル２４ｂに格納するとともに、算出したことを実行制御部２５ｄに出力する。
【００４８】
例えば、算出部２５ｃは、ＶＭ１のライブマイグレーションが開始された場合、ＶＭ１の処理件数とＶＭ２の処理件数との相関係数、ＶＭ１の処理件数とＶＭ３の処理件数との相関係数を算出する。また、算出部２５ｃは、ＶＭ１の処理件数とＶＭ４の処理件数との相関係数、ＶＭ１の処理件数とＶＭ５の処理件数との相関係数、ＶＭ１の処理件数とＶＭ３の処理件数との相関係数を算出する。
【００４９】
具体的な算出手法の例として、算出部２５ｃは、式（１）と式（２）を用いて、相関係数「Ｃｃ」を算出する。式（１）および式（２）における「Ｘ」は、先にライブマイグレーションが開始されたＶＭにおけるｎ個の時系列データであり、「Ｙ」は、相関係数を求めるＶＭにおけるｎ個の時系列データである。式（２）における「ｘｊ」は、Ｘのｎ個の時系列データのうちｊ番目のデータを示し、「ｙｊ」は、Ｙのｎ個の時系列データのうちｊ番目のデータを示す。
【００５０】
また、「Ｃｏｖ（Ｘ、Ｙ）」は、ＸとＹの共分散を示し、「δｘ」は、Ｘの標準偏差を示し、「δｙ」は、Ｙの標準偏差を示し、「ｕｘ」は、Ｘの相加平均を示し、「ｕｙ」は、Ｙの相加平均を示す。
【００５１】
【数１】
0005614226.tif 000002
【数２】
0005614226.tif 000003
【００５２】
例えば、ＶＭ１のライブマイグレーションが開始された前後５分間のリクエスト処理数を用いて、ＶＭ１とＶＭ２の相関係数を求める場合について説明する。この場合、「ｎ」は、ＶＭ１のライブマイグレーションが開始された前後５分間で取得された処理件数の数「１０」である。「Ｘ」は、ＶＭ１のライブマイグレーションが開始された前後５分間のリクエスト処理数の各データであり、「Ｙ」は、ＶＭ１のライブマイグレーションが開始された前後５分間のＶＭのリクエスト処理数の各データである。
【００５３】
一例として、図３における時刻「５」でＶＭ１のライブマイグレーションが開始された場合に、ＶＭ１の処理件数とＶＭ２の処理件数との相関係数を算出する例について説明する。この場合、ＶＭ１のライブマイグレーションが開始された前後５分間は、時刻「０」〜「１０」に該当するので、「ｎ」＝「１０」となる。「Ｘ」は、ＶＭ１のリクエスト処理件数である「５５、６２、５１、５４、５３、２４、１８、２２、２１、２３、３０」となり、「Ｙ」は、ＶＭ２のリクエスト処理件数である「５０、５６、６１、５１、５４、５０、２３、１８、２２、２１、２４」となる。
【００５４】
また、「ｘ３」は、「５１」となり、「ｙ５」は、「５４」となる。「ｕｘ」は、「５５、６２、５１、５４、５３、２４、１８、２２、２１、２３、３０」の平均である。「ｕｙ」は、「５０、５６、６１、５１、５４、５０、２３、１８、２２、２１、２４」の平均となる。なお、相加平均や標準偏差の算出手法は、一般的に利用される公知の手法を用いるので、ここでの説明は省略する。
【００５５】
実行制御部２５ｄは、算出部２５ｃによって算出された相関係数が正の相関であるＶＭを、開始されたライブマイグレーションと並行してライブマイグレーションを実行させるＶＭと決定し、決定したＶＭのライブマイグレーションを実行する。
【００５６】
例えば、ＶＭ１のライブマイグレーションが開始され、算出部２５ｃが算出したＶＭ１のリクエスト処理件数と他のＶＭのリクエスト処理件数との相関係数が図４の１行目であったとする。この場合、実行制御部２５ｄは、図４の１行目に記憶される相関係数のうち、最も１に近い相関係数である「ＶＭ２」を特定する。そして、実行制御部２５ｄは、先に実行されているＶＭ１のライブマイグレーションと並行してライブマイグレーションさせるＶＭを「ＶＭ２」と決定する。その後、実行制御部２５ｄは、「ＶＭ２」を実行するサーバ１およびサーバ１のＩＰアドレスを記憶部２４から特定し、サーバ１に対して、ＶＭ２をサーバ３に移動させるライブマイグレーションの実行指示を送信する。
【００５７】
この結果、サーバ１は、ＶＭ１をライブマイグレーション中ではあるが、並行して、ＶＭ２をサーバ３に移動させるライブマイグレーションを実行する。なお、実行制御部２５ｄは、移動先のサーバについては、任意に決定することができ、また、ＣＰＵ使用率などのリソース使用率が小さいサーバを移動先としてもよい。
【００５８】
［具体例］
次に、各ＶＭの依存関係の具体例を挙げて相関関係について説明する。図５は、ＶＭの依存関係例を示す図であり、図６は、ＶＭ１のライブマイグレーション開始後のＶＭ２の処理件数の変化例を示す図である。図７は、ＶＭ１のライブマイグレーション開始後のＶＭ２以外の各ＶＭの処理件数の変化例を示す図であり、図８は、各ＶＭの処理件数の変化を表す図である。
【００５９】
ここでは、図５に示すように、ＶＭ１〜ＶＭ５は、Ｗｅｂ−ＡＰ（Application）−ＤＢ（Database）３層システムを形成している例で説明する。ＶＭ１とＶＭ４は、Ｗｅｂサービスを提供する仮想マシンである。ＶＭ２は、ＶＭ１からリクエストを受け付けて、ＶＭ３から各種データを取得し、ＶＭ１に応答するＡＰサーバを実現する仮想マシンである。同様に、ＶＭ５は、ＶＭ４からリクエストを受け付けて、ＶＭ３から各種データを取得し、ＶＭ４に応答するＡＰサーバを実現する仮想マシンである。ＶＭ３は、このシステムで利用される各種情報を格納するデータベースサーバを実現する仮想マシンである。
【００６０】
また、仮想マシン制御装置は、図示していないが上記各ＶＭが実行されているサーバそれぞれ接続されているものとする。なお、各ＶＭは、１つの筐体で実現されていてもよく、別々の筐体で実現されていてもよい。また、ＶＭ１とＶＭ２が同じ筐体などで実現されるなど、ＶＭを動作させる物理マシンの数は任意に設定できる。
【００６１】
このシステムでは、例えば、クライアントからのＨＴＴＰ（Hypertext  Transfer  Protocol）リクエストは、ロードバランサによってＶＭ１又はＶＭ４に振り分けられる。リクエストを受信したＶＭ１又はＶＭ４は、ＶＭ２又はＶＭ５が有するアプリケーション等を実行してＶＭ３に接続する。そして、ＶＭ１又はＶＭ４は、ＶＭ３から各種データを取得し、取得したデータをリクエスト応答として、クライアントに送信する。
【００６２】
そして、このシステムでは、各ＶＭの使用契約として、利用者との間でＳＬＡが締結されており、このＳＬＡが遵守されている。例えば、ＳＬＡの取り決めとしては、各ＶＭにおける単位時間当たりの処理件数を所定値以上とするなどがあり、処理件数が所定値未満となった場合にはＳＬＡ違反となる。したがって、図５のシステムを管理する企業等は、ＳＬＡ違反が発生しないように、ＶＭや物理マシンの管理を実施している。
【００６３】
このような状況において、ＶＭ１〜ＶＭ５をライブマイグレーションする例について説明する。ここでは、各ＶＭのライブマイグレーション先は、図示しない別のサーバであるものとする。まず、仮想マシン制御装置２０は、管理者等からＶＭ１のライブマイグレーションの開始指示を受け付ける。そして、仮想マシン制御装置２０は、ＶＭ１のライブマイグレーションの開始を、ＶＭ１を実行するサーバに送信する。その後、ＶＭ１のライブマイグレーションが開始される。このＶＭ１のライブマイグレーションが開始された時刻を「ｔ０」とする。
【００６４】
ＶＭ１のライブマイグレーションが開始されると、図６に示すように、ＶＭ１では、ライブマイグレーションにリソースを奪われるために、サービスそのものの利用するリソースが低下する（図６のＡ参照）。すると、ＶＭ１が処理できるクライアントからのリクエスト量は減るので、ＶＭ１の後段に位置するＶＭ２の処理件数も減少する（図６のＢ参照）。具体的には、ＶＭ２は、ＶＭ１から受信した要求を処理する仮想マシンであるので、ＶＭ１から受信する処理件数が減少すれば、ＶＭ２自体で処理する処理件数も減少する。つまり、ＶＭ２は、ＶＭ１の処理件数の減少がボトルネックとなって、自身の処理件数も減少することとなる。
【００６５】
一方、ＶＭ１のライブマイグレーションが開始された後もクライアントからのリクエスト量が減らないとすると、ロードバランサは、処理できる件数が減っているＶＭ１ではなく、ＶＭ４に対してリクエストを多く振り分ける。したがって、図７に示すように、ＶＭ４の処理件数は、ＶＭ１のライブマイグレーションが開始された時刻「ｔ０」以降、増加する（図７のＣ参照）。同様に、ＶＭ４が処理するクライアントからのリクエスト量が増加するので、ＶＭ４の後段に位置するＶＭ５の処理件数も増加する（図７のＤ参照）。なお、ＶＭ１のライブマイグレーションが開始された後もクライアントからのリクエスト量が減らないので、ＶＭ３の処理件数は、大きく変化しない（図７のＥ参照）。
【００６６】
したがって、図８に示すように、ＶＭ１のライブマイグレーションが開始された時刻「ｔ０＝５」前までは、ＶＭ１とＶＭ４の処理件数に大きな差はなく、同様に、ＶＭ２とＶＭ５の処理件数にも大きな差はない。ところが、ＶＭ１のライブマイグレーションが開始された時刻「ｔ０＝５」以降では、ＶＭ１の処理件数減少に伴ってＶＭ２の処理件数も減少する。一方、ＶＭ１の処理件数減少に伴って、ＶＭ４の処理件数は増加するとともに、ＶＭ５の処理件数も増加する。
【００６７】
上述したことを利用すると、仮想マシン制御装置は、ＶＭ１のライブマイグレーション開始前後の各ＶＭの処理件数を用いた場合、ＶＭ１の処理件数とＶＭ２処理件数との相関係数として正の値を算出する。一方、仮想マシン制御装置は、ＶＭ１のライブマイグレーション開始前後の各ＶＭの処理件数を用いた場合、ＶＭ１の処理件数とＶＭ４処理件数との相関係数として負の値を算出する。同様に、仮想マシン制御装置は、ＶＭ１のライブマイグレーション開始前後では、ＶＭ１の処理件数とＶＭ５処理件数との相関係数として負の値を算出し、ＶＭ１の処理件数とＶＭ３処理件数との相関係数として負の値を算出する。
【００６８】
つまり、仮想マシン制御装置は、相関係数を算出して、ＶＭ１の処理件数減少と同様に処理件数が減少したＶＭ２を特定できる。そして、仮想マシン制御装置は、ＶＭ１のライブマイグレーションと並行して、ＶＭ２のライブマイグレーションを実行する。すなわち、仮想マシン制御装置は、ＶＭ１の処理件数減少がボトルネックとなって処理件数が減少しており、リソース使用率に余裕のあるＶＭのライブマイグレーションを実行する。
【００６９】
［処理の流れ］
次に、仮想マシン制御装置における処理の流れについて説明する。図９は、実施例２に係る仮想マシン制御装置における処理の流れを示すフローチャートである。
【００７０】
図９に示すように、仮想マシン制御装置２０の実行開始部２５ａは、ＶＭのライブマイグレーションの開始指示を受信すると（ステップＳ１０１Ｙｅｓ）、指示されたＶＭのライブマイグレーションを開始する（ステップＳ１０２）。
【００７１】
続いて、取得部２５ｂは、他にライブマイグレーション対象のＶＭが存在すると判定した場合（ステップＳ１０３Ｙｅｓ）、物理サーバから各ＶＭの処理件数を取得する（ステップＳ１０４）。例えば、取得部２５ｂは、各サーバからＶＭの実行状況等を取得することで、ライブマイグレーション対象のＶＭが存在するか否かを判定する。このとき、取得部２５ｂは、先に開始されたライブマイグレーション開始前後５分間の処理件数を要求することもできる。なお、取得部２５ｂは、他にライブマイグレーション対象のＶＭが存在しないと判定した場合（ステップＳ１０３Ｎｏ）、処理を終了する。
【００７２】
その後、算出部２５ｃは、取得部２５ｂによって取得された各ＶＭの処理件数を用いて、先にライブマイグレーションが開始されたＶＭの処理状況と他のＶＭの処理状況各々との相関係数を算出する（ステップＳ１０５）。
【００７３】
そして、実行制御部２５ｄは、正の相関係数のうち最も相関の高いＶＭを、先に開始されたライブマイグレーションと並行してライブマイグレーションを実行させるＶＭと決定し、決定したＶＭのライブマイグレーションの実行を指示する（ステップＳ１０６）。
【００７４】
その後、仮想マシン制御装置２０は、現在実行されている２つのライブマイグレーションが終了するまで処理を待機してもよく、ステップＳ１０３以降の処理を繰り返して実行してもよい。
【００７５】
［実施例２による効果］
実施例２によれば、仮想マシン制御装置２０は、ＶＭ１のライブマイグレーションが開始された場合に、ＶＭ１および他に動作しているＶＭ２〜ＶＭ６の処理状況を取得する。仮想マシン制御装置２０は、取得された各ＶＭの処理状況を用いて、ライブマイグレーションが開始されたＶＭ１の処理状況とＶＭ２〜ＶＭ６各々の処理状況との相関係数を算出する。仮想マシン制御装置２０は、算出された相関係数が正の値であるＶＭ２のライブマイグレーションを、開始されたＶＭ１のライブマイグレーションと並行して実行する。この結果、ライブマイグレーションを効率的に実行できる。
【００７６】
また、実施例２によれば、先にライブマイグレーションが実行されたＶＭがボトルネックとなってリクエスト処理件数が減少したことにより、リソース利用率が減少した分をライブマイグレーションに使用する。この結果、サービスレベルを低下させることなく、複数のＶＭのライブマイグレーションを実行できる。
【００７７】
上述した例の場合、ＶＭ１がボトルネックとなってＶＭ２のＳＬＡ違反が発生するが、開示する手法を用いることで、ＶＭ２の処理件数が低下した分をライブマイグレーションで使用するので、ＳＬＡ違反の可能性が小さくできる。また、複数ＶＭを同時に転送するので、総転送時間を短くでき、全体のＳＬＡ違反を低減できる。
【００７８】
従来、運用管理者は、ユーザ仮想マシンのＳＬＡ低下を避けるために、早朝などリソース利用の少ない時間にライブマイグレーションを計画していた。ところが、開示した手法を用いることで、運用管理者の複数ＶＭのライブマイグレーション計画立案が容易になるので、運用管理者の工数削減効果やコストメリットも大きい。
【００７９】
また、実施例２によれば、先に開始されたライブマイグレーション前後の処理件数の変化から相関係数を算出する。したがって、ライブマイグレーションを契機にした処理件数の変化から相関係数を算出でき、より精度の高い相関係数を算出することができる。
【００８０】
つまり、上述した例で説明すると、ＶＭ１のライブマイグレーション開始後だけの処理件数では、システムダウンやハードウェア故障等によって処理件数が減少しているＶＭに対して正の高い相関となる場合がある。ところが、ＶＭ１のライブマイグレーション開始前後の処理件数を用いることで、ＶＭ１のライブマイグレーションを契機とする処理件数の変化から相関係数を算出できる。したがって、システムダウンやハードウェア故障等によって処理件数が減少しているＶＭが正の高い相関となることを防止できる。
【実施例３】
【００８１】
ところで、開示する仮想マシン制御装置は、相関係数が高いＶＭのうち、先に開始されたライブマイグレーションが終了するまでに、ライブマイグレーションが完了するＶＭを特定することもできる。そこで、実施例３では、相関係数が高いＶＭのうち、先に開始されたライブマイグレーションが終了するまでに、完了するライブマイグレーションを実行する例について説明する。
【００８２】
例えば、仮想マシン制御装置２０の算出部２５ｃは、各ＶＭにおける単位時間あたりのメモリ書き換え割合を用いて、各ＶＭの転送時間を算出する。そして、算出部２５ｃは、算出した転送時間に基づいて、先に開始されたライブマイグレーションの終了までにマイグレーションが終了するＶＭを特定する。
【００８３】
一例を挙げると、算出部２５ｃは、式（３）を用いて各ＶＭの転送時間を算出する。式（３）に示す「ＶＭメモリ量」は、ＶＭが使用しているメモリ容量を示す。また、「ＬＭ帯域幅」は、ライブマイグレーションで使用する帯域幅を示す。また、「ダーティ率」は、各ＶＭの単位時間あたりのメモリ書き換え割合を示す。
【００８４】
また、「ＶＭメモリ量」は、各ＶＭを実行する物理サーバで管理される情報であり、物理サーバから取得することができる。「ＬＭ帯域幅」は、仮想マシン制御装置２０等に予め設定された情報であり、各ＶＭに対して一定値とする。「ダーティ率」は、各物理サーバで計測することができる。
【００８５】
【数３】
0005614226.tif 000004
【００８６】
つまり、図１の場合で説明すると、算出部２５ｃは、ＶＭ１〜ＶＭ６各々の転送時間を算出する。そして、算出部２５ｃは、ＶＭ１の転送時間よりも短い転送時間であるＶＭを特定する。その後、算出部２５ｃは、特定したＶＭの処理件数とＶＭ１との処理件数との相関係数を算出する。そして、実行制御部２５ｄは、算出部２５ｃが算出した相関係数が正の相関であるＶＭのライブマイグレーションを開始する。
【００８７】
なお、転送時間の算出と相関係数の算出とは順番が入れ替わってもよい。例えば、算出部２５ｃは、先に、ＶＭ１との相関係数が正の相関であるＶＭを特定し、特定したＶＭとＶＭ１について転送時間を算出する。そして、実行制御部２５ｄは、ＶＭ１の転送時間よりも短い転送時間であるＶＭのライブマイグレーションを開始するようにしてもよい。
【００８８】
次に、実施例３に係る処理の流れを説明する。図１０は、実施例３に係る仮想マシン制御装置における処理の流れを示すフローチャートである。
【００８９】
図１０に示すように、仮想マシン制御装置２０の実行開始部２５ａは、ＶＭのライブマイグレーションの開始指示を受信すると（ステップＳ２０１Ｙｅｓ）、指示されたＶＭのライブマイグレーションを開始する（ステップＳ２０２）。
【００９０】
続いて、取得部２５ｂは、他にライブマイグレーション対象のＶＭが存在すると判定した場合（ステップＳ２０３Ｙｅｓ）、物理サーバから各ＶＭの処理件数を取得する（ステップＳ２０４）。このとき、取得部２５ｂは、各物理サーバから「ＶＭメモリ量」およびＶＭの「ダーティ率」を取得する。さらに、取得部２５ｂは、仮想マシン制御装置２０の記憶部等から予め設定されている「ＬＭ帯域幅」を取得する。なお、取得部２５ｂは、他にライブマイグレーション対象のＶＭが存在しないと判定した場合（ステップＳ２０３Ｎｏ）、処理を終了する。
【００９１】
その後、算出部２５ｃは、取得部２５ｂによって取得された各ＶＭの処理件数を用いて、先にライブマイグレーションが開始されたＶＭの処理状況と他のＶＭの処理状況各々との相関係数を算出する（ステップＳ２０５）。
【００９２】
続いて、算出部２５ｃは、「ＶＭメモリ量」、「ダーティ率」、「ＬＭ帯域幅」を式（３）に代入して、各ＶＭの転送時間を算出する（ステップＳ２０６）。このとき、算出部２５ｃは、正の相関があるＶＭについてのみ転送時間を算出してもよく、全ＶＭについて転送時間を算出することもできる。
【００９３】
その後、算出部２５ｃは、算出した転送時間に基づいて、先に開始されたライブマイグレーションの終了までにライブマイグレーションが終了する、ライブマイグレーション未実行のＶＭあるか否かを判定する（ステップＳ２０７）。
【００９４】
そして、実行制御部２５ｄは、算出部２５ｃによって実行可能なライブマイグレーション未実行のＶＭがあると判定された場合（ステップＳ２０７Ｙｅｓ）、当該ＶＭのライブマイグレーションの実行を指示する（ステップＳ２０８）。一方、実行制御部２５ｄは、算出部２５ｃによって実行可能なライブマイグレーション未実行のＶＭがないと判定された場合（ステップＳ２０７Ｎｏ）、実行中のライブマイグレーションが終了するまで待機する（ステップＳ２０９）。
【００９５】
その後、仮想マシン制御装置２０は、現在実行されているライブマイグレーションが終了するまで処理を待機してもよく、ステップＳ２０３以降の処理を繰り返して実行してもよい。
【００９６】
実施例３によれば、仮想マシン制御装置２０は、各ＶＭにおける単位時間あたりのメモリ書き換え割合を用いて各ＶＭの転送時間を算出する。仮想マシン制御装置２０は、算出した転送時間に基づいて、開始されたＶＭ１のライブマイグレーションの終了までにライブマイグレーションが終了するＶＭを特定する。仮想マシン制御装置２０は、特定されたＶＭのうち相関係数が正の値であるＶＭのライブマイグレーションを実行する。したがって、１つ目のＶＭのライブマイグレーション終了後に、同時に実施したライブマイグレーションが完了していないことによるサービスレベル低下を低減することができる。
【実施例４】
【００９７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００９８】
（ＶＭの依存関係）
例えば、図５〜図９を用いてＶＭの依存関係例について説明したが、これに限定されるものではない。つまり、開示する仮想マシン制御装置は、Ｗｅｂ−ＡＰ−ＤＢ３層システム以外のシステム構成についても同様に適用することができる。
【００９９】
（ネットワーク形態）
実施例１〜３では、仮想マシン制御装置２０と各サーバと同様のネットワークに属する例について説明したが、これに限定されるものではない。例えば、ＶＭが動作するサーバと仮想マシン制御装置２０は、別のネットワークに属していてもよい。一例としては、仮想マシン制御装置２０と各サーバとは別のＬＡＮ（Local  Area  Network）に属しており、ＬＡＮとは異なるネットワークで接続されていてもよい。
【０１００】
（既算出の相関係数を利用）
例えば、仮想マシン制御装置２０は、過去に算出した相関係数を相関係数テーブル２４ｂに格納しておき、２回目以降のライブマイグレーションでは、相関係数を算出することなく、相関係数テーブル２４ｂの情報を使用する。例えば、仮想マシン制御装置２０は、各サーバから構成情報を確認するなどして、ＶＭの処理内容やＶＭ間関係が変わらないと判定した場合に相関係数テーブル２４ｂの情報を使用する。この結果、相関係数算出までにかかる時間を省き、複数ＶＭのライブマイグレーションを高速化できる。
【０１０１】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３、図４、図８等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１０２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば取得部２５ｂと算出部２５ｃとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１０３】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１０４】
図１１は、仮想マシン制御プログラムを実行するコンピュータシステムの例を示す図である。図１１に示すように、コンピュータシステム１００は、バス１００ａにＣＰＵ１０５、ＲＯＭ（Read  Only  Memory）１０４、ＲＡＭ（Random  Access  Memory）１０１が接続される。また、コンピュータシステム１００は、バス１００ａにＮＩＣ（Network  Interface  Card）１０２、ＨＤＤ（Hard  Disk  Drive）１０３が接続されている。
【０１０５】
また、ＨＤＤ１０３には、図２に示した処理件数テーブル２４ａに対応する処理件数テーブル１０３ａが設けられる。同様に、ＨＤＤ１０３には、相関係数テーブル２４ｂに対応する相関係数テーブル１０３ｂが設けられる。
【０１０６】
ＲＯＭ１０４は、実行開始プログラム１０４ａ、取得プログラム１０４ｂ、算出プログラム１０４ｃ、実行制御プログラム１０４ｄを保持する。タンジブル（tangible）な記録媒体の例としてＲＯＭ１０３を例に挙げたが、ＨＤＤ、ＲＡＭ、ＣＤＲＯＭ等の他のタンジブルなコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、タンジブルな記憶媒体を遠隔地に配置し、コンピュータが、そのタンジブルな記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身のタンジブルな記録媒体に格納して用いてもよい。
【０１０７】
ＣＰＵ１０５は、実行開始プログラム１０４ａを読み出して実行することで、実行開始部２５ａと同様の動作を実行開始プロセス１０５ａとして実現する。また、ＣＰＵ１０５は、取得プログラム１０４ｂを読み出して実行することで、取得部２５ｂと同様の動作を取得プロセス１０５ｂとして実現する。ＣＰＵ１０５は、算出プログラム１０４ｃを読み出して実行することで、算出部２５ｃと同様の動作を算出プロセス１０５ｃとして実現する。ＣＰＵ１０５は、実行制御プログラム１０４ｄを読み出して実行することで、実行制御部２５ｄと同様の動作を実行制御プロセス１０５ｄとして実現する。このようにＲＯＭ１０４に保持した各種プログラムは、仮想マシン制御プログラムの一部として機能し、コンピュータ１００は、ＲＯＭ１０４から各種プログラムを読み出して実行することで仮想マシン制御方法を実行する仮想マシン制御装置として動作する。
【符号の説明】
【０１０８】
１  サーバ
１ａ  通信制御Ｉ／Ｆ部
１ｂ  記憶部
１ｃ  仮想マシン領域
１ｄ  制御部
１ｅ  仮想マシン管理部
１ｆ  計測部
２０  仮想マシン制御装置
２１  通信制御Ｉ／Ｆ部
２２  入力部
２３  表示部
２４  記憶部
２４ａ  処理件数テーブル
２４ｂ  相関係数テーブル
２５  制御部
２５ａ  実行開始部
２５ｂ  取得部
２５ｃ  算出部
２５ｄ  実行制御部
【図１】
0005614226.tif 000005
【図２】
0005614226.tif 000006
【図３】
0005614226.tif 000007
【図４】
0005614226.tif 000008
【図５】
0005614226.tif 000009
【図６】
0005614226.tif 000010
【図７】
0005614226.tif 000011
【図８】
0005614226.tif 000012
【図９】
0005614226.tif 000013
【図１０】
0005614226.tif 000014
【図１１】
0005614226.tif 000015