(57)【要約】【課題】各物理マシンの負荷を平準化すること。【解決手段】物理マシン１は、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出する。物理マシン１は、キャプチャポイントの複数の候補それぞれに対し、仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算する。物理マシン１は、計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、キャプチャポイントの複数の候補の中から、パケットの収集に用いるポートの組合せを決定する。【選択図】図１
2015197715.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムが実行するキャプチャポイント決定方法であって、
仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、
キャプチャポイント決定方法。
【請求項２】
前記決定では、ミラーリングの実行時の各ハイパーバイザによるプロセッサの使用量の標準偏差または分散が最小になる候補を選択する、請求項１記載のキャプチャポイント決定方法。
【請求項３】
前記決定では、前記複数の候補のうち、ミラーリングの実行時に何れかのハイパーバイザによるプロセッサの使用量が閾値よりも大きい候補を、選択の候補から除外する、請求項１または２記載のキャプチャポイント決定方法。
【請求項４】
前記算出では、ミラーリング非実行時および実行時の仮想スイッチのプロセッサの使用量とミラーリング非実行時および実行時のミラーリング対象のポートを経由するパケット数とからミラーリングに起因する仮想スイッチのプロセッサの使用量を算出し、当該算出結果に基づいて、収集されるパケット数に応じた仮想スイッチによるプロセッサの使用量の増分を算出する、請求項１乃至３の何れか１項に記載のキャプチャポイント決定方法。
【請求項５】
前記計算では、所定数パケットのミラーリングに伴う仮想スイッチによるプロセッサの使用量の増分とミラーリング対象のポートを経由するパケット数とを乗じた値とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを加算することで、当該ハイパーバイザによるプロセッサの使用量を計算する、請求項１乃至４の何れか１項に記載のキャプチャポイント決定方法。
【請求項６】
仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むキャプチャポイント決定システムであって、
仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、物理マシン、
を有するキャプチャポイント決定システム。
【請求項７】
仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムにおいて、何れかの物理マシンとして用いられるコンピュータに、
仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、
処理を実行させるキャプチャポイント決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラムに関する。
【背景技術】
【０００２】
情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、ＯＳ（Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【０００３】
例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、ハイパーバイザが、当該リソースを用いて、仮想マシンの通信データを中継する仮想スイッチを物理マシン上で動作させることもある。
【０００４】
ところで、複数の物理マシンを含むシステムにおいて仮想マシン間で送受信されるパケットを収集してシステムの稼働状況を監視することがある。パケットの収集は、パケットを中継するスイッチのミラーリング機能（あるポートを経由するパケットを複製し、別のポートからも送出する）を用いることで行える。例えば、各物理マシン上の仮想マシン間のパケットを何れか１つの物理マシン上の仮想スイッチから集約して収集できるように仮想マシンの配置を変更し、当該仮想スイッチからパケットを収集する提案がある。
【０００５】
なお、仮想マシンサーバ上の物理ＮＩＣ（Network Interface Card）のうち使用率が上限値より高い物理ＮＩＣがあると、実行中の仮想マシンのうち最低優先度の仮想マシンの仮想ＮＩＣの接続先を、使用率が上限値より低い物理ＮＩＣに切替える提案もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１７５０７５号公報
【特許文献２】特開２００９−１３０５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記提案のように、１つの物理マシン上の仮想スイッチにより所定のポートのミラーリングを実行して、パケットを収集することが考えられる。しかし、この場合、パケットの収集を担当する物理マシンの負荷が高まるおそれがある。そこで、各物理マシンでパケットの収集を分担することが考えられる。具体的には、各物理マシン上の仮想スイッチにより監視対象ポートについて個々にミラーリングを実行し、各仮想スイッチと同じ物理マシン上の所定の仮想マシンによりパケットの収集を実行することが考えられる。
【０００８】
ところが、仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なる。仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々である。このため、ミラーリングの対象とするポートの組合せによっては、何れかの物理マシン上で複製／収集されるパケット数が増大し、当該物理マシンに負荷が偏るおそれがある。
【０００９】
１つの側面では、本発明は、各物理マシンの負荷を平準化できるキャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムが実行するキャプチャポイント決定方法が提供される。このキャプチャポイント決定方法では、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する。
【００１１】
また、１つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むキャプチャポイント決定システムが提供される。このキャプチャポイント決定システムは、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、物理マシンを有する。
【００１２】
また、１つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムにおいて、何れかの物理マシンとして用いられるコンピュータによって実行されるキャプチャポイント決定プログラムが提供される。このキャプチャポイント決定プログラムは、コンピュータに、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、処理を実行させる。
【発明の効果】
【００１３】
１つの側面では、各物理マシンの負荷を平準化できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態のキャプチャポイント決定システムの例を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】サーバのハードウェア例を示す図である。
【図４】仮想マシンの配置例を示す図である。
【図５】仮想マシン間の論理的な通信経路の例を示す図である。
【図６】仮想スイッチと仮想マシンとの接続関係の例を示す図である。
【図７】パケットキャプチャの例を示す図である。
【図８】各マシンの機能例を示す図である。
【図９】収集されるパケットの情報の例を示す図である。
【図１０】キャプチャポイント候補テーブルの例を示す図である。
【図１１】測定テーブル（ミラーリングオフ時）の例を示す図である。
【図１２】測定テーブル（ミラーリングオン時）の例を示す図である。
【図１３】ＣＰＵ使用率テーブルの例を示す図である。
【図１４】ミラーリングによるＣＰＵオーバヘッドの算出例を示す図である。
【図１５】キャプチャポイント候補の決定例を示すフローチャートである。
【図１６】ΔＣmirrorの算出例を示すフローチャートである。
【図１７】パケットキャプチャ実行時の処理例を示すフローチャートである。
【図１８】キャプチャポイントの再決定例を示すフローチャートである。
【図１９】ＣＰＵ使用率の見積り例を示す図である。
【図２０】キャプチャポイントの決定例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を、図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のキャプチャポイント決定システムの例を示す図である。キャプチャポイント決定システムは、物理マシン１，２，３，４を含む。物理マシン１，２，３，４はネットワークに接続され、相互に通信可能である。物理マシン１，２，３，４は、それぞれがメモリやプロセッサを備えた物理的なコンピュータである。各プロセッサは、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能である。物理マシン１は、記憶装置１ａおよびプロセッサ１ｂを有する。
【００１６】
記憶装置１ａは、ＲＡＭなどの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。プロセッサ１ｂは、ＣＰＵ、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。プロセッサ１ｂはプログラムを実行するものでもよい。プロセッサ１ｂには、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。物理マシン２，３，４も同様に、このような記憶装置およびプロセッサを備えている。
【００１７】
物理マシン２は、仮想マシン２ａ，２ｂ，２ｃおよび仮想スイッチ２ｄを有する。物理マシン３は、仮想マシン３ａ，３ｂ，３ｃおよび仮想スイッチ３ｄを有する。物理マシン４は、仮想マシン４ａ，４ｂ，４ｃおよび仮想スイッチ４ｄを有する。図１では、各物理マシン上のハイパーバイザの図示を省略している。
【００１８】
仮想マシン２ａ，２ｂ，２ｃ，３ａ，３ｂ，３ｃ，４ａ，４ｂ，４ｃ（各仮想マシン）は、物理マシン上で動作する仮想的なコンピュータである。仮想マシン２ａ，３ａ，４ａは、仮想マシン２ｂ，２ｃ，３ｂ，３ｃ，４ｂ，４ｃにより送受信されるパケットを収集し、システムの稼働状況を監視する。仮想マシン２ｂ，２ｃ，３ｂ，３ｃ，４ｂ，４ｃは、ネットワークを介して相互に連携し、当該ネットワークに接続されたクライアントコンピュータなどに所定のサービスを提供する。
【００１９】
仮想スイッチ２ｄ，３ｄ，４ｄは、仮想マシン２ａ，２ｂ，２ｃ，３ａ，３ｂ，３ｃ，４ａ，４ｂ，４ｃ（各仮想マシン）の間の通信を中継する中継手段である。仮想スイッチ２ｄは、ポートＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５を有する。ポートＰ１は、仮想マシン２ａと接続されている。ポートＰ２，Ｐ３は、仮想マシン２ｂと接続されている。ポートＰ４，Ｐ５は、仮想マシン２ｃと接続されている。仮想スイッチ２ｄは、ポートＰ２，Ｐ３，Ｐ４，Ｐ５のうち監視対象のポートを経由する通信データ（パケット）を複製してポートＰ１からも送出する。すると、仮想マシン２ａにより複製されたパケットを収集できる。この機能をミラーリングまたはポートミラーリングなどと呼ぶことがある。また、ミラーリングなどを用いてパケットを収集することをパケットキャプチャと呼ぶことがある。
【００２０】
仮想スイッチ３ｄは、ポートＰ６，Ｐ７，Ｐ８，Ｐ９，Ｐ１０を有する。ポートＰ６は、仮想マシン３ａと接続されている。ポートＰ７，Ｐ８は、仮想マシン３ｂと接続されている。ポートＰ９，Ｐ１０は、仮想マシン３ｃと接続されている。仮想スイッチ３ｄは、ポートＰ７，Ｐ８，Ｐ９，Ｐ１０のうち監視対象のポートを経由するパケットを複製してポートＰ６からも送出する。すると、仮想マシン３ａにより複製されたパケットを収集できる。
【００２１】
仮想スイッチ４ｄは、ポートＰ１１，Ｐ１２，Ｐ１３，Ｐ１４を有する。ポートＰ１１は、仮想マシン４ａと接続されている。ポートＰ１２，Ｐ１３は、仮想マシン４ｂと接続されている。ポートＰ１４は、仮想マシン４ｃと接続されている。仮想スイッチ４ｄは、ポートＰ１２，Ｐ１３，Ｐ１４のうち監視対象のポートを経由するパケットを複製してポートＰ１１からも送出する。すると、仮想マシン４ａにより複製されたパケットを収集できる。
【００２２】
物理マシン１は、次のようにして、パケットキャプチャの対象とするポートの組合せ（キャプチャポイントと称することがある）を決定する。記憶装置１ａは、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せ（キャプチャポイント）の複数の候補の情報を記憶する。各仮想マシンにより送受信されるパケットを全て取得できるポートの組合せをキャプチャポイントの候補とする。
【００２３】
例えば、第１の実施の形態では次に示す仮想マシンの６つのペアが通信を行うとする。仮想マシン２ｂ，２ｃの第１ペア。第１ペアの通信はポートＰ３，Ｐ４を介して行われる。仮想マシン２ｃ，３ｂの第２ペア。第２ペアの通信はポートＰ４，Ｐ８を介して行われる。仮想マシン３ｂ，３ｃの第３ペア。第３ペアの通信はポートＰ８，Ｐ９を介して行われる。仮想マシン３ｃ，４ｂの第４ペア。第４ペアの通信はポートＰ９，Ｐ１３を介して行われる。仮想マシン２ｃ，４ｃの第５ペア。第５ペアの通信はポートＰ５，Ｐ１４を介して行われる。仮想マシン３ｃ，４ｃの第６ペア。第６ペアの通信はポートＰ１０，Ｐ１４を介して行われる。
【００２４】
この場合、キャプチャポイントとして次のような候補が考えられる。第１候補は、ポートＰ３，Ｐ５，Ｐ８，Ｐ１０，Ｐ１３である。第２候補は、ポートＰ３，Ｐ８，Ｐ１３，Ｐ１４である。第３候補は、ポートＰ４，Ｐ５，Ｐ９，Ｐ１０である。例えば、記憶装置１ａは、決定されたキャプチャポイント候補を示す情報５を記憶する。
【００２５】
プロセッサ１ｂは、記憶装置１ａの情報を参照して、キャプチャポイントの何れかの候補を用いたミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを仮想スイッチ毎に計測する。プロセッサ１ｂは、計測した情報を用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出する。
【００２６】
例えば、キャプチャポイントの第１候補であれば、ミラーリングの対象ポートはポートＰ３，Ｐ５，Ｐ８，Ｐ１０，Ｐ１３である。例えば、プロセッサ１ｂは、ミラーリングの実行時および非実行時の仮想スイッチ２ｄによる物理マシン２のプロセッサの使用量を計測する。また、プロセッサ１ｂは、ポートＰ２，Ｐ３，Ｐ４，Ｐ５を経由するパケット数も計測する。プロセッサ１ｂは、パケット数の情報を仮想マシン２ａに計測させ、計測結果を仮想マシン２ａから取得してもよい。プロセッサ１ｂは、計測した情報を用いて、収集されるパケット数に応じた仮想スイッチ２ｄによる物理マシン２のプロセッサの使用量の増分を算出する。例えば、１パケット当たりの収集に伴う仮想スイッチ２ｄによるプロセッサの使用量の増分を算出してもよい。
【００２７】
同様に、プロセッサ１ｂは、仮想スイッチ３ｄ，４ｄについて、ミラーリングの実行時および非実行時の物理マシン３，４のプロセッサの使用量およびポートＰ７，Ｐ８，Ｐ９，Ｐ１０，Ｐ１２，Ｐ１３，Ｐ１４を経由するパケット数を計測する。そして、計測した情報を用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ３ｄ，４ｄ毎に算出する。
【００２８】
プロセッサ１ｂは、キャプチャポイントの複数の候補それぞれに対し、収集パケット数に応じた仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算する。
【００２９】
各ポートを経由するパケット数および収集されるパケット数に応じた仮想スイッチ毎のプロセッサの使用量の増分は、前段の処理により判明している。このため、プロセッサ１ｂは、キャプチャポイントの第１候補、第２候補、第３候補それぞれを選択したときの、各物理マシン上のハイパーバイザによるプロセッサの使用量を見積もることができる。
【００３０】
例えば、プロセッサ１ｂは、第１候補を選択したときのパケット収集時における物理マシン２のハイパーバイザによる物理マシン２のプロセッサの使用量Ｕ１１を見積もる。同様に、物理マシン３のハイパーバイザによるプロセッサの使用量Ｕ１２、物理マシン４のハイパーバイザによるプロセッサの使用量Ｕ１３も見積もる。
【００３１】
また、プロセッサ１ｂは、第２候補を選択したときのパケット収集時における物理マシン２のハイパーバイザによる物理マシン２のプロセッサの使用量Ｕ２１を見積もる。同様に、物理マシン３のハイパーバイザによるプロセッサの使用量Ｕ２２、物理マシン４のハイパーバイザによるプロセッサの使用量Ｕ２３も見積もる。
【００３２】
更に、プロセッサ１ｂは、第３候補を選択したときのパケット収集時における物理マシン２のハイパーバイザによる物理マシン２のプロセッサの使用量Ｕ３１を見積もる。同様に、物理マシン３のハイパーバイザによるプロセッサの使用量Ｕ３２、物理マシン４のハイパーバイザによるプロセッサの使用量Ｕ３３も見積もる。
【００３３】
プロセッサ１ｂは、各キャプチャポイント候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する。例えば、各候補に対して求まる標準偏差（または、分散）が最小となる候補で示されるポートの組合せを、パケット収集に用いるポートの組合せと決定することが考えられる。
【００３４】
より具体的には、プロセッサ１ｂは、第１候補について、各ハイパーバイザによるパケット収集時のプロセッサの使用量Ｕ１１，Ｕ１２，Ｕ１３に対し、標準偏差σ１を求める。第２候補についても同様に、各ハイパーバイザによるパケット収集時のプロセッサの使用量Ｕ２１，Ｕ２２，Ｕ２３に対し、標準偏差σ２を求める。第３候補についても同様に、各ハイパーバイザによるパケット収集時のプロセッサの使用量Ｕ３１，Ｕ３２，Ｕ３３に対し、標準偏差σ３を求める。
【００３５】
例えば、標準偏差σ１＜σ２＜σ３であれば、プロセッサ１ｂは、キャプチャポイントの第１候補に対応するポートＰ３，Ｐ５，Ｐ８，Ｐ１０，Ｐ１３を、パケット収集に用いるポートの組合せと決定する。なお、第１の実施の形態の物理マシン１の処理を、物理マシン２，３，４の何れかが実行してもよい。
【００３６】
第１の実施の形態のキャプチャポイント決定システムによれば、キャプチャポイントの複数の候補が取得される。ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分が仮想スイッチ毎に算出される。キャプチャポイントの各候補に対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量が物理マシン毎に計算される。各候補に対して計算された各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せが決定される。これにより、物理マシン２，３，４の負荷を平準化できる。
【００３７】
ここで、各物理マシンによりパケットの収集を分担して実行する場合、何れかの物理マシン上で複製／収集されるパケット数が増大し、当該物理マシンに負荷が偏るおそれがある。仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なり、仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々だからである。
【００３８】
例えば、キャプチャポイントを適切に選択することで、特定の物理マシンに負荷が偏らないようにすることが考えられる。しかし、ミラーリングによるプロセッサの負荷が各物理マシンでどの程度であるかを直接計測するのは容易でない。
【００３９】
そこで、第１の実施の形態の方法では、キャプチャポイントの複数の候補に対し、各候補を採用した場合の各ハイパーバイザによるプロセッサの使用量を見積もる。これにより、各ハイパーバイザによるプロセッサの使用量に偏りのないキャプチャポイントを選択可能となる。
【００４０】
このとき、収集されるパケット数に応じた仮想スイッチによるプロセッサの使用量の増分を算出する。このため、各ポートを経由するパケット数（当該ポートをミラーリング対象としたときに収集されるパケット数に相当）から、キャプチャポイントの各候補を採用したときの各ハイパーバイザによるプロセッサの使用量を見積もれる。したがって、キャプチャポイントの全候補について、ミラーリングの実行時および非実行時のハイパーバイザのプロセッサの使用量を計測せずに済む。よって、キャプチャポイントの決定を効率的に行える。
【００４１】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの例を示す図である。第２の実施の形態の情報処理システムは、サーバ１００，２００，３００、管理サーバ４００およびクライアント５００，６００，７００を含む。各装置は、ネットワーク１０に接続されている。ネットワーク１０は、例えばＬＡＮ（Local Area Network）である。なお、クライアント５００，６００，７００は、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークを介して、ネットワーク１０に接続されてもよい。第２の実施の形態の情報処理システムでは、サーバ１００，２００，３００が提供するＷｅｂサービスをクライアント５００，６００，７００により利用可能である。サーバ１００，２００，３００上で動作する仮想マシンが互いに連携することで所定のＷｅｂサービスが実現される。
【００４２】
ここで、Ｗｅｂサービスは、Ｗｅｂサーバ機能、ＡＰ（APplication）サーバ機能およびＤＢ（DataBase）サーバ機能の３つの機能の連携により実行される。Ｗｅｂサーバ機能は、例えば、ＧＵＩ（Graphical User Interface）などを提供する。ＡＰサーバ機能は、例えば、業務特有のロジックによる機能を提供する。ＤＢサーバ機能は、例えば、業務に用いるデータの管理機能を提供する。
【００４３】
サーバ１００，２００，３００は、仮想マシンおよび仮想スイッチが動作可能な物理的なサーバコンピュータ（物理サーバ）である。
管理サーバ４００は、サーバ１００，２００，３００の負荷やＷｅｂサービスの稼働状況を管理するサーバコンピュータである。クライアント５００，６００，７００は、サーバ１００，２００，３００が提供するＷｅｂサービスにアクセスするクライアントコンピュータである。例えば、クライアント５００，６００，７００で実行されるＷｅｂブラウザが、ユーザによる操作に応じてＷｅｂサービスにアクセスする。
【００４４】
図３は、サーバのハードウェア例を示す図である。サーバ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６、ＮＩＣ１０７を有する。各ユニットがサーバ１００のバスに接続されている。
【００４５】
ＣＰＵ１０１は、サーバ１００の全体を制御するプロセッサである。ＣＰＵ１０１は、マルチプロセッサであってもよい。
ＲＡＭ１０２は、サーバ１００の主記憶装置である。ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、ＣＰＵ１０１による処理に用いる各種データを記憶する。
【００４６】
ＨＤＤ１０３は、サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００４７】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（Electro-Luminescence）ディスプレイなど各種のディスプレイを用いることができる。
【００４８】
入力信号処理部１０５は、サーバ１００に接続された入力デバイス１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１２としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。サーバ１００には、複数の種類の入力デバイスが接続されてもよい。
【００４９】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、ＣＰＵ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００５０】
ＮＩＣ１０７は、ネットワーク１０に接続され、他の情報処理装置と通信する。ＮＩＣ１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
なお、サーバ２００，３００、管理サーバ４００およびクライアント５００，６００，７００もサーバ１００と同様のハードウェアを用いて実現できる。
【００５１】
図４は、仮想マシンの配置例を示す図である。サーバ１００は、ハイパーバイザ１１０および仮想マシン１２０，１３０，１４０を有する。ハイパーバイザ１１０は、サーバ１００上で仮想マシン１２０，１３０，１４０を動作させる。
【００５２】
ハイパーバイザ１１０は、管理サーバ４００の指示に基づいて、各仮想マシンに対するハードウェア資源の割当や各仮想マシンの起動／停止を制御する。ハイパーバイザ１１０は、サーバ１００が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。ハイパーバイザ１１０は、サーバ１００上で仮想スイッチ１１１を動作させる。
【００５３】
仮想スイッチ１１１は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ１１１のスイッチ名称（または、識別情報）を“ｖＳＷ１−１”とする。“１−１”の表記は、サーバ１００上で他の仮想スイッチが実行されてもよいことを示している（“ｖＳＷ１−２”の仮想スイッチが存在してもよい）。
【００５４】
仮想マシン１２０は、仮想スイッチ１１１が中継する通信データをミラーリングにより収集して、Ｗｅｂサービスの稼働状況を監視するための仮想マシンである。仮想マシン１２０のマシン名称を“Ｍ１”とする。
【００５５】
仮想マシン１３０は、Ｗｅｂサーバとして機能する仮想マシンである。仮想マシン１３０のマシン名称を“Ｗｅｂ１”とする。仮想マシン１４０は、ＡＰサーバとして機能する仮想マシンである。仮想マシン１４０のマシン名称を“ＡＰ１”とする。
【００５６】
サーバ２００は、ハイパーバイザ２１０および仮想マシン２２０，２３０，２４０を有する。ハイパーバイザ２１０は、サーバ２００上で仮想マシン２２０，２３０，２４０を動作させる。ハイパーバイザ２１０の仮想マシン２２０，２３０，２４０に対する制御内容は、ハイパーバイザ１１０と同様である。ハイパーバイザ２１０は、サーバ２００上で仮想スイッチ２１１を動作させる。
【００５７】
仮想スイッチ２１１は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ２１１のスイッチ名称を“ｖＳＷ２−１”とする。“２−１”の表記は、サーバ２００上で他の仮想スイッチが実行されてもよいことを示している（“ｖＳＷ２−２”の仮想スイッチが存在してもよい）。
【００５８】
仮想マシン２２０は、仮想スイッチ２１１が中継する通信データをミラーリングにより収集して、Ｗｅｂサービスの稼働状況を監視するための仮想マシンである。仮想マシン２２０のマシン名称を“Ｍ２”とする。
【００５９】
仮想マシン２３０は、Ｗｅｂサーバとして機能する仮想マシンである。仮想マシン２３０のマシン名称を“Ｗｅｂ２”とする。仮想マシン２４０は、ＡＰサーバとして機能する仮想マシンである。仮想マシン２４０のマシン名称を“ＡＰ２”とする。
【００６０】
サーバ３００は、ハイパーバイザ３１０および仮想マシン３２０，３３０，３４０を有する。ハイパーバイザ３１０は、サーバ３００上で仮想マシン３２０，３３０，３４０を動作させる。ハイパーバイザ３１０の仮想マシン３２０，３３０，３４０に対する制御内容は、ハイパーバイザ１１０と同様である。ハイパーバイザ３１０は、サーバ３００上で仮想スイッチ３１１，３１２を動作させる。
【００６１】
仮想スイッチ３１１，３１２は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ３１１のスイッチ名称を“ｖＳＷ３−１”とする。仮想スイッチ３１２のスイッチ名称を“ｖＳＷ３−２”とする。
【００６２】
仮想マシン３２０は、仮想スイッチ３１１，３１２が中継する通信データをミラーリングにより収集して、Ｗｅｂサービスの稼働状況を監視するための仮想マシンである。仮想マシン３２０のマシン名称を“Ｍ３”とする。
【００６３】
仮想マシン３３０は、Ｗｅｂサーバとして機能する仮想マシンである。仮想マシン３３０のマシン名称を“Ｗｅｂ３”とする。仮想マシン３４０は、ＤＢサーバとして機能する仮想マシンである。仮想マシン３４０のマシン名称を“ＤＢ１”とする。
【００６４】
また、以下の説明において、サーバ１００のマシン名称を“ＳＶ１”とする。また、サーバ２００のマシン名称を“ＳＶ２”とする。サーバ３００のマシン名称を“ＳＶ３”とする。また、仮想マシンをＶＭ（Virtual Machine）と略記することがある。
【００６５】
図５は、仮想マシン間の論理的な通信経路の例を示す図である。第２の実施の形態のＷｅｂサービスでは、次の仮想マシンのペアが通信する。
第１には、ＷｅｂサーバとＡＰサーバとの通信である。具体的には次の通りである。仮想マシン１３０，１４０のペア（Ｗｅｂ１とＡＰ１）。仮想マシン２３０，１４０のペア（Ｗｅｂ２とＡＰ１）。仮想マシン２３０，２４０のペア（Ｗｅｂ２とＡＰ２）。仮想マシン３３０，２４０のペア（Ｗｅｂ３とＡＰ２）。なお、仮想マシン１３０，２３０，３３０（Ｗｅｂサーバ）は、クライアント５００，６００，７００とも通信する。
【００６６】
第２には、ＡＰサーバとＤＢサーバとの通信である。具体的には次の通りである。仮想マシン１４０，３４０のペア（ＡＰ１とＤＢ１）。仮想マシン２４０，３４０のペア（ＡＰ２とＤＢ１）。
【００６７】
ここで、ネットワーク１０のネットワークアドレスは、“１９２．１６８．１．０／２４”である。各仮想マシンに割り当てられたＩＰ（Internet Protocol）アドレスは次の通りである。なお、図５では、各仮想マシンに割り当てられたＩＰアドレスのうち、最下位の８ビットの値のみを図示し、上位２４ビットの図示を省略している。
【００６８】
仮想マシン１３０がクライアント５００，６００，７００との通信に用いるＩＰアドレスは“１９２．１６８．０．１”である。仮想マシン１３０が仮想マシン１４０との通信に用いるＩＰアドレスは“１９２．１６８．０．２”である。仮想マシン１４０が仮想マシン１３０，２３０との通信に用いるＩＰアドレスは“１９２．１６８．０．３”である。仮想マシン１４０が仮想マシン３４０との通信に用いるＩＰアドレスは“１９２．１６８．０．４”である。
【００６９】
仮想マシン２３０がクライアント５００，６００，７００との通信に用いるＩＰアドレスは“１９２．１６８．０．５”である。仮想マシン２３０が仮想マシン１４０，２４０との通信に用いるＩＰアドレスは“１９２．１６８．０．６”である。仮想マシン２４０が仮想マシン２３０，３３０との通信に用いるＩＰアドレスは“１９２．１６８．０．７”である。仮想マシン２４０が仮想マシン３４０との通信に用いるＩＰアドレスは“１９２．１６８．０．８”である。
【００７０】
仮想マシン３３０がクライアント５００，６００，７００との通信に用いるＩＰアドレスは“１９２．１６８．０．９”である。仮想マシン３３０が仮想マシン２４０との通信に用いるＩＰアドレスは“１９２．１６８．０．１０”である。仮想マシン３４０が仮想マシン１４０，２４０との通信に用いるＩＰアドレスは“１９２．１６８．０．１１”である。
【００７１】
図６は、仮想スイッチと仮想マシンとの接続関係の例を示す図である。仮想スイッチ１１１は、ポート１１１ａ，１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，１１１ｆを有する。ポート１１１ａは、仮想マシン１２０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｂ，１１１ｃは、仮想マシン１３０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｄ，１１１ｅは、仮想マシン１４０の通信に用いられる仮想的な通信インタフェースである。ポート１１１ｆは、各仮想マシンがＮＩＣ１０７およびネットワーク１０を介して、サーバ２００，３００、管理サーバ４００およびクライアント５００，６００，７００と通信するために用いられる仮想的な通信インタフェースである。
【００７２】
ここで、ポート１１１ａのポート番号は“１”である。ポート１１１ｂのポート番号は“２”である。ポート１１１ｃのポート番号は“３”である。ポート１１１ｄのポート番号は“４”である。ポート１１１ｅのポート番号は“５”である。
【００７３】
仮想マシン１２０は、ｖＮＩＣ（virtual NIC）１２１を有する。ｖＮＩＣ１２１は、ポート１１１ａを介して通信するための仮想的な通信インタフェースである。
仮想マシン１３０は、ｖＮＩＣ１３１，１３２を有する。ｖＮＩＣ１３１は、ポート１１１ｂを介してクライアント５００，６００，７００と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１３１には、ＩＰアドレス“．１”（ＩＰアドレスの最下位の８ビットのみを表記している。以下、同様）が割り当てられている。ｖＮＩＣ１３２は、ポート１１１ｃを介して仮想マシン１４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１３２には、ＩＰアドレス“．２”が割り当てられている。
【００７４】
仮想マシン１４０は、ｖＮＩＣ１４１，１４２を有する。ｖＮＩＣ１４１は、ポート１１１ｄを介して仮想マシン１３０，２３０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１４１には、ＩＰアドレス“．３”が割り当てられている。ｖＮＩＣ１４２は、ポート１１１ｅを介して仮想マシン３４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１４２には、ＩＰアドレス“．４”が割り当てられている。
【００７５】
仮想スイッチ２１１は、ポート２１１ａ，２１１ｂ，２１１ｃ，２１１ｄ，２１１ｅ，２１１ｆを有する。ポート２１１ａは、仮想マシン２２０の通信に用いられる仮想的な通信インタフェースである。ポート２１１ｂ，２１１ｃは、仮想マシン２３０の通信に用いられる仮想的な通信インタフェースである。ポート２１１ｄ，２１１ｅは、仮想マシン２４０の通信に用いられる仮想的な通信インタフェースである。ポート２１１ｆは、各仮想マシンが、サーバ２００が備えるＮＩＣ２０７およびネットワーク１０を介して、サーバ１００，３００、管理サーバ４００およびクライアント５００，６００，７００と通信するために用いられる仮想的な通信インタフェースである。
【００７６】
ここで、ポート２１１ａのポート番号は“１”である。ポート２１１ｂのポート番号は“２”である。ポート２１１ｃのポート番号は“３”である。ポート２１１ｄのポート番号は“４”である。ポート２１１ｅのポート番号は“５”である。
【００７７】
仮想マシン２２０は、ｖＮＩＣ２２１を有する。ｖＮＩＣ２２１は、ポート２１１ａを介して通信するための仮想的な通信インタフェースである。
仮想マシン２３０は、ｖＮＩＣ２３１，２３２を有する。ｖＮＩＣ２３１は、ポート２１１ｂを介してクライアント５００，６００，７００と通信するための仮想的な通信インタフェースである。ｖＮＩＣ２３１には、ＩＰアドレス“．５”が割り当てられている。ｖＮＩＣ２３２は、ポート２１１ｃを介して仮想マシン１４０，２４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ１３２には、ＩＰアドレス“．６”が割り当てられている。
【００７８】
仮想マシン２４０は、ｖＮＩＣ２４１，２４２を有する。ｖＮＩＣ２４１は、ポート２１１ｄを介して仮想マシン２３０，３３０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ２４１には、ＩＰアドレス“．７”が割り当てられている。ｖＮＩＣ２４２は、ポート２１１ｅを介して仮想マシン３４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ２４２には、ＩＰアドレス“．８”が割り当てられている。
【００７９】
仮想スイッチ３１１は、ポート３１１ａ，３１１ｂ，３１１ｃ，３１１ｄを有する。ポート３１１ａは、仮想マシン３２０の通信に用いられる仮想的な通信インタフェースである。ポート３１１ｂ，３１１ｃは、仮想マシン３３０の通信に用いられる仮想的な通信インタフェースである。ポート３１１ｄは、各仮想マシンが、サーバ３００が備えるＮＩＣ３０７およびネットワーク１０を介して、サーバ１００，２００、管理サーバ４００およびクライアント５００，６００，７００と通信するために用いられる仮想的な通信インタフェースである。
【００８０】
ここで、ポート３１１ａのポート番号は“１”である。ポート３１１ｂのポート番号は“２”である。ポート３１１ｃのポート番号は“３”である。
仮想スイッチ３１２は、ポート３１２ａ，３１２ｂ，３１２ｃを有する。ポート３１２ａは、仮想マシン３２０の通信に用いられる仮想的な通信インタフェースである。ポート３１２ｂは、仮想マシン３４０の通信に用いられる仮想的な通信インタフェースである。ポート３１２ｃは、仮想マシン３４０が、ＮＩＣ３０７およびネットワーク１０を介して、サーバ１００，２００と通信するために用いられる仮想的な通信インタフェースである。ここで、ポート３１２ａのポート番号は“１”である。ポート３１２ｂのポート番号は“２”である。
【００８１】
仮想マシン３２０は、ｖＮＩＣ３２１，３２１ａを有する。ｖＮＩＣ３２１は、ポート３１１ａを介して通信するための仮想的な通信インタフェースである。ｖＮＩＣ３２１ａは、ポート３１２ａを介して通信するための仮想的な通信インタフェースである。
【００８２】
仮想マシン３３０は、ｖＮＩＣ３３１，３３２を有する。ｖＮＩＣ３３１は、ポート３１１ｂを介してクライアント５００，６００，７００と通信するための仮想的な通信インタフェースである。ｖＮＩＣ３３１には、ＩＰアドレス“．９”が割り当てられている。ｖＮＩＣ３３２は、ポート３１１ｃを介して仮想マシン２４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ３３２には、ＩＰアドレス“．１０”が割り当てられている。
【００８３】
仮想マシン３４０は、ｖＮＩＣ３４１を有する。ｖＮＩＣ３４１は、ポート３１２ｂを介して仮想マシン１４０，２４０と通信するための仮想的な通信インタフェースである。ｖＮＩＣ３４１には、ＩＰアドレス“．１１”が割り当てられている。
【００８４】
図７は、パケットキャプチャの例を示す図である。図７では説明に関係しないポートに対する符号の図示を一部省略している。図５の論理的な通信経路に対して、仮想マシン間の通信のパケットおよび仮想マシンとクライアントとの通信のパケットを全て取得するためのキャプチャポイントの複数の候補を考える。そのうちの１つは、ポート１１１ｂ，１１１ｄ，２１１ｂ，２１１ｄ，３１１ｂ，３１２ｂの組合せである。仮に、これらのポートを経由するパケットを収集する場合、仮想スイッチ１１１，２１１，３１１，３１２は次のようにミラーリングを行えばよい。
【００８５】
仮想スイッチ１１１は、ポート１１１ｂを経由するパケットを複製し、ポート１１１ａからも送出する。同様に、ポート１１１ｄを経由するパケットを複製し、ポート１１１ａからも送出する。
【００８６】
仮想スイッチ２１１は、ポート２１１ｂを経由するパケットを複製し、ポート２１１ａからも送出する。同様に、ポート２１１ｄを経由するパケットを複製し、ポート２１１ａからも送出する。
【００８７】
仮想スイッチ３１１は、ポート３１１ｂを経由するパケットを複製し、ポート３１１ａからも送出する。仮想スイッチ３１２は、ポート３１２ｂを経由するパケットを複製し、ポート３１２ａからも送出する。
【００８８】
図７で例示したミラーリングの方法は一例である。仮想スイッチ１１１，２１１，３１１は、パケットキャプチャを行うポートの組合せに応じて、ミラーリングを行うポートを変更する。
【００８９】
図８は、各マシンの機能例を示す図である。図８に示すユニットの一部または全部は、サーバ１００，２００，３００および管理サーバ４００が備えるＣＰＵによって実行されるプログラムのモジュールであってもよい。
【００９０】
仮想マシン１２０は、記憶部１２２、パケット収集部１２３、候補抽出部１２４、負荷算出部１２５およびキャプチャポイント決定部１２６を有する。
記憶部１２２は、ＲＡＭ１０２やＨＤＤ１０３に確保された記憶領域として実現される。記憶部１２２は、仮想マシン１２０の処理に用いられる各種の情報（収集したパケットの情報など）を記憶する。記憶部１２２は、各仮想マシンのＩＰアドレスと仮想マシンの名称との対応関係や、各仮想マシンで動作する仮想スイッチの名称などの情報も予め記憶している。
【００９１】
パケット収集部１２３は、仮想スイッチ１１１の所定のポートを経由するパケットを収集し、記憶部１２２に格納する。
候補抽出部１２４は、仮想マシン１２０，２２０，３２０によるパケットキャプチャの結果に基づいて、仮想スイッチ１１１，２１１，３１１，３１２におけるキャプチャポイントの候補を抽出する。具体的には、候補抽出部１２４は、図５で例示した仮想マシン同士の接続関係に対し、全ての仮想マシンの間の通信を取得できるようなポートの組合せをキャプチャポイントの候補とする。後述するようにキャプチャポイントの候補は複数得られる。候補抽出部１２４は、キャプチャポイント候補の情報を記憶部１２２に格納する。候補抽出部１２４は、何れかのキャプチャポイント候補を管理サーバ４００に通知して、当該キャプチャポイント候補でのミラーリングを開始させることもある。
【００９２】
負荷算出部１２５は、管理サーバ４００と連携して、ミラーリングの実行時（ミラーリングオン時）およびミラーリングの非実行時（ミラーリングオフ時）のハイパーバイザ１１０，２１０，３１０および仮想スイッチ１１１，２１１，３１１，３１２のリソース使用量を測定する。
【００９３】
負荷算出部１２５による具体的な測定内容は次の通りである。（１）所定期間（例えば、１分間）における仮想スイッチ１１１，２１１，３１１，３１２のポート別の送受信パケット数。（２）所定期間（例えば、１分間）のハイパーバイザ１１０，２１０，３１０および仮想スイッチ１１１，２１１，３１１，３１２のＣＰＵ使用率の平均。ただし、ハイパーバイザ１１０，２１０，３１０については、少なくともミラーリングオフ時のＣＰＵ使用率を測定していればよい。なお、ハイパーバイザ１１０，２１０，３１０それぞれが使用可能なＣＰＵリソース量の全体を１００％とする。負荷算出部１２５は、測定結果を記憶部１２２に格納する。
【００９４】
また、負荷算出部１２５は、上記測定結果を用いて、仮想スイッチ１１１が１パケットを収集するために所要するＣＰＵ１０１の使用率を算出する。負荷算出部１２５は、仮想スイッチ２１１，３１１，３１２についても同様に、１パケットを収集するために所要するサーバ２００，３００のＣＰＵ使用率を算出する。負荷算出部１２５は、算出結果を記憶部１２２に格納する。
【００９５】
キャプチャポイント決定部１２６は、１パケット当たりの仮想スイッチ毎のＣＰＵ使用率とミラーリングオフ時のハイパーバイザ毎のＣＰＵ使用率とを用いて、キャプチャポイントの各候補に対し、ハイパーバイザ１１０，２１０，３１０のミラーリングオン時のＣＰＵ使用率を見積もる。前述のように、ハイパーバイザ１１０，２１０，３１０それぞれが使用可能なＣＰＵリソース量の全体を１００％とする。
【００９６】
キャプチャポイント決定部１２６は、見積り結果に基づいて、複数のキャプチャポイント候補の中からキャプチャポイントを決定する。具体的には、キャプチャポイント決定部１２６は、ハイパーバイザ１１０，２１０，３１０によるＣＰＵ使用率のばらつきが最小になるキャプチャポイント候補をキャプチャポイントと決定する。キャプチャポイント決定部１２６は、ばらつきを示す指標として、分散や標準偏差を用いることができる。キャプチャポイント決定部１２６は、決定したキャプチャポイントに設定しなおしてミラーリングを行うように、管理サーバ４００に通知する。
【００９７】
仮想マシン２２０は、記憶部２２２およびパケット収集部２２３を有する。記憶部２２２は、サーバ２００が備えるＲＡＭやＨＤＤに確保された記憶領域として実現される。記憶部２２２は、仮想マシン２２０の処理に用いられる各種の情報を記憶する。
【００９８】
パケット収集部２２３は、仮想スイッチ２１１の所定のポートを経由するパケットを収集し、記憶部２２２に格納する。パケット収集部２２３は、各ポートを経由するパケットが何れの仮想マシン間のものであるかを仮想マシン１２０に通知する。例えば、パケット収集部２２３は、仮想スイッチ２１１のポートの識別情報（ポート番号）と当該ポートを経由して送受信されるパケットの宛先／送信元ＩＰアドレスの情報とを仮想マシン１２０に通知することが考えられる。
【００９９】
仮想マシン３２０は、記憶部３２２およびパケット収集部３２３を有する。記憶部３２２は、サーバ３００が備えるＲＡＭやＨＤＤに確保された記憶領域として実現される。記憶部３２２は、仮想マシン３２０の処理に用いられる各種の情報を記憶する。
【０１００】
パケット収集部３２３は、仮想スイッチ３１１，３１２の所定のポートを経由するパケットを収集し、記憶部３２２に格納する。パケット収集部３２３は、各ポートを経由するパケットが何れの仮想マシン間のものであるかを仮想マシン１２０に通知する。例えば、パケット収集部３２３は、仮想スイッチ３１１，３１２のポートの識別情報と当該ポートを経由して送受信されるパケットの宛先／送信元ＩＰアドレスの情報とを仮想マシン１２０に通知することが考えられる。
【０１０１】
管理サーバ４００は、記憶部４１０、サーバ監視部４２０およびミラーリング設定部４３０を有する。記憶部４１０は、管理サーバ４００が備えるＲＡＭやＨＤＤに確保された記憶領域として実現される。記憶部４１０は、管理サーバ４００の処理に用いられる各種の情報を記憶する。
【０１０２】
サーバ監視部４２０は、ハイパーバイザ１１０，２１０，３１０によるＣＰＵ使用率をサーバ１００，２００，３００から取得する。サーバ監視部４２０は、仮想スイッチ１１１，２１１，３１１，３１２によるＣＰＵ使用率をサーバ１００，２００，３００から取得する。サーバ監視部４２０は、仮想スイッチ１１１，２１１，３１１，３１２の各ポートを経由して送受信されるパケット数をサーバ１００，２００，３００から取得する。サーバ監視部４２０は、負荷算出部１２５からの要求に応じて取得した情報を負荷算出部１２５に提供する。
【０１０３】
また、サーバ監視部４２０は、所定のタイミング（例えば、Ｗｅｂサービスの使用頻度が比較的低い時間帯など）で、収集されたパケットを仮想マシン１２０，２２０，３２０から取得して、Ｗｅｂサービスの稼働状況を解析する。収集されたパケットによるシステムの稼働状況の監視方法としては、特開２００６−１１６８３号公報が参考になる。
【０１０４】
ミラーリング設定部４３０は、仮想スイッチ１１１，２１１，３１１，３１２に対するミラーリングの設定を行い、パケット収集部１２３，２２３，３２３によるパケットキャプチャを開始させる。ミラーリング設定部４３０は、候補抽出部１２４やキャプチャポイント決定部１２６から指示されたキャプチャポイントを対象として、仮想スイッチ１１１，２１１，３１１，３１２のミラーリングの設定を行うこともある。
【０１０５】
図９は、収集されるパケットの情報の例を示す図である。パケット情報１２２ａは、パケット収集部１２３がポート１１１ｂについてキャプチャしたパケットの集合である。パケット情報１２２ａは、記憶部１２２に格納される。ポート１１１ｂは、前述のように、クライアント５００，６００，７００上のＷｅｂブラウザと仮想マシン１３０との間のＷｅｂアクセスに利用され得る。このため、ポート１１１ｂを経由するパケットには、Ｗｅｂアクセスを示すメッセージが含まれる。以下、パケット情報１２２ａの各行に便宜的に付した行番号を示して具体的に説明する。
【０１０６】
例えば、行番号“１”のパケットは、クライアント５００（ＩＰアドレス“１９２．１６８．１．１００”）から仮想マシン１３０（ＩＰアドレス“１９２．１６８．１．１”）に対するＨＴＴＰ（HyperText Transfer Protocol）リクエストを示している。
【０１０７】
行番号“２”のパケットは、行番号“１”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント５００へのＨＴＴＰレスポンスを示している。
行番号“３”のパケットは、クライアント６００（ＩＰアドレス“１９２．１６８．１．１０１”）から仮想マシン１３０へのＨＴＴＰリクエストを示している。
【０１０８】
行番号“４”のパケットは、クライアント７００（ＩＰアドレス“１９２．１６８．１．１０２”）から仮想マシン１３０へのＨＴＴＰリクエストを示している。
行番号“５”のパケットは行番号“３”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント６００へのＨＴＴＰレスポンスを示している。
【０１０９】
行番号“６”のパケットは行番号“４”のＨＴＴＰリクエストに応じた仮想マシン１３０からクライアント７００へのＨＴＴＰレスポンスを示している。
上記の説明では、ポート１１１ｂを例示したが、パケット収集部１２３は、ポート１１１ｃ，１１１ｄ，１１１ｅについても同様にしてパケットを収集できる。
【０１１０】
また、パケット収集部２２３も、パケット収集部１２３と同様に、ポート２１１ｂ，２１１ｃ，２１１ｄ，２１１ｅを経由するパケットを収集する。パケット収集部３２３も、パケット収集部１２３と同様に、ポート３１１ｂ，３１１ｃ，３１２ｂを経由するパケットを収集する。
【０１１１】
例えば、仮想マシン１３０，１４０の通信であれば、Ｗｅｂ−ＡＰ連携用のメッセージ（例えば、ＩＩＯＰ（Internet Inter Object Request Broker Protocol）など）を含むパケットを収集できる。また、仮想マシン１４０，３４０の通信であれば、ＤＢアクセス用のメッセージなどを含むパケットを収集できる。各パケットは、送信元のＩＰアドレスおよび宛先のＩＰアドレスを含む。
【０１１２】
パケット収集部１２３，２２３，３２３は、仮想スイッチ１１１，２１１，３１１，３１２により、複製したパケットにポートを示す情報を付加させて、収集したい複数のポートのパケットを同時に収集できる。
【０１１３】
図１０は、キャプチャポイント候補テーブルの例を示す図である。キャプチャポイント候補テーブル１２２ｂは、候補抽出部１２４によって生成され、記憶部１２２に格納される。キャプチャポイント候補テーブル１２２ｂは、候補番号およびキャプチャ対象ポート番号の項目を含む。
【０１１４】
候補番号の項目には、キャプチャポイント候補を識別する識別番号が設定される。キャプチャ対象ポート番号の項目には、キャプチャポイント候補の情報が設定される。キャプチャポイント候補は、仮想スイッチ１１１，２１１，３１１，３１２におけるミラーリング対象ポートの組合せである。
【０１１５】
例えば、キャプチャポイント候補テーブル１２２ｂには、候補番号が“１”、仮想スイッチ１１１（ｖＳＷ１−１）のポート番号“２，４”、仮想スイッチ２１１（ｖＳＷ２−１）のポート番号“２，４”、仮想スイッチ３１１（ｖＳＷ３−１）のポート番号“２”、仮想スイッチ３１２（ｖＳＷ３−２）のポート番号“２”という情報が登録されている。これは、候補番号“１”のキャプチャポイント候補は、ポート１１１ｂ，１１１ｄ，２１１ｂ，２１１ｄ，ポート３１１ｂ，３１２ｂの組であることを示す。
【０１１６】
なお、キャプチャポイント候補によっては、何れかの仮想スイッチにおいてミラーリング対象ポートがない場合もある。その場合には、当該仮想スイッチにおけるキャプチャ対象ポート番号の項目に設定なしを示す“−”（ハイフン）を表記している（例えば、候補番号“２”のｖＳＷ３−２の欄）。
【０１１７】
図１１は、測定テーブル（ミラーリングオフ時）の例を示す図である。測定テーブル１２２ｃは、負荷算出部１２５によって生成され、記憶部１２２に格納される。測定テーブル１２２ｃは、スイッチ名、ポート番号、パケット数、ＣＰＵ使用率（ｖＳＷ）およびＣＰＵ使用率（ＨＶ）の項目を含む。ここで、ｖＳＷはvirtual SWitchの略である。ＨＶはHyperVisorの略である。
【０１１８】
スイッチ名の項目には、仮想スイッチの名称が登録される。ポート番号の項目には、ポート番号が登録される。パケット数の項目には、所定期間（例えば、１分間）に当該ポートを経由して送受信されたパケットの数が登録される。ＣＰＵ使用率（ｖＳＷ）の項目には同期間における仮想スイッチの平均のＣＰＵ使用率が登録される。単位は％である。ＣＰＵ使用率（ＨＶ）の項目には同期間におけるハイパーバイザの平均のＣＰＵ使用率が登録される。
【０１１９】
例えば、測定テーブル１２２ｃには、スイッチ名が“ｖＳＷ１−１”、ポート番号が“２”、パケット数が“１００００”、ＣＰＵ使用率（ｖＳＷ）が“６．４５”、ＣＰＵ使用率（ＨＶ）が“６０”という情報が登録されている。これは、ポート１１１ｂを経由して所定期間内に送受信されたパケット数が１００００であり、その間の仮想スイッチ１１１の平均のＣＰＵ使用率が６．４５％であったこと、ハイパーバイザ１１０の平均のＣＰＵ使用率が６０％であったことを示す。
【０１２０】
図１２は、測定テーブル（ミラーリングオン時）の例を示す図である。測定テーブル１２２ｄは、負荷算出部１２５によって生成され、記憶部１２２に格納される。測定テーブル１２２ｄは、スイッチ名、ポート番号、パケット数およびＣＰＵ使用率（ｖＳＷ）の項目を含む。各項目に登録される内容は、測定テーブル１２２ｃの同名の項目に登録される内容と同様であるため、説明を省略する。なお、前述のように、ミラーリングオン時のハイパーバイザ１１０，２１０，３１０のＣＰＵ使用率は測定しなくてもよい。そのため、測定テーブル１２２ｄでは、（測定テーブル１２２ｃにはある）ＣＰＵ使用率（ＨＶ）の項目の図示を省略している。
【０１２１】
図１３は、ＣＰＵ使用率テーブルの例を示す図である。ＣＰＵ使用率テーブル１２２ｅは、負荷算出部１２５によって生成され、記憶部１２２に格納される。ＣＰＵ使用率テーブル１２２ｅは、スイッチ名およびＣＰＵ使用率の項目を含む。
【０１２２】
スイッチ名の項目には、仮想スイッチの名称が登録される。ＣＰＵ使用率の項目には、１パケット当たりのミラーリングに要する仮想スイッチのＣＰＵ使用率ΔＣmirrorが登録される。単位は％／パケットである。
【０１２３】
例えば、ＣＰＵ使用率テーブル１２２ｅには、スイッチ名が“ｖＳＷ１−１”、ＣＰＵ使用率が“０．００００８”という情報が登録されている。これは、１パケット当たりのミラーリングに要する仮想スイッチ１１１のＣＰＵ１０１の使用率が０．００００８％であることを示す。これは、所定期間内に収集されるパケット数が１増加すると、当該期間の平均のＣＰＵ使用率がΔＣmirror＝０．００００８％増加することを意味する。
【０１２４】
負荷算出部１２５は、測定テーブル１２２ｃ，１２２ｄに基づき、式（１）を用いてΔＣmirrorを計算できる。
【０１２５】
【数１】
2015197715.tif 000003
【０１２６】
ここで、Ｃmirror＿offは、ミラーリングオフ時の仮想スイッチのＣＰＵ使用率である。Ｃmirror＿onは、ミラーリングオン時の仮想スイッチのＣＰＵ使用率である。ｐmirror＿off＿totalは、ミラーリングオフ時の当該仮想スイッチによる送受信パケット数（監視対象の仮想マシンに接続されたポートを経由して送受信されたパケット数の合計値）である。ｐmirror＿on＿totalは、ミラーリングオン時の当該仮想スイッチによる送受信パケット数（監視対象の仮想マシンに接続されたポートを経由して送受信されたパケット数の合計値）である。ｐmirrorは、当該仮想スイッチにおいてミラーリングされたパケット数の合計値である。
【０１２７】
すなわち、ＣＰＵ使用率の見積りを行うために、監視対象の仮想マシンに接続する全ての仮想スイッチの何れかのポートをミラーリングすることになる。
式（１）は、監視対象システムの仮想マシンの通信量が仮想マシン間でほぼ比例関係にあることを利用している。ここで、各仮想スイッチには監視対象システムの仮想マシンのみが接続されている構成を想定している。例えば、測定テーブル１２２ｃの各ポートのパケット数の比と、測定テーブル１２２ｄの各ポートのパケット数の比とは、ほぼ等しい。式（１）を更に詳細に説明すると、次のようになる。
【０１２８】
図１４は、ミラーリングによるＣＰＵオーバヘッドの算出例を示す図である。負荷算出部１２５は、次の処理により仮想マシン毎のΔＣmirrorを算出する。まず、測定により得られたミラーリングオフ時の仮想スイッチのＣＰＵ使用率Ｃmirror＿offを、式（２）を用いてミラーリングオン時と同等のパケット数が送受信された場合に換算する。換算後の値Ｃ’mirror＿offは、ミラーリングオン時におけるミラーリングに起因しない仮想スイッチのＣＰＵ使用率といえる。
【０１２９】
【数２】
2015197715.tif 000004
【０１３０】
ここでは、仮想スイッチのＣＰＵ使用率は、送受信されるパケット数に比例すると想定している。次に、式（３）を用いてミラーリングに起因するＣＰＵ使用率（ＣＰＵオーバヘッド）を算出する。
【０１３１】
【数３】
2015197715.tif 000005
【０１３２】
そして、式（４）を用いて、１パケット当たりのミラーリングによるＣＰＵ使用率の増分ΔＣmirrorを算出する。
【０１３３】
【数４】
2015197715.tif 000006
【０１３４】
キャプチャポイント決定部１２６は、ΔＣmirrorおよび式（５）を用いて、ミラーリングオン時のハイパーバイザ毎のＣＰＵ使用率Ｃmirror＿on＿estimatedを算出できる。
【０１３５】
【数５】
2015197715.tif 000007
【０１３６】
ここで、Ｃmirror＿off＿hvは、ミラーリングオフ時のハイパーバイザのＣＰＵ使用率である。
ただし、式（５）は、サーバ１００，２００のように監視対象の仮想スイッチが１つの場合である。サーバ３００のように、監視対象の仮想スイッチが複数であれば、式（５）の右辺第２項で仮想スイッチ毎に和をとる。この場合、ＣＰＵ使用率Ｃmirror＿on＿estimatedは、式（６）で表せる。
【０１３７】
【数６】
2015197715.tif 000008
【０１３８】
ここで、式（６）の和記号Σは、仮想スイッチ毎に得られるｐmirrorとΔＣmirrorとの積を、着目するハイパーバイザ上で動作する全ての仮想スイッチに渡って合計することを意味する。
【０１３９】
図１５は、キャプチャポイント候補の決定例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
（Ｓ１）候補抽出部１２４は、仮想スイッチ１１１，２１１，３１１，３１２の各ポート（仮想マシンと接続されたポートでよい）を経由する通信データを、ミラーリングにより所定期間だけパケット収集部１２３，２２３，３２３に収集させる。所定期間経過後は、ミラーリングオフしてよい。
【０１４０】
（Ｓ２）候補抽出部１２４は、仮想スイッチ１１１，２１１，３１１，３１２の各ポート（仮想マシンと接続されたポート）を経由して通信する仮想マシンの宛先／送信元ＩＰアドレスを、パケット収集部１２３，２２３，３２３から取得する。候補抽出部１２４は、取得した情報を基に、各ポートを経由して通信する仮想マシンおよびクライアントのペア（通信ペア）を特定し、ポートと通信ペアとの対応関係の情報を生成し、記憶部１２２に格納する。更に、全ての通信ペアの一覧を生成して記憶部１２２に格納する。第２の実施の形態の場合、全通信ペアは、図５において線で結ばれた仮想マシンの６個のペアを含む。また、全通信ペアは仮想マシン１３０，２３０，３３０の何れかと、クライアント５００，６００，７００の何れかとのペア（合計９個）も含む。この場合、全通信ペアに含まれる通信ペアの総数は１５である。
【０１４１】
（Ｓ３）候補抽出部１２４は、ステップＳ２で取得した全ポートから複数のポートを選択する全ての組合せをキャプチャポイント候補テーブル１２２ｂに仮登録する。
（Ｓ４）候補抽出部１２４は、キャプチャポイント候補テーブル１２２ｂから、仮登録したキャプチャポイント候補を１つ選択する（ただし、未選択のものから１つを選択する）。
【０１４２】
（Ｓ５）候補抽出部１２４は、選択したキャプチャポイント候補のポートの組合せで、ステップＳ２で生成した全通信ペアのパケットを収集できるか否かを判定する。全通信ペアのパケットを収集できる場合、処理をステップＳ６に進める。全通信ペアのパケットを収集できない場合、処理をステップＳ７に進める。候補抽出部１２４は、ポートと当該ポートでカバーできる通信ペアとの対応関係をステップＳ２で把握済みである。したがって、この対応関係の情報を参照して、仮登録したキャプチャポイント候補でカバー可能な通信ペアの組合せが全通信ペアを全て含む場合、全通信ペアのパケットを収集できると判定する。一方、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアの少なくとも１つの通信ペアを含まない場合、全通信ペアのパケットを収集できないと判定する。
【０１４３】
（Ｓ６）候補抽出部１２４は、着目しているキャプチャポイント候補を、キャプチャポイント候補として維持する。そして、処理をステップＳ８に進める。
（Ｓ７）候補抽出部１２４は、着目しているキャプチャポイント候補を、キャプチャポイント候補テーブル１２２ｂから削除する。そして、処理をステップＳ８に進める。
【０１４４】
（Ｓ８）候補抽出部１２４は、キャプチャポイント候補テーブル１２２ｂに仮登録した全てのキャプチャポイント候補について、ステップＳ４以降の処理を行ったか否かを判定する。全てを処理済である場合、処理を終了する。未処理のものが残っている場合、処理をステップＳ４に進める。
【０１４５】
このようにして、サーバ１００は、キャプチャポイント候補テーブル１２２ｂを生成する。ここで、上記テーブル１２２ｂには通信の重複が無い候補のみとしているが、通信の重複のある候補を含めてもよい。上記ステップＳ１では、監視対象の仮想マシンの通信に直接用いられるポート１１１ｂ，１１１ｃ，１１１ｄ，１１１ｅ，２１１ｂ，２１１ｃ，２１１ｄ，２１１ｅ，３１１ｂ，３１１ｃ，３１２ｂについてパケットキャプチャを行い、それ以外のポート（例えば、ポート１１１ｆ，２１１ｆ，３１１ｄ，３１２ｃ）を対象外としてよい。それ以外のポートを経由するパケットには、監視したいサービスとは無関係な通信のパケットが比較的多く含まれている可能性が高く、キャプチャ量が多くなる可能性があるからである。ただし、これらのポート（例えば、ポート１１１ｆ，２１１ｆ，３１１ｄ，３１２ｃ）も対象としてパケット収集させてもよい。なお、上記のキャプチャポイント候補の決定方法については、特開２０１３−１７５０７５号公報を参考にできる。
【０１４６】
図１６は、ΔＣmirrorの算出例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
（Ｓ１１）サーバ監視部４２０は、ミラーリングオフ時の仮想スイッチ１１１，２１１，３１１，３１２およびハイパーバイザ１１０，２１０，３１０のリソース使用量を測定する。測定内容は、仮想スイッチ１１１，２１１，３１１，３１２の各ポート（監視対象の仮想マシンが接続されたポートのみでよい）を経由して所定期間（例えば、１分間）に送受信されるパケット数と各仮想スイッチによる当該期間の平均のＣＰＵ使用率である。また、ハイパーバイザ１１０，２１０，３１０の当該期間の平均のＣＰＵ使用率である。サーバ監視部４２０は、負荷算出部１２５に計測結果を送信する。負荷算出部１２５は、取得した情報から測定テーブル１２２ｃを生成し、記憶部１２２に格納する。
【０１４７】
（Ｓ１２）負荷算出部１２５は、キャプチャポイント候補テーブル１２２ｂからキャプチャポイント候補を１つ選択する。選択されるキャプチャポイント候補は任意でよい。ただし、監視対象となる通信に関わる仮想マシンに接続された全ての仮想スイッチ１１１，２１１，３１１，３１２において何れかのポートでミラーリングが行われる候補とする。例えば、負荷算出部１２５は、候補番号“１”のキャプチャポイント候補を選択する。
【０１４８】
（Ｓ１３）負荷算出部１２５は、選択したキャプチャポイント候補を用いたミラーリングの開始をミラーリング設定部４３０に指示する。ミラーリング設定部４３０は、指示されたキャプチャポイント候補に含まれるポートの組合せを対象としたミラーリングを開始するよう、仮想スイッチ１１１，２１１，３１１，３１２に指示する。すると、仮想スイッチ１１１，２１１，３１１，３１２は、指定されたポートのミラーリングを開始する。
【０１４９】
（Ｓ１４）サーバ監視部４２０は、ミラーリングオン時の仮想スイッチ１１１，２１１，３１１，３１２のリソース使用量を測定する。測定内容は、仮想スイッチ１１１，２１１，３１１，３１２の各ポート（監視対象の仮想マシンが接続されたポートのみでよい）を経由して所定期間（例えば、１分間）に送受信されるパケット数と各仮想スイッチによる当該期間の平均のＣＰＵ使用率である。サーバ監視部４２０は、負荷算出部１２５に計測結果を送信する。負荷算出部１２５は、取得した情報から測定テーブル１２２ｄを生成し、記憶部１２２に格納する。サーバ監視部４２０は、測定が完了した後は、仮想スイッチ１１１，２１１，３１１，３１２によるミラーリングを停止させる。
【０１５０】
（Ｓ１５）負荷算出部１２５は、測定テーブル１２２ｃ，１２２ｄを参照し、式（１）を用いて、１パケット当たりのミラーリングによるＣＰＵ使用率の増分ΔＣmirrorを仮想スイッチ毎に算出する。この場合、ｐmirrorは、測定テーブル１２２ｄから求めることができる（ミラーリング対象のポートを経由したパケット数の仮想スイッチ毎の和）。負荷算出部１２５は、算出結果に基づきＣＰＵ使用率テーブル１２２ｅを生成して記憶部１２２に格納する。
【０１５１】
なお、第２の実施の形態の情報処理システムでは、以下に示す手順を実行する前に、図１５，１６の手順が少なくとも１回実行されていればよい。ただし、図１６の手順を定期的に実行して、測定テーブル１２２ｃ，１２２ｄおよびＣＰＵ使用率テーブル１２２ｅを定期的に更新してもよい。
【０１５２】
次に、Ｗｅｂサービスの稼働状況を監視するためのパケットキャプチャの処理手順を説明する。例えば、システムの管理者は、管理サーバ４００に対して、パケットキャプチャの実行開始のための入力を行う。すると、以下の手順が開始される。
【０１５３】
図１７は、パケットキャプチャ実行時の処理例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
（Ｓ２１）ミラーリング設定部４３０は、キャプチャポイント候補を１つ選択するよう仮想マシン１２０に指示する。負荷算出部１２５は、キャプチャポイント候補テーブル１２２ｂを参照して、キャプチャポイント候補を１つ選択し、ミラーリング設定部４３０に通知する。選択されるキャプチャポイント候補は任意でよい。例えば、負荷算出部１２５は、候補番号“１”のキャプチャポイント候補を選択する。負荷算出部１２５は、選択したキャプチャポイント候補を用いたミラーリングの開始をミラーリング設定部４３０に指示する。ミラーリング設定部４３０は、指示されたキャプチャポイント候補に含まれるポートの組合せを対象としたミラーリングを開始するよう、仮想スイッチ１１１，２１１，３１１，３１２に指示する。
【０１５４】
（Ｓ２２）仮想スイッチ１１１，２１１，３１１，３１２は、指定されたポートのミラーリングを開始する。パケット収集部１２３，２２３，３２３はパケットキャプチャを開始する。
【０１５５】
（Ｓ２３）サーバ監視部４２０は、ハイパーバイザ１１０，２１０，３１０のリソース使用量を監視する。監視対象には、ハイパーバイザ１１０，２１０，３１０によるＣＰＵ使用率が含まれる。
【０１５６】
（Ｓ２４）サーバ監視部４２０は、ハイパーバイザ１１０，２１０，３１０の何れかによるＣＰＵ使用率が、所定の閾値よりも大きいか否かを判定する。ＣＰＵ使用率の閾値は、サーバ１００，２００，３００毎に定めることができる。例えば、サーバ１００，２００，３００それぞれについて、ＣＰＵ使用率の閾値７５％が設定される。何れかのハイパーバイザによるＣＰＵ使用率が閾値よりも大きい場合、処理をステップＳ２５に進める。ハイパーバイザ１１０，２１０，３１０それぞれによるＣＰＵ使用率が閾値以下の場合、処理をステップＳ２３に進める。
【０１５７】
（Ｓ２５）サーバ監視部４２０は、キャプチャポイントの再決定を仮想マシン１２０に指示する。すると、仮想マシン１２０は、後述する手順によりキャプチャポイントを再決定し、ミラーリング設定部４３０に通知する。ミラーリング設定部４３０は、再決定されたキャプチャポイントに含まれるポートの組合せに変更してミラーリングを開始するよう、仮想スイッチ１１１，２１１，３１１，３１２に指示する。そして、処理をステップＳ２２に進める。
【０１５８】
このようにして、管理サーバ４００は、ハイパーバイザ１１０，２１０，３１０によるＣＰＵ使用率に応じて、キャプチャポイントの見直しを図る。なお、サーバ監視部４２０は、１分間隔などの所定の周期で、ステップＳ２４の判定を行ってもよい。
【０１５９】
図１８は、キャプチャポイントの再決定例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。以下の説明は、図１７のステップＳ２５に相当する手順である。
【０１６０】
（Ｓ３１）キャプチャポイント決定部１２６は、測定テーブル１２２ｃを参照して、ミラーリングオフ時のハイパーバイザ１１０，２１０，３１０によるＣＰＵ使用率を取得する。
【０１６１】
（Ｓ３２）キャプチャポイント決定部１２６は、キャプチャポイント候補テーブル１２２ｂを参照して、キャプチャポイント候補を１つ選択する。キャプチャポイント決定部１２６は、パケットキャプチャに現在用いられているキャプチャポイントを選択の対象から除外してもよい。例えば、候補番号“１”のキャプチャポイント候補を用いて現在パケットキャプチャを行っているなら、候補番号“２”以降のキャプチャポイント候補を以下に示す処理対象とすることが考えられる。
【０１６２】
（Ｓ３３）キャプチャポイント決定部１２６は、サーバ１００，２００，３００（物理サーバ）のうちの１つを選択する（ただし、未選択のものから１つを選択する）。キャプチャポイント決定部１２６は、選択したサーバで動作するハイパーバイザおよび仮想スイッチに着目して、以下のステップＳ３４，Ｓ３５の処理を実行する。
【０１６３】
（Ｓ３４）キャプチャポイント決定部１２６は、測定テーブル１２２ｃを参照して、着目しているキャプチャポイントを選択した場合にミラーリングの対象となるパケット数（ミラーリングパケット数）ｐmirrorを着目する仮想スイッチに対して算出する。例えば、候補番号“２”のキャプチャポイント候補および仮想スイッチ１１１に着目していれば、ポート１１１ｂ，１１１ｄ，１１１ｅ（ポート番号“２，４，５”）がミラーリング対象のポートである。したがって、例えば、仮想スイッチ１１１のミラーリングパケット数をｐmirror＝１００００＋８０００＋２００００＝３８０００と計算できる。
【０１６４】
（Ｓ３５）キャプチャポイント決定部１２６は、式（５）または式（６）を用いて、着目しているハイパーバイザのミラーリングオン時のＣＰＵ使用率Ｃmirror＿on＿estimatedを計算する。ここで、キャプチャポイント決定部１２６は、１サーバで動作する監視対象の仮想スイッチが単一であれば式（５）、複数であれば式（６）を用いることができる。具体例については後述する。
【０１６５】
（Ｓ３６）キャプチャポイント決定部１２６は、サーバ１００，２００，３００の全てに対して、Ｃmirror＿on＿estimatedを算出済であるか否かを判定する。算出済である場合、処理をステップＳ３７に進める。未算出のサーバがある場合、処理をステップＳ３３に進める。
【０１６６】
（Ｓ３７）キャプチャポイント決定部１２６は、サーバ１００，２００，３００それぞれの見積りＣＰＵ使用率Ｃmirror＿on＿estimatedが、全て所定の閾値以下であるか否かを判定する。全て閾値以下である場合、処理をステップＳ３８に進める。閾値よりも大きいものがある場合、処理をステップＳ３９に進める。
【０１６７】
（Ｓ３８）キャプチャポイント決定部１２６は、サーバ１００，２００，３００それぞれの見積りＣＰＵ使用率Ｃmirror＿on＿estimatedを用いて、ＣＰＵ負荷の偏りの評価指標を算出する。評価指標としては、例えば、標準偏差や分散を用いることができる。キャプチャポイント決定部１２６は、キャプチャポイント候補の候補番号に対応付けて、算出した評価指標を記憶部１２２に格納する。そして、処理をステップＳ４０に進める。
【０１６８】
（Ｓ３９）キャプチャポイント決定部１２６は、現在着目しているキャプチャポイント候補を、キャプチャポイントの選択対象から除外する。キャプチャポイント決定部１２６は、キャプチャポイント候補テーブル１２２ｂから該当のキャプチャポイント候補を削除してもよい。そして、処理をステップＳ４０に進める。
【０１６９】
（Ｓ４０）キャプチャポイント決定部１２６は、キャプチャポイント候補テーブル１２２ｂに登録されている全てのキャプチャポイント候補を処理済であるか否かを判定する。全てのキャプチャポイント候補を処理済である場合、処理をステップＳ４１に進める。未処理のキャプチャポイント候補がある場合、処理をステップＳ３２に進める。
【０１７０】
（Ｓ４１）キャプチャポイント決定部１２６は、キャプチャポイント候補毎に計算した負荷の偏りの評価指標に基づいて、キャプチャポイント候補の中からキャプチャポイントを決定する。例えば、標準偏差を評価指標として求めたなら、キャプチャポイント決定部１２６は、標準偏差が最小であるキャプチャポイント候補を、キャプチャポイントと決定する。
【０１７１】
（Ｓ４２）キャプチャポイント決定部１２６は、決定したキャプチャポイントをミラーリング設定部４３０に通知し、キャプチャポイントの変更を指示する。
図１９は、ＣＰＵ使用率の見積り例を示す図である。図１９では、キャプチャポイント候補テーブル１２２ｂにおける候補番号“２”のキャプチャポイント候補に着目した場合のハイパーバイザ１１０，２１０，３１０のミラーリングオン時のＣＰＵ使用率の見積り例を示している。なお、図１９では、測定テーブル１２２ｃにおける仮想スイッチ単位のＣＰＵ使用率の表記を省略している。
【０１７２】
候補番号“２”のキャプチャポイント候補では、ポート１１１ｂ，１１１ｄ，１１１ｅ，２１１ｂ，２１１ｄ，２１１ｅ，３１１ｂがミラーリング対象のポートとなる。キャプチャポイント決定部１２６は、測定テーブル１２２ｃおよびＣＰＵ使用率テーブル１２２ｅを参照して、次のように見積りＣＰＵ使用率Ｃmirror＿on＿estimatedを算出する。
【０１７３】
仮想スイッチ１１１のミラーリングパケット数は、ｐmirror＝１００００＋８０００＋２００００＝３８０００である。Ｃmirror＿off＿hv＝６０（％）である。ΔＣmirror＝０．００００８（％／パケット）である。これらを式（５）にあてはめれば、ハイパーバイザ１１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝６３．０４（％）である。
【０１７４】
仮想スイッチ２１１のミラーリングパケット数は、ｐmirror＝１２０００＋１１０００＋２５０００＝４８０００である。Ｃmirror＿off＿hv＝５０（％）である。ΔＣmirror＝０．００００８（％／パケット）である。これらを式（５）にあてはめれば、ハイパーバイザ２１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝５３．８４（％）である。
【０１７５】
仮想スイッチ３１１のミラーリングパケット数は、ｐmirror＝１１０００である。Ｃmirror＿off＿hv＝７０（％）である。ΔＣmirror＝０．０００１５（％／パケット）である。これらを式（５）にあてはめれば、ハイパーバイザ３１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝７１．６５（％）である。
【０１７６】
同様に、図１９では、キャプチャポイント候補テーブル１２２ｂにおける候補番号“３”のキャプチャポイント候補に着目した場合のハイパーバイザ１１０，２１０，３１０のミラーリングオン時のＣＰＵ使用率の見積り例も示している。
【０１７７】
候補番号“３”のキャプチャポイント候補では、ポート１１１ｂ，１１１ｃ，２１１ｂ，２１１ｃ，３１１ｂ，３１１ｃ，３１２ｂがミラーリング対象のポートとなる。キャプチャポイント決定部１２６は、測定テーブル１２２ｃおよびＣＰＵ使用率テーブル１２２ｅを参照して、次のように見積りＣＰＵ使用率Ｃmirror＿on＿estimatedを算出する。
【０１７８】
仮想スイッチ１１１のミラーリングパケット数は、ｐmirror＝１００００＋５０００＝１５０００である。Ｃmirror＿off＿hv＝６０（％）である。ΔＣmirror＝０．００００８（％／パケット）である。これらを式（５）にあてはめれば、ハイパーバイザ１１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝６１．２０（％）である。
【０１７９】
仮想スイッチ２１１のミラーリングパケット数は、ｐmirror＝１２０００＋６０００＝１８０００である。Ｃmirror＿off＿hv＝５０（％）である。ΔＣmirror＝０．００００８（％／パケット）である。これらを式（５）にあてはめれば、ハイパーバイザ２１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝５１．４４（％）である。
【０１８０】
仮想スイッチ３１１のミラーリングパケット数は、ｐmirror＝１１０００＋８０００＝１９０００である。仮想スイッチ３１２のミラーリングパケット数は、ｐmirror＝４５０００である。Ｃmirror＿off＿hv＝７０（％）である。仮想スイッチ３１１，３１２に対してΔＣmirror＝０．０００１５（％／パケット）である。これらを式（６）にあてはめれば、ハイパーバイザ３１０に関する見積りＣＰＵ使用率は、Ｃmirror＿on＿estimated＝７９．６０（％）である。
【０１８１】
キャプチャポイント決定部１２６は、キャプチャポイント候補の候補番号に対応付けて、各ハイパーバイザの見積りＣＰＵ使用率を保持する。見積りＣＰＵ使用率テーブル１２２ｆは、見積りＣＰＵ使用率を保持するためのデータ例である。
【０１８２】
図２０は、キャプチャポイントの決定例を示す図である。図２０では、候補番号“２，３，４”のキャプチャポイント候補の中から、キャプチャポイントを選択する例を示している。キャプチャポイント決定部１２６は、候補番号“４”のキャプチャポイント候補に対しても、ハイパーバイザ１１０，２１０，３１０の見積りＣＰＵ使用率を算出する。見積りＣＰＵ使用率テーブル１２２ｆには、候補番号“２，３，４”のキャプチャポイント候補に対して、ハイパーバイザ１１０，２１０，３１０の見積りＣＰＵ使用率を算出した結果が登録されている。
【０１８３】
キャプチャポイント決定部１２６は、ハイパーバイザ１１０，２１０，３１０の見積りＣＰＵ使用率が、ハイパーバイザ１１０，２１０，３１０毎のＣＰＵ使用率の閾値を上回る場合、該当のキャプチャポイント候補をキャプチャポイントの選択対象から除外する。図２０の例では、候補番号“３”のキャプチャポイント候補を採用した場合、サーバ３００（すなわち、ハイパーバイザ３１０）の見積りＣＰＵ使用率７９．６０（％）が閾値７５（％）よりも大きくなる。よって、キャプチャポイント決定部１２６は、候補番号“３”のキャプチャポイント候補をキャプチャポイントの選択対象から除外する。見積りＣＰＵ使用率テーブル１２２ｈは、見積りＣＰＵ使用率テーブル１２２ｆから、候補番号“３”のレコードを削除した例である。
【０１８４】
キャプチャポイント決定部１２６は、見積りＣＰＵ使用率テーブル１２２ｆに基づいて、ＣＰＵ負荷の偏りの評価指標（ここでは、標準偏差としている）を、キャプチャポイント候補毎に算出する。評価指標情報１２２ｉは、標準偏差の算出結果の例を示している。この場合、候補番号“２”に対する標準偏差“７．２７”は、候補番号“４”に対する標準偏差“７．９３”よりも小さい。各候補番号に対する標準偏差のうち候補番号“２”の標準偏差は最小である。
【０１８５】
標準偏差が小さいほど、ハイパーバイザ１１０，２１０，３１０の見積りＣＰＵ使用率のばらつきが小さい。見積りＣＰＵ使用率のばらつきがより小さいキャプチャポイント候補を選択することで、ミラーリングを行う場合のハイパーバイザ１１０，２１０，３１０（すなわち、サーバ１００，２００，３００）によるＣＰＵ負荷を平準化できると期待できる。
【０１８６】
よって、キャプチャポイント決定部１２６は、候補番号“２”のキャプチャポイント候補１２２ｊを、キャプチャポイントと決定する。そして、キャプチャポイント決定部１２６は、ミラーリング設定部４３０にキャプチャポイントの変更を指示する。
【０１８７】
なお、以上の手順では、キャプチャポイントを再設定する場合を想定したが、例えば、図１７のステップＳ２２の前に、ステップＳ２５によるキャプチャポイントの決定（この場合は、再決定ではなく決定という方が適切である）を行ってもよい。
【０１８８】
また、図１６の手順を図１７の手順に組み込んで行うことも考えられる。例えば、システムの管理者などのミラーリング開始の指示に応じて、ステップＳ１１の後にステップＳ２１，Ｓ２２を実行し、ステップＳ２３の前またはステップＳ２３と並行して、ステップＳ１４，Ｓ１５を実行することも考えられる。この場合、ステップＳ１２，Ｓ１３はスキップされることになる。
【０１８９】
以上のように、第２の実施の形態の情報処理システムによれば、監視対象の仮想マシンを実行するサーバ１００，２００，３００の負荷を平準化できる。
ここで、複数の物理サーバによりパケットの収集を分担して実行する場合、何れかの物理サーバ上で複製／収集されるパケット数が増大し、当該物理サーバに負荷が偏るおそれがある。仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なり、仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々だからである。
【０１９０】
特に、何れかの仮想マシンにおいてミラーリングによりハイパーバイザのＣＰＵリソースが圧迫されると、監視対象のＷｅｂサービスや同ハイパーバイザで動作する他の仮想マシンの性能に影響を及ぼすおそれがある。例えば、仮想マシン間の通信遅延、ディスク（ローカルストレージやネットワークストレージなど）への書き込み／読み出し処理の性能劣化などを引き起こすおそれがある。
【０１９１】
これに対し、キャプチャポイントを適切に選択することで、特定の物理サーバに負荷が偏らないようにすることが考えられる。しかし、ミラーリングによるＣＰＵの負荷が各物理サーバでどの程度であるかを直接計測するのは容易でない。
【０１９２】
そこで、第１の実施の形態の方法では、キャプチャポイントの複数の候補に対し、各候補を採用した場合の各ハイパーバイザによるＣＰＵの使用量を見積もる。これにより、各ハイパーバイザによるＣＰＵの使用量の偏り（ばらつき）がより小さいキャプチャポイントを選択可能となる。
【０１９３】
このとき、１パケット当たりのミラーリングに要するスイッチによるＣＰＵの使用率の増分を算出する。このため、各ポートを経由するパケット数（当該ポートをミラーリング対象としたときに収集されるパケット数に相当）から、キャプチャポイントの各候補を採用したときの各ハイパーバイザによるＣＰＵの使用率を見積もれる。したがって、キャプチャポイントの全候補について、ミラーリングオン時およびミラーリングオフ時のハイパーバイザのＣＰＵの使用量を計測せずに済む。よって、キャプチャポイントの決定を効率的に行える。
【０１９４】
第２の実施の形態の説明では、候補抽出部１２４、負荷算出部１２５およびキャプチャポイント決定部１２６を仮想マシン１２０に設けるものとした。一方、候補抽出部１２４、負荷算出部１２５およびキャプチャポイント決定部１２６を管理サーバ４００に設けてもよい。
【０１９５】
なお、第１の実施の形態の情報処理は、プロセッサ１ｂまたは物理マシン２，３，４が備えるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、サーバ１００，２００，３００または管理サーバ４００が備えるＣＰＵにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体１３）に記録できる。
【０１９６】
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１９７】
１，２，３，４  物理マシン
１ａ  記憶装置
１ｂ  プロセッサ
２ａ，２ｂ，２ｃ，３ａ，３ｂ，３ｃ，４ａ，４ｂ，４ｃ  仮想マシン
２ｄ，３ｄ，４ｄ  仮想スイッチ
５  情報
Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ８，Ｐ９，Ｐ１０，Ｐ１１，Ｐ１２，Ｐ１３，Ｐ１４  ポート
【図１】
2015197715.tif 000009
【図２】
2015197715.tif 000010
【図３】
2015197715.tif 000011
【図４】
2015197715.tif 000012
【図５】
2015197715.tif 000013
【図６】
2015197715.tif 000014
【図７】
2015197715.tif 000015
【図８】
2015197715.tif 000016
【図９】
2015197715.tif 000017
【図１０】
2015197715.tif 000018
【図１１】
2015197715.tif 000019
【図１２】
2015197715.tif 000020
【図１３】
2015197715.tif 000021
【図１４】
2015197715.tif 000022
【図１５】
2015197715.tif 000023
【図１６】
2015197715.tif 000024
【図１７】
2015197715.tif 000025
【図１８】
2015197715.tif 000026
【図１９】
2015197715.tif 000027
【図２０】
2015197715.tif 000028