(57)【特許請求の範囲】
【請求項１】
コンピュータに、
複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、
処理を実行させることを特徴とする仮想マシン管理プログラム。
【請求項２】
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する際には、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す配置パターンを生成し、
生成された配置パターンのうち、すべての通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行される配置パターンを適用可能と判定し、
適用可能な配置パターンに従って、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定することを特徴とする請求項１記載の仮想マシン管理プログラム。
【請求項３】
配置パターンを生成する際には、前記複数の仮想マシンの少なくとも一部を実行するサーバコンピュータが互いに異なる第１の複数の配置パターンを生成し、
適用可能な配置パターンが複数ある場合、予め指定された選択条件に合った配置パターンを選択し、
選択した適用可能な配置パターンに従って、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定することを特徴とする請求項２記載の仮想マシン管理プログラム。
【請求項４】
適用可能な配置パターンがない場合、前記記憶手段内の一部の通信経路情報を削除し、削除後に前記記憶手段に残されたすべての通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行される配置パターンを、適用可能と判定することを特徴とする請求項３記載の仮想マシン管理プログラム。
【請求項５】
前記コンピュータにさらに、
スイッチで接続された複数のサーバコンピュータのうち、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す第２の複数の配置パターンそれぞれにしたがって、前記複数の仮想マシンそれぞれを前記複数のサーバコンピュータで繰り返し実行させ、前記複数の仮想マシンを前記複数のサーバコンピュータで実行させるごとに、前記複数の仮想マシンを用いた処理の実行に伴い仮想マシン間で前記スイッチを介して通信された情報を前記スイッチから取得し、
取得した情報の宛先の仮想マシンと送信元の仮想マシンとの対を示す通信経路情報を生成し、生成した通信経路情報を前記記憶手段に格納する、
処理を実行させることを特徴とする請求項１乃至４のいずれかに記載の仮想マシン管理プログラム。
【請求項６】
コンピュータが、
複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、
ことを特徴とする仮想マシン管理方法。
【請求項７】
複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する実行サーバ決定手段と、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する出力手段と、
を有することを特徴とする仮想マシン管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシンを管理する仮想マシン管理プログラム、仮想マシン管理方法、および仮想マシン管理装置に関する。
【背景技術】
【０００２】
従来、複数のコンピュータが階層的に処理を分担する情報処理システム（複数階層システム）が利用されている。複数階層システムとして、例えばシステム利用のためのインタフェースを提供するＷｅｂサーバ、システム上の処理を実行するＡｐｐ（Application）サーバおよびデータを管理するＤＢ（Database）サーバを有する３階層システムが知られている。各サーバは、ユーザからの処理要求に対して連携して処理を実行し、その処理要求に応答する。このように、各サーバに処理を分担させることで、システムの信頼性や応答性を向上できる。
【０００３】
Ｗｅｂ３階層システムのような複数階層システムでは、各階層のサーバの機能を、仮想マシン（ＶＭ：Virtual Machine）で実現することもできる。ＶＭは、コンピュータのＣＰＵ（Central Processing Unit）や記憶装置などのリソースを仮想化することで実現された仮想的なコンピュータである。コンピュータのリソースを仮想化させることで、１台の物理的なコンピュータ上で、ＯＳ（Operating System）の異なる複数のＶＭを同時に稼働させることなどが可能となる。このような仮想マシンを用いたコンピュータシステムを、仮想システムと呼ぶ。
【０００４】
ところで、複数階層システムでは、エンドユーザにおける応答時間が増大した場合などには、問題が発生しているサーバを特定することが、障害対応の第一歩として重要である。そのため、各階層のサーバにおいて処理時間を測定し、その推移を監視することによって問題の有無を判定する手法が広く一般に採用されている。例えば、ネットワークを介して送受信されるパケットをキャプチャし、キャプチャしたパケットに基づいて各階層のサーバでの処理時間を分析する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、仮想システムでは、１つのコンピュータ上で稼動しているＶＭ同士で通信するパケットはスイッチを通過しないためキャプチャできない。その結果、仮想システムでは、スイッチでキャプチャできるパケットなどの通信情報が、ＶＭ間で通信された全パケットのうちの一部に限定されてしまい、キャプチャした通信情報を用いた分析の精度が低下していた。
【０００７】
１つの側面では、本発明は、仮想マシン間の通信情報のうち、仮想マシンを実行するサーバ間を接続するネットワーク上で取得可能な通信情報の割合を増加させることができる仮想マシン管理プログラム、仮想マシン管理方法、および仮想マシン管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、コンピュータに、複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、処理を実行させることを特徴とする仮想マシン管理プログラムが提供される。
【０００９】
また他の１つの案では、コンピュータが、複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、ことを特徴とする仮想マシン管理方法が提供される。
【００１０】
さらに他の１つの案では、複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する実行サーバ決定手段と、複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する出力手段と、を有することを特徴とする仮想マシン管理装置が提供される。
【発明の効果】
【００１１】
仮想マシン間の通信情報のうち、仮想マシンを実行するサーバ間を接続するネットワーク上で取得可能な通信情報の割合を増加させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るシステムを示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】運用ラックと可視化用ラックとの内部構造例を示す図である。
【図４】可視化装置のハードウェアの構成例を示す図である。
【図５】仮想システム可視化処理の概要を示す図である。
【図６】可視化装置の機能を示すブロック図である。
【図７】アドレス記憶部のデータ構造例を示す図である。
【図８】経路記憶部のデータ構造例を示す図である。
【図９】仮想システム可視化処理の手順を示すフローチャートである。
【図１０】通信経路検出用のＶＭ再配置の概要を示す図である。
【図１１】通信の有無調査処理の概要を示す図である。
【図１２】ＶＭ配置リストのデータ構造例を示す図である。
【図１３】経路表のデータ構造例を示す図である。
【図１４】通信経路検出処理の手順を示すフローチャートである。
【図１５】通信経路検出処理の一例を示す図である。
【図１６】外部から入力された経路リストに基づく可視化用再配置処理の概要を示す図である。
【図１７】ＶＭ配置リストのデータ構造例を示す図である。
【図１８】配置可能リストのデータ構造例を示す図である。
【図１９】可視化用再配置処理の手順を示すフローチャートである。
【図２０】配置パターン選択の第１の例を示す図である。
【図２１】配置パターン選択の第２の例を示す図である。
【図２２】可視化処理の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係るシステムを示す図である。仮想マシン管理装置１は、複数のサーバコンピュータ２，３で実行される仮想マシン７ａ，７ｂ，７ｃ，７ｄを管理する。例えば、仮想マシン管理装置１は、仮想マシン７ａ，７ｂ，７ｃ，７ｄそれぞれを実行するサーバコンピュータを決定する。仮想マシン配置装置６は、仮想マシン７ａ，７ｂ，７ｃ，７ｄそれぞれを、仮想マシン管理装置１で決定されたサーバコンピュータに実行させる。このようにサーバコンピュータに仮想マシンに実行させることを、サーバコンピュータに仮想マシンを配置すると呼ぶこともある。
【００１４】
また、サーバコンピュータ２，３は、共にスイッチ４に接続されている。サーバコンピュータ２，３は、スイッチ４を用いたネットワークを介して通信を行う。スイッチ４は、ポートミラーリング機能を有している。ポートミラーリング機能とは、所定のポートを介して送受信されるパケットのコピーを、ミラーポートから出力する（キャプチャする）機能である。なお、ポートミラーリング機能は、ポートモニタリングと呼ばれることもある。スイッチ４のミラーポートには、分析装置５が接続されている。分析装置５は、スイッチ４のポートミラーリングによりキャプチャされた通信情報に基づいて、仮想マシン７ａ，７ｂ，７ｃ，７ｄによる処理状況を分析する。
【００１５】
このような構成のシステムにおいて、分析装置５による分析精度を向上させるには、スイッチ４においてより多くの通信情報をキャプチャすることが有効である。例えば仮想マシン７ａ，７ｂ，７ｃ，７ｄの変更前配置では、仮想マシン７ａと仮想マシン７ｂとが、サーバコンピュータ２で実行され、仮想マシン７ｃと仮想マシン７ｄとが、サーバコンピュータ３で実行されている。また仮想マシン７ａと仮想マシン７ｂとの間で通信が行われ、仮想マシン７ｂと仮想マシン７ｃとの間で通信が行われ、仮想マシン７ｃと仮想マシン７ｄとの間で通信が行われている。この場合、仮想マシン７ｂと仮想マシン７ｃとの間の通信情報は、スイッチ４でキャプチャ可能である。しかし、仮想マシン７ａと仮想マシン７ｂとの間の通信情報は、サーバコンピュータ２内のホストＯＳを介して行われており、キャプチャできない。同様に仮想マシン７ａと仮想マシン７ｂとの間の通信情報もキャプチャできない。そうすると、分析装置５で取得できる通信情報が限定的となり、仮想マシン７ａ，７ｂ，７ｃ，７ｄによる処理状況の分析精度が低下する。例えば仮想マシン７ｃと仮想マシン７ｄとの連携処理の処理時間を求めることはできても、その処理時間内に仮想マシン７ｃと仮想マシン７ｄとのそれぞれがどの程度の時間だけ処理を実行していたのかを求めることができない。
【００１６】
そこで、仮想マシン管理装置１は、分析精度の向上を実現する機能として、記憶手段１ａ、実行サーバ決定手段１ｂ、および出力手段１ｃを有している。
記憶手段１ａは、少なくとも１つの通信経路情報９ａ，９ｂ，９ｃを記憶する。通信経路情報９ａ，９ｂ，９ｃは、複数の仮想マシン７ａ，７ｂ，７ｃ，７ｄのうち互いに通信を行う２つの仮想マシンの対を示す。図１の例では、３つの通信経路情報９ａ，９ｂ，９ｃが格納されている。通信経路情報９ａは、識別番号「１」の仮想マシン７ａと識別番号「２」の仮想マシン７ｂとの対を示している。通信経路情報９ｂは、識別番号「２」の仮想マシン７ｂと識別番号「３」の仮想マシン７ｃとの対を示している。通信経路情報９ｃは、識別番号「３」の仮想マシン７ｃと識別番号「４」の仮想マシン７ｄとの対を示している。
【００１７】
実行サーバ決定手段１ｂは、記憶手段１ａを参照し、複数の仮想マシン７ａ，７ｂ，７ｃ，７ｄそれぞれを実行するサーバコンピュータを決定する。この際、実行サーバ決定手段１ｂは、通信経路情報９ａ，９ｂ，９ｃそれぞれに示される仮想マシンの対について、対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、仮想マシン７ａ，７ｂ，７ｃ，７ｄを実行するサーバコンピュータを決定する。
【００１８】
例えば、実行サーバ決定手段１ｂは、配置パターン生成手段１ｂ−１、可否判定手段１ｂ−２、選択手段１ｂ−３、および決定手段１ｂ−４を有する。
配置パターン生成手段１ｂ−１は、複数の仮想マシンを所定数以下のサーバコンピュータで実行する場合の、複数の仮想マシンそれぞれと仮想マシンを実行するサーバコンピュータとの組み合わせを示す配置パターン８ａ，８ｂ，８ｃ，・・・を生成する。例えば、配置パターン生成手段１ｂ−１は、複数の仮想マシン７ａ，７ｂ，７ｃ，７ｄの少なくとも一部を実行するサーバコンピュータが互いに異なるような複数の配置パターンを生成する。このとき、使用するサーバコンピュータの最大数が予め指定されていれば、例えば配置パターン生成手段１ｂ−１は、サーバ数２台から使用するサーバコンピュータの最大数まで、サーバ台数を１台ずつ増加させたときのサーバ台数ごとに、配置パターンを生成する。
【００１９】
可否判定手段１ｂ−２は、生成された配置パターン８ａ，８ｂ，８ｃ，・・・の適用の可否を判定する。例えば可否判定手段１ｂ−２は、すべての通信経路情報９ａ，９ｂ，９ｃそれぞれに示される仮想マシンの対について、対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行される配置パターンを適用可能と判定する。
【００２０】
選択手段１ｂ−３は、適用可能な配置パターンが複数ある場合、予め指定された選択条件に適合する配置パターンを選択する。例えば選択手段１ｂ−３は、選択条件が性能重視の場合、適用可能な配置パターンのうち、使用するサーバコンピュータの台数が最も多い配置パターンを選択する。また選択手段１ｂ−３は、選択条件が台数節約の場合、適用可能な配置パターンのうち、使用するサーバコンピュータの台数が最も少ない配置パターンを選択する。
【００２１】
決定手段１ｂ−４は、選択手段１ｂ−３で選択された適用可能な配置パターンに従って、複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する。
出力手段１ｃは、実行サーバ決定手段１ｂで決定された、複数の仮想マシン７ａ，７ｂ，７ｃ，７ｄそれぞれを実行するサーバコンピュータを示す情報（配置情報）を出力する。配置情報は、例えば仮想マシン配置装置６に対して出力される。
【００２２】
このようなシステムによれば、仮想マシン管理装置１の実行サーバ決定手段１ｂにより、仮想マシン７ａ，７ｂ，７ｃ，７ｄを実行するサーバコンピュータが決定される。このとき、通信経路情報９ａ，９ｂ，９ｃそれぞれに示される仮想マシンの対について、対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、仮想マシン７ａ，７ｂ，７ｃ，７ｄを実行するサーバコンピュータが決定される。例えば、仮想マシン７ａ，７ｃをサーバコンピュータ２が実行すること、および仮想マシン７ｂ，７ｄをサーバコンピュータ３が実行することが決定される。実行サーバ決定手段１ｂでの決定内容を示す配置情報は、出力手段１ｃにより、仮想マシン配置装置６に対して出力される。
【００２３】
仮想マシン配置装置６は、配置情報に従って、仮想マシン７ａ，７ｂ，７ｃ，７ｄを再配置する。図１の例では、仮想マシン配置装置６は、サーバコンピュータ２に対して、仮想マシン７ｂのサーバコンピュータ３への移動（マイグレーション）を指示する。するとサーバコンピュータ２は、仮想マシン７ｂの実行を停止し、仮想マシン７ｂの実行に必要なプログラムやデータをサーバコンピュータ３に転送する。サーバコンピュータ３は、サーバコンピュータ２から取得したプログラムやデータに基づいて、仮想マシン７ｂを実行する。同様に、仮想マシン配置装置６は、サーバコンピュータ３に対して、仮想マシン７ｃのサーバコンピュータ２への移動を指示する。その結果、仮想マシン７ａ，７ｃはサーバコンピュータ２で実行され、仮想マシン７ｂ，７ｄはサーバコンピュータ３で実行される。
【００２４】
すると仮想マシン７ａ，７ｂ，７ｃ，７ｄ間の通信は、すべてスイッチ４を介して行われる。すなわち通信情報がすべてスイッチ４を経由する。これにより仮想マシン７ａ，７ｂ，７ｃ，７ｄ間のすべての通信情報がスイッチ４でキャプチャされ、分析装置５に入力される。その結果、分析装置５では、仮想マシン７ａ，７ｂ，７ｃ，７ｄによる処理状況を高精度に分析することができる。例えば、１つのトランザクションを仮想マシン７ａ，７ｂ，７ｃ，７ｄが連携して実行した場合に、個々の仮想マシン７ａ，７ｂ，７ｃ，７ｄがどの程度の時間を処理に費やしたのかを分析できる。
【００２５】
このように、第１の実施の形態に係るシステムによれば、仮想マシン間の通信情報のうち、仮想マシンを実行するサーバコンピュータ間を接続するネットワーク上で取得可能な通信情報の割合を増加させることができる。その結果、通信情報を利用した仮想マシンの処理状況の分析精度を向上させることができる。
【００２６】
ところで、図１の例では、仮想マシン７ａ，７ｂ，７ｃ，７ｄ間の通信情報がすべてキャプチャ可能なように、仮想マシン７ａ，７ｂ，７ｃ，７ｄを再配置しているが、一部の通信情報についてはキャプチャしなくてもよい場合もある。例えば、仮想マシン７ａ，７ｂ，７ｃ，７ｄで連携して実行されるトランザクションのうち、仮想マシン７ｃと仮想マシン７ｄとで実行される処理についての処理時間を知りたい場合がある。その場合、仮想マシン７ｂと仮想マシン７ｃとが別のサーバコンピュータで実行され、仮想マシン７ｃと仮想マシン７ｄとが別のサーバコンピュータで実行されていればよい。
【００２７】
［第２の実施の形態］
第２の実施の形態は、運用サーバ群とは別に、システム可視化用のサーバ群を用意し、システム可視化用のサーバ群を用いてパケットのキャプチャを行うものである。なお、以下の説明では、仮想サーバは「ＶＭ」と略語で表記するものとする。また、ＶＭを実行するサーバコンピュータを、物理サーバと呼ぶ。さらに、複数のＶＭによる処理状況を分析することを「可視化」と呼ぶ。
【００２８】
原理的には、通信するＶＭを異なる物理サーバに配置すればすべての通信経路をキャプチャすることが可能である。例えば図１に示したように、通信が発生するＶＭ同士を異なる物理サーバに配置すれば、すべての通信を可視化することが可能である。しかし、常時この配置で固定するのは仮想システムの利点である柔軟な運用ができず、効率的ではない。一方、仮想システムでは、ライブマイグレーションの技術を用いて動的にＶＭを配置することが可能である。ライブマイグレーションは、１つの物理サーバで実行中のＶＭを別の物理サーバに、無停止で移動させる技術である。そこで第２の実施の形態では、システムに問題が発生した場合にシステムの機能が設計通りに稼動しているかどうかの調査（可視化）に使用する物理サーバ群を設ける。そして、システム可視化に使用する物理サーバ群に可視化対象のサービスを実現するＶＭを配置し、システム可視化を行う。
【００２９】
図２は、第２の実施の形態のシステム構成例を示す図である。第２の実施の形態では、運用ラックＡと可視化用ラックＢとが設けられている。運用ラックＡには、可視化の対象とされていないサービスを実現するＶＭを配置する物理サーバが内蔵されている。可視化用ラックＢには、可視化の対象とされるサービスを実現するＶＭを配置する物理サーバが内蔵されている。運用ラックＡと可視化用ラックＢとは、ネットワーク１０に接続されている。
【００３０】
ネットワーク１０には、さらにＶＭ配置装置１１と複数の端末装置２１，２２，・・・とが接続されている。ＶＭ配置装置１１は、運用ラックＡと可視化用ラックＢとのそれぞれに内蔵された物理サーバに対してＶＭの配置を指示するコンピュータである。各端末装置２１，２２，・・・は、運用ラックＡまたは可視化用ラックＢ内の物理サーバに配置されたＶＭにより提供されるサービスを利用するユーザが使用するコンピュータである。
【００３１】
図３は、運用ラックと可視化用ラックとの内部構造例を示す図である。運用ラックＡには、複数の物理サーバ３１，３２，３３，・・・とスイッチ５１とが搭載されている。物理サーバ３１，３２，３３，・・・は、それぞれが個別のコンピュータである。各物理サーバ３１，３２，３３，・・・は、スイッチ５１に接続されている。各物理サーバ３１，３２，３３，・・・は、スイッチ５１経由で互いに通信を行う。スイッチ５１は、ネットワーク１０にも接続されている。
【００３２】
可視化用ラックＢには、複数の物理サーバ４１，４２，４３，・・・、スイッチ５２、および可視化装置１００が搭載されている。物理サーバ４１，４２，４３，・・・は、それぞれが個別のコンピュータである。各物理サーバ４１，４２，４３，・・・は、スイッチ５２に接続されている。各物理サーバ４１，４２，４３，・・・は、スイッチ５２経由で互いに通信を行う。
【００３３】
スイッチ５２は、ポートミラーリング機能を有するスイッチングハブである。各物理サーバ４１，４２，４３，・・・が接続されているのは、スイッチ５２のミラーポート５２ａ以外の通常のポートである。スイッチ５２には、さらにミラーポート５２ａ以外のポートを介してネットワーク１０に接続されている。またスイッチ５２のミラーポート５２ａには、可視化装置１００が接続されている。
【００３４】
可視化装置１００は、ミラーポートから出力されたパケットを受信し、物理サーバ４１，４２，４３，・・・に配置されたＶＭが送受信したメッセージを解析する。また可視化装置１００は、ＶＭの配置を適宜決定することができる。例えば可視化装置１００は、受信したパケットに基づいて互いに通信を行っているＶＭの対を検出し、キャプチャ可能なパケットの割合が高くなるようなＶＭの配置を決定する。可視化装置１００は、ＶＭの配置を決定すると、決定されたＶＭの配置を示す配置情報を、スイッチ５２を介してＶＭ配置装置１１に送信する。
【００３５】
図４は、可視化装置のハードウェアの構成例を示す図である。可視化装置１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０６を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３６】
ＲＡＭ１０２は、可視化装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３７】
バス１０６に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、および複数の通信インタフェース１０４，１０５がある。
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、可視化装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３８】
通信インタフェース１０４は、スイッチ５２の通常の通信用のポート５２ｂに接続されている。通信インタフェース１０４は、スイッチ５２を介して、ＶＭ配置装置１１などの他の通信機器との間でデータの送受信を行う。
【００３９】
通信インタフェース１０５は、スイッチ５２のミラーポート５２ａに接続されている。通信インタフェース１０５は、スイッチ５２のミラーポート５２ａから出力されるパケットを受信し、ＣＰＵ１０１に転送する。なお通信インタフェース１０５は、受信したパケットの宛先が可視化装置１００以外の装置であっても、そのパケットを破棄せずに取得する。
【００４０】
なお、可視化装置１００は、さらにグラフィック処理装置、入力インタフェース、光学ドライブ装置などを有していてもよい。例えば、可視化装置１００がグラフィック処理装置を有している場合、グラフィック処理装置にモニタが接続される。そして、グラフィック処理装置は、ＣＰＵ１０１からの命令に従って、画像をモニタの画面に表示させる。モニタとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４１】
また可視化装置１００が入力インタフェースを有していた場合、例えば入力インタフェースには、キーボードとマウスとが接続される。その場合、入力インタフェースは、キーボードやマウスから送られてくる信号をＣＰＵ１０１に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４２】
さらに可視化装置１００が光学ドライブ装置を有していた場合、その光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りを行う。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図４には可視化装置１００のハードウェア構成例を示したが、運用ラックＡ内の各物理サーバ３１，３２，３３，・・・、可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・、ＶＭ配置装置１１も同様のハードウェアで実現できる。端末装置２１，２２，・・・は、図４に示したハードウェア構成に加え、グラフィック処理装置や入力インタフェースを有する。端末装置２１，２２，・・・は、入力インタフェースを介して、入力インタフェースに接続されたキーボードやマウスなどの入力装置に対するユーザの操作入力を受け付ける。また端末装置２１，２２，・・・は、グラフィック処理装置に接続されたモニタに、ＶＭによる処理結果などの各種情報を表示する。
【００４４】
次に、第２の実施の形態における仮想システム可視化処理の概要について説明する。
図５は、仮想システム可視化処理の概要を示す図である。図５の例では、運用ラックＡ内の物理サーバ３１，３２，３３，・・・で、ＶＭ８１〜８６が実行されている。なお各ＶＭ８１〜８６には、システム内で一意に識別可能な識別子（ＶＭ番号）が設定されている。ＶＭ８１のＶＭ番号は「１」である。ＶＭ８２のＶＭ番号は「２」である。ＶＭ８３のＶＭ番号は「３」である。ＶＭ８４のＶＭ番号は「４」である。ＶＭ８５のＶＭ番号は「５」である。ＶＭ８６のＶＭ番号は「６」である。
【００４５】
物理サーバ３１，３２，３３，・・・は、それぞれホストＯＳ３１ａ，３２ａ，３３ａ，・・・によって動作が制御されている。同様に可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・は、それぞれホストＯＳ４１ａ，４２ａ，４３ａ，・・・によって動作が制御されている。なお仮想システムでは、動的にＶＭの配置を変更することが可能である。
【００４６】
異なる物理サーバに配置されたＶＭ同士は、物理サーバ同士を接続するスイッチを介した通信を行う。例えば、物理サーバ３１内のＶＭ８２と物理サーバ３２内のＶＭ８３とは、スイッチ５１を介した通信を行う。他方、同一物理サーバに配置されたＶＭ同士は、その物理サーバのホストＯＳを介して通信を行う。例えば、物理サーバ３１内のＶＭ８１，８２は、ホストＯＳ３１ａを介して通信を行う。
【００４７】
第２の実施の形態では、運用ラックＡ内の物理サーバ３１，３２，３３，・・・で実行されているＶＭのうち、可視化対象のサービス（例えばＷｅｂ３階層システムによるＷｅｂサービス）を実行するＶＭのみの再配置が行われる。図５の例では、４つのＶＭ８１〜８４で実現されるサービスが、可視化の対象であるものとする。
【００４８】
ＶＭ８１〜８４を再配置する場合、通信するＶＭの対を異なる物理サーバに配置すれば、すべての通信経路をキャプチャすることが可能となる。なお、スイッチ５１にポートミラーリング機能を設け、運用ラックＡ内に可視化装置を実装すれば、運用ラックＡ内でＶＭの再配置を行い、仮想システム可視化を実現することが可能である。だたし、運用ラックＡ内において、可視化対象のサービスを実行するＶＭを、可視化用の配置で固定するのは効率的ではない。また、運用ラックＡ内の物理サーバでは、可視化対象のサービスとは関係のないＶＭ８５，８６も動作している。運用ラックＡにおいてパケットのキャプチャを行うと、ＶＭ８５とＶＭ８６との間の通信に関するパケットもキャプチャされる。キャプチャ対象のパケットが多すぎると、可視化装置１００におけるパケットの受信が間に合わず、受信できないパケットが発生する可能性がある。そこで、第２の実施の形態では、可視化対象のサービスを実行するＶＭを、可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に配置する。これにより、キャプチャするパケットの取りこぼしを抑制するとともに、仮想システム可視化処理を実行することによる運用中の他のサービスへの悪影響を抑止することができる。
【００４９】
このように、第２の実施の形態では、システムに問題が発生した場合などの調査用に、専用の物理サーバ４１，４２，４３，・・・を可視化用ラックＢ内に設けられている。そして、調査対象のサービスを実行するＶＭ８１〜８４が物理サーバ４１，４２，４３に再配置される。
【００５０】
ＶＭ８１〜８４を再配置する場合、可視化装置１００は、互いに通信するＶＭが異なる物理サーバに配置されるように、ＶＭ８１〜８４の配置先を決定する。図５の例では、ＶＭ８１を物理サーバ４１に配置し、ＶＭ８２を物理サーバ４２に配置し、ＶＭ８３を物理サーバ４１に配置し、ＶＭ８４を物理サーバ４２に配置することが決定されている。そして、可視化装置１００が決定した配置を示す配置情報に基づいて、ＶＭ配置装置１１が再配置処理を実行する。
【００５１】
可視化用ラックＢ内の物理サーバ４１，４２に再配置されたＶＭ８１〜８４は、ＶＭ間のすべての通信がスイッチ５２を介して行われる。従って、すべての通信に関するパケットがスイッチ５２でキャプチャされ、可視化装置１００に入力される。その結果、可視化装置１００において、複数ＶＭ８１〜８４による連携した処理を高精度に分析することが可能となる。
【００５２】
次に、図５に示した仮想システム可視化処理を実現するための可視化装置１００の機能について説明する。
図６は、可視化装置の機能を示すブロック図である。可視化装置１００は、分析部１１０、アドレス記憶部１２０、経路検出部１３０、経路記憶部１４０、および配置決定部１５０を有する。
【００５３】
分析部１１０は、スイッチ５２からキャプチャしたパケットに基づいて、複数のＶＭによって複数階層のシステム構成を取る処理の処理状況を分析する。例えば、分析部１１０は、１つのトランザクションの実行に当たり、各ＶＭが処理に要した時間を分析する。分析部１１０は、例えば、分析結果をシステムの管理者が使用する端末装置に送信する。
【００５４】
アドレス記憶部１２０は、各ＶＭを識別するアドレスを記憶する。第２の実施の形態では、アドレス記憶部１２０は、各ＶＭのＩＰ（Internet Protocol）アドレスを記憶する。例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部がアドレス記憶部１２０として使用される。
【００５５】
経路検出部１３０は、スイッチ５２からキャプチャしたパケットに基づいて、通信が発生しているＶＭ間の通信経路を検出する。例えば経路検出部１３０は、分析対象のサービスを実行するＶＭから２つのＶＭを選択して得られるＶＭの対について、通信が発生したか否かを判断する。ＶＭの対における通信の有無は、パケットのヘッダ情報を解析することで判断できる。例えば経路検出部１３０は、アドレス記憶部１２０を参照し、通信されたパケットのヘッダ情報から、送信元と宛先とのアドレスを抽出する。そして経路検出部１３０は、抽出したアドレスに対応するＶＭの対の間で通信が発生したものと判断する。
【００５６】
また、経路検出部１３０は、通信の発生の有無を判断していないＶＭの対について、そのＶＭの対が異なる物理サーバに配置されるような配置情報６１を生成する。そして経路検出部１３０は、生成した配置情報６１をＶＭ配置装置１１に送信する。ＶＭ配置装置１１は、配置情報６１に従って可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に可視化対象のサービスを実行するＶＭを配置する。その後、配置されたＶＭに負荷がかけられる。例えば、端末装置からのリクエストメッセージが物理サーバ４１，４２，４３，・・・に配置されたＶＭに入力される。するとリクエストメッセージに応じて、複数のＶＭで連携した動作が実行され、ＶＭの連携動作に使用されたパケットがスイッチ５２でキャプチャされる。すると、経路検出部１３０は、キャプチャされたパケットに基づいて、通信の発生の有無を判断していないＶＭの対について、通信の有無を判断できる。なお、通信経路は、例えば、通信を行ったＶＭの対のＶＭ番号で表される。経路検出部１３０は、検出した通信経路を示す通信経路情報を経路記憶部１４０に格納する。
【００５７】
経路記憶部１４０は、通信を行うＶＭの対を示す通信経路情報を記憶する。例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が経路記憶部１４０として使用される。
配置決定部１５０は、経路記憶部１４０を参照し、できるだけ多くのＶＭ間の通信がスイッチ５２経由で行われるような各ＶＭの配置を決定する。例えば配置決定部１５０は、通信を行っている２つのＶＭの対を、可能な限り異なる物理サーバに配置するように決定する。配置決定部１５０は、決定された配置を示す配置情報６２を、ＶＭ配置装置１１に送信する。ＶＭ配置装置１１は、配置情報６２に従って可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に可視化対象のサービスを実行するＶＭを配置する。その後、配置されたＶＭに負荷がかけられる。例えば、端末装置からのリクエストメッセージが物理サーバ４１，４２，４３，・・・に配置されたＶＭに入力される。するとリクエストメッセージに応じて、複数のＶＭが連携した動作が実行され、ＶＭが連携に使用したパケットがスイッチ５２でキャプチャされる。このときキャプチャしたパケットを分析部１１０が分析することで、例えば可視化対象のサービスを実行するＶＭの１トランザクション当たりの処理時間が算出される。
【００５８】
次に、可視化装置１００に格納される情報について説明する。
図７は、アドレス記憶部のデータ構造例を示す図である。アドレス記憶部１２０には、アドレス対応表１２１が格納されている。アドレス対応表１２１には、各ＶＭについて、ＶＭ番号とＩＰアドレスとの組が設定されている。このようなアドレス対応表１２１を参照することで、キャプチャしたパケットの送信元のＶＭと宛先のＶＭとを特定することができる。
【００５９】
図８は、経路記憶部のデータ構造例を示す図である。経路記憶部１４０には、経路リスト１４１が格納されている。経路リスト１４１には、互いに通信を行う２つＶＭのＶＭ番号の対が、通信経路情報として登録されている。
【００６０】
図６〜図８に示したような構成の可視化装置１００により、仮想システムを用いた複数階層システムにおいて、可視化対象のサービスを実行するＶＭ間の通信パケットを高い確率で採取可能となり、高精度の処理状況の分析が可能となる。
【００６１】
図９は、仮想システム可視化処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］経路検出部１３０は、可視化対象のサービスを実行するＶＭ間の通信経路を検出する。例えば経路検出部１３０は、ＶＭの再配置を繰り返し、ＶＭを再配置するごとにＶＭ間の通信の有無を調査する。これにより、自動的にＶＭ間の通信経路が検出される。検出した通信経路は、通信経路情報として経路記憶部１４０内の経路リスト１４１に登録される。
【００６２】
［ステップＳ１２］配置決定部１５０は、経路リスト１４１内の通信経路情報で示されるＶＭの対が互いに異なる物理サーバに配置されるように、可視化用のＶＭの配置を決定する。そして配置決定部１５０は、決定した配置を示す配置情報をＶＭ配置装置１１に送信する。これにより、可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に、サービスを実行するＶＭが再配置される。
【００６３】
［ステップＳ１３］分析部１１０は、再配置されたＶＭの動作状況を可視化する。すなわち、分析部１１０は、再配置されたＶＭに負荷を与え、そのＶＭに入出力されるパケットをキャプチャすることで、サービスの処理状況を分析する。そして分析部１１０は、分析結果を、管理者が使用する端末装置に送信する。
【００６４】
なお、ステップＳ１１に示した通信経路検出処理は、予めＶＭ間の通信経路が分かっている場合には不要である。予めＶＭ間の通信経路が分かっている場合、例えば、管理者が端末装置に対して通信経路情報の操作入力を行う。経路検出部１３０は、管理者が使用する端末装置から通信経路情報を取得し、経路記憶部１４０に格納する。
【００６５】
以下、図９に示した各処理を詳細に説明する。
＜通信経路検出処理＞
経路検出処理では、１回以上のＶＭの再配置が行われる。ＶＭの再配置が何回行われるかは、可視化用ラックＢ内の物理サーバ数と、可視化対象のサービスを実行するＶＭ数に応じて決まる。なお、可視化用ラックＢ内の各物理サーバの物理サーバ番号と可視化対象のサービスを実行する各ＶＭのＶＭ番号とは、例えば端末装置を用いた管理者の操作入力により、可視化装置１００に予め設定される。
【００６６】
図１０は、通信経路検出用のＶＭ再配置の概要を示す図である。図１０の例では、可視化用ラックＢ内にＭ個（Ｍは２以上の整数）の物理サーバ４１，４２，４３，・・・，４ｍが搭載されているものとする。また、可視化対象のサービスの処理は、ｎ個（ｎは２以上の整数）のＶＭ９１，９２，９３，・・・，９ｎが連携して実行されるものとする。
【００６７】
なお、可視化用ラックＢ内の物理サーバ数Ｍと、可視化対象のサービスを実行するＶＭ数ｎとは、仮想システム可視化処理の開始前に、予め経路検出部１３０に設定されているものとする。例えば、システムの管理者が端末装置を用いた操作入力により、端末装置経由で、可視化用ラックＢ内の物理サーバ数Ｍと、可視化対象のサービスを実行するＶＭ数ｎとが、経路検出部１３０に設定される。
【００６８】
経路検出部１３０は、ＶＭ９１，９２，９３，・・・，９ｎを可視化用の物理サーバ４１，４２，４３，・・・，４ｍに配置する。そして経路検出部１３０は、ＶＭ９１，９２，９３，・・・，９ｎ間の通信をキャプチャすることで通信経路を検出する。ＶＭ間の全通信経路を検出するために、経路検出部１３０は、ＶＭの対すべてに関し、少なくとも１回、対を成す２つのＶＭを異なる物理サーバに配置する。
【００６９】
例えば経路検出部１３０は、１回目のＶＭ再配置において、ｎ個のＶＭ９１，９２，９３，・・・，９ｎを、Ｍ個の物理サーバ４１，４２，４３，・・・，４ｍに均等に配置する。ＶＭ数（ｎ）≦物理サーバ数（Ｍ）であれば、すべてのＶＭ９１，９２，９３，・・・，９ｎを異なる物理サーバに配置することができる。この場合、１回のＶＭの再配置により、全経路を検出することができる。
【００７０】
一方、ＶＭ数（ｎ）＞物理サーバ数（Ｍ）の場合は、複数回にわけて調査を実行する必要がある。１回目の調査でＶＭを均等に物理サーバに配置して経路を検出する。１回目の調査では同じ物理サーバ上に配置されたＶＭの経路を検出することができない。そこで経路検出部１３０は、２回目の調査では、１回目の再配置において同じ物理サーバに配置されたＶＭ同士が別の物理サーバになるように配置する。
【００７１】
「ＶＭ数（ｎ）≦物理サーバ数の２乗（Ｍ2）」の場合は２回の調査で全経路を検出することができる。さらに多い場合は同様にして３回目以降の調査を実行する。ＶＭの対のすべてを調査し、全経路を検出することができれば完了となる。例えば１０台の物理サーバがあれば、２回の調査で１００個、３回の調査で１０００個までのＶＭを調査することが可能である。
【００７２】
このように、ＶＭの再配置を行うことで、ＶＭの対のすべてを、少なくとも１回、異なる物理サーバに配置することができる。そして、ＶＭの再配置を行うごとに可視化対象のサービスに関する処理をＶＭに実行させることで、ＶＭの対ごとに通信の有無を調査できる。
【００７３】
図１１は、通信の有無調査処理の概要を示す図である。なお、図１１では、各物理サーバに配置されるＶＭを円で表している。円の中には、その円に対応するＶＭのＶＭ番号が示されている。図１５、図１６、図２０、図２１、および図２２においても同様に、ＶＭは、内部にＶＭ番号を示した円で表すものとする。
【００７４】
可視化装置１００の経路検出部１３０は、ＶＭ配置リスト１３１と経路表１３２とを有している。ＶＭ配置リスト１３１と経路表１３２とは経路検出部１３０によって作成される。またＶＭ配置リスト１３１と経路表１３２とは、例えばＲＡＭ１０２内の記憶領域のうち、経路検出部１３０が管理する記憶領域に格納される。
【００７５】
ＶＭ配置リスト１３１には、ＶＭの配置パターンが登録される。ＶＭの配置パターンは、再配置対象のＶＭそれぞれに関し、どの物理サーバに配置するのかを示す情報である。またＶＭ配置リスト１３１には、ＶＭの配置パターンごとに、該当配置パターンにおいて新たに通信の有無を調査可能な経路の数が設定される。経路検出部１３０は、例えばＶＭ配置リスト１３１を参照して、調査可能な経路の数が多い配置パターンを優先的に選択し、選択した配置パターンに応じた配置情報６１をＶＭ配置装置１１に送信する。
【００７６】
経路表１３２には、ＶＭの対ごとに、該当ＶＭ間の通信経路において通信があるか否かの調査状況が設定される。経路検出部１３０は、経路表１３２を参照して、ＶＭの対のうち、未調査の対を判断することができる。
【００７７】
図１１の例では、物理サーバ番号「１」の物理サーバ４１に対してＶＭ番号「１」、「２」、「３」のＶＭを配置し、物理サーバ番号「２」の物理サーバ４２に対してＶＭ番号「４」、「５」、「６」のＶＭを配置することを示す配置情報６１が生成されている。配置情報６１は、経路検出部１３０からＶＭ配置装置１１に送られる。するとＶＭ配置装置１１によって、配置情報６１に従ってＶＭが物理サーバ４１，４２に配置される。
【００７８】
その後、配置されたＶＭに、可視化対象のサービスを実行させる。するとＶＭ間での連携処理に伴うパケット６３がスイッチ５２を介して通信される。パケット６３のヘッダ部には、例えば、宛先のＩＰアドレスと送信元のＩＰアドレスとが設定されている。
【００７９】
パケット６３はスイッチ５２でキャプチャされ、可視化装置１００の経路検出部１３０に渡される。経路検出部１３０は、取得したパケット６３の宛先と送信元とのＩＰアドレスに対応するＶＭ番号を、アドレス記憶部１２０から取得する。図１１の例では、宛先のＩＰアドレスは「192.168.0.4」であり、対応するＶＭ番号は「４」である。また送信元のＩＰアドレスは「192.168.0.1」であり、対応するＶＭ番号は「１」である。
【００８０】
経路検出部１３０は、キャプチャしたパケット６３の宛先のＶＭと送信元のＶＭとの間で通信が行われたことを認識し、それらのＶＭのＶＭ番号の対を示す通信経路情報６５を生成する。そして経路検出部１３０は、生成した通信経路情報６５を、経路記憶部１４０内の経路リスト１４１に登録する。
【００８１】
このようにして、通信経路ごとの通信有無を調査することができる。
以下、ＶＭ配置リスト１３１と経路表１３２とのデータ構造について説明する。
図１２は、ＶＭ配置リストのデータ構造例を示す図である。ＶＭ配置リスト１３１には、複数の配置パターンが登録されている。配置パターンには、配置パターン番号が付与されている。ｎ個のＶＭをＭ個の物理サーバに配置する場合、「Ｍのｎ乗（Ｍn）」通りの配置パターンが生成される。
【００８２】
ＶＭ配置リスト１３１では、配置パターンごとに、各ＶＭのＶＭ番号に対応付けて、そのＶＭの配置先とする物理サーバの物理サーバ番号が設定されている。また、ＶＭ配置リスト１３１では、配置パターンごとに、調査可能経路数が設定されている。調査可能経路数は、対応する配置パターンにより調査可能となる未調査の通信経路の数である。調査可能経路数は、１つの配置パターンによる通信の有無を調査するごとに更新される。
【００８３】
図１３は、経路表のデータ構造例を示す図である。経路表１３２には、ＶＭの対ごとの調査フラグが設定さている。ｎ個のＶＭから、対を成す２つのＶＭを選択する総当たりの組み合わせの数（nＣ2通り）分の調査フラグが設定される。経路表１２３の各セルの行方向のＶＭ番号と列方向のＶＭ番号とにより、セルに設定される調査フラグに対応するＶＭの対が示される。
【００８４】
調査フラグは、「０」、「１」、「２」のいずれかの値を取る。調査フラグ「０」は、対応するＶＭの対について、通信の有無が未調査であることを示している。調査フラグ「１」は、対応するＶＭの対について、通信の有無の調査が終了し、通信が行われる経路（通信検出経路）であると判定されたことを示している。調査フラグ「２」は、対応するＶＭの対について、通信の有無の調査が終了し、通信が行われない経路（通信非検出経路）であると判定されたことを示している。
【００８５】
次に、通信経路検出処理の手順について説明する。
図１４は、通信経路検出処理の手順を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
【００８６】
［ステップＳ２１］経路検出部１３０は、ＶＭを物理サーバに割り当てるすべての配置パターンを生成し、生成した配置パターンを登録したＶＭ配置リスト１３１を作成する。この時点では、ＶＭ配置リスト１３１の調査可能経路数の欄は空欄である。
【００８７】
［ステップＳ２２］経路検出部１３０は、ＶＭ間の総当たりの組み合わせを示す経路表１３２を作成する。この際、経路検出部１３０は、経路表１３２の調査フラグを、すべて「０」に初期化する。
【００８８】
［ステップＳ２３］経路検出部１３０は、ＶＭ配置リスト１３１の全配置パターンについて、経路表１３２の調査フラグが「０」の経路に対応する２つのＶＭが異なる物理サーバに配置される数（調査可能経路数）を算出する。そして、経路検出部１３０は、各配置パターンの調査可能経路数を、ＶＭ配置リスト１３１に設定する。
【００８９】
［ステップＳ２４］経路検出部１３０は、調査可能経路数が最大の配置パターンに従ってＶＭを配置させる。具体的には、経路検出部１３０は、ＶＭ配置リスト１３１の配置パターンのうち、調査可能経路数が最大の配置パターンを選択する。なお経路検出部１３０は、調査可能経路数が最大の配置パターンが複数ある場合には、そのうちの１つを選択する。経路検出部１３０は、選択した配置パターンに従った配置情報を生成し、ＶＭ配置装置１１に送信する。すると、ＶＭ配置装置１１により配置情報通りにＶＭが再配置される。
【００９０】
［ステップＳ２５］経路検出部１３０は、配置したＶＭに処理を実行させる。例えば、システムの運用中であれば、複数階層システムにおける最上位の階層のＶＭに対する端末装置からのリクエストメッセージが、可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に配置されたＶＭに入力される。すると、リクエストメッセージに応じてトランザクション処理が複数のＶＭによって実行される。トランザクション処理を実行するＶＭ間では、リクエストメッセージによる処理の呼び出しや、レスポンスメッセージによる処理結果の応答が行われる。リクエストメッセージやレスポンスメッセージは、例えばＩＰパケットによって通信される。経路検出部１３０は、例えば、所定時間経過後、処理をステップＳ２６に進める。
【００９１】
［ステップＳ２６］経路検出部１３０は、ステップＳ２５において配置したＶＭに処理を実行させた期間にキャプチャされたパケットを解析し、通信に使用された通信経路を判断する。具体的には、経路検出部１３０は、キャプチャされたパケットから宛先のＩＰアドレスと送信元のＩＰアドレスとの組を抽出する。次に経路検出部１３０は、アドレス記憶部１２０内のアドレス対応表１２１を参照し、抽出したＩＰアドレスの組に対応するＶＭ番号の対を特定し、通信検出経路とする。
【００９２】
［ステップＳ２７］経路検出部１３０は、経路表１３２の調査フラグを更新する。具体的には、経路検出部１３０は、ステップＳ２３で選択した配置パターンによって新たに調査される経路のうち、ステップＳ２６で通信検出経路とされたＶＭ番号の対に対応する調査フラグに「１」を設定する。また、経路検出部１３０は、ステップＳ２３で選択した配置パターンによって新たに調査される経路のうち、ステップＳ２６で通信検出経路とされなかったＶＭ番号の対に対応する調査フラグに「２」を設定する。
【００９３】
［ステップＳ２８］経路検出部１３０は、未調査の通信経路があるか否かを判断する。経路表１３２において調査フラグ「０」の通信経路（ＶＭ番号の対）が存在する場合、未調査の通信経路ありと判断される。経路検出部１３０は、未調査の通信経路がある場合、処理をステップＳ２３に進める。また経路検出部１３０は、すべての通信経路が調査された場合、処理をステップＳ２９に進める。
【００９４】
［ステップＳ２９］経路検出部１３０は、通信検出経路の通信経路情報を、経路記憶部１４０内の経路リスト１４１に出力する。具体的には、経路検出部１３０は、経路表１３２を参照し、調査フラグが「１」の通信経路のＶＭ番号の対を抽出し、通信経路情報を生成する。そして、経路検出部１３０は、生成した通信経路情報を経路リスト１４１に登録する。
【００９５】
このようにして、通信が行われた通信経路を示す経路リスト１４１が生成される。
図１５は、通信経路検出処理の一例を示す図である。図１５の例では、物理サーバ２台、ＶＭ６個の場合の通信経路検出の例である。６個のＶＭから、対を成す２つのＶＭを選択する組み合わせは、１５通り存在する。なお図１５では、調査された通信経路のうち、通信が検出された通信経路を実線で示し、通信が検出されなかった通信経路を波線で示している。
【００９６】
１回目のＶＭ配置では、ＶＭ番号が「１」、「２」、「３」のＶＭが物理サーバ４１に配置され、ＶＭ番号が「４」、「５」、「６」のＶＭが物理サーバ４２に配置されている。１回目の配置では、９本の通信経路が調査され、そのうち６本の通信経路において通信が検出されている。
【００９７】
２回目のＶＭ配置では、ＶＭ番号が「１」、「２」、「４」、「５」のＶＭが物理サーバ４１に配置され、ＶＭ番号が「３」、「６」のＶＭが物理サーバ４２に配置されている。２回目の配置では、４本の通信経路が調査され、そのうち２本の通信経路において通信が検出されている。
【００９８】
３回目のＶＭ配置では、ＶＭ番号が「１」、「４」のＶＭが物理サーバ４１に配置され、ＶＭ番号が「２」、「５」のＶＭが物理サーバ４２に配置されている。３回目の配置では、２本の通信経路が調査され、調査されたすべての通信経路において通信が検出されていない。なお、３回目のＶＭ配置では、ＶＭ番号が「３」、「６」のＶＭは、どちらの物理サーバに配置してもよい。
【００９９】
このように、３回の調査で１５通りの組み合わせを調査し、全通信経路６６を検出することができる。
＜可視化用再配置＞
次に、可視化用再配置処理について説明する。可視化用再配置処理は、経路検出部１３０が算出した経路リスト１４１に基づいて実行する場合と、外部から入力された経路リストに基づいて実行する場合とがある。
【０１００】
図１６は、外部から入力された経路リストに基づく可視化用再配置処理の概要を示す図である。可視化装置１００に対して経路リスト１４２が入力される。例えば、管理者が使用する端末装置から可視化装置１００へ経路リスト１４２が送信される。入力された経路リスト１４２は、例えば経路記憶部１４０に格納される。その後、可視化装置１００では、可視化用ラックＢの物理サーバ４１，４２，４３，・・・にどのようにＶＭを配置するかが算出される。具体的には、可視化装置１００の配置決定部１５０が、経路リスト１４２に示された通信検出経路のＶＭの対ができるだけ異なる物理サーバに配置される配置パターンを選択する。その際、配置決定部１５０は、配置先の物理サーバの台数ごとのＶＭ配置リスト１５１ａ，１５１ｂ，１５１ｃ，・・・を生成する。ＶＭ配置リスト１５１ａ，１５１ｂ，１５１ｃ，・・・には、所定の台数の物理サーバにＶＭを再配置する場合のＶＭの配置パターンが設定される。配置決定部１５０は、ＶＭ配置リスト１５１ａ，１５１ｂ，１５１ｃ，・・・に設定された配置パターンの中から、経路リスト１４２に示された通信検出経路のＶＭの対のすべてが、互いに異なる物理サーバに配置される配置パターンを抽出する。次に配置決定部１５０は、抽出した配置パターンを配置可能リスト１５２に登録する。そして配置決定部１５０は、配置可能リスト１５２に登録された配置パターンのなかから、予め指定された選択条件に従って配置パターンを選択する。予め指定された選択条件では、例えば、性能を重視した配置パターンを選択するのか、あるいは台数を節約する配置パターンを選択するのかが指定される。
【０１０１】
配置決定部１５０は、選択された配置パターンの配置情報をＶＭ配置装置１１に送る。すると、ＶＭ配置装置１１は、運用ラックＡ内の物理サーバ３１，３２，３３から可視化用ラックＢ内の物理サーバ４１，４２，４３にＶＭを移動することで再配置を実行する。
【０１０２】
なお、図１６には外部から入力された経路リストに基づく可視化用再配置処理を示したが、経路検出部１３０が生成した経路リスト１４１に基づいて可視化用再配置処理を行うこともできる。その場合、経路検出部１３０による通信経路検出処理の際に、可視化対象のサービスを実行するＶＭは、すでに可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に配置されている。そのため、ＶＭ配置装置１１による再配置指示は、可視化用ラックＢ内の物理サーバ４１，４２，４３，・・・に対して行われる。
【０１０３】
また、ＶＭ配置リスト１５１ａ，１５１ｂ，１５１ｃ，・・・と配置可能リスト１５２とは、例えば配置決定部１５０が管理するＲＡＭ１０２内の記憶領域に格納される。
図１７は、ＶＭ配置リストのデータ構造例を示す図である。配置決定部１５０では、ＶＭの配置先として使用する物理サーバ台数ごとのＶＭ配置リスト１５１ａ，・・・，１５１ｌが生成される。ＶＭ配置リスト１５１ａ，・・・，１５１ｌには、対応する台数の物理サーバにＶＭを配置する場合の配置パターンが設定される。例えば、ＶＭ配置リスト１５１ａには、物理サーバ台数が２台の場合の２のｎ乗（２n）通りの配置パターンが設定されている。またＶＭ配置リスト１５１ｌには、物理サーバ台数がＭ台の場合のＭのｎ乗（Ｍn）通りの配置パターンが設定されている。配置パターンは、配置するＶＭそれぞれのＶＭ番号に対応する物理サーバ番号の配列である。
【０１０４】
また各ＶＭ配置リスト１５１ａ，・・・，１５１ｌには、各配置パターンに対する判定結果が設定されている。判定結果は「可」または「不可」のいずれかである。経路リストに示されるＶＭの対すべてに関し、対を成すＶＭが互いに異なる物理サーバに配置される配置パターンは、配置可能と判定され、判定結果「可」が設定される。他方、経路リストに示されるＶＭの対の少なくとも１つに関し、対を成すＶＭが同じ物理サーバに配置される配置パターンは、配置不可能と判定され、判定結果「不可」が設定される。
【０１０５】
図１８は、配置可能リストのデータ構造例を示す図である。配置可能リスト１５２には、物理サーバ台数に対応付けて、その物理サーバ台数の配置パターンのうち、ＶＭ配置リストにおいて判定結果が「可」とされている配置パターンの配置パターン番号が設定されている。
【０１０６】
次に、可視化用再配置処理の手順について説明する。
図１９は、可視化用再配置処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１０７】
［ステップＳ３１］配置決定部１５０は、物理サーバ数ごとのＶＭ配置リストを作成する。例えば、配置決定部１５０は、ｎ個のＶＭを２〜Ｍ台の物理サーバに割り当てた場合についてＶＭ配置リストを作成する。配置決定部１５０は、作成したＶＭ配置リストを、例えばＲＡＭ１０２に格納する。
【０１０８】
［ステップＳ３２］配置決定部１５０は、作成されたＶＭ配置リストそれぞれに登録された各配置パターンについて、配置可能か否かを判定する。配置可能か否かの判定とは、通信経路の両端となる２つのＶＭが異なる物理サーバに配置されるという条件が、経路リストに示される通信検出経路のすべてについて満たされるかどうかの判定である。配置決定部１５０は、配置可能か否かの判定結果を、ＶＭ配置リストに設定する。例えば配置決定部１５０は、配置可能と判定した配置パターンにして、判定結果「可」を設定する。また配置決定部１５０は、配置不可能と判定した配置パターンに対して、判定結果「不可」を設定する。
【０１０９】
［ステップＳ３３］配置決定部１５０は、配置結果が「可」となった配置パターンをリストアップし、配置可能リスト１５２を生成する。具体的には、配置決定部１５０は、ＶＭ配置リストを１つずつ選択する。次に配置決定部１５０は、選択したＶＭ配置リストに登録されている配置パターンのうち、評価結果が「可」の配置パターンの配置パターン番号を取得する。そして、配置決定部１５０は、選択したＶＭ配置リストに対応する物理サーバ台数に対応付けて、評価結果が「可」の配置パターンの配置パターン番号を配置可能リスト１５２に登録する。
【０１１０】
［ステップＳ３４］配置決定部１５０は、判定結果「可」の配置パターンが、少なくとも１つ存在するか否かを判断する。配置決定部１５０は、判定結果「可」の配置パターンがあれば、処理をステップＳ３６に進める。配置決定部１５０は、判定結果「可」の配置パターンがなければ、処理をステップＳ３５に進める。
【０１１１】
［ステップＳ３５］配置決定部１５０は、経路リスト内の一部の通信経路を削除する。例えば、配置決定部１５０は、経路リストを管理者が使用する端末装置に送信する。管理者は、端末装置を用いて経路リストに登録されている通信経路の一部を削除する。管理者により更新された経路リストは、端末装置から配置決定部１５０に送信される。配置決定部１５０は、端末装置から受信した経路リストで、経路記憶部１４０内の経路リストを更新する。配置決定部１５０は、経路リスト内の一部の通信経路を削除後、処理をステップＳ３２に進める。
【０１１２】
［ステップＳ３６］配置決定部１５０は、判定結果「可」の配置パターンが存在する場合、配置パターンの選択条件を判断する。選択条件は、予め設定されている。選択条件が「台数節約」であれば、配置決定部１５０は、処理をステップＳ３７に進める。選択条件が「性能重視」であれば、配置決定部１５０は、処理をステップＳ３８に進める。
【０１１３】
［ステップＳ３７］選択条件が「台数節約」の場合、配置決定部１５０は、配置可能リスト１５２に登録された配置パターンのなかで、最も物理サーバの台数が少ない配置パターンを選択する。配置決定部１５０は、最も物理サーバの台数が少ない配置パターンが複数ある場合、そのなかのいずれか１つを選択する。その後、配置決定部１５０は、処理をステップＳ３９に進める。
【０１１４】
［ステップＳ３８］選択条件が「性能重視」の場合、配置決定部１５０は、配置可能リスト１５２に登録された配置パターンのなかで、最も物理サーバの台数が多い配置パターンを選択する。配置決定部１５０は、最も物理サーバの台数が多い配置パターンが複数ある場合、そのなかのいずれか１つを選択する。
【０１１５】
［ステップＳ３９］配置決定部１５０は、選択した配置パターンに沿った物理サーバへのＶＭの配置をＶＭ配置装置１１に指示する。すると、ＶＭ配置装置１１により、ＶＭが再配置される。
【０１１６】
このようにして、経路リストに示された通信経路におけるＶＭの対を、異なる物理サーバに配置することができる。その結果、通信経路を介したＶＭ間の通信がスイッチ５２経由で行われ、ポートミラーリングによりキャプチャ可能となる。
【０１１７】
図２０は、配置パターン選択の第１の例を示す図である。図２０の例では、４個のＶＭ２０１〜２０４を、最大４台の物理サーバに配置する場合を想定している。ＶＭ２０１のＶＭ番号は「１」、ＶＭ２０２のＶＭ番号は「２」、ＶＭ２０３のＶＭ番号は「３」、ＶＭ２０４のＶＭ番号は「４」である。ＶＭ２０１〜２０４間の通信経路を示す経路リスト１４３には、４つの通信経路が登録されている。登録されている通信経路は、ＶＭ２０１とＶＭ２０３との間の通信経路、ＶＭ２０２とＶＭ２０３との間の通信経路、ＶＭ２０２とＶＭ２０４との間の通信経路、およびＶＭ２０３とＶＭ２０４との間の通信経路である。
【０１１８】
４個のＶＭ２０１〜２０４を、最大４台の物理サーバに配置する場合、１４通りの配置パターン２１１〜２２４が生成できる。なお、図２０の配置パターン２１１〜２２４では、物理サーバを矩形で表している。各物理サーバに配置されるＶＭは、物理サーバを表す矩形内にＶＭ番号を付した円で示されている。
【０１１９】
１４通りの配置パターン２１１〜２２４のうち、３通りの配置パターン２２２〜２２４は、配置可能と判定される。すなわち、配置パターン２２２〜２２４は、経路リスト１４３に示される通信経路のすべてについて、通信経路の両端のＶＭが互いに異なる物理サーバに配置される。
【０１２０】
配置可能な配置パターン２２２〜２２４のうち、配置パターン２２２，２２３は、３台の物理サーバにＶＭ２０１〜２０４が配置される。また配置パターン２２４は、４台の物理サーバにＶＭ２０１〜２０４が配置される。
【０１２１】
ここで、選択条件が「台数優先」であれば、配置パターン２２２，２２３のいずれかが選択される。他方、選択条件が「性能重視」であれば、配置パターン２２４が選択される。
【０１２２】
図２１は、配置パターン選択の第２の例を示す図である。図２１の例では、４個のＶＭ２０１〜２０４を、最大２台の物理サーバに配置する場合を想定している。
４個のＶＭ２０１〜２０４を、最大２台の物理サーバに配置する場合、７通りの配置パターン２３１〜２３７が生成できる。なお図２０と同様に、図２１の配置パターン２３１〜２３７では、物理サーバを矩形で表している。各物理サーバに配置されるＶＭは、物理サーバを表す矩形内にＶＭ番号を付した円で示されている。
【０１２３】
図２１の例では、生成された配置パターン２３１〜２３７には、経路リスト１４３に示された条件を満たす配置パターンがない。そこで、経路リスト１４３から通信経路情報が削除される。例えば、可視化の優先順位が低い処理に関する通信経路が削除される。図２１の例では、ＶＭ２０１とＶＭ２０３との間の通信は、ＩＩＯＰ（Internet Inter-ORB Protocol）を用いて行われている。ＶＭ２０３とＶＭ２０４との間の通信は、ＳＱＬ（Structured Query Language）を用いて行われている。ＶＭ２０２とＶＭ２０３との間の通信は、ＩＩＯＰを用いて行われている。ＶＭ２０２とＶＭ２０４との間の通信は、ｓｓｈ（Secure SHell）を用いて行われている。
【０１２４】
例えば、管理者がｓｓｈの通信については可視化の必要性が低いが判断した場合、ｓｓｈの通信経路を示す通信経路情報が、経路リスト１４３から削除される。そして、残りも３つの通信経路情報を含む経路リスト１４４が新たに作成される。通信経路情報が削除されたことで、配置可能と判断するための条件が緩和されている。その結果、通信経路の削除後の経路リスト１４４に基づいて配置パターン２３１〜２３７それぞれについて配置可能か否かを判定すると、配置可能な配置パターン２３３が検出される。そこで、配置可能な配置パターン２３３が選択される。
【０１２５】
このように、経路リストから所定の通信経路情報を削除することで、適切な配置パターンの選択が可能となる。
なお、上記の例では、経路リストからの通信経路情報の削除を、管理者からの操作入力によって行うものとしているが、通信経路情報の削除を自動化することも可能である。例えば、通信に用いるプロトコルごとに、調査の優先順位を配置決定部１５０に予め設定しておく。図２１の例であれば、「ＩＩＯＰ」や「ＳＱＬ」よりも「ｓｓｈ」の優先順位を低く設定しておく。また、経路リストを作成する際には、各通信経路に対応付けて、その通信経路で使用されるプロトコルを設定しておく。配置決定部１５０は、図１９のステップＳ３５の処理において、優先順位の最も低いプロトコルで通信を行う通信経路の１つを、経路リストから削除する。このようにして、経路リストからの通信経路情報の削除処理の自動化が可能となる。
【０１２６】
＜システム可視化＞
次にシステム可視化処理について説明する。
図２２は、可視化処理の一例を示す図である。図２２には、Ｗｅｂ３階層システムの処理状況を分析する場合の例である。Ｗｅｂ３階層システムは、最上位の階層がＷｅｂサーバで構成される。Ｗｅｂサーバは、例えばＨＴＴＰ（HyperText Transfer Protocol）に従ったリクエストメッセージを解釈し、リクエストメッセージに示された処理を実行する。２階層目が、アプリケーションサーバで構成される。アプリケーションサーバは、例えばＩＩＯＰに従ったリクエストメッセージを解釈し、リクエストメッセージに示された処理を実行する。３階層目がＤＢサーバで構成される。ＤＢサーバは、例えばＳＱＬに従ったリクエストメッセージを解釈し、リクエストメッセージに示された処理を実行する。
【０１２７】
図２２の例では、６個のＶＭ７１〜７６を用いて、Ｗｅｂ３階層システムが構築される。ＶＭ７１〜７３は、Ｗｅｂサーバの機能を有する。ＶＭ７４，７５は、アプリケーションサーバの機能を有する。ＶＭ７６は、ＤＢサーバの機能を有する。
【０１２８】
Ｗｅｂ３階層システムでは、Ｗｅｂサーバの機能を有するＶＭ７１〜７３それぞれと、アプリケーションサーバの機能を有するＶＭ７４，７５それぞれとの間で通信が発生する。またアプリケーションサーバの機能を有するＶＭ７４，７５それぞれと、ＤＢサーバの機能を有するＶＭ７６との間で通信が発生する。
【０１２９】
ＶＭ配置装置１１は、例えば可視化装置１００からの指示に応じて、ＶＭ７１〜７６を可視化用ラックＢ内の物理サーバ４１〜４３に配置する。例えば、運用ラックＡ内の物理サーバ３１，３２，３３，・・・のいずれかで動作していたＶＭ７１〜７６が、物理サーバ４１〜４３に再配置される。この場合、ＶＭ配置装置１１は、ＶＭ７１〜７６が動作していた運用ラックＡ内の物理サーバに対して、可視化用ラックＢ内の物理サーバのいずれかへのＶＭのライブマイグレーションを指示する。配置先の物理サーバは、例えば、その物理サーバのＯＳが有するＩＰアドレスによって特定される。ライブマイグレーションの指示を受けた運用ラックＡ内の物理サーバは、配置先の物理サーバに対して再配置対象のＶＭに関する情報を送信する。送信する情報には、例えば、ＶＭの機能を実現するプログラムやデータが含まれる。図２２の例では、ＶＭ７１〜７３が物理サーバ４１に配置されている。ＶＭ７４，７５が、物理サーバ４２に配置されている。ＶＭ７６が、物理サーバ４３に配置されている。
【０１３０】
再配置後は、Ｗｅｂ３階層システム宛のクライアントからのリクエストメッセージは、物理サーバ４１内のＷｅｂサーバとして機能するいずれかのＶＭ７１〜７３に渡される。なお、Ｗｅｂ３階層システムに対するクライアントは、例えば端末装置２１，２２，・・・である。クライアントからのリクエストメッセージを受け取ったＶＭは、リクエストメッセージに応じた処理にアプリケーションサーバの機能が利用される場合、アプリケーションサーバとして機能するＶＭ７４，７５にリクエストメッセージを送信する。Ｗｅｂサーバとして機能するＶＭからのリクエストメッセージを受け取ったＶＭは、リクエストメッセージに応じた処理にＤＢサーバの機能が利用される場合、ＤＢサーバとして機能するＶＭ７６にリクエストメッセージを送信する。ＶＭ７６は、受け取ったリクエストメッセージに応じた処理を実行し、リクエストメッセージを送信したＶＭに対してレスポンスメッセージを応答する。ＶＭ７６からのレスポンスメッセージを受け取ったＶＭは、所定の処理完了後、レスポンスメッセージをＷｅｂサーバとして機能するＶＭに応答する。そして、アプリケーションサーバとして機能するＶＭからのレスポンスメッセージを受け取ったＶＭは、所定の処理完了後、クライアントに対してレスポンスメッセージを送信する。
【０１３１】
このようにして、複数のＶＭによる連携した処理が実行される。図２２の例では、互いに通信が発生するＶＭが異なる物理サーバに配置されているため、ＶＭ間で通信されたすべてのリクエストメッセージとレスポンスメッセージとが、スイッチ５２においてキャプチャされる。すなわち、すべてのリクエストメッセージとレスポンスメッセージとを構成するパケットが、ミラーポート５２ａから出力される。
【０１３２】
可視化装置１００の分析部１１０は、ミラーポート５２ａから出力されたパケットに基づいて、Ｗｅｂ３階層システムで実行された処理（トランザクション）を再構成する。例えば分析部１１０には、予めトランザクションモデルが格納されている。トランザクションモデルは、トランザクション種別ごとに、該当種別のトランザクションにおいて各階層のサーバとして機能するＶＭで実行される処理内容と、処理間の呼び出し関係を定義した情報である。
【０１３３】
分析部１１０は、キャプチャしたパケットを解析し、通信されたリクエストメッセージとレスポンスメッセージとを再構成する。この際、分析部１１０は、リクエストメッセージとレスポンスメッセージとに対して、通信された時刻情報（タイムスタンプ）を付与する。リクエストメッセージとレスポンスメッセージには、送信元のＩＰアドレスと宛先のＩＰアドレスが含まれている。そのため、分析部１１０は、リクエストメッセージとレスポンスメッセージに基づいて、処理の呼び出し元のＶＭと呼び出し先のＶＭとを認識できる。処理の呼び出し元のＶＭとは、リクエストメッセージの送信元のＶＭである。また処理の呼び出し元のＶＭは、レスポンスメッセージの宛先のＶＭでもある。処理の呼び出し先のＶＭとは、リクエストメッセージの宛先のＶＭである。また処理の呼び出し先のＶＭは、レスポンスメッセージの送信元のＶＭでもある。
【０１３４】
分析部１１０は、処理の呼び出し元のＶＭと呼び出し先のＶＭとが一致するリクエストメッセージとレスポンスメッセージとのペア（メッセージ対）を作成する。メッセージ対は、いずれかのＶＭでの１つの処理に対応付けられる。そして分析部１１０は、処理間の呼び出しに関する制約条件を満たすメッセージ対を組み合わせて、実行されたトランザクション７７を再現する。処理間の呼び出しに関する制約条件とは、例えば、「呼び出し元の処理の時間帯は、呼び出し先の処理の時間帯を包含する」という条件である。なお各処理の時間帯は、処理のリクエストメッセージが出力されてから、そのリクエストメッセージに応じた処理がレスポンスメッセージを出力するまでの時間帯である。分析部１１０は、再現したトランザクション７７を、トランザクションモデルと照合し、実行されたトランザクション７７の種別を判断する。また、分析部１１０は、再現したトランザクション７７に含まれる各メッセージの時刻情報に基づいて、各ＶＭでの処理時間を計算する。これにより、トランザクション種別ごとの各階層のサーバとして機能するＶＭでの処理時間を、分析結果として得ることができる。このようなキャプチャしたパケットを用いて処理内容を可視化する分析技術は、例えば特開２００６−０１１６８３号公報に詳細に開示されている。
【０１３５】
このように互いに通信するＶＭが異なる物理サーバに配置されていれば、キャプチャしたパケットに基づいて複数階層システムにおけるトランザクション７７全体の処理を可視化することができる。すなわち、複数のＶＭによる複数階層システムの処理状況を、詳細に分析することができる。
【０１３６】
〔その他の実施の形態〕
上記の第１・第２の実施の形態では、スイッチを介してキャプチャした通信情報（パケット）を用いた分析を行っているが、単に通信ログとしてパケットを記録しておくこともできる。
【０１３７】
また、上記の第１・第２の実施の形態では、スイッチのポートミラーリング機能を用いて通信情報（パケット）をキャプチャしているが、他の方法でキャプチャしてもよい。例えば、スイッチに代えて、リピータバブを用いて各物理サーバと可視化装置とを接続することで、パケットのキャプチャが可能となる。すなわちリピータハブでは、すべてのパケットが、入力されたポート以外の全ポートから出力される。そのため、可視化装置において各物理サーバ宛のパケットを取得することができる。
【０１３８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、仮想マシン管理装置１や可視化装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１３９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４１】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１４２】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１４３】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
（付記１）  コンピュータに、
複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、
処理を実行させることを特徴とする仮想マシン管理プログラム。
【０１４４】
（付記２）  前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する際には、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す配置パターンを生成し、
生成された配置パターンのうち、すべての通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行される配置パターンを適用可能と判定し、
適用可能な配置パターンに従って、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定することを特徴とする付記１記載の仮想マシン管理プログラム。
【０１４５】
（付記３）  配置パターンを生成する際には、前記複数の仮想マシンの少なくとも一部を実行するサーバコンピュータが互いに異なる複数の配置パターンを生成し、
適用可能な配置パターンが複数ある場合、予め指定された選択条件に合った配置パターンを選択し、
選択した適用可能な配置パターンに従って、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定することを特徴とする付記２記載の仮想マシン管理プログラム。
【０１４６】
（付記４）  前記選択条件が性能重視の場合、適用可能な配置パターンのうち、使用するサーバコンピュータの台数が最も多い配置パターンを選択することを特徴とする付記３記載の仮想マシン管理プログラム。
【０１４７】
（付記５）  前記選択条件が台数節約の場合、適用可能な配置パターンのうち、使用するサーバコンピュータの台数が最も少ない配置パターンを選択することを特徴とする付記３または４のいずれかに記載の仮想マシン管理プログラム。
【０１４８】
（付記６）  適用可能な配置パターンがない場合、前記記憶手段内の一部の通信経路情報を削除し、削除後に前記記憶手段に残されたすべての通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行される配置パターンを、適用可能と判定することを特徴とする付記３乃至５のいずれかに記載の仮想マシン管理プログラム。
【０１４９】
（付記７）  前記コンピュータにさらに、
前記複数の仮想マシンそれぞれをスイッチで接続された複数のサーバコンピュータで実行させ、前記複数の仮想マシンを用いた処理の実行に伴い仮想マシン間で前記スイッチを介して通信された情報を前記スイッチから取得し、
取得した情報の宛先の仮想マシンと送信元の仮想マシンとの対を示す通信経路情報を生成し、生成した通信経路情報を前記記憶手段に格納する、
処理を実行させることを特徴とする付記１乃至６のいずれかに記載の仮想マシン管理プログラム。
【０１５０】
（付記８）  前記複数の仮想マシンそれぞれをスイッチで接続された複数のサーバコンピュータで実行させる際には、
前記複数の仮想マシンのうちの２つの仮想マシンを選ぶことで得られる仮想マシンの対のすべてについて、少なくとも１回は対を成す仮想マシンが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれと仮想マシンを実行するサーバコンピュータとの組み合わせを示す少なくとも１つの配置パターンを生成し、
配置パターンを生成するごとに、該配置パターンに従って、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、
ことを特徴とする付記７記載の仮想マシン管理プログラム。
【０１５１】
（付記９）  コンピュータが、
複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定し、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する、
ことを特徴とする仮想マシン管理方法。
【０１５２】
（付記１０）  複数の仮想マシンのうち互いに通信を行う２つの仮想マシンの対を示す少なくとも１つの通信経路情報が登録された記憶手段を参照し、通信経路情報それぞれに示される仮想マシンの対について、該対を成す２つの仮想マシンそれぞれが異なるサーバコンピュータで実行されるように、前記複数の仮想マシンそれぞれを実行するサーバコンピュータを決定する実行サーバ決定手段と、
前記複数の仮想マシンそれぞれを実行するサーバコンピュータを示す情報を出力する出力手段と、
を有することを特徴とする仮想マシン管理装置。
【符号の説明】
【０１５３】
１  仮想マシン管理装置
１ａ  記憶手段
１ｂ  実行サーバ決定手段
１ｂ−１  配置パターン生成手段
１ｂ−２  可否判定手段
１ｂ−３  選択手段
１ｂ−４  決定手段
１ｃ  出力手段
２，３  サーバコンピュータ
４  スイッチ
５  分析装置
６  仮想マシン配置装置
７ａ，７ｂ，７ｃ，７ｄ  仮想マシン
８ａ，８ｂ，８ｃ，・・・  配置パターン
９ａ，９ｂ，９ｃ  通信経路情報
【図１】
0005556507.tif 000002
【図２】
0005556507.tif 000003
【図３】
0005556507.tif 000004
【図４】
0005556507.tif 000005
【図５】
0005556507.tif 000006
【図６】
0005556507.tif 000007
【図７】
0005556507.tif 000008
【図８】
0005556507.tif 000009
【図９】
0005556507.tif 000010
【図１０】
0005556507.tif 000011
【図１１】
0005556507.tif 000012
【図１２】
0005556507.tif 000013
【図１３】
0005556507.tif 000014
【図１４】
0005556507.tif 000015
【図１５】
0005556507.tif 000016
【図１６】
0005556507.tif 000017
【図１７】
0005556507.tif 000018
【図１８】
0005556507.tif 000019
【図１９】
0005556507.tif 000020
【図２０】
0005556507.tif 000021
【図２１】
0005556507.tif 000022
【図２２】
0005556507.tif 000023