(57)【特許請求の範囲】
【請求項１】
仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムが実行する通信データのデータ収集方法であって、
複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得し、
前記複数の情報処理装置のうちの１つの情報処理装置を選択して、前記１またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更し、
前記情報処理装置で動作する中継手段が中継する通信データを収集する、
データ収集方法。
【請求項２】
前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置それぞれを前記１つの情報処理装置として選択した場合の前記複数の仮想マシンの割当の変更後の複数の配置候補を取得し、前記複数の配置候補それぞれについて割当の変更に伴う情報処理装置の負荷を示す情報および通信データを収集する際の情報処理装置の負荷を示す情報の少なくとも何れかを予測し、予測結果に基づいて前記複数の仮想マシンの割当変更後の配置を決定する、請求項１記載のデータ収集方法。
【請求項３】
前記割当の変更に伴う情報処理装置の負荷を示す情報は、前記複数の仮想マシンの現在の配置を配置候補で示される配置とするために割当の変更対象となる仮想マシンの数を含む、請求項２記載のデータ収集方法。
【請求項４】
前記通信データを収集する際の情報処理装置の負荷を示す情報は、配置候補で示される配置へ割当を変更した場合に収集される通信データの量を含む、請求項２または３記載のデータ収集方法。
【請求項５】
前記通信データを収集する際の情報処理装置の負荷を示す情報は、配置候補で示される配置へ変更した場合に、通信データの収集に用いる中継手段に設けられており通信データの収集対象となるポートの数を含む、請求項２乃至４の何れか一項に記載のデータ収集方法。
【請求項６】
前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置以外のクライアント装置と通信する仮想マシンが、選択した前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更する、請求項１乃至５の何れか一項に記載のデータ収集方法。
【請求項７】
前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置で仮想マシンに割当可能なリソース量を示す情報と前記複数の仮想マシンそれぞれの動作に所要するリソース量を示す情報とに基づいて、前記１つの情報処理装置と割当を変更する仮想マシンとを選択する、請求項１乃至６の何れか一項に記載のデータ収集方法。
【請求項８】
仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えた情報処理システムであって、
複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得し、前記複数の情報処理装置のうちの１つの情報処理装置を選択して、前記１またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当の変更内容を決定する割当決定手段と、
決定された変更内容に基づいて前記複数の仮想マシンの割当を変更し、前記情報処理装置で動作する中継手段が中継する通信データの収集を行うように前記情報処理装置を制御する制御手段と、
を有する情報処理システム。
【請求項９】
仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムで通信データの収集に用いられるプログラムであって、
コンピュータに、
複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得し、
前記複数の情報処理装置のうちの１つの情報処理装置を選択して、前記１またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更し、
前記情報処理装置で動作する中継手段が中継する通信データの収集を行うように前記情報処理装置を制御する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ収集方法、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
現在、情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、ＯＳ（Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【０００３】
例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、当該リソースを用いて、仮想マシンの通信データを中継する機能（仮想スイッチと呼ぶことがある）を物理マシン上で動作させることもある。仮想スイッチに仮想マシンの通信を中継させることで、物理マシン上に仮想マシンのネットワークを構築できる。このように、複数の物理マシンを備え、物理マシン上で動作する複数の仮想マシンを用いたサービスをクライアント装置から利用可能とする情報処理システムがある。
【０００４】
このような情報処理システムでは仮想マシンの稼働状況を監視することがある。例えば、仮想スイッチが中継する仮想マシン間のパケットをミラーリングにより収集するための仮想マシン（仮想プローブ）を物理サーバ上で動作させ、仮想プローブが収集したパケットに基づき当該物理サーバ上の仮想マシンの構成変更を検出する提案がある。
【０００５】
また、物理マシンが備える物理ＮＩＣ（Network Interface Card）の使用率を監視し、使用率が上限値より高い物理ＮＩＣを用いて通信する仮想マシンのうち優先度の低い仮想マシンが、使用率の低い物理ＮＩＣを用いて通信するよう割当変更する提案がある。
【０００６】
なお、通信装置とネットワークとの間の通信を中継する中継装置から通信のデータ量の情報を取得し、当該情報に基づいて通信装置の通信負荷を取得することで、通信装置に通信負荷を計測させる場合よりも、通信装置の負荷を軽減する提案がある。
【０００７】
更に、複数のサーバが連携するシステムにおいて、ネットワークを流れるサーバ間のメッセージを収集し、収集したメッセージを組合せて解析することで、当該システムにおけるトランザクションの処理状態を分析する提案がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−４７８１号公報
【特許文献２】特開２００９−１７６１０３号公報
【特許文献３】特開２００８−２７１０５０号公報
【特許文献４】特開２００６−１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
あるサービスの処理のために、異なる物理マシン上の複数の仮想マシンが連携する場合がある。この場合、当該サービスに係る仮想マシン間で通信される全データを、仮想マシン間の通信を中継する仮想スイッチから収集して、サービスの状況を監視することが考えられる。このとき、データ収集のため、特定の物理マシンでデータ収集用の仮想マシンを動作させる。そこで、当該データ収集用の仮想マシンを用いて、異なる物理マシン上の各仮想スイッチが中継するデータを、どのように効率的に収集するかが問題となる。
【００１０】
例えば、当該特定の物理マシン以外の他の物理マシンで動作する仮想マシン同士が通信することがある。その場合、当該データ収集用の仮想マシンでは、その通信のデータを取得するのが困難である。そこで、各物理マシン上の仮想スイッチが中継するデータを複製し、物理マシン間を接続するネットワークを介して特定の物理マシンで動作するデータ収集用の仮想マシンに送ることが考えられる。しかし、この場合、複製したデータがネットワークに流れる。このため、複製したデータにより、監視中のネットワークの負荷が高まり非効率的となる。
【００１１】
一側面によれば、本発明は、データ収集を効率的に行うことができるデータ収集方法、情報処理システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
一実施態様によれば、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムが実行する通信データのデータ収集方法が提供される。データ収集方法では、複数の仮想マシンが送受信する通信データに基づいて、複数の仮想マシンのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得する。複数の情報処理装置のうちの１つの情報処理装置を選択して、１またはそれ以上のペアのうち、選択した情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、当該情報処理装置で実行されるように複数の仮想マシンの割当を変更する。当該情報処理装置で動作する中継手段が中継する通信データを収集する。
【００１３】
また、一実施態様によれば、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えた情報処理システムが提供される。情報処理システムは、割当決定手段と制御手段とを有する。割当決定手段は、複数の仮想マシンが送受信する通信データに基づいて、複数の仮想マシンのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得し、複数の情報処理装置のうちの１つの情報処理装置を選択して、１またはそれ以上のペアのうち、選択した情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、当該情報処理装置で実行されるように複数の仮想マシンの割当の変更内容を決定する。制御手段は、決定された変更内容に基づいて複数の仮想マシンの割当を変更し、当該情報処理装置で動作する中継手段が中継する通信データの収集を行うように当該情報処理装置を制御する。
【００１４】
また、一実施態様によれば、コンピュータが実行するプログラムであって、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムで通信データの収集に用いられるプログラムが提供される。
【発明の効果】
【００１５】
一実施態様によれば、データ収集を効率的に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】実行サーバのハードウェア例を示す図である。
【図４】仮想マシンの割当例を示す図である。
【図５】仮想マシンの割当例（続き）を示す図である。
【図６】第２の実施の形態のソフトウェア例を示す図である。
【図７】通信経路の例を示す図である。
【図８】物理サーバリソース管理テーブルの例を示す図である。
【図９】ＶＭリソース管理テーブルの例を示す図である。
【図１０】収集される通信データの例を示す図である。
【図１１】通信ペアテーブルの例を示す図である。
【図１２】全通信ペアテーブルの例を示す図である。
【図１３】キャプチャ対象候補テーブルの例を示す図である。
【図１４】ＶＭ配置候補テーブルの例を示す図である。
【図１５】データ収集処理の例を示すフローチャートである。
【図１６】キャプチャ対象候補の決定例を示すフローチャートである。
【図１７】仮想マシンの配置決定の例を示すフローチャートである。
【図１８】仮想マシンの配置決定の具体例を示す図である。
【図１９】仮想マシンの配置決定の具体例を示す図（続き）である。
【図２０】割当変更後の接続例を示す図である。
【図２１】割当変更後の通信経路の例を示す図である。
【図２２】監視時のデータ収集の例を示す図である。
【図２３】監視時のデータ収集の他の例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システムは、情報処理装置１，２，３を備えている。情報処理装置１，２，３はネットワーク４を介して接続されている。情報処理装置１，２，３は、ＣＰＵなどのプロセッサとＲＡＭなどのメモリとを備えてもよく、メモリに記憶されたプログラムをプロセッサが実行するコンピュータであってもよい。
【００１８】
情報処理装置２は、仮想マシン２ａ，２ｂおよび中継手段２ｃが動作可能である。情報処理装置３は、仮想マシン３ａ，３ｂおよび中継手段３ｃが動作可能である。例えば、情報処理装置２，３で実行されるハイパーバイザが、これら仮想マシンおよび中継手段を情報処理装置２，３上で動作させる。
【００１９】
仮想マシン２ａ，２ｂ，３ａ，３ｂは、所定のサービスの処理のために連携する。ここで、仮想マシン２ａの識別名を“Ｖ１”とする。仮想マシン２ｂの識別名を“Ｖ２”とする。仮想マシン３ａの識別名を“Ｖ３”とする仮想マシン３ｂの識別名を“Ｖ４”とする。中継手段２ｃ，３ｃは、仮想マシン間の通信データを中継する。中継手段２ｃ，３ｃは、仮想スイッチや仮想ルータなどと呼ばれるものでもよい。
【００２０】
第１の実施の形態の情報処理システムでは、仮想マシン２ａ，２ｂ，３ａ，３ｂの通信データを収集する。そして、収集した通信データに基づいてサービスの状況（各仮想マシンの稼働状況）を監視する。例えば、収集した通信データを組合せて仮想マシン間における要求／応答の対応関係の正常なパターンや異常なパターンなどを分析して、サービス全体の稼働状況を監視する。図１（Ａ）では、監視のためのデータ収集前（仮想マシンの割当変更前）の仮想マシンの配置状況を例示している。
【００２１】
情報処理装置１は、割当決定手段１ａおよび制御手段１ｂを有する。
割当決定手段１ａは、仮想マシン２ａ，２ｂ，３ａ，３ｂが送受信する通信データに基づいて、仮想マシン２ａ，２ｂ，３ａ，３ｂのうち互いに通信する仮想マシンの１またはそれ以上のペアを取得する。例えば、割当決定手段１ａは、中継手段２ｃ，３ｃが中継する通信データを所定の期間だけミラーリングにより収集し、収集した通信データの送信元／宛先のアドレスの情報から互いに通信する仮想マシンのペア（図１では通信するペアと表記）を取得してもよい。また、例えば、割当決定手段１ａは、仮想マシン２ａ，２ｂ，３ａ，３ｂから各仮想マシンが何れの他の仮想マシンと通信しているかを示す情報を取得してもよい。仮想マシン２ａ，２ｂ，３ａ，３ｂは、通信データの生成元であり、自身が通信データに設定した送信元／宛先のアドレスの情報を割当決定手段１ａに提供できる。これにより、割当決定手段１ａは互いに通信する仮想マシンのペアとして、例えば、ペア（Ｖ１，Ｖ２）、（Ｖ２，Ｖ３）、（Ｖ３，Ｖ４）を取得する。
【００２２】
割当決定手段１ａは、情報処理装置２，３のうちの１つの情報処理装置を選択して、１またはそれ以上のペアのうち、選択した情報処理装置以外の他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、選択した情報処理装置で実行されるように仮想マシン２ａ，２ｂ，３ａ，３ｂの割当の変更内容を決定する。例えば、割当決定手段１ａは、情報処理装置２を選択する。そして、選択した情報処理装置２以外の情報処理装置３で動作する仮想マシン３ａ，３ｂのペア（Ｖ３，Ｖ４）のうちの仮想マシン３ａ（Ｖ３）が、選択した情報処理装置２で実行されるように割当を変更すると決定する。
【００２３】
制御手段１ｂは、決定された変更内容に基づいて、仮想マシン２ａ，２ｂ，３ａ，３ｂの割当を変更する。仮想マシンの割当の変更には、例えば、ライブマイグレーションと呼ばれる技術を利用できる。ライブマイグレーションとは、仮想マシンを終了させずに、ハイパーバイザ間で仮想マシンに関するデータを移動させる技術である。ライブマイグレーションにより、仮想マシンを実行する情報処理装置を動的に変更することができる。図１（Ｂ）では、割当変更後の仮想マシンの配置状況を例示している。例えば、制御手段１ｂは、仮想マシン３ａを情報処理装置３から情報処理装置２へ移動させる。
【００２４】
制御手段１ｂは、割当決定手段１ａにより選択された情報処理装置２で動作する中継手段２ｃが中継する通信データの収集を行うように情報処理装置２を制御する。例えば、制御手段１ｂは、データ収集用の仮想マシンを新たに情報処理装置２上で動作させる。そして、当該データ収集用の仮想マシンを用いて中継手段２ｃが中継する通信データをミラーリングにより収集させる。すると、ペア（Ｖ１，Ｖ２）、（Ｖ２，Ｖ３）、（Ｖ３，Ｖ４）の間の全ての通信データを、当該データ収集用の仮想マシンを用いて収集できる。
【００２５】
なお、割当決定手段１ａおよび制御手段１ｂの何れか一方または両方は、それぞれ別個の情報処理装置上に設けられてもよい。また、割当決定手段１ａおよび制御手段１ｂの何れか一方または両方は、情報処理装置２，３（例えば、情報処理装置２，３で動作する仮想マシン）に設けられてもよい。
【００２６】
第１の実施の形態の情報処理システムによれば、割当決定手段１ａにより、仮想マシン２ａ，２ｂ，３ａ，３ｂが送受信する通信データに基づいて、仮想マシン２ａ，２ｂ，３ａ，３ｂのうち互いに通信する仮想マシンのペアが取得される。割当決定手段１ａにより、情報処理装置２，３のうちの１つの情報処理装置が選択されて、取得されたペアのうち、選択された情報処理装置以外の他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、選択された情報処理装置で実行されるように複数の仮想マシンの割当の変更内容が決定される。制御手段１ｂにより、決定された変更内容に基づいて仮想マシン２ａ，２ｂ，３ａ，３ｂの割当が変更される。制御手段１ｂにより、選択された情報処理装置で動作する中継手段が中継する通信データの収集を行うように当該情報処理装置が制御される。
【００２７】
これにより、データ収集を効率的に行うことができる。具体的には、次の通りである。
例えば、図１（Ａ）で示すように仮想マシン２ａ，２ｂが情報処理装置２で動作し、仮想マシン３ａ，３ｂが情報処理装置３で動作し、互いに通信するペアが（Ｖ１，Ｖ２）、（Ｖ２，Ｖ３）、（Ｖ３，Ｖ４）である場合を考える。この場合、当該配置において全ペアにつき仮想マシン間の通信データを収集しようとすると、次のように通信データをミラーリングして収集することになる。すなわち、ペア（Ｖ１，Ｖ２）については中継手段２ｃが中継する通信データを複製して収集する。ペア（Ｖ２，Ｖ３）については中継手段２ｃ，３ｃの何れか一方が中継する通信データを複製して収集する。ペア（Ｖ３，Ｖ４）については中継手段３ｃが中継する通信データを複製して収集する。
【００２８】
そのために、例えば、情報処理装置２でデータ収集用の仮想マシンを動作させ、当該仮想マシンを用いて中継手段２ｃ，３ｃが複製する通信データを収集することが考えられる。しかし、この場合、中継手段３ｃにより複製された通信データは、ネットワーク４を経由して中継手段２ｃに送られる。すると、当該複製された通信データによってネットワーク４の負荷が高まる。複製された通信データは、監視用のデータであり、本来のサービスに用いられるものではない。このため、監視中に、当該通信データでネットワーク４の帯域が利用されると、本来のサービスなどの通信で利用可能な帯域が低減することになり非効率的となる。
【００２９】
そこで、第１の実施の形態の情報処理システムでは、図１（Ｂ）に示すように、仮想マシンの割当を変更してから監視のためのデータ収集を行う。すなわち、情報処理装置３で動作する仮想マシン３ａ，３ｂのペアのうち、仮想マシン３ａを情報処理装置２へ割当変更した後に、中継手段２ｃが中継する通信データを収集する。当該割当変更後は、仮想マシン３ａ，３ｂの通信データは中継手段２ｃにより中継される。したがって、中継手段２ｃのみが中継する通信データを収集することで、全ペアについての通信データを収集できるようになる。このようにすれば、監視中に、複製された通信データをネットワーク４に流さなくてよい。よって、複製された通信データを流すことによるネットワーク４の負荷への影響を低減できる。このようにして、データ収集を効率的に行うことができる。
【００３０】
なお、何れの情報処理装置に、何れの仮想マシンを移動させるか、を種々の基準に基づいて決定してもよい。例えば、仮想マシンの配置変更に伴う負荷を示す情報や配置変更後にデータ収集を行う際の負荷を示す情報を予測し、予測した負荷に基づいて仮想マシン３ａ，３ｂの何れを情報処理装置２に移動させるか決定することが考えられる。具体的には、配置変更する仮想マシンの数によって仮想マシンの配置変更に伴う負荷を予測することが考えられる。また、収集する通信データの量、中継手段の設定変更量によってデータ収集を行う際の負荷を予測することが考えられる。そして、これらの少なくとも何れかが小さくなるように移動先の情報処理装置や移動対象の仮想マシンを決定する。このようにすれば、データ収集を一層効率的に行うことができる。
【００３１】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、実行サーバ１００，２００、管理サーバ３００およびクライアント４００，５００，６００を含む。各装置は、ネットワーク１０に接続されている。ネットワーク１０は、例えばＬＡＮ（Local Area Network）である。なお、クライアント４００，５００，６００は、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークを介して、ネットワーク１０に接続されてもよい。第２の実施の形態の情報処理システムでは、実行サーバ１００，２００が提供するサービスをクライアント４００，５００，６００が利用する。実行サーバ１００，２００が提供するサービスの処理は、実行サーバ１００，２００上で動作する仮想マシンが連携して実行される。
【００３２】
第２の実施の形態では、実行サーバ１００，２００がＷｅｂサービスを提供する場合を例示する。当該Ｗｅｂサービスは、Ｗｅｂサーバ機能、ＡＰ（APplication）サーバ機能およびＤＢ（DataBase）サーバ機能の３つの機能の連携により実行されるものとする。Ｗｅｂサーバ機能は、例えば、ＧＵＩ（Graphical User Interface）などを提供する。ＡＰサーバ機能は、例えば、業務特有のロジックによる機能を提供する。ＤＢサーバ機能は、例えば、業務に用いるデータの管理機能を提供する。
【００３３】
実行サーバ１００，２００は、仮想マシンおよび仮想スイッチが動作可能なサーバコンピュータである。なお、以下の説明では仮想マシンをＶＭ（Virtual Machine）と呼ぶことがある。
【００３４】
管理サーバ３００は、実行サーバ１００，２００で動作する仮想マシンの配置を管理するサーバコンピュータである。
クライアント４００，５００，６００は、実行サーバ１００，２００が提供するＷｅｂサービスにアクセスするクライアントコンピュータである。
【００３５】
図３は、実行サーバのハードウェア例を示す図である。実行サーバ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６およびＮＩＣ１０７を有する。各ユニットが実行サーバ１００のバスに接続されている。実行サーバ２００、管理サーバ３００およびクライアント４００，５００，６００も、実行サーバ１００と同様のハードウェアを用いて実装できる。
【００３６】
ＣＰＵ１０１は、実行サーバ１００の情報処理を制御するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部を読み出し、ＲＡＭ１０２に展開してプログラムを実行する。なお、実行サーバ１００は、複数のプロセッサを設けて、プログラムを分散して実行してもよい。
【００３７】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。なお、実行サーバ１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えていてもよい。
【００３８】
ＨＤＤ１０３は、ＯＳプログラムやアプリケーションプログラムなどのプログラムおよびデータを記憶する不揮発性の記憶装置である。ＨＤＤ１０３は、ＣＰＵ１０１の命令に従って、内蔵の磁気ディスクに対してデータの読み書きを行う。なお、実行サーバ１００は、ＨＤＤ以外の種類の不揮発性の記憶装置（例えば、ＳＳＤ（Solid State Drive）など）を備えてもよく、複数の記憶装置を備えていてもよい。
【００３９】
画像信号処理部１０４は、ＣＰＵ１０１の命令に従って、実行サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイを用いることができる。
【００４０】
入力信号処理部１０５は、実行サーバ１００に接続された入力デバイス１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００４１】
ディスクドライブ１０６は、記録媒体１３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０６は、例えば、ＣＰＵ１０１の命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４２】
ＮＩＣ１０７は、ネットワーク１０を介して他のサーバと通信を行う通信インタフェースである。ＮＩＣ１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００４３】
図４は、仮想マシンの割当例を示す図である。実行サーバ１００は、ハイパーバイザ１１０および仮想マシン１２０，１３０，１４０を有する。
ハイパーバイザ１１０は、実行サーバ１００上で仮想マシン１２０，１３０，１４０を動作させる。ハイパーバイザ１１０は、管理サーバ３００の指示に基づいて、各仮想マシンに対するハードウェア資源の割当を行う。ハイパーバイザ１１０は、管理サーバ３００の指示に基づいて、各仮想マシンの起動・停止を行う。また、ハイパーバイザ１１０は、実行サーバ１００が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。更に、ハイパーバイザ１１０は、実行サーバ１００上で仮想スイッチ１１１を動作させる。
【００４４】
仮想スイッチ１１１は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ１１１のスイッチ名称を“ｖＳＷ１”とする。仮想スイッチ１１１は、ポート１１１ａ，１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，１１１ｆ，１１１ｇを有する。ポート１１１ａは、仮想マシン１２０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｂ，１１１ｃは、仮想マシン１３０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｄ，１１１ｅは、仮想マシン１４０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｆは空きである。ポート１１１ｇは、ＮＩＣ１０７およびネットワーク１０を介して、実行サーバ２００、管理サーバ３００およびクライアント４００，５００，６００と通信するために用いられる仮想的な通信インタフェースである。
【００４５】
仮想マシン１２０は、仮想スイッチ１１１が中継する通信データをミラーリングにより収集して、各仮想マシンの稼働状況を監視するための仮想マシンである。仮想マシン１２０のマシン名称を“監視用ＶＭ”とする。例えば、仮想スイッチ１１１は、ポート１１１ａ以外の１またはそれ以上のポートを流れる通信データを複製して、ポート１１１ａからも送信する。仮想マシン１２０は、当該通信データを収集して、通信データに含まれるメッセージから他の仮想マシンに関する種々の情報を取得できる。仮想マシン１２０は、ｖＮＩＣ（virtual NIC）１２１を有する。ｖＮＩＣ１２１は、ポート１１１ａを介して通信するための仮想的な通信インタフェースである。
【００４６】
仮想マシン１３０，１４０は、Ｗｅｂサーバ機能を実行する仮想マシンである。仮想マシン１３０のマシン名称を“Ｗｅｂ１”とする。仮想マシン１４０のマシン名称を“Ｗｅｂ２”とする。
【００４７】
仮想マシン１３０は、ｖＮＩＣ１３１，１３２を有する。ｖＮＩＣ１３１は、ポート１１１ｂを介してクライアント４００，５００，６００と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１３２は、ポート１１１ｃを介して仮想マシン２２０と通信するための仮想的な通信インタフェースである。
【００４８】
仮想マシン１４０は、ｖＮＩＣ１４１，１４２を有する。ｖＮＩＣ１４１は、ポート１１１ｄを介してクライアント４００，５００，６００と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１４２は、ポート１１１ｅを介して仮想マシン２２０と通信するための仮想的な通信インタフェースである。
【００４９】
実行サーバ２００は、ハイパーバイザ２１０および仮想マシン２２０，２３０を有する。なお、図４では実行サーバ２００が備える物理ＮＩＣを便宜的にＮＩＣ２０７と表記している。
【００５０】
ハイパーバイザ２１０は、実行サーバ２００上で仮想マシン２２０，２３０を動作させる。ハイパーバイザ２１０は、管理サーバ３００の指示に基づいて、各仮想マシンに対するハードウェア資源の割当を行う。ハイパーバイザ２１０は、管理サーバ３００の指示に基づいて、各仮想マシンの起動・停止を行う。また、ハイパーバイザ２１０は、実行サーバ２００が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。更に、ハイパーバイザ２１０は、実行サーバ２００上で仮想スイッチ２１１を動作させる。
【００５１】
仮想スイッチ２１１は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ２１１のスイッチ名称を“ｖＳＷ２”とする。仮想スイッチ２１１は、ポート２１１ａ，２１１ｂ，２１１ｃを有する。ポート２１１ａは、仮想マシン２２０と通信するための仮想的な通信インタフェースである。ポート２１１ｂは、仮想マシン２３０と通信するための仮想的な通信インタフェースである。ポート２１１ｃは、ＮＩＣ２０７を介して通信するための仮想的な通信インタフェースである。
【００５２】
仮想マシン２２０は、ＡＰサーバ機能を実行する仮想マシンである。仮想マシン２２０のマシン名称を“ＡＰ１”とする。仮想マシン２２０は、ｖＮＩＣ２２１を有する。ｖＮＩＣ２２１は、ポート２１１ａを介して仮想マシン１３０，１４０，２３０と通信するための仮想的な通信インタフェースである。
【００５３】
仮想マシン２３０は、ＤＢサーバ機能を実行する仮想マシンである。仮想マシン２３０のマシン名称を“ＤＢ１”とする。仮想マシン２３０は、ｖＮＩＣ２３１を有する。ｖＮＩＣ２３１は、ポート２１１ｂを介して仮想マシン２２０と通信するための仮想的な通信インタフェースである。
【００５４】
管理サーバ３００は、ＮＩＣ３０７を有する。ＮＩＣ３０７は、ネットワーク１０と接続される物理的な通信インタフェースである。
クライアント４００，５００，６００は、それぞれＮＩＣ４０７，５０７，６０７を有する。ＮＩＣ４０７，５０７，６０７は、ネットワーク１０と接続される物理的な通信インタフェースである。
【００５５】
なお、以下の説明において、実行サーバ１００のマシン名称を“ＳＶ１”とする。また、実行サーバ２００のマシン名称を“ＳＶ２”とする。
次に、各物理マシン／仮想マシンに割当てられるネットワークの識別情報を例示する。
【００５６】
図５は、仮想マシンの割当例（続き）を示す図である。第２の実施の形態では、仮想マシン１２０，１３０，１４０，２２０，２３０、管理サーバ３００およびクライアント４００，５００，６００は、同一のサブネットに属している。ネットワークアドレスは、“１９２．１６８．１．０／２４”である。図５では、各ｖＮＩＣおよび各ＮＩＣに割当てられたＩＰ（Internet Protocol）アドレスのうち、ネットワークアドレス部分の図示を省略し、ホストアドレス部分のみを表記している。各ｖＮＩＣおよび各ＮＩＣに割当てられているＩＰアドレスのホストアドレスは次の通りである。ｖＮＩＣ１２１は“．５０”である。ｖＮＩＣ１３１は“．１”である。ｖＮＩＣ１３２は“．２”である。ｖＮＩＣ１４１は“．３”である。ｖＮＩＣ１４２は“．４”である。ｖＮＩＣ２２１は“．５”である。ｖＮＩＣ２３１は“．６”である。ＮＩＣ３０７は“．１０”である。ＮＩＣ４０７は“．１００”である。ＮＩＣ５０７は“．１０１”である。ＮＩＣ６０７は“．１０２”である。
【００５７】
また、仮想スイッチ１１１の各ポートはポート番号が振られている。各ポートのポート番号は次の通りである。ポート１１１ａは“１”である。ポート１１１ｂは“２”である。ポート１１１ｃは“３”である。ポート１１１ｄは“４”である。ポート１１１ｅは“５”である。ポート１１１ｆは“６”である。ポート１１１ｇは“７”である。
【００５８】
同様に、仮想スイッチ２１１の各ポートはポート番号が振られている。各ポートのポート番号は次の通りである。ポート２１１ａは“１”である。ポート２１１ｂは“２”である。ポート２１１ｃは“３”である。
【００５９】
図６は、第２の実施の形態のソフトウェア例を示す図である。図６に示すユニットの一部または全部は、実行サーバ１００，２００、管理サーバ３００およびクライアント４００，５００，６００が実行するプログラムのモジュールであってもよい。また、図４に示すユニットの一部または全部は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの電子回路であってもよい。なお、図６では、ハイパーバイザ１１０，２１０の図示を省略している。
【００６０】
仮想マシン１２０は、記憶部１２２、データ収集部１２３、割当決定部１２４および監視部１２５を有する。
記憶部１２２は、割当決定部１２４や監視部１２５の処理に用いる各種のデータを記憶する。例えば、記憶部１２２は、実行サーバ１００，２００で利用可能なリソースを管理するためのデータおよび各仮想マシンに割当てられているリソースを管理するためのデータを記憶する。これらリソースを管理するための情報は、管理サーバ３００から取得できる。また、記憶部１２２は、データ収集部１２３が収集した仮想マシン間の通信データを記憶する。更に、記憶部１２２は、当該通信データに基づいて、割当決定部１２４が分析したデータを記憶する。
【００６１】
データ収集部１２３は、割当決定部１２４や監視部１２５の指示に応じて、仮想スイッチ１１１が中継する通信データを収集する。例えば、データ収集部１２３は、ポート１１１ｂを経由する通信データを収集したい場合、仮想スイッチ１１１にポート１１１ｂを経由する通信データを複製させて、ポート１１１ａにも送信させる。すると、データ収集部１２３は、当該複製された通信データを収集できる。このような手法はポートミラーリング（以下、ミラーリングという）と呼ばれることがある。また、ミラーリングなどを用いてイーサネット（登録商標）フレームなどの通信データを収集して、当該フレームに含まれるＩＰパケットなど分析する手法をパケットキャプチャと呼ぶことがある。以下では、通信データを収集することを単にキャプチャということがある。
【００６２】
また、データ収集部１２３は、仮想スイッチ２１１が中継する通信データを仮想スイッチ２１１に複製させ、ネットワーク１０を経由して収集することもできる。例えば、ポートごとに順番にミラーリングを行えば、ポートごとに当該ポートを経由する通信データを収集できる。また、仮想スイッチ１１１，２１１が通信データにポートを識別する情報を付与すれば、収集対象としたい全てのポートにつき同時にミラーリングを行うこともできる。データ収集部１２３は、収集した通信データを仮想スイッチ１１１，２１１上のポートに対応付けて記憶部１２２に格納する。
【００６３】
割当決定部１２４は、監視部１２５が仮想マシン１３０，１４０，２２０，２３０の監視を開始する前に、各仮想マシンの割当の変更内容を決定する。例えば、割当決定部１２４は、仮想スイッチ１１１，２１１が中継する通信データを所定期間だけデータ収集部１２３に収集させ、当該通信データに基づいて、各仮想マシンの割当の変更内容を決定する。割当決定部１２４は、決定した割当の変更内容を管理サーバ３００に通知して、各仮想マシンの割当変更の実行を依頼する。
【００６４】
監視部１２５は、仮想マシン１３０，１４０，２２０，２３０の稼働状況を監視する。具体的には、監視部１２５は、仮想マシン１３０，１４０，２２０，２３０の割当が管理サーバ３００により変更されると、仮想マシン１３０，１４０，２２０，２３０の通信データの収集をデータ収集部１２３に行わせる。例えば、監視部１２５は、データ収集部１２３が収集した通信データ（Ｗｅｂサーバ機能、ＡＰサーバ機能およびＤＢサーバ機能の間で送受信される通信データ）を組合せて、当該Ｗｅｂサービス全体における処理の実行状況を監視する。
【００６５】
仮想マシン１３０は、Ｗｅｂ処理部１３３を有する。仮想マシン１４０は、Ｗｅｂ処理部１４３を有する。Ｗｅｂ処理部１３３，１４３は、Ｗｅｂサーバ機能を実行する。例えば、Ｗｅｂ処理部１３３，１４３は、クライアント４００が実行するブラウザ４１０の要求により、仮想マシン２２０が実行するＡＰ処理部２２２に所定の処理の実行を要求する。また、Ｗｅｂ処理部１３３，１４３は、ＡＰ処理部２２２から処理の実行結果を取得すると、当該実行結果をブラウザ４１０に応答する。
【００６６】
仮想マシン２２０は、ＡＰ処理部２２２を有する。ＡＰ処理部２２２は、ＡＰサーバ機能を実行する。例えば、ＡＰ処理部２２２は、Ｗｅｂ処理部１３３，１４３からの要求に応じて、仮想マシン２３０が実行するＤＢ処理部２３２からデータを取得し、所定の処理を実行する。また、ＡＰ処理部２２２は、当該処理の実行結果をＷｅｂ処理部１３３，１４３に応答する。
仮想マシン２３０は、ＤＢ処理部２３２を有する。ＤＢ処理部２３２は、ＤＢサーバ機能を実行する。例えば、ＤＢ処理部２３２は、ＡＰ処理部２２２からの要求に応じて、実行サーバ２００または他の装置に記憶されたデータベースにアクセスして、データの登録・更新・削除などの処理を行う。ＤＢ処理部２３２は、データベースへのアクセス結果をＡＰ処理部２２２に応答する。
【００６７】
管理サーバ３００は、記憶部３１０および割当制御部３２０を有する。
記憶部３１０は、実行サーバ１００，２００で利用可能なリソースを管理するための情報を記憶する。また、記憶部３１０は、各仮想マシンに割当てられているリソースを管理するための情報を記憶する。これらの情報は仮想マシン１２０からの要求に応じて、例えば、割当制御部３２０により仮想マシン１２０に提供される。
【００６８】
割当制御部３２０は、割当決定部１２４から仮想マシンの割当変更の実行依頼を受け付けると、受け付けた変更内容に基づいて仮想マシンの割当を変更する。仮想マシンの割当の変更は、実行サーバ１００，２００に対する仮想マシンの配置を変更することを意味する。例えば、割当制御部３２０は、ライブマイグレーションと呼ばれる技術を用いて、仮想マシンの割当を変更する。
【００６９】
クライアント４００は、ブラウザ４１０を有する。ブラウザ４１０は、Ｗｅｂ処理部１３３，１４３にＷｅｂアクセスするためのＷｅｂブラウザである。クライアント５００，６００もクライアント４００と同様にブラウザを有している。
【００７０】
図７は、通信経路の例を示す図である。仮想マシン１３０，１４０，２２０，２３０が提供するＷｅｂサービスの処理において利用される通信経路は、次の通りである。ブラウザ４１０とＷｅｂ処理部１３３，１４３との間では通信経路Ｒ１を利用できる。通信経路Ｒ１は、ネットワーク１０およびポート１１１ｂを介してクライアント４００と仮想マシン１３０とをつなぐ経路を含む。通信経路Ｒ１は、ネットワーク１０およびポート１１１ｄを介してクライアント４００と仮想マシン１４０とをつなぐ経路を含む。クライアント５００，６００もクライアント４００と同様に、通信経路Ｒ１を用いて、仮想マシン１３０，１４０と通信できる。
【００７１】
また、Ｗｅｂ処理部１３３，１４３とＡＰ処理部２２２との間では、通信経路Ｒ２を利用できる。通信経路Ｒ２は、ポート１１１ｃ、ネットワーク１０およびポート２１１ａを介して仮想マシン１３０，２２０をつなぐ経路を含む。通信経路Ｒ２は、ポート１１１ｅ、ネットワーク１０およびポート２１１ａを介して仮想マシン１４０，２２０をつなぐ経路を含む。
【００７２】
更に、ＡＰ処理部２２２とＤＢ処理部２３２との間では、通信経路Ｒ３を利用できる。通信経路Ｒ３は、ポート２１１ａ，２１１ｂを介して仮想マシン２２０，２３０をつなぐ経路である。
【００７３】
図８は、物理サーバリソース管理テーブルの例を示す図である。物理サーバリソース管理テーブル１２２ａは、記憶部１２２に格納される。例えば、割当決定部１２４は、管理サーバ３００から、物理サーバリソース管理テーブル１２２ａの情報を取得し、記憶部１２２に格納する。物理サーバリソース管理テーブル１２２ａは、物理サーバ名、ＣＰＵ（ＧＨｚ（Giga Hertz））、メモリ（ＧＢ（Giga Bytes））およびＶＭ名の項目を含む。
【００７４】
物理サーバ名の項目には、実行サーバのマシン名称が登録される。ＣＰＵ（ＧＨｚ）の項目には、実行サーバにおいて、割当可能な全ＣＰＵリソース（未割当分と割当済分との合計）を示す情報が登録される。メモリ（ＧＢ）の項目には、実行サーバにおいて、割当可能な全メモリ（ＲＡＭ）リソース（未割当分と割当済分との合計）を示す情報が登録される。ＶＭ名の項目には、実行サーバにおいて、現在動作中の仮想マシンのマシン名称が登録される。
【００７５】
例えば、物理サーバリソース管理テーブル１２２ａには、物理サーバ名が“ＳＶ１”、ＣＰＵ（ＧＨｚ）が“８”、メモリ（ＧＢ）が“２４”、ＶＭ名が“監視用ＶＭ，Ｗｅｂ１，Ｗｅｂ２”という情報が登録される。
【００７６】
これは、実行サーバ１００において、ＣＰＵリソースとして８ＧＨｚ、メモリリソースとして２４ＧＢを仮想マシンに割当可能であることを示している。また、実行サーバ１００において、仮想マシン１２０，１３０，１４０が動作中であることを示している。
【００７７】
図９は、ＶＭリソース管理テーブルの例を示す図である。ＶＭリソース管理テーブル１２２ｂは、記憶部１２２に格納される。例えば、割当決定部１２４は、管理サーバ３００からＶＭリソース管理テーブル１２２ｂの情報を取得し、記憶部１２２に格納する。ＶＭリソース管理テーブル１２２ｂは、ＶＭ名、ＣＰＵ（ＧＨｚ）、メモリ（ＧＢ）およびスイッチ名−ポートの項目を含む。
【００７８】
ＶＭ名の項目には、仮想マシンのマシン名称が登録される。ＣＰＵ（ＧＨｚ）の項目には、仮想マシンを実行するために所要するＣＰＵリソースを示す情報が登録される。メモリ（ＧＢ）の項目には、仮想マシンを実行するために所要するメモリリソースを示す情報が登録される。スイッチ名−ポートの項目には、仮想マシンが現在通信に用いているスイッチ名称とポート番号との組が登録される。
【００７９】
例えば、ＶＭリソース管理テーブル１２２ｂには、ＶＭ名が“Ｗｅｂ１”、ＣＰＵ（ＧＨｚ）が“２”、メモリ（ＧＢ）が“４”、スイッチ名−ポートが“ｖＳＷ１−２，ｖＳＷ１−３”という情報が登録される。
【００８０】
これは、仮想マシン１２０の実行のためにＣＰＵリソースとして２ＧＨｚを所要し、メモリリソースとして４ＧＢを所要することを示す。また、仮想マシン１２０が仮想スイッチ１１１のポート１１１ｂ，１１１ｃを用いて通信していることを示す。
【００８１】
図１０は、収集される通信データの例を示す図である。通信データ群１２２ｃは、データ収集部１２３がポート１１１ｂについてキャプチャした通信データの集合である。通信データ群１２２ｃは、記憶部１２２に格納される。ポート１１１ｂは、上述したように、クライアント４００，５００，６００上のブラウザとＷｅｂ処理部１３３との間のＷｅｂアクセスに利用され得る。このため、当該ポート１１１ｂを経由する通信データには、Ｗｅｂアクセスを示すメッセージが含まれ得る。以下、通信データ群１２２ｃの各行に便宜的に付した行番号を示して具体的に説明する。
【００８２】
例えば、行番号“１”の通信データは、クライアント４００（ＩＰアドレス“１９２．１６８．１．１００”）から仮想マシン１３０（ＩＰアドレス“１９２．１６８．１．１”）へのＨＴＴＰ（HyperText Transfer Protocol）リクエストを示している。
【００８３】
行番号“２”の通信データは、行番号“１”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント４００へのＨＴＴＰレスポンスを示している。
行番号“３”の通信データは、クライアント５００（ＩＰアドレス“１９２．１６８．１．１０１”）から仮想マシン１３０へのＨＴＴＰリクエストを示している。
【００８４】
行番号“４”の通信データは、クライアント６００（ＩＰアドレス“１９２．１６８．１．１０２”）から仮想マシン１３０へのＨＴＴＰリクエストを示している。
行番号“５”の通信データは行番号“３”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント５００へのＨＴＴＰレスポンスを示している。
【００８５】
行番号“６”の通信データは行番号“４”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント６００へのＨＴＴＰレスポンスを示している。
データ収集部１２３は、ポートごとに順番にデータ収集を行うことで、各ポートを経由する通信データをポートごとに収集する。上記の説明では、ポート１１１ｂを例示したが、ポート１１１ｃ，１１１ｄ，１１１ｅ，２１１ａ，２１１ｂについても同様にして通信データを収集できる。例えば、Ｗｅｂ処理部１３３とＡＰ処理部２２２との間の通信であれば、Ｗｅｂ−ＡＰ連携用のメッセージ（例えば、ＩＩＯＰ（Internet Inter Object Request Broker Protocol）など）を含む通信データを収集できる。また、ＡＰ処理部２２２とＤＢ処理部２３２との間の通信であれば、ＤＢアクセス用のメッセージなどを含む通信データを収集できる。各通信データは、送信元のＩＰアドレスおよび宛先のＩＰアドレスを含む。なお、仮想スイッチ１１１，２１１により複製した通信データにポートを示す情報を付加させて、収集したい複数のポートの通信データを同時に収集してもよい。
【００８６】
図１１は、通信ペアテーブルの例を示す図である。通信ペアテーブル１２２ｄは、割当決定部１２４により作成され、記憶部１２２に格納される。割当決定部１２４は、データ収集部１２３が所定期間だけ収集した通信データに基づいて、通信ペアテーブル１２２ｄを作成する。通信ペアテーブル１２２ｄは、スイッチ名、ポート番号および通信ペアの項目を含む。
【００８７】
スイッチ名の項目には、スイッチ名称が登録される。ポート番号の項目には、ポート番号が登録される。通信ペアの項目には、通信の送信元／宛先となるＩＰアドレスのペア（以下、通信ペアということがある）が登録される。ここで、ＩＰアドレスは、仮想マシン１３０，１４０，２２０，２３０に対して一意に割当てられるものである（１つの仮想マシンに複数のＩＰアドレスが割当てられることもある）。したがって、ＩＰアドレスのペアは、通信する仮想マシンのペアを示している。なお、通信ペアの項目は、第１のＩＰアドレスを登録する項目（１）と、第１のＩＰアドレスと対になる第２のＩＰアドレスを登録する項目（２）とを更に含んでいる。
【００８８】
例えば、通信ペアテーブル１２２ｄには、スイッチ名が“ｖＳＷ１”、ポート番号が“２”、通信ペアが（１）“１９２．１６８．１．１００”、（２）“１９２．１６８．１．１”という情報が登録される。これは、仮想スイッチ１１１のポート１１１ｂにおいて、ＩＰアドレスの“１９２．１６８．１．１００”（クライアント４００）と“１９２．１６８．１．１”（仮想マシン１３０）とのペアを送信元／宛先とした通信が行われていることを示す。なお、送信元が“１９２．１６８．１．１００”、宛先が“１９２．１６８．１．１”である場合も送信元が“１９２．１６８．１．１”、宛先が“１９２．１６８．１．１００”である場合も１レコードで示すものとする。具体的には、当該レコードは、通信データ群１２２ｃの行番号“１”、“２”の通信に対応付けられる。ただし、通信ペアテーブル１２２ｄには何れか一方の場合が存在すれば登録され得る。また、１つのポートに対して、複数の通信ペアが登録されることもある。例えば、スイッチ名“ｖＳＷ１”のポート番号“２”には３つの通信ペアが登録されている。
【００８９】
図１２は、全通信ペアテーブルの例を示す図である。全通信ペアテーブル１２２ｅは、割当決定部１２４により作成され、記憶部１２２に格納される。割当決定部１２４は、通信ペアテーブル１２２ｄに基づいて、全通信ペアテーブル１２２ｅを作成する。全通信ペアテーブル１２２ｅは、通信ペアの項目を含む。
【００９０】
通信ペアの項目には、通信の送信元／宛先となるＩＰアドレスのペアが登録される。通信ペアの項目は、第１のＩＰアドレスを登録する項目（１）と、第１のＩＰアドレスと対になる第２のＩＰアドレスを登録する項目（２）とを更に含んでいる。
【００９１】
ここで、全通信ペアテーブル１２２ｅは、通信ペアテーブル１２２ｄから通信ペアを重複なく抽出したものである。すなわち、監視対象とする仮想マシン１３０，１４０，２２０，２３０の間の全ての通信ペアにつき通信データを収集する場合、全通信ペアテーブル１２２ｅに登録された全通信ペアについて通信データを収集すればよい。すなわち、全通信ペアテーブル１２２ｅに登録された全通信ペアの通信データをカバーできるポートの組合せがキャプチャ対象候補となる。
【００９２】
図１３は、キャプチャ対象候補テーブルの例を示す図である。キャプチャ対象候補テーブル１２２ｆは、割当決定部１２４により作成され、記憶部１２２に格納される。割当決定部１２４は、通信ペアテーブル１２２ｄおよび全通信ペアテーブル１２２ｅに基づいて、キャプチャ対象候補テーブル１２２ｆを作成する。キャプチャ対象候補テーブル１２２ｆは、項番、キャプチャ対象候補およびキャプチャ量（Ｍｂｐｓ（Mega bits per second））の項目を含む。
【００９３】
項番の項目には、レコードを識別するための情報が登録される。キャプチャ対象候補の項目には、キャプチャ対象候補とするポートの組合せを示す情報が登録される。各ポートは“スイッチ名称−ポート番号”の形式で示されている。キャプチャ量（Ｍｂｐｓ）の項目には、当該キャプチャ対象候補でキャプチャを行う場合に想定される収集データの量（以下、キャプチャ量ということがある）が登録される。
【００９４】
例えば、キャプチャ対象候補テーブル１２２ｆには、項番が“１”、キャプチャ対象候補が“ｖＳＷ１−２，ｖＳＷ１−４，ｖＳＷ２−１”、キャプチャ量（Ｍｂｐｓ）が“３０”という情報が登録される。
【００９５】
これは、項番“１”では、キャプチャ対象候補をポート１１１ｂ，１１１ｄ，２１１ａの組合せとすることを示している。また、ポート１１１ｂ，１１１ｄ，２１１ａについてデータ収集を行った場合、想定されるキャプチャ量が３０（Ｍｂｐｓ）であることを示している。
【００９６】
なお、キャプチャ量の取得に関しては各種の方法が考えられる。例えば、データ収集部１２３が各ポートで毎秒収集されるデータ量の平均を計測して、割当決定部１２４に通知してもよい。また、割当決定部１２４がＳＮＭＰ（Simple Network Management Protocol）を用いて仮想スイッチ１１１，２１１から各ポートで毎秒通信されるデータ量を取得してもよい。そして、割当決定部１２４は、キャプチャ対象候補に含まれる各ポートにおいて毎秒通信されるデータ量の合計を、キャプチャ量（Ｍｂｐｓ）の項目に登録する。
【００９７】
図１４は、ＶＭ配置候補テーブルの例を示す図である。ＶＭ配置候補テーブル１２２ｇは、割当決定部１２４により作成され、記憶部１２２に格納される。割当決定部１２４は、物理サーバリソース管理テーブル１２２ａ、ＶＭリソース管理テーブル１２２ｂおよびキャプチャ対象候補テーブル１２２ｆに基づいて、ＶＭ配置候補テーブル１２２ｇを作成する。ＶＭ配置候補テーブル１２２ｇは、項番、ＶＭ配置候補、移動ＶＭ数、キャプチャ量（Ｍｂｐｓ）およびキャプチャ対象ポート数の項目を含む。
【００９８】
項番の項目には、レコードを識別するための情報が登録される。ＶＭ配置候補の項目には、各実行サーバに対する仮想マシンの配置候補を示す情報が登録される。ＶＭ配置候補の項目は、ＳＶ１およびＳＶ２の項目を更に含んでいる。ＳＶ１の項目には、実行サーバ１００に配置する仮想マシンのマシン名称が登録される。ＳＶ２の項目には、実行サーバ２００に配置する仮想マシンのマシン名称が登録される。移動ＶＭ数の項目には、現在の配置から配置ＶＭ名の項目で示される配置に変更した場合に、割当変更の対象となる（移動させる）仮想マシンの総数が登録される。ここで、移動させる仮想マシンの総数は、Ｗｅｂサービスに関連する仮想マシンについてのみ算出する（監視用の仮想マシン１２０の移動は考慮しない）。なぜなら、監視用の仮想マシン１２０は、移動の処理を行わずに、配置変更先で新規に動作させてもよいからである。ただし、監視用の仮想マシン１２０を移動させる場合には、当該移動分を回数に含めてもよい。キャプチャ量（Ｍｂｐｓ）の項目には、配置ＶＭ名の項目で示される配置に変更した場合に、想定されるキャプチャ量が登録される。キャプチャ対象ポート数の項目には、配置ＶＭ名の項目で示される配置に変更した場合に、キャプチャ対象とするポート数が登録される。ここで、キャプチャ対象とするポート数は、配置変更後において、仮想マシン１２０が全通信ペアについて監視用のキャプチャを行うために、１つの仮想スイッチ上でキャプチャ対象とする最小のポート数である。
【００９９】
例えば、ＶＭ配置候補テーブル１２２ｇには、項番が“１”、実行サーバ１００に対するＶＭ配置の候補が“監視用ＶＭ，Ｗｅｂ１，Ｗｅｂ２，ＡＰ１”、実行サーバ２００に対するＶＭ配置の候補が“ＤＢ１”、移動ＶＭ数が“１”、キャプチャ量（Ｍｂｐｓ）が“３０”、キャプチャ対象ポート数が“３”という情報が登録される。
【０１００】
これは、仮想マシン１２０，１３０，１４０，２２０を実行サーバ１００に配置し、仮想マシン２３０を実行サーバ２００に配置するように割当変更した場合、仮想マシンの移動回数が１回であることを示す。移動回数が１回である理由は、仮想マシン２２０を実行サーバ２００から実行サーバ１００に移動させれば（移動数１）、項番“１”の配置となるからである。また、当該変更後のキャプチャ量が３０Ｍｂｐｓであり、キャプチャ対象となるポート数が３であることを示す。キャプチャ対象ポート数が３である理由は、割当変更後の仮想スイッチ１１１のポートのうち、全通信ペアテーブル１２２ｅに登録された全ペアの通信をカバーするために次の合計３つのポートから通信データを収集すればよいからである。第１には、仮想マシン１３０，１４０がクライアント４００，５００，６００との通信に用いる２つのポート１１１ｂ，１１１ｄである。第２には、仮想マシン２２０が仮想マシン１３０，１４０，２３０との通信に用いる１つのポートである。よって、合計２＋１＝３がキャプチャ対象ポート数となる。なお、キャプチャ量は、キャプチャ対象の各ポートのキャプチャ量の合計である。
【０１０１】
また、例えば、ＶＭ配置候補テーブル１２２ｇには、項番が“２”、実行サーバ１００に対するＶＭ配置の候補が“監視用ＶＭ，Ｗｅｂ１，Ｗｅｂ２，ＤＢ１”、実行サーバ２００に対するＶＭ配置の候補が“ＡＰ１”、移動ＶＭ数が“１”、キャプチャ量（Ｍｂｐｓ）が“３０”、キャプチャ対象ポート数が“５”という情報が登録される。
【０１０２】
登録された各情報の示す内容は、項番“１”と同様である。ここで、キャプチャ対象ポート数が５である理由は、割当変更後の仮想スイッチ１１１のポートのうち、全通信ペアテーブル１２２ｅに登録された全ペアの通信をカバーするために次の合計５つのポートから通信データを収集すればよいからである。第１には、仮想マシン１３０，１４０がクライアント４００，５００，６００との通信に用いる２つのポート１１１ｂ，１１１ｄである。第２には、仮想マシン１３０，１４０が仮想マシン２２０との通信に用いる２つのポート１１１ｃ，１１１ｅである。第３には、仮想マシン２３０が仮想マシン２２０との通信に用いる１つのポートである。よって、合計２＋２＋１＝５がキャプチャ対象ポート数となる。
【０１０３】
なお、上述したように、移動ＶＭ数には、監視用の仮想マシン１２０の移動は考慮していない。このため、項番“３”では、実行サーバ１００に仮想マシン２３０を配置し、実行サーバ２００に仮想マシン１２０，１３０，１４０，２２０を配置するように割当変更する場合を例示しているが、このときの移動ＶＭ数は“３”となる。仮想マシン２３０を実行サーバ２００から実行サーバ１００に移動させ（移動数１）、仮想マシン１３０，１４０を実行サーバ１００から実行サーバ２００に移動させる（移動数２）からである（移動数の合計１＋２＝３）。ただし、この場合、仮想マシン１２０を実行サーバ１００から実行サーバ２００に移動させる場合には、当該移動分（移動数１）を加算して、移動ＶＭ数“４”（移動数の合計３＋１＝４）と評価してもよい。
【０１０４】
図１５は、データ収集処理の例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
（ステップＳ１１）割当決定部１２４は、監視対象とする仮想マシン１３０，１４０，２２０，２３０の指定を受け付ける。例えば、情報処理システムの管理者によって、監視対象の各仮想マシンのマシン名が指定される。割当決定部１２４は、データ収集部１２３が収集した通信データに基づいて、キャプチャ対象候補を決定し、記憶部１２２に記憶されたキャプチャ対象候補テーブル１２２ｆに登録する。詳細は後述する。
【０１０５】
（ステップＳ１２）割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆに基づいて、ＶＭ配置候補を作成し、記憶部１２２に記憶されたＶＭ配置候補テーブル１２２ｇに登録する。割当決定部１２４は、ＶＭ配置候補テーブル１２２ｇに基づいて、監視時のＶＭ配置を決定する。
【０１０６】
（ステップＳ１３）割当決定部１２４は、決定されたＶＭ配置に基づいて仮想マシンの配置変更を行うように割当制御部３２０に依頼する。割当制御部３２０は、決定されたＶＭ配置に基づいて、仮想マシンの配置変更を実行する。
【０１０７】
（ステップＳ１４）割当制御部３２０は、配置変更が完了すると、仮想マシン１２０（監視用ＶＭ）に監視対象の仮想マシン１３０，１４０，２２０，２３０の監視を開始させる。例えば、仮想マシン１２０が実行サーバ１００に配置されていれば、データ収集部１２３は、仮想スイッチ１１１がミラーリングした通信データを収集する。また、例えば、配置変更により仮想マシン１２０が実行サーバ２００に移動される（または、新たに起動される）こともある。この場合、データ収集部１２３は、仮想スイッチ２１１がミラーリングした通信データを収集する。何れの場合にも、監視部１２５はデータ収集部１２３により収集された通信データを組合せてサービス全体の稼働状況を監視する。
【０１０８】
このようにして、仮想マシンの割当を変更した後に、監視のためのデータ収集を開始する。次に、上記ステップＳ１１の具体的な処理手順を説明する。
図１６は、キャプチャ対象候補の決定例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
【０１０９】
（ステップＳ２１）割当決定部１２４は、仮想スイッチ１１１，２１１の各ポートを経由する通信データを所定期間だけデータ収集部１２３に収集させる。例えば、割当決定部１２４は、記憶部１２２に記憶されたＶＭリソース管理テーブル１２２ｂに基づいて、監視対象の仮想マシン１３０，１４０，２２０，２３０が何れの仮想スイッチの何れのポートを用いて通信しているかを特定できる。データ収集部１２３は、特定されたポート１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，２１１ａ，２１１ｂについて、仮想スイッチ１１１，２１１にミラーリングさせればよい。データ収集部１２３は、各ポートについて順番にミラーリングさせてデータ収集することでポートごとの通信データを収集できる。例えば、データ収集部１２３は、ポート１１１ｂについて通信データ群１２２ｃを収集する。データ収集部１２３は、収集した通信データを各仮想スイッチ上のポートに対応付けて記憶部１２２に格納する。
【０１１０】
（ステップＳ２２）割当決定部１２４は、記憶部１２２に記憶された通信データに基づいて、通信ペアを取得する。割当決定部１２４は、記憶部１２２に記憶された通信ペアテーブル１２２ｄに当該通信ペアを登録する。更に、割当決定部１２４は、通信ペアテーブル１２２ｄに基づいて全通信ペアテーブル１２２ｅを作成し、記憶部１２２に格納する。
【０１１１】
（ステップＳ２３）割当決定部１２４は、通信ペアテーブル１２２ｄに含まれる全ポートの全ての組合せをキャプチャ対象候補としてキャプチャ対象候補テーブル１２２ｆに仮登録する。例えば、６つの異なるポート１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，２１１ａ，２１１ｂから複数選択する全組合せの数は、５７通りある。割当決定部１２４は、この全ての組合せをキャプチャ対象候補テーブル１２２ｆに仮登録する。
【０１１２】
（ステップＳ２４）割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆに仮登録したキャプチャ対象候補を１つ読み出す。ここで、割当決定部１２４は、キャプチャ量が未登録のキャプチャ対象候補を読み出す。
【０１１３】
（ステップＳ２５）割当決定部１２４は、読み出したキャプチャ対象候補に係るポートの組合せで、全通信ペアテーブル１２２ｅに登録されたＩＰアドレスの全通信ペアの通信データを収集できるか否かを判定する。全通信ペアの通信データを収集できる場合、処理をステップＳ２６に進める。全通信ペアの通信データを収集できない場合、処理をステップＳ２７に進める。例えば、割当決定部１２４は、通信ペアテーブル１２２ｄを参照して、各ポートでカバーできる通信ペアを把握できる。例えば、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアテーブル１２２ｅに登録された通信ペアを全て含む場合、全通信ペアの通信データを収集できると判断する。一方、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアテーブル１２２ｅに登録された通信ペアを全て含まない場合、全通信ペアの通信データを収集できないと判断する。
【０１１４】
（ステップＳ２６）割当決定部１２４は、読み出したキャプチャ対象候補を用いてキャプチャを行った場合に想定されるキャプチャ量を算出して、キャプチャ対象候補テーブル１２２ｆに登録する。そして、処理をステップＳ２８に進める。例えば、割当決定部１２４は、キャプチャ対象候補の各ポートのデータ通信量をデータ収集部１２３に計測させ、各ポートのデータ通信量を合計することで、当該キャプチャ対象候補のキャプチャ量を算出できる。また。割当決定部１２４は、ＳＮＭＰを用いて仮想スイッチ１１１，２１１から当該キャプチャ対象候補の各ポートのデータ通信量を取得して合計することで、キャプチャ量を算出してもよい。
【０１１５】
（ステップＳ２７）割当決定部１２４は、読み出したキャプチャ対象候補をキャプチャ対象候補テーブル１２２ｆから削除する。そして、処理をステップＳ２８に進める。
（ステップＳ２８）割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆに仮登録した全てのキャプチャ対象候補について、ステップＳ２４以降の処理を行ったか否かを判定する。全てを処理済である場合、処理を終了する。未処理のものが残っている場合、処理をステップＳ２４に進める。例えば、割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆに登録された全てのキャプチャ対象候補についてキャプチャ量が登録されていれば、全ての組合せが処理済であると判断する。一方、割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆにキャプチャ量が登録されていないポートの組合せが残っている場合、未処理の組合せが残っていると判断する。
【０１１６】
このようにして、仮想マシン１２０は、キャプチャ対象候補テーブル１２２ｆにキャプチャ対象候補を登録する。
なお、上記ステップＳ２１では、割当決定部１２４は、監視対象の仮想マシン１３０，１４０，２００，２３０の通信に直接用いられるポート１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，２１１ａ，２１１ｂについてデータ収集部１２３にデータ収集させ、それ以外のポート（例えば、ポート１１１ｇ，１１１ｆ，２１１ｃ）は対象外とする。それ以外のポートを経由する通信データには、監視したいサービスとは無関係な通信に係る通信データが多量に含まれている可能性が高く、キャプチャ量が多くなる可能性が高いからである（すなわち、後述する絞り込みで除外される可能性が高い）。ただし、割当決定部１２４は、これらのポートについてデータ収集部１２３にデータ収集させてもよい。
【０１１７】
更に、ステップＳ２１では、割当決定部１２４は、仮想マシン１３０，１４０，２２０，２３０から各仮想マシンが何れの他の仮想マシンと通信しているかを示す情報を取得してもよい。仮想マシン１３０，１４０，２２０，２３０は、通信データの生成元であり、自身が通信データに設定した送信元／宛先のアドレスの情報を割当決定部１２４に提供できる。
【０１１８】
次に、図１５のステップＳ１２の具体的な処理手順を説明する。
図１７は、仮想マシンの配置決定の例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１１９】
（ステップＳ３１）割当決定部１２４は、記憶部１２２に記憶されたキャプチャ対象候補テーブル１２２ｆから、キャプチャ対象候補を１つ読み出す。
（ステップＳ３２）割当決定部１２４は、監視用ＶＭを動作させる１つの実行サーバを選択し、読み出したキャプチャ対象候補に含まれる各ポートを用いて通信する仮想マシンが、当該１つの実行サーバで動作するようにＶＭ配置候補を作成する。このとき、割当決定部１２４は、各実行サーバにおけるリソースの利用状況を考慮する。リソースの利用状況は、記憶部１２２に記憶された物理サーバリソース管理テーブル１２２ａおよびＶＭリソース管理テーブル１２２ｂに基づいて把握できる。また、仮想マシン１４０，２２０，２３０以外の外部のクライアント４００，５００，６００と通信する仮想マシン１３０，１４０と監視用ＶＭとは同じ実行サーバ上で動作させるようにする。クライアント４００，５００，６００との間で送受信される通信データは、仮想マシン１３０，１４０が動作する実行サーバ以外の実行サーバへは送られないからである。割当決定部１２４は、作成したＶＭ配置候補を記憶部１２２に記憶されたＶＭ配置候補テーブル１２２ｇに登録する。ＶＭ配置候補を決定するための、より具体的な方法は後述する。
【０１２０】
（ステップＳ３３）割当決定部１２４は、ＶＭ配置候補テーブル１２２ｇに登録された各ＶＭ配置候補について、各種評価値（移動ＶＭ数、キャプチャ量およびキャプチャ対象ポート数）を登録する。移動ＶＭ数は、現在の仮想マシンの配置状況からＶＭ配置候補の配置へと変更するために幾つの仮想マシンを移動させればよいかを特定することで求められる。なお、配置変更後も現在と同じ実行サーバ上で動作させる仮想マシンについては、移動を行わなくてよい。キャプチャ対象ポート数は、ＶＭ配置候補を作成するために参照したキャプチャ対象候補に含まれるポートの数である。キャプチャ量は、当該キャプチャ対象候補に対応するキャプチャ量である。
【０１２１】
（ステップＳ３４）割当決定部１２４は、キャプチャ対象候補テーブル１２２ｆに登録された全てのキャプチャ対象候補についてステップＳ３１〜Ｓ３３の処理を行ったか否かを判定する。全てのキャプチャ対象候補について処理済である場合、処理をステップＳ３５に進める。未処理のキャプチャ対象候補がある場合、処理をステップＳ３１に進める。例えば、ステップＳ３３の後、処理したキャプチャ対象候補に処理済のフラグを付与して、本ステップＳ３４の判定に用いてもよい。
【０１２２】
（ステップＳ３５）割当決定部１２４は、ＶＭ配置候補テーブル１１２ｇに登録されたＶＭ配置候補が１つであるか否かを判定する。１つである場合、当該ＶＭ配置候補を監視時のＶＭ配置とすることを決定して処理を終了する。１つでない、すなわち、ＶＭ配置候補が複数ある場合、処理をステップＳ３６に進める。
【０１２３】
（ステップＳ３６）割当決定部１２４は、ＶＭ配置候補テーブル１１２ｇに基づいて、移動ＶＭ数によるＶＭ配置候補の絞り込みを行う。具体的には、割当決定部１２４は、移動ＶＭ数が最小のＶＭ配置候補を抽出する。
【０１２４】
（ステップＳ３７）割当決定部１２４は、ステップＳ３６の絞り込みによって、ＶＭ配置候補を１つに絞り込めたか否かを判定する。１つに絞り込めた場合、当該ＶＭ配置候補を監視時のＶＭ配置とすることを決定して処理を終了する。１つに絞り込めなかった場合、処理をステップＳ３８に進める。
【０１２５】
（ステップＳ３８）割当決定部１２４は、ＶＭ配置候補テーブル１１２ｇに基づいて、ステップＳ３６で絞り込んだ結果に対し、更にキャプチャ量による絞り込みを行う。具体的には、割当決定部１２４は、キャプチャ量が最小のＶＭ配置候補を抽出する。
【０１２６】
（ステップＳ３９）割当決定部１２４は、ステップＳ３８の絞り込みによって、ＶＭ配置候補を１つに絞り込めたか否かを判定する。１つに絞り込めた場合、当該ＶＭ配置候補を監視時のＶＭ配置とすることを決定して処理を終了する。１つに絞り込めなかった場合、処理をステップＳ４０に進める。
【０１２７】
（ステップＳ４０）割当決定部１２４は、ＶＭ配置候補テーブル１１２ｇに基づいて、ステップＳ３８で絞り込んだ結果に対し、更にキャプチャ対象ポート数による絞り込みを行う。具体的には、割当決定部１２４は、キャプチャ対象ポート数が最小のＶＭ配置候補を抽出する。
【０１２８】
このようにして、割当決定部１２４は、ＶＭ配置候補の絞り込みを行って、監視時のＶＭ配置候補を決定する。なお、ステップＳ４０の絞り込みを行った後、最終的にＶＭ配置候補が１つに絞り込めない場合も考え得る。この場合、割当決定部１２４は、何れのＶＭ配置候補を採用するかを、システムの管理者などに選択させてもよい。
【０１２９】
ここで、上記ステップＳ３６〜Ｓ４０の絞り込みを行うのは次の理由による。
移動ＶＭ数による絞り込みを行うのは、移動回数が少ないほど、移動に伴う各実行サーバの負荷を軽減でき、また、移動を迅速に完了して、監視を開始できるからである。
【０１３０】
また、キャプチャ量による絞り込みを行うのは、キャプチャ量が少ないほど、通信データを記憶するための記憶領域が少なくて済むからである。また、処理対象のデータ量も少なくて済み、効率的に監視を行えるからである。特に、キャプチャ対象とするポートの選択の仕方によっては、同一の通信データを重複してキャプチャしてしまう場合もあり、このような場合には、キャプチャ量が増大し得る。キャプチャ量による絞り込みを行うことで、同じ通信データを重複してキャプチャしてしまう可能性も低減できる。
【０１３１】
更に、キャプチャ対象ポート数による絞り込みを行うのは、キャプチャ対象ポート数が少ないほど、ミラーリングのための設定を省力化でき、また、ミラーリングの際のデータ複製に伴う負荷を低減できるからである。
【０１３２】
また、ステップＳ３６〜Ｓ４０における絞り込みは任意の順序で行うことができる。例えば、キャプチャ量による絞り込み、キャプチャ対象ポート数による絞り込み、移動ＶＭ数による絞り込み、の順序で絞り込んでもよい。また、３種類の絞り込みを行うものとしたが、このうちの何れか１種類または２種類の絞り込みを行うようにしてもよい。
【０１３３】
なお、ステップＳ３２では、例えば、キャプチャ対象候補テーブル１２２ｆの項番“１”のキャプチャ対象候補について次のようにＶＭ配置候補を決定する。まず、監視用ＶＭとする仮想マシンを配置する実行サーバとして実行サーバ１００を選択する。そして、ポート１１１ｂ，１１１ｄ，２１１ａ（それぞれ、“ｖＳＷ１−２”、“ｖＳＷ１−４”、“ｖＳＷ２−１”に対応）を用いて通信する仮想マシン１３０，１４０，２２０が、選択した実行サーバ１００に配置されるようにＶＭ配置候補を決定する。このＶＭ配置候補は、ＶＭ配置候補テーブル１１２ｇの項番“１”に相当する。ここで、仮想マシン１２０，１３０，１４０，２２０を動作させるための所要ＣＰＵリソースの合計は８ＧＨｚであり、所要メモリリソースの合計は２０ＧＢである。これは、実行サーバ１００で割当可能なＣＰＵリソース８ＧＨｚ、メモリリソース２４ＧＢ内に収まっている。
【０１３４】
また、キャプチャ対象候補テーブル１２２ｆの項番“１”のキャプチャ対象候補については、監視用ＶＭとする仮想マシンの配置先候補として実行サーバ２００も考え得る。この場合のＶＭ配置候補は、ＶＭ配置候補テーブル１１２ｇの項番“３”に相当する（ここで、ＶＭ配置候補テーブル１１２ｇは移動ＶＭ数でソートした後に項番を付している）。当該項番“３”のＶＭ配置候補では、実行サーバ２００で監視用ＶＭの仮想マシン、仮想マシン１３０，１４０，２２０（所要ＣＰＵリソースの合計は８ＧＨｚ）を実行することで、実行サーバ２００で割当可能なＣＰＵリソース８ＧＨｚ分を全て消費する。このため、仮想マシン２３０を実行サーバ１００に割当変更するようなＶＭ配置候補とする。
【０１３５】
実行サーバの割当可能リソースや仮想マシンの所要リソースを考慮してＶＭ配置候補を決定することで、現実的ではないＶＭ配置候補を除外でき、配置決定のための処理を効率化できる。
【０１３６】
更に、キャプチャ対象候補テーブル１２２ｆの項番“２”のキャプチャ対象候補に対応するＶＭ配置候補として、ＶＭ配置候補テーブル１２２ｇでは項番“２”、“４”が例示されている。
【０１３７】
また、ステップＳ３２では、仮想マシン１３０，１４０，２２０，２３０とクライアント４００，５００，６００を次のようにして区別できる。例えば、各仮想マシンのマシン名称とＩＰアドレスとの対応関係を示す情報を記憶部１２２に予め格納しておく。そうすれば、通信データ群１２２ｃにおいて当該対応関係に含まれないＩＰアドレスをクライアント４００，５００，６００のものと判断できる。あるいは、クライアント４００，５００，６００を固定のＩＰアドレスにより区別できれば、通信データ群１２２ｃに含まれる当該ＩＰアドレスをクライアント４００，５００，６００のものと判断することもできる。ステップＳ３２のように、クライアントと通信する仮想マシンを監視用ＶＭと同じ実行サーバに配置することで、当該クライアントとの通信データも効率的に収集できる。
【０１３８】
図１８は、仮想マシンの配置決定の具体例を示す図である。図１８では、ＶＭ配置候補テーブル１２２ｇが得られている場合に、割当決定部１２４が上記ステップＳ３６〜Ｓ４０の手順でＶＭ配置候補の絞り込みを行う過程を例示している。まず、割当決定部１２４は、移動ＶＭ数が最小のＶＭ配置候補を抽出する（ステップＳ３６）。ＶＭ配置候補テーブル１２２ｇでは、項番“１”、“２”のＶＭ配置候補の移動ＶＭ数が１で最小である。したがって、割当決定部１２４は、項番“１”、“２”にＶＭ配置候補を絞り込む。この時点で、ＶＭ配置候補は２つであり、１つに絞り込まれていないので、割当決定部１２４は、次の絞り込みを行う。
【０１３９】
割当決定部１２４は、これまでに絞り込まれたＶＭ配置候補のうち、キャプチャ量が最小のＶＭ配置候補を抽出する（ステップＳ３８）。ＶＭ配置候補テーブル１２２ｇでは、項番“１”、“２”のＶＭ配置候補ともキャプチャ量は３０Ｍｂｐｓで同じである。この場合、割当決定部１２４は、項番“１”、“２”の両方のＶＭ配置候補を抽出する。この時点で、ＶＭ配置候補は２つであり、１つに絞り込まれていないので、割当決定部１２４は次の絞り込みを行う。
【０１４０】
図１９は、仮想マシンの配置決定の具体例を示す図（続き）である。割当決定部１２４は、これまでに絞り込まれたＶＭ配置候補のうち、キャプチャ対象ポート数が最小のＶＭ配置候補を抽出する（ステップＳ４０）。ＶＭ配置候補テーブル１２２ｇでは、項番“１”のＶＭ配置候補のキャプチャ対象ポート数が“３”で最小である。したがって、割当決定部１２４は、項番“１”にＶＭ配置候補を絞り込む。割当決定部１２４は、最終的に１つ残った項番“１”のＶＭ配置候補を監視時のＶＭ配置に決定する。
【０１４１】
割当決定部１２４は、決定したＶＭ配置とするように割当制御部３２０に依頼する。すると、割当制御部３２０は、仮想マシンの配置変更を行う。図１９の絞り込み結果を例に採ると、割当制御部３２０は、仮想マシン２２０（マシン名“ＡＰ１”）を実行サーバ２００から実行サーバ１００へ移動させる。
【０１４２】
図２０は、割当変更後の接続例を示す図である。図２０では、割当制御部３２０が仮想マシン２２０を実行サーバ２００から実行サーバ１００へ移動させる場合を例示している。割当制御部３２０は、例えば、次の（１）〜（５）手順をハイパーバイザ１１０，２１０に実行させることで、仮想マシン２２０の移動を行える。
【０１４３】
（１）実行サーバ１００（移動先）で仮想マシン２２０用のＣＰＵ／メモリリソースを予約する。
（２）実行サーバ２００（移動元）で仮想マシン２２０に割当てられているメモリリソースのデータを、実行サーバ１００で仮想マシン２２０用に新たに割当てたメモリリソースにコピーする。
【０１４４】
（３）実行サーバ２００から実行サーバ１００へ当該仮想マシン２２０に割当てていたＣＰＵリソースの状態をコピーし、実行サーバ２００で仮想マシン２２０を停止させる。
（４）実行サーバ１００で仮想マシン２２０を再開し、実行サーバ２００で仮想マシン２２０に割当てていたリソースを解放する。
【０１４５】
（５）実行サーバ１００上の仮想マシン２２０についてネットワーク設定（例えば、所定のアドレスなど）を更新する。これにより、ｖＮＩＣ２２１は、例えば仮想スイッチ１１１のポート１１１ｆを用いて仮想マシン１３０，１４０，２３０と通信を行えるようになる。この場合、ポート２１１ａを経由して送受信されていた通信データは、ポート１１１ｆを経由することになる。したがって、ポート１１１ｆについてミラーリングを行えば、割当変更前のポート２１１ａを経由して送受信されていた通信データを収集できる。
【０１４６】
なお、この場合は、監視用ＶＭである仮想マシン１２０を実行サーバ１００上で継続して動作させるため、監視用ＶＭの仮想マシンの移動は発生しない。一方、他の実行サーバ上へ監視用ＶＭを配置変更することもある。この場合には、割当制御部３２０は、当該配置先の実行サーバで監視用ＶＭの仮想マシンを新たに起動させてデータ収集および監視を開始させる。あるいは、上記と同様の手順によって、実行サーバ１００から配置先の実行サーバに（監視用ＶＭである）仮想マシン１２０を移動させてもよい。
【０１４７】
割当制御部３２０は、仮想マシンの移動後の実行サーバ１００，２００におけるリソースの割当状況を、記憶部３１０に記憶された物理サーバリソースおよびＶＭリソースを管理するための情報に反映させる。
【０１４８】
図２１は、割当変更後の通信経路の例を示す図である。図２１では、ハイパーバイザ１１０，２１０、管理サーバ３００などの図示を省略している。仮想マシン２２０の移動後において、仮想マシン１３０，１４０，２２０，２３０が提供するＷｅｂサービスで利用され得る通信経路は、次の通りである。
【０１４９】
クライアント４００，５００，６００と仮想マシン１３０，１４０との間の通信に利用可能な通信経路Ｒ１は、図７で示した通信経路Ｒ１と同様である。
仮想マシン１３０（Ｗｅｂ処理部１３３）と仮想マシン２２０（ＡＰ処理部２２２）との間の通信、および、仮想マシン１４０（Ｗｅｂ処理部１４３）と仮想マシン２２０（ＡＰ処理部２２２）との間の通信は、通信経路Ｒ２ａを利用できる。通信経路Ｒ２ａは、ポート１１１ｃ，ポート１１１ｆを介して仮想マシン１３０，２２０をつなぐ経路を含む。通信経路Ｒ２は、ポート１１１ｅ，１１１ｆを介して仮想マシン１４０，２２０をつなぐ経路を含む。
【０１５０】
更に、仮想マシン２２０（ＡＰ処理部２２２）と仮想マシン２３０（ＤＢ処理部２３２）との間の通信は、通信経路Ｒ３ａを利用できる。通信経路Ｒ３ａは、ポート１１１ｆ，ネットワーク１０およびポート２１１ｂを介して仮想マシン２２０，２３０をつなぐ経路である。
【０１５１】
図２２は、監視時のデータ収集の例を示す図である。監視部１２５は、データ収集部１２３に通信データのキャプチャを開始させる。データ収集部１２３は、ポート１１１ｂ，１１１ｄ，１１１ｆを用いて通信される通信データを仮想スイッチ１１１に複製させ、ポート１１１ａを用いて仮想マシン１２０にも送信させる（ミラーリング）。データ収集部１２３は、当該ミラーリングされた通信データを収集する。
【０１５２】
ここで、キャプチャ対象のポート１１１ｆは、割当変更前のポート２１１ａを経由して送受信されていた通信データの送受信に用いられる。そして、ポート１１１ｂ，１１１ｄ，２１１ａの組合せは、本例のＷｅｂサービスにおける全通信ペアをカバーできるポートの組合せとして選択されたものである。したがって、ポート１１１ｂ，１１１ｄ，１１１ｆをキャプチャ対象とすることで、当該全通信ペアの通信データを収集できる。
【０１５３】
監視部１２５は、例えば、収集された通信データを組合せて、仮想マシン１３０，１４０，２２０，２３０によるＷｅｂサービスの稼働状況を監視する。
図２３は、監視時のデータ収集の他の例を示す図である。図２３では、図２２との比較のために、仮想マシンの割当変更を行わずに通信データを収集する場合を例示している。
【０１５４】
この場合、全通信ペアの通信データを仮想マシン１２０で収集するために、例えばポート１１１ｂ，１１１ｄ，２１１ａについてミラーリングすることが考えられる。この場合、ポート１１１ｂ，１１１ｄを経由する通信データを仮想スイッチ１１１上で複製して、仮想マシン１２０にも送る。また、ポート２１１ａを経由する通信データを仮想スイッチ２１１上で複製して、実行サーバ１００上の仮想マシン１２０にも送る。
【０１５５】
しかし、仮想スイッチ２１１上で複製した通信データは、ネットワーク１０を介して実行サーバ１００に送られることになる。すると、ネットワーク１０で当該複製した通信データを中継することになり、監視期間中はネットワーク１０の帯域が圧迫されてしまう。この場合、本来のＷｅｂサービスまたはネットワーク１０を介して実現される他のサービスなどで利用可能な帯域が低減してしまい、非効率的となる。
【０１５６】
そこで、第２の実施の形態の情報処理システムでは、監視のためのデータ収集を行う前に、仮想マシンの割当を変更する。具体的には、１つの実行サーバを選択し、当該１つの実行サーバ以外で動作し互いに通信する仮想マシンのペアのうちの少なくとも一方の仮想マシンが、当該１つの実行サーバ上で動作するように仮想マシンの割当を変更する。
【０１５７】
これにより、選択された１つの実行サーバで監視用の仮想マシンを動作させ、当該１つの実行サーバ上でデータ収集することで、全ての仮想マシンのペアにつき通信データを収集できる。したがって、ネットワーク１０に複製したデータを流さなくてもよくなり、監視に伴うネットワーク１０の負荷への影響を軽減することができる。
【０１５８】
更に、仮想マシンの割当変更後の配置候補が複数存在する場合には、仮想マシンの移動に伴う負荷を示す情報や割当変更後にキャプチャを行う際の負荷を示す情報を予測し、予測結果に基づいて何れの配置候補を採用するかを決定する。具体的には、仮想マシンの移動に伴う負荷を移動させる仮想マシンの数により予測する。また、キャプチャを行う際の負荷を、割当変更後に想定されるキャプチャ量および割当変更後のキャプチャ対象ポート数により予測する。これらの負荷が小さくなるように、複数の配置候補を絞り込む。負荷がより小さくなるような方法を選択することで、監視時のデータ収集をより一層効率的に行うことができる。
【０１５９】
以上の説明では、割当決定部１２４を仮想マシン１２０上に設けるものとしたが、他の例も考えられる。例えば、監視部１２５を設けた仮想マシンとは別個の仮想マシンに割当決定部１２４を設けてもよい。更に、割当決定部１２４を管理サーバ３００に設けてもよい。データ収集部１２３によるデータ収集機能も、割当決定部１２４と同様に、他の仮想マシンや管理サーバ３００などに設けて割当決定部１２４と連携させることができる。
【０１６０】
また、連携する複数の仮想マシンが２つの実行サーバ１００，２００に配置される例を示したが、３以上の実行サーバに配置される複数の仮想マシンが連携する場合にも、割当決定部１２４の機能を利用できる。更に、Ｗｅｂ３階層のサービスを例示したが、２または４以上の階層で通信するサービスを監視する場合にも、割当決定部１２４の機能を利用できる。
【０１６１】
なお、上述の機能は、コンピュータに所定のプログラムを実行させることで実現することもできる。当該プログラムは、コンピュータ読み取り可能な可搬型の記録媒体（例えば、記録媒体１３）に記録しておくことができる。当該プログラムを流通させるには、例えば、そのプログラムが記録された記録媒体を配布する。または、そのプログラムをサーバコンピュータに格納しておき、ネットワーク経由でコンピュータに転送してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたはネットワークから取得したプログラムを、自装置の不揮発性の記憶媒体に格納する。そして、当該不揮発性の記憶媒体からプログラムを読み取り実行する。ただし、コンピュータは、取得したプログラムを、不揮発性の記憶媒体に格納せずに逐次、ＲＡＭに展開して実行することも可能である。
【符号の説明】
【０１６２】
１，２，３  情報処理装置
１ａ  割当決定手段
１ｂ  制御手段
２ａ，２ｂ，３ａ，３ｂ  仮想マシン
２ｃ，３ｃ  中継手段
４  ネットワーク
【図１】
0005834999.tif 000002
【図２】
0005834999.tif 000003
【図３】
0005834999.tif 000004
【図４】
0005834999.tif 000005
【図５】
0005834999.tif 000006
【図６】
0005834999.tif 000007
【図７】
0005834999.tif 000008
【図８】
0005834999.tif 000009
【図９】
0005834999.tif 000010
【図１０】
0005834999.tif 000011
【図１１】
0005834999.tif 000012
【図１２】
0005834999.tif 000013
【図１３】
0005834999.tif 000014
【図１４】
0005834999.tif 000015
【図１５】
0005834999.tif 000016
【図１６】
0005834999.tif 000017
【図１７】
0005834999.tif 000018
【図１８】
0005834999.tif 000019
【図１９】
0005834999.tif 000020
【図２０】
0005834999.tif 000021
【図２１】
0005834999.tif 000022
【図２２】
0005834999.tif 000023
【図２３】
0005834999.tif 000024