特許第6341932号(P6341932)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許6341932多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG)
<>
  • 特許6341932-多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG) 図000002
  • 特許6341932-多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG) 図000003
  • 特許6341932-多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG) 図000004
  • 特許6341932-多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG) 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6341932
(24)【登録日】2018年5月25日
(45)【発行日】2018年6月13日
(54)【発明の名称】多重スイッチで用いる拡張されたリンク・アグリゲーション(LAG)
(51)【国際特許分類】
   H04L 12/891 20130101AFI20180604BHJP
   H04L 12/717 20130101ALI20180604BHJP
   H04L 12/803 20130101ALI20180604BHJP
   H04L 12/711 20130101ALI20180604BHJP
【FI】
   H04L12/891
   H04L12/717
   H04L12/803
   H04L12/711
【請求項の数】11
【全頁数】16
(21)【出願番号】特願2015-552152(P2015-552152)
(86)(22)【出願日】2013年12月11日
(65)【公表番号】特表2016-507174(P2016-507174A)
(43)【公表日】2016年3月7日
(86)【国際出願番号】IB2013060802
(87)【国際公開番号】WO2014111766
(87)【国際公開日】20140724
【審査請求日】2016年11月29日
(31)【優先権主張番号】13/742,267
(32)【優先日】2013年1月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ジェイン、ヴィニット
(72)【発明者】
【氏名】カマット、ダヤヴァンティ、ゴパール
(72)【発明者】
【氏名】クマール、アヴィジット、プラブハカー
(72)【発明者】
【氏名】レシオ、レナート
【審査官】 大石 博見
(56)【参考文献】
【文献】 特開2011−81588(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/891
H04L 12/711
H04L 12/717
H04L 12/803
(57)【特許請求の範囲】
【請求項1】
リンク・アグリゲーション(LAG)を異種スイッチに提供するためのシステムであって、
各々が複数の接続を介してサーバに接続される、サーバに接続された少なくとも2つのスイッチを含み、前記少なくとも2つのスイッチはインター・スイッチ・リンク(ISL)を介して互いに接続され、
前記サーバは、各接続に関するLAG要求を前記少なくとも2つのスイッチの各々に送って、複数のLAGグループを作成するように適合された論理であって、前記少なくとも2つのスイッチの各々に対する1つのLAGグループはそれらの間の全ての接続を含む、
論理を含み、
前記少なくとも2つのスイッチの各々は、
前記サーバから前記LAG要求を受信するように適合された論理と、
前記LAG要求を、前記少なくとも2つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理と、
を含み、
前記スイッチ・コントローラは、
前記少なくとも2つのスイッチから、前記転送されたLAG要求を受信するように適合された論理と、
前記サーバに対応する複数のLAG要求の受信を判断するように適合された論理と、
前記複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化するように適合された論理と、
全ての前記LAGグループを前記サーバと関連付けるように適合された論理と、
前記スイッチ・コントローラが決定した前記LAGグループに従って前記サーバにより前記LAGグループを構成するように、前記少なくとも2つのスイッチの各々に指示するように適合された論理と、
前記スイッチ・コントローラからの指示により、前記少なくとも2つのスイッチの各々を通り前記サーバに至るフローに対応する代替的フローを作成するように適合された論理と、
を含む、システム。
【請求項2】
前記スイッチ・コントローラは、OpenFlow標準に従って動作するように適合され、前記少なくとも2つのスイッチは、OpenFlow対応のものである、請求項1に記載のシステム。
【請求項3】
前記サーバ及び前記少なくとも2つのスイッチの各々は、これらの間の前記複数の接続の間でトラフィックを均衡化させる、請求項1に記載のシステム。
【請求項4】
前記スイッチ・コントローラは、
前記サーバと第1のスイッチとの間の第1のLAGがいつ機能しなくなったかを判断するように適合された論理と、
前記第1のLAGを宛先として有するあらゆるトラフィック・フローを、第2のスイッチと前記サーバとの間の第2のLAGに、前記第1のスイッチと前記第2のスイッチとの間のISLを介してリダイレクトするように適合された論理と、
をさらに含む、請求項1に記載のシステム。
【請求項5】
前記スイッチ・コントローラは、
前記第1のLAGがいつ回復したか判断するように適合された論理と、
前記リダイレクトされたトラフィック・フローを前記第1のLAGに戻すように適合された論理と、
をさらに含む、請求項4に記載のシステム。
【請求項6】
リング・アグリゲーション(LAG)を異種スイッチに提供する方法であって、
スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断することと、
前記複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化し、全ての前記LAGグループを前記サーバと関連付けることと、
前記スイッチの各々に、前記スイッチ・コントローラにより決定された前記LAGグループに従って、前記サーバによりLAGグループを構成するように指示すること、
前記スイッチ・コントローラからの指示により、前記スイッチの各々を通り前記サーバに至るフローに対応する代替的フローを作成することと、
を含む、方法。
【請求項7】
前記スイッチ・コントローラは、OpenFlow標準に従って動作するように適合され、前記スイッチは、OpenFlow対応のものである、請求項6に記載の方法。
【請求項8】
前記サーバ及び前記スイッチの各々は、前記サーバ及び前記スイッチの各々の間の複数の接続の間でトラフィックを均衡化させる、請求項6に記載の方法。
【請求項9】
前記サーバと第1のスイッチとの間の第1のLAGがいつ機能しなくなったかを判断することと、
前記第1のLAGを宛先として有するあらゆるトラフィック・フローを、第2のスイッチと前記サーバとの間の第2のLAGに、前記第1のスイッチと前記第2のスイッチとの間のISLを介してリダイレクトすることと、
をさらに含む、請求項6に記載の方法。
【請求項10】
前記第1のLAGがいつ回復したかを判断することと、
前記リダイレクトされたトラフィック・フローを前記第1のLAGに戻すことと、
をさらに含む、請求項9に記載の方法。
【請求項11】
コンピュータ・プログラムであって、請求項6−10のいずれか一項に記載の方法の各ステップを、コンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ・センター・インフラストラクチャに関し、より具体的には、本発明は、ベンダー又は番号の制限なしに、リンク・アグリゲーションを多重スイッチに拡張することに関する。
【背景技術】
【0002】
ネットワーク・パケット・スイッチは、複数のスイッチ・ポートを用いた高帯域幅のポート・チャネルを作成するために、リンク・アグリゲーション(Link Agrregation、LAG)を用いる。LAGは、静的又は動的に形成することができる。静的LAGは、それらがLAGのメンバーであるように構成された場合、常にLAGのメンバーである固定ポート数を有する。リンク・アグリゲーション制御プロトコル(Link Aggregation and Control Protocol)/LACP IEEE 802.3ADに従った動的LAGは、ポート・メンバーが動的に動的LAGに参加し、これから去る機能を提供する。アルゴリズムを用いてLAGポート上でのネットワーク・トラフィックの分散又は負荷分散が達成され、LAGのメンバーにわたる分散を制御するために、現在、様々なアルゴリズムが利用可能である。優れたアルゴリズムは、メンバー・ポートにわたってパケットをハッシュする効率的な方法を提供し、各ポートが均等に使用されることを確実にし、どのポートも輻輳しないことを保証する。
【0003】
スイッチング特定用途向け集積回路(ASIC)などのスイッチング・プロセッサを用いて、ネットワーク・パケットのためのポートを選択する種々のアルゴリズムを提供することができる。アルゴリズムの大部分は、パケットのパケット・ヘッダ内の情報から形成されたタプルに基づいている。タプルは、典型的には、発信元媒体アクセス制御(MAC)アドレス、宛先MACアドレス、仮想ローカル・エリア・ネットワーク(VLAN)識別子、発信元インターネット・プロトコル(IP)アドレス、宛先IPアドレス、発信元トランスポート・ポート、及び宛先トランスポート・ポートを含む。一部のアルゴリズムは、ポートのより優れた分散及び/又は他の使用率メトリクスを達成するための付加的なプラグラム可能因子を考慮する。
【0004】
単一のリンク障害(single link failure)を起こしにくい高帯域幅パイプを実現するために、サーバ・スイッチ間のLAGが使用されることが多い。また、このLAGは、スイッチの故障を防ぐために複数の協働するスイッチにわたって使用されることも多い。しかしながら、通常、このLAGは、スイッチが同じベンダーからものであることを必要とし、さらに、しばしば、スイッチが同じモデルである必要がある。また、LAGが一対のスイッチだけに限定されることも多い。
【0005】
LAGは、ネットワーク内のスイッチの重要な特性であり、一般に、スイッチ及びネットワークの性能に影響を及ぼす。LAGはまた、互いに接続されたスイッチの組の全体的性能も変える。従って、複数のスイッチをLAG内でサーバに一緒に接続すること、及び複数のベンダー及び複数のモデル番号のスイッチをLAG内で一緒にグループ化することを可能にすることは有益である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
リンク・アグリゲーション(LAG)を異種スイッチに提供するためのシステム、コンピュータ・プログラム及び方法を提供する。
【課題を解決するための手段】
【0007】
一実施形態において、リンク・アグリゲーション(LAG)を異種スイッチに提供するためのシステムが、各々が複数の接続を介してサーバに接続される、サーバに接続された少なくとも2つのスイッチを含み、少なくとも2つのスイッチは、インター・スイッチ・リンク(ISL)を介して互いに接続される。サーバは、各接続に関するLAG要求を少なくとも2つのスイッチの各々に送って、複数のLAGグループを作成するように適合された論理であって、少なくとも2つのスイッチの各々に対する1つのLAGグループはそれらの間の全ての接続を含む、論理を含む。少なくとも2つのスイッチの各々は、サーバからLAG要求を受信するように適合された論理と、LAG要求を、少なくとも2つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。また、スイッチ・コントローラは、少なくとも2つのスイッチから、転送されたLAG要求を受信するように適合された論理と、サーバに対応する複数のLAG要求の受信を判断するように適合された論理と、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化するように適合された論理と、全てのLAGグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、少なくとも2つのスイッチの各々に指示するように適合された論理と、スイッチ・コントローラからの指示により、少なくとも2つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように適合された論理とを含む。
【0008】
別の実施形態において、LAGを異種スイッチに提供するためのコンピュータ・プログラム製品が、それにより具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を含む。このコンピュータ可読プログラム・コードは、スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断するように構成されたコンピュータ可読プログラム・コードと、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化し、全てのLAGグループをサーバと関連付けるように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、スイッチの各々に指示するように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成されたコンピュータ可読プログラム・コードとを含む。
【0009】
さらに別の実施形態において、LAGを異種スイッチに提供する方法が、スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断することと、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化し、全てのLAGグループをサーバと関連付けることと、スイッチ・コントローラが決定したLAGグループに従ってサーバサーバによりLAGグループを構成するように、スイッチの各々に指示すること、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成することとを含む。
【0010】
本発明の他の態様及び実施形態は、図面と併せて読まれる、本発明の例示的な原理を示す、以下の詳細な説明から明らかになるであろう。
ここで、図面を参照して、単なる一例として本発明の実施形態を説明する。
【図面の簡単な説明】
【0011】
図1】一実施形態によるネットワーク・アーキテクチャを示す。
図2】一実施形態による、図1のサーバ及び/又はクライアントと関連付けることができる典型的なハードウェア環境を示す。
図3】一実施形態による、複数のリンク・アグリゲーション(LAG)グループを用いてサーバに接続された複数のスイッチを有するシステムの概略図である。
図4】一実施形態による方法のフローチャートである。
【発明を実施するための形態】
【0012】
以下の説明は、本発明の一般的な原理を示すためになされるものであり、本明細書で請求される本発明の概念を限定することを意図するものではない。さらに、本明細書で説明される特定の特徴は、種々の可能な組み合わせ及び置換の各々において、他の説明される特徴と組み合わせて用いることができる。
【0013】
本明細書で明確に別段の定めがない限り、全ての用語には、本明細書から暗示される意味、並びに、当業者により理解される意味、及び/又は辞書、協定等で定義される意味を含む、最も広い可能な解釈が与えられるべきである。
【0014】
本明細書及び添付の特許請求の範囲において用いられる場合、別段の定めがない限り、単数形「a」、「an」、及び「the」は、複数の指示対象を含むことにも留意されたい。
【0015】
1つの一般的な実施形態において、リンク・アグリゲーション(LAG)を異種スイッチに提供するためのシステムが、各々が複数の接続を介して接続される、サーバに接続された少なくとも2つのスイッチを含み、少なくとも2つのスイッチは、インター・スイッチ・リンク(inter−switch link、ISL)を介して互いに接続される。サーバは、各接続に関するLAG要求を少なくとも2つのスイッチの各々に送って、複数のLAGグループを作成するように適合された論理であって、少なくとも2つのスイッチの各々に対する1つのLAGグループはそれらの間の全ての接続を含む、論理を含む。少なくとも2つのスイッチの各々は、サーバからLAG要求を受信するように適合された論理と、LAG要求を、少なくとも2つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。また、スイッチ・コントローラは、少なくとも2つのスイッチから、転送されたLAG要求を受信するように適合された論理と、サーバに対応する複数のLAG要求の受信を判断するように適合された論理と、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化するように適合された論理と、全てのLAGグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、少なくとも2つのスイッチの各々に指示するように適合された論理と、スイッチ・コントローラからの指示により、少なくとも2つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成された論理とを含む。
【0016】
別の一般的な実施形態において、LAGを異種スイッチに提供するためのコンピュータ・プログラム製品が、それにより具体化されたコンピュータ可読プログラムを有するコンピュータ可読記憶媒体を含む。コンピュータ可読プログラム・コードは、スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断するように構成されたコンピュータ可読プログラム・コードと、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化し、全てのLAGグループをサーバと関連付けるように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、スイッチの各々に指示するように構成されたコンピュータ可読プログラム・コードと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように構成されたコンピュータ可読プログラム・コードとを含む。
【0017】
さらに別の一般的な実施形態において、LAGを異種スイッチに提供する方法は、スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断することと、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化し、全てのLAGグループをサーバと関連付けることと、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、スイッチの各々に指示することと、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローを作成することとを含む。
【0018】
OpenFlowソフトウェアを動作させるコントローラなどのスイッチ・コントローラを用いることにより、スイッチ・コントローラと通信を行うことができるネットワーク内のスイッチをLAGグループにグループ化し、その結果、これらのスイッチが同じベンダーに属する及び/又は同じモデルであるという制限なしに、複数のスイッチにわたって通信を分割することができる。これを達成するために、スイッチ・コントローラ内にインテリジェンス又は機能を構築し、スイッチ・コントローラが使用するどのソフトウェアにも対応する複数のスイッチにわたるLAGグループを可能にすることができる。一実施形態において、スイッチ・コントローラがOpenFlowを動作させるとき、スイッチはOpenFlow対応のものとし、LAGの使用を可能にすることができる。
【0019】
当業者により認識されるように、本発明の態様は、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、これらは全て、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み込まれた、1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形を取ることができる。
【0020】
1つ又は複数のコンピュータ可読媒体のいずれの組み合わせも用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又は非一時的(non−transitory)コンピュータ可読ストレージ媒体とすることができる。非一時的コンピュータ可読ストレージ媒体は、これらに限定されるものではないが、例えば、電子、磁気、光学、電磁気、赤外線又は半導体のシステム、装置又はデバイス、又は上記のいずれかの適切な組み合わせとすることができる。非一時的コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)として、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、ブルーレイ(Blu−ray)ディスク読み出し専用メモリ(BD−ROM)、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせが挙げられる。本明細書の文脈において、非一時的コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いるため、又はこれらと接続して用いるためにプログラムを収容又は格納することができる任意の有形媒体とすることができる。
【0021】
コンピュータ可読信号媒体は、例えばベースバンド内に、又は搬送波の一部として、具体化されたコンピュータ可読プログラム・コードをその中に有する、伝搬されるデータ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はそれらの任意の適切な組み合わせを含む、種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、非一時的コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって、又はそれらと接続して用いるためにプログラムを伝達し、伝搬し、又は搬送することができる任意のコンピュータ可読媒体とすることができる。
【0022】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限られるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は上記の任意の適切な組み合わせを含む、任意の適切な媒体を用いて伝送することができる。
【0023】
本発明の態様に関する操作を実行するためのコンピュータ・プログラム・コードは、Java(登録商標)、SmallTalk(登録商標)、C++等のようなオブジェクト指向型プログラミング言語、及び、「C」プログラミング言語、又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータ又はサーバは、ローカル・エリア・ネットワーク(LAN)、ストレージ・エリア・ネットワーク(SAN)、及び/又は広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は例えばインターネット・サービス・プロバイダを用いたインターネットを通じて外部コンピュータへの接続がなされる場合もある。
【0024】
本発明の態様は、本発明の種々の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して、本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作り出すようにすることができる。
【0025】
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。
【0026】
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにもすることもできる。
【0027】
図1は、一実施形態によるネットワーク・アーキテクチャ100を示す。図1に示されるように、第1の遠隔ネットワーク104及び第2の遠隔ネットワーク106を含む複数の遠隔ネットワーク102が提供される。遠隔ネットワーク102と近接ネットワーク108との間に、ゲートウェイ101を結合することができる。このネットワーク・アーキテクチャ100との関連において、ネットワーク104、106はそれぞれ、これらに限定されるものではないが、LAN、インターネットなどのWAN、公衆交換電話網(PSTN)、構内電話網等を含む、いずれかの形態をとることができる。
【0028】
使用中、ゲートウェイ101は、遠隔ネットワーク102から近接ネットワーク108までの入口点(entrance point)として働く。従って、ゲートウェイ101は、ゲートウェイ101に到達するデータの所定のパケットを指向させることができるルータ、及び、所定のパケットについてのゲートウェイ101に出入りする実際の経路を提供するスイッチとして機能することができる。
【0029】
近隣ネットワーク108に結合され、かつ、ゲートウェイ101を介して遠隔ネットワーク102からアクセス可能である少なくとも1つのデータ・サーバ114が、さらに含まれる。データ・サーバ114は、任意のタイプのコンピューティング装置/グループウェアを含み得ることに留意されたい。複数のユーザ・デバイス116が、各々のデータ・サーバ114に結合される。こうしたユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、手持ち式コンピュータ、プリンタ、及び/又はいずれかの他のタイプの論理を含むデバイスを含むことができる。幾つかの実施形態においては、ユーザ・デバイス111をネットワークのいずれかに直接結合できることにも留意されたい。
【0030】
例えば、ファクシミリ装置、プリンタ、スキャナ、ハードディスク・ドライブ、ネットワーク化された及び/又はローカル・ストレージ・ユニット若しくはシステムなどの周辺機器120又は一連の周辺機器120を、ネットワーク104、106、108の1つ又は複数に結合することができる。データベース及び/又は付加的なコンポーネントを、ネットワーク104、106、108に結合されたいずれかのタイプのネットワーク要素と共に利用すること又はこれに統合することが可能であることに留意されたい。この説明との関連において、ネットワーク要素は、任意のネットワーク・コンポーネントを指すことができる。
【0031】
幾つかの手法によると、本明細書で説明される方法及びシステムは、IBM z/OS環境をエミュレートするUNIXシステム、MICROSOFT WINDOWS環境を仮想的にホストするUNIXシステム、IBM z/OS環境をエミュレートするMICROSOFT WINDOWSシステム等のような、1つ又は複数の他のシステムをエミュレートする仮想システム及び/又はシステムと共に、及び/又はこれらの上で実装することができる。幾つかの実施形態において、この仮想化及び/又はエミュレーションは、VMWAREソフトウェアを用いて機能強化することができる。
【0032】
さらなる手法において、1つ又は複数のネットワーク104、106、108は、一般に「クラウド」と呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングにおいて、処理パワー、周辺機器、ソフトウェア、データ、サーバ等の共有リソースは、クラウド内のいずれかのシステムにオン・デマンド関係で提供され、それにより、多くのコンピューティング・システムにわたるアクセス及びサービスの分配が可能になる。クラウド・コンピューティングは、一般的には、クラウド内で動作するシステムの間のインターネット接続を要するが、当技術分野で周知のような、システムを接続する他の技術を用いてもよい。
【0033】
図2は、一実施形態による、図1のユーザ・デバイス116及び/又はサーバ114と関連付けられた代表的なハードウェア環境を示す。幾つかの実施形態によると、図2は、マイクロプロセッサのような中央処理ユニット(CPU)210と、ローカル・バス、パラレル・バス、シリアル・バスなどの種々のタイプのものとすることができる1つ又は複数のバス212を介して相互接続された多数の他のユニットとを有するワークステーションの典型的なハードウェア構成を示す。
【0034】
図2に示されるワークステーションは、ランダム・アクセス・メモリ(RAM)214と、読み出し専用メモリ(ROM)216と、ディスク・ストレージ・ユニット220などの周辺機器を1つ又は複数のバス212に接続するためのI/Oアダプタ218と、キーボード224、マウス226、スピーカー228、マイクロフォン232、及び/又はタッチ・スクリーン、デジタル・カメラ(図示せず)などの他のユーザ・インターフェース・デバイスを1つ又は複数のバス212に接続するためのユーザ・インターフェース・アダプタ222と、ワークステーションを通信ネットワーク235(例えば、データ処理ネットワーク)に接続するための通信アダプタ234と、1つ又は複数のバス212をディスプレイ装置238に接続するためのディスプレイ・アダプタ236とを含む。
【0035】
ワークステーションは、MICROSOFT WINDOWSオペレーティング・システム(OS)、MAC OS、UNIX OS等のようなオペレーティング・システムが上に常駐していてもよい。上述したもの以外のプラットフォーム及びオペレーティング・システム上に、好ましい実施形態を実装してもよいことが理解されるであろう。好ましい実施形態は、オブジェクト指向プログラミング方法と共に、JAVA、XML、C、及び/又はC++言語、又は他のプログラミング言語を用いて書くことができる。複雑なアプリケーションを開発するのにますます用いられるようになっているオブジェクト指向プログラミング(OOP)を用いてもよい。
【0036】
ここで図3を参照すると、接続308を介してサーバ302に接続された複数のスイッチ310を有するシステム300が、一実施形態に従って示される。各々のスイッチは、(破線の接続316で示されるように)直接的又は間接的にスイッチ・コントローラ306に接続される。スイッチ・コントローラ306は、スイッチ310の各々から情報を受信することができ、情報及び/又はコマンドをスイッチ310に送ることができる。
【0037】
一実施形態によれば、スイッチ・コントローラ306は、OpenFlow標準に従って動作することができ、各々のスイッチ310は、OpenFlow対応のものとすることができる。他の実施形態において、スイッチ・コントローラ306は、Beacon、Jaxon、NOX、POX、Maestro等の、当業者には周知のスイッチ310を制御することができる異なるアプリケーションを用いることができる。
【0038】
サーバ302がLAGグループを構成するとき、サーバ302は、LAGグループ構成要求を、全てのスイッチ310(図3に示されるように、スイッチ1、スイッチ2、又はスイッチ3)に送る。次に、スイッチ310は、LAG要求をスイッチ・コントローラ306に転送する。いずれの付加的なLAGグループについても、サーバ302は、付加的なLAGグループ構成要求をスイッチ310に送ることができる。
【0039】
スイッチ・コントローラ306は、異なるスイッチ310によって送られる、同じサーバ302から生じる多数の要求を把握しており、この可視性のため、スイッチ・コントローラ306は、これらの要求を相互に関連付けることができる。スイッチ・コントローラ306は、受信要求を転送したスイッチ310に基づいて、受信要求をグループ化する(図3に示されるように、スイッチ・コントローラ306は、受信要求を、それぞれスイッチ1、スイッチ2、及びスイッチ3と相関するLAG1 304、LAG2 312、及びLAG3 314に分けることができる)。
【0040】
次に、スイッチ・コントローラ306は、その分類(例えば、LAG1 304、LAG2 312、及びLAG3 314)に従ってLAGグループを構成するように、スイッチ310に指示する。スイッチ310は、サーバ302に接続されたそれぞれのポート・グループに関してこれらのLAGグループを作成し、各々のスイッチ(スイッチ1、スイッチ2、スイッチ3)は、そのフロー・テーブルを用いてパケット転送の観点から、これのグループ化されたポートをエンティティとして扱う。
【0041】
一実施形態によれば、複数のリンクの間でトラフィックを均衡化させるための既存の機構を使用し続けることができる。この時点で、各々のスイッチ310は、サーバ302との接続に関して構成されたLAGグループ(それぞれ、スイッチ1、スイッチ2、及びスイッチ3についてのLAG1 304、LAG2 312、及びLAG3 314)を有する。しかしながら、個々のスイッチ310は、依然として、このLAGグループがマルチスイッチLAG318(vLAGと呼ぶこともできる)の一部であることを知らない。
【0042】
スイッチ310はまた、ISLを用いて互いに接続される。これらのISLは、サーバ302へのスイッチの接続308が機能しない(fail)状況のために、スイッチ310間に設けられる。例えば、スイッチ1とサーバ302との間の接続308が機能しない場合、パケットは、ISL1を介して隣接するスイッチ2に送り、次いでサーバ302に送ることができる。同様に、パケットがサーバ302からスイッチ1まで送られる予定であり、スイッチ1とサーバ302との間の接続308が機能ない場合には、パケットを隣接するスイッチ2に送り、次いでISL2aを介して意図したスイッチ1に送ることができる。図3に示されるように、この同じ機構が、ISLb2及びISL3を介してスイッチ2とスイッチ3との間で可能である。
【0043】
ひとたびサーバ302によりこれらのLAGグループが構成されると、LAG1 304をその宛先ポートとして有するスイッチ1上のあらゆるフロー(ここで、フローは発信元から宛先へ送られるパケットを指す)について、スイッチ・コントローラ306はまた、LAG2 312をその宛先ポートとして有するスイッチ2上及び/又はLAG3 314をその宛先ポートとして有するスイッチ3上の対応するフローも作成する。同様に、LAG3 314をその宛先ポートとして有するスイッチ3上のあらゆるフローについて、スイッチ・コントローラ306はまた、LAG2 312をその宛先ポートとして有するスイッチ2上及び/又はLAG1 304をその宛先ポートとして有するスイッチ1上の対応するフローも作成する。また、LAG2 312をその宛先ポートとして有するスイッチ2上のあらゆるフローについて、スイッチ・コントローラ306はまた、LAG1 304をその宛先ポートとして有するスイッチ1上及び/又はLAG3 314をその宛先ポートとして有するスイッチ3上の対応するフローも作成する。スイッチ・コントローラ306は、管理者が所望するように又はスイッチ・コントローラの設定において指定されるように、1つ又は複数の代替的スイッチ上の対応するフローを構成することができる。このように、スイッチ・コントローラ306は、個々のスイッチを通る各フローについて複数の代替的経路を構成することができる。
【0044】
さらに、幾つかの実施形態において、LAG1 304をその宛先ポートとして有するスイッチ1上のあらゆるフローは、スイッチ3上並びにスイッチ2上に作成された対応するフローを有することができる。この実施形態において、スイッチ1とスイッチ3との間のISL(図3には示されていない)も存在し得る。LAGグループ内のいずれの複数のスイッチの間に、他の同様のフローを構成してもよい。
【0045】
スイッチ・コントローラ306は、サーバ302へのLAGが機能していない(LAGが機能しないために、LAG内の全てのリンクが機能していない)状況を検出すると、機能していないLAGに向けられるあらゆるフローが、ISLを介して隣接するスイッチ310にリダイレクトされ、次いで隣接するスイッチ310上のLAGに沿って送出される。
【0046】
例えば、サーバ302とスイッチ1との間の全ての接続が機能していないと仮定する。この例では、スイッチ・コントローラ306は、LAG1 304と表される宛先を有するスイッチ1上の全てのフローを変更し、フローをISLIにリダイレクトし、例えばスイッチ2などの隣接するスイッチ310にリダイレクトされるようにする。スイッチ2とサーバ302との間の全ての接続308が機能しない状況では、スイッチ・コントローラ306は、LAG2 312の宛先が指定されたスイッチ2上のフローをスイッチ1又はスイッチ3のいずれかにリダイレクトすることができる。別の例においては、スイッチ3を別のスイッチ(例えば、スイッチ4)に接続し、これらのスイッチは、これらの間にISLを有することができ、それにより、サーバへのスイッチの接続の全てが機能しない場合、2つのスイッチが連携して、一方が他方のバックアップとして働くシステムを生成することができる。
【0047】
スイッチ・コントローラ306が、LAG1の回復(サーバ302とスイッチ1との間の少なくとも1つの接続308が再び機能している)を検出すると、スイッチ・コントローラ306は、LAG1 304からISL2aに宛先を切り換えた(スイッチ2によって処理されるように)全てのフローを元のLAG1 304に戻す(スイッチ1で処理されるように)。
【0048】
このように、サーバ302は、vLAG318内の1つの接続308が依然として機能している限り、個々のスイッチ310とサーバ302との間の接続308が機能しているかどうかに関係なく、vLAG318内のいずれかのスイッチ310を通してフローを送受信する能力を有する。
【0049】
各々のスイッチ310は、1つ又は複数のフロー・テーブルを用いて、入ってくるパケットをどのように処理するかをスイッチに指示する。本明細書で説明される実施形態に従ってスイッチ310がフローをリダイレクトするように、フロー・テーブルを変更することができる。
【0050】
LAGグループ内の最大ポート数は変化し得る。幾つかの例示的なLAGグループ内の最大ポート数は、2、6、10、16、32、64等とすることができ、スイッチ310内で用いられる特定のスイッチング・プロセッサに関連させることができる。種々の実施形態において、スイッチング・プロセッサは、最低でも32のLAGグループ、64のLAGグループ、128のLAGグループ、256のLAGグループ等をサポートすることができる。さらに、前述のように、LAGグループの性質は静的なものとしても又は動的なものとしてもよい。
【0051】
ここで図4を参照すると、一実施形態による、LAG情報をピア・スイッチ間で交換するための方法400のフローチャートである。この方法400は、種々の実施形態において、とりわけ、図1図3に示される環境のいずれかにおいて本発明に従って実施することができる。もちろん、この説明を読めば当業者により理解されるように、図4に具体的に説明されるもの以外のより多くの又より少ない動作を方法400内に含ませることができる。
【0052】
方法400のステップの各々は、動作環境の任意の適切なコンポーネントにより実施することができる。例えば、一実施形態において、方法400は、別のピア・スイッチとLAGグループ関係にあるスイッチの、スイッチングASIC又はCPUなどのプロセッサによって部分的に又は全体的に実施することができる。
【0053】
図4に示されるように、方法400は、スイッチ・コントローラにおいて、スイッチにより転送されたLAG要求を受信し、サーバに対応する複数のLAG要求の受信を判断する、動作402で開始する。例えば、同じサーバについて複数のLAG要求の受信を判断することができ、その場合、サーバと受信した複数のLAG要求との間の相関関係を確立することができる。
【0054】
一実施形態によれば、スイッチ・コントローラは、OpenFlow標準によって動作するように適合させることができ、スイッチはOpenFlow対応のものとすることができる。
【0055】
別の実施形態において、サーバ及びスイッチの各々は、当技術分野において周知のあらゆるアルゴリズムに従って、それらの間の複数の接続の間でトラフィックを均衡化させることができる。
【0056】
動作404において、複数のLAG要求が、これらを受信したスイッチに従ってLAGグループにグループ化され、全てのLAGグループがサーバと関連付けられる。このように、複数のLAGグループを指定することができ、次にこれらをサーバとスイッチとの間に構成することができる。
【0057】
動作406において、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、スイッチの各々に指示する。LAGグループの全てのメンバーは、共通キーなどのユニバーサル・インジケータを用いてサーバに応答し、これらがマルチスイッチLAG(vLAG)の一部であることをサーバに伝える。
【0058】
動作408において、スイッチ・コントローラからの指示により、スイッチの各々を通りサーバに至るフローに対応する代替的フローが作成される。このように、他のスイッチは、グループ内のスイッチの1つが既に学習した学習フローのプロセスを経る必要がない。
【0059】
LAGが機能しない場合、スイッチ・コントローラは、対応するスイッチの規則を更新して、機能していないLAGに向けられたトラフィックを、ISLを介して隣接するスイッチに向けさせ、隣接したスイッチのLAGを用いてトラフィックが送出されるようにする。このように、LAGが機能しない場合、機能していないLAGに向けられたトラフィック・フローをリダイレクトするために、サーバへのLAGと共に利用することができる、バックアップ・スイッチが存在する。
【0060】
機能していないLAGが回復すると、スイッチ・コントローラは、LAGポートをその宛先として指し示す隣接するスイッチからフロー・エントリのコピーを作成し、回復したLAGの使用を可能にする。
【0061】
一実施形態によれば、方法400は、サーバと第1のスイッチの間の第1のLAGがいつ機能しなくなったかを判断することと、第1のLAGを宛先として有するあらゆるトラフィック・フローを、第1のスイッチと第2のスイッチとの間のISLを介して、第2のスイッチとサーバとの間の第2のLAGにリダイレクトすることとをさらに含むことができる。このように、バックアップLAGを用いて、依然として、トラフィックを意図した宛先に送出しながら、機能していないLAGを回避することができる。
【0062】
さらに別の実施形態によれば、方法400は、第1のLAGがいつ回復したかを判断することと、リダイレクトされたトラフィック・フローを第1のLAGに戻すこととをさらに含むことができる。このように、第1のLAGが機能するようになった後、フローを第1のLAGに戻し、vLAGを用いて、負荷分散を種々のLAGにわたって再び行うことができる。
【0063】
さらなる実施形態において、再び図4を参照すると、方法400のいずれか又は全ての動作は、システム、スイッチ、デバイス、又はコンピュータ・プログラム製品において実施することができる。
【0064】
例えば、一実施形態において、LAGを異種スイッチに提供するためのシステムは、各々が複数の接続を介して接続される、サーバに接続された少なくとも2つのスイッチと、スイッチに接続されたスイッチ・コントローラとを含む。少なくとも2つのスイッチは、ISLを介して相互に接続され、サーバは、各接続に関するLAG要求を少なくとも2つのスイッチの各々に送り、複数のLAGグループを作成するように適合された論理であって、少なくとも2つのスイッチの各々に対する1つのLAGグループがそれらの間の全ての接続を含む、論理を含む。少なくとも2つのスイッチの各々は、サーバからLAG要求を受信するように適合された論理と、LAG要求を、少なくとも2つのスイッチと電気通信を行うスイッチ・コントローラに転送するように適合された論理とを含む。スイッチ・コントローラは、少なくとも2つのスイッチから転送されたLAG要求を受信するように適合された論理と、サーバに対応する複数のLAG要求の受信を判断するように適合された論理と、複数のLAG要求を、それらを受信したスイッチに従ってLAGグループにグループ化するように適合された論理と、全てのLAGグループをサーバと関連付けるように適合された論理と、スイッチ・コントローラが決定したLAGグループに従ってサーバによりLAGグループを構成するように、少なくとも2つのスイッチの各々に指示するように適合された論理と、少なくとも2つのスイッチの間のISLを用いて、少なくとも2つのスイッチの各々を通りサーバに至るフローに対応する代替的フローを作成するように適合された論理と、これらの代替的フローを、少なくとも2つのスイッチの各々にアクセス可能な1つ又は複数のフロー・テーブルに書き込むように適合された論理とを含む。
【0065】
種々の実施形態が上で説明されたが、これらは、制限としてではなく、単なる一例として提示されたものにすぎないことを理解されたい。従って、本発明の実施形態の広さ及び範囲は、上述の例示的な実施形態のいずれに限定されるものではなく、以下の特許請求の範囲及びそれらの均等物のみに従って定められるべきである。
【符号の説明】
【0066】
100:ネットワーク・アーキテクチャ
101:ゲートウェイ
102、104、106:遠隔ネットワーク
108:近接ネットワーク
111、116:ユーザ・デバイス
114:データ・サーバ
120:周辺機器
210:中央処理ユニット(CPU)
212:バス
214:ランダム・アクセス・メモリ(RAM)
216:読み出し専用メモリ(ROM)
218:I/Oアダプタ
220:ディスク・ストレージ・ユニット
222:ユーザ・インターフェース・アダプタ
224:キーボード
226:マウス
228:スピーカー
232:マイクロフォン
234:通信アダプタ
235:通信ネットワーク
236:ディスプレイ・アダプタ
238:ディスプレイ装置
300:システム
302:サーバ
304:LAG1
306:スイッチ・コントローラ
308、316:接続
310:スイッチ
312:LAG2
314:LAG3
318:マルチスイッチLAG(vLAG)
400:方法
図1
図2
図3
図4