(57)【特許請求の範囲】
【請求項１】
発信元スイッチ、中間スイッチ、宛先スイッチを含む、カスケード構成を有する分散スイッチにおいて中継動作を終了させるための、前記中間スイッチにおける方法であって、
前記中間スイッチにより、第１のエクスチェンジと呼ばれる仮想リソース・プールで示されるリソースに関連するスイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）要求を前記発信元スイッチから受信することと、
前記中間スイッチにより、ＳＷ−ＩＬＳ要求を前記宛先スイッチに中継することであって、転送するＳＷ−ＩＬＳ要求が第２のエクスチェンジと呼ばれる仮想リソース・プールで示されるリソースに関連する、中継することとと、
前記中間スイッチにより、前記中継の後に、前記発信元スイッチにおいてエラーが検出されたことに応じて、前記発信元スイッチから送信されたアボート・シーケンス（ＡＢＴＳ）を受信することと、
前記発信元スイッチから送信されたＡＢＴＳの受信に応じて、前記中間スイッチにより、
前記第１のエクスチェンジで示されるリソースを解放するために、前記第１のエクスチェンジと関連する確認応答を前記発信元スイッチに送信することと、
前記第２のエクスチェンジに関連するＡＢＴＳを、前記宛先スイッチに送信することと、
前記第２のエクスチェンジに関連するＡＢＴＳを受信したことに応じて、前記宛先スイッチから送信された、前記第２のエクスチェンジに関連する確認応答を受信することと、
前記第２のエクスチェンジに関連する確認応答を前記宛先スイッチから受信したことに応じて、前記第２のエクスチェンジで示されるリソースを解放することと、
を含む方法。
【請求項２】
前記方法は、前記第１および第２のエクスチェンジのペアのうちの前記第２のエクスチェンジの終了に応答して、前記エクスチェンジのペアのうちの前記第１のエクスチェンジを終了させること、をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のエクスチェンジ又は前記第２のエクスチェンジは、アボート・シーケンス（ＡＢＴＳ）の受信又は送信によって終了し、前記分散スイッチは、分散型ファイバ・チャネル・オーバー・イーサネット・スイッチ又は分散型ファイバ・チャネル・スイッチを含む、請求項２に記載の方法。
【請求項４】
前記第１又は第２のエクスチェンジを終了させることは、ファイバ・チャネル・オーバー・イーサネット又はファイバ・チャネルにおいて、前記第１又は第２のエクスチェンジに対応する仮想リソース・プールで示されるリソースを解放する、請求項３に記載の方法。
【請求項５】
前記カスケード構成は、発信元スイッチと、１つ又は複数の中間スイッチと、宛先スイッチとを含み、前記１つ又は複数の中間スイッチの少なくとも１つによるエラー検出に応答して、アボート・シーケンスが順方向及び逆方向の両方に伝播される、請求項１から請求項４までのいずれかに記載の方法。
【請求項６】
エラー検出が前記カスケード構成において伝播される、請求項１から請求項５までのいずれかに記載の方法。
【請求項７】
エクスチェンジ中継と関連付けられた全てのリソースが適時に再利用される、請求項１から請求項６までのいずれかに記載の方法。
【請求項８】
発信元スイッチ、中間スイッチ、宛先スイッチを含む、カスケード構成で保持される複数のスイッチに含まれ得る前記中間スイッチと、
前記複数のスイッチの少なくとも１つに結合されたメモリと、
前記メモリに結合されたプロセッサと、
を含み、前記プロセッサは、
前記中間スイッチにより、第１のエクスチェンジと呼ばれる仮想リソース・プールで示されるリソースに関連するスイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）要求を前記発信元スイッチから受信することと、
前記中間スイッチにより、ＳＷ−ＩＬＳ要求を前記宛先スイッチに中継することであって、転送するＳＷ−ＩＬＳ要求が第２のエクスチェンジと呼ばれる仮想リソース・プールで示されるリソースに関連する、中継することとと、
前記中間スイッチにより、前記中継の後に、前記発信元スイッチにおいてエラーが検出されたことに応じて、前記発信元スイッチから送信されたアボート・シーケンス（ＡＢＴＳ）を受信することと、
前記発信元スイッチから送信されたＡＢＴＳの受信に応じて、前記中間スイッチにより、
前記第１のエクスチェンジで示されるリソースを解放するために、前記第１のエクスチェンジと関連する確認応答を前記発信元スイッチに送信することと、
前記第２のエクスチェンジに関連するＡＢＴＳを、前記宛先スイッチに送信することと、
前記第２のエクスチェンジに関連するＡＢＴＳを受信したことに応じて、前記宛先スイッチから送信された、前記第２のエクスチェンジに関連する確認応答を受信することと、
前記第２のエクスチェンジに関連する確認応答を前記宛先スイッチから受信したことに応じて、前記第２のエクスチェンジで示されるリソースを解放することと、
を含む動作を実行する、システム。
【請求項９】
前記動作は、前記第１および第２のエクスチェンジのペアのうちの前記第２のエクスチェンジの終了に応答して、前記エクスチェンジのペアのうちの前記第１のエクスチェンジを終了させること、をさらに含む、請求項８に記載のシステム。
【請求項１０】
前記第１のエクスチェンジ又は前記第２のエクスチェンジは、アボート・シーケンス（ＡＢＴＳ）の受信又は送信によって終了し、前記複数のスイッチは、分散型ファイバ・チャネル・オーバー・イーサネット・スイッチ又は分散型ファイバ・チャネル・スイッチを含む、請求項９に記載のシステム。
【請求項１１】
前記第１又は第２のエクスチェンジを終了させることは、ファイバ・チャネル・オーバー・イーサネット又はファイバ・チャネルにおいて、前記第１又は第２のエクスチェンジに対応する仮想リソース・プールで示されるリソースを解放する、請求項１０に記載のシステム。
【請求項１２】
前記カスケード構成は、発信元スイッチと、１つ又は複数の中間スイッチと、宛先スイッチとを含み、前記１つ又は複数の中間スイッチの少なくとも１つによるエラー検出に応答して、アボート・シーケンスが順方向及び逆方向の両方に伝播される、請求項８から請求項１１までのいずれかに記載のシステム。
【請求項１３】
エラー検出が前記カスケード構成において伝播される、請求項８から請求項１２までのいずれかに記載のシステム。
【請求項１４】
エクスチェンジ中継と関連付けられた全てのリソースが適時に再利用される、請求項８から請求項１３までのいずれかに記載のシステム。
【請求項１５】
カスケード構成を有する分散スイッチにおいて中継動作を終了させるためのコンピュータ・プログラムであって、請求項１から請求項７までのいずれかに記載の方法の各ステップを処理回路に実行させるための命令を含む、コンピュータ・プログラム。
【請求項１６】
請求項１から請求項７までのいずれかに記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、カスケード構成を有する分散スイッチにおいて中継動作を終了させるための機構に関する。
【背景技術】
【０００２】
ストレージ・コンポーネントのようなコンピュータ・システム内の種々のコンポーネントは、ストレージ・システムを含む種々の設定で用いられるギガビット速度のデータ転送技術であるファイバ・チャネル・プロトコルを用いて互いに接続することができる。ファイバ・チャネル・オーバー・イーサネット（ＦＣｏＥ）は、イーサネット上でファイバ・チャネル（ＦＣ）フレームを転送するために用いられる技術である。ＦＣｏＥ業界標準は、国際情報技術規格委員会（International Committee for Information Technology Standards、ＩＮＣＩＴＳ）のファイバ・チャネル技術委員会により開発され、配布されている。
【０００３】
提案されるＩＮＣＩＴＳ標準「ＦＩＢＲＥ  ＣＨＡＮＮＥＬ  ＳＷＩＴＣＨ  ＦＡＢＲＩＣ−６」（ＦＣ−ＳＷ−６）は、複数のファブリック・スイッチ素子を含むファブリックを相互接続するための要件を記載している。ＦＣ−ＳＷ−６の更なる詳細は、インターネット・ベースの刊行物である非特許文献１に見出すことができる。本開示の目的のために、２０１３年２月１日に発行されたＦＣ−ＳＷ−６のバージョンは「２０１３年２月１日付の現行ＦＣ−ＳＷ−６提案標準」と呼ばれる。
【０００４】
ＦＣデータ・プレーン・フォワーダ（ＦＣＤＦ）は、スイッチング素子を通じて特定のポート間でＦＣフレームを転送する簡素化されたＦＣスイッチング・エンティティである。分散スイッチは、少なくとも１つの制御スイッチと関連付けられた一組のＦＣＤＦを含むことができる。制御スイッチは、ＦＣＤＦの組の動作を制御する。ＦＣｏＥ又はＦＣ環境において、特定の分散スイッチを実装することができる。
【０００５】
ＦＣ−ＳＷ−６により定義される分散スイッチは、カスケード接続されたスイッチング素子の概念をサポートする。これは、中間スイッチング素子におけるエクスチェンジＩＤの変換（Exchange ID translation）を必要とする。現行標準は、２つのスイッチ間のエクスチェンジのうちの１つで検出されたエラーを、エクスチェンジ中継（exchange relay）に関与するリソースの全てを適時に再利用できることを保証するような方法で回復させ得る機構を提供するものではない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】米国国家規格協会（１１  Ｗｅｓｔ  ４２ｎｄ  Ｓｔｒｅｅｔ，Ｎｅｗ  Ｙｏｒｋ、ＮＹ  １００３６）、「ＦＩＢＲＥ  ＣＨＡＮＮＥＬ  ＳＷＩＴＣＨ  ＦＡＢＲＩＣ−６」、[online]、２０１３年２月１日発行、インターネット<URL:http://www.t11.org/ftp/t11/pub/fc/sw-6/13-047v0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、当該技術分野において、上述の問題に対処する必要性が存在する。
【課題を解決するための手段】
【０００８】
複数のスイッチをカスケード構成で保持する、方法、システム、及びコンピュータ・プログラムが提供される。スイッチは、スイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）を中継し、スイッチにおいて第１のエクスチェンジ及び第２のエクスチェンジを含むエクスチェンジのペアを生成する。エクスチェンジのペアのうちの第１のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第２のエクスチェンジが終了する。
【０００９】
第１の態様から見ると、本発明は、カスケード構成を有する分散スイッチにおいて中継動作を終了させるための方法を提供する。方法は、複数のスイッチをカスケード構成で保持することと、スイッチにより、スイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）を中継し、スイッチにおいて第１のエクスチェンジ及び第２のエクスチェンジを含むエクスチェンジのペアを生成することと、エクスチェンジのペアのうちの第１のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第２のエクスチェンジを終了させることとを含む。
【００１０】
第２の態様から見ると、本発明は、カスケード構成を有する分散スイッチにおいて中継動作を終了させるためのシステムを提供する。システムは、カスケード構成で保持された複数のスイッチと、複数のスイッチの少なくとも１つに結合されたメモリと、メモリに結合されたプロセッサとを含み、プロセッサは、スイッチにより、スイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）を中継し、スイッチにおいて第１のエクスチェンジ及び第２のエクスチェンジを含むエクスチェンジのペアを生成することと、エクスチェンジのペアのうちの第１のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第２のエクスチェンジを終了させることとを含む動作を実行する。
【００１１】
更に別の態様から見ると、本発明は、カスケード構成を有する分散スイッチにおいて中継動作を終了させるためのコンピュータ・プログラム製品を提供する。コンピュータ・プログラム製品は、処理回路により読み出し可能であり、本発明のステップを実行するための方法を実施するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。
【００１２】
更に別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、コンピュータ上で実行されたとき、本発明のステップを実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００１３】
更に別の態様から見ると、本発明は、コンピュータ可読プログラム・コードがそこに具体化されたコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品を提供する。コンピュータ可読プログラム・コードは、複数のスイッチをカスケード構成で保持することと、スイッチにより、スイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）を中継し、スイッチに第１のエクスチェンジ及び第２のエクスチェンジを含むエクスチェンジのペアを生成することと、エクスチェンジのペアのうちの第１のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第２のエクスチェンジを終了させることとを含む動作をプロセッサ上で実行するように構成される。
【００１４】
付加的な実施形態において、エクスチェンジのペアのうちの第２のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第１のエクスチェンジを終了させる。
【００１５】
さらに付加的な実施形態においては、アボート・シーケンス（ＡＢＴＳ）を受信すること又は送信することのいずれかによって、第１のエクスチェンジ又は第２のエクスチェンジが終了し、複数のスイッチは、分散型ファイバ・チャネル・オーバー・イーサネット（distributed Fibre Channel over Ethernet）スイッチ又は分散型ファイバ・チャネル・スイッチを含む。
【００１６】
更に別の実施形態において、エクスチェンジを終了させることにより、ファイバ・チャネル・オーバー・イーサネット又はファイバ・チャネルにおいて、エクスチェンジに対応する仮想リソース・プールが解放される。
【００１７】
特定の実施形態において、カスケード構成は、発信元スイッチと、１つ又は複数の中間スイッチと、宛先スイッチとを含み、ここで１つ又は複数の中間スイッチの少なくとも１つによるエラー検出に応答して、アボート・シーケンスが順方向及び逆方向の両方に伝播される。
【００１８】
更に別の実施形態において、エラー検出は、カスケード構成において伝播される。
【００１９】
更に別の実施形態において、エクスチェンジ中継と関連付けられた全てのリソースが、適時に再利用される。
【００２０】
ここで本発明を、以下の図面に示されるように、好ましい実施形態を参照して単なる一例として説明する。
【図面の簡単な説明】
【００２１】
【図１】本発明の好ましい実施形態を実装することができる、従来技術によるカスケード接続されたスイッチ環境のブロック図を示す。
【図２】特定の実施形態による、発信元スイッチがアボート・シーケンス（ＡＢＴＳ）を発信するのを示すブロック図を示す。
【図３】特定の実施形態による、中間スイッチがＡＢＴＳを発信するのを示すブロック図を示す。
【図４】特定の実施形態による、宛先スイッチがＡＢＴＳを生成するのを示すブロック図を示す。
【図５】特定の実施形態によるフローチャートを示す。
【図６】本発明の好ましい実施形態を実装することができる、従来技術によるスイッチのブロック図を示す。
【発明を実施するための形態】
【００２２】
以下の説明において、本明細書の一部を形成し、幾つかの実施形態を示す添付図面を参照する。他の実施形態を用い得ること、及び、構造及び動作の変更を行い得ることが理解される。
【００２３】
現行標準及び特定の実施形態に関連する問題
２０１３年２月１日付の現行ＦＣ−ＳＷ−６提案標準の第１７章により定義される分散スイッチは、カスケード接続されたスイッチング素子の概念をサポートする。２０１３年２月１日付の現行ＦＣ−ＳＷ−６提案標準は、２つのスイッチ間のエクスチェンジのうちの１つで検出されたエラーを、エクスチェンジ中継に関与するリソースの全てを適時に再利用できることを保証するような方法で回復させる機構を提供するものではない。
【００２４】
特定の実施形態は、ファイバ・チャネル又はファイバ・チャネル・オーバー・イーサネットのカスケード接続されたスイッチ環境において、エラー検出を伝播するための機構を提供する。カスケード接続されたスイッチ環境では、一方の端に発信元スイッチが存在し、他方の端に宛先スイッチが存在する。発信元スイッチと宛先スイッチとの間には、１つ又は複数の中間スイッチが存在する。コマンドが発信元スイッチから宛先スイッチまで前進する際、コマンドが宛先スイッチに到達するまで、各中間スイッチがコマンドを中継する。いずれかのポイントにおいて、コマンド上にエラーが検出された場合には、検出スイッチだけではなく、チェーン内の全てのスイッチ上のコマンドと関連付けられたリソースを解放することが望ましい。特定の実施形態は、エラーが発生した場合に、チェーン内の全てのスイッチにおけるリソースを解放するための機構を提供する。
【００２５】
特定の実施形態において、要求に応答して、中間スイッチは、着信側エクスチェンジと発信側エクスチェンジとの間の関連付けを追跡する。この中間スイッチは、タイムアウト又は他のエラーが原因でエクスチェンジのうちの１つのアボートが必要な場合に、他方のエクスチェンジもアボートすることを保証するために使用することができる。
【００２６】
特定の実施形態は、ファイバ・チャネル環境及びファイバ・チャネル・オーバー・イーサネット環境の両方に適用可能である。本開示の目的のために、分散スイッチは、分散型ファイバ・チャネル・スイッチ又は分散型ファイバ・チャネル・オーバー・イーサネット・スイッチである。
【００２７】
例示的な実施形態
図１は、特定の実施形態による、カスケード接続されたスイッチ環境１００のブロック図を示す。図１は、２０１３年２月１日付の現行ＦＣ−ＳＷ−６提案標準の「図４９」と同一である。
【００２８】
図１は、カスケード構成の発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６を示す。特定の実施形態において、発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６は、図１に示されるように、ＦＣＤＦ、ＦＤＦ又は他のタイプのスイッチとすることができ、ここでＦＤＦは、ＦＣｏＥ用の、ＦＣｏＥデータ・フォワーダ（data forwarder）であり、ＦＣＤＦは、ＦＣ用の、ＦＣデータ・プレーン・フォワーダ（FC Data-Plane Forwarder）である。図１に示される動作は、発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６を含む、図１に示されるカスケード構成のスイッチにおける種々のスイッチにより実施することができる。スイッチは、データ及びコマンドを送信し、受信し、方向付けることができる、計算又は処理デバイスなどのデバイスである。
【００２９】
図１において、発信元スイッチ１０２は、ＳＷ＿ＩＬＳ要求１０８を中間スイッチ１０４に送信する。ＳＷ＿ＩＬＳは、スイッチ・ファブリック内部リンク・サービス（switch fabric internal link service）を指す。エクスチェンジ（Ｅｘｃｈａｎｇｅ）Ｘ  １１０と呼ばれる仮想リソース・プールが、ＳＷ＿ＩＬＳ要求１０８と関連付けられる。
【００３０】
中間スイッチ１０４は、ＳＷ＿ＩＬＳ要求１０８を受信し、対応するＳＷ＿ＩＬＳ要求１１２を宛先スイッチ１０６に転送する。エクスチェンジＹ  １１４と呼ばれる仮想リソース・プールが、ＳＷ＿ＩＬＳ要求１１２と関連付けられる。従って、エクスチェンジＸ  １１０はＳＷ＿ＩＬＳ要求１０８と関連付けられ、エクスチェンジＹ  １１４はＳＷ＿ＩＬＳ要求１１２と関連付けられる。
【００３１】
ひとたび宛先スイッチ１０６がＳＷ＿ＩＬＳ要求１１２を受信すると、宛先スイッチ１０６は、ＳＷ＿ＡＣＣ  １１６コマンドを中間スイッチ１０４に送信し、エクスチェンジＹ  １１８と呼ばれる仮想リソース・プールを解放する。ＳＷ＿ＡＣＣ  １１６コマンドは、仮想リソース・プールを解放する肯定応答である。中間スイッチ１０４は、ＳＷ＿ＡＣＣコマンド１２０を送信することによって、ＳＷ＿ＡＣＣ  １１６コマンドを発信元スイッチ１０２に中継し、エクスチェンジＸ  １２２で示されるリソース・プールを解放する。
【００３２】
従って、図１においては、エクスチェンジ識別子（例えば、エクスチェンジＸ、エクスチェンジＹ等）がＳＷ＿ＩＬＳ要求と関連付けられ、対応するＳＷ＿ＡＣＣコマンドを受信すると、リソースを示すこうしたエクスチェンジ識別子が解放される。
【００３３】
２０１３年２月１日付の現行ＦＣ−ＳＷ−６提唱標準は、２つのスイッチ間のエクスチェンジのうちの１つで検出されたエラーを、エクスチェンジ中継に関与する全リソースを適時に再利用できることを保証するような方法で回復させる機構を提供するものではない。
【００３４】
図１において、ＳＷ＿ＩＬＳ要求の中継によって、中継を実施しているＦＣＤＦにおける関連するエクスチェンジのペアがもたらされる。本開示で提案される特定の実施形態においては、（例えば、ＡＢＴＳ、即ちアボート・シーケンスを送受信することによって）エクスチェンジのペアのうちの１つが終了すると、別のＡＢＴＳにより他方の関連したエクスチェンジが終了する。アボート・シーケンスを、順方向及び逆方向の両方に中継し、カスケード接続されたスイッチ環境内のスイッチの１つにおけるエラーに起因してリソースを解放することができる。スイッチにおけるエラーは、タイムアウト又は何らかの他の理由で生じ得る。
【００３５】
図２は、特定の実施形態による、発信元スイッチがＡＢＴＳを発信することを示すブロック図２００を示す。図２に示される動作は、発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６を含む、図２に示されるカスケード構成のスイッチの種々のスイッチにより実施することができる。
【００３６】
発信元スイッチ１０２は、エクスチェンジＸで示されるリソースと関連付けられたＳＷ＿ＩＬＳ要求を中間スイッチ１０４に送信する（参照番号２０２）。中間スイッチ１０４は、エクスチェンジＹで示されるリソースと関連付けられたＳＷ＿ＩＬＳ要求を宛先スイッチ１０６に伝送する（参照番号２０４）。次いで、発信元スイッチ１０２がエラーを検出する（参照番号２０６）。
【００３７】
エラーを検出すると、発信元スイッチ１０２は、エクスチェンジＸと関連付けられたＡＢＴＳを中間スイッチ１０４に送信する（参照番号２０８）。次いで、中間スイッチ１０４は、任意の順序で、エクスチェンジＹと関連付けられたＡＢＴＳを宛先スイッチ１０６に、そして、エクスチェンジＸと関連付けられたＢＡ−ＡＣＣを発信元スイッチ１０２に送信する（参照番号２１０、２１２）。エクスチェンジＸと関連付けられたＢＡ−ＡＣＣの結果として、エクスチェンジＸに対応するリソース・プールを再利用できるようになる（参照番号２１２）。特定の実施形態においては、中間スイッチ１０４は、エクスチェンジＹの終了を待って（エクスチェンジＹに関するＡＢＴＳへのＢＡ＿ＡＣＣを待って）からでなければ、エクスチェンジＸへのＢＡ＿ＡＣＣに応答することができない。
【００３８】
宛先スイッチ１０６は、中間スイッチ１０４からＡＢＴＳを受信すると、エクスチェンジＹと関連付けられたＢＡ−ＡＣＣを中間スイッチ１０４に送信し、その結果として、エクスチェンジＹに対応するリソース・プールを再利用することができる。
【００３９】
従って、図２においては、発信元スイッチ１０２がエラーを検出している。発信元スイッチ１０２は、エクスチェンジＸに関するＡＢＴＳを送信する。中間スイッチ１０４は、ＡＢＴＳを受信すると、エクスチェンジＸに割り当てられたリソースを割り当て解除し、ＢＡ−ＡＣＣにより発信元スイッチ１０２に応答する。全てのリソースが割り当て解除されることを保証するために、中間スイッチ１０４はまた、宛先スイッチ１０６に対してＡＢＴＳによりエクスチェンジＹをアボートする。
【００４０】
図３は、特定の実施形態による、中間スイッチ１０４がＡＢＴＳを発信することを示すブロック図３００を示す。図３に示される動作は、発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６を含む、図３に示されるカスケード構成のスイッチにおける種々のスイッチによって実施することができる。
【００４１】
図３において、発信元スイッチ１０２は、エクスチェンジＸと関連付けられたＳＷ−ＩＬＳ要求を中間スイッチ１０４に送信し（参照番号３０２）、中間スイッチ１０４は、エクスチェンジＹと関連付けられたＳＷ−ＩＬＳ要求を宛先スイッチ１０６に転送（参照番号３０４）した後、エラーを検出する（参照番号３０６）。
【００４２】
図３に示される特定の実施形態においては、中間スイッチ１０４がエラーを検出している。全てのリソースを解放するために、エクスチェンジＹに関して、ＡＢＴＳが中間スイッチ１０４から宛先スイッチ１０６に送信され（参照番号３１０）、エクスチェンジＸに関して、ＡＢＴＳが中間スイッチ１０４から発信元スイッチ１０２に送信される（参照番号３１２）。中間スイッチ１０４において、発信元スイッチ１０２及び宛先スイッチ１０６からＢＡ−ＡＣＣ肯定応答を受信すると（参照番号３１２、３１４）、エクスチェンジＸ及びエクスチェンジＹと関連付けられたリソースが解放される。
【００４３】
図４は、特定の実施形態による、宛先スイッチがＡＢＴＳを生成することを示すブロック図４００を示す。図４に示される動作は、発信元スイッチ１０２、中間スイッチ１０４、及び宛先スイッチ１０６を含む、図４に示されるカスケード構成のスイッチにおける種々のスイッチによって実施することができる。
【００４４】
図４において、エクスチェンジＸと関連付けられたＳＷ＿ＩＬＳ要求が、発信元スイッチ１０２から中間スイッチ１０４に送信され（参照番号４０２）、次いで、中間スイッチ１０４が、エクスチェンジＹと関連付けられたＳＷ−ＩＬＳ要求を宛先スイッチ１０６に転送する（参照番号４０４）。
【００４５】
次いで、宛先スイッチ１０６がエラーを検出し（参照番号４０６）、中間スイッチ１０４に、エクスチェンジＹに関するＡＢＴＳを送信する（参照番号４０８）。中間スイッチ１０４は、エクスチェンジＹに関するＢＡ−ＡＣＣを送信し（参照番号４１０）、その結果、エクスチェンジＹと関連付けられた仮想リソース・プールを再利用できるようになる。中間スイッチ１０４はまた、参照番号４１０により示される動作と並行して、又はその前に、又はその後に、エクスチェンジＸに関するＡＢＴＳを発信元スイッチ１０２に送信（参照番号４１２）することができ、該発信元スイッチ１０２は、エクスチェンジＸに関するＢＡ−ＡＣＣを中間スイッチ１０４に送信して（参照番号４１４）、エクスチェンジＸと関連付けられたリソースを解放することもできる。
【００４６】
図４に説明される特定の実施形態においては、宛先スイッチ１０６がエラーを検出している。全てのリソースを解放するために、エクスチェンジＹに関しては、ＡＢＴＳが中間スイッチ１０４に送信され、エクスチェンジＸに関しては、ＡＢＴＳが発信元スイッチ１０２に中継される。
【００４７】
図５は、特定の実施形態によるフローチャート５００を示す。図５に示される動作は、図１〜図４に示される複数のスイッチのうちの１つ又は複数によって実施することができる。
【００４８】
制御は、複数のスイッチがカスケード構成で保持されるブロック５０２で開始する。（ブロック５０４において）スイッチは、スイッチ・ファブリック内部リンク・サービス（ＳＷ−ＩＬＳ）を中継して、スイッチにおける第１のエクスチェンジ及び第２のエクスチェンジを含むエクスチェンジのペアを生成する。
【００４９】
ブロック５０４から、制御は、ブロック５０６及び５０８に並行して進む。ブロック５０６において、エクスチェンジのペアのうちの第１のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第２のエクスチェンジが終了する。ブロック５０８において、エクスチェンジのペアのうちの第２のエクスチェンジの終了に応答して、エクスチェンジのペアのうちの第１のエクスチェンジが終了する。
【００５０】
従って、図１〜図５は、カスケード構成が、発信元スイッチと、１つ又は複数の中間スイッチと、宛先スイッチとを含み、少なくとも１つのスイッチによるエラー検出に応答して、アボート・シーケンスが、順方向及び逆方向の両方に伝播される、特定の実施形態を示す。ファイバ・チャネル・オーバー・イーサネット構成又はファイバ・チャネル構成において、エクスチェンジ中継と関連付けられた全てのリソースが適時に再利用される。
【００５１】
特定の実施形態において、分散スイッチはＦＣ環境において実装することができ、これを分散型ＦＣスイッチと呼ぶことができる。他の実施形態において、分散スイッチはＦＣｏＥ環境において実装することができ、これを分散型ＦＣｏＥスイッチと呼ぶことができる。カスケード接続されたスイッチ環境は、分散型ＦＣ又はＦＣｏＥスイッチにより生成することができ、類似した実施形態を、ＦＣ及びＦＣｏＥにおいて実装することができる。
【００５２】
付加的な実施形態の詳細
説明される動作は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせを生成するための標準的なプログラミング及び／又は工学技術を用いて、方法、装置、又はコンピュータ・プログラム製品として実施することができる。従って、本実施形態の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は、ソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においてはこれらの全てを一般に、「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本実施形態の態様は、コンピュータ可読プログラム・コードが組み入れられた１つ又は複数のコンピュータ可読媒体内として具体化されたコンピュータ・プログラム製品の形を取ることができる。
【００５３】
１つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、これらに限定されるものではないが、例えば、電子、磁気、光学、電磁気、赤外線又は半導体のシステム、装置若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、以下のもの、即ち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせが挙げられる。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いるため、又はそれらと接続して用いるためにプログラムを収容又は格納することができるいずれかの有形媒体とすることができる。
【００５４】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えば、ベースバンド内に又は搬送波の一部として組み入れられた伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光、又はそれらの任意の適切な組み合わせを含む種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、且つ、命令実行システム、装置若しくはデバイスによって、又はこれらとの関連で使用するためのプログラムを通信し、伝搬し、又は搬送することができる、任意のコンピュータ可読媒体とすることができる。
【００５５】
コンピュータ可読媒体上で具体化されるプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は前述のものの任意の適切な組み合わせを含む任意の適切な媒体を用いて伝送することができる。
【００５６】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、ＳｍａｌｌＴａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）、又は広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は、外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダ（ＩＳＰ）を用いたインターネットを通じて）Ｊａｖａ及び全てのＪａｖａ関連の商標及びロゴは、Ｏｒａｃｌｅ社及び／又はその関連会社の商標又は登録商標である。
【００５７】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して、本明細書で説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。
【００５８】
これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。
【００５９】
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【００６０】
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにもすることもできる。
【００６１】
図６は、特定の実施形態による、スイッチ１０２、１０４、１０６内に含ませることができる特定の要素を示すブロック図を示す。システム６００は、特定の実施形態において、少なくとも１つのプロセッサ６０４を含むことができる回路６０２を含むことができる。システム６００はまた、メモリ６０６（例えば、揮発性メモリ・デバイス）及びストレージ６０８を含むこともできる。ストレージ６０８は、不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ、ファームウェア、プログラム可能論理等）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等を含むことができる。ストレージ６０８は、内部ストレージ・デバイス、取り付けられたストレージ・デバイス、及び／又はネットワーク・アクセス可能ストレージ・デバイスを含むことができる。システム６００は、メモリ６０６内にロードし、プロセッサ４０４又は回路６０２によって実行することができるコード６１２を含むプログラム論理６１０を含むことができる。特定の実施形態において、コード６１２を含むプログラム論理６１０は、ストレージ６０８内に格納することができる。他の特定の実施形態において、プログラム論理６１０は、回路６０２内に実装することができる。従って、図６は、他の要素とは別にプログラム論理６１０を示すが、プログラム論理６１０は、メモリ６０６内及び／又は回路６０２内に実装することができる。
【００６２】
特定の実施形態は、人によるコンピューティング命令の配備、又はコンピュータ可読コードをコンピューティング・システムに統合する自動処理のための方法に向けることができ、ここでコードは、コンピューティング・システムと組み合わされて、説明された実施形態の動作を実施するようにイネーブルにされる。
【００６３】
「１つの実施形態」、「実施形態」、「実施形態（複数）」、「本実施形態（単数）」、「本実施形態（複数）」、「１つ又は複数の実施形態」、「幾つかの実施形態」及び「一実施形態」は、特に明記されない限り、（全てではない）１つ又は複数の実施形態を意味する。
【００６４】
「含む」、「備える」、「有する」、及びそれらの変形は、特に明記されない限り、「それらを含むが、それらに限定されるものではない」ことを意味する。
【００６５】
項目の列挙されたリストは、特に明記されない限り、項目のいずれか又は全てが相互に排他的であることを意味するものではない。
【００６６】
「１つの（a）」、「１つの（an）」及び「その（the）」という用語は、特に明記されない限り、「１つ又は複数（one or more）」を意味する。
【００６７】
互いに通信するデバイスは、特に明記されない限り、互いに連続的に通信している必要はない。さらに、互いに通信するデバイスは、直接的に、又は１つ又は複数の中間物を通して間接的に、通信することができる。
【００６８】
互いに通信する幾つかのコンポーネントに関する実施形態の説明は、そのようなコンポーネントの全てを必要であることを意味するものではない。対照的に、本発明の多種多様な可能な実施形態を示すために、種々の随意的なコンポーネントが説明される。
【００６９】
さらに、プロセス・ステップ、方法ステップ、アルゴリズム等が順番に説明されることがあるが、そうしたプロセス、方法、及びアルゴリズムは、別の順序で動作するように構成することもできる。言い換えれば、説明され得るステップのいずれのシーケンス又は順序も、必ずしもその順序でステップが実施される要件を示すものではない。本明細書で説明されるプロセスのステップは、実用的な任意の順序で実施することができる。さらに、幾つかのステップは、同時に実施することができる。
【００７０】
本明細書において単一のデバイス又は物品が説明される場合、単一のデバイス／物品の代わりに、１つより多くのデバイス／物品を（それらが協働してもしなくても）使用できることが容易に明らかであろう。同様に、本明細書において、１つより多くのデバイス又は物品が（それらが協働してもしなくても）説明される場合、１つより多くのデバイス又は物品の代わりに、単一のデバイス／物品を用いることができること、又は、示される数のデバイス又はプログラムの代わりに異なる数のデバイス／物品を使用できることは容易に明らかであろう。デバイスの機能及び／又は特徴は、そうした機能／特徴を有するものとして明示的に説明されていない１つ又は複数の他のデバイスにより、代替的に具体化することができる。従って、本発明の他の実施形態は、デバイス自体を含む必要はない。
【００７１】
図面内に示され得る特定の少なくとも特定の動作は、特定のイベントが特定の順序で行われことを示す。代替的な実施形態において、特定の動作は、異なる順序で実行し、変更し、又は除去することができる。さらに、ステップを上述の論理に付加し、依然として、説明された実施形態に適合させることができる。さらに、本明細書で説明された動作を連続的に行うことができ、又は、特定の動作を並行処理することができる。さらにまた、動作は、単一の処理ユニットにより、又は、分散処理ユニットにより実施することもできる。
【００７２】
本発明の種々の実施形態についての上記の説明は、例示及び説明の目的のために提示されている。これは、網羅的であること、又は本発明を開示された正確な形態に限定することを意図するものでもない。上記の教示に照らして、多くの変更及び変形が可能である。本発明の範囲は、この詳細な説明によってではなく、寧ろ本明細書に添付の特許請求の範囲によって限定されることが意図される。上記の明細書、実施例、及びデータは、本発明の構成物の製造及び使用の完全な説明を提供する。本発明の多くの実施形態は、本発明の範囲から逸脱することなく行うことができるので、本発明は、以下の添付の特許請求の範囲内に存在する。
【符号の説明】
【００７３】
１００：カスケード接続されたスイッチ環境
１０２：発信元スイッチ
１０４：中間スイッチ
１０６：宛先スイッチ
１０８、１１２：ＳＷ＿ＩＬＳ要求
１１０、１２２：エクスチェンジＸ
１１４、１１８：エクスチェンジＹ
１１６、１２０：ＳＷ＿ＡＣＣコマンド
６００：システム
６０２：回路
６０４：プロセッサ
６０６：メモリ
６０８：ストレージ
６１０：プログラム論理
６１２：コード
【図１】
0006541653.tif 000002
【図２】
0006541653.tif 000003
【図３】
0006541653.tif 000004
【図４】
0006541653.tif 000005
【図５】
0006541653.tif 000006
【図６】
0006541653.tif 000007