(57)【要約】【課題】データセンタ内ＬＡＮ等に用いられるトラヒック情報収集装置において、汎用スイッチが有するリソースを有効利用しつつ、必要に応じて高精度なフロー情報を取得できるようにする。【解決手段】ネットワークに配置されフロー情報を収集する複数のスイッチ（６１〜７４）のうち何れかの輻輳を検出する輻輳検出手段（１１１）と、複数のスイッチの残りリソースを確認するリソース確認手段（１１２）と、輻輳検出手段（１１１）が輻輳を検出すると、複数のスイッチ（６１〜７４）に対し、各々の残りリソースに応じて、フロー情報に係るサンプリングレートを設定するサンプリングレート設定手段（１１３）と、複数のスイッチから、各々のフロー情報に含まれるトラヒック情報を収集するトラヒック情報収集手段（１１４）とをトラヒック情報収集装置（１００）に設けた。【選択図】図１
2016146581.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに配置されフロー情報を収集する複数のスイッチのうち何れかの輻輳を検出する輻輳検出手段と、
複数の前記スイッチの残りリソースを確認するリソース確認手段と、
前記輻輳検出手段が前記輻輳を検出すると、複数の前記スイッチに対し、各々の前記残りリソースに応じて、前記フロー情報に係るサンプリングレートを設定するサンプリングレート設定手段と、
複数の前記スイッチから、各々の前記フロー情報に含まれトラヒック量を示すトラヒック情報を収集するトラヒック情報収集手段と
を有することを特徴とするトラヒック情報収集装置。
【請求項２】
収集した前記トラヒック情報に基づいて、前記輻輳の原因となったフローを検出する輻輳原因特定手段
をさらに有することを特徴とする請求項１に記載のトラヒック情報収集装置。
【請求項３】
前記輻輳の原因となったフローの経路を、前記輻輳が検出されたスイッチを迂回するように変更する経路変更手段
をさらに有することを特徴とする請求項２に記載のトラヒック情報収集装置。
【請求項４】
前記サンプリングレート設定手段は、前記経路変更手段によって前記輻輳の原因となったフローの経路が変更されると、複数の前記スイッチに対して、各々の前記サンプリングレートを前記輻輳が検出する前の値に戻す
ことを特徴とする請求項３に記載のトラヒック情報収集装置。
【請求項５】
複数の前記スイッチは、各々が中央処理装置とメモリとを含むものであり、
前記リソース確認手段によって確認される前記残りリソースは、複数の前記スイッチの残りメモリ量と、複数の前記スイッチに含まれる中央処理装置の残り使用率とを少なくとも含む
ことを特徴とする請求項１ないし４の何れか一項に記載のトラヒック情報収集装置。
【請求項６】
前記サンプリングレート設定手段は、各々の前記スイッチにおける前記残り使用率が高いほど、当該スイッチに設定する前記サンプリングレートを高くする
ことを特徴とする請求項５に記載のトラヒック情報収集装置。
【請求項７】
前記サンプリングレート設定手段は、各々の前記スイッチにおける前記残りメモリ量が当該スイッチにおけるフロー情報量以上であるときは、前記残りメモリ量が前記フロー情報量未満であるときよりも、当該スイッチに設定する前記サンプリングレートを高くする
ことを特徴とする請求項５または６に記載のトラヒック情報収集装置。
【請求項８】
ネットワークに配置されフロー情報を収集する複数のスイッチのうち何れかの輻輳を検出する過程と、
複数の前記スイッチの残りリソースを確認する過程と、
前記輻輳を検出すると、複数の前記スイッチに対し、各々の前記残りリソースに応じて、前記フロー情報に係るサンプリングレートを設定する過程と、
複数の前記スイッチから、各々の前記フロー情報に含まれトラヒック量を示すトラヒック情報を収集する過程と
をコンピュータに実行させることを特徴とするトラヒック情報収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内の輻輳の検出に用いて好適なトラヒック情報収集装置およびトラヒック情報収集方法に関する。
【背景技術】
【０００２】
データセンタ等のＬＡＮ（Local Area Network）においては、複数のサーバ機（以下、物理サーバという）と、これら物理サーバ間、あるいは物理サーバとＷＡＮ（広域ネットワーク，Wide Area Network）との間でＩＰパケットを伝送する汎用スイッチと、ＬＡＮ内のトラヒックを制御するトラヒックコントローラとが設けられている。そして、各物理サーバには、一または複数の仮想マシンと、これら仮想マシン間または仮想マシンと汎用スイッチとの間でＩＰパケットを伝送する仮想スイッチとが配置される。
【０００３】
近年の汎用スイッチは、非特許文献１(RFC3954)、ＮｅｔＦｌｏｗ（登録商標）、ｓＦｌｏｗ（登録商標）、ＡｐｐＦｌｏｗ（登録商標）等に規定されているフロー情報をトラヒックコントローラに供給できるものが多い。ここで、「フロー」とは、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号およびプロトコルが同一であるパケット群を指し、「フロー情報」とは、フローの様々なパラメータを示すものである。但し、汎用スイッチ等においては、フロー情報を収集するために全てのＩＰパケットを解析しているわけではなく、解析するＩＰパケットを指定されたサンプリングレートで抽出している。
【０００４】
サンプリングレートは、「解析するパケット数／全パケット数」で表現される。例えば、サンプリングレートが「０．００１」であれば、１０００パケットのうち１パケットのみが解析され、残り９９９パケットは解析されない。従って、サンプリングレートが高いほど高精度なフロー情報が得られる。非特許文献１には、トラヒックコントローラ等がサンプリングレートを汎用スイッチ等に設定し、フロー情報を収集する点が開示されている。また、非特許文献２には、収集したフロー情報に基づいて、輻輳の原因となっているフローを特定する点が開示されている。また、非特許文献３には、ＭＩＢ（Management Information Base）によってトラヒック統計情報を収集する点が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】B. Claise、Cisco Systems NetFlow Services Export Version 9 (RFC3954)、［online］、［平成２７年２月２日検索］、インターネット〈URL：http://tools.ietf.org/pdf/rfc3954.pdf〉
【非特許文献２】川原亮一，他５名、異常トラヒック測定分析手法（NTT技術ジャーナル 2008.3，pp.21-25）、［online］、［平成２７年２月２日検索］、インターネット〈URL：http://www.ntt.co.jp/journal/0803/files/jn200803021.pdf〉
【非特許文献３】McCloghrie，M. Rose、Management Information Base for Network Management of TCP/IP-based internets: MIB-II(RFC1213)、［online］、［平成２７年２月２日検索］、インターネット〈URL：http://tools.ietf.org/pdf/rfc1213.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したサンプリングレートが低すぎると、フロー情報の精度が下がり、非特許文献２の技術を用いて輻輳の原因となっているフローを特定することが困難になる。一方、サンプリングレートを高くすると、確かにフロー情報の精度は向上し、輻輳の原因となっているフローを特定しやすくなる。しかし、これはフロー情報の収集のために汎用スイッチが有するリソース（ＣＰＵの処理時間やメモリ容量）をより多く消費するということであり、汎用スイッチが伝送できる最大データ量が減少し、汎用スイッチが有するリソースを平常時に有効利用できなくなる。
この発明は上述した事情に鑑みてなされたものであり、汎用スイッチが有するリソースを有効利用しつつ、必要に応じて高精度なフロー情報を取得できるトラヒック情報収集装置およびトラヒック情報収集方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため本発明にあっては、下記構成を有することを特徴とする。
請求項１記載のトラヒック情報収集装置にあっては、ネットワークに配置されフロー情報を収集する複数のスイッチのうち何れかの輻輳を検出する輻輳検出手段と、複数の前記スイッチの残りリソースを確認するリソース確認手段と、前記輻輳検出手段が前記輻輳を検出すると、複数の前記スイッチに対し、各々の前記残りリソースに応じて、前記フロー情報に係るサンプリングレートを設定するサンプリングレート設定手段と、複数の前記スイッチから、各々の前記フロー情報に含まれトラヒック量を示すトラヒック情報を収集するトラヒック情報収集手段とを有することを特徴とする。
【０００８】
この構成によれば、輻輳検出手段が何れかのスイッチの輻輳を検出すると、リソース確認手段は複数のスイッチの残りリソースを確認し、サンプリングレート設定手段は各々の残りリソースに応じたサンプリングレートを各スイッチに設定する。これにより、輻輳が生じた際のサンプリングレートを平常時と比較して高くすることができ、トラヒック情報収集手段が各スイッチから収集するトラヒック情報の精度を高めることができ。従って、平常時にはスイッチが有するリソースを有効利用しつつ、輻輳が生じた場合には高精度なフロー情報を取得でき、輻輳の原因となったフローを容易に特定できるようになる。
【０００９】
さらに、請求項２記載の構成にあっては、請求項１に記載のトラヒック情報収集装置において、収集した前記トラヒック情報に基づいて、前記輻輳の原因となったフローを検出する輻輳原因特定手段をさらに有することを特徴とする。
【００１０】
この構成によれば、輻輳の原因となったフローを、輻輳原因特定手段によって自動的に検出することができる。
【００１１】
さらに、請求項３記載の構成にあっては、請求項２に記載のトラヒック情報収集装置において、前記輻輳の原因となったフローの経路を、前記輻輳が検出されたスイッチを迂回するように変更する経路変更手段をさらに有することを特徴とする。
【００１２】
この構成によれば、輻輳の原因となったフローの経路を、輻輳が検出されたスイッチを迂回するように、経路変更手段が自動的に変更することができる。
【００１３】
さらに、請求項４記載の構成にあっては、請求項３に記載のトラヒック情報収集装置において、前記サンプリングレート設定手段は、前記経路変更手段によって前記輻輳の原因となったフローの経路が変更されると、複数の前記スイッチに対して、各々の前記サンプリングレートを前記輻輳が検出する前の値に戻すことを特徴とする。
【００１４】
この構成によれば、経路変更手段によって輻輳の原因となったフローの経路が変更されると、サンプリングレート設定手段は、複数のスイッチの各々のサンプリングレートを輻輳が検出する前の値に自動的に戻すことができる。これにより、経路が変更された後は、各スイッチのリソースを有効に利用できるようになる。
【００１５】
さらに、請求項５記載の構成にあっては、請求項１ないし４の何れか一項に記載のトラヒック情報収集装置において、複数の前記スイッチは、各々が中央処理装置とメモリとを含むものであり、前記リソース確認手段によって確認される前記残りリソースは、複数の前記スイッチの残りメモリ量と、複数の前記スイッチに含まれる中央処理装置の残り使用率とを少なくとも含むことを特徴とする。
【００１６】
この構成によれば、リソース確認手段は、複数のスイッチの残りメモリ量と、複数のスイッチに含まれる中央処理装置の残り使用率とを残りリソースとして確認できるから、残りメモリ量および残り使用率に応じたサンプリングレートを設定できるようになる。
【００１７】
さらに、請求項６記載の構成にあっては、請求項５に記載のトラヒック情報収集装置において、前記サンプリングレート設定手段は、各々の前記スイッチにおける前記残り使用率が高いほど、当該スイッチに設定する前記サンプリングレートを高くすることを特徴とする。
【００１８】
この構成によれば、サンプリングレート設定手段は、各々のスイッチにおける残り使用率が高いほど、当該スイッチに設定するサンプリングレートを高くすることができるから、残り使用率が高いほど、収集するトラヒック情報の精度を高めることができる。
【００１９】
さらに、請求項７記載の構成にあっては、請求項５または６に記載のトラヒック情報収集装置において、前記サンプリングレート設定手段は、各々の前記スイッチにおける前記残りメモリ量が当該スイッチにおけるフロー情報量以上であるときは、前記残りメモリ量が前記フロー情報量未満であるときよりも、当該スイッチに設定する前記サンプリングレートを高くすることを特徴とする。
【００２０】
この構成によれば、サンプリングレート設定手段は、各々のスイッチにおける残りメモリ量が当該スイッチにおけるフロー情報量以上であるときは、残りメモリ量がフロー情報量未満であるときよりも、当該スイッチに設定するサンプリングレートを高くすることができるから、後者の場合において、収集するトラヒック情報の精度をさらに高めることができる。
【００２１】
また、請求項８記載のトラヒック情報収集方法にあっては、ネットワークに配置されフロー情報を収集する複数のスイッチのうち何れかの輻輳を検出する過程と、複数の前記スイッチの残りリソースを確認する過程と、前記輻輳を検出すると、複数の前記スイッチに対し、各々の前記残りリソースに応じて、前記フロー情報に係るサンプリングレートを設定する過程と、複数の前記スイッチから、各々の前記フロー情報に含まれトラヒック量を示すトラヒック情報を収集する過程とをコンピュータに実行させることを特徴とする。
【００２２】
この構成によれば、何れかのスイッチの輻輳を検出すると、複数のスイッチの残りリソースを確認し、各々の残りリソースに応じたサンプリングレートを各スイッチに設定するから、請求項１のものと同様に収集するトラヒック情報の精度を高めることができ、輻輳の原因となったフローを容易に特定できるようになる。
【発明の効果】
【００２３】
このように、本発明によれば、汎用スイッチが有するリソースを有効利用しつつ、必要に応じて高精度なフロー情報を取得することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態のデータセンタ内ＬＡＮのブロック図である。
【図２】データセンタ内ＬＡＮのフローの経路の一例を示す図である。
【図３】データセンタ内ＬＡＮのフローの経路の他の例を示す図である。
【図４】汎用スイッチの動作説明図である。
【図５】汎用スイッチの他の動作説明図である。
【図６】輻輳処理ルーチンのフローチャートである。
【発明を実施するための形態】
【００２５】
［実施形態の構成］
次に、図１のブロック図を参照し、本発明の一実施形態によるデータセンタ内ＬＡＮ（Local Area Network）の構成を説明する。
図１において物理サーバ２０〜２３は、汎用スイッチ６１，６２，７１〜７４を介して相互に接続されるとともに、ＷＡＮ（広域ネットワーク，Wide Area Network）８０にも接続される。コントローラ１００は、物理サーバ２０〜２３および汎用スイッチ６１，６２，７１〜７４を制御する。なお、本明細書において「汎用スイッチ」とは、ＯＳＩ（Open Systems Interconnection）参照モデルのレイヤ２スイッチ、レイヤ３スイッチおよびルータの機能を備えたものをいう。
【００２６】
物理サーバ２０には、複数の仮想マシン４０−１〜４０−ｈと、仮想スイッチ３０とが配置されており、これらによって仮想ＬＡＮ５０が構成されている。同様に、物理サーバ２１には、複数の仮想マシン４１−１〜４１−ｉと、仮想スイッチ３１とが配置されており、これらによって仮想ＬＡＮ５１が構成されている。同様に、物理サーバ２２には、複数の仮想マシン４２−１〜４２−ｊと、仮想スイッチ３２とが配置されており、これらによって仮想ＬＡＮ５２が構成されている。同様に、物理サーバ２３には、複数の仮想マシン４３−１〜４３−ｋと、仮想スイッチ３３とが配置されており、これらによって仮想ＬＡＮ５３が構成されている。このように、各物理サーバ２０〜２３は、仮想ＬＡＮ５０〜５３を備えた仮想化ノードを構成している。
【００２７】
物理サーバ２０内の仮想スイッチ３０は、汎用スイッチ７１，７２の双方に接続されている。これにより、物理サーバ２０と、他の物理サーバ２１〜２３またはＷＡＮ８０（広域ネットワーク，Wide Area Network）とを接続するルートとして、汎用スイッチ７１，７２の何れを経由するルートも選択できる。同様に、物理サーバ２１内の仮想スイッチ３１は、汎用スイッチ７１，７２の双方に接続されている。また、物理サーバ２２内の仮想スイッチ３２と、物理サーバ２３内の仮想スイッチ３３とは、共に汎用スイッチ７３，７４の双方に接続されている。そして、汎用スイッチ７１〜７４は、汎用スイッチ６１，６２の双方に接続され、汎用スイッチ６１，６２はＷＡＮ８０に接続されている。
【００２８】
各物理サーバ２０〜２３は、各々２台の汎用スイッチに接続できるように、２つのＩＰアドレスを有しているが、これら物理サーバに配置される仮想マシン４０−１〜４３−ｋには、固有のＩＰアドレスは付与されていない。そこで、物理サーバ２０〜２３および汎用スイッチ６１〜７４の相互間には、ＩＰアドレスを用いた「仮想トンネル」が形成される。そして、仮想ＬＡＮ５０〜５３と仮想スイッチ３０〜３３と仮想トンネルとを介することにより、各仮想マシン４０−１〜４３−ｋの相互間の通信が可能になる。
【００２９】
コントローラ１００は、通常のコンピュータと同様に、ＣＰＵ（中央処理装置；Central Processing Unit）１１０と、記憶装置１２２と、入出力インタフェース１２４と、これらを接続するバス１２０とを有している。入出力インタフェース１２４は、物理サーバ２０〜２３および汎用スイッチ６１〜７４との間で、トラヒックに係る各種情報を入出力する。そして、ＣＰＵ１１０は、記憶装置１２２に記憶されたプログラムを実行することにより、後述する各手段１１１〜１１６として機能する。
【００３０】
各汎用スイッチ６１〜７４は、非特許文献３に開示されたＭＩＢを有しており、輻輳検出手段１１１は、入出力インタフェース１２４を介して、その内容（以下、ＭＩＢデータという）を定期的に収集し、記憶装置１２２に記憶させる。ＭＩＢデータには、受信ＩＰパケット総数、エラーになった受信ＩＰパケット数が含まれており、これらの値を所定時間（例えば１分）毎に取得し、前回取得した値を減算すると、直近の所定時間内の受信ＩＰパケット総数、エラーになった受信ＩＰパケット数が得られる。
【００３１】
そして、後者を前者で除算すると、直近の所定時間内のエラーレートが求められる。輻輳検出手段１１１は、このエラーレートが所定の閾値を超えたか否かに基づいて、各汎用スイッチ６１〜７４に輻輳が生じているか否かを検出する。
【００３２】
リソース確認手段１１２は、輻輳検出手段１１１が輻輳を検出した場合に、各汎用スイッチ６１〜７４の残りリソースを確認する。確認される残りリソースには、これら汎用スイッチ内のＣＰＵの残り使用率と、残りメモリ量とが含まれる。サンプリングレート設定手段１１３は、各汎用スイッチ６１〜７４に対し、各々のＣＰＵの残り使用率と残りメモリ量とに基づいて、ＩＰパケットをサンプリングするサンプリングレートを設定する。トラヒック情報収集手段１１４は、各汎用スイッチ６１〜７４からトラヒック情報（各フローのパケット数、バイト数等）を収集する。
【００３３】
輻輳原因特定手段１１５は、収集したトラヒック情報に基づいて、輻輳の原因となったフローを特定する。例えば、輻輳が生じた汎用スイッチに流入するフローのうち、他の汎用スイッチに迂回可能なフローであってトラヒック量（受信パケット数または受信バイト数）が最大であるフローが、「輻輳の原因となったフロー」であると特定することができる。経路変更手段１１６は、輻輳の原因となったフローの経路を、上述の「他の汎用スイッチ」を経由するように変更する。
【００３４】
［実施形態の動作］
＜動作の概要＞
次に、図２を参照し、本実施形態の動作の概要を説明する。なお、図２は、データセンタ内ＬＡＮのフローの経路の一例を示す図である。
図２において仮想マシン４０−１から仮想マシン４２−ｊに供給されるＩＰパケットのフローをＬ１とし、仮想マシン４０−ｈから仮想マシン４２−１に供給されるＩＰパケットのフローをＬ２とし、仮想マシン４１−１から仮想マシン４３−１に供給されるＩＰパケットのフローをＬ３とし、仮想マシン４１−ｉから仮想マシン４３−ｋに供給されるＩＰパケットのフローをＬ４とする。これらフローＬ１〜Ｌ４のうち、フローＬ４のトラヒック量が最大であったとする。
【００３５】
図２においては、汎用スイッチ６１に対して多くのフローが集中しているため、汎用スイッチ６１において輻輳が生じている。輻輳が検出された際に、その原因となっているフロー（図２の例ではフローＬ３）を特定し、その経路を変更すれば輻輳が解消できるものと考えられる。例えば、図３に示すように、汎用スイッチ６２を経由するようにフローＬ３の経路を変更することが考えられる。本実施形態は、このように、フローの経路の変更を実現しようとするものである。
【００３６】
＜汎用スイッチのフロー情報に関する動作＞
次に、図４に示す動作説明図を参照し、汎用スイッチ６１〜７４においてフロー情報を収集し送信する動作を説明する。
汎用スイッチ６１〜７４は、複数のＩＰパケット２０２を送受信するが、汎用スイッチのハードウエア処理（ＣＰＵ以外の制御回路による処理）により、これらのＩＰパケット２０２のうち一部が、指定されたサンプリングレートＲでサンプリングされる。
【００３７】
ＩＰパケット２０２のヘッダには、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、宛先ポート番号、プロトコル等が含まれており、これらによりフローが特定される。汎用スイッチ６１〜７４には、メモリが設けられており、そのうちの所定の領域がフロー管理領域２１０として確保される。フロー管理領域２１０においては、各々のフローについて、パケット数とバイト数等のトラヒック情報が累積されてゆく。これらトラヒック情報はコントローラ１００に送信される。なお、フロー管理領域２１０に対するフロー情報の書き込み、トラヒック情報の累積、コントローラ１００に対するトラヒック情報の送信は、当該汎用スイッチ内のＣＰＵによって実行される。
【００３８】
次に、フロー管理領域２１０からコントローラ１００にフロー情報が送信される間隔について、図５（ａ），（ｂ）を参照し説明する。
図５（ａ）において、フロー管理領域２１０には、複数のフロー情報ＦＬ１〜ＦＬ９８が格納されている。ここで、フロー情報ＦＬ１〜ＦＬ９８の全体の情報量は、フロー管理領域２１０に割り当てられ得る最大容量よりも小さくなっている。このような場合、フロー情報ＦＬ１〜ＦＬ９８は、古い順に、定期的な間隔でコントローラ１００に送信される。そして、送信されたフロー情報は、フロー管理領域２１０から削除される。
【００３９】
次に、フロー情報の全体の情報量が、フロー管理領域２１０に割り当てられ得る最大容量よりも大きくなった場合の例を図５（ｂ）に示す。図５（ｂ）において、フロー情報ＦＬ１〜ＦＬ１００がフロー管理領域２１０に記憶されており、これらによってフロー管理領域２１０は最大容量に達している。その状態で、新たなフロー情報ＦＬ１０１がエントリされると、その時点で最も古いフロー情報（トラヒック情報）がコントローラ１００に送信され、送信されたフロー情報はフロー管理領域２１０から削除される。
【００４０】
このように、新たなフローがエントリされる毎に古いフロー情報が送信されるため、コントローラ１００に対する送信間隔は不定期になる。また、フロー情報（トラヒック情報）を送信するためにはある程度の時間が必要であるため、古いフロー情報の送信が間に合わなかった場合には、エントリしようとした新たなフロー情報が破棄される場合もある。
【００４１】
＜コントローラ１００の動作＞
次に、図６を参照し、コントローラ１００の動作を説明する。なお、図６は、記憶装置１２２に記憶されＣＰＵ１１０によって実行されるプログラム（輻輳処理ルーチン）のフローチャートである。図６において処理がステップＳ２に進むと、輻輳を検出したか否かが輻輳検出手段１１１（図１参照）によって判定される。ここで「Ｎｏ」と判定されると、ステップＳ２のループが繰り返される。一方、ステップＳ２にて「Ｙｅｓ」と判定されると、処理はステップＳ４に進む。
【００４２】
ステップＳ４においては、リソース確認手段１１２によって、各汎用スイッチ６１〜７４の残りリソースが確認される。ところで、コントローラ１００の記憶装置１２２には、経路テーブル（送信元の物理サーバから宛先の物理サーバに至るまでの汎用スイッチ６１〜７４の経路を示すテーブル）が記憶されている。ステップＳ４においては、輻輳を検出した汎用スイッチを経由する経路が検索され、検索された経路が通過する汎用スイッチの残りリソースが確認される。
【００４３】
確認されるリソースには、これら汎用スイッチ内のフロー管理領域２１０の残りメモリ量、これら汎用スイッチ内のＣＰＵの残り使用率、および流入トラヒック量（受信パケット数）が含まれる。これらは、上述したＭＩＢデータに含まれている。次に、処理がステップＳ６に進むと、各汎用スイッチ６１〜７４のサンプリングレートＲがサンプリングレート設定手段１１３によって決定される。
【００４４】
ここで、ステップＳ６の処理の詳細を説明する。まず、処理対象の汎用スイッチ（６１〜７４のうち何れか）について、フロー情報量Ｐを下式（１）によって求める。
Ｐ＝Ｅ×（Ｆ＋Ｇ）    …（１）
但し、Ｅは１フローあたりの消費メモリ量、Ｆは当該汎用スイッチに流入する仮想化ノード（すなわち物理サーバ２０〜２３）からの総フロー数、Ｇは保守系トラヒック等によるフロー数である。
【００４５】
次に、当該汎用スイッチのＭＩＢデータから得られる残りメモリ量をＱとしたとき、フロー情報量Ｐと残りメモリ量Ｑとの大小関係に応じて、下式（２），（３）によって、当該汎用スイッチに設定するサンプリングレートＲが求められる。
残りメモリ量Ｑ≧フロー情報量Ｐの場合：
Ｒ＝（Ｓ−Ｃ）×Ｂ／Ａ    …（２）
残りメモリ量Ｑ＜フロー情報量Ｐの場合：
Ｒ＝（Ｓ−Ｃ−Ｄ）×Ｂ／Ａ    …（３）
【００４６】
但し、式（２），（３）において、Ｓは当該汎用スイッチ内のＣＰＵの残り使用率、Ａは当該汎用スイッチに単位時間あたり流入するパケット総数、Ｂは当該汎用スイッチが単位時間あたり解析処理できる最大処理パケット数、Ｃは定期的な間隔でフロー情報を送信する場合（図５（ａ）参照）のＣＰＵ使用率、Ｄはフロー情報を順次送信する場合（図５（ｂ）参照）のＣＰＵ使用率である。
【００４７】
式（１）〜（３）において、ＣＰＵの残り使用率Ｓおよびパケット総数Ａは、ＭＩＢデータから得られる。また、最大処理パケット数Ｂ、ＣＰＵ使用率Ｃ，Ｄ、１フローあたりの消費メモリ量Ｅは、当該汎用スイッチの評価時に情報を収集しておき、コントローラ１００の記憶装置１２２に予め記憶させておくとよい。
【００４８】
総フロー数Ｆは経路テーブル情報から求まる。すなわち、コントローラ１００が各汎用スイッチ６１〜７４にアクセスして各汎用スイッチ６１〜７４内の経路テーブルを収集し、コントローラ１００が有する経路テーブルと照合することによって総フロー数Ｆを算出するとよい。保守系トラヒックは、ｐｉｎｇコマンドや、時刻合わせのためのパケット等からなる。保守系トラヒック等によるフロー数Ｇは、ネットワークの設計時に算出することができるため、記憶装置１２２に予め記憶させておくとよい。
【００４９】
次に、処理がステップＳ８に進むと、決定されたサンプリングレートが、サンプリングレート設定手段１１３から入出力インタフェース１２４を介して、各汎用スイッチ６１〜７４毎に通知される。以後、各汎用スイッチ６１〜７４においては、新たに決定されたサンプリングレートでＩＰパケットがサンプリングされる。多くの場合、この新たに決定されたサンプリングレートは、平常時のサンプリングレートよりも高くなるため、汎用スイッチ６１〜７４においては、平常時よりも高精度なフロー情報が得られるようになる。
【００５０】
次に、処理がステップＳ１０に進むと、トラヒック情報収集手段１１４によってトラヒック情報（各フローのパケット数、バイト数等）が収集される。次に、処理がステップＳ１２に進むと、輻輳の原因となったフローが輻輳原因特定手段１１５によって特定される。次に、処理がステップＳ１４に進むと、経路変更手段１１６によって、当該フローの経路が変更される。例えば、図２に示した例では、フローＬ３の経路が、図３に示すように汎用スイッチ６２を介する経路に変更される。次に、処理がステップＳ１６に進むと、サンプリングレート設定手段１１３によって、各汎用スイッチ６１〜７４のサンプリングレートが、通常の値（輻輳を検出する前の値）に戻される。次に、処理はステップＳ２に戻り、上述したものと同様の動作が繰り返される。
【００５１】
［構成・効果の総括］
以上のように、本実施形態におけるコントローラ１００は、ネットワークに配置されフロー情報を収集する複数のスイッチ（６１〜７４）のうち何れかの輻輳を検出する輻輳検出手段（１１１）と、複数のスイッチ（６１〜７４）の残りリソースを確認するリソース確認手段（１１２）と、輻輳検出手段（１１１）が輻輳を検出すると、複数のスイッチ（６１〜７４）に対し、各々の残りリソースに応じて、フロー情報に係るサンプリングレートを設定するサンプリングレート設定手段（１１３）と、複数のスイッチ（６１〜７４）から、各々のフロー情報に含まれトラヒック量を示すトラヒック情報を収集するトラヒック情報収集手段（１１４）と、収集したトラヒック情報に基づいて、輻輳の原因となったフローを検出する輻輳原因特定手段（１１５）と、輻輳の原因となったフローの経路を、輻輳が検出されたスイッチ（６１〜７４）を迂回するように変更する経路変更手段（１１６）と有する。
【００５２】
これにより、輻輳検出手段（１１１）が何れかのスイッチ（６１〜７４）の輻輳を検出すると、リソース確認手段（１１２）は複数のスイッチ（６１〜７４）の残りリソースを確認し、サンプリングレート設定手段（１１３）は各々の残りリソースに応じたサンプリングレートを各スイッチに設定する。これにより、輻輳が生じた際のサンプリングレートを平常時と比較して高くすることができ、トラヒック情報収集手段（１１４）が各スイッチ（６１〜７４）から収集するトラヒック情報の精度を高めることができる。従って、平常時にはスイッチ（６１〜７４）が有するリソースを有効利用しつつ、輻輳が生じた場合には高精度なフロー情報を取得でき、輻輳の原因となったフローを容易に特定できるようになる。さらに、輻輳原因特定手段（１１５）によって輻輳の原因となったフローを自動的に検出することができ、輻輳の原因となったフローの経路を、輻輳が検出されたスイッチ（６１〜７４）を迂回するように、経路変更手段（１１６）が自動的に変更することができる。
【００５３】
さらに、サンプリングレート設定手段（１１３）は、経路変更手段（１１６）によって輻輳の原因となったフローの経路が変更されると、複数のスイッチ（６１〜７４）に対して、各々のサンプリングレート（Ｒ）を輻輳が検出する前の値に戻すので、経路が変更された後は、各スイッチ（６１〜７４）のリソースを有効に利用できるようになる。
【００５４】
さらに、複数のスイッチ（６１〜７４）は、各々が中央処理装置を含むものであり、リソース確認手段（１１２）によって確認される残りリソースは、複数のスイッチ（６１〜７４）の残りメモリ量（Ｑ）と、複数のスイッチ（６１〜７４）に含まれる中央処理装置の残り使用率（Ｓ）とを少なくとも含むので、残りメモリ量（Ｑ）および残り使用率（Ｓ）に応じたサンプリングレートを設定できるようになる。
【００５５】
さらに、サンプリングレート設定手段（１１３）は、各々のスイッチ（６１〜７４）における残り使用率（Ｓ）が高いほど、当該スイッチ（６１〜７４）に設定するサンプリングレート（Ｒ）を高くするので、残り使用率（Ｓ）が高いほど、収集するトラヒック情報の精度を高めることができる。
【００５６】
さらに、サンプリングレート設定手段（１１３）は、各々のスイッチ（６１〜７４）における残りメモリ量（Ｑ）が当該スイッチ（６１〜７４）におけるフロー情報量（Ｐ）以上であるときは、残りメモリ量（Ｑ）がフロー情報量（Ｐ）未満であるときよりも、当該スイッチ（６１〜７４）に設定するサンプリングレート（Ｒ）を高くするので、後者の場合において、収集するトラヒック情報の精度をさらに高めることができる。
【００５７】
［変形例］
本発明は上述した実施形態に限定されるものではなく、種々の変形が可能である。上述した実施形態は本発明を理解しやすく説明するために例示したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について削除し、若しくは他の構成の追加・置換をすることが可能である。上記実施形態に対して可能な変形は、例えば以下のようなものである。
【００５８】
（１）上記実施形態において、輻輳原因特定手段１１５および経路変更手段１１６（輻輳処理ルーチン（図６）においてはステップＳ１２およびＳ１４）は必須の構成ではない。例えば、トラヒック情報収集手段１１４によって収集したトラヒック情報をグラフ化してディスプレイ等に表示し、その表示内容を作業者が目視することによって、輻輳の原因となったフローを特定してもよい。そして、作業者のマニュアル操作によって、当該フローの経路を変更してもよい。
【００５９】
（２）上記実施形態におけるコントローラ１００のハードウエアは一般的なコンピュータによって実現できるため、図６に示したプログラムのみを記憶媒体に格納し、または伝送路を介して頒布してもよい。
【００６０】
（３）図６に示した処理は、上記実施形態ではプログラムを用いたソフトウエア的な処理として説明したが、その一部または全部をＡＳＩＣ(Application Specific Integrated Circuit；特定用途向けＩＣ)、あるいはＦＰＧＡ(field-programmable gate array)等を用いたハードウエア的な処理に置き換えても良い。
【符号の説明】
【００６１】
２０〜２３  物理サーバ
３０〜３３  仮想スイッチ
４０−１〜４３−ｋ  仮想マシン
５０〜５３  仮想ＬＡＮ
６１〜７４  汎用スイッチ（スイッチ）
８０  ＷＡＮ
１００  コントローラ
１１０  ＣＰＵ
１１１  輻輳検出手段
１１２  リソース確認手段
１１３  サンプリングレート設定手段
１１４  トラヒック情報収集手段
１１５  輻輳原因特定手段
１１６  経路変更手段
１２０  バス
１２２  記憶装置
１２４  入出力インタフェース
２０２  ＩＰパケット
２１０  フロー管理領域
Ｌ１〜Ｌ４  フロー
ＦＬ１〜ＦＬ１０１  フロー情報
【図１】
2016146581.tif 000003
【図２】
2016146581.tif 000004
【図３】
2016146581.tif 000005
【図４】
2016146581.tif 000006
【図５】
2016146581.tif 000007
【図６】
2016146581.tif 000008