(57)【特許請求の範囲】
【請求項１】
リンク・アグリゲーション（ＬＡＧ）を異種スイッチに提供するためのシステムであって、
各々が複数の接続を介してサーバに接続される、サーバに接続された少なくとも２つのスイッチを含み、前記少なくとも２つのスイッチはインター・スイッチ・リンク（ＩＳＬ）を介して互いに接続され、
前記サーバは、各接続に関するＬＡＧ要求を前記少なくとも２つのスイッチの各々に送って、複数のＬＡＧグループを作成するように適合された論理であって、前記少なくとも２つのスイッチの各々に対する１つのＬＡＧグループはそれらの間の全ての接続を含む、
論理を含み、
前記少なくとも２つのスイッチの各々は、
前記サーバから前記ＬＡＧ要求を受信するように適合された論理と、
前記ＬＡＧ要求を、前記少なくとも２つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理と、
を含み、
前記スイッチ・コントローラは、
前記少なくとも２つのスイッチから、前記転送されたＬＡＧ要求を受信するように適合された論理と、
前記サーバに対応する複数のＬＡＧ要求の受信を判断するように適合された論理と、
前記複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化するように適合された論理と、
全ての前記ＬＡＧグループを前記サーバと関連付けるように適合された論理と、
前記スイッチ・コントローラが決定した前記ＬＡＧグループに従って前記サーバにより前記ＬＡＧグループを構成するように、前記少なくとも２つのスイッチの各々に指示するように適合された論理と、
前記スイッチ・コントローラからの指示により、前記少なくとも２つのスイッチの各々を通り前記サーバに至るフローに対応する代替的フローを作成するように適合された論理と、
を含む、システム。
【請求項２】
前記スイッチ・コントローラは、ＯｐｅｎＦｌｏｗ標準に従って動作するように適合され、前記少なくとも２つのスイッチは、ＯｐｅｎＦｌｏｗ対応のものである、請求項１に記載のシステム。
【請求項３】
前記サーバ及び前記少なくとも２つのスイッチの各々は、これらの間の前記複数の接続の間でトラフィックを均衡化させる、請求項１に記載のシステム。
【請求項４】
前記スイッチ・コントローラは、
前記サーバと第１のスイッチとの間の第１のＬＡＧがいつ機能しなくなったかを判断するように適合された論理と、
前記第１のＬＡＧを宛先として有するあらゆるトラフィック・フローを、第２のスイッチと前記サーバとの間の第２のＬＡＧに、前記第１のスイッチと前記第２のスイッチとの間のＩＳＬを介してリダイレクトするように適合された論理と、
をさらに含む、請求項１に記載のシステム。
【請求項５】
前記スイッチ・コントローラは、
前記第１のＬＡＧがいつ回復したか判断するように適合された論理と、
前記リダイレクトされたトラフィック・フローを前記第１のＬＡＧに戻すように適合された論理と、
をさらに含む、請求項４に記載のシステム。
【請求項６】
リング・アグリゲーション（ＬＡＧ）を異種スイッチに提供する方法であって、
スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断することと、
前記複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化し、全ての前記ＬＡＧグループを前記サーバと関連付けることと、
前記スイッチの各々に、前記スイッチ・コントローラにより決定された前記ＬＡＧグループに従って、前記サーバによりＬＡＧグループを構成するように指示すること、
前記スイッチ・コントローラからの指示により、前記スイッチの各々を通り前記サーバに至るフローに対応する代替的フローを作成することと、
を含む、方法。
【請求項７】
前記スイッチ・コントローラは、ＯｐｅｎＦｌｏｗ標準に従って動作するように適合され、前記スイッチは、ＯｐｅｎＦｌｏｗ対応のものである、請求項６に記載の方法。
【請求項８】
前記サーバ及び前記スイッチの各々は、前記サーバ及び前記スイッチの各々の間の複数の接続の間でトラフィックを均衡化させる、請求項６に記載の方法。
【請求項９】
前記サーバと第１のスイッチとの間の第１のＬＡＧがいつ機能しなくなったかを判断することと、
前記第１のＬＡＧを宛先として有するあらゆるトラフィック・フローを、第２のスイッチと前記サーバとの間の第２のＬＡＧに、前記第１のスイッチと前記第２のスイッチとの間のＩＳＬを介してリダイレクトすることと、
をさらに含む、請求項６に記載の方法。
【請求項１０】
前記第１のＬＡＧがいつ回復したかを判断することと、
前記リダイレクトされたトラフィック・フローを前記第１のＬＡＧに戻すことと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
コンピュータ・プログラムであって、請求項６−１０のいずれか一項に記載の方法の各ステップを、コンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・センター・インフラストラクチャに関し、より具体的には、本発明は、ベンダー又は番号の制限なしに、リンク・アグリゲーションを多重スイッチに拡張することに関する。
【背景技術】
【０００２】
ネットワーク・パケット・スイッチは、複数のスイッチ・ポートを用いた高帯域幅のポート・チャネルを作成するために、リンク・アグリゲーション（Ｌｉｎｋ  Ａｇｒｒｅｇａｔｉｏｎ、ＬＡＧ）を用いる。ＬＡＧは、静的又は動的に形成することができる。静的ＬＡＧは、それらがＬＡＧのメンバーであるように構成された場合、常にＬＡＧのメンバーである固定ポート数を有する。リンク・アグリゲーション制御プロトコル（Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＬＡＣＰ  ＩＥＥＥ  ８０２．３ＡＤに従った動的ＬＡＧは、ポート・メンバーが動的に動的ＬＡＧに参加し、これから去る機能を提供する。アルゴリズムを用いてＬＡＧポート上でのネットワーク・トラフィックの分散又は負荷分散が達成され、ＬＡＧのメンバーにわたる分散を制御するために、現在、様々なアルゴリズムが利用可能である。優れたアルゴリズムは、メンバー・ポートにわたってパケットをハッシュする効率的な方法を提供し、各ポートが均等に使用されることを確実にし、どのポートも輻輳しないことを保証する。
【０００３】
スイッチング特定用途向け集積回路（ＡＳＩＣ）などのスイッチング・プロセッサを用いて、ネットワーク・パケットのためのポートを選択する種々のアルゴリズムを提供することができる。アルゴリズムの大部分は、パケットのパケット・ヘッダ内の情報から形成されたタプルに基づいている。タプルは、典型的には、発信元媒体アクセス制御（ＭＡＣ）アドレス、宛先ＭＡＣアドレス、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）識別子、発信元インターネット・プロトコル（ＩＰ）アドレス、宛先ＩＰアドレス、発信元トランスポート・ポート、及び宛先トランスポート・ポートを含む。一部のアルゴリズムは、ポートのより優れた分散及び／又は他の使用率メトリクスを達成するための付加的なプラグラム可能因子を考慮する。
【０００４】
単一のリンク障害（ｓｉｎｇｌｅ  ｌｉｎｋ  ｆａｉｌｕｒｅ）を起こしにくい高帯域幅パイプを実現するために、サーバ・スイッチ間のＬＡＧが使用されることが多い。また、このＬＡＧは、スイッチの故障を防ぐために複数の協働するスイッチにわたって使用されることも多い。しかしながら、通常、このＬＡＧは、スイッチが同じベンダーからものであることを必要とし、さらに、しばしば、スイッチが同じモデルである必要がある。また、ＬＡＧが一対のスイッチだけに限定されることも多い。
【０００５】
ＬＡＧは、ネットワーク内のスイッチの重要な特性であり、一般に、スイッチ及びネットワークの性能に影響を及ぼす。ＬＡＧはまた、互いに接続されたスイッチの組の全体的性能も変える。従って、複数のスイッチをＬＡＧ内でサーバに一緒に接続すること、及び複数のベンダー及び複数のモデル番号のスイッチをＬＡＧ内で一緒にグループ化することを可能にすることは有益である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リンク・アグリゲーション（ＬＡＧ）を異種スイッチに提供するためのシステム、コンピュータ・プログラム及び方法を提供する。
【課題を解決するための手段】
【０００７】
一実施形態において、リンク・アグリゲーション（ＬＡＧ）を異種スイッチに提供するためのシステムが、各々が複数の接続を介してサーバに接続される、サーバに接続された少なくとも２つのスイッチを含み、少なくとも２つのスイッチは、インター・スイッチ・リンク（ＩＳＬ）を介して互いに接続される。サーバは、各接続に関するＬＡＧ要求を少なくとも２つのスイッチの各々に送って、複数のＬＡＧグループを作成するように適合された論理であって、少なくとも２つのスイッチの各々に対する１つのＬＡＧグループはそれらの間の全ての接続を含む、論理を含む。少なくとも２つのスイッチの各々は、サーバからＬＡＧ要求を受信するように適合された論理と、ＬＡＧ要求を、少なくとも２つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。また、スイッチ・コントローラは、少なくとも２つのスイッチから、転送されたＬＡＧ要求を受信するように適合された論理と、サーバに対応する複数のＬＡＧ要求の受信を判断するように適合された論理と、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化するように適合された論理と、全てのＬＡＧグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、少なくとも２つのスイッチの各々に指示するように適合された論理と、スイッチ・コントローラからの指示により、少なくとも２つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように適合された論理とを含む。
【０００８】
別の実施形態において、ＬＡＧを異種スイッチに提供するためのコンピュータ・プログラム製品が、それにより具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を含む。このコンピュータ可読プログラム・コードは、スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断するように構成されたコンピュータ可読プログラム・コードと、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化し、全てのＬＡＧグループをサーバと関連付けるように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、スイッチの各々に指示するように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成されたコンピュータ可読プログラム・コードとを含む。
【０００９】
さらに別の実施形態において、ＬＡＧを異種スイッチに提供する方法が、スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断することと、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化し、全てのＬＡＧグループをサーバと関連付けることと、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバサーバによりＬＡＧグループを構成するように、スイッチの各々に指示すること、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成することとを含む。
【００１０】
本発明の他の態様及び実施形態は、図面と併せて読まれる、本発明の例示的な原理を示す、以下の詳細な説明から明らかになるであろう。
ここで、図面を参照して、単なる一例として本発明の実施形態を説明する。
【図面の簡単な説明】
【００１１】
【図１】一実施形態によるネットワーク・アーキテクチャを示す。
【図２】一実施形態による、図１のサーバ及び／又はクライアントと関連付けることができる典型的なハードウェア環境を示す。
【図３】一実施形態による、複数のリンク・アグリゲーション（ＬＡＧ）グループを用いてサーバに接続された複数のスイッチを有するシステムの概略図である。
【図４】一実施形態による方法のフローチャートである。
【発明を実施するための形態】
【００１２】
以下の説明は、本発明の一般的な原理を示すためになされるものであり、本明細書で請求される本発明の概念を限定することを意図するものではない。さらに、本明細書で説明される特定の特徴は、種々の可能な組み合わせ及び置換の各々において、他の説明される特徴と組み合わせて用いることができる。
【００１３】
本明細書で明確に別段の定めがない限り、全ての用語には、本明細書から暗示される意味、並びに、当業者により理解される意味、及び／又は辞書、協定等で定義される意味を含む、最も広い可能な解釈が与えられるべきである。
【００１４】
本明細書及び添付の特許請求の範囲において用いられる場合、別段の定めがない限り、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、複数の指示対象を含むことにも留意されたい。
【００１５】
１つの一般的な実施形態において、リンク・アグリゲーション（ＬＡＧ）を異種スイッチに提供するためのシステムが、各々が複数の接続を介して接続される、サーバに接続された少なくとも２つのスイッチを含み、少なくとも２つのスイッチは、インター・スイッチ・リンク（ｉｎｔｅｒ−ｓｗｉｔｃｈ  ｌｉｎｋ、ＩＳＬ）を介して互いに接続される。サーバは、各接続に関するＬＡＧ要求を少なくとも２つのスイッチの各々に送って、複数のＬＡＧグループを作成するように適合された論理であって、少なくとも２つのスイッチの各々に対する１つのＬＡＧグループはそれらの間の全ての接続を含む、論理を含む。少なくとも２つのスイッチの各々は、サーバからＬＡＧ要求を受信するように適合された論理と、ＬＡＧ要求を、少なくとも２つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。また、スイッチ・コントローラは、少なくとも２つのスイッチから、転送されたＬＡＧ要求を受信するように適合された論理と、サーバに対応する複数のＬＡＧ要求の受信を判断するように適合された論理と、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化するように適合された論理と、全てのＬＡＧグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、少なくとも２つのスイッチの各々に指示するように適合された論理と、スイッチ・コントローラからの指示により、少なくとも２つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成された論理とを含む。
【００１６】
別の一般的な実施形態において、ＬＡＧを異種スイッチに提供するためのコンピュータ・プログラム製品が、それにより具体化されたコンピュータ可読プログラムを有するコンピュータ可読記憶媒体を含む。コンピュータ可読プログラム・コードは、スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断するように構成されたコンピュータ可読プログラム・コードと、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化し、全てのＬＡＧグループをサーバと関連付けるように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、スイッチの各々に指示するように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成されたコンピュータ可読プログラム・コードとを含む。
【００１７】
さらに別の一般的な実施形態において、ＬＡＧを異種スイッチに提供する方法は、スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断することと、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化し、全てのＬＡＧグループをサーバと関連付けることと、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、スイッチの各々に指示することと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成することとを含む。
【００１８】
ＯｐｅｎＦｌｏｗソフトウェアを動作させるコントローラなどのスイッチ・コントローラを用いることにより、スイッチ・コントローラと通信を行うことができるネットワーク内のスイッチをＬＡＧグループにグループ化し、その結果、これらのスイッチが同じベンダーに属する及び／又は同じモデルであるという制限なしに、複数のスイッチにわたって通信を分割することができる。これを達成するために、スイッチ・コントローラ内にインテリジェンス又は機能を構築し、スイッチ・コントローラが使用するどのソフトウェアにも対応する複数のスイッチにわたるＬＡＧグループを可能にすることができる。一実施形態において、スイッチ・コントローラがＯｐｅｎＦｌｏｗを動作させるとき、スイッチはＯｐｅｎＦｌｏｗ対応のものとし、ＬＡＧの使用を可能にすることができる。
【００１９】
当業者により認識されるように、本発明の態様は、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、これらは全て、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み込まれた、１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形を取ることができる。
【００２０】
１つ又は複数のコンピュータ可読媒体のいずれの組み合わせも用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又は非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータ可読ストレージ媒体とすることができる。非一時的コンピュータ可読ストレージ媒体は、これらに限定されるものではないが、例えば、電子、磁気、光学、電磁気、赤外線又は半導体のシステム、装置又はデバイス、又は上記のいずれかの適切な組み合わせとすることができる。非一時的コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、ブルーレイ（Ｂｌｕ−ｒａｙ）ディスク読み出し専用メモリ（ＢＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせが挙げられる。本明細書の文脈において、非一時的コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いるため、又はこれらと接続して用いるためにプログラムを収容又は格納することができる任意の有形媒体とすることができる。
【００２１】
コンピュータ可読信号媒体は、例えばベースバンド内に、又は搬送波の一部として、具体化されたコンピュータ可読プログラム・コードをその中に有する、伝搬されるデータ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はそれらの任意の適切な組み合わせを含む、種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、非一時的コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって、又はそれらと接続して用いるためにプログラムを伝達し、伝搬し、又は搬送することができる任意のコンピュータ可読媒体とすることができる。
【００２２】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限られるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記の任意の適切な組み合わせを含む、任意の適切な媒体を用いて伝送することができる。
【００２３】
本発明の態様に関する操作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、ＳｍａｌｌＴａｌｋ（登録商標）、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語、又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータ又はサーバは、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、及び／又は広域ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は例えばインターネット・サービス・プロバイダを用いたインターネットを通じて外部コンピュータへの接続がなされる場合もある。
【００２４】
本発明の態様は、本発明の種々の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して、本明細書で説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。
【００２５】
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【００２６】
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにもすることもできる。
【００２７】
図１は、一実施形態によるネットワーク・アーキテクチャ１００を示す。図１に示されるように、第１の遠隔ネットワーク１０４及び第２の遠隔ネットワーク１０６を含む複数の遠隔ネットワーク１０２が提供される。遠隔ネットワーク１０２と近接ネットワーク１０８との間に、ゲートウェイ１０１を結合することができる。このネットワーク・アーキテクチャ１００との関連において、ネットワーク１０４、１０６はそれぞれ、これらに限定されるものではないが、ＬＡＮ、インターネットなどのＷＡＮ、公衆交換電話網（ＰＳＴＮ）、構内電話網等を含む、いずれかの形態をとることができる。
【００２８】
使用中、ゲートウェイ１０１は、遠隔ネットワーク１０２から近接ネットワーク１０８までの入口点（ｅｎｔｒａｎｃｅ  ｐｏｉｎｔ）として働く。従って、ゲートウェイ１０１は、ゲートウェイ１０１に到達するデータの所定のパケットを指向させることができるルータ、及び、所定のパケットについてのゲートウェイ１０１に出入りする実際の経路を提供するスイッチとして機能することができる。
【００２９】
近隣ネットワーク１０８に結合され、かつ、ゲートウェイ１０１を介して遠隔ネットワーク１０２からアクセス可能である少なくとも１つのデータ・サーバ１１４が、さらに含まれる。データ・サーバ１１４は、任意のタイプのコンピューティング装置／グループウェアを含み得ることに留意されたい。複数のユーザ・デバイス１１６が、各々のデータ・サーバ１１４に結合される。こうしたユーザ・デバイス１１６は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、及び／又はいずれかの他のタイプの論理を含むデバイスを含むことができる。幾つかの実施形態においては、ユーザ・デバイス１１１をネットワークのいずれかに直接結合できることにも留意されたい。
【００３０】
例えば、ファクシミリ装置、プリンタ、スキャナ、ハードディスク・ドライブ、ネットワーク化された及び／又はローカル・ストレージ・ユニット若しくはシステムなどの周辺機器１２０又は一連の周辺機器１２０を、ネットワーク１０４、１０６、１０８の１つ又は複数に結合することができる。データベース及び／又は付加的なコンポーネントを、ネットワーク１０４、１０６、１０８に結合されたいずれかのタイプのネットワーク要素と共に利用すること又はこれに統合することが可能であることに留意されたい。この説明との関連において、ネットワーク要素は、任意のネットワーク・コンポーネントを指すことができる。
【００３１】
幾つかの手法によると、本明細書で説明される方法及びシステムは、ＩＢＭ  ｚ／ＯＳ環境をエミュレートするＵＮＩＸシステム、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ環境を仮想的にホストするＵＮＩＸシステム、ＩＢＭ  ｚ／ＯＳ環境をエミュレートするＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳシステム等のような、１つ又は複数の他のシステムをエミュレートする仮想システム及び／又はシステムと共に、及び／又はこれらの上で実装することができる。幾つかの実施形態において、この仮想化及び／又はエミュレーションは、ＶＭＷＡＲＥソフトウェアを用いて機能強化することができる。
【００３２】
さらなる手法において、１つ又は複数のネットワーク１０４、１０６、１０８は、一般に「クラウド」と呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングにおいて、処理パワー、周辺機器、ソフトウェア、データ、サーバ等の共有リソースは、クラウド内のいずれかのシステムにオン・デマンド関係で提供され、それにより、多くのコンピューティング・システムにわたるアクセス及びサービスの分配が可能になる。クラウド・コンピューティングは、一般的には、クラウド内で動作するシステムの間のインターネット接続を要するが、当技術分野で周知のような、システムを接続する他の技術を用いてもよい。
【００３３】
図２は、一実施形態による、図１のユーザ・デバイス１１６及び／又はサーバ１１４と関連付けられた代表的なハードウェア環境を示す。幾つかの実施形態によると、図２は、マイクロプロセッサのような中央処理ユニット（ＣＰＵ）２１０と、ローカル・バス、パラレル・バス、シリアル・バスなどの種々のタイプのものとすることができる１つ又は複数のバス２１２を介して相互接続された多数の他のユニットとを有するワークステーションの典型的なハードウェア構成を示す。
【００３４】
図２に示されるワークステーションは、ランダム・アクセス・メモリ（ＲＡＭ）２１４と、読み出し専用メモリ（ＲＯＭ）２１６と、ディスク・ストレージ・ユニット２２０などの周辺機器を１つ又は複数のバス２１２に接続するためのＩ／Ｏアダプタ２１８と、キーボード２２４、マウス２２６、スピーカー２２８、マイクロフォン２３２、及び／又はタッチ・スクリーン、デジタル・カメラ（図示せず）などの他のユーザ・インターフェース・デバイスを１つ又は複数のバス２１２に接続するためのユーザ・インターフェース・アダプタ２２２と、ワークステーションを通信ネットワーク２３５（例えば、データ処理ネットワーク）に接続するための通信アダプタ２３４と、１つ又は複数のバス２１２をディスプレイ装置２３８に接続するためのディスプレイ・アダプタ２３６とを含む。
【００３５】
ワークステーションは、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システム（ＯＳ）、ＭＡＣ  ＯＳ、ＵＮＩＸ  ＯＳ等のようなオペレーティング・システムが上に常駐していてもよい。上述したもの以外のプラットフォーム及びオペレーティング・システム上に、好ましい実施形態を実装してもよいことが理解されるであろう。好ましい実施形態は、オブジェクト指向プログラミング方法と共に、ＪＡＶＡ、ＸＭＬ、Ｃ、及び／又はＣ＋＋言語、又は他のプログラミング言語を用いて書くことができる。複雑なアプリケーションを開発するのにますます用いられるようになっているオブジェクト指向プログラミング（ＯＯＰ）を用いてもよい。
【００３６】
ここで図３を参照すると、接続３０８を介してサーバ３０２に接続された複数のスイッチ３１０を有するシステム３００が、一実施形態に従って示される。各々のスイッチは、（破線の接続３１６で示されるように）直接的又は間接的にスイッチ・コントローラ３０６に接続される。スイッチ・コントローラ３０６は、スイッチ３１０の各々から情報を受信することができ、情報及び／又はコマンドをスイッチ３１０に送ることができる。
【００３７】
一実施形態によれば、スイッチ・コントローラ３０６は、ＯｐｅｎＦｌｏｗ標準に従って動作することができ、各々のスイッチ３１０は、ＯｐｅｎＦｌｏｗ対応のものとすることができる。他の実施形態において、スイッチ・コントローラ３０６は、Ｂｅａｃｏｎ、Ｊａｘｏｎ、ＮＯＸ、ＰＯＸ、Ｍａｅｓｔｒｏ等の、当業者には周知のスイッチ３１０を制御することができる異なるアプリケーションを用いることができる。
【００３８】
サーバ３０２がＬＡＧグループを構成するとき、サーバ３０２は、ＬＡＧグループ構成要求を、全てのスイッチ３１０（図３に示されるように、スイッチ１、スイッチ２、又はスイッチ３）に送る。次に、スイッチ３１０は、ＬＡＧ要求をスイッチ・コントローラ３０６に転送する。いずれの付加的なＬＡＧグループについても、サーバ３０２は、付加的なＬＡＧグループ構成要求をスイッチ３１０に送ることができる。
【００３９】
スイッチ・コントローラ３０６は、異なるスイッチ３１０によって送られる、同じサーバ３０２から生じる多数の要求を把握しており、この可視性のため、スイッチ・コントローラ３０６は、これらの要求を相互に関連付けることができる。スイッチ・コントローラ３０６は、受信要求を転送したスイッチ３１０に基づいて、受信要求をグループ化する（図３に示されるように、スイッチ・コントローラ３０６は、受信要求を、それぞれスイッチ１、スイッチ２、及びスイッチ３と相関するＬＡＧ１  ３０４、ＬＡＧ２  ３１２、及びＬＡＧ３  ３１４に分けることができる）。
【００４０】
次に、スイッチ・コントローラ３０６は、その分類（例えば、ＬＡＧ１  ３０４、ＬＡＧ２  ３１２、及びＬＡＧ３  ３１４）に従ってＬＡＧグループを構成するように、スイッチ３１０に指示する。スイッチ３１０は、サーバ３０２に接続されたそれぞれのポート・グループに関してこれらのＬＡＧグループを作成し、各々のスイッチ（スイッチ１、スイッチ２、スイッチ３）は、そのフロー・テーブルを用いてパケット転送の観点から、これのグループ化されたポートをエンティティとして扱う。
【００４１】
一実施形態によれば、複数のリンクの間でトラフィックを均衡化させるための既存の機構を使用し続けることができる。この時点で、各々のスイッチ３１０は、サーバ３０２との接続に関して構成されたＬＡＧグループ（それぞれ、スイッチ１、スイッチ２、及びスイッチ３についてのＬＡＧ１  ３０４、ＬＡＧ２  ３１２、及びＬＡＧ３  ３１４）を有する。しかしながら、個々のスイッチ３１０は、依然として、このＬＡＧグループがマルチスイッチＬＡＧ３１８（ｖＬＡＧと呼ぶこともできる）の一部であることを知らない。
【００４２】
スイッチ３１０はまた、ＩＳＬを用いて互いに接続される。これらのＩＳＬは、サーバ３０２へのスイッチの接続３０８が機能しない（ｆａｉｌ）状況のために、スイッチ３１０間に設けられる。例えば、スイッチ１とサーバ３０２との間の接続３０８が機能しない場合、パケットは、ＩＳＬ１を介して隣接するスイッチ２に送り、次いでサーバ３０２に送ることができる。同様に、パケットがサーバ３０２からスイッチ１まで送られる予定であり、スイッチ１とサーバ３０２との間の接続３０８が機能ない場合には、パケットを隣接するスイッチ２に送り、次いでＩＳＬ２ａを介して意図したスイッチ１に送ることができる。図３に示されるように、この同じ機構が、ＩＳＬｂ２及びＩＳＬ３を介してスイッチ２とスイッチ３との間で可能である。
【００４３】
ひとたびサーバ３０２によりこれらのＬＡＧグループが構成されると、ＬＡＧ１  ３０４をその宛先ポートとして有するスイッチ１上のあらゆるフロー（ここで、フローは発信元から宛先へ送られるパケットを指す）について、スイッチ・コントローラ３０６はまた、ＬＡＧ２  ３１２をその宛先ポートとして有するスイッチ２上及び／又はＬＡＧ３  ３１４をその宛先ポートとして有するスイッチ３上の対応するフローも作成する。同様に、ＬＡＧ３  ３１４をその宛先ポートとして有するスイッチ３上のあらゆるフローについて、スイッチ・コントローラ３０６はまた、ＬＡＧ２  ３１２をその宛先ポートとして有するスイッチ２上及び／又はＬＡＧ１  ３０４をその宛先ポートとして有するスイッチ１上の対応するフローも作成する。また、ＬＡＧ２  ３１２をその宛先ポートとして有するスイッチ２上のあらゆるフローについて、スイッチ・コントローラ３０６はまた、ＬＡＧ１  ３０４をその宛先ポートとして有するスイッチ１上及び／又はＬＡＧ３  ３１４をその宛先ポートとして有するスイッチ３上の対応するフローも作成する。スイッチ・コントローラ３０６は、管理者が所望するように又はスイッチ・コントローラの設定において指定されるように、１つ又は複数の代替的スイッチ上の対応するフローを構成することができる。このように、スイッチ・コントローラ３０６は、個々のスイッチを通る各フローについて複数の代替的経路を構成することができる。
【００４４】
さらに、幾つかの実施形態において、ＬＡＧ１  ３０４をその宛先ポートとして有するスイッチ１上のあらゆるフローは、スイッチ３上並びにスイッチ２上に作成された対応するフローを有することができる。この実施形態において、スイッチ１とスイッチ３との間のＩＳＬ（図３には示されていない）も存在し得る。ＬＡＧグループ内のいずれの複数のスイッチの間に、他の同様のフローを構成してもよい。
【００４５】
スイッチ・コントローラ３０６は、サーバ３０２へのＬＡＧが機能していない（ＬＡＧが機能しないために、ＬＡＧ内の全てのリンクが機能していない）状況を検出すると、機能していないＬＡＧに向けられるあらゆるフローが、ＩＳＬを介して隣接するスイッチ３１０にリダイレクトされ、次いで隣接するスイッチ３１０上のＬＡＧに沿って送出される。
【００４６】
例えば、サーバ３０２とスイッチ１との間の全ての接続が機能していないと仮定する。この例では、スイッチ・コントローラ３０６は、ＬＡＧ１  ３０４と表される宛先を有するスイッチ１上の全てのフローを変更し、フローをＩＳＬＩにリダイレクトし、例えばスイッチ２などの隣接するスイッチ３１０にリダイレクトされるようにする。スイッチ２とサーバ３０２との間の全ての接続３０８が機能しない状況では、スイッチ・コントローラ３０６は、ＬＡＧ２  ３１２の宛先が指定されたスイッチ２上のフローをスイッチ１又はスイッチ３のいずれかにリダイレクトすることができる。別の例においては、スイッチ３を別のスイッチ（例えば、スイッチ４）に接続し、これらのスイッチは、これらの間にＩＳＬを有することができ、それにより、サーバへのスイッチの接続の全てが機能しない場合、２つのスイッチが連携して、一方が他方のバックアップとして働くシステムを生成することができる。
【００４７】
スイッチ・コントローラ３０６が、ＬＡＧ１の回復（サーバ３０２とスイッチ１との間の少なくとも１つの接続３０８が再び機能している）を検出すると、スイッチ・コントローラ３０６は、ＬＡＧ１  ３０４からＩＳＬ２ａに宛先を切り換えた（スイッチ２によって処理されるように）全てのフローを元のＬＡＧ１  ３０４に戻す（スイッチ１で処理されるように）。
【００４８】
このように、サーバ３０２は、ｖＬＡＧ３１８内の１つの接続３０８が依然として機能している限り、個々のスイッチ３１０とサーバ３０２との間の接続３０８が機能しているかどうかに関係なく、ｖＬＡＧ３１８内のいずれかのスイッチ３１０を通してフローを送受信する能力を有する。
【００４９】
各々のスイッチ３１０は、１つ又は複数のフロー・テーブルを用いて、入ってくるパケットをどのように処理するかをスイッチに指示する。本明細書で説明される実施形態に従ってスイッチ３１０がフローをリダイレクトするように、フロー・テーブルを変更することができる。
【００５０】
ＬＡＧグループ内の最大ポート数は変化し得る。幾つかの例示的なＬＡＧグループ内の最大ポート数は、２、６、１０、１６、３２、６４等とすることができ、スイッチ３１０内で用いられる特定のスイッチング・プロセッサに関連させることができる。種々の実施形態において、スイッチング・プロセッサは、最低でも３２のＬＡＧグループ、６４のＬＡＧグループ、１２８のＬＡＧグループ、２５６のＬＡＧグループ等をサポートすることができる。さらに、前述のように、ＬＡＧグループの性質は静的なものとしても又は動的なものとしてもよい。
【００５１】
ここで図４を参照すると、一実施形態による、ＬＡＧ情報をピア・スイッチ間で交換するための方法４００のフローチャートである。この方法４００は、種々の実施形態において、とりわけ、図１−図３に示される環境のいずれかにおいて本発明に従って実施することができる。もちろん、この説明を読めば当業者により理解されるように、図４に具体的に説明されるもの以外のより多くの又より少ない動作を方法４００内に含ませることができる。
【００５２】
方法４００のステップの各々は、動作環境の任意の適切なコンポーネントにより実施することができる。例えば、一実施形態において、方法４００は、別のピア・スイッチとＬＡＧグループ関係にあるスイッチの、スイッチングＡＳＩＣ又はＣＰＵなどのプロセッサによって部分的に又は全体的に実施することができる。
【００５３】
図４に示されるように、方法４００は、スイッチ・コントローラにおいて、スイッチにより転送されたＬＡＧ要求を受信し、サーバに対応する複数のＬＡＧ要求の受信を判断する、動作４０２で開始する。例えば、同じサーバについて複数のＬＡＧ要求の受信を判断することができ、その場合、サーバと受信した複数のＬＡＧ要求との間の相関関係を確立することができる。
【００５４】
一実施形態によれば、スイッチ・コントローラは、ＯｐｅｎＦｌｏｗ標準によって動作するように適合させることができ、スイッチはＯｐｅｎＦｌｏｗ対応のものとすることができる。
【００５５】
別の実施形態において、サーバ及びスイッチの各々は、当技術分野において周知のあらゆるアルゴリズムに従って、それらの間の複数の接続の間でトラフィックを均衡化させることができる。
【００５６】
動作４０４において、複数のＬＡＧ要求が、これらを受信したスイッチに従ってＬＡＧグループにグループ化され、全てのＬＡＧグループがサーバと関連付けられる。このように、複数のＬＡＧグループを指定することができ、次にこれらをサーバとスイッチとの間に構成することができる。
【００５７】
動作４０６において、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、スイッチの各々に指示する。ＬＡＧグループの全てのメンバーは、共通キーなどのユニバーサル・インジケータを用いてサーバに応答し、これらがマルチスイッチＬＡＧ（ｖＬＡＧ）の一部であることをサーバに伝える。
【００５８】
動作４０８において、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローが作成される。このように、他のスイッチは、グループ内のスイッチの１つが既に学習した学習フローのプロセスを経る必要がない。
【００５９】
ＬＡＧが機能しない場合、スイッチ・コントローラは、対応するスイッチの規則を更新して、機能していないＬＡＧに向けられたトラフィックを、ＩＳＬを介して隣接するスイッチに向けさせ、隣接したスイッチのＬＡＧを用いてトラフィックが送出されるようにする。このように、ＬＡＧが機能しない場合、機能していないＬＡＧに向けられたトラフィック・フローをリダイレクトするために、サーバへのＬＡＧと共に利用することができる、バックアップ・スイッチが存在する。
【００６０】
機能していないＬＡＧが回復すると、スイッチ・コントローラは、ＬＡＧポートをその宛先として指し示す隣接するスイッチからフロー・エントリのコピーを作成し、回復したＬＡＧの使用を可能にする。
【００６１】
一実施形態によれば、方法４００は、サーバと第１のスイッチの間の第１のＬＡＧがいつ機能しなくなったかを判断することと、第１のＬＡＧを宛先として有するあらゆるトラフィック・フローを、第１のスイッチと第２のスイッチとの間のＩＳＬを介して、第２のスイッチとサーバとの間の第２のＬＡＧにリダイレクトすることとをさらに含むことができる。このように、バックアップＬＡＧを用いて、依然として、トラフィックを意図した宛先に送出しながら、機能していないＬＡＧを回避することができる。
【００６２】
さらに別の実施形態によれば、方法４００は、第１のＬＡＧがいつ回復したかを判断することと、リダイレクトされたトラフィック・フローを第１のＬＡＧに戻すこととをさらに含むことができる。このように、第１のＬＡＧが機能するようになった後、フローを第１のＬＡＧに戻し、ｖＬＡＧを用いて、負荷分散を種々のＬＡＧにわたって再び行うことができる。
【００６３】
さらなる実施形態において、再び図４を参照すると、方法４００のいずれか又は全ての動作は、システム、スイッチ、デバイス、又はコンピュータ・プログラム製品において実施することができる。
【００６４】
例えば、一実施形態において、ＬＡＧを異種スイッチに提供するためのシステムは、各々が複数の接続を介して接続される、サーバに接続された少なくとも２つのスイッチと、スイッチに接続されたスイッチ・コントローラとを含む。少なくとも２つのスイッチは、ＩＳＬを介して相互に接続され、サーバは、各接続に関するＬＡＧ要求を少なくとも２つのスイッチの各々に送り、複数のＬＡＧグループを作成するように適合された論理であって、少なくとも２つのスイッチの各々に対する１つのＬＡＧグループがそれらの間の全ての接続を含む、論理を含む。少なくとも２つのスイッチの各々は、サーバからＬＡＧ要求を受信するように適合された論理と、ＬＡＧ要求を、少なくとも２つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。スイッチ・コントローラは、少なくとも２つのスイッチから転送されたＬＡＧ要求を受信するように適合された論理と、サーバに対応する複数のＬＡＧ要求の受信を判断するように適合された論理と、複数のＬＡＧ要求を、それらを受信したスイッチに従ってＬＡＧグループにグループ化するように適合された論理と、全てのＬＡＧグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したＬＡＧグループに従ってサーバによりＬＡＧグループを構成するように、少なくとも２つのスイッチの各々に指示するように適合された論理と、少なくとも２つのスイッチの間のＩＳＬを用いて、少なくとも２つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように適合された論理と、これらの代替的フローを、少なくとも２つのスイッチの各々にアクセス可能な１つ又は複数のフロー・テーブルに書き込むように適合された論理とを含む。
【００６５】
種々の実施形態が上で説明されたが、これらは、制限としてではなく、単なる一例として提示されたものにすぎないことを理解されたい。従って、本発明の実施形態の広さ及び範囲は、上述の例示的な実施形態のいずれに限定されるものではなく、以下の特許請求の範囲及びそれらの均等物のみに従って定められるべきである。
【符号の説明】
【００６６】
１００：ネットワーク・アーキテクチャ
１０１：ゲートウェイ
１０２、１０４、１０６：遠隔ネットワーク
１０８：近接ネットワーク
１１１、１１６：ユーザ・デバイス
１１４：データ・サーバ
１２０：周辺機器
２１０：中央処理ユニット（ＣＰＵ）
２１２：バス
２１４：ランダム・アクセス・メモリ（ＲＡＭ）
２１６：読み出し専用メモリ（ＲＯＭ）
２１８：Ｉ／Ｏアダプタ
２２０：ディスク・ストレージ・ユニット
２２２：ユーザ・インターフェース・アダプタ
２２４：キーボード
２２６：マウス
２２８：スピーカー
２３２：マイクロフォン
２３４：通信アダプタ
２３５：通信ネットワーク
２３６：ディスプレイ・アダプタ
２３８：ディスプレイ装置
３００：システム
３０２：サーバ
３０４：ＬＡＧ１
３０６：スイッチ・コントローラ
３０８、３１６：接続
３１０：スイッチ
３１２：ＬＡＧ２
３１４：ＬＡＧ３
３１８：マルチスイッチＬＡＧ（ｖＬＡＧ）
４００：方法
【図１】
0006341932.tif 000002
【図２】
0006341932.tif 000003
【図３】
0006341932.tif 000004
【図４】
0006341932.tif 000005