(57)【特許請求の範囲】
【請求項１】
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第１の組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第２の組とを、ミラーリング対象として特定し、
ミラーリング対象として特定された、前記第１の組及び前記第２の組の少なくとも一方の組における、前記送信元仮想マシンと前記送信先仮想マシンとの間の通信をミラーリングする処理を更に実行させる、
処理をコンピュータに実行させる解析プログラム。
【請求項２】
前記送信元仮想マシンと前記送信先仮想マシンとの複数の組の各々について、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上である場合に、前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値を求め、
前記相関の値が第２閾値より大きい場合に、前記入力キュー情報の前記キュー長の増加率を算出し、
前記入力キュー情報の前記キュー長が第１閾値以上であり、前記相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの前記第１の組と、
前記入力キュー情報の前記キュー長が第１閾値以上であり、かつ前記相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの前記第２の組とを、ミラーリング対象として特定する、
処理をコンピュータに実行させる請求項１に記載の解析プログラム。
【請求項３】
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第１の組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第２の組とを、ミラーリング対象として特定する特定部と、
ミラーリング対象として特定された、前記第１の組及び前記第２の組の少なくとも一方の組における、前記送信元仮想マシンと前記送信先仮想マシンとの間の通信をミラーリングする処理を更に実行させる設定部と、
を備えた解析装置。
【請求項４】
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第１の組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの第２の組とを、ミラーリング対象として特定し、
ミラーリング対象として特定された、前記第１の組及び前記第２の組の少なくとも一方の組における、前記送信元仮想マシンと前記送信先仮想マシンとの間の通信をミラーリングする処理を更に実行させる、
処理をコンピュータが実行する解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、解析プログラム、解析装置、及び解析方法に関する。
【背景技術】
【０００２】
従来、ミラーリング非実行時および実行時の仮想スイッチのプロセッサの使用量と、ミラーリング対象のポートを経由するパケット数とから、ミラーリングに起因する仮想スイッチのプロセッサの使用量を算出するキャプチャポイント決定方法が知られている。
【０００３】
また、キューバッファのキュー長に関する情報に基づき、予め定義された数式に従って、パケットを送出する権利の取得に関する優先度情報を求めるパケット処理装置が知られている。
【０００４】
また、セルバッファ閾値ＴＡとＴＢ（ＴＡ＞ＴＢ）を設定し、セルバッファのキュー長が、閾値ＴＢを超過する場合には、新規到着セルが輻輳状況にある出力回線に出力されるセルか否かを判定する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１９７７１５号公報
【特許文献２】特開２００２−２５２６２９号公報
【特許文献３】特開平１１−２６６２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来技術では、単にプロセッサの使用量及びパケット数の情報や、キュー長の情報に基づいてミラーリングの設定を行っているため、仮想マシンの間の通信速度が低速でない場合であっても、ミラーリングの設定を行ってしまう。
【０００７】
開示の技術は、１つの側面として、仮想マシンの間の通信速度が低速である送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定することを目的とする。
【課題を解決するための手段】
【０００８】
１つの実施態様では、入力キュー情報と、出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出す。入力キュー情報は、複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する。出力キュー情報は、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する。前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、前記送信元仮想マシンと前記送信先仮想マシンとの組を、ミラーリング対象として特定する。前記入力キュー情報の前記キュー長が第１閾値以上であり、相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する。相関の値は、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値である。前記入力キュー情報の前記キュー長が第１閾値以上であり、かつ相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する。
【発明の効果】
【０００９】
１つの側面として、仮想マシンの間の通信速度が低速である送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定することができる、という効果を有する。
【図面の簡単な説明】
【００１０】
【図１】仮想システムの一例を示すブロック図である。
【図２】仮想システムにおける仮想マシン間の通信を説明するための説明図である。
【図３】仮想システムにおける仮想マシン間の通信を説明するための説明図である。
【図４】物理サーバ間の通信を説明するための説明図である。
【図５】仮想マシン間の通信を説明するための説明図である。
【図６】仮想スイッチにおける転送処理を説明するための説明図である。
【図７】仮想スイッチにおける転送処理を説明するための説明図である。
【図８】仮想スイッチにおける転送処理を説明するための説明図である。
【図９】仮想スイッチにおける転送処理を説明するための説明図である。
【図１０】仮想スイッチにおける転送処理を説明するための説明図である。
【図１１】仮想スイッチにおける転送処理を説明するための説明図である。
【図１２】本実施形態の解析装置のブロック図である。
【図１３】仮想システムと解析装置との関係を説明するための図である。
【図１４】入力キューテーブルの一例を示す図である。
【図１５】出力キューテーブルの一例を示す図である。
【図１６】ミラーリング設定テーブルの一例を示す図である。
【図１７】入力キューのキュー長の測定を説明するための説明図である。
【図１８】入力キューのキュー長が閾値以上であるか否かを説明するための説明図である。
【図１９】入力キューのキュー長と出力キューのキュー長との相関係数を説明するための説明図である。
【図２０】入力キューのキュー長の増加率を説明するための説明図である。
【図２１】入力キューのキュー長と相関係数と増加率とに応じてミラーリングが設定されることを説明するための説明図である。
【図２２】解析装置として機能するコンピュータの概略構成を示すブロック図である。
【図２３】解析処理の一例を示すフローチャートである。
【図２４】仮想スイッチ管理処理の一例を示すフローチャートである。
【図２５】入出力キュー測定処理の一例を示すフローチャートである。
【図２６】入力キュー算出処理の一例を示すフローチャートである。
【図２７】出力キュー算出処理の一例を示すフローチャートである。
【図２８】ミラーリング設定判定処理の一例を示すフローチャートである。
【図２９】キュー長相関係数算出処理の一例を示すフローチャートである。
【図３０】ミラーリング設定処理の一例を示すフローチャートである。
【図３１】相関係数算出処理の一例を示すフローチャートである。
【図３２】データ設定処理の一例を示すフローチャートである。
【図３３】増加率算出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して開示の技術の一例を詳細に説明する。
【００１２】
＜仮想システムにおけるミラーリングの設定について＞
まず、各実施形態の詳細を説明する前に、仮想システムと本実施形態の概要とについて説明する。
【００１３】
［仮想システムの概要］
図１に仮想システムを説明するための図を示す。図１に示すように、仮想システム１０は、物理コンピュータ１２のハードウェアであるCentral Processing Unit（ＣＰＵ）、メモリ等を仮想化し、複数の仮想マシン（Virtual Machine）ＶＭ１〜ＶＭｎ（仮想マシンを区別せずに総称する際には「仮想マシン」と表記する）を機能させるシステムである。
【００１４】
ここで、物理コンピュータ１２は、ＣＰＵ、メモリ、ハードディスク等（図示省略）を備える。また、物理コンピュータ１２のソフトウェアは、複数の仮想マシンＶＭ１〜ＶＭｎ、仮想スイッチ１６、及びハイパーバイザー１８を備えるように機能する。図１に示すように、仮想マシン間の通信は仮想スイッチ１６を経由して行われる。また、ハイパーバイザー１８は、複数の仮想マシンＶＭ１〜ＶＭｎの動作制御や監視（例えば、ＣＰＵ使用率、メモリ使用率の取得）を行う。
【００１５】
図２に、仮想マシン間の通信を説明するための説明図を示す。図２に示すように、送信元の仮想マシンＶＭ１〜ＶＭ３と送信先の仮想マシンＶＭ４〜ＶＭ６との間の通信は、仮想スイッチ１６を介して行われる。また、送信元の仮想マシンＶＭ１〜ＶＭ３と送信先の仮想マシンＶＭ４〜ＶＭ６との間の通信では、Transmission Control Protocol（ＴＣＰ）を用いたパケット通信が行われる。
【００１６】
仮想マシン間のパケット通信では、送信元の仮想マシンがメモリ上のバッファを確保し、図２に示すように、パケットを仮想スイッチ１６の入力キュー２１に繋げる。そして、仮想スイッチ１６のスイッチ処理２２において、パケットの送信先アドレスに基づき、送信先の仮想マシンへ転送されるパケットは、仮想スイッチ１６の出力キュー２３に繋げられる。送信先の仮想マシンは、自分宛の仮想スイッチ１６の出力キュー２３にパケットがあれば、当該パケットを受信する。なお、上記図２に示すように、入力キュー２１及び出力キュー２３に含まれる四角で囲われた番号が１つのパケットを表し、番号が送信先の仮想マシンを表す。
【００１７】
［ネットワーク品質の低下について］
物理サーバ間のパケット通信では、物理的な通信経路の速度（例えば、イーサーネットやスイッチの速度）が通信速度の上限となる。例えば、物理サーバ間が１Ｇｂｐｓのイーサーネットで接続されている場合、通信速度は１Ｇｂｐｓ以上にはならない。
【００１８】
しかし、仮想システムにおける仮想マシン間の通信の場合は、物理的な通信経路が無く、通信速度の上限がメモリを扱う処理速度（例えば、メモリーコピーの速度やメモリアクセスの速度）に近いため、高速な（例えば２０Ｇｂｐｓ）通信となる。
【００１９】
仮想マシン間の通信速度が高速になると、ネットワークの全ての仮想マシン間のパケットを分析及び監視する場合、単位時間当たりに解析するパケットの数が多くなり、分析及び監視する処理が遅延してしまう。そのため、全ての仮想マシン間のパケットを分析及び監視することは難しい。
【００２０】
従って、仮想システムでは全ての仮想マシン間のパケットをキャプチャ、分析、及び監視することができないため、通信速度が低下しネットワーク品質が低下している仮想マシン間の通信パケットだけを自動的に分析及び監視することが求められる。
【００２１】
図３に、仮想システム１０において、仮想マシン間の通信速度が低速になりネットワーク品質が低下する場合の例を示す。図３では、マルチＣＰＵコアの物理サーバ上で動作する仮想システムを例に説明する。図３に示す仮想システムでは、１つのソケット１９が４つのＣＰＵコア２０を備える。また、各ＣＰＵコア２０は、各仮想マシンに割り当てられる。
【００２２】
上記図３に示すように、マルチＣＰＵコアの物理サーバ上で動作する仮想システム１０において、ハイパーバイザー１８のスケジューラーは、複数の仮想マシンに各ＣＰＵコア２０を割り当てる。そして、ＣＰＵコア２０は仮想マシンを動作させる。スケジューラーは、ＣＰＵコア２０を均等に仮想マシンに割り当てることしか行わず、仮想マシンを動作させるＣＰＵコア２０を特定しない。
【００２３】
上記図３に示すＣＰＵコア２０間の通信において、同一ソケット１９内のＣＰＵコア２０間の通信速度と、異なるソケット１９間のＣＰＵコア２０間の通信速度とは異なる。具体的には、ソケット１９を跨ぐＣＰＵコア２０間の通信速度は、同一ソケット１９内のＣＰＵコア２０間の通信速度に比べ遅い。ＣＰＵコア２０間の通信は、メモリアクセス速度に対応するため、ソケット１９内のメモリアクセス速度とソケット１９を跨るメモリアクセス速度とを比較すると、ソケット１９を跨るメモリアクセス速度は遅くなるためである。これにより、仮想マシンの割り当てソケット１９と通信経路とに応じて、仮想マシン間の通信速度が低速となりネットワーク品質が低下する現象が発生する。
【００２４】
例えば、図３に示す仮想マシンＶＭ４への仮想マシンＶＭ間の通信に関し、仮想マシンＶＭ１→仮想マシンＶＭ４と仮想マシンＶＭ２→仮想マシンＶＭ４とは高速な通信になるが、仮想マシンＶＭ３→仮想マシンＶＭ４は低速な通信になる。
【００２５】
通信速度が低速である仮想マシン間の通信だけを自動的に分析及び監視するためには、通信速度を計測する必要がある。仮想システム１０で通信速度を求めるには、単位時間に読み出したパケット長を求めなければならないが、読み出したパケットはキューに存在しないため、読出し速度を求めることが難しく、通信速度を測定することができない。
【００２６】
例えば、図４に示すように、通常、物理サーバＭ３と物理サーバＭ４との間の通信のネットワーク品質を分析する場合、スイッチのミラーリング機能を用いて、物理サーバＭ３、Ｍ４間に流れるパケットのＴＣＰヘッダを解析する。そして、ＴＣＰプロトコルのデータ転送パケットと該データ転送パケットの確認信号パケット（Acknowledgement（ＡＣＫ））の送信時間の時間差が算出され、ＴＣＰの通信往復遅延時間（Round-Trip delay Time（ＲＴＴ））が測定される。
【００２７】
図４に示すように、物理サーバＭ３、Ｍ４間のパケット通信２４では、送信先の物理サーバＭ４において、読み出し遅延を表す輻輳が発生すると、物理サーバＭ４のアプリケーションによってパケットの読出し処理が遅れる。この場合、物理サーバＭ４のカーネルにはパケットが到着し、カーネルがＡＣＫを返信するので、ＲＴＴは大きくならない（例えば、平均値より大きくならない）。その結果、ＲＴＴの値で、通信遅延とサーバの輻輳とを区別することができる。そのため、物理サーバ間のネットワーク品質を分析する場合、ＲＴＴが大きくなった物理サーバをミラーリングすれば、通信速度が低下している通信パケットだけを分析及び監視することができる。
【００２８】
しかし、仮想システムの場合は、物理サーバ間のパケット通信とは異なる。図５に、仮想マシン間の通信速度の低下（ネットワーク遅延）と、仮想マシン間の通信における送信先の仮想マシンの輻輳とを説明するための図を示す。図５に示すように、仮想マシンＶＭ３、ＶＭ４間の通信２５では、ＲＴＴの測定結果に基づき通信速度が低下しているか否かを判定することができる。一方、仮想マシンＶＭ３、ＶＭ７間の通信２６において、送信先の仮想マシンＶＭ７が輻輳になると、送信先の仮想マシンＶＭ７の読出し処理が遅延する。この場合、送信先の仮想マシンＶＭ７のカーネルにパケットが到着せずＡＣＫが返信されないため、通信速度が低下していないにもかかわらず、ＲＴＴの値が大きくなってしまう現象が発生する。
【００２９】
仮想システム１０においては、ＲＴＴの測定結果からは、仮想ネットワークの遅延か、送信先の仮想マシンの読出し処理における輻輳かを判定することができない。そのため、通信速度が低下している仮想マシン間の通信パケットだけを自動的に分析及び監視することができないという課題が存在する。
【００３０】
［仮想システムにおける通信速度の低下］
仮想システム１０において、仮想マシン間の通信が低速な場合、仮想スイッチ１６の入力キュー２１のパケットの数が多くなる。なお、本実施形態では、パケットは開示の技術のデータの一例である。また、本実施形態では、キューイングされているパケットの数をキュー長と称する。
【００３１】
例えば、図６に示すように、キュー長が長い仮想マシンＶＭ３のパケットをミラーリングすれば、通信が低速である仮想マシン間の通信パケットを自動的に分析及び監視することが可能になると考えられる。
【００３２】
しかし、仮想スイッチ１６の入力キュー２１のキュー長が長い仮想マシンＶＭ３に対しミラーリングを設定する場合、送信先の仮想マシンで輻輳が発生している仮想マシンに対しても、ＲＴＴによる通信遅延判定と同様に、ミラーリングが設定されてしまう。
【００３３】
具体的には、送信先の仮想マシンにおいて輻輳が発生した場合、輻輳が発生した仮想マシンに対する仮想スイッチ１６の出力キュー２３のキュー長が長くなる。例えば、図７に示すように、送信先の仮想マシンＶＭ５において輻輳が発生した場合、送信先の仮想マシンＶＭ５に対する仮想スイッチ１６の出力キュー２３のキュー長は長くなる。
【００３４】
ここで、上記図７に示すような仮想マシン間の通信の場合、仮想スイッチ１６から送信先の仮想マシンの出力キュー２３にパケットをキューイングしたあと、パケットの到達を通知するため、仮想スイッチ１６から送信先の仮想マシンにイベントが通知される。このイベント通知の数は限りがあり、仮想スイッチ１６の出力キュー２３が一定以上の数になると、仮想スイッチ１６から送信先の仮想マシンへパケット到達イベント通知ができなくなる。その結果、スイッチ処理は仮想スイッチ１６の出力キュー２３にキューを繋ぐことができず、仮想スイッチ１６の入力キュー２１に、輻輳が発生した仮想マシン宛のパケットが溜まる。そして、図７に示すように、送信元の仮想マシンＶＭ２の入力キュー２１のキュー長が長くなる。
【００３５】
つまり、仮想スイッチ１６の入力キュー２１のキュー長だけに基づいてミラーリングの判定が行われると、仮想マシン間の通信が高速な仮想マシン間の通信に対してもミラーリングの設定がされてしまう。例えば、上記図７に示す送信元の仮想マシンＶＭ２と送信先の仮想マシンＶＭ５との組に対しても、ミラーリングの設定がされてしまう。
【００３６】
また、図８に示すように、送信先の仮想マシンＶＭ５が輻輳した場合、輻輳が発生した送信先の仮想マシンＶＭ５への出力キュー２３のキュー長が長くなり、その影響により入力キュー２１内で送信先の仮想マシンＶＭ５宛のキュー長も長くなる特徴がある。
【００３７】
そこで、仮想スイッチ１６の入力キュー２１内における、送信元の仮想マシン毎の各送信先の仮想マシン宛てのキュー長と、仮想スイッチ１６の出力キュー２３内における各送信先の仮想マシンへのキュー長とを周期的に測定することが考えられる。そして、入力キュー２１内の送信先の仮想マシン毎のキュー長から、キュー長が長い送信先の仮想マシンを検索することが考えられる。
【００３８】
例えば、上記図８に示すように、送信元の仮想マシンＶＭ２に対しては送信先の仮想マシンＶＭ５が検索され、送信元の仮想マシンＶＭ３に対しては送信先の仮想マシンＶＭ４が検索される。次に、入力キュー２１内においてキュー長が長い送信先の仮想マシンのうち、出力キュー２３のキュー長が長い送信先の仮想マシンを検索される。検索の結果、例えば、図８の送信先の仮想マシンＶＭ５が検索される。
【００３９】
出力キュー２３のキュー長が長くなっている送信先の仮想マシンＶＭ５では、送信先の仮想マシンＶＭ５の輻輳が原因だと判断することができる。また、出力キュー２３のキュー長が長くなっていない送信先の仮想マシンＶＭ４では、送信元の仮想マシンＶＭ３と送信先の仮想マシンＶＭ４との間の仮想マシン間の通信が低速通信だと判断できる。
【００４０】
上記図８に示すように、仮想マシンＶＭ３と仮想マシンＶＭ４との間の通信が低速であれば、送信元の仮想マシンＶＭ３の入力キュー２１をミラーリング設定することで、低速な通信を分析及び監視することが可能になる。または、送信先の仮想マシンＶＭ４に対してミラーリング設定することで、低速な通信を分析及び監視することが可能になる。
【００４１】
図９に具体例を示す。なお、以下の説明では、「ｑｘｙ」は、入力キュー２１内における、送信元の仮想マシンＶＭｘから送信先の仮想マシンＶＭｙへのキュー長を表し、「ｑｚ」は、出力キュー２３における、送信先の仮想マシンＶＭｚのキュー長を表す。
【００４２】
まず、周期的（例えば１００ｍｓｅｃ毎）に、送信元の仮想マシン毎に、入力キュー２１から、送信先の仮想マシン毎のキュー長を求める。
【００４３】
例えば、図９に示すように、送信元の仮想マシンＶＭ１、ＶＭ２、ＶＭ３毎に、入力キュー２１から、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６毎のキュー長（ｑ１４，ｑ１５，ｑ１６，ｑ２４，ｑ２５，ｑ２６，ｑ３４，ｑ３５，ｑ３６）を求める。
【００４４】
次に、上記図９に示すように、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６毎の出力キュー２３から、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６毎のキュー長（ｑ４，ｑ５，ｑ６）を求める。そして、入力キュー２１から送信元の仮想マシン毎に求めた送信先の仮想マシン毎のキュー長と予め定められた閾値Ｘ１とを比較する。また、出力キュー２３から求めた送信先の仮想マシン毎のキュー長と予め定められた閾値Ｘ２とを比較する。
【００４５】
ここで、図９に示すように、閾値Ｘ１よりも大きい、送信先の仮想マシンＶＭ４、ＶＭ５へのキュー長（ｑ２５，ｑ３４）が存在する場合、当該送信先の仮想マシンＶＭ４、ＶＭ５のキュー長（ｑ４，ｑ５）が閾値Ｘ２よりも大きいかどうか判定する。そして、送信先の仮想マシンの出力キュー２３のキュー長が閾値Ｘ２よりも大きい場合、輻輳が発生していると判断される。
【００４６】
上記図９の例では、キュー長ｑ５が閾値Ｘ２よりも大きいため、送信先の仮想マシンＶＭ５との間の通信は高速だと判断され、送信先の仮想マシンＶＭ５において輻輳が発生していると判断される。
【００４７】
一方、送信先の仮想マシンＶＭ４の出力キュー２３のキュー長ｑ４が閾値Ｘ２以下であるため、送信先の仮想マシンＶＭ４との間の通信が低速だと判断される。
【００４８】
仮想マシン間の低速な通信に対しミラーリングを設定する場合は、送信元の仮想マシン及び送信先の仮想マシンの少なくとも一方をミラーリングすれば良い。
【００４９】
送信元の仮想マシンをミラーリングする場合は、上記図９に示すように、低速と判断された仮想マシン間の通信の、送信元の仮想マシンから仮想スイッチ１６への出力ポートに対してミラーリングの設定を行う。図９に示す例では、送信元の仮想マシンＶＭ３から仮想スイッチ１６への出力ポートに対してミラーリングが設定される。
【００５０】
送信先の仮想マシンをミラーリングする場合は、上記図９に示すように、低速だと判断された仮想マシン間の通信の、送信先の仮想マシンへの、仮想スイッチ１６からの出力ポートに対してミラーリングの設定が行われる。図９に示す例では、仮想スイッチ１６から仮想マシンＶＭ４への出力ポートに対してミラーリングが設定される。
【００５１】
［キュー長のみに基づく判定方法の問題点］
しかし、パケットのキュー長を単純に閾値のみに基づいて判定する上記方法では、キュー長の時間的な増加の変化が測定できない。そのため、トラフィック量が多く、キュー長が閾値を超えた状態が継続する場合、通信が低速な仮想マシンが存在するにも関わらず、送信先の仮想マシンにおいて輻輳が発生していると判断されてしまい、低速な仮想マシン間の通信を検出することができない。
【００５２】
図１０に、トラフィック量が多い場合に低速な仮想マシン間の通信が検出されない例を示す。例えば、図１０に示すように、送信元の仮想マシンＶＭ１と送信先の仮想マシンＶＭ６との間の仮想マシン間の通信が低速である場合を考える。送信元の仮想マシンＶＭ１と送信先の仮想マシンＶＭ６との間の通信において、トラフィック量が多いために入力キュー２１のキュー長と出力キュー２３のキュー長とが閾値を超えた状態が継続する場合、送信先の仮想マシンの輻輳と区別がつかない。そのため、送信元の仮想マシンＶＭ１と送信先の仮想マシンＶＭ６との間の仮想マシン間の通信が低速であっても、当該低速な仮想マシン間の通信を検出できない現象が発生する。
【００５３】
［本実施形態の概要］
上記説明したように、送信先の仮想マシンの輻輳が発生し、仮想スイッチ１６の出力キュー２３のキュー長が増加し一定以上の数になると、仮想スイッチ１６から送信先の仮想マシンへパケット到達イベント通知ができなくなる。そのため、仮想スイッチ１６の出力キュー２３にキューを繋ぐことができなくなり、仮想スイッチ１６の入力キュー２１に、輻輳が発生した送信先の仮想マシン宛のパケットが溜まり、仮想スイッチ１６の入力キュー２１のキュー長が増加する。
【００５４】
輻輳が発生した場合、仮想スイッチ１６の入力キュー２１のキュー長の時間的推移と出力キュー２３のキュー長の時間的推移の相関は高くなる。例えば、図１１に示すように、送信元の仮想マシンＶＭ２の入力キュー２１に含まれる送信先の仮想マシンＶＭ５のキュー長と、送信先の仮想マシンＶＭ５の出力キュー２３のキュー長とは、時間的推移の相関が高くなる。
【００５５】
一方、トラフィック量が多い場合も、入力キュー２１のキュー長と出力キュー２３のキュー長との相関が高くなる。トラフィック量が多くなることにより仮想マシンの間の通信が低速になり、仮想スイッチ１６の入力キュー２１のキュー長が閾値を超えた状態が継続し、出力キュー２３のキュー長も閾値を超えた状態が継続するためである。例えば、上記図１１に示すように、送信元の仮想マシンＶＭ１と送信先の仮想マシンＶＭ６との間の通信では、トラフィック量が多いため仮想マシンの間の通信が低速になり、キュー長の相関が高くなる。
【００５６】
そのため、単にキュー長の相関のみを用いたのでは、トラフィック量が多いために仮想マシンの間の通信が低速になる場合を特定することができない。
【００５７】
ここで、キュー長の相関が高い仮想マシン間の通信において、入力キュー２１のキュー長の増加率が高い場合、送信先の仮想マシンで輻輳が発生していると判断することができる。出力キュー２３のキュー長の増加が入力キュー２１のキュー長に影響を与え、キュー長の相関が高くなり、入力キュー２１のキュー長が増加するためである。
【００５８】
一方、キュー長の相関が高い仮想マシン間の通信において、入力キュー２１のキュー長の増加率が低い場合、仮想マシン間の通信は低速と判断できる。
【００５９】
そこで、本実施形態では、入力キュー２１に含まれる送信先の仮想マシンのキュー長が長く、キュー長の相関が高く、かつ入力キュー２１に含まれる送信先の仮想マシンのキュー長の増加率が低い場合の仮想マシンの組を、ミラーリング対象として特定する。また、送信先の仮想マシンのキュー長が長く、かつ入力キュー２１のキュー長と出力キュー２３のキュー長との相関が低い場合の仮想マシンの組をミラーリング対象として特定する。
【００６０】
以下、実施形態について詳述する。なお、以下の実施形態では、仮想システムにおける仮想マシン間の通信を解析する解析装置を例に説明する。
【００６１】
＜実施形態＞
図１２に示すように、本実施形態に係る解析装置３０は、仮想スイッチ管理機能部３２と、Layer４（Ｌ４）解析機能部４６とを備えている。本実施形態では、図１３に示すように、仮想システム１０に含まれる仮想マシンの１つを解析装置３０として機能させる。解析装置３０は、仮想スイッチ１６のポートをミラーリング３１することにより仮想マシン間の通信を解析する。
【００６２】
仮想スイッチ管理機能部３２は、基本周期設定部３６と、キュー測定部３８と、情報記憶部４０と、ミラーリング判定部４２と、ミラーリング設定部４４とを備えている。情報記憶部４０は、開示の技術の記憶部の一例である。また、ミラーリング判定部４２は、開示の技術の特定部の一例である。
【００６３】
基本周期設定部３６は、キュー測定部３８とミラーリング判定部４２とを周期的に動作させる。本実施形態において、基本周期設定部３６は、１００ｍｓｅｃ毎にキュー測定部３８を動作させ、１，０００ｍｓｅｃ毎にミラーリング判定部４２を動作させる場合を例に説明する。
【００６４】
キュー測定部３８は、基本周期設定部３６によって設定された周期に応じて、仮想スイッチ１６の入力キュー２１のキュー長を測定する。具体的には、キュー測定部３８は、複数の送信元の仮想マシンの各々についての、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシン毎のキュー長を測定する。そして、キュー測定部３８は、測定結果を入力キュー情報として情報記憶部４０に格納する。
【００６５】
また、キュー測定部３８は、基本周期設定部３６によって設定された周期に応じて、仮想スイッチ１６の出力キュー２３のキュー長を測定する。具体的には、キュー測定部３８は、複数の送信先の仮想マシンの各々についての、送信先の仮想マシンの出力キュー２３のキュー長を測定する。そして、キュー測定部３８は、測定結果を出力キュー情報として情報記憶部４０に格納する。
【００６６】
情報記憶部４０には、キュー測定部３８によって得られた測定結果を表す入力キューテーブル及び出力キューテーブルと、ミラーリング対象の仮想マシンの情報を記憶するミラーリング設定テーブルとが格納される。
【００６７】
図１４に、情報記憶部４０に格納される入力キューテーブル５２の一例を示す。入力キューテーブル５２には、キュー測定部３８によって測定された入力キュー情報が時系列に格納される。図１４に示す入力キューテーブル５２には、各周期時刻における入力キュー情報が格納されている。図１４に示す入力キューテーブル５２には、送信元の仮想マシンが仮想マシンＶＭ１，仮想マシンＶＭ２，仮想マシンＶＭ３，…，仮想マシンＶＭｎである場合を例に示す。また、図１４に示す入力キューテーブル５２には、送信先の仮想マシンが仮想マシンＶＭ４，仮想マシンＶＭ５，仮想マシンＶＭ６である場合を例に示す。
【００６８】
また、図１５に、情報記憶部４０に格納される出力キューテーブル５４の一例を示す。出力キューテーブル５４には、キュー測定部３８によって測定された出力キュー情報が時系列に格納される。図１５に示す出力キューテーブル５４には、各周期時刻における出力キュー情報が格納されている。図１５に示す出力キューテーブル５４には、送信先の仮想マシンが仮想マシンＶＭ４，仮想マシンＶＭ５，仮想マシンＶＭ６，…，仮想マシンＶＭｍである場合を例に示す。
【００６９】
また、図１６に、情報記憶部４０に格納されるミラーリング設定テーブル５６の一例を示す。ミラーリング設定テーブル５６には、送信元の仮想マシンと送信先の仮想マシンとの組の各々について、ミラーリングの開始又はミラーリングの停止を表す情報が格納されている。送信元の仮想マシンと送信先の仮想マシンとの組に対応する項目が１の場合には、ミラーリングの開始を表し、０の場合にはミラーリングの停止を表す。図１６に示すミラーリング設定テーブル５６には、送信元の仮想マシンが仮想マシンＶＭ１，仮想マシンＶＭ２，仮想マシンＶＭ３，…，仮想マシンＶＭｎである場合を例に示す。また、図１６に示すミラーリング設定テーブル５６には、送信先の仮想マシンが仮想マシンＶＭ４，仮想マシンＶＭ５，仮想マシンＶＭ６である場合を例に示す。
【００７０】
ミラーリング判定部４２は、基本周期設定部３６によって設定された周期に応じて、情報記憶部４０から、入力キュー情報の時系列と出力キュー情報の時系列とを読み出す。
【００７１】
次に、ミラーリング判定部４２は、入力キュー情報の時系列に基づいて、入力キュー２１に含まれる送信先の仮想マシンのキュー長が第１閾値以上か否かを判定する。
【００７２】
なお、ミラーリング判定部４２は、情報記憶部４０の入力キューテーブル５２に格納された入力キュー情報に基づいて、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのキュー長が第１閾値以上であるか否かを判定する。第１閾値は予め設定される。本実施形態では、第１閾値としてキュー長１００を用いる。
【００７３】
また、キュー長が第１閾値以上であるか否かを判定する場合、ミラーリング判定部４２は、読み出した入力キュー情報の時系列に含まれる何れかの入力キュー情報に基づいて、送信先の仮想マシンのキュー長が第１閾値以上であるか否かを判定する。本実施形態では、最新の入力キュー情報に基づいて、送信先の仮想マシンのキュー長が第１閾値以上であるか否かを判定する場合を例に説明する。
【００７４】
次に、ミラーリング判定部４２は、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのキュー長の時間的推移と送信先の仮想マシンの出力キュー２３のキュー長の時間的推移との相関係数を求める。
【００７５】
具体的には、ミラーリング判定部４２は、入力キュー情報及び出力キュー情報の時系列に基づいて、例えば以下の式（１）に従って、相関係数を求める。なお、相関係数は、開示の技術の相関の値の一例である。
【００７６】
【数１】
0006642196.tif 000002
【００７７】
なお、上記式（１）のｉは時刻を表し、ｎは予め設定された時間区間を表す。本実施形態では１，０００ｍｓｅｃ毎にミラーリングの判定が行われるため、ｎは１，０００ｍｓｅｃとなる。ｘｉは、時刻ｉに測定された、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのキュー長を表し、ｙｉは、時刻ｉに測定された、送信先の仮想マシンの出力キュー２３のキュー長を表す。なお、相関の値は上記（１）式に示す相関係数の例に限定されない。
【００７８】
次に、ミラーリング判定部４２は、求められた相関係数が、第２閾値より大きいか否かを判定する。第２閾値は予め設定される。本実施形態では、第２閾値として０．７を用いる。
【００７９】
そして、ミラーリング判定部４２は、送信元の仮想マシンの入力キュー２１に含まれる、送信先の仮想マシンのキュー長の増加率を算出する。具体的には、ミラーリング判定部４２は、一定期間の送信元の仮想マシンの入力キュー２１に含まれる、送信先の仮想マシンのキュー長の増加率を求める。なお、本実施形態では、ミラーリング判定部４２を動作させる周期である１，０００ｍｓｅｃを一定期間とする。また、キュー長の増加率としては、ｙをキュー長、ｘを時間とした場合、近似式ｙ＝ａｘ＋ｂを求め、ａを増加率として算出する。なお、ｂはａと共に求められる定数である。
【００８０】
次に、ミラーリング判定部４２は、求められた増加率が第３閾値以下であるか否かを判定する。第３閾値は予め設定される。本実施形態では、第３閾値として１を用いる。
【００８１】
そして、ミラーリング判定部４２は、送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定する。
【００８２】
具体的には、ミラーリング判定部４２は、入力キュー２１のキュー長が第１閾値以上であり、かつ求められた相関係数が第２閾値以下である送信元の仮想マシンと送信先の仮想マシンとの組を、ミラーリング対象として特定する。相関係数が第２閾値以下の場合、仮想マシン間の通信が低速で、送信元の仮想マシンの入力キュー２１に含まれる、送信先の仮想マシンのキュー長が増加していると判断される。
【００８３】
また、ミラーリング判定部４２は、入力キュー２１のキュー長が第１閾値以上であり、求められた相関係数が第２閾値より大きく、かつ求められた増加率が第３閾値以下である送信元の仮想マシンと送信先の仮想マシンとの組を、ミラーリング対象として特定する。増加率が第３閾値以下の場合、トラフィック量が多く、入力キュー２１のキュー長が継続的に閾値を超えているため、低速な仮想マシン間の通信により入力キュー２１のキュー長が増加していると判断される。一方、増加率が第３閾値より大きい場合は、送信先の仮想マシンの輻輳により入力キュー２１のキュー長が増加していると判断され、低速な仮想マシン間の通信が要因でキュー長が増加しているとは判断されない。
【００８４】
そして、ミラーリング判定部４２は、ミラーリング対象の特定結果に応じて、情報記憶部４０のミラーリング設定テーブル５６を更新する。
【００８５】
ミラーリング設定部４４は、情報記憶部４０のミラーリング設定テーブル５６から情報を読み出し、ミラーリング対象として特定された送信元の仮想マシンと送信先の仮想マシンとの間の通信に対し、ミラーリングを設定する。
【００８６】
具体的には、ミラーリング設定部４４は、送信元の仮想マシンをミラーリングする場合、ミラーリング対象として特定された送信元の仮想マシンと送信先の仮想マシンとの組に基づき、当該送信元の仮想マシンの入力キュー２１の送信先の仮想マシンで論理和を取る。そして、ミラーリング設定部４４は、当該送信元の仮想マシンとの組み合わせでミラーリング対象として特定された送信先の仮想マシンが１つでも存在する場合は、当該送信元の仮想マシンから仮想スイッチ１６へのポートに対し、ミラーリングを設定する。
【００８７】
また、ミラーリング設定部４４は、送信先の仮想マシンをミラーリングする場合、仮想スイッチ１６から当該送信先の仮想マシンへのポートに対し、ミラーリングを設定する。
【００８８】
Ｌ４解析機能部４６は、Ｌ４解析機能を有し、ミラーリング設定部４４によってミラーリングされたパケットを解析する。Ｌ４解析機能部４６は、パケット受信部４８と、セッション管理部５０とを備える。
【００８９】
パケット受信部４８は、情報記憶部４０に格納されるミラーリング設定テーブル５６から、ミラーリング対象の仮想マシンの情報を読み出し、ミラーリング対象の仮想マシン間で送受信されているパケットを受信する。
【００９０】
セッション管理部５０は、パケット受信部４８によって受信されたパケットに基づいて、仮想マシン間の通信を解析する。
【００９１】
次に、図１７〜図１９を参照して、解析装置３０の処理を具体的に説明する。
【００９２】
キュー測定部３８は、基本周期設定部３６によって設定された周期である１００ｍｓｅｃ毎に、入力キュー２１に含まれる送信先の仮想マシン毎のキュー長及び出力キュー２３のキュー長を測定する。キュー測定部３８による測定処理では、図１７に示すように、キュー測定部３８は、送信元の仮想マシン毎の入力キュー２１内での送信先の仮想マシン毎のキュー長（ｑ１４，ｑ１５，ｑ１６，ｑ２４，ｑ２５，ｑ２６，ｑ３４，ｑ３５，ｑ３６）。また、キュー測定部３８は、送信先の仮想マシン毎の出力キュー２３のキュー長（ｑ４，ｑ５，ｑ６）を測定する。
【００９３】
そして、キュー測定部３８は、入力キュー２１のキュー長の測定結果を、情報記憶部４０の入力キューテーブル５２へ格納する。また、キュー測定部３８は、出力キュー２３のキュー長の測定結果を、情報記憶部４０の出力キューテーブル５４へ格納する。
【００９４】
ミラーリング判定部４２は、基本周期設定部３６によって設定された周期である１０００ｍｓｅｃ毎に、情報記憶部４０から入力キュー情報の時系列と出力キュー情報の時系列とを読み出す。
【００９５】
例えば、ミラーリング判定部４２は、入力キューテーブル５２から、送信元の仮想マシンＶＭ１の入力キュー２１に含まれる、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ１４、ｑ１５、ｑ１６の時系列を読み出す。また、ミラーリング判定部４２は、入力キューテーブル５２から、送信元の仮想マシンＶＭ２の入力キュー２１に含まれる、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ２４、ｑ２５、ｑ２６の時系列を読み出す。また、ミラーリング判定部４２は、入力キューテーブル５２から、送信元の仮想マシンＶＭ３の入力キュー２１に含まれる、送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ３４、ｑ３５、ｑ３６の時系列を読み出す。
【００９６】
また、ミラーリング判定部４２は、情報記憶部４０の出力キューテーブル５４から、出力キュー２３の仮想マシンＶＭ４のキュー長ｑ４、仮想マシンＶＭ５のキュー長ｑ５、及び仮想マシンＶＭ６のキュー長ｑ６の時系列を読み出す。
【００９７】
そして、ミラーリング判定部４２は、読み出した最新の入力キュー２１のキュー長に基づいて、送信先の仮想マシン毎のキュー長が１００以上であるか否かを判定する。
【００９８】
具体的には、ミラーリング判定部４２は、図１８に示すように、送信先の仮想マシン毎のキュー長（ｑ１４，ｑ１５，ｑ１６，ｑ２４，ｑ２５，ｑ２６，ｑ３４，ｑ３５，ｑ３６）が１００以上であるか否かを判定する。判定の結果、図１８に示すように、ｑ１６とｑ２５とｑ３４とが１００以上であることがわかる。
【００９９】
次に、ミラーリング判定部４２は、入力キュー２１に含まれる送信先の仮想マシンのキュー長の時間的推移と、送信先の仮想マシンの出力キュー２３のキュー長の時間的推移との相関係数を求める。
【０１００】
仮想マシンＶＭ１の入力キュー２１内の送信先の仮想マシンＶＭ４のキュー長の時間的推移と仮想マシンＶＭ４の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が１と算出されたとする。
【０１０１】
【数２】
0006642196.tif 000003
【０１０２】
仮想マシンＶＭ１の入力キュー２１内の送信先の仮想マシンＶＭ５のキュー長の時間的推移と仮想マシンＶＭ５の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が０．２と算出されたとする。
【０１０３】
【数３】
0006642196.tif 000004
【０１０４】
仮想マシンＶＭ１の入力キュー２１内の送信先の仮想マシンＶＭ６のキュー長の時間的推移と仮想マシンＶＭ６の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が１と算出されたとする。
【０１０５】
【数４】
0006642196.tif 000005
【０１０６】
仮想マシンＶＭ２の入力キュー２１内の送信先の仮想マシンＶＭ４のキュー長の時間的推移と仮想マシンＶＭ４の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が１と算出されたとする。
【０１０７】
【数５】
0006642196.tif 000006
【０１０８】
仮想マシンＶＭ２の入力キュー２１内の送信先の仮想マシンＶＭ５のキュー長の時間的推移と仮想マシンＶＭ５の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が１と算出されたとする。
【０１０９】
【数６】
0006642196.tif 000007
【０１１０】
仮想マシンＶＭ２の入力キュー２１内の送信先の仮想マシンＶＭ６のキュー長の時間的推移と仮想マシンＶＭ６の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が０．２と算出されたとする。
【０１１１】
【数７】
0006642196.tif 000008
【０１１２】
仮想マシンＶＭ３の入力キュー２１内の送信先の仮想マシンＶＭ４のキュー長の時間的推移と仮想マシンＶＭ４の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が０．２と算出されたとする。
【０１１３】
【数８】
0006642196.tif 000009
【０１１４】
仮想マシンＶＭ３の入力キュー２１内の送信先の仮想マシンＶＭ５のキュー長の時間的推移と仮想マシンＶＭ５の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が０．２と算出されたとする。
【０１１５】
【数９】
0006642196.tif 000010
【０１１６】
仮想マシンＶＭ３の入力キュー２１内の送信先の仮想マシンＶＭ６のキュー長の時間的推移と仮想マシンＶＭ６の出力キュー２３のキュー長の時間的推移との相関係数は、以下の式に従って算出される。例えば、相関係数が０．３と算出されたとする。
【０１１７】
【数１０】
0006642196.tif 000011
【０１１８】
上記のように算出された各相関係数を図１９に示す。上記図１８及び図１９に示すように、入力キュー２１内の送信先の仮想マシン毎のキュー長が１００以上であり、かつ相関係数が０．７以下であるのは、送信元の仮想マシンＶＭ３と送信先の仮想マシンＶＭ４の組であることがわかる。
【０１１９】
次に、ミラーリング判定部４２は、一定期間において、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのキュー長の増加率を算出する。
【０１２０】
例えば、ミラーリング判定部４２は、仮想マシンＶＭ１の入力キュー２１内の送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ１４、ｑ１５、ｑ１６の各々の増加率を算出する。また、ミラーリング判定部４２は、仮想マシンＶＭ２の入力キュー２１内の送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ２４、ｑ２５、ｑ２６の各々の増加率を算出する。また、ミラーリング判定部４２は、仮想マシンＶＭ３の入力キュー２１内の送信先の仮想マシンＶＭ４、ＶＭ５、ＶＭ６のキュー長ｑ３４、ｑ３５、ｑ３６の各々の増加率を算出する。
【０１２１】
次に、ミラーリング判定部４２は、算出した増加率が１以下であるか否かを判定する。上記図１８、図１９、及び図２０に示すように、送信先の仮想マシン毎のキュー長が１００以上であり、かつ相関係数が０．７より大きく、かつ増加率が１以下であるのは、送信元の仮想マシンＶＭ１と送信先の仮想マシンＶＭ６の組であることがわかる。
【０１２２】
次に、ミラーリング判定部４２は、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシン毎のキュー長が１００以上であり、かつ相関係数が０．７以下である送信元の仮想マシンと送信先の仮想マシンとの組を、ミラーリング対象として特定する。
【０１２３】
図２１では、入力キュー２１に含まれる送信先の仮想マシン毎のキュー長が１００以上であり、かつ相関係数が０．７以下である送信元の仮想マシンと送信先の仮想マシンとの組は、仮想マシンＶＭ３と仮想マシンＶＭ４との組である。そのため、ミラーリング判定部４２は、仮想マシンＶＭ３と仮想マシンＶＭ４との組をミラーリング対象として特定する。
【０１２４】
ミラーリング判定部４２は、入力キュー２１に含まれる送信先の仮想マシンのキュー長が１００以上であり、相関係数が０．７より大きく、キュー長の増加率が１以下の送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定する。
【０１２５】
図２１では、入力キュー２１に含まれる送信先の仮想マシンのキュー長が１００以上であり、かつ相関係数が０．７より大きく、かつキュー長の増加率が１以下の送信元の仮想マシンと送信先の仮想マシンとの組は、仮想マシンＶＭ１、ＶＭ６の組である。そのため、ミラーリング判定部４２は、仮想マシンＶＭ１と仮想マシンＶＭ６との組をミラーリング対象として特定する。
【０１２６】
なお、上記説明では、送信元仮想マシンと送信先仮想マシンとの複数の組の各々について、キュー長の相関係数を求め、かつ送信先の仮想マシンのキュー長の増加率を算出する場合を例に説明したが、これに限定されるものではない。例えば、上記図１９に示すように、入力キュー２１に含まれる送信先の仮想マシンのキュー長が第１閾値以上と判定された仮想マシンの組についてのみ、相関係数を求めてもよい（図１９のドットによる網掛け及び斜線による網掛け部分）。また、上記図２０に示すように、送信先の仮想マシンのキュー長が第１閾値以上と判定され、かつ相関係数が閾値より大きいと判定された仮想マシンの組についてのみ、送信先の仮想マシンのキュー長の増加率を算出してもよい（図２０のドットによる網掛け部分）。
【０１２７】
また、ミラーリング判定部４２は、ミラーリング対象の特定結果に応じて、情報記憶部４０のミラーリング設定テーブル５６を更新する。
【０１２８】
ミラーリング設定部４４は、ミラーリング判定部４２によってミラーリング対象として特定された、送信元の仮想マシンと送信先の仮想マシンとの組に基づいて、送信元の仮想マシンと送信先の仮想マシンとに対してミラーリングの設定を行う。
【０１２９】
具体的には、ミラーリング設定テーブル５６において、送信元の仮想マシンに対し、通信が低速と判断された送信先の仮想マシンが１つでも存在する場合、当該送信元の仮想マシンから仮想スイッチ１６へのポートがミラーリング設定される。例えば、図２１に示すように、送信元の仮想マシンＶＭ１から仮想スイッチ１６へのポートと送信元の仮想マシンＶＭ３から仮想スイッチ１６へのポートとがミラーリング設定される。
【０１３０】
また、ミラーリング設定テーブル５６において、送信元の仮想マシンに対して、低速と判断された送信先の仮想マシンが１つでも存在する場合は、仮想スイッチ１６から当該送信先の仮想マシンへのポートがミラーリング設定される。例えば、図２１に示すように、仮想スイッチ１６から送信元の仮想マシンＶＭ４へのポートと仮想スイッチ１６から送信元の仮想マシンＶＭ６へのポートとがミラーリング設定される。
【０１３１】
そして、パケット受信部４８は、仮想マシンＶＭ１、仮想マシンＶＭ６、仮想マシンＶＭ３、及び仮想マシンＶＭ４の各々のポートで送受信されているパケットを受信する。セッション管理部５０は、パケット受信部４８によって受信されたパケットに基づいて、仮想マシン間の通信を解析する。
【０１３２】
解析装置３０は、例えば図２２に示すコンピュータ８０で実現することができる。コンピュータ８０はＣＰＵ８１、一時記憶領域としてのメモリ８２、及び不揮発性の記憶部８３を備える。また、コンピュータ８０は、入出力Ｉ／Ｆ８４と、記録媒体８９に対するデータの読み込み及び書き込みを制御するｒｅａｄ／ｗｒｉｔｅ（Ｒ／Ｗ）部８５と、インターネット等のネットワークに接続されるネットワークＩ／Ｆ８６とを備える。ＣＰＵ８１、メモリ８２、記憶部８３、入出力Ｉ／Ｆ８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続される。
【０１３３】
記憶部８３は、Hard Disk Drive（ＨＤＤ）、solid state drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部８３には、コンピュータ８０を解析装置３０として機能させるための解析プログラム９０が記憶される。解析プログラム９０は、基本周期設定プロセス９１と、キュー測定プロセス９２と、ミラーリング判定プロセス９３と、ミラーリング設定プロセス９４と、パケット受信プロセス９５と、セッション管理プロセス９６とを有する。また、記憶部８３は、情報記憶部４０の各々を構成する情報が記憶される情報記憶領域９７を有する。
【０１３４】
ＣＰＵ８１は、解析プログラム９０を記憶部８３から読み出してメモリ８２に展開し、解析プログラム９０の各々が有するプロセスを順次実行する。なお、本実施形態では、ＣＰＵ８１は複数のＣＰＵを含んで構成されている。解析装置３０は、１つの仮想マシンとして機能する。そのため、仮想システムのプログラム（図示省略）が記憶部８３から読み出されてメモリ８２に展開され、仮想システムが設定される。そして、解析装置３０は、設定された仮想システム内の１つの仮想マシンとして設定される。
【０１３５】
ＣＰＵ８１は、基本周期設定プロセス９１を実行することで、図１２に示す基本周期設定部３６として動作する。また、ＣＰＵ８１は、キュー測定プロセス９２を実行することで、図１２に示すキュー測定部３８として動作する。また、ＣＰＵ８１は、ミラーリング判定プロセス９３を実行することで、図１２に示すミラーリング判定部４２として動作する。また、ＣＰＵ８１は、ミラーリング設定プロセス９４を実行することで、図１２に示すミラーリング設定部４４として動作する。また、ＣＰＵ８１は、パケット受信プロセス９５を実行することで、図１２に示すパケット受信部４８として動作する。また、ＣＰＵ８１は、セッション管理プロセス９６を実行することで、図１２に示すセッション管理部５０として動作する。
【０１３６】
このように、解析プログラム９０を実行したコンピュータ８０が、解析装置３０として機能することになる。
【０１３７】
なお、解析プログラム９０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【０１３８】
次に、図２３〜図３３を参照して、本実施形態に係る解析装置３０の作用について説明する。
【０１３９】
図２３は、解析装置３０で実行される解析処理のフローの一例を示す。
【０１４０】
コンピュータ８０によって、複数の仮想マシンと仮想スイッチとハイパーバイザーとを備える仮想システムが構築され、仮想マシン間の通信が行われているときに、図２３に示す解析処理ルーチンが実行される。
【０１４１】
＜解析処理ルーチン＞
【０１４２】
ステップＳ１０において、仮想スイッチ管理機能部３２は、仮想マシン間の通信のうち、ミラーリング対象の仮想マシンの組を特定する。そして、仮想スイッチ管理機能部３２は、ミラーリング対象として特定された仮想マシンの組に基づいて、仮想マシンのポート通信に対してミラーリングを行う。ステップＳ１０は、図２４に示す仮想スイッチ管理処理ルーチンによって実現される。
【０１４３】
ステップＳ１２において、基本周期設定部３６は、１００ｍｓｅｃ待機するようにキュー測定部３８とミラーリング判定部４２とを制御する。
【０１４４】
図２４に示す仮想スイッチ管理処理ルーチンについて説明する。
【０１４５】
ステップＳ２０において、キュー測定部３８は、複数の送信元の仮想マシンの各々についての、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシン毎のキュー長を測定する。また、キュー測定部３８は、複数の送信先の仮想マシンの各々についての、送信先の仮想マシンの出力キュー２３の長さを測定する。ステップＳ２０は、図２５に示す入出力キュー測定処理ルーチンによって実現される。
【０１４６】
図２５に示す入出力キュー測定処理ルーチンについて説明する。
【０１４７】
ステップＳ３０において、キュー測定部３８は、複数の送信元の仮想マシンの各々についての、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシン毎のキュー長を測定する。ステップＳ３０は、図２６に示す入力キュー算出処理ルーチンによって実現される。
【０１４８】
ステップＳ３２において、キュー測定部３８は、複数の送信先の仮想マシンの各々についての、送信先の仮想マシンの出力キュー２３の長さを測定して、入出力キュー測定処理ルーチンを終了する。ステップＳ３２は、図２７に示す出力キュー算出処理ルーチンによって実現される。
【０１４９】
図２６に示す入力キュー算出処理ルーチンについて説明する。
【０１５０】
ステップＳ４０において、キュー測定部３８は、１つの送信元の仮想マシンを処理対象に設定する。
【０１５１】
ステップＳ４２において、キュー測定部３８は、上記ステップＳ４０で設定された送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのうち、１つの送信先の仮想マシンを処理対象に設定する。
【０１５２】
ステップＳ４４において、キュー測定部３８は、上記ステップＳ４０で設定された送信元の仮想マシンの入力キュー２１において、上記ステップＳ４２で設定された送信先の仮想マシン宛のキュー長を算出する。
【０１５３】
ステップＳ４６において、キュー測定部３８は、上記ステップＳ４４で算出されたキュー長を、情報記憶部４０の入力キューテーブル５２に格納する。
【０１５４】
ステップＳ４８において、キュー測定部３８は、上記ステップＳ４０で設定された送信元の仮想マシンの入力キュー２１に含まれる全ての送信先の仮想マシンについて、上記ステップＳ４２〜ステップＳ４６の処理を実行したか否かを判定する。全ての送信先の仮想マシンについて、上記ステップＳ４２〜ステップＳ４６の処理を実行した場合には、ステップＳ５０へ進む。一方、上記ステップＳ４２〜ステップＳ４６の処理を実行していない送信先の仮想マシンが存在する場合には、ステップＳ４２へ戻る。
【０１５５】
ステップＳ５０において、キュー測定部３８は、全ての送信元の仮想マシンについて、上記ステップＳ４０〜ステップＳ４８の処理を実行したか否かを判定する。全ての送信元の仮想マシンについて、上記ステップＳ４２〜ステップＳ４８の処理を実行した場合には、入力キュー算出処理ルーチンを終了する。一方、上記ステップＳ４０〜ステップＳ４８の処理を実行していない送信元の仮想マシンが存在する場合には、ステップＳ４０へ戻る。
【０１５６】
図２７に示す出力キュー算出処理ルーチンについて説明する。
【０１５７】
ステップＳ６０において、キュー測定部３８は、１つの送信先の仮想マシンを処理対象に設定する。
【０１５８】
ステップＳ６２において、キュー測定部３８は、上記ステップＳ６０で設定された送信先の仮想マシンの出力キュー２３のキュー長を算出する。
【０１５９】
ステップＳ６４において、キュー測定部３８は、上記ステップＳ６２で算出されたキュー長を、情報記憶部４０の出力キューテーブル５４に格納する。
【０１６０】
ステップＳ６６において、キュー測定部３８は、全ての送信先の仮想マシンについて、上記ステップＳ６０〜ステップＳ６４の処理を実行したか否かを判定する。全ての送信先の仮想マシンについて、上記ステップＳ６０〜ステップＳ６４の処理を実行した場合には、出力キュー算出処理ルーチンを終了する。一方、上記ステップＳ６０〜ステップＳ６４の処理を実行していない送信先の仮想マシンが存在する場合には、ステップＳ６０へ戻る。
【０１６１】
次に、図２４に示す仮想スイッチ管理処理ルーチンに戻り、ステップＳ２２において、基本周期設定部３６は、入出力キュー測定処理の呼び出し回数が所定回数に到達したか否かを判定する。本実施形態では、１，０００ｍｓｅｃ毎にミラーリングの設定の判定処理を行うため、呼び出し回数が１０回に到達したか否かを判定する。呼び出し回数が１０回に到達した場合には、ステップＳ２４へ進む。一方、呼び出し回数が１０回に到達していない場合には、ステップＳ２６へ進み、基本周期設定部３６は、呼び出し回数を更新して仮想スイッチ管理処理ルーチンを終了する。
【０１６２】
ステップＳ２４において、ミラーリング判定部４２は、情報記憶部４０から入力キュー情報の時系列と出力キュー情報の時系列とを読み出し、ミラーリング対象の仮想マシンの組を特定する。ステップＳ２４は、図２８に示すミラーリング設定判定処理ルーチンによって実現される。
【０１６３】
ステップＳ２８において、基本周期設定部３６は、呼び出し回数をリセットして仮想スイッチ管理処理ルーチンを終了する。
【０１６４】
図２８に示すミラーリング設定判定処理ルーチンについて説明する。
【０１６５】
ステップＳ７０において、ミラーリング判定部４２は、情報記憶部４０から入力キュー情報の時系列と出力キュー情報の時系列とを読み出す。そして、ミラーリング判定部４２は、入力キュー情報の時系列と出力キュー情報の時系列とに基づいて、ミラーリング対象の仮想マシンの組を特定する。ステップＳ７０は、図２９に示すキュー長相関係数算出処理ルーチンによって実現される。
【０１６６】
ステップＳ７２において、ミラーリング設定部４４は、上記ステップＳ７０でミラーリング対象として特定された送信元の仮想マシンと送信先の仮想マシンとの組に基づいて、仮想マシンのポートに対し、ミラーリングを設定する。ステップＳ７２は、図３０に示すミラーリング設定処理ルーチンによって実現される。
【０１６７】
ステップＳ７４において、Ｌ４解析機能部４６は、上記ステップＳ７２でミラーリングが設定されたポートの通信に対してミラーリングを行う。
【０１６８】
図２９に示すキュー長相関係数算出処理ルーチンについて説明する。
【０１６９】
ステップＳ８０において、ミラーリング判定部４２は、１つの送信元の仮想マシンを処理対象に設定する。
【０１７０】
ステップＳ８２において、ミラーリング判定部４２は、上記ステップＳ８０で設定された送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのうち、１つの送信先の仮想マシンを処理対象に設定する。
【０１７１】
ステップＳ８４において、ミラーリング判定部４２は、入力キューテーブル５２から、上記ステップＳ８０で設定された送信元の仮想マシンの入力キュー２１に含まれる、上記ステップＳ８２で設定された送信先の仮想マシンのキュー長を読み出す。
【０１７２】
ステップＳ８６において、ミラーリング判定部４２は、出力キューテーブル５４から、上記ステップＳ８２で設定された送信先の仮想マシンの出力キュー２３のキュー長を読み出す。
【０１７３】
ステップＳ８８において、ミラーリング判定部４２は、判定周期（ここでは１，０００ｍｓｅｃ）に対応する入力キュー情報及び出力キュー情報、すなわち過去ｎ回分（ここでは１０回分）の入力キュー情報及び出力キュー情報を読み出したか否かを判定する。１，０００ｍｓｅｃに対応する入力キュー情報及び出力キュー情報を読み出した場合には、ステップＳ９０へ進む。一方、１，０００ｍｓｅｃに対応する入力キュー情報及び出力キュー情報を読み出していない場合には、ステップＳ８４へ戻る。
【０１７４】
ステップＳ９０において、ミラーリング判定部４２は、上記ステップＳ８４で読み出された最新のキュー長に基づいて、上記ステップＳ８２で設定された送信先の仮想マシンのキュー長が第１閾値（ここでは１００）以上であるか否かを判定する。キュー長が１００以上である場合には、ステップＳ９２へ進む。一方、キュー長が１００未満である場合には、ステップＳ９４へ進む。
【０１７５】
ステップＳ９２において、ミラーリング判定部４２は、入力キュー情報及び出力キュー情報の時系列に基づいて、上記式（１）に従って相関係数を求める。ステップＳ９２は、図３１に示す相関係数算出処理ルーチンによって実現される。
【０１７６】
図３１に示す相関係数算出処理ルーチンについて説明する。
【０１７７】
ステップＳ１２０において、ミラーリング判定部４２は、入力キュー情報及び出力キュー情報の時系列に基づいて、上記式（１）に従って、相関係数を求める。
【０１７８】
ステップＳ１２２において、ミラーリング判定部４２は、上記ステップＳ１２０で求められた相関係数が、第２閾値（ここでは０．７）以下であるか否かを判定する。相関係数が０．７以下である場合には、ステップＳ１２４へ進む。一方、相関係数が、０．７より大きい場合には、ステップＳ１２６へ進む。
【０１７９】
ステップＳ１２４において、ミラーリング判定部４２は、情報記憶部４０に格納されるミラーリング設定テーブル５６を更新する。ステップＳ１２４は、図３２に示すデータ設定処理ルーチンによって実現される。
【０１８０】
図３２に示すデータ設定処理ルーチンについて説明する。
【０１８１】
ステップＳ１４０において、ミラーリング判定部４２は、ミラーリング設定テーブル５６に対し、上記ステップＳ８０で設定された送信元の仮想マシン及び上記ステップＳ８２で設定された送信先の仮想マシンの組に対応する項目を１に更新する。そして、ミラーリング判定部４２は、データ設定処理ルーチンを終了する。
【０１８２】
次に、相関係数算出処理ルーチンへ戻り、ステップＳ１２６において、ミラーリング判定部４２は、一定期間における、送信元の仮想マシンの入力キュー２１に含まれる送信先の仮想マシンのキュー長の増加率を算出する。ステップＳ１２６は、図３３に示す増加率算出処理ルーチンによって実現される。
【０１８３】
図３３に示す増加率算出処理ルーチンについて説明する。
【０１８４】
ステップＳ１３０において、ミラーリング判定部４２は、一定期間における、上記ステップＳ８０で設定された送信元の仮想マシンの入力キュー２１に含まれる上記ステップＳ８２で設定された送信先の仮想マシン宛のキュー長の増加率を算出する。
【０１８５】
ステップＳ１３２において、ミラーリング判定部４２は、上記ステップＳ１３０で算出された増加率が１以下であるか否かを判定する。増加率が１以下である場合には、ステップＳ１３４へ進む。一方、増加率が１より大きい場合には、増加率算出処理ルーチンを終了する。
【０１８６】
ステップＳ１３４において、ミラーリング判定部４２は、情報記憶部４０に格納されるミラーリング設定テーブル５６を更新する。ステップＳ１２４は、図３２に示すデータ設定処理ルーチンによって実現される。
【０１８７】
次に、図２９に示すキュー長相関係数算出処理ルーチンに戻り、ステップＳ９４において、ミラーリング判定部４２は、全ての送信先の仮想マシンについて、上記ステップＳ８２〜ステップＳ９２の処理を実行したか否かを判定する。全ての送信先の仮想マシンについて、上記ステップＳ８２〜ステップＳ９２の処理を実行した場合には、ステップＳ９６へ進む。一方、上記ステップＳ８２〜ステップＳ９２の処理を実行していない送信先の仮想マシンが存在する場合には、ステップＳ８２へ戻る。
【０１８８】
ステップＳ９６において、ミラーリング判定部４２は、全ての送信元の仮想マシンについて、上記ステップＳ８０〜ステップＳ９４の処理を実行したか否かを判定する。全ての送信元の仮想マシンについて、上記ステップＳ８０〜ステップＳ９４の処理を実行した場合には、キュー長相関係数算出処理ルーチンを終了する。一方、上記ステップＳ８０〜ステップＳ９４の処理を実行していない送信元の仮想マシンが存在する場合には、ステップＳ８０へ戻る。
【０１８９】
次に図２８に示すミラーリング設定判定処理ルーチンに戻り、ステップＳ７２においてミラーリング設定部４４は、ミラーリング対象として特定された送信元の仮想マシンと送信先の仮想マシンとの組に基づき、仮想マシンのポートに対してミラーリングを設定する。
【０１９０】
図３０に示すミラーリング設定処理ルーチンについて説明する。
【０１９１】
ステップＳ１００において、ミラーリング設定部４４は、前回の処理でミラーリングが設定された仮想マシンのポートのミラーリング設定を解除する。
【０１９２】
ステップＳ１０２において、ミラーリング設定部４４は、１つの送信元の仮想マシンを処理対象に設定する。
【０１９３】
ステップＳ１０４において、ミラーリング設定部４４は、ミラーリング設定テーブル５６に基づいて、上記ステップＳ１０２で設定された送信元の仮想マシンに対する、送信先の仮想マシンの項目の値の論理和を計算する。具体的には、上記ステップＳ１０２で設定された送信元の仮想マシンに対する、送信先の仮想マシンの項目に格納された１又は０の値を用いて、送信先の各仮想マシンに対応する項目の値の論理和を計算する。
【０１９４】
ステップＳ１０６において、上記ステップＳ１０４で計算された論理和の値が１であるか否かを判定する。論理和の値が１である場合には、ステップＳ１０８へ進む。一方、論理和の値が１でない場合には、ステップＳ１１２へ進む。
【０１９５】
ステップＳ１０８において、ミラーリング設定部４４は、上記ステップＳ１０２で設定された送信元の仮想マシンのポートに対し、ミラーリングを設定する。
【０１９６】
ステップＳ１１０で、ミラーリング設定部４４は、ステップＳ１０２で設定された送信元の仮想マシンに対する、送信先の仮想マシンの項目のうち、ミラーリング設定テーブル５６の項目の値が１の送信先の仮想マシンのポートに対し、ミラーリングを設定する。
【０１９７】
ステップＳ１１２において、ミラーリング設定部４４は、全ての送信元の仮想マシンについて、上記ステップＳ１０２〜ステップＳ１１０の処理を実行したか否かを判定する。全ての送信先の仮想マシンについて、上記ステップＳ１０２〜ステップＳ１１０の処理を実行した場合には、ミラーリング設定処理ルーチンを終了する。一方、上記ステップＳ１０２〜ステップＳ１１４の処理を実行していない送信先の仮想マシンが存在する場合には、ステップＳ１０２へ戻る。
【０１９８】
以上説明したように、本実施形態の解析装置３０は、入力キュー２１に含まれる送信先の仮想マシン毎のキュー長の時間的推移と送信先の仮想マシンの出力キュー２３の長さの時間的推移との相関係数を求める。また、解析装置３０は、相関係数が第２閾値より大きい送信元の仮想マシンと送信先の仮想マシンとの組のうち、送信先の仮想マシンのキュー長の増加率が第３閾値以下である送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定する。また、解析装置３０は、相関係数が第２閾値以下である送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定する。これにより、仮想マシンの間の通信速度が低速である送信元の仮想マシンと送信先の仮想マシンとの組をミラーリング対象として特定することができる。
【０１９９】
また、本実施形態の解析装置３０では、仮想マシンの間の低速な通信が判別されるため、同一ソケット内のＣＰＵコア間の通信なのか、異なるソケット間のＣＰＵコア間の通信なのか判定することができる。また、仮想マシンの間の低速な通信が増減した場合も、動的にミラーリングの設定をすることが可能になる。また、輻輳が発生しそうな仮想マシンの間の通信を特定することができる。
【０２００】
次に、実施形態の変形例を説明する。
【０２０１】
実施形態では、コンピュータ８０によって設定された仮想システム内において、１つの仮想マシンとして解析装置３０が実現される場合を例に説明したが、これに限定されるものではない。例えば、解析装置３０が１つのコンピュータによって実現され、解析装置３０は、他のコンピュータによって実現された仮想システム内の仮想マシン間の通信を解析するようにしてもよい。
【０２０２】
また、実施形態では、ミラーリング対象として特定された、送信元の仮想マシンと送信先の仮想マシンとの組のポートに対し、ミラーリングを設定する場合を例に説明したが、これに限定されるものではない。例えば、送信元の仮想マシンと送信先の仮想マシンとの組の少なくとも一方の仮想マシンのポートに対し、ミラーリングを設定するようにしてもよい。
【０２０３】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する、
処理をコンピュータに実行させる解析プログラム。
【０２０４】
（付記２）
前記送信元仮想マシンと前記送信先仮想マシンとの複数の組の各々について、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上である場合に、前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値を求め、
前記相関の値が第２閾値より大きい場合に、前記入力キュー情報の前記キュー長の増加率を算出し、
前記入力キュー情報の前記キュー長が第１閾値以上であり、前記相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記入力キュー情報の前記キュー長が第１閾値以上であり、かつ前記相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する、
処理をコンピュータに実行させる付記１に記載の解析プログラム。
【０２０５】
（付記３）
ミラーリング対象として特定された、前記送信元仮想マシンと前記送信先仮想マシンとの組の少なくとも一方に対し、通信をミラーリングする処理を更に実行させる
付記１又は付記２に記載の解析プログラム。
【０２０６】
（付記４）
前記入力キュー情報の時系列に含まれる最新の前記キュー長が第１閾値以上である前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関係数を求める処理を更に実行させる
付記１〜付記３の何れか１項に記載の解析プログラム。
【０２０７】
（付記５）
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する特定部
を備えた解析装置。
【０２０８】
（付記６）
前記特定部は、前記送信元仮想マシンと前記送信先仮想マシンとの複数の組の各々について、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上である場合に、前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値を求め、
前記相関の値が第２閾値より大きい場合に、前記入力キュー情報の前記キュー長の増加率を算出し、
前記入力キュー情報の前記キュー長が第１閾値以上であり、前記相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記入力キュー情報の前記キュー長が第１閾値以上であり、かつ前記相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する
付記５に記載の解析装置。
【０２０９】
（付記７）
ミラーリング対象として特定された、前記送信元仮想マシンと前記送信先仮想マシンとの組の少なくとも一方に対し、通信をミラーリングする設定部を更に含む
付記５又は付記６に記載の解析装置。
【０２１０】
（付記８）
前記特定部は、前記入力キュー情報の時系列に含まれる最新の前記キュー長が第１閾値以上である前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関係数を求める
付記５〜付記７の何れか１項に記載の解析装置。
【０２１１】
（付記９）
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する、
処理をコンピュータが実行する解析方法。
【０２１２】
（付記１０）
前記送信元仮想マシンと前記送信先仮想マシンとの複数の組の各々について、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上である場合に、前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値を求め、
前記相関の値が第２閾値より大きい場合に、前記入力キュー情報の前記キュー長の増加率を算出し、
前記入力キュー情報の前記キュー長が第１閾値以上であり、前記相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記入力キュー情報の前記キュー長が第１閾値以上であり、かつ前記相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する、
処理をコンピュータが実行する付記７に記載の解析方法。
【０２１３】
（付記１１）
ミラーリング対象として特定された、前記送信元仮想マシンと前記送信先仮想マシンとの組の少なくとも一方に対し、通信をミラーリングする処理をコンピュータが実行する
付記７又は付記８に記載の解析方法。
【０２１４】
（付記１２）
前記入力キュー情報の時系列に含まれる最新の前記キュー長が第１閾値以上である前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関係数を求める
付記７〜付記９の何れか１項に記載の解析方法。
【０２１５】
（付記１３）
複数の送信元仮想マシンの各々についての、前記送信元仮想マシンの入力キューに含まれる送信先仮想マシン毎のデータの数を表すキュー長に関する入力キュー情報と、複数の送信先仮想マシンの各々についての、前記送信先仮想マシンの出力キューに含まれるデータの数を表すキュー長に関する出力キュー情報とが時系列に記憶された記憶部から、前記入力キュー情報の時系列と前記出力キュー情報の時系列とを読み出し、
前記入力キュー情報の時系列と前記出力キュー情報の時系列とに基づいて、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値より大きく、かつ前記入力キュー情報の前記キュー長の増加率が第３閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組と、
前記送信元仮想マシンの前記入力キュー情報の前記送信先仮想マシンの前記キュー長が第１閾値以上であり、かつ前記入力キュー情報の前記キュー長の時間的推移と、前記出力キュー情報の前記キュー長の時間的推移との相関の値が第２閾値以下である前記送信元仮想マシンと前記送信先仮想マシンとの組とを、ミラーリング対象として特定する、
処理をコンピュータに実行させる解析プログラムを記憶した記憶媒体。
【符号の説明】
【０２１６】
１６   仮想スイッチ
１２   物理コンピュータ
１９   ソケット
２１   入力キュー
２３   出力キュー
３０   解析装置
３２   仮想スイッチ管理機能部
３６   基本周期設定部
３８   キュー測定部
４０   情報記憶部
４２   ミラーリング判定部
４４   ミラーリング設定部
４６   Ｌ４解析機能部
４８   パケット受信部
５０   セッション管理部
５２   入力キューテーブル
５４   出力キューテーブル
５６   ミラーリング設定テーブル
８０   コンピュータ
８１   ＣＰＵ
８２   メモリ
８３   記憶部
８９   記録媒体
９０   解析プログラム
９１   基本周期設定プロセス
９２   キュー測定プロセス
９３   ミラーリング判定プロセス
９４   ミラーリング設定プロセス
９５   パケット受信プロセス
９６   セッション管理プロセス
９７   情報記憶領域
ＶＭ１，ＶＭ２，ＶＭ３，ＶＭ４，ＶＭ５，ＶＭ６  仮想マシン
【図１】
0006642196.tif 000012
【図２】
0006642196.tif 000013
【図３】
0006642196.tif 000014
【図４】
0006642196.tif 000015
【図５】
0006642196.tif 000016
【図６】
0006642196.tif 000017
【図７】
0006642196.tif 000018
【図８】
0006642196.tif 000019
【図９】
0006642196.tif 000020
【図１０】
0006642196.tif 000021
【図１１】
0006642196.tif 000022
【図１２】
0006642196.tif 000023
【図１３】
0006642196.tif 000024
【図１４】
0006642196.tif 000025
【図１５】
0006642196.tif 000026
【図１６】
0006642196.tif 000027
【図１７】
0006642196.tif 000028
【図１８】
0006642196.tif 000029
【図１９】
0006642196.tif 000030
【図２０】
0006642196.tif 000031
【図２１】
0006642196.tif 000032
【図２２】
0006642196.tif 000033
【図２３】
0006642196.tif 000034
【図２４】
0006642196.tif 000035
【図２５】
0006642196.tif 000036
【図２６】
0006642196.tif 000037
【図２７】
0006642196.tif 000038
【図２８】
0006642196.tif 000039
【図２９】
0006642196.tif 000040
【図３０】
0006642196.tif 000041
【図３１】
0006642196.tif 000042
【図３２】
0006642196.tif 000043
【図３３】
0006642196.tif 000044