(57)【要約】  １つ以上のコンピュータシステムとの間で情報を送受信する１つ以上のネットワークインタフェースコントローラ（５）と、外部ネットワークとの間で情報を送受信する１つ以上のネットワークスイッチ（７）と、トラフィックを一纏めにして管理する論理スイッチ管理システム（６）とからなる。コントローラ（５）は、共有する１つ以上のコンピュータシステム同士のトラフィックについては内部で転送処理を完結させる仕組みを備える。論理スイッチ管理システム（６）は、コントローラ（５）とネットワークスイッチ（７）とから構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを備える。これにより、ネットワークインタフェースコントローラとそこに接続されたネットワークスイッチとを流れるトラフィックを一纏めに管理可能なトラフィック管理システムを提供することができる。
2015052854.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のコンピュータシステムとの間で情報を送受信する１つ以上のネットワークインタフェースコントローラと、該ネットワークインタフェースコントローラと接続され、外部ネットワークとの間で情報を送受信する１つ以上のネットワークスイッチと、論理スイッチを構成する論理スイッチ構成システムと、を少なくとも備え、各前記ネットワークインタフェースコントローラは、当該ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、当該ネットワークインタフェースコントローラ内で転送処理を完結させ、かつ、該トラフィックの統計情報を取得し管理する仕組みを備えるとともに、前記論理スイッチ構成システムは、各前記ネットワークインタフェースコントローラと各前記ネットワークスイッチとから構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを備えていることを特徴とするトラフィック管理システム。
【請求項２】
前記ネットワークインタフェースコントローラは、１つ以上のコンピュータシステムから共有するための１つ以上のコンピュータシステム用インタフェースと、外部ネットワークに接続するための１つ以上の外部ネットワーク用ポートと、前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートから入力されたパケットの出力先を保持するフォワーディングテーブルと、前記フォワーディングテーブルが保持する出力先に基づいて、入力された前記パケットを出力先とされる前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートに出力するパケットスイッチと、前記コンピュータシステム用インタフェース間を流れるパケットが属するトラフィックについての識別情報と統計情報とを保持するループバックテーブルと、前記ループバックテーブルが保持する情報を前記論理スイッチ管理システムから取得するための管理インタフェースと、を少なくとも備えることを特徴とする請求項１に記載のトラフィック管理システム。
【請求項３】
前記ネットワークインタフェースコントローラは、パケットが入力された際に、前記フォワーディングテーブルを参照し、前記パケットが入力されたポートとパケットを出力するポートとが共に前記コンピュータシステム用インタフェースであると判定した場合、入力された前記パケットから抽出したトラフィックの識別情報に基づいて前記ループバックテーブルに該当するエントリが存在するか否かを判定し、該当するエントリが存在する場合には、前記ループバックテーブルの該当する当該エントリの統計情報を更新し、一方、該当するエントリが存在しない場合には、前記ループバックテーブルに前記パケットから抽出したトラフィックの識別情報をキーとしたエントリを新たに追加することを特徴とする請求項２に記載のトラフィック管理システム。
【請求項４】
前記ネットワークインタフェースコントローラは、オープンフローに対応するコントローラであった場合、１つ以上のコンピュータシステムから共有するための１つ以上のコンピュータシステム用インタフェースと、外部ネットワークに接続するための1つ以上の外部ネットワーク用ポートと、前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートから入力されたパケット群の識別子と、前記パケット群に属する各パケットに対して実行するアクションとを組として保持するフローテーブルと、前記フローテーブルの保持するアクションに基づいて、前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートから入力されたパケットを、指定された前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートに対して出力するパケットスイッチと、オープンフロープロトコルを処理するための制御用ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、オープンフローの管理を行うオープンフローコントローラとの間でメッセージを交換する管理インタフェースと、を少なくとも備えるオープンフロー対応ネットワークインタフェースコントローラとして構成することを特徴とする請求項１に記載のトラフィック管理システム。
【請求項５】
前記論理スイッチ管理システムは、前記ネットワークスイッチが、外部ネットワークへ入出力するために備えているネットワークポートの識別子およびネットワークポート数に関する情報と、フローの識別情報および統計情報を管理するために備えているフォワーディングテーブルのエントリ数とに関する情報と、を前記ネットワークスイッチから当該ネットワークスイッチの構成情報として取得するネットワークスイッチ管理手段と、前記ネットワークインタフェースコントローラが、前記コンピュータシステムとの間を接続するコンピュータシステム用インタフェース間を流れるパケットが属するトラフィックについての識別情報と統計情報とを保持するために備えているループバックテーブルのエントリ数に関する情報と、１つ以上のコンピュータシステムから共有するために備えているコンピュータシステム用インタフェース数に関する情報と、を前記ネットワークインタフェースコントローラから当該ネットワークインタフェースコントローラの構成情報として取得するネットワークインタフェースコントローラ管理手段と、前記ネットワークインタフェースコントローラと前記ネットワークスイッチとの間のどのインタフェースが接続されているかを示す接続情報を保持する接続情報管理手段と、取得した前記ネットワークスイッチの前記フォワーディングテーブルのエントリ数の情報と、取得した前記ネットワークインタフェースコントローラの前記ループバックテーブルのエントリ数の情報と、から、論理スイッチのフォワーディングテーブルのエントリ数を求め、論理フォワーディングテーブルを構成する論理スイッチフォワーディングテーブル管理手段と、取得した前記ネットワークスイッチのネットワークへの前記ネットワークポート数に関する情報と、取得した前記ネットワークインタフェースコントローラの前記コンピュータシステム用インタフェース数に関する情報と、前記ネットワークインタフェースコントローラと前記ネットワークスイッチとのどのインタフェースが接続されているかを示す前記接続情報と、から、論理スイッチのポート数を求めて管理する論理スイッチポート管理手段と、前記論理スイッチのポートと、前記ネットワークインタフェースコントローラの前記コンピュータシステム用インタフェースと、前記ネットワークスイッチの前記ネットワークポートと、の対応を管理する論理スイッチ管理手段と、を少なくとも備えることを特徴とする請求項１ないし４のいずれかに記載のトラフィック管理システム。
【請求項６】
任意のタイミングで、前記ネットワークインタフェースコントローラから、前記ループバックテーブルに登録されているエントリの情報を読み出し、かつ、前記ネットワークスイッチから、前記フォワーディングテーブルに登録されているエントリの情報を読み出して、読み出した前記ループバックテーブルに登録されているエントリの情報と、前記フォワーディングテーブルに登録されているエントリの情報と、を、前記論理フォワーディングテーブルの該当するエントリに登録することを特徴とする請求項５に記載のトラフィック管理システム。
【請求項７】
前記論理スイッチ管理システムは、オープンフローに対応するシステムであった場合、ネットワークを制御するための任意のネットワーク制御アプリケーションをユーザが実装することができるオープンフローインタフェースをさらに備え、請求項４に記載のオープンフロー対応ネットワークインタフェースコントローラから取得した前記コンピュータシステム用インタフェースに関する情報に含まれる、前記コンピュータシステム用インタフェースであることを示す情報と、請求項４に記載のオープンフロー対応ネットワークインタフェースコントローラから取得した前記フローテーブルに保持されているエントリの情報と、から、前記エントリに記載されている入力ポートと出力ポートとが共に前記コンピュータシステム用インタフェースであるか否かを判定し、共に前記コンピュータシステム用インタフェースであった場合には前記ネットワークインタフェースコントローラを共有するコンピュータシステム同士のトラフィックであることを検出することを特徴とする請求項４ないし６のいずれかに記載のトラフィック管理システム。
【請求項８】
１つ以上のコンピュータシステムとの間で情報を送受信する１つ以上のネットワークインタフェースコントローラと、該ネットワークインタフェースコントローラと接続され、外部ネットワークとの間で情報を送受信する１つ以上のネットワークスイッチと、論理スイッチを構成する論理スイッチ構成システムと、を少なくとも備え、各前記ネットワークインタフェースコントローラは、当該ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、当該ネットワークインタフェースコントローラ内で転送処理を完結させ、かつ、該トラフィックの統計情報を取得し管理する仕組みを有するとともに、前記論理スイッチ構成システムは、各前記ネットワークインタフェースコントローラと各前記ネットワークスイッチとから構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを有していることを特徴とするトラフィック管理方法。
【請求項９】
前記ネットワークインタフェースコントローラは、１つ以上のコンピュータシステムから共有するための１つ以上のコンピュータシステム用インタフェースと、外部ネットワークに接続するための１つ以上の外部ネットワーク用ポートと、前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートから入力されたパケットの出力先を保持するフォワーディングテーブルと、前記フォワーディングテーブルが保持する出力先に基づいて、入力された前記パケットを出力先とされる前記コンピュータシステム用インタフェースまたは前記外部ネットワーク用ポートに出力するパケットスイッチングステップと、前記コンピュータシステム用インタフェース間を流れるパケットが属するトラフィックについての識別情報と統計情報とを保持するループバックテーブルと、前記ループバックテーブルが保持する情報を前記論理スイッチ管理システムから取得するための管理ステップと、を少なくとも有することを特徴とする請求項８に記載のトラフィック管理方法。
【請求項１０】
前記論理スイッチ管理システムは、前記ネットワークスイッチが、外部ネットワークへ入出力するために備えているネットワークポートの識別子およびネットワークポート数に関する情報と、フローの識別情報および統計情報を管理するために備えているフォワーディングテーブルのエントリ数とに関する情報と、を前記ネットワークスイッチから当該ネットワークスイッチの構成情報として取得するネットワークスイッチ管理ステップと、前記ネットワークインタフェースコントローラが、前記コンピュータシステムとの間を接続するコンピュータシステム用インタフェース間を流れるパケットが属するトラフィックについての識別情報と統計情報とを保持するために備えているループバックテーブルのエントリ数に関する情報と、１つ以上のコンピュータシステムから共有するために備えているコンピュータシステム用インタフェース数に関する情報と、を前記ネットワークインタフェースコントローラから当該ネットワークインタフェースコントローラの構成情報として取得するネットワークインタフェースコントローラ管理ステップと、前記ネットワークインタフェースコントローラと前記ネットワークスイッチとの間のどのインタフェースが接続されているかを示す接続情報を保持する接続情報管理ステップと、取得した前記ネットワークスイッチの前記フォワーディングテーブルのエントリ数の情報と、取得した前記ネットワークインタフェースコントローラの前記ループバックテーブルのエントリ数の情報と、から、論理スイッチのフォワーディングテーブルのエントリ数を求め、論理フォワーディングテーブルを構成する論理スイッチフォワーディングテーブル管理ステップと、取得した前記ネットワークスイッチのネットワークへの前記ネットワークポート数に関する情報と、取得した前記ネットワークインタフェースコントローラの前記コンピュータシステム用インタフェース数に関する情報と、前記ネットワークインタフェースコントローラと前記ネットワークスイッチとのどのインタフェースが接続されているかを示す前記接続情報と、から、論理スイッチのポート数を求めて管理する論理スイッチポート管理ステップと、前記論理スイッチのポートと、前記ネットワークインタフェースコントローラの前記コンピュータシステム用インタフェースと、前記ネットワークスイッチの前記ネットワークポートと、の対応を管理する論理スイッチ管理ステップと、を少なくとも有することを特徴とする請求項８または９に記載のトラフィック管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、トラフィック管理システムおよびトラフィック管理方法に関し、特に、同一のネットワークインタフェースコントローラを共有するコンピュータシステム間のトラフィックを管理することが可能なトラフィック管理システムおよびトラフィック管理方法に関する。
【背景技術】
【０００２】  近年、１つ以上のコンピュータシステムから、同一のＩ／Ｏデバイスを共有する技術が出現してきている。例えば、サーバ仮想化技術においては、物理的に１つのコンピュータシステム上で１つ以上のＯＳ（Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）が動作する場合に、Ｉ／ＯデバイスがＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ  Ｒｏｏｔ−Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）に、チップセットがＩＯＭＭＵ(Ｉ／Ｏ  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ)に対応することによって、１つ以上の仮想マシンから同一のＩ／Ｏデバイスを共有することができる。【０００３】  さらに、ＭＲ−ＩＯＶ（Ｍｕｌｔｉ  Ｒｏｏｔ−Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）技術を用いることによって、１つ以上の物理的に異なるコンピュータシステムからＩ／Ｏデバイスを共有することもできる。【０００４】  ＳＲ−ＩＯＶについては、従来より、ネットワークインタフェースコントローラを中心に採用されてきている。図１０は、ＳＲ−ＩＯＶまたはＭＲ−ＩＯＶに対応したネットワークインタフェースコントローラの概観を示すブロック構成図である。【０００５】  図１０に示すように、一般的に、ＳＲ−ＩＯＶやＭＲ−ＩＯＶに対応したネットワークインタフェースコントローラ１は、該ネットワークインタフェースコントローラ１を共有するコンピュータシステム同士の通信のために、内部に、パケットスイッチ１０と、パケットスイッチ１０がパケットの出力先を決定するために使用するフォワーディングテーブル１２と、を備えている。フォワーディングテーブル１２には、パケットヘッダに含まれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスなどの宛先を示す情報と、出力先のインタフェース（コンピュータシステム用インタフェース１４または外部ネットワーク用ポート１６）とが組になって登録されている。このパケットスイッチ１０や、フォワーディングテーブル１２は、ネットワークインタフェースコントローラ１のチップ規模やコストを抑えるために、シンプルな機能に限定されることが多い。そのため、例えば、ＭＡＣアドレスとＶＬＡＮ  ＩＤのみを用いたスイッチングのみが可能であったり、トラフィックの統計情報を保持しないといった例が見られる。【０００６】  また、１つ以上のコンピュータシステムから、ネットワークインタフェースコントローラ１を共有することが可能になるように、コンピュータシステム用のインタフェースとして、ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８と、1つ以上のコンピュータシステム用インタフェース１４と、を備える。【０００７】  ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）との間でＰＣＩ−Ｅｘｐｒｅｓｓ規格に準拠した信号の送受信をハンドリングするための機能や、ネットワークインタフェースコントローラ１の設定を行うためのレジスタやインタフェースを備える。一方、コンピュータシステム用インタフェース１４は、ＳＲ−ＩＯＶやＭＲ−ＩＯＶの仕様においては物理機能（ＰＦ：Ｐｈｙｓｉｃａｌ  Ｆｕｎｃｔｉｏｎ）や仮想機能（ＶＦ：Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ）と呼ばれている。ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８は、ＣＰＵから送られてきたＰＣＩ−Ｅｘｐｒｅｓｓ規格準拠の信号を解析し、どのコンピュータシステム用インタフェース１４に転送するデータであるかを判定し、転送先と判定したコンピュータシステム用インタフェース１４に対して信号を転送する。【０００８】  そして、ネットワークインタフェースコントローラ１は、外部ネットワークと接続するために、外部ネットワーク用ポート１６を１つ以上備える。【０００９】  図１１は、ネットワークインタフェースコントローラ１を１つ以上のコンピュータシステム４が共有している様子を示すシステム構成図である。図１１に示すように、ネットワークインタフェースコントローラ１は、Ｉ／Ｏスイッチ３を経由して、１つ以上のコンピュータシステム４（コンピュータシステム４ａ、コンピュータシステム４ｂ、…）によって共有される。【００１０】  コンピュータシステム４は、ＣＰＵ４０と、メモリ４２と、Ｉ／Ｏインタフェース４４と、から構成される。Ｉ／Ｏインタフェース４４の一つの例としては、例えばＰＣＩ−Ｅｘｐｒｅｓｓのインタフェースがある。また、Ｉ／Ｏインタフェース４４の機能の一部が、ＣＰＵ４０に内蔵されることもある。なお、図１１には示していないものの、コンピュータシステム４には、Ｉ／Ｏインタフェース４４などを介して、ハードディスクや光学ドライブなどの各種周辺装置が接続される。【００１１】  Ｉ／Ｏスイッチ３は、ＰＣＩ−Ｅｘｐｒｅｓｓ準拠の信号をスイッチングする機能を備える。ＰＣＩ−Ｅｘｐｒｅｓｓ準拠の信号の場合、データはパケットとして転送される。つまり、データに、宛先などを示すヘッダや、エラーチェックのためのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｔ  Ｃｈｅｃｋ）データが付加され、Ｉ／Ｏスイッチ３によってスイッチングして転送される。ここでは、イーサネット（登録商標）などのコンピュータネットワークを流れるパケットをネットワークパケット、ＰＣＩ−Ｅｘｐｒｅｓｓバスを流れるパケットをＰＣＩｅパケットと呼称して区別することにする。Ｉ／Ｏスイッチ３においては、ＰＣＩｅパケットヘッダに含まれるメモリアドレスによって転送を行う方式と、同様に、ＰＣＩｅパケットヘッダに含まれるバス番号、デバイス番号、ファンクション番号に基づいて転送を行う方式とのいずれかによって、ＰＣＩｅパケットを転送する。【００１２】  ネットワークインタフェースコントローラ１に備えられる各コンピュータシステム用インタフェース１４には、それぞれ互いに異なる［バス番号、デバイス番号、ファンクション番号］の組が割り当てられる。これにより、コンピュータシステム４（コンピュータシステム４ａ、コンピュータシステム４ｂ、…）やＩ／Ｏスイッチ３は、コンピュータシステム用インタフェース１４を識別することができる。【００１３】  図１１の環境において、コンピュータシステム４ａとコンピュータシステム４ｂとが、ネットワークインタフェースコントローラ１を経由して通信を行う場合、図１０に示すネットワークインタフェースコントローラ１の各部位の動作により、ネットワークパケットは次のように転送される。【００１４】  まず、コンピュータシステム４ａが、Ｉ／Ｏインタフェース４４、Ｉ／Ｏスイッチ３を経由して、ネットワークインタフェースコントローラ１に備えられている、コンピュータシステム４ａに割り当てられたコンピュータシステム用インタフェース１４に対してＰＣＩｅパケットを送信する。ＰＣＩｅパケットのペイロード部にはネットワークパケットが格納されている。コンピュータシステム４ａは、ネットワークパケットのサイズによっては、ネットワークパケットを分割し、１つ以上のＰＣＩｅパケットそれぞれのペイロードに分割して格納して、送信する。【００１５】  次に、コンピュータシステム４ａからのＰＣＩｅパケットを受け取ったネットワークインタフェースコントローラ１は、ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８にてＰＣＩｅパケットからネットワークパケットを取り出す。１つ以上のＰＣＩｅパケットに分割されてネットワークパケットが送信されてきている場合は、ネットワークインタフェースコントローラ１においてネットワークパケットの組み立てが行われる。【００１６】  次に、パケットスイッチ１０は、ネットワークパケットのヘッダ情報を用いてフォワーディングテーブル１２を参照して、該ネットワークパケットの転送先となるコンピュータシステム用インタフェース１４を検索する。【００１７】  次に、パケットスイッチ１０は、フォワーディングテーブル１２の検索結果によって得られた、ネットワークパケットの転送先となるコンピュータシステム用インタフェース１４に対してネットワークパケットを出力する。【００１８】  出力されたネットワークパケットは、ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８にて、ＰＣＩｅパケットにペイロードとして格納され、宛先となるコンピュータシステム４ｂに対して転送される。【００１９】  このように、Ｉ／Ｏを共有するコンピュータシステム４同士の通信については、ネットワークインタフェースコントローラ１によって処理され、外部ネットワークにはネットワークパケットが送信されることはない。【００２０】  つまり、ネットワーク管理の観点からは、ネットワークインタフェースコントローラ１は、ネットワークスイッチのように動作しているので、ネットワークスイッチとして管理することが必要になる。【００２１】  これに対して、非特許文献１のＩＥＥＥ８０２．１Ｑｂｇに規定されているＶＥＰＡ（Ｖｉｒｔｕａｌ  Ｅｔｈｅｒｎｅｔ  Ｐｏｒｔ  Ａｇｇｒｅｇａｔｏｒ）や、非特許文献２のＩＥＥＥ８０２．１Ｑｂｈに規定されているＢｒｉｄｇｅ  Ｐｏｒｔ  Ｅｘｔｅｎｓｉｏｎにおいては、ネットワークインタフェースコントローラ１は、コンピュータシステム４からの全てのネットワークパケットを外部ネットワークに転送するように規定されている。したがって、ネットワークインタフェースコントローラ１を共有するコンピュータシステム４同士の通信の場合には、ネットワークインタフェースコントローラ１の外部ネットワーク用ポート１６と直接接続される、外部ネットワークに存在するネットワークスイッチが、入力してきたネットワークパケットを入力ポートと同じポートに出力することによって、ネットワークパケットが当該ネットワークパケットを出力したネットワークインタフェースコントローラ１に返ってくる。ネットワークスイッチのスイッチングに必要な処理は、隣接スイッチで行われており、これにより、コンピュータシステム４間のスイッチングを実現することになる。【００２２】  これらの非特許文献１、非特許文献２の技術においては、全てのトラフィックが外部ネットワークのネットワークスイッチに転送されるため、ネットワーク管理の観点からは、従来と同様に、ネットワークスイッチのみを管理するだけで良い。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】“ＩＥＥＥ８０２．１：８０２．１Ｑｂｇ  −Ｅｄｇｅ  Ｖｉｒｔｕａｌ  Ｂｒｉｄｇｉｎｇ”、＜http://www.ieee802.org/1/pages/802.1bg.html＞
【非特許文献２】“ＩＥＥＥ８０２．１：８０２．１Ｑｂｈ  −Ｂｒｉｄｇｉｎｇ  Ｐｏｒｔ  Ｅｘｔｅｎｓｉｏｎ”、＜http://www.ieee802.org/1/pages/802.1bh.html＞
【発明の開示】
【発明が解決しようとする課題】
【００２４】  以下の分析は、本発明によって与えられたものである。【００２５】  従来技術における第１の問題点は、前述の図１０、図１１に示した技術の場合には、ネットワークインタフェースコントローラ１を共有するコンピュータシステム４同士の通信を管理することができないという点である。【００２６】  その理由は、このようなコンピュータシステム４同士の通信の場合、ネットワークパケットが外部ネットワークに転送されず、ネットワークインタフェースコントローラ１内部でネットワークパケットの転送処理が完了してしまうことと、ネットワークインタフェースコントローラ１内部に、トラフィックの統計情報を取得する機能が備わっていないことによる。【００２７】  従来技術における第２の問題点は、非特許文献１および非特許文献２に記載の技術の場合には、ネットワークインタフェースコントローラ１と、外部ネットワークのネットワークスイッチとの間のリンクがボトルネックになるという点である。【００２８】  その理由は、全てのネットワークパケットが、前記リンクを経由することになり、外部ネットワークとのトラフィックによって、ネットワークインタフェースコントローラ１を共有するコンピュータシステム４同士のトラフィックが圧迫されるためである。また、ネットワークインタフェースコントローラ１を共有するコンピュータシステム４が増加するにしたがって、同一リンクを共有するトラフィックが増加するために、当該リンクがボトルネックとなってしまう。【００２９】  従来技術における第３の問題点は、前述の図１０、図１１に示した技術の場合において、ネットワークインタフェースコントローラ１を、従来のネットワークスイッチと同様に管理しようとすると、管理ポイントが大幅に増加するという点である。【００３０】  その理由は、ネットワークインタフェースコントローラ１の数は、最大でコンピュータシステム４の個数と等しくなるため、大規模データセンタなどの環境如何によっては、コンピュータシステム４の個数が膨大になり、ネットワークスイッチの個数の数十倍の個数となるためである。【００３１】（本発明の目的）  本発明は、前述した第１の問題点、すなわち、ネットワークインタフェースコントローラ１を共有するコンピュータシステム４同士の通信を管理することができないという課題と、第２の問題点、すなわち、全てのネットワークパケットが外部ネットワークを利用することによって通信性能が劣化するという課題と、第３の問題点、すなわち、ネットワークの管理ポイントが大幅に増加するという課題と、を効果的に解決することができるトラフィック管理システムおよびトラフィック管理方法を提供することを、その目的としている。
【課題を解決するための手段】
【００３２】  前述の課題を解決するため、本発明によるトラフィック管理システムおよびトラフィック管理方法は、主に、次のような特徴的な構成を採用している。【００３３】  （１）本発明によるトラフィック管理システムは、１つ以上のコンピュータシステムとの間で情報を送受信する１つ以上のネットワークインタフェースコントローラと、該ネットワークインタフェースコントローラと接続され、外部ネットワークとの間で情報を送受信する１つ以上のネットワークスイッチと、論理スイッチを構成する論理スイッチ構成システムと、を少なくとも備え、送受信される情報を管理するトラフィック管理システムであって、各前記ネットワークインタフェースコントローラは、当該ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、当該ネットワークインタフェースコントローラ内で転送処理を完結させ、かつ、該トラフィックの統計情報を取得し管理する仕組みを備えるとともに、前記論理スイッチ構成システムは、各前記ネットワークインタフェースコントローラと各前記ネットワークスイッチと、から構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを備えていることを特徴とする。【００３４】  （２）本発明によるトラフィック管理方法は、１つ以上のコンピュータシステムとの間で情報を送受信する１つ以上のネットワークインタフェースコントローラと、該ネットワークインタフェースコントローラと接続され、外部ネットワークとの間で情報を送受信する１つ以上のネットワークスイッチと、論理スイッチを構成する論理スイッチ構成システムと、を少なくとも備えたシステムにおいて送受信される情報を管理するトラフィック管理方法であって、各前記ネットワークインタフェースコントローラは、当該ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、当該ネットワークインタフェースコントローラ内で転送処理を完結させ、かつ、該トラフィックの統計情報を取得し管理する仕組みを有するとともに、前記論理スイッチ構成システムは、各前記ネットワークインタフェースコントローラと各前記ネットワークスイッチと、から構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを有していることを特徴とする。
【発明の効果】
【００３５】  本発明のトラフィック管理システムおよびトラフィック管理方法によれば、以下のような効果を奏することができる。【００３６】  すなわち、本発明においては、ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックと、ネットワークインタフェースコントローラが接続されるネットワークスイッチを流れるトラフィックと、を、通信性能を劣化させることなく、また、管理ポイントを増大させることなく、一元管理することができる。【００３７】  その理由は、ネットワークインタフェースコントローラとネットワークスイッチと、から構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを提供し、かつ、ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、ネットワークインタフェースコントローラ内で転送処理を完結させることを可能にしているためである。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施形態に係るトラフィック管理システムの構成例を示すシステム構成図である。
【図２】図１のトラフィック管理システムに示したネットワークインタフェースコントローラの内部構成の一例を示すブロック構成図である。
【図３】図１のトラフィック管理システムに示したネットワークスイッチの内部構成の一例を示すブロック構成図である。
【図４】図１のトラフィック管理システムに示した論理スイッチ管理システムの論理スイッチ管理部の内部構成の一例を示すブロック構成図である。
【図５】図１に示した論理スイッチ管理システムが論理スイッチを構成するための処理の流れの一例を示すシーケンス図である。
【図６】図２に示したネットワークインタフェースコントローラが、ネットワークパケットを受信した際に、ループバックテーブルにエントリを追加する処理、あるいは、ループバックテーブルに登録されているエントリを更新する処理の一例を示すフローチャートである。
【図７】オープンフローを用いて実施した場合のトラフィック管理システムの構成の一例を示すシステム構成図である。
【図８】図７のトラフィック管理システムに示したオープンフロー対応ネットワークインタフェースコントローラの内部構成の一例を示すブロック構成図である。
【図９】図７のトラフィック管理システムに示したオープンフロースイッチの内部構成の一例を示すブロック構成図である。
【図１０】ＳＲ−ＩＯＶまたはＭＲ−ＩＯＶに対応したネットワークインタフェースコントローラの概観を示すブロック構成図である。
【図１１】ネットワークインタフェースコントローラを１つ以上のコンピュータシステムが共有している様子を示すシステム構成図である。
【発明を実施するための形態】
【００３９】  以下、本発明によるトラフィック管理システムおよびトラフィック管理方法の好適な実施形態について添付図を参照して説明する。なお、本発明によるトラフィック管理方法をコンピュータにより実行可能なトラフィック管理プログラムとして実施するようにしても良いし、あるいは、トラフィック管理プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。
【００４０】（本発明の特徴）  本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明のトラフィック管理システムは、ネットワークインタフェースコントローラとネットワークスイッチと、から構成情報および統計情報を取得し、１つの論理スイッチとして構成する仕組みを提供し、かつ、ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックについては、ネットワークインタフェースコントローラ内で転送処理を完結させることを可能にすることを主要な特徴とし、而して、ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックと、ネットワークインタフェースコントローラが接続されるネットワークスイッチを流れるトラフィックと、を、通信性能を劣化させることなく、また、管理ポイントを増大させることなく、一元管理することを可能にしている。
【００４１】  より具体的には、本発明は、ネットワークインタフェースコントローラを共有する１つ以上のコンピュータシステム同士のトラフィックの識別情報と統計情報とを保持するためのテーブル（ループバックテーブル）をネットワークインタフェースコントローラに備え、かつ、論理スイッチとして構成する仕組みを有する論理スイッチ管理システムは、ネットワークインタフェースコントローラとネットワークスイッチとから、構成情報を取得する構成情報取得手段（ネットワークインタフェースコントローラ管理部インタフェースとネットワークスイッチ管理部インタフェース）と、ネットワークインタフェースコントローラとネットワークスイッチとがどのように接続されているかを示す接続情報を管理する接続情報管理手段（接続情報管理部）と、前記識別情報および前記統計情報と、前記構成情報と、前記接続情報とから、論理スイッチのポート数とフォワーディングテーブルのエントリ数とを求め、論理スイッチを構成する論理スイッチ構成手段（論理スイッチポート管理部、論理スイッチフォワーディングテーブル管理部）と、構成した論理スイッチからトラフィックの情報を取得するためのトラフィック情報取得手段（論理スイッチ管理インタフェース）と、を少なくとも備えていることを主要な特徴としている。
【００４２】（実施形態の構成例）  本発明の一実施形態としてトラフィック管理システムの構成例について、図面を参照して詳細に説明する。なお、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことは言うまでもない。
【００４３】  図１は、本発明の実施形態に係るトラフィック管理システムの構成例を示すシステム構成図である。図１に示すトラフィック管理システム８は、論理スイッチ管理システム６と、１つ以上のネットワークインタフェースコントローラ５と、１つ以上のネットワークスイッチ７と、から構成される。論理スイッチ管理システム６は、論理スイッチ管理部６０と、ネットワークスイッチ管理部６２と、ネットワークインタフェースコントローラ管理部６４と、を少なくとも含んで構成される。
【００４４】  図２は、図１のトラフィック管理システム８に示したネットワークインタフェースコントローラ５の内部構成の一例を示すブロック構成図である。図２に一例を示すネットワークインタフェースコントローラ５は、図１０に示した従来のネットワークインタフェースコントローラ１に対して、ループバックテーブル１３と、管理インタフェース１７と、が新たに追加されて構成される。なお、図２のネットワークインタフェースコントローラ５において、図１０に示した従来のネットワークインタフェースコントローラ１と同一の構成要素については同一の符号を付して示しており、ここでの詳細な説明を省略する。
【００４５】  ループバックテーブル１３は、同一ネットワークインタフェースコントローラ５を共有するコンピュータシステム（図１１に示したコンピュータシステム４）同士のトラフィックについて、トラフィックの識別情報と、宛先となるコンピュータシステム用インタフェース１４の識別子と、トラフィックの統計情報と、を管理するテーブルである。
【００４６】  ここで、トラフィックの識別情報とは、例えば、送信元のコンピュータシステム用インタフェース１４の識別子のようなネットワークインタフェースコントローラ５の物理情報と、ＭＡＣアドレスやＶＬＡＮ  ＩＤ、ＩＰアドレス、Ｌ４（Ｌａｙｅｒ  ４：トランスポート層）プロトコル種別、Ｌ４ポート番号といった、ネットワークパケットのヘッダに含まれる情報と、の組から構成される。以降、このトラフィックの識別情報によって識別される個々のトラフィックを、「フロー」と呼称する。
【００４７】  また、トラフィックの統計情報には、各フローの通過パケット数、通過バイト数、該フローのエントリが最後に参照された時間、が少なくとも含まれる。
【００４８】  管理インタフェース１７は、論理スイッチ管理システム６と接続するためのインタフェースである。管理インタフェース１７は、外部ネットワーク用ポート１６とは物理的に独立したインタフェースであっても良いし、外部ネットワーク用ポート１６と物理的に統合されたインタフェースであっても良いし、また、ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース１８を介したインタフェースであっても良い。
【００４９】  図３は、図１のトラフィック管理システム８に示したネットワークスイッチ７の内部構成の一例を示すブロック構成図である。図３に一例を示すネットワークスイッチ７は、パケットスイッチ７０と、フォワーディングテーブル７２と、１つ以上のネットワークポート７４と、パケットスイッチ管理部７６と、管理インタフェース７８と、を少なくとも含んで構成される。
【００５０】  各ネットワークポート７４は、ネットワークインタフェースコントローラ５や、他のネットワークスイッチ７と接続するためのインタフェースであり、ネットワークパケットの送受信のために用いられる。
【００５１】  パケットスイッチ７０は、ネットワークポート７４のいずれかから受信したネットワークパケットの情報により、フォワーディングテーブル７２を参照して、出力先となるネットワークポート７４を決定して、該ネットワークパケットを送出するためのモジュールである。なお、パケットスイッチ７０は、出力先のネットワークポート７４を決定して送出する処理のみならず、さらに、ネットワークパケットをドロップする処理、ネットワークパケットのヘッダ情報などの書き換えを行う処理、等を行っても良い。
【００５２】  フォワーディングテーブル７２は、図２のネットワークインタフェースコントローラ５におけるループバックテーブル１３の場合と同様に、パケットスイッチ７０を流れるトラフィックについて、フローの識別情報と、宛先となるネットワークポート７４の識別子と、フローの統計情報と、を管理するテーブルである。
【００５３】  パケットスイッチ管理部７６は、パケットスイッチ７０を管理するためのモジュールである。具体的には、フォワーディングテーブル７２に対する、エントリの読み出し、書き込み、ネットワークポート７４に対する設定、などの処理が挙げられる。ネットワークスイッチ７が一般的なネットワークスイッチの場合には、パケットスイッチ管理部７６は、汎用ＣＰＵと汎用ＯＳの上で動くアプリケーションの形で実現される。
【００５４】  管理インタフェース７８は、論理スイッチ管理システム６と接続するためのインタフェースである。管理インタフェース７８は、一般的なネットワークスイッチが備える管理用ポートとして実現しても良いし、ネットワークポート７４のいずれかと物理的に統合されたインタフェースで実現しても良い。
【００５５】  図１に示す論理スイッチ管理システム６は、前述したように、論理スイッチ管理部６０と、ネットワークスイッチ管理部６２と、ネットワークインタフェースコントローラ管理部６４と、を少なくとも含んで構成される。
【００５６】  論理スイッチ管理システム６は、ネットワークインタフェースコントローラ５と、ネットワークスイッチ７と、を論理的に１つのスイッチとして管理する機能を備える。
【００５７】  論理スイッチ管理システム６のネットワークインタフェースコントローラ管理部６４は、各ネットワークインタフェースコントローラ５のスペック情報（構成情報）とトラフィック転送ステータス（統計情報）とを、各ネットワークインタフェースコントローラ５の管理インタフェース１７を経由して読み出して、内部に保持する。また、ネットワークスイッチ管理部６２は、各ネットワークスイッチ７のスペック情報（構成情報）とトラフィックの転送ステータス（統計情報）とを、各ネットワークスイッチ７の管理インタフェース７８を経由して読み出して、内部に保持する。
【００５８】  したがって、ネットワークインタフェースコントローラ管理部６４と、ネットワークスイッチ管理部６２と、のそれぞれは、内部に、各ネットワークインタフェースコントローラ５のスペック情報とトラフィック転送ステータスとに関する情報と、各ネットワークスイッチ７のスペック情報とトラフィックの転送ステータスとに関する情報と、をそれぞれに保持するための記憶領域を備えている。そして、論理スイッチ管理部６０においては、ネットワークスイッチ管理部６２と、ネットワークインタフェースコントローラ管理部６４と、が取得して保持した情報を用いて、論理スイッチを構成する。
【００５９】  ネットワークインタフェースコントローラ管理部６４が取得して保持する各ネットワークインタフェースコントローラ５のスペック情報としては、少なくとも、コンピュータシステム用インタフェース１４の総数と、ループバックテーブル１３の総エントリ数と、外部ネットワーク用ポート１６の総数と、を含む。かくのごとき情報以外にも、例えば、フォワーディングテーブル１２の総エントリ数、コンピュータシステム用インタフェース１４が備える機能、パケットスイッチ１０が備える機能、などが各ネットワークインタフェースコントローラ５のスペック情報の例として想定される。
【００６０】  また、ネットワークインタフェースコントローラ管理部６４が取得して保持する各ネットワークインタフェースコントローラ５のトラフィック転送ステータスとしては、少なくとも、各ネットワークインタフェースコントローラ５のループバックテーブル１３の使用エントリ数と、使用されているエントリに登録されている情報と、を含む。かくのごとき情報以外にも、例えば、フォワーディングテーブル１２の使用エントリ数、フォワーディングテーブル１２の使用されているエントリに登録されている情報、などが各ネットワークインタフェースコントローラ５のトラフィック転送ステータスとして想定される。
【００６１】  一方、ネットワークスイッチ管理部６２が取得して保持する各ネットワークスイッチ７のスペック情報としては、少なくとも、各ネットワークスイッチ７のフォワーディングテーブル７２の総エントリ数と、ネットワークポート７４の総数と、を含む。かくのごとき情報以外にも、例えば、ネットワークポート７４が備える機能、パケットスイッチ７０が備える機能、などが各ネットワークスイッチ７のスペック情報の例として想定される。
【００６２】  また、ネットワークスイッチ管理部６２が取得して保持する各ネットワークスイッチ７のトラフィック転送ステータスとして、少なくとも、各ネットワークスイッチ７のフォワーディングテーブル７２の使用エントリ数と、フォワーディングテーブル７２の使用されているエントリに登録されている情報と、を含む。
【００６３】  なお、フォワーディングテーブル７２に登録されている情報として、フローの識別情報と、フローごとの通過パケット数、通過バイト数、該フローのエントリが最後に参照された時間、が少なくとも含まれる。
【００６４】  図４は、図１のトラフィック管理システム８に示した論理スイッチ管理システム６の論理スイッチ管理部６０の内部構成の一例を示すブロック構成図である。図４に一例を示す論理スイッチ管理部６０は、ネットワークスイッチ管理部インタフェース６００と、ネットワークインタフェースコントローラ管理部インタフェース６１０と、論理スイッチフォワーディングテーブル管理部６２０と、論理スイッチポート管理部６３０と、接続情報管理部６４０と、論理スイッチ管理インタフェース６６０と、を少なくとも含んで構成される。
【００６５】  ネットワークスイッチ管理部インタフェース６００は、図１に示す論理スイッチ管理システム６内のネットワークスイッチ管理部６２と情報を送受信するためのインタフェースである。また、ネットワークインタフェースコントローラ管理部インタフェース６１０は、図１に示す論理スイッチ管理システム６内のネットワークインタフェースコントローラ管理部６４と情報を送受信するためのインタフェースである。
【００６６】  論理スイッチフォワーディングテーブル管理部６２０は、ネットワークインタフェースコントローラ管理部６４が取得した図２のネットワークインタフェースコントローラ５のループバックテーブル１３の情報と、ネットワークスイッチ管理部６２が取得した図３のネットワークスイッチ７のフォワーディングテーブル７２の情報と、を論理的に１つのテーブルとして管理するモジュールである。その結果、論理スイッチフォワーディングテーブル管理部６２０は、ネットワークインタフェースコントローラ５や、ネットワークスイッチ７を流れるフローの統計情報を保持することになる。
【００６７】  つまり、論理スイッチフォワーディングテーブル管理部６２０は、以下のように、論理スイッチのフォワーディングテーブルのエントリ数を求めて、論理スイッチのフォワーディングテーブルを作成し、作成した論理スイッチのフォワーディングテーブルには、各ループバックテーブル１３と、各フォワーディングテーブル７２と、の情報を格納する。  （論理スイッチのフォワーディングテーブルのエントリ数）      ＝（各ネットワークインタフェースコントローラ５の        ループバックテーブル１３の総エントリ数）      ＋（各ネットワークスイッチ７のフォワーディングテーブル７２の        総エントリ数）
【００６８】  論理スイッチポート管理部６３０は、図１のネットワークインタフェースコントローラ管理部６４が取得したネットワークインタフェースコントローラ５のコンピュータシステム用インタフェース１４の情報と、図１のネットワークスイッチ管理部６２が取得したネットワークスイッチ７のネットワークポート７４の情報と、を論理スイッチが備えるポートとして管理するモジュールである。
【００６９】  接続情報管理部６４０は、ネットワークインタフェースコントローラ５と、ネットワークスイッチ７と、の接続情報を管理している。該接続情報とは、どのネットワークインタフェースコントローラ５のどの外部ネットワーク用ポート１６が、どのネットワークスイッチ７のどのネットワークポート７４と接続されているかを示す情報である。該接続情報は、あらかじめ静的に保持させておくようにしても良いし、例えば、リンク接続確認用のネットワークパケットを流して、接続情報を動的に取得するようにしても良い。後者の場合は、例えば、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を利用することが想定される。
【００７０】  論理スイッチ管理インタフェース６６０は、論理スイッチの情報を読み出すためのインタフェースである。論理スイッチのポート数や論理スイッチのフォワーディングテーブルのサイズなどの論理スイッチの構成や、論理スイッチを流れるフローの統計情報を取得することができる。
【００７１】  なお、論理スイッチポート管理部６３０は、接続情報管理部６４０が管理する接続情報と、論理スイッチポート管理部６３０自身が管理する情報と、から、論理スイッチのポートの総数を、以下のようにして求める。  （論理スイッチポートの総数）      ＝（各ネットワークインタフェースコントローラ５の        コンピュータシステム用インタフェース１４の総数）      ＋（各ネットワークスイッチ７のネットワークポート７４の総数）      −（ネットワークインタフェースコントローラ５と        ネットワークスイッチ７との間のリンク数）
【００７２】  次に、論理スイッチポート管理部６３０は、論理スイッチのポートが、どのネットワークインタフェースコントローラ５のどのコンピュータシステム用インタフェース１４と、あるいは、どのネットワークスイッチ７のどのネットワークポート７４と、が対応しているかを関連付ける。該関連付けの結果は、マッピング情報として、論理スイッチポート管理部６３０が保持している。
【００７３】  さらに、論理スイッチポート管理部６３０は、ネットワークスイッチ管理部６２と、ネットワークインタフェースコントローラ管理部６４と、において、コンピュータシステム用インタフェース１４が備える機能や、ネットワークポート７４が備える機能、を取得している場合には、各論理ポートに対して、どのような機能を備えているかを示す情報を、前述のマッピング情報に追加することも可能である。
【００７４】（実施形態の動作の説明）  次に、図１ないし図４に本発明の一実施形態として示したトラフィック管理システム８の全体の動作の一例について図面を参照しながら詳細に説明する。
【００７５】  図５は、図１に示した論理スイッチ管理システム６が論理スイッチを構成するための処理の流れの一例を示すシーケンス図であり、ネットワークインタフェースコントローラ５およびネットワークスイッチ７との間の情報の送受信を含め、論理スイッチ管理システム６における処理の流れの一例を示している。なお、図５に示す論理スイッチ管理システム６の処理は、任意のタイミングで定期的に実施される。
【００７６】  図５のシーケンス図において、まず、論理スイッチ管理システム６は、ネットワークインタフェースコントローラ管理部６４を通じて、ネットワークインタフェースコントローラ５から、コンピュータシステム用インタフェース１４と、ループバックテーブル１３と、に関する情報を取得する（ステップＳ１００）。コンピュータシステム用インタフェース１４に関する情報の例としては、コンピュータシステム用インタフェース１４の数、各コンピュータシステム用インタフェース１４が備える機能、などが挙げられる。また、ループバックテーブル１３に関する情報の例としては、ループバックテーブル１３のエントリ数、などが挙げられる。
【００７７】  次に、論理スイッチ管理システム６は、ネットワークスイッチ管理部６２を通じて、ネットワークスイッチ７から、ネットワークポート７４と、フォワーディングテーブル７２と、に関する情報を取得する（ステップＳ１１０）。ネットワークポート７４に関する情報の例としては、ネットワークポート７４の数、各ネットワークポート７４が備える機能、などが挙げられる。フォワーディングテーブル７２に関する情報の例としては、フォワーディングテーブル７２のエントリ数、などが挙げられる。
【００７８】  ここで、図５のステップＳ１００とステップＳ１１０とは、互いに独立な処理であるため、ステップＳ１１０を先に実行することや、ステップＳ１００とステップＳ１１０とを同時に実行することも可能である。
【００７９】  次に、論理スイッチ管理システム６は、ネットワークインタフェースコントローラ５から取得したコンピュータシステム用インタフェース１４の数、および、ネットワークスイッチ７から取得したネットワークポート７４の数に関する情報から、論理スイッチのポート数を求める（ステップＳ１２０）。
【００８０】  次に、論理スイッチ管理システム６は、ネットワークインタフェースコントローラ５から取得したループバックテーブル１３のエントリ数、および、ネットワークスイッチ７から取得したフォワーディングテーブル７２のエントリ数に関する情報から、論理スイッチのフォワーディングテーブルのエントリ数を求める（ステップＳ１３０）。
【００８１】  ここで、図５のステップＳ１２０とステップＳ１３０とは、互いに独立な処理であるため、ステップＳ１３０を先に実行することや、ステップＳ１２０とステップＳ１３０とを同時に実行することも可能である。
【００８２】  以上のようにして、論理スイッチ管理システム６は、算出した論理スイッチのポート数、および、論理スイッチのフォワーディングテーブルのエントリ数に基づいて、論理スイッチを構成する。
【００８３】  次に、図２に示したネットワークインタフェースコントローラ５のループバックテーブル１３にエントリを追加・更新する処理について、図６のフローチャートを用いてその一例を説明する。図６は、図２に示したネットワークインタフェースコントローラ５が、ネットワークパケットを受信した際に、ループバックテーブル１３にエントリを追加する処理、あるいは、ループバックテーブル１３に登録されているエントリを更新する処理の一例を示すフローチャートである。
【００８４】  図６のフローチャートにおいて、まず、ネットワークインタフェースコントローラ５は、ネットワークパケットをコンピュータシステム用インタフェース１４あるいは外部ネットワーク用ポート１６のいずれかから受信すると、フォワーディングテーブル１２を参照する（ステップＳ２００）。
【００８５】  次に、ネットワークインタフェースコントローラ５は、ステップＳ２００においてフォワーディングテーブル１２を参照した結果を用いて、受信したネットワークパケットの入出力ポートが、共に、コンピュータシステム用インタフェース１４であるか否かを判定する（ステップＳ２１０）。ここで、各ネットワークパケットの入出力ポートがコンピュータシステム用インタフェース１４であるかどうかの判定は、例えば、ネットワークインタフェースコントローラ５が、どのポートがコンピュータシステム用インタフェース１４であるか、あるいはネットワークインタフェースコントローラ５であるかを示す情報を保持し、この情報とフォワーディングテーブル１２を参照した結果を比較する、といったことが考えられる。あるいは、フォワーディングテーブル１２の各エントリに、入出力ポートの双方がコンピュータシステム用インタフェース１４であることを示すフラグを含めることでも実現可能である。
【００８６】  次に、受信したネットワークパケットの入出力ポートが共にコンピュータシステム用インタフェース１４であった場合には（ステップＳ２１０のＹｅｓ）、ネットワークインタフェースコントローラ５は、該ネットワークパケットのヘッダの情報を用いて、ループバックテーブル１３にエントリが存在するか否かを判定する（ステップＳ２２０）。
【００８７】  ループバックテーブル１３にエントリが存在する場合（ステップＳ２２０のＹｅｓ）、ネットワークインタフェースコントローラ５は、ループバックテーブル１３の当該エントリの統計情報を更新する（ステップＳ２３０）。
【００８８】  一方、ループバックテーブル１３にエントリが存在しない場合には（ステップＳ２２０のＮｏ）、ネットワークインタフェースコントローラ５は、ループバックテーブル１３に、受信したネットワークパケットが属するフローの識別子を、新規エントリとして追加登録する（ステップＳ２４０）。
【００８９】  また、ステップＳ２１０において、ネットワークパケットの入出力ポートのいずれか一方でもコンピュータシステム用インタフェース１４ではなかった場合（ステップＳ２１０のＮｏ）、ネットワークインタフェースコントローラ５は、ループバックテーブル１３に対する操作を一切行わない。
【００９０】  ここで、論理スイッチ管理システム６においては、前述したように、ネットワークインタフェースコントローラ５のループバックテーブル１３と、ネットワークスイッチ７のフォワーディングテーブル７２と、から、あらかじめ定めた周期で定期的に、フローの統計情報を取得し、論理スイッチのフォワーディングテーブルの情報を更新している。
【００９１】（本実施形態の効果の説明）  以上に詳細に説明したように、本実施形態におけるトラフィック管理システム８においては、以下のような効果が得られる。
【００９２】  すなわち、トラフィック管理システム８の各ネットワークインタフェースコントローラ５は、ループバックテーブル１３を備え、ネットワークインタフェースコントローラ５を共有するコンピュータシステム４同士のトラフィックに関する統計情報を保持することができ、かつ、ネットワークインタフェースコントローラ５を共有する１つ以上のコンピュータシステム４同士のトラフィックについては、ネットワークインタフェースコントローラ５内で転送処理を完結させることが可能である。また、論理スイッチ管理システム６は、ネットワークインタフェースコントローラ５のループバックテーブル１３とコンピュータシステム用インタフェース１４との情報と、ネットワークスイッチ７のフォワーディングテーブル７２とネットワークポート７４との情報と、に基づいて、論理スイッチを構成することによって、ネットワークインタフェースコントローラ５と、ネットワークスイッチ７と、を１つの論理スイッチとして管理することができる。
【００９３】  その結果、ネットワークインタフェースコントローラ５を共有する１つ以上のコンピュータシステム４同士のトラフィックと、ネットワークインタフェースコントローラ５が接続されるネットワークスイッチ７を流れるトラフィックと、を、通信性能を劣化させることなく、また、管理ポイントを増大させることなく、一元管理することができる。
【実施例】
【００９４】  次に、具体的な実施例として、物理的なネットワーク上にソフトウェアにより定義したネットワーク（ＳＤＮ：Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）を構築するための技術の一つであるオープンフローを用いた場合において、本発明を実施するための動作についてさらに詳細に説明する。【００９５】  図７は、オープンフローを用いて実施した場合のトラフィック管理システム８０の構成の一例を示すシステム構成図である。オープンフローについては、“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．３．１  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０４）  Ｓｅｐｔｅｍｂｅｒ  ６，２０１２”，＜https://www.opennetworking．org/images/stories/downloads/specification/openflow-spec-v1.3.1.pdf＞、などに詳しく記載されているので、ここでの詳細な説明は省略する。【００９６】  図７に示すトラフィック管理システム８０は、オープンフローコントローラ１１０と、１つ以上のオープンフロースイッチ１００と、１つ以上のオープンフロー対応ネットワークインタフェースコントローラ１２０と、から構成される。【００９７】  オープンフローコントローラ１１０は、オープンフローの仕様に対応したスイッチ（オープンフロースイッチ１００およびオープンフロー対応ネットワークインタフェースコントローラ１２０）を、オープンフローの仕様に基づいたＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を用いて制御する。【００９８】  そのため、オープンフローコントローラ１１０は、オープンフローインタフェース１４０を備えている。オープンフローにおいては、どのようにネットワークを制御するかに関して、あらかじめ特定の規定をしているのではなく、ユーザが、オープンフローインタフェース１４０を用いて、ネットワークを制御するための任意のネットワーク制御アプリケーションを自由に実装することができる。【００９９】  ここで、本実施例におけるトラフィック管理システム８０においては、ネットワーク制御アプリケーションとして、図１の論理スイッチ管理システム６の場合と同様の機能を有する、論理スイッチ管理部６０と、ネットワークインタフェースコントローラ管理部６４と、ネットワークスイッチ管理部６２と、を、オープンフローインタフェース１４０を用いてユーザが任意に定義した形態で実装する。ただし、その際に、ネットワークインタフェースコントローラ管理部６４と、ネットワークスイッチ管理部６２とは、オープンフローインタフェース１４０が提供するＡＰＩを用いる。【０１００】  オープンフローにおいては、オープンフローコントローラ１１０と、オープンフローの仕様に対応したスイッチとの間で、セキュアチャネルという、制御用の通信コネクションを張る。オープンフローコントローラ１１０は、そのために、セキュアチャネル制御部１３０を備えている。【０１０１】  オープンフローにおいて、オープンフローコントローラ１１０と、オープンフローに対応したスイッチと、がセキュアチャネルを通じて接続される際に、オープンフローに対応したスイッチがどのような機能を持っているかについての情報をオープンフローコントローラ１１０との間で交換する。��情報の中には、オープンフローに対応したスイッチのポート数や、オープンフローに対応したスイッチにおいてフロー管理を行うために備えられているフローテーブルのエントリ数についての情報が含まれる。これによって、オープンフローコントローラ１１０は、論理スイッチを構成することが可能となる。【０１０２】  また、オープンフローコントローラ１１０は、任意のタイミングで、オープンフローに対応したスイッチのフローテーブルの情報を読み出すことができるので、いくつのフローエントリが消費されているかについての情報や、各フローの統計情報を確実に取得することもできる。【０１０３】  図８は、図７のトラフィック管理システム８０に示したオープンフロー対応ネットワークインタフェースコントローラ１２０の内部構成の一例を示すブロック構成図である。図８に示すオープンフロー対応ネットワークインタフェースコントローラ１２０は、図２に示したネットワークインタフェースコントローラ５に対して、制御用ＣＰＵ１９と、フローテーブル２０と、が追加され、かつ、フォワーディングテーブル１２と、ループバックテーブル１３と、が除かれているが、その他の部位については、図２のネットワークインタフェースコントローラ５と同一の要素から構成されている。図２のネットワークインタフェースコントローラ５と同一の構成要素については、図２のネットワークインタフェースコントローラ５と同じ符号を付して示しており、ここでの詳細な説明を省略する。【０１０４】  フローテーブル２０は、オープンフローにおける、フロー管理のためのテーブルである。フローテーブル２０のフローエントリは、パケットスイッチ１０への入力ポート番号と、ＭＡＣアドレスやＩＰアドレス、などのネットワークパケットのヘッダに含まれる情報（該ネットワークパケットの識別子）によって定義されるキーと、該キーにマッチするパケット群に属するパケットに対するアクションと、から構成される。なお、該キーは、ワイルドカードを使用することもでき、「ＭＡＣアドレスやＩＰアドレスに関わらず、Ｌ４ポート番号が８０（ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を意味するポート番号）のフロー」という定義の仕方も可能である。また、アクションは、ネットワークパケットの出力先のポートを指定することができるのみならず、ネットワークパケットのヘッダの書き換えや、パケットドロップなどを指定することもできる。なお、パケットスイッチ１０は、本実施例においては、フローテーブル２０に保持されているアクションに基づいて動作する。【０１０５】  制御用ＣＰＵ１９は、オープンフロープロトコルを処理し、パケットスイッチ１０と、フローテーブル２０と、を制御し、オープンフローコントローラ１１０とのセキュアチャネルを管理するためのオープンフローエージェントを実行する。該オープンフローエージェントは、オープンフローの仕様に基づく、オープンフローコントローラ１１０とのメッセージの交換や、該メッセージに基づいてフローテーブル２０からの情報の読み出しなどを実行する。【０１０６】  オープンフロー対応ネットワークインタフェースコントローラ１２０を共有するコンピュータシステム４同���のトラフィックは、次のようにして、検出することができる。【０１０７】  まず、オープンフローコントローラ１１０とオープンフロー対応ネットワークインタフェースコントローラ１２０とが、オープンフロー対応ネットワークインタフェースコントローラ１２０が備える機能に関する情報を交換する際に、オープンフロー対応ネットワークインタフェースコントローラ１２０が備えるポートのうち、いずれがコンピュータシステム用インタフェース１４であるかを示す情報を含めた情報を交換するように機能を拡張する。かくのごとき拡張は、オープンフローではベンダーエクステンションという形で可能である。これにより、オープンフローコントローラ１１０は、オープンフロー対応ネットワークインタフェースコントローラ１２０のどのポートがコンピュータシステム用インタフェース１４であるかについての情報を取得することができる。【０１０８】  次に、オープンフローコントローラ１１０は、オープンフロー対応ネットワークインタフェースコントローラ１２０のフローテーブル２０に登録されているエントリの情報を取得し、キーに含まれる入力ポートと、アクションに含まれる出力先ポートと、が、共に、コンピュータシステム用インタフェース１４であるか否かを判定する。共にコンピュータシステム用インタフェース１４であった場合には、そのフローは、オープンフロー対応ネットワークインタフェースコントローラ１２０を共有するコンピュータシステム４同士のトラフィックであると認識することができる。【０１０９】  図９は、図７のトラフィック管理システム８０に示したオープンフロースイッチ１００の内部構成の一例を示すブロック構成図である。図９に示すオープンフロースイッチ１００は、図３のネットワークスイッチ７に対して、フローテーブル７３と、制御用ＣＰＵ７７と、が追加され、かつ、フォワーディングテーブル７２と、パケットスイッチ管理部７６と、が除かれている点が異なっているが、その他の部位については、図３のネットワークスイッチ７と同一の要素から構成されている。図３のネットワークスイッチ７と同一の構成要素については、図３のネットワークスイッチ７と同じ符号を付して示しており、ここでの詳細な説明を省略する。【０１１０】  なお、フローテーブル７３と、制御用ＣＰＵ７７と、は、それぞれ、オープンフロー対応ネットワークインタフェースコントローラ１２０のフローテーブル２０と、制御用ＣＰＵ１９と、全く同様の機能を有しており、ここでの重複する詳細な説明を省略する。【０１１１】  かくのごとく、オープンフローを用いる場合であっても、ネットワークインタフェースコントローラ５を共有するコンピュータシステム４同士のトラフィックを管理することが可能となる。
【産業上の利用可能性】
【０１１２】  本発明によれば、データセンタのような、ネットワークインタフェースコントローラを備えたサーバが多数用いられる環境において、論理スイッチ構成することにより、ネットワークインタフェースコントローラとネットワークスイッチとを一纏めにまとめてトラフィックを管理するといった用途に好適に適用することができる。【０１１３】  以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。【０１１４】  この出願は、２０１３年１０月７日に出願された日本出願特願２０１３−２０９８５８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１１５】  １        ネットワークインタフェースコントローラ  ３        Ｉ／Ｏスイッチ  ４        コンピュータシステム  ４ａ      コンピュータシステム  ４ｂ      コンピュータシステム  ５        ネットワークインタフェースコントローラ  ６        論理スイッチ管理システム  ７        ネットワークスイッチ  ８        トラフィック管理システム  １０      パケットスイッチ  １２      フォワーディングテーブル  １３      ループバックテーブル  １４      コンピュータシステム用インタフェース  １６      外部ネットワーク用ポート  １７      管理インタフェース  １８      ＰＣＩ−Expressインタフェース  １９      制御用ＣＰＵ  ２０      フローテーブル  ４０      ＣＰＵ  ４２      メモリ  ４４      Ｉ／Ｏインタフェース  ６０      論理スイッチ管理部  ６２      ネットワークスイッチ管理部  ６４      ネットワークインタフェースコントローラ管理部  ７０      パケットスイッチ  ７２      フォワーディングテーブル  ７３      フローテーブル  ７４      ネットワークポート  ７６      パケットスイッチ管理部  ７７      制御用ＣＰＵ  ７８      管理インタフェース  ８０      トラフィック管理システム  １００    オープンフロースイッチ  １１０    オープンフローコントローラ  １２０    オープンフロー対応ネットワークインタフェースコントローラ  １３０    セキュアチャネル制御部  １４０    オープンフローインタフェース  ６００    ネットワークスイッチ管理部インタフェース  ６１０    ネットワークインタフェースコントローラ管理部インタフェース  ６２０    論理スイッチフォワーディングテーブル管理部  ６３０    論理スイッチポート管理部  ６４０    接続情報管理部  ６５０    マッピング情報管理部  ６６０    論理スイッチ管理インタフェース
【図１】
2015052854.tif 000003
【図２】
2015052854.tif 000004
【図３】
2015052854.tif 000005
【図４】
2015052854.tif 000006
【図５】
2015052854.tif 000007
【図６】
2015052854.tif 000008
【図７】
2015052854.tif 000009
【図８】
2015052854.tif 000010
【図９】
2015052854.tif 000011
【図１０】
2015052854.tif 000012
【図１１】
2015052854.tif 000013
【国際調査報告】
2015052854.tif 000014
2015052854.tif 000015
2015052854.tif 000016
2015052854.tif 000017