(57)【要約】【課題】ネットワーク・ノードのフェイルオーバーについて開示する。【解決手段】第１ノードがマルチキャスト・グループに加わる（１０２）。これは３対応の内１つを行って遂行される（１０４）。第１はフェイルオーバー・アドレスを第１ノードに関連付け、第１ノードはこのアドレスをマルチキャスト・アドレスとして持ち該グループに有効に加わる。第２はマルチキャスト・アドレスを第１ノードに関連付ける。第３はスイッチのマルチキャスト・ポートを第１ノードのポートにマップする。第１ノードの障害時（１０６）、３対応の内１つが遂行される。参加がフェイルオーバー・アドレスに関する時、これを第２ノードに関連付け第２ノードは有効にグループに加わる（１１４）。参加がマルチキャスト・アドレスに関する時、第２ノードはグループに加わりこのアドレスを第２ノードと関連付ける（１１０）。参加がスイッチのマルチキャスト・ポートのマップである場合は、このポートを第２ノードのポートに再マップする（１１２）。【選択図】図１
2004537918.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの第１のノードによって、マルチキャスト・アドレスを持ったマルチキャスト・グループに参加するステップ（１０２）であって、前記参加が、本質的に、
フェイルオーバー・アドレスを前記第１のノードと関連付けて、その結果、前記フェイルオーバー・アドレスを前記マルチキャスト・アドレスとして保持する前記マルチキャスト・グループに、前記第１のノードを有効に参加させ、前記フェイルオーバー・アドレスへの通信が前記ネットワークを経由して前記第１のノードへと向けられるようにするステップと、
前記マルチキャスト・アドレスを前記第１のノードと関連付けて、その結果、前記フェイルオーバー・アドレスへの通信が前記ネットワークを経由して前記第１のノードへと向けられるようにするステップと、
前記ネットワークに属する１つのスイッチ上の１つのマルチキャスト・ポートを、前記第１のノード上の１つのポートにマップして、その結果、前記マルチキャスト・アドレスへの通信が、前記スイッチ上の前記マルチキャスト・ポートから前記第１のノード上の前記ポートへと向けられるようにするステップ（１０４）とから成るグループの中から選択されるステップと、
前記第１のノードの障害の際（１０８）に、
もし前記参加が、前記フェイルオーバー・アドレスを前記第１のノードと関連付けるものである場合には、前記フェイルオーバー・アドレスを第２のノードと関連付け、その結果、前記第２のノードを前記マルチキャスト・グループに有効に参加させ、また、前記フェイルオーバー・アドレスに対する前記通信が前記第２のノードによって取り扱われるようにするステップ（１１４）と、
もし前記参加が、前記マルチキャスト・アドレスを前記第１のノードと関連付けるものである場合には、前記ネットワークに属する前記第２のノードが前記マルチキャスト・グループに参加し、その結果、前記マルチキャスト・アドレスが前記第２のノードと関連付けられ、また、前記マルチキャスト・アドレスに対する前記通信が前記第２のノードによって取り扱われるようにするステップ（１１０）と、
もし前記参加が、前記スイッチ上の前記マルチキャスト・ポートを前記第１のノード上の前記ポートにマップするものである場合には、前記スイッチ上の前記マルチキャスト・ポートを前記第２のノード上の１つのポートに再マップし、その結果、前記マルチキャスト・アドレスへの前記通信が前記第２のノード上の前記ポートへと向けられるようにするステップ（１１２）と、
を有する方法。
【請求項２】
前記ネットワークがインフィニバンド・ネットワークである、請求項１に記載の方法。
【請求項３】
前記フェイルオーバー・アドレスが、本質的に、
フェイルオーバーＬＩＤの１つの閾値よりも小さい値を持つフェイルオーバー位置識別子（ＬＩＤ）であって、前記ネットワークがインフィニバンド・ネットワークを有する、位置識別子と、
有効なＬＩＤの範囲内にある１つのフェイルオーバー位置識別子（ＬＩＤ）であって、前記ネットワークが１つのインフィニバンド・ネットワークを有する、位置識別子と、
前記ネットワークを経由するいかなる転送方法についても、ソースＬＩＤとしてのチェックが行われることが無く、また、前記ネットワークを経由するいかなる転送方法についても、マルチキャスト宛先ＬＩＤ（ＤＬＩＤ）としては受け入れられる、フェイルオーバー位置識別子（ＬＩＤ）であって、前記ネットワークがインフィニバンド・ネットワークを有する、位置識別子と、
から成るグループの中から選択される、
請求項１に記載の方法。
【請求項４】
もし前記参加が、前記ネットワークに属する前記第２のノードが前記マルチキャスト・グループに参加するのに先立って、前記マルチキャスト・アドレスまたは前記フェイルオーバー・アドレスを前記第１のノードに関連付けるものである場合に、前記第２のノードが前記第１のノードの代わりに１つのサブネット・マネージャ（SM）に対して１つの立去り要求を送信することによって、前記第１のノードが前記マルチキャスト・グループから立去るステップ（７０６）、を更に有する、請求項１、２、または３に記載の方法。
【請求項５】
もし前記参加が、前記第１のノードが障害から回復するに際して、前記マルチキャスト・アドレスまたは前記フェイルオーバー・アドレスを前記第１のノードに関連付けるものである場合に、前記フェイルオーバー・アドレスを前記第１のノードに関連付け、その結果前記フェイルオーバー・アドレスに対する通信が再び前記第１のノードによって取り扱われるようにするステップ（７１２）、を更に有する、請求項１、２、３、または４に記載の方法。
【請求項６】
もし前記参加が、前記マルチキャスト・アドレスまたは前記フェイルオーバー・アドレスを前記第１のノードに関連付けるものである場合に、前記ネットワークに属する前記第１のノードによる前記マルチキャスト・グループへの前記参加が、前記第１のノードが１つのサブネット・マネージャ（ＳＭ）に対して前記マルチキャスト・グループに参加することを要求するステップを有する、請求項１、２、３、４、または５に記載の方法。
【請求項７】
もし前記参加が、前記スイッチ上の前記マルチキャスト・ポートを前記第１のノード上の前記ポートにマップするものであり、前記第２のノードが、前記スイッチ上の前記マルチキャスト・ポートを前記第２のノードに再マップすることを、１つのサブネット・マネージャ（ＳＭ）に対して要求することによって、前記スイッチ上の前記マルチキャスト・ポートが前記第２のノード上の前記ポートに再マップされるものである場合に、前記ＳＭが前記スイッチ上の前記マルチキャスト・ポートを前記第２のノード上の前記ポートに再マップすることを行う、請求項１または２に記載の方法。
【請求項８】
もし前記参加が、前記第１のノードが障害から回復するに際して、前記スイッチ上の前記マルチキャスト・ポートを前記第１のノード上の前記ポートにマップするものである場合に、前記スイッチ上の前記マルチキャスト・ポートを前記第１のノード上の前記ポートに再マップし、その結果、前記マルチキャスト・アドレスに対する通信が再び前記第１のノード上の前記ポートへと向けられるようにするステップ（９１２）、を更に有する、請求項１、２、または７に記載の方法。
【請求項９】
請求項１、２、３、４、５、６、７、または８に記載の方法のための１つのフェイルオーバー・ノード。
【請求項１０】
コンピュータ可読の媒体と、
請求項１、２、３、４、５、６、７、または８に記載の方法を実行するための、前記媒体における手段と、
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、インフィニバンド・ネットワークなどのネットワークに関するものであり、特にこれらネットワーク内のノードのフェイルオーバー（障害時切り替え）に関するものである。
【背景技術】
【０００２】
システム・バスなどの入出力（Ｉ／Ｏ）ネットワークは、コンピュータのプロセッサがネットワーク・アダプタなどの周辺装置と通信するために用いることができる。  しかしながら、ＰＣＩ（Peripheral Component Interface）バスなどの共用Ｉ／Ｏネットワークのアーキテクチャにおける制約は、コンピュータの全体的なパフォーマンスを制限する。  それゆえ、新しいタイプのＩ／Ｏネットワークが提案されてきた。
【０００３】
新しいタイプのＩ／Ｏネットワークの一つはインフィニバンド・ネットワークとして知られ、またその名で呼ばれている。  インフィニバンド・ネットワークは、コンピュータ内で現在見受けられるＰＣＩやその他のバスを、１つまたは複数のルーターを備えたパケット切り替えネットワークで置き換えるものである。  １つのホスト・チャネル・アダプタ（ＨＣＡ）がプロセッサを１つのサブネットとつなぎ、一方、複数のターゲット・チャネル・アダプタ（ＴＣＡ）が周辺装置を当該サブネットとつなぐ。  当該サブネットには、少なくとも１つのスイッチと、当該ＨＣＡおよび当該複数のＴＣＡを当該スイッチに接続する複数のリンクとがある。  例えば、簡易なインフィニバンド・ネットワークは１つのスイッチを持つことができ、ＨＣＡと複数のＴＣＡとが複数のリンクを介して（そのスイッチに）接続される。  より複雑なトポロジー（位相的構成）もまた可能であり、検討もされている。
【０００４】
インフィニバンド・ネットワークの各終端ノードは１つまたは複数のチャネル・アダプタ（ＣＡ）を備えており、各ＣＡは１つまたは複数のポートを備えている。  各ポートは、１つの局所サブネット・マネージャ（ＳＭ）によって割り当てられた１つの局所識別子（ＬＩＤ）を備えている。  当該サブネット内ではＬＩＤは固有の（1種類につき１つしか存在しない）ものである。  各スイッチは、当該サブネット内でのパケットの経路決めをするためにこれらＬＩＤを使用する。  各々のデータ・パケットは、このパケットを当該サブネットへ投入した（ソースの）ポートを識別するソースＬＩＤ（ＳＬＩＤ）と、当該インフィニバンド・ファブリック（構造）もしくはネットワークがこのパケットを配信しなければならない（宛先の）ポートを識別する宛先ＬＩＤ（ＤＬＩＤ）とを含んでいる。
【０００５】
このインフィニバンド・ネットワーク手法では、ＬＩＤマスク・カウント（ＬＭＣ）を規定することによって、１つの物理ポート内に複数の仮想ポートを提供する。  このＬＭＣは、あるパケットのＤＬＩＤがそれ（パケット）に割り当てられるＬＩＤと一致することを確認する際に、物理ポートがマスクする、即ち無視する、当該ＬＩＤの最下位側のビット数を指定するものである。  しかし、各スイッチはこれらのビットを無視しない。  それ故、ＳＭは当該最下位側ビットに基づいて、当該インフィニバンド・ファブリックを通過する異なった複数の経路をプログラムすることができる。  従って当該ポートは、当該ファブリックを横切って経路指定する上で、２つのＬＭＣポートのように見える。
【０００６】
障害なしに２４時間使用可能であることが必要とされる重要なアプリケーションにおいては、個々のアプリケーションの、また従って、通信の終端点、即ち終端ノード、のフェイルオーバー（障害時切り替え）が通常求められる。  インフィニバンド・ネットワークの状況下における通信終端点は、各ＣＡポートと関係している。  これらのアプリケーションは、当該インフィニバンド・ネットワークをまたがって、例えば他のアプリケーション等と通信するためにこれらの終端点を使用する。  終端点のトランスペアレントな（ユーザーから気付かれない）フェイルオーバーとは、ネットワーク自体における通信を中断させないような方法で、別の終端点が、障害を起こした終端点の責務を取って代わることであると意味することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、インフィニバンド・ネットワークにおける終端点およびその他のノードのトランスペアレントなフェイルオーバーは、これら終端点をアドレス指定するという方法のため、実現するのが困難である。  フェイルオーバーには、当該障害ポートに取って代わっている新しいポートに対してＬＩＤが再割り当てされることが必要である。  しかし、当該新しいポートは、それに割り当てられた１つのＬＩＤを通常既に保持している。 従って、追加のＬＩＤを割り当てることができる唯一の方法は、当該ポート上でＬＭＣの範囲を拡張し、当該新しいＬＩＤがその範囲内に入ることを保証することである。
【０００８】
しかし実際上は、各ポート上でＬＭＣの範囲を拡張することは困難であり、取って代わるポートが、障害を起こしたポートに割り当てられていたＬＩＤを持てるよう保証するためには、時には著しい労力を要する。  ＬＩＤフェイルオーバーはそれ故、トランスペアレントなフェイルオーバーが必要なインフィニバンド・ネットワークを成功裏に広く行き渡らせることに対しての問題および障壁と見られている。  その他の理由を加えたこれらの理由によって、本発明の必要性が存在する。
【課題を解決するための手段】
【０００９】
本発明は、１つのフェイルオーバー・アドレスまたは１つのマルチキャスト（同報送信）・アドレスを用いた、ネットワーク内でのノードのフェイルオーバーに関するものである。  本発明の方法において、あるネットワークに属する第１のノードが、１つのマルチキャスト・アドレスを持った１つのマルチキャスト・グループに参加する。  この参加は、３つの対応の内の１つをとることにより実行される。  １つ目の対応では、１つのフェイルオーバー・アドレスを当該第１のノードに関連付けることができ、その結果、当該第１のノードは、当該フェイルオーバー・アドレスをマルチキャスト・アドレスとして持つマルチキャスト・グループに有効に参加する。 当該フェイルオーバー・アドレスに対する通信は、当該ネットワークを通って当該第１のノードに向けられる。  ２つ目の対応では、当該マルチキャスト・アドレスを当該第１のノードに関連付けることができ、その結果、そこ（マルチキャスト・アドレス）に対する通信は、当該ネットワークを通って当該第１のノードに向けられる。  ３つ目の対応では、当該ネットワークに属する１つのスイッチ上の１つのマルチキャスト・ポートを、当該第１のノード上の１つのポートにマップする（位置付ける）ことができる。  当該マルチキャスト・アドレスに対する通信は、当該スイッチ上の当該マルチキャスト・ポートから当該第１のノード上のこのポートへと向けられる。
【００１０】
当該第１のノードの障害に際しては、当該第１のノードを当該ネットワークに参加させた方法に対応して、３つの対応の内の１つが行われる。  もしこの参加が、当該フェイルオーバー・アドレスを当該第１のノードに関連付けるものであるならば、当該フェイルオーバー・アドレスは第２のノードに関連付けられ、その結果、当該第２のノードは当該マルチキャスト・グループに有効に参加し、そこ（フェイルオーバー・アドレス）に対する通信は当該第２のノードによって取り扱われる。  もしこの参加が、当該マルチキャスト・アドレスを当該第１のノードに関連付けるものであるならば、当該第２のノードが当該マルチキャスト・グループに参加し、その結果、当該マルチキャスト・アドレスは当該第２のノードに関連付けられ、当該マルチキャスト・アドレスに対する通信は当該第２のノードによって取り扱われる。  もしこの参加が、当該スイッチ上の当該マルチキャスト・ポートを当該第１のノード上の先のポートにマップするものであるならば、当該スイッチ上の当該マルチキャスト・ポートは当該第２のノード上の１つのポートに再マップされる。  従って当該マルチキャスト・アドレスに対する通信は、当該第２のノード上のこのポートへと向けられる。
【００１１】
本発明はまたフェイルオーバー・ノードと装置をも含んでいる。  これらフェイルオーバー・ノードとは本発明の方法を実行するためのものであり、一方これら装置とは、コンピュータ可読の媒体と、この媒体内にある本発明の方法を実行するための手段とを有するものである。  本発明のその他の特徴および利点は、本発明の現在の好ましい実施形態についての以下の詳細な記述を、添付の図面と併せて見ることにより、明らかなものとなるであろう。
【発明を実施するための最良の形態】
【００１２】
［概要］
図１は、本発明の好ましい一実施形態による方法１００を示すものである。  ネットワークに属する第１のノードが、１つのマルチキャスト・グループに最初に有効に参加する（１０２）。  当該マルチキャスト・グループは１つのマルチキャスト・アドレスまたは１つのフェイルオーバー・アドレスを持つ。  ３つの対応の内の少なくとも１つが実行される（１０４）。  第１のモードでは、当該マルチキャスト・アドレスが当該第１のノードに割り当てられる。  当該マルチキャスト・アドレス対する通信は、これまではこのような通信を達成するためのネットワークは予め手動でまたは自動でセットアップされてきたかもしれないが、今度は自動的に当該第１のノードに方向付けることができる。  第２のモードでは、当該ネットワークに属するスイッチ上の１つのマルチキャスト・ポートが、当該第１のノード上の１つのポートにマップ（位置付け）、即ち関連付けられる。  当該マルチキャスト・アドレスに対する通信は、当該スイッチがマルチキャスティングをサポートしない場合には、今度は当該スイッチ上の当該マルチキャスト・ポートから当該第１のノード上の当該ノードへと方向付けることができる。  第３のモードでは、当該フェイルオーバー・アドレスが当該ノードに割り当てられる。  当該フェイルオーバー・アドレスに対する通信は、これまではこのような通信を達成するためのネットワークは予めまたは自動でセットアップされてきたかもしれないが、今度は自動的に当該第１のノードに方向付けることができる。  当該ネットワークはインフィニバンド・ネットワークであることが望ましい。  当該第１のおよび第２のノードは、このようなネットワーク上の、複数のチャネル・アダプタ（ＣＡ）および複数のポートを備えたホストである場合もある。
【００１３】
その後、当該第１のノードが障害を起こす（１０８）と、当該ネットワークの第２のノードによる当該第１のノードのトランスペアレントな（ユーザーから気付かれない）フェイルオーバーが起こることが望ましい。  これは、３つの対応の内の１つの実行に伴って生じさせることができる。  １つ目では、当該第２のノードが当該マルチキャスト・グループに参加することができ、その結果、当該マルチキャスト・アドレスが当該第２のノードにも割り当てられる（１１０）。  従って、当該マルチキャスト・アドレスに対する通信は、当該第１の、障害を起こしたノードへと同様に、当該第２のノードへも方向付けられ、その結果、当該第２のノードが当該第１のノードからこのような通信の取り扱いを引き継ぐ。  ２つ目では、当該スイッチ上の当該マルチキャスト・ポートを当該第２のノード上の１つのポートに再マップすることができる（１１２）。  従って、当該マルチキャスト・アドレスに対する通信は当該第２のノード上の当該ポートに方向付けられ、その結果、当該第２のノードがこのような通信の取り扱いを引き継ぐ。  ３つ目では、当該第２のノードが当該フェイルオーバー・アドレスと関連付けられ、その結果、当該第２のノードは当該マルチキャスト・グループに有効に参加する（１１４）。  従って、当該フェイルオーバー・アドレスに対する通信は、当該第１の、障害を起こしたノードへと同様に、当該第２のノードへも方向付けられ、それにより当該第２のノードが当該第１のノードからこのような通信の取り扱いを引き継ぐ。
【００１４】
インフィニバンド・サブネットのサブネット・マネージャ（ＳＭ）といった管理コンポーネントが、当初当該第１のノードに割り当てられていた当該マルチキャスト・グループの当該マルチキャスト・アドレスを当該第２のノードに割り当てるのを遂行することができる。  当該管理コンポーネントはまた、当該第１のノード上の当該ポートに当初はマップされていた当該スイッチ上の当該マルチキャスト・ポートを当該第２のノード上の当該ポートに再マップするのを遂行することもできる。  ある装置のコンピュータ可読の媒体の中の手段がこの機能を遂行することもできる。  当該手段は、追記可能なデータ記憶媒体や、変調された搬送波信号や、または他のタイプの媒体や信号である場合がある。
【００１５】
それ故、当該第１のモードでは、ユニキャスト（単一送信）の通信用にマルチキャスト・アドレスが用いられる。  これらマルチキャスト・アドレスは、マルチキャストＬＩＤのみが複数のポートによって共有できるので、局所識別子（ＬＩＤ）のフェイルオーバーが起こるのを可能にする。  当該第２のモードでは、問題のノードは１つのスイッチ上の１次マルチキャスト・ポートに接続される。  フェイルオーバーに際して、パケットが当該フェイルオーバー・ノードに移動できるように当該１次ポートを再割り当てすることにより、スイッチ構成が修正される。  当該第３のモードでは、フェイルオーバーＬＩＤはあらゆるマルチキャスト・グループに関連付けることが可能である。  更に、フェイルオーバーＬＩＤは、それらが当該マルチキャスト・グループ・アドレスを含まないようにすることが可能である。
【００１６】
［技術的背景］
図２は、本発明の実施形態を関連させて実施することができる、インフィニバンド・ネットワーク・アーキテクチャ２００の一例を示している。   インフィニバンド・ネットワークはネットワークの１つのタイプである。  本発明は、他の諸タイプのネットワークでも実施することができる。  プロセッサ２０２はホスト相互接続２０４と連結され、そこへメモリ・コントローラ２０６もまた連結されている。  当該メモリ・コントローラ２０６はシステム・メモリ２０８を管理する。  当該メモリ・コントローラはまた、ホスト・チャネル・アダプタ（HCA）２１０にも接続されている。  当該HCA２１０は、当該プロセッサ２０２と、当該ホスト相互接続２０４と、当該メモリ・コントローラ２０６と、当該システム・メモリ２０８と、を包含するプロセッサおよびメモリ・サブシステムが、当該インフィニバンド・ネットワークを介して通信することを可能とする。
【００１７】
図２のインフィニバンド・ネットワークは、特にサブネット２３６と称せられるものであり、当該サブネット２３６はインフィニバンド・リンク２１２、２１６、２２４、および２３０と、１つのインフィニバンド・スイッチ２１４とを包含している。  複数のインフィニバンド・スイッチがある場合があるが、スイッチ２１４のみが図２に示されている。  リンク２１２、２１６、２２４、および２３０は、ＨＣＡおよびターゲット・チャネル・アダプタ（ＴＣＡ）２１８および２２６がお互いに通信するのを可能にし、当該インフィニバンド・ネットワークがルータ２３２を介して他のインフィニバンド・ネットワークと通信することもまた可能にする。  具体的には、リンク２１２はＨＣＡ２１０をスイッチ２１４に接続する。  リンク２１６および２２４はＴＣＡ２１８および２２６をそれぞれスイッチ２２４に接続する。  リンク２３０はルータ２３２をスイッチ２１４に接続する。
【００１８】
ＴＣＡ２１８はある特定の周辺機器用のターゲット・チャネル・アダプタ であり、この場合イーサネット・ネットワーク・アダプタ２２０である。  １つのＴＣＡは複数のネットワーク・アダプタ、ＳＣＳＩアダプタ、その他といった複数の周辺機器を備えることができる。  ＴＣＡ２１８は、ネットワーク・アダプタ２２０が当該インフィニバンド・ネットワークを介してデータを送受信することを可能にする。  アダプタ２２０自体は、ライン２２２で表示されるように、通信ネットワーク、特にイーサネット・ネットワークを介しての通信を可能にする。  他の通信ネットワークもまた本発明に従う。  ＴＣＡ２２６はその他の周辺機器であるターゲット周辺機器２２８用のターゲット・チャネル・アダプタであるが、図２には特に規定されていない。  ルータ２３２は図２の当該インフィニバンド・ネットワークを他のインフィニバンド・ネットワークに接続するのを可能にし、ライン２３４がこの接続を表している。
【００１９】
インフィニバンド・ネットワークはパケットをスイッチする入出力（Ｉ／Ｏ）ネットワークである。  従って、プロセッサ２０２は、相互接続２０４およびメモリ・コントローラ２０６を介して、ＨＣＡ２１０を通るデータ・パケットを送受信する。  同様に、ターゲット周辺機器２２８およびネットワーク・アダプタ２２０は、それぞれＴＣＡ２２６および２１８を介してデータ・パケットを送受信する。  データ・パケットはまた、ルータ２３２を介しても送受信されることができ、これによりスイッチ２１４を他のインフィニバンド・ネットワークに接続する。  リンク２１２、２１６、２２４、および２３０は、スイッチ２１４に接続される特定のＨＣＡ、ＴＣＡ、等に必要とされるバンド幅に依存して、変化する容量を持つことができる。
【００２０】
インフィニバンド・ネットワークはＴＣＡとＨＣＡの間の通信を種々の異なる方法にて提供するものであり、それらは本明細においては要約目的のためだけに簡単に記述されている。  他のタイプのネットワークと同様に、インフィニバンド・ネットワークは、物理層、リンク層、ネットワーク層、トランスポート層、および上位レベルのプロトコルを持つ。  他のタイプのパケット・スイッチを行うネットワークにあるように、インフィニバンド・ネットワークにおいては特定の数トランザクションが数メッセージに分割され、それら（メッセージ）自身は、インフィニバンド・ネットワークを介しての配信のために数パケットに分割される。  意図した受信者によって受信されたとき、これらパケットは所定のトランザクションを構成するメッセージへと再度順序付けられる。  インフィニバンド・ネットワークは、これらパケットが送受信されるためのキュー（待ち行列）およびチャネルを提供する。
【００２１】
更に、インフィニバンド・ネットワークは、信頼性のある接続、信頼性の無い接続、信頼性のあるデータグラム、信頼性の無いデータグラム、および未加工（Raw）パケット・サポート、を含む多くの異なった転送サービスを可能にする。  信頼性のある接続および信頼性のあるデータグラムにおいては、バケット順序を保証するための、応答とパケット系列番号とが生成される。  重複したパケットは拒絶され、紛失パケットは検出される。  信頼性の無い接続および信頼性の無いデータグラムにおいては、応答は生成されず、パケット順序は保証されない。  重複パケットは拒絶されないことがあり、紛失パケットは検出されないことがある。
【００２２】
インフィニバンド・ネットワークはまた、複数の独立したプロセッサ・プラットフォーム即ちホスト・プロセッサ・ノード、Ｉ／Ｏプラットフォーム、およびＩ／Ｏデバイスの間を接続するためのシステム・エリア・ネットワーク（ＳＡＮ）を規定するのに用いることができる。  図３は、本発明の実施形態をそれに伴って実施することができる、ＳＡＮ３００の一例を示している。  ＳＡＮ３００は、１つまたは複数のコンピュータ・システムのための、Ｉ／Ｏ通信とプロセッサ間通信（ＩＰＣ）の両方をサポートする、通信および管理基盤である。  インフィニバンド・システムは、小規模なサーバから超並列スーパー・コンピュータ設備にまでまたがり得る。  更に、インターネット・プロトコル（ＩＰ）になじみ易いというインフィニバンド・ネットワークの性質は、インターネット、イントラネット、またはリモート（遠隔）・コンピュータ・システムへの接続、に対する橋渡しを可能とする。
【００２３】
ＳＡＮ３００は、保護され遠隔管理された環境下において、多くのデバイスが高いバンド幅と低いレイテンシー（待ち時間）で同時に通信するのを可能にする、スイッチ型通信ファブリック（構造）３０１、即ちサブネットを持つ。  １つの終端ノードは、複数のインフィニバンド・ポートをまたがって通信することができ、またファブリック３０１を介する複数の経路を利用することができる。  ネットワーク３００を介しての、ポートと経路のこの多重性は、耐障害性と増大するデータ転送バンド幅との両者のために利用される。  インフィニバンド・ハードウェアは、プロセッサおよびＩ／Ｏ通信の動作の負担の多くを軽減する。  これにより、通信する際のプロトコルに伴う従来のオーバーヘッド無しに複数の同時通信が可能になる。
【００２４】
具体的にはファブリック３０１は、多くのスイッチ、３０２、３０４、３０６、３１０、および３１２と、矢印３０３で示すようにファブリック３０１が他のインフィニバンド・サブネット、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）およびホストとリンクされることを可能にする１つのルータと、を含んでいる。  ファブリック３０１は、多くのホスト３１８、３２０、および３２２が、異なったサブシステム、管理コンソール、ドライブ、およびＩ／Ｏ筐体との通信に加え、お互いの間での通信を行うことを可能にする。  これら異なったサブシステム、管理コンソール、ドライブ、およびＩ／Ｏ筐体は、ＲＡＩＤ（Redundant Array of Information Disks）サブシステム３２４、管理コンソール３２６、Ｉ／Ｏ筐体３２８および３３０、ドライブ３３２、およびストレージ・サブシステム３３４として図３に示されている。
【００２５】
図４は、インフィニバンド・ネットワークの終端ノード４００の一例となる、通信インターフェースを示している。  当該終端ノードは、例えば図３のホスト３１８、３２０、および３２２の１つであるかもしれない。  終端ノード４００は、プロセス４０２および４０４の上で動作している。  各プロセスは１つまたは複数のキュー対（ＱＰ）と関係付けられ、各ＱＰは、矢印４２０で示されるように、当該インフィニバンド・ファブリックにリンクするためにノード４００のチャネル・アダプタ（ＣＡ）４１８と通信する。  例えば、プロセス４０２は具体的にＱＰ４０６と４０８を持ち、一方プロセス４０４はＱＰ４１０を持つ。
【００２６】
各ＱＰは１つのＨＣＡと１つのＴＣＡとの間で規定される。  リンクの各終端は、他方へ配信されるべきキュー・メッセージを持つ。  １つのＱＰは、お互いに対になった１つの送信作業キューおよび１つの受信作業キューを含んでいる。  一般に、当該送信作業キューは、クライアントのメモリと他のプロセスのメモリとの間でのデータの転送をもたらす命令を保持しており、また当該受信作業キューは、他のプロセスから受信されたデータをどこに配置するかについての命令を保持する。
【００２７】
ＱＰは１つのインフィニバンド・クライアント・プロセスとの仮想通信インターフェースを表しており、当該クライアントのための仮想通信ポートを提供する。  １つのＣＡは２２４個までのＱＰを供給することができ、各ＱＰ上での動作は他からは独立している。  当該クライアントは、１つのＱＰを割り当てることで仮想通信ポートを作成する。  当該クライアントは、当該ＱＰを他のＱＰと結びつけるのに必要なあらゆる通信構築を開始し、また当該ＱＰコンテキスト（構成文脈）を、宛先アドレス、サービス・レベル、取り決められた動作制限、等といった特定の情報で構成する。
【００２８】
図５および図６は、インフィニバンド・ネットワーク内でいかにしてアドレス指定が行われるかを示している。  図５には、１つの終端ノード５０２と１つのスイッチ５０４とを含んだ簡易なインフィニバンド・ネットワーク５００が示されている。  終端ノード５０２は、関連するＱＰ５０６、５０８、および５１０を持つプロセス５０４上で動作している。  終端ノード５０２はまた、ＣＡ５１２などの１つまたは複数のＣＡを含んでいる。  ＣＡ５１２は、ポート５１４および５１６といった１つまたは複数の通信ポートを含んでいる。  ＱＰ５０６、５０８、および５１０の各々は、ＣＡ５１２によって割り当てられた、ＣＡ５１２内でＱＰを一意に識別する１つのキュー対番号（ＱＰＮ）を持っている。  未加工のデータグラム以外のデータ・パケットは、宛先作業キューのＱＰＮを含んでいる。   ＣＡ５１２がパケットを受信したとき、当該パケットを適切に処理するために当該宛先ＱＰＮのコンテキストが使用される。
【００２９】
局所サブネット・マネージャ（ＳＭ）は各ポートに１つの局所識別子（ＬＩＤ）を割り当てる。  ＳＭとは、スイッチ、ルータ、およびＣＡを構成し管理する責任を持った、サブネットに接続された管理コンポーネントである。  あるＳＭはＣＡやスイッチといった他のデバイスに組み込むことができる。  例えば、当該ＳＭは終端ノード５０２のＣＡ５１２内に組み込むことができる。  他の例としては、当該ＳＭはスイッチ５０４内に組み込むことができる。
【００３０】
インフィニバンド・サブネット内ではＬＩＤは固有のものである。  スイッチ５０４などのスイッチ類は、当該LIDを使用して当該サブネット内でパケットを経路付ける。  各パケットは、当該パケットを当該サブネットへ投入したポートを識別するソースＬＩＤ（ＳＬＩＤ）と、当該ファブリックが当該パケットを配信しなければならない（宛先の）ポートを識別する宛先ＬＩＤ（ＤＬＩＤ）とを含んでいる。 スイッチ５０４などのスイッチ類はまた、各々がポートの番号を有している。  スイッチ５０４上の各ポートは、終端ノード５０２上の１つのポートと関連付けることができる。  例えば、スイッチ５０４のポート５１８は、矢印５２０で示されるように、終端ノード５０２のポート５１６に関連付けられる。  従って、スイッチ５０４によって受信された、ノード５０２のポート５１６を対象としたデータ・パケットは、ポート５１８からポート５１６へと送られる。  より詳しくは、スイッチ５０４がＤＬＩＤを持った１つのパケットを受信する場合、当該スイッチは当該ＤＬＩＤがゼロでないことを確認するだけである。  そうでない（ゼロでない）場合は、当該スイッチは、当該ＳＭによってプログラムされた複数のテーブルに従って当該パケットの経路決めを行う。
【００３１】
各々が１つのインフィニバンド・サブネット内の特定のポートを識別するものであるＤＬＩＤに加え、マルチキャストＤＬＩＤまたはマルチキャスト・アドレスをもまた規定することができる。  一般に、１組の終端ノードが１つのマルチキャスト・グループに参加することができ、その結果、当該ＳＭは、当該マルチキャスト・グループに属する１つのマルチキャストＤＬＩＤを伴った各ノードに属する１つのポートを割り当てる。  当該マルチキャストＤＬＩＤに送られた１つのデータ・パケットは、当該マルチキャスト・グループに参加している各ノードに送られる。  スイッチ５０４などの各々のスイッチは、１つの初期設定の１次マルチキャスト・ポートと、１つの初期設定の非１次マルチキャスト・ポートとを持つ。  当該１次／非１次マルチキャスト・ポートはすべてのマルチキャスト・パケットのためのものであり、いかなる特定のＤＬＩＤとも関連付けられるものではない。  当該マルチキャスト・グループに参加した各ノードに属する１つのポートは、当該スイッチに属する当該１次マルチキャスト・ポートまたは当該非１次マルチキャスト・ポートの何れかに関連付けられる。
【００３２】
マルチキャストＤＬＩＤを持った１つのデータ・パケットが受信されたとき、当該マルチキャストＤＬＩＤは調べられ、当該データ・パケットは当該ＳＭによってプログラムされたテーブルに基づいて転送される。  当該マルチキャストＤＬＩＤがテーブルに無い場合、または当該スイッチがテーブルを保持していない場合、当該パケットは当該１次および非１次の初期設定のマルチキャスト・ポートのうちのどちらかに転送される。  １次ポートにて受信された場合は、当該パケットは当該非１次マルチキャスト・ポートに送出され、逆に当該スイッチに属する他のあらゆるポートにて受信された場合は、当該１次マルチキャスト・ポートに送出される。  当該マルチキャストＤＬＩＤを指定するスイッチ５０４によって受信されたデータ・パケットは、こうしてこれらマルチキャスト・ポートの内の１つから、当該マルチキャスト・グループ・ノードに属する関連するポートへと送られる。  スイッチ５０４は、当該パケットが移動するべき先となる各ポートの指定をする、マルチキャスト・トラフィックのための経路指定情報によって構成することができる。
【００３３】
更に、あらゆるインフィニバンド・ノードがあらゆるマルチキャスト・グループに伝わることができるが、もしも、スイッチ５０４などのスイッチがパケットを正しく転送しなかったなら、データ・パケットが当該グループ・メンバによって正しく受信されるという保証は無い。  従って、これらスイッチは、マルチキャスト・データ・パケットが当該グループ・メンバによって受信されるように設定されるべきである。  これは、マルチキャスト・パケットがそれらの適切な宛先に到達することを保証するように予めプログラムされた、即ち独占的にプログラムされた、特定の１つまたは複数のスイッチを介して、マルチキャスト・データ・パケットを常に送り込むことを確実に行うことによって、達成することができる。  もう1つの方法として、もしもすべてのスイッチがマルチキャストについて完全にサポートされるのであれば、終端ノードがマルチキャスト・グループに参加することで、これらパケットが当該マルチキャスト・グループに属するすべてのメンバによって正しく受信されるように当該ＳＭにこれらスイッチをプログラムさせることになる。  その他のアプローチをもまた実行することができる。
【００３４】
図６には、２つのサブネット６０２および６０４を備えた、より複雑なインフィニバンド・ネットワーク６００が示されている。  サブネット６０２は終端ノード６０４、６０６、および６０８を備え、これらはそれぞれにスイッチ６１０および６１２に接続されている。  同様に、サブネット６０４は終端ノード６１４、６１６、６１８、および６２０を備え、これらはそれぞれにスイッチ６２２および６２４に接続されている。  サブネット６０２に属するスイッチ６１０および６１２は、ルータ６２６および６２８を介して、サブネット６０４に属するスイッチ６２２および６２４にそれぞれに接続されており、これによりサブネット間通信が可能となる。  この文脈上の、それぞれに接続されているとは、ある構成要素に属する１つまたは複数のポートが別の構成要素に属する１つまたは複数のポートに関連付けられていることを意味する。  例えば、ノード６０４は2つのポートを持つことができ、一方はスイッチ６１０と関連付けられ、他方はスイッチ６１２と関連付けられている。
【００３５】
［第１ノード・フェイルオーバーについてのフェイルオーバー（マルチキャスト）・アドレスの第２ノードとの関連］
本発明の実施例によって、１つのマルチキャスト・グループに属する１つのフェイルオーバー・アドレスを他のノードと関連付けることによるネットワーク・ノードのフェイルオーバーを実現することができる。  図７は、本発明のかかる１実施例に従った方法７００を示している。  この実施例では、局所識別子（ＬＩＤ）についてのインフィニバンド仕様が次のように再定義されることが望ましい。
【表１】
2004537918.tif 000003
【００３６】
ＴｈＬＩＤとは、アドミニストレータ指定の閾値であり、このＴｈＬＩＤを超えるＬＩＤのみがフェイルオーバーＬＩＤとなること、およびそれらはまた有効にマルチキャストＬＩＤでもあることが望ましい。
更には、当該インフィニバンド仕様は、フェイルオーバーＬＩＤがマルチキャストのグループ識別子（ＧＩＤ）と関連付けられることが可能となるように拡張されることが望ましい。  このようなフェイルオーバーＬＩＤはＧＩＤ付き、またはＧＩＤ無しで、使用することが可能となる。ＴｈＬＩＤが０ＸＣ０００に等しい場合には、マルチキャストが範囲を占める値は現行インフィニバンド仕様の中で開始し、従って本実施例は現行仕様に適合している。
【００３７】
本発明の他の実施例では、許容性ＬＩＤ以外のあらゆる有効なＬＩＤは、１つのマルチキャスト・グループと関連付けることができ、それ故にフェイルオーバーＬＩＤとして有効に機能することができる。  従って１つのサブネット・マネージャ（ＳＭ）を拡張して、許容性ＬＩＤ以外のあらゆるこのような有効なＬＩＤが１つのマルチキャスト・グループと関連付けられるのが可能となるようにする。  即ち、インフィニバンド仕様が修正され、その結果、ノードのフェイルオーバーを可能とするために、許容性ＬＩＤ以外のあらゆる有効なＬＩＤが１つのマルチキャスト・グループと関連付けられるのを、当該ＳＭが認めることが可能となる。  最後に、本発明の別の実施例では、当該インフィニバンド仕様に対していかなる変更もなされず、その結果、図７の方法７００に関する以下の議論は、同じく有効に１つのマルチキャスト・グループＬＩＤであるフェイルオーバーＬＩＤにではなく、マルチキャスト・グループＬＩＤのみに関連したものとなる。
【００３８】
次に、図７の方法７００を参照すると、あるインフィニバンド・ネットワークに属する第１のノードが、有効にマルチキャスト・グループＬＩＤである１つのフェイルオーバーＬＩＤ（または１つのマルチキャストＬＩＤ）に関連付けられることで、当該第１のノードは有効に当該マルチキャスト・グループに参加する（７０２）。  当該第１のノードをその一部に含むサブネットに属するＳＭは、当該第１のノードによる当該マルチキャスト・グループへの参加要求に応答するといったように、当該フェイルオーバーＬＩＤを当該マルチキャスト・グループに関連付ける。  当該第１のノードは、当該インフィニバンド・ネットワークの中の当該サブネット上の１つのホストに属する１つのチャネル・アダプタ（ＣＡ）であることがある。  次に、当該第１のノードが障害を起こし（７０４）、これは普通、当該サブネットに属する別のノードによって検出される。  当該第１のノードは、任意選択で当該マルチキャスト・グループから立去ることができ（７０６）、これは例えば、当該サブネットに属する第２のノードが当該第１のノードに代わって当該ＳＭに対して立去り要求を送ることによって行われる。
【００３９】
次に、当該第２のノードが当該マルチキャスト・グループに参加し、よって当該フェイルオーバーＬＩＤ（または当該マルチキャストＬＩＤ）に対して送られたパケットを受信することになる（７０８）。  より詳しくは、当該ＳＭは、当該第２のノードからの当該参加要求に応答してこれらスイッチをプログラムし、その結果、当該マルチキャストに送られたパケットは当該第２のノードによって受信される。  当該第２のノードもまた、当該インフィニバンド・ネットワークの中の当該サブネット上の１つのホストに属する１つのＣＡであることがある。  当該第２のノードの当該ホストは、当該第１のノードのそれと同じホストであることがある。  当該フェイルオーバーＬＩＤを対象とした通信は、当該第１のノードに代わって当該第２のノードによって取り扱われ、その結果、当該第１のノードは途切れなく当該第２のノードにフェイルオーバーされる。
【００４０】
ある時点で、当該第１のノードは障害から回復することがある（７１０）、即ちオンラインに戻る。  そして当該フェイルオーバーＬＩＤ（またはマルチキャストＬＩＤ）は再び当該第１のノードと関連付けられ（７１２）、その結果、当該第１のノードは再び当該フェイルオーバーＬＩＤを対象とした通信を取り扱うことができるようになる。  当該サブネットに属する当該第２のノードは、当該第１のノードが当該マルチキャスト・グループに再参加する前に、最初に当該マルチキャスト・グループから立去ることができる。  当該第２のノードはこのように、当該第１のノードが当該ＳＭに対して参加要求を送って当該ＳＭが当該フェイルオーバーＬＩＤを当該第１のノードと関連付けるようにするより前に、当該ＳＭに対して立去り要求を送ることができる。  障害からの回復はまた、当該第１のノードが当該第２のノードから状況のダンプを取ることも含んでおり、そのとき当該第２のノードは当該障害からの回復が完了するまですべての接続を凍結する。  当該第２のノードは更に、当該第２のノードに対する既存の接続が終了するまでは当該マルチキャスト・グループから立去らない場合もある。
【００４１】
このように、もともとは当該第１のノードと通信をしている第３のノードは、当該第２のノードに対してのフェイルオーバーが行われたことには気付かないでいることになる。  即ち、それ（第３のノード）は、当該フェイルオーバー・アドレスが当該第１のノードと当該第２のノードのどちらと関連付けられているのかを知る必要なしに、当該フェイルオーバー・アドレスに対する通信を続けることになる。  一般に、当該第３のノードと当該第１または第２のノードのどちらかとの間の通信は、たとえ１つのマルチキャスト・フェイルオーバー・アドレスがフェイルオーバーを実行するのに用いられたとしても、本質的にはユニキャストである。  当該第３のノードは、当該フェイルオーバー・アドレスが実際にはマルチキャスト・アドレスであるということを知らず、このように自分自身と当該フェイルオーバー・アドレスとの間の通信が本質的にはユニキャストであると信じさせられる。  即ち、当該第３のノードには、実際には１つのマルチキャスト・アドレスを使って通信が行われているときに、当該通信が正常に進行しているように見えるようにさせられる。
【００４２】
図８は、当該第１のノードから当該第２のノードへのフェイルオーバーを図式的に示したものである。  当該マルチキャスト・グループは、第１のノード８０４の障害前の状態を表すのに、マルチキャスト・グループ８０２Aとして示されている。  当該マルチキャスト・グループは、第１のノード８０４の障害後の状態を表すのに、マルチキャスト・グループ８０２Bとして示されており、矢印８０８で示されるように第１のノード８０４の障害後にグループ８０２Aはグループ８０２Bになる。  グループ８０２Aの第１のノード８０４は、グループ８０２Bの第１のノード８０４’になり、障害を表す。  第２のノード８１０はマルチキャスト・グループ８０２Bに参加したものとして表される。  第１のノード８０４’はマルチキャスト・グループ８０２Bにあるものとして表されるが、グループ８０２Bから既に立去っていることもある。  パケット８０６は従って、今度は第１のノード８０４’に加えて第２のノード８１０にも送られる。
【００４３】
［第１ノードのフェイルオーバーについてのスイッチ・マルチキャスト・ポートの第２ノード上のポートへの再マップ］
本発明の実施例ではまた、１つのスイッチ・マルチキャスト・ポートを他のノード上の１つのポートに再マップ（位置付け）することにより、ネットワーク・ノードのフェイルオーバーを達成することもまた可能である。  図９は、本発明のかかる１実施例に従った方法９００を示している。  あるインフィニバンド・ネットワークに属する第１のノードが１つのマルチキャスト・グループに参加し、そこで１つのスイッチ上の１次マルチキャスト・ポートが当該第１のノード上の１つのポートにマップされる（９０２）。  当該第１のノードと当該スイッチとをその一部に含むサブネットのサブネット・マネージャ（ＳＭ）は、当該第１のノードによる参加要求に応答してこのマップを実行する。  当該第１のノードは、当該ネットワークの中の当該サブネット上の１つのホストに属する１つのチャネル・アダプタ（ＣＡ）である場合がある。
【００４４】
当該第１のノードはその後障害を起こし（９０４）、それは通常当該サブネットに属する他のノードによって検出される。  当該第１のノードは任意選択で当該マルチキャスト・グループから立去ることができ（９０６）、これは例えば、当該サブネットに属する第２のノードが当該第１のノードに代わって当該ＳＭに対して立去り要求を送ることによって行われる。  そして当該スイッチ上の１次マルチキャスト・ポートは、当該第２のノード上の１つのポートに再マップされる（７０８）。  より具体的には、当該ＳＭは当該スイッチ上の１次マルチキャスト・ポートを、それに対応する、任意選択で独占的な、当該第２のノードによる要求に応答して、当該第２のノード上の当該ポートに再マップする。  当該第２のノードもまた、当該インフィニバンド・ネットワークの中の当該サブネット上の１つのホストに属する１つのＣＡである場合がある。  当該第２のノードに属する当該ホストは、当該第１のノードのものと同じホストである場合がある。  当該マルチキャスト・アドレスに対する通信は、当該第１のノード上のポートに代わって、当該第２のノード上の当該ポートに方向付けられ、その結果、当該第１のノードは途切れなく当該第２のノードにフェイルオーバーする。
【００４５】
ある時点で、当該第１のノードは障害から回復することがある（９１０）、即ちオンラインに戻る。  その後当該スイッチ上の当該１次マルチキャスト・ポートは、当該第１のノード上の当該ポートにまた再マップされ（９１２）、その結果、当該第１のノードは再び当該マルチキャスト・アドレス、即ち１つのマルチキャストの宛先位置識別子（ＤＬＩＤ）であることができるもの、を対象とした通信を取り扱うことが可能となる。  当該サブネットに属する当該第２のノードは、最初に当該マルチキャスト・グループから立去らなければならない場合があり、従って当該１次マルチキャスト・ポートが当該第１のノード上の当該ポートにまた再マップされるより前に、当該ＳＭに対する立去り要求を送る場合がある。  障害からの回復はまた、当該第１のノードが当該第２のノードから状況のダンプを取ることも含んでおり、そのとき当該第２のノードは当該障害からの回復が完了するまですべての接続を凍結する。  当該第２のノードは更に、当該第２のノードに対する既存の接続が終了するまでは当該マルチキャスト・グループから立去らない場合もある。
【００４６】
図１０は、当該第１のノードから当該第２のノードへのフェイルオーバーを図式的に示したものである。  当該サブネットの一部分が、第１のノード１００４の障害前の状態を表すのに、一部分１００２Ａとして示されている。  第１のノード１００４はポート１００６を備えている。  スイッチ１００８は１次マルチキャスト・ポート１０１０を備えている。  スイッチ１０１０に属する１次マルチキャスト・ポート１０１０は、線分１０１２で表されるように、第１のノード１００４に属するポート１００６にマップされる。  スイッチ１００８に方向付けられたマルチキャスト通信は、こうしてポート１００６に送られる。  当該サブネットの当該一部分は、第１のノード１００４の障害後の状態を表すのに、一部分１００２Ｂとして示されており、その結果、矢印１０１４で示されるように、第１のノード１００４の障害後に一部分１００２Ａが一部分１００２Ｂとなる。  第２のノード１０１６はポート１０１８を備えている。  スイッチ１００８に属するマルチキャスト・ポート１０３０が今度は１次マルチキャスト・ポートとされ、線分１０２０で表されるように、第２のノード１０１６に属するポート１０１８にマップされる。  スイッチ１００８に方向付けられたマルチキャスト通信は、今度はこうしてポート１０１８に代わりに送られる。
【００４７】
［スイッチ、およびデータグラムと接続サービスのタイプ］
インフィニバンド・ネットワークが採用するスイッチとは、通常、宛先位置識別子（ＤＬＩＤ）が非ゼロであることのみをチェックし、そしてサブネット・マネージャ（ＳＭ）によってプログラムされたテーブルに基づいてデータ・パケットの経路を決めるものである。  各スイッチは、１つのマルチキャスト・データ・パケットが移動する必要があるすべてのポート、を規定するマルチキャスト・トラフィック、のための経路付け情報でもって構成されることが望ましい。  このことで、マルチキャスト・パケットがそれらの正しい宛先に経路付けされることが確実になる。
【００４８】
更に、インフィニバンド・ネットワークは、異なったタイプのデータグラムおよび接続サービスを採用することができる。  データグラムが使用されるのは、パケットが受信される順序が、それらが送信されるときの順序と比較して問題とならないような場合である。  データグラム・パケットは、それらが送信されたときの順序と比較して無秩序な順序で受信されることがある。  データグラムは未加工（Raw）である場合があるが、これは一般にそれらデータグラムが、イーサータイプ（Ethertype）、インターネット・プロトコル（ＩＰ）バージョン６、その他といった非インフィニバンド仕様に従ったものであるということを意味している。  逆に、接続サービスが使用されるのは、パケットが受信される順序が、それらが送信されるときの順序と比較して問題となるような場合である。  接続サービス・パケットは、それらが送信されたときと同じ順序で受信される。
【００４９】
データグラムも接続サービスも、信頼性があるかもしれないし、無いかもしれない。  信頼性が一般に関係するのは、パケットのために連続番号が維持されているかどうか、受信されたパケットのために肯定応答メッセージが送信されたかどうか、および／または、送信されたパケットが意図する受信者に確かに受信されたか確認する手段が実行されたかどうか、に対してである。  信頼性の無いデータグラムや信頼性の無い接続サービスは、これら確認手段を実行することは無く、一方、信頼性のあるデータグラムや接続サービスは、これら確認手段を必ず実行する。
【００５０】
信頼性の無い、そして未加工の（Raw）データグラムに関しては、第１のノードがマルチキャストの位置識別子（ＬＩＤ）をそのソースＬＩＤ（ＳＬＩＤ）として使用する。  第２のノードがフェイルオーバー・ノードである場合、第３のノードがそれらパケットを受信することができるが、それは、それら（パケット）がその（ノードの）ユニキャストのＤＬＩＤに送られるからであり、また当該パケットの当該ＳＬＩＤがチェックされないからである。  当該第３のノードは、当該第１のノードのマルチキャストのＬＩＤに対して応答することが期待される。  これが発生するために、当該クライアントにはマルチキャストＬＩＤとの関連性が送られることがあり、それは当該クライアントによって記録される。  当該第３のノードには、信頼性の無いデータグラムのＳＩＤＲプロトコルの場合におけるマルチキャストのＬＩＤが送られる場合があり、および／または、当該第２のノードが、受信したパケットから当該マルチキャストのＬＩＤを拾う場合もある。  インフィニバンド仕様には、信頼性の無いデータグラム・モードのために規定された有効性チェックは存在しない。
【００５１】
もしも当該第３のノードが、当該ＳＭによって保持されている経路記録の中から当該ＬＩＤを決定する場合は、当該第３のノードとの通信を開始するに先立って、当該ＬＩＤのための適切な値が当該経路記録の中に配置される場合がある。  当該第１のノード、または当該フェイルオーバーの第２のノードが、当該クライアントから応答パケットを受信するとき、当該パケットは１つのマルチキャストのＤＬＩＤを除いた１つの非マルチキャストのキュー対（ＱＰ）を持つ。  信頼性のあるデータグラムおよび接続モード転送の場合には、当該接続マネージャは通信用に用いるためにこれらＬＩＤを交換する。  この段階では当該マルチキャストまたはフェイルオーバーのＬＩＤを交換することができる。  このＬＩＤは、いかなる有効性のチェックも無しに当該第２のノードによって記録されることになり、またあらゆる通信において１つのユニキャストＬＩＤとして使用されることになる。
【００５２】
リンク・レベルおよびトランスポート・レベルの両チェックにおいてもまた確認が行われる。  当該リンク・レベルのチェックでは、当該クライアントのマルチキャストまたはユニキャストのいずれかのＬＩＤの確認を行うだけである。  当該トランスポート・レベルのチェックにおいては、受信するＱＰが最初に有効かどうか確認されるが、これは送信者が当該ＱＰをセットしたためである。最後に、当該ＱＰが１６進数で０ｘＦＦＦＦＦＦＦでないことが確認され、それゆえ当該データ・パケットがマルチキャスト・パケットではないと考えられ、その結果、マルチキャストのグローバル・ルート・ヘッダ（ＧＲＨ）の存在はチェックされない。
【００５３】
しかしながら、本発明の一実施例においては、当該インフィニバンド仕様が再定義され、その結果、これらトランスポート・レベルのチェックをさほど厳密に行わなずにノードのフェイルオーバーが提供される。  この実施例においては、ソースＬＩＤ（ＳＬＩＤ）は、いかなる転送方法についてもチェックされず、またマルチキャストの各宛先ＬＩＤ（ＤＬＩＤ）は、いかなる転送方法においても受け入れられる。  このように当該インフィニバンド仕様は修正され、その結果ＳＬＩＤおよびＤＬＩＤのチェックは以前ほど厳密には行われない。
【００５４】
本発明の他の実施例においては、当該ＱＰに０ｘＦＦＦＦＦＦＥといった特別な値をセットしてマルチキャスト・トラフィックであることを示すことによって、ノード・フェイルオーバーがもう一つの方法として提供される。  本発明のこの実施例は、信頼性の無い接続サービスについてのみ実施可能である。  当該特別なＱＰの値は、当該ＳＭにより構成可能な場合があり、また当該ＳＭにより維持することができる。
【００５５】
信頼性のあるデータグラム、および、信頼性のある接続サービスと信頼性の無い接続サービスに関しては、マルチキャストは、それが定義されていないという理由で許容されない。  しかしながら、当該２つの終端ノードが別のユニキャスト的様式で機能するのであれば、この制限は克服することができる。  サーバは各クライアントに対して１つのマルチキャストＬＩＤを使ってパケットを送信する。  リモート・クライアントは、当該ＳＬＩＤがマルチキャストＬＩＤかどうかをチェックすることができる。  もしそうであれば、そのときは当該クライアントのホスト・チャネル・アダプタ（ＨＣＡ）は、マルチキャストＳＬＩＤを受信するように修正される場合があり、あるいはまた当該ＳＭを、１つのユニキャストＬＩＤを当該マルチキャスト・グループに関連付けるように修正することが可能である。
【００５６】
即ち、この修正されなかったレシーバは、当該ＳＬＩＤを、それが１６進数で０ｘＣ０００よりも上であるときに限り、マルチキャストであるとの判断を下す。  従って、当該ＳＭは１６進数で０ｘＣ０００より下の値を当該マルチキャスト・グループに割り当てるように修正され、その結果当該レシーバは当該ＳＬＩＤがマルチキャストであるとの判断は下さない。  当該クライアントは当該サーバに対して応答し、当該サーバは１つのＤＬＩＤを指定している１つのパケットを受信する。  当該サーバは、当該ＤＬＩＤがマルチキャストＬＩＤかどうかチェックすることができる。  もしマルチキャストＬＩＤであるならその場合は、当該サーバのＨＣＡは、マルチキャストＤＬＩＤを受信するように修正される場合があり、あるいはまた当該ＳＭを、１つのユニキャストＬＩＤを当該マルチキャスト・グループに関連付けるように修正することが可能である。
【００５７】
[従来技術に対する利点]
本発明の諸実施例は、従来技術に対する利点を可能にさせる。  インフィニバンド・ネットワークのこのマルチキャスト・アドレスとマルチキャスト・ポートの利点を生かして、ノード・フェイルオーバーが達成される。  たとえある所定のインフィニバンド・ファブリックがマルチキャストを認めない場合であっても、他のノードが当該グループに参加するより前に当該障害を起こしたノードが当該マルチキャスト・グループから立去り、その結果当該グループには同時に１つのノードしか存在しないようにする場合には、本発明の諸実施例を依然用いることが可能である。  障害を起こしたノードのフェイルオーバーには、当該障害を起こしたノードがそれまで通信していた相手である当該リモート・ノードを関与させることは必要ない。
【００５８】
このように、この取って代わったノードは、ユーザに気付かれずに、また通常当該リモート・ノードについての知識を伴わずに、当該障害を起こしたノードの持っていた責務を引き受ける。  いかなるホストであっても障害を起こしたホストの持っていた責務を受け継ぐことができることが望ましい。  本発明の諸実施例はまたすべてのインフィニバンド・トランスポート・タイプに適応可能でもある。  当該インフィニバンド仕様に対し権利を持たない拡張をすることは、本発明の諸実施例を実現するためには一般には不要であり、従って当該諸実施例は当該仕様による援助の範囲内で機能する。
【００５９】
更には、本発明のその他のいくつかの実施例においては、この発明によって指定されたインフィニバンド・ネットワークのフェイルオーバー・アドレスを利用することでノード・フェイルオーバーが達成される。  障害を起こしたノードのフェイルオーバーには、当該障害を起こしたノードがそれまで通信していた相手である当該リモート・ノードを関与させることは必要ない。  それどころか、この取って代わったノードは、ユーザに気付かれずに、また通常当該リモート・ノードについての知識を伴わずに、当該障害を起こしたノードの持っていた責務を引き受ける。  いかなるホストであっても障害を起こしたホストの持っていた責務を受け継ぐことができることが望ましい。  本発明の諸実施例はまたすべてのインフィニバンド・トランスポート・タイプに適応可能でもある。
【００６０】
[代替の実施例]
ここでは本発明の具体的な諸実施例が図解の目的のために述べられてきたのではあるが、本発明の趣旨および範囲から逸脱すること無しに各種の変更を行うことができるということが理解されよう。  例えば、本発明は大部分がインフィニバンド・ネットワークに関連して述べられているが、本発明は他のタイプのネットワークにも同様に適応可能である。  従って、本発明による保護の範囲は、特許請求の範囲およびその同等のものだけに限られる。
【図面の簡単な説明】
【００６１】
【図１】図１は、本発明の実施の形態に従った方法のフロー・チャートであり、発行される特許の最初のページに印刷されるよう勧められるものである。
【図２】図２は、それに関連して本発明の実施形態を実現することができる、インフィニバンド・ネットワークの図である。
【図３】図３は、それに関連して本発明の実施形態を実現することができる、インフィニバンドのシステム・エリア・ネットワーク（ＳＡＮ）の一例の図である。
【図４】図４は、インフィニバンド・ネットワークの終端点の一例の通信インターフェースの図である。
【図５】図５は、いかにしてインフィニバンドのアドレッシングが起こるかを示すインフィニバンド・ネットワークの図である。
【図６】図６は、いかにしてインフィニバンドのアドレッシングが起こるかを示すインフィニバンド・ネットワークの図である。
【図７】図７は、本発明の実施形態でいかにして、マルチキャスト・グループのフェイルオーバー・アドレスおよび／またはマルチキャスト・グループのマルチキャスト・アドレスを伴って、他のノードに対するネットワーク・ノードのフェイルオーバーを達成することができるかを示した方法のフロー・チャートである。
【図８】図８は、図７の実施形態の遂行を図式的に示した図である。
【図９】図９は、本発明の実施形態でいかにして、スイッチ・マルチキャスト・ポートを他のノードの１つのポートに再マップすることによって、ネットワーク・ノードのフェイルオーバーを達成することができるかを示した方法のフロー・チャートである。
【図１０】図１０は、図９の実施形態の遂行を図式的に示した図である。
【符号の説明】
【００６２】
１００ ・・・ 本発明の実施の一形態による方法
１０２ ・・・ ステップ（処理）
１０４ ・・・ ステップ（処理）
１０８ ・・・ ステップ（処理）
１１０ ・・・ ステップ（処理）
１１２ ・・・ ステップ（処理）
１１４ ・・・ ステップ（処理）
２００ ・・・ インフィニバンド・ネットワーク・アーキテクチャ
２０２ ・・・ プロセッサ
２０４ ・・・ プロセッサ相互接続
２０６ ・・・ メモリ・コントローラ
２０８ ・・・ システム・メモリ
２１０ ・・・ ホスト・チャネル・アダプタ（HCA）
２１２ ・・・ インフィニバンド・リンク
２１４ ・・・ インフィニバンド・スイッチ
２１６ ・・・ インフィニバンド・リンク
２１８ ・・・ ターゲット・チャネル・アダプタ（ＴＣＡ）
２２０ ・・・ ネットワーク・アダプタ
２２２ ・・・ ライン
２２４ ・・・ インフィニバンド・リンク
２２６ ・・・ ターゲット・チャネル・アダプタ（ＴＣＡ）
２２８ ・・・ ターゲット周辺機器
２３０ ・・・ インフィニバンド・リンク
２３２ ・・・ ルータ
２３４ ・・・ ライン
３００ ・・・ システム・エリア・ネットワーク（ＳＡＮ）
３０２ ・・・ スイッチ
３０４ ・・・ スイッチ
３０６ ・・・ スイッチ
３０８ ・・・ ルータ
３１０ ・・・ スイッチ
３１２ ・・・ スイッチ
３１４ ・・・ スイッチ
３１６ ・・・ スイッチ
３１８ ・・・ ホスト・プラットフォーム
３２０ ・・・ ホスト・プラットフォーム
３２２ ・・・ ホスト・プラットフォーム
３２４ ・・・ ＲＡＩＤサブシステム
３２６ ・・・ 管理コンソール
３２８ ・・・ Ｉ／Ｏ筐体
３３０ ・・・ Ｉ／Ｏ筐体
３３２ ・・・ ドライブ
３３４ ・・・ ストレージ・サブシステム
４００ ・・・ 終端ノード
４０２ ・・・ プロセス
４０４ ・・・ プロセス
４０６ ・・・ キュー対（ＱＰ）
４０８ ・・・ キュー対（ＱＰ）
４１０ ・・・ キュー対（ＱＰ）
４１８ ・・・ チャネル・アダプタ（ＣＡ）
４２０ ・・・ 矢印
５００ ・・・ インフィニバンド・ネットワーク
５０２ ・・・ 終端ノード
５０４（上） ・・・ プロセス
５０４（下） ・・・ スイッチ
５０６ ・・・ キュー対（ＱＰ）
５０８ ・・・ キュー対（ＱＰ）
５１０ ・・・ キュー対（ＱＰ）
５１２ ・・・ チャネル・アダプタ（ＣＡ）
５１４ ・・・ ポート
５１６ ・・・ ポート
５１８ ・・・ ポート
５２０ ・・・ 矢印
６００ ・・・ インフィニバンド・ネットワーク
６０２ ・・・ サブネット
６０４（上） ・・・ 終端ノード
６０４（下） ・・・ サブネット
６０６ ・・・ 終端ノード
６０８ ・・・ 終端ノード
６１０ ・・・ スイッチ
６１２ ・・・ スイッチ
６１４ ・・・ 終端ノード
６１６ ・・・ 終端ノード
６１８ ・・・ 終端ノード
６２０ ・・・ 終端ノード
６２２ ・・・ スイッチ
６２４ ・・・ スイッチ
６２６ ・・・ ルータ
６２８ ・・・ ルータ
７０２ ・・・ 方法
７０４ ・・・ ステップ
７０６ ・・・ ステップ
７０８ ・・・ ステップ
７１０ ・・・ ステップ
７１２ ・・・ ステップ
８０２Ａ ・・・ マルチキャスト・グループ
８０２Ｂ ・・・ マルチキャスト・グループ
８０４ ・・・ 第１のノード
８０４’ ・・・ 第１のノード
８０６ ・・・ パケット
８０８ ・・・ 矢印
８１０ ・・・ 第２のノード
９００ ・・・ 方法
９０２ ・・・ ステップ
９０４ ・・・ ステップ
９０６ ・・・ ステップ
９０８ ・・・ ステップ
９１０ ・・・ ステップ
９１２ ・・・ ステップ
１００２Ａ ・・・ （サブネットの）一部分
１００２Ｂ ・・・ （サブネットの）一部分
１００４ ・・・ 第１のノード
１００６ ・・・ ポート
１００８ ・・・ スイッチ
１０１０ ・・・ スイッチ
１０１２ ・・・ 線分
１０１４ ・・・ 矢印
１０１６ ・・・ 第２のノード
１０１８ ・・・ ポート
１０２０ ・・・ 線分
１０３０ ・・・ マルチキャスト・ポート
【図１】
2004537918.tif 000004
【図２】
2004537918.tif 000005
【図３】
2004537918.tif 000006
【図４】
2004537918.tif 000007
【図５】
2004537918.tif 000008
【図６】
2004537918.tif 000009
【図７】
2004537918.tif 000010
【図８】
2004537918.tif 000011
【図９】
2004537918.tif 000012
【図１０】
2004537918.tif 000013
【国際公開パンフレット】
2004537918.tif 000014
2004537918.tif 000015
2004537918.tif 000016
2004537918.tif 000017
2004537918.tif 000018
2004537918.tif 000019
2004537918.tif 000020
2004537918.tif 000021
2004537918.tif 000022
2004537918.tif 000023
2004537918.tif 000024
2004537918.tif 000025
2004537918.tif 000026
2004537918.tif 000027
2004537918.tif 000028
2004537918.tif 000029
2004537918.tif 000030
2004537918.tif 000031
2004537918.tif 000032
2004537918.tif 000033
2004537918.tif 000034
2004537918.tif 000035
2004537918.tif 000036
2004537918.tif 000037
2004537918.tif 000038
2004537918.tif 000039
2004537918.tif 000040
2004537918.tif 000041
2004537918.tif 000042
2004537918.tif 000043
2004537918.tif 000044
2004537918.tif 000045
2004537918.tif 000046
2004537918.tif 000047
2004537918.tif 000048
2004537918.tif 000049
2004537918.tif 000050
【国際調査報告】
2004537918.tif 000051
2004537918.tif 000052