(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセット
(51)【国際特許分類】
H04L 67/1097 20220101AFI20241016BHJP
H04L 47/125 20220101ALI20241016BHJP
H04L 47/765 20220101ALI20241016BHJP
G06F 13/10 20060101ALI20241016BHJP
H04L 49/9015 20220101ALN20241016BHJP
【FI】
H04L67/1097
H04L47/125
H04L47/765
G06F13/10 340A
H04L49/9015
(21)【出願番号】P 2022559988
(86)(22)【出願日】2021-03-19
(86)【国際出願番号】 CN2021081886
(87)【国際公開番号】W WO2021218484
(87)【国際公開日】2021-11-04
【審査請求日】2023-08-10
(32)【優先日】2020-04-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】グエンダート、スティーブン、ロバート
(72)【発明者】
【氏名】カタラノ、パスカル エー
(72)【発明者】
【氏名】ベヒト、マイケル ジェームス
(72)【発明者】
【氏名】コロッナ、クリストファー ジェイ
【審査官】小林 義晴
(56)【参考文献】
【文献】特開2017-102925(JP,A)
【文献】米国特許第06044406(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
H04L 47/125
H04L 47/765
G06F 13/10
H04L 49/9015
(57)【特許請求の範囲】
【請求項1】
ストレージ・エリア・ネットワーク(SAN)におけるホストによって始動されるリンク・リセットを行うための、コンピュータによって実施される方法であって、
前記SANと通信するホストによって、前記SAN内の各リンクを識別することであって、各リンクはポートのペアによって定義される、前記識別することと、
前記ホストによって、前記SAN内の各ポートに対するバッファ・クレジット・バランスを取得することと、
前記ホストによって、前記SAN内の各リンクに対するバッファ・クレジット不均衡を計算することと、
リンクに対する前記バッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、前記リンクのリセットを生じさせることと
を含
み、
前記閾値は所定のパーセンテージであり、前記バッファ・クレジット不均衡は、前記リンクのポートの前記ペアのより大きなバッファ・クレジット・バランスを、前記リンクのポートの前記ペアのより小さなバッファ・クレジット・バランスで除算し、1を減算することによって計算される、
前記方法。
【請求項2】
前記SAN内の各ポートに対する前記バッファ・クレジット・バランスを取得することは、周期的ベースで行われる、請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記周期的ベースの頻度は、前記ホストのユーザによって構成可能である、請求項2に記載のコンピュータによって実施される方法。
【請求項4】
前記リンクに対する前記バッファ・クレジット不均衡が前記閾値を超えるとの前記決定は、ポートの前記ペアの各ポートに対する前記バッファ・クレジット・バランスの差が、所定の数より大きいと決定することを含む、請求項1に記載のコンピュータによって実施される方法。
【請求項5】
前記閾値は、前記ホストのユーザによって構成可能である、請求項1に記載のコンピュータによって実施される方法。
【請求項6】
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、および前記リンクのためのポートの前記ペアの少なくとも1つは、チャネル・ポートであるとの決定に基づいて、前記ホストによって、前記リンクをリセットするようにコマンドを前記チャネル・ポートに発行すること
をさらに含む、請求項1に記載のコンピュータによって実施される方法。
【請求項7】
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、およびポートの前記ペアのいずれもチャネル・ポートではないとの決定に基づいて、前記リンクのリセットを行うように、前記リンクに関連付けられた前記SAN内のネットワーク・デバイスに命令すること
をさらに含む、請求項1に記載のコンピュータによって実施される方法。
【請求項8】
ストレージ・エリア・ネットワーク(SAN)であって、
1つまたは複数のネットワーク・デバイスと、
それぞれが前記1つまたは複数のネットワーク・デバイスの少なくとも1つに結合された複数の端末装置と
を備え、前記複数の端末装置の1つは、
前記SAN内の各リンクを識別することであって、各リンクはポートのペアによって定義される、前記識別することと、
前記SAN内の各ポートに対するバッファ・クレジット・バランスを取得することと、
前記SAN内の各リンクに対するバッファ・クレジット不均衡を計算することと、
リンクに対する前記バッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、前記リンクのリセットを生じさせることと
を行うように構成されたホスト・デバイスであ
り、
前記閾値は所定のパーセンテージであり、前記バッファ・クレジット不均衡は、前記リンクのポートの前記ペアのより大きなバッファ・クレジット・バランスを、前記リンクのポートの前記ペアのより小さなバッファ・クレジット・バランスで除算し、1を減算することによって計算される、
前記ストレージ・エリア・ネットワーク(SAN)。
【請求項9】
前記SAN内の各ポートに対する前記バッファ・クレジット・バランスを取得することは、周期的ベースで行われる、請求項
8に記載のSAN。
【請求項10】
前記周期的ベースの頻度は、前記ホストのユーザによって構成可能である、請求項
9に記載のSAN。
【請求項11】
前記リンクに対する前記バッファ・クレジット不均衡が前記閾値を超えるとの前記決定は、ポートの前記ペアの各ポートに対する前記バッファ・クレジット・バランスの差が、所定の数より大きいと決定することを含む、請求項
8に記載のSAN。
【請求項12】
前記閾値は、前記ホストのユーザによって構成可能である、請求項
8に記載のSAN。
【請求項13】
前記ホスト・デバイスは、
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、および前記リンクのためのポートの前記ペアの少なくとも1つは、チャネル・ポートであるとの決定に基づいて、前記ホストによって、前記リンクをリセットするようにコマンドを前記チャネル・ポートに発行する
ようにさらに構成される、請求項
8に記載のSAN。
【請求項14】
前記ホスト・デバイスは、
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、およびポートの前記ペアのいずれもチャネル・ポートではないとの決定に基づいて、前記リンクのリセットを行うように、前記リンクに関連付けられた前記SAN内のネットワーク・デバイスに命令する
ようにさらに構成される、請求項
8に記載のSAN。
【請求項15】
ストレージ・エリア・ネットワーク(SAN)におけるホストによって始動されるリンク・リセットを行うためのコンピュータ・プログラ
ムであって
、プロセッサに、
前記SANと通信するホストによって、前記SAN内の各リンクを識別することであって、各リンクはポートのペアによって定義される、前記識別することと、
前記ホストによって、前記SAN内の各ポートに対するバッファ・クレジット・バランスを取得することと、
前記ホストによって、前記SAN内の各リンクに対するバッファ・クレジット不均衡を計算することと、
リンクに対する前記バッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、前記リンクのリセットを生じさせることと
を行わせ
、
前記閾値は所定のパーセンテージであり、前記バッファ・クレジット不均衡は、前記リンクのポートの前記ペアのより大きなバッファ・クレジット・バランスを、前記リンクのポートの前記ペアのより小さなバッファ・クレジット・バランスで除算し、1を減算することによって計算される、
前記コンピュータ・プログラ
ム。
【請求項16】
前記SAN内の各ポートに対する前記バッファ・クレジット・バランスを取得することは、周期的ベースで行われる、請求項
15に記載のコンピュータ・プログラ
ム。
【請求項17】
前記周期的ベースの頻度は、前記ホストのユーザによって構成可能である、請求項
16に記載のコンピュータ・プログラ
ム。
【請求項18】
前記リンクに対する前記バッファ・クレジット不均衡が前記閾値を超えるとの前記決定は、ポートの前記ペアの各ポートに対する前記バッファ・クレジット・バランスの差が、所定の数より大きいと決定することを含む、請求項
15に記載のコンピュータ・プログラ
ム。
【請求項19】
前記閾値は、前記ホストのユーザによって構成可能である、請求項15に記載のコンピュータ・プログラム。
【請求項20】
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、および前記リンクのためのポートの前記ペアの少なくとも1つは、チャネル・ポートであるとの決定に基づいて、前記ホストによって、前記リンクをリセットするようにコマンドを前記チャネル・ポートに発行すること、又は
前記リンクに対する前記バッファ・クレジット不均衡は、前記閾値を超えるとの、およびポートの前記ペアのいずれもチャネル・ポートではないとの決定に基づいて、前記リンクのリセットを行うように、前記リンクに関連付けられた前記SAN内のネットワーク・デバイスに命令すること
をさらに含む、請求項15に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にストレージ・エリア・ネットワーク(SAN)に関し、より具体的には、SANにおけるホストによって始動される(host initiated)リンク・リセットに関する。
【背景技術】
【0002】
SANの通常の動作の間、肯定応答を含むファイバ・チャネル・フレームは、伝送において破損され得る。このような破損は、光学系故障、不良ケーブル、緩んだ接続、許容範囲外の光バジェット、間欠的なハードウェア誤動作などによって引き起こされ得る。
【0003】
ファイバ・チャネル接続の受信側が、到来フレームのヘッダ内のフレーム開始(SOF)を認識できないとき、受信側は適切な肯定応答を用いて応答しない。一例において、送信側は、フレームを送るときに、使用可能なバッファ・クレジットを1だけデクリメントするが、対応する肯定応答を受信しない。結果として、バッファ・クレジットの観点から、送信側と受信側の間の同期がゆがめられる。この条件が生じたとき、それは継続するようになり、使用可能であると認識されるバッファ・クレジットの数を、性能に影響を及ぼすまでに徐々に減少させ、またはリンク伝送が完全に停止することにさえ繋がる。
【0004】
現在、ファイバ・チャネル標準においてもたらされるバッファ・クレジット回復機構は、送信側と受信側の間のバッファ・クレジットの同期におけるエラーが生じるのを防止することを試みる。標準は、1)リンク・リセットと、2)単にクレジットの補充を結果として生じる計算との、バッファ・クレジット回復の2つのモードをサポートする。しかし、バッファ・クレジット回復の両方のモードは、専らスイッチなどのネットワーク・デバイスによって、およびスイッチ・ポートのためにのみ行われる。
【発明の概要】
【0005】
本発明の実施形態は、ストレージ・エリア・ネットワーク(SAN)におけるホストによって始動されるリンク・リセットを行うための、コンピュータによって実施される方法を対象とする。コンピュータによって実施される方法の非限定的な例は、SANと通信するホストによって、SAN内の各リンクを識別することを含み、各リンクはポートのペアによって定義される。方法はまた、ホストによって、SAN内の各ポートに対するバッファ・クレジット・バランス(buffer credit balance)を取得することと、ホストによって、SAN内の各リンクに対するバッファ・クレジット不均衡(buffer credit imbalance)を計算することとを含む。方法は、リンクに対するバッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、リンクのリセットを生じさせることをさらに含む。
【0006】
本発明の実施形態は、ストレージ・エリア・ネットワーク(SAN)を対象とする。SANの非限定的な例は、1つまたは複数のネットワーク・デバイスと、それぞれが1つまたは複数のネットワーク・デバイスの少なくとも1つに結合された複数の端末装置とを含む。複数の端末装置の1つは、SAN内の各リンクを識別するように構成されたホスト・デバイスであり、各リンクはポートのペアによって定義される。ホスト・デバイスはまた、SAN内の各ポートに対するバッファ・クレジット・バランスを取得することと、SAN内の各リンクに対するバッファ・クレジット不均衡を計算することとを行うように構成される。ホスト・デバイスは、リンクに対するバッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、リンクのリセットを生じさせるようにさらに構成される。
【0007】
本発明の実施形態は、ストレージ・エリア・ネットワーク(SAN)におけるホストによって始動されるリンク・リセットを行うためのコンピュータ・プログラム製品を対象とし、コンピュータ・プログラム製品は、プログラム命令がそれで具体化されたコンピュータ可読記憶媒体を備える。プログラム命令は、プロセッサに方法を行わせるように、プロセッサによって実行可能である。方法の非限定的な例は、SANと通信するホストによって、SAN内の各リンクを識別することを含み、各リンクはポートのペアによって定義される。方法はまた、ホストによって、SAN内の各ポートに対するバッファ・クレジット・バランスを取得することと、ホストによって、SAN内の各リンクに対するバッファ・クレジット不均衡を計算することを含む。方法は、リンクに対するバッファ・クレジット不均衡が閾値を超えるとの決定に基づいて、リンクのリセットを生じさせることをさらに含む。
【0008】
さらなる技術的特徴および利点が、本発明の技術を通して実現される。本発明の実施形態および態様は、本明細書で詳しく述べられ、特許請求される主題の一部と考えられる。より良い理解のために、詳しい説明および図面を参照されたい。
【0009】
本明細書で述べられる独占的権利の詳細は、本明細書の結びにおける特許請求項において具体的に指摘され、明確に請求される。本発明の実施形態の上記および他の特徴および利点は、以下の詳しい説明を添付の図面と併せ読めば明らかになる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態による、コンピュータ・システムの概略図である。
【
図2】本発明の実施形態による、ストレージ・エリア・ネットワークの概略図である。
【
図3】本発明の実施形態による、ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセットを行う方法のフロー図である。
【
図4】本発明の他の実施形態による、ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセットを行う方法のフロー図である。
【発明を実施するための形態】
【0011】
本明細書で示される図は、説明のためのものである。図またはそこで述べられる動作には、本発明の思想から逸脱せずに、多くの変形があり得る。例えば、アクションは異なる順序で行われることができ、またはアクションは追加、削除、または変更され得る。また、「結合される」という用語およびその変形は、2つの要素の間に通信経路を有することを記述し、それらの間に介在する要素/接続がない、要素の間の直接の接続を意味しない。これらの変形のすべては、本明細書の一部と考えられる。
【0012】
例示的実施形態は、ストレージ・エリア・ネットワーク(SAN)におけるホストによって始動されるリンク・リセットを行うための方法、システム、およびコンピュータ・プログラム製品を含む。例示的実施形態において、SANに接続されたホスト・デバイスは、チャネル・ポートおよびスイッチ・ポートを含む、SAN内のすべてのポートにおいて使用可能として報告されるバッファ・クレジットを監視するように構成される。ホスト・デバイスは、リンクのいずれかの端部における2つのポートの間のバッファ・クレジット不均衡が、閾値を超えたと決定するとすぐに、SAN内のリンク・リセットを生じさせるようにさらに構成される。リンク・リセットは、リンクの両方のポートに対するバッファ・クレジット・カウンタを、それらの最大限のデフォルト値に戻すように強制する。
【0013】
次に
図1を参照すると、実施形態によるコンピュータ・システム100が全体的に示される。コンピュータ・システム100は、本明細書で述べられるような、コンピューティング・デバイス、および様々な通信技術を利用するネットワークの、任意の数および組合せを備えるまたは使用するあるいはその両方の電子的、コンピュータ・フレームワークとすることができる。コンピュータ・システム100は、他とは独立して異なるサービスに変更する、またはいくつかの機能を再構成する能力を用いて、容易にスケーラブル、拡張可能、およびモジュール式とすることができる。コンピュータ・システム100は、例えば、サーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、またはスマートフォンとすることができる。いくつかの例において、コンピュータ・システム100は、クラウド・コンピューティング・ノードとすることができる。コンピュータ・システム100は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的な関連において説明され得る。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含み得る。コンピュータ・システム100は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが行われる、分散クラウド・コンピューティング環境において実施され得る。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含んだ、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置され得る。
【0014】
図1に示されるように、コンピュータ・システム100は、1つまたは複数の中央処理装置(CPU)101a、101b、101cなどを有する(まとめてまたは総称して、プロセッサ101と呼ばれる)。プロセッサ101は、単一コア・プロセッサ、マルチコア・プロセッサ、コンピューティング・クラスタ、または任意の数の他の構成とすることができる。処理回路とも呼ばれるプロセッサ101は、システム・バス102を通じて、システム・メモリ103および様々な他の構成要素に結合される。システム・メモリ103は、読み出し専用メモリ(ROM)104およびランダム・アクセス・メモリ(RAM)105を含むことができる。ROM104は、システム・バス102に結合され、コンピュータ・システム100のいくつかの基本機能を制御する基本入出力システム(BIOS)を含み得る。RAMは、プロセッサ101による使用のために、システム・バス102に結合された読み出し書き込みメモリである。システム・メモリ103は、動作の間の前記命令の動作のためのメモリ空間をもたらす。システム・メモリ103は、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ、フラッシュ・メモリ、または任意の他の適切なメモリ・システムを含むことができる。
【0015】
コンピュータ・システム100は、入出力(I/O)アダプタ106と、システム・バス102に結合された通信アダプタ107とを備える。I/Oアダプタ106は、ハード・ディスク108または任意の他の同様な構成要素あるいはその両方と通信する、小型コンピュータ・システム・インターフェース(SCSI)アダプタとすることができる。I/Oアダプタ106およびハード・ディスク108は、本明細書ではまとめて大容量記憶装置110と呼ばれる。
【0016】
コンピュータ・システム100上での実行のためのソフトウェア111は、大容量記憶装置110に記憶され得る。大容量記憶装置110は、プロセッサ101によって読み出し可能な有形記憶媒体の例であり、ソフトウェア111は、様々な図に関して以下で本明細書で述べられるものなど、コンピュータ・システム100を動作させるように、プロセッサ101による実行のための命令として記憶される。コンピュータ・プログラム製品およびこのような命令の実行の例は、より詳しく本明細書で論じられる。通信アダプタ107は、システム・バス102を、外部ネットワークとすることができるネットワーク112に相互接続し、コンピュータ・システム100が他のこのようなシステムと通信するのを可能にする。一実施形態において、システム・メモリ103の一部分および大容量記憶装置110は、共同でオペレーティング・システムを記憶し、これは、
図1に示される様々な構成要素の機能を連係させるための、IBMコーポレーションからのz/OS(R)またはAIX(R)オペレーティング・システムなどの、任意の適切なオペレーティング・システムとすることができる。
【0017】
追加の入出力デバイスは、ディスプレイ・アダプタ115およびインターフェース・アダプタ116を通じて、システム・バス102に接続されているのが示される。一実施形態において、アダプタ106、107、115、および116は、中間バス・ブリッジ(図示せず)を通じてシステム・バス102に接続された、1つまたは複数のI/Oバスに接続され得る。ディスプレイ119(例えば、画面または表示モニタ)は、ディスプレイ・アダプタ115によってシステム・バス102に接続され、ディスプレイ・アダプタ115は、グラフィックスの負荷が高いアプリケーションの性能を改善するグラフィックス・コントローラ、およびビデオ・コントローラを含み得る。キーボード121、マウス122、スピーカ123などは、例えば、複数のデバイス・アダプタを単一の集積回路に統合したスーパーI/Oチップを含み得るインターフェース・アダプタ116を通じて、システム・バス102に相互接続され得る。ハード・ディスク・コントローラ、ネットワーク・アダプタ、およびグラフィックス・アダプタなどの、周辺デバイスを接続するための適切なI/Oバスは、通常、ペリフェラル・コンポーネント・インターコネクト(PCI)などの共通プロトコルを含む。従って、
図1に構成されるように、コンピュータ・システム100は、プロセッサ101の形での処理能力、システム・メモリ103および大容量記憶装置110を含む記憶能力、キーボード121およびマウス122などの入力手段、ならびにスピーカ123およびディスプレイ119を含む出力能力を含む。
【0018】
いくつかの実施形態において、通信アダプタ107は、中でも、インターネット・小型コンピュータ・システム・インターフェースなどの、任意の適切なインターフェースまたはプロトコルを用いて、データを送信することができる。ネットワーク112は、中でも、セルラ・ネットワーク、無線ネットワーク、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、またはインターネットとすることができる。外部コンピューティング・デバイスは、ネットワーク112を通してコンピュータ・システム100に接続し得る。いくつかの例において、外部コンピューティング・デバイスは、外部ウェブサーバまたはクラウド・コンピューティング・ノードとすることができる。
【0019】
図1のブロック図は、コンピュータ・システム100が
図1に示される構成要素のすべてを含むことを示すためのものではないことが理解されるべきである。むしろ、コンピュータ・システム100は、任意の適切なより少ない、または
図1に示されない追加の構成要素(例えば、追加のメモリ構成要素、組み込みコントローラ、モジュール、追加のネットワーク・インターフェースなど)を含むことができる。さらに、コンピュータ・システム100に関して本明細書で述べられる実施形態は、任意の適切なロジックを用いて実施されることができ、本明細書において呼ばれるロジックとは、様々な実施形態において、任意の適切なハードウェア(例えば、中でも、プロセッサ、組み込みコントローラ、または特定用途向け集積回路)、ソフトウェア(例えば、中でも、アプリケーション)、ファームウェア、またはハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを含むことができる。
【0020】
図2は、実施形態による、ストレージ・エリア・ネットワーク(SAN)200の図である。SAN200は、スイッチなどの、1つまたは複数のネットワーク・デバイス230にそれぞれが接続された、複数の端末装置210、220を含む。ネットワーク・デバイス230は、メモリ回路および処理回路(例えば、監視回路および制限回路を含む)を含む。SAN200のネットワーク・トポロジは、ネットワーク・デバイス230がスイッチである、スイッチド・ファブリックとすることができる。いくつかの実施形態において、特定のスイッチ230は、スイッチ・モードまたはNポートID仮想化(NPIV)モードに設定され得る。例示的実施形態において、SANデバイス210内の端末装置210、220の少なくとも1つは、ホスト・デバイス210として構成される。一実施形態において、ホスト・デバイス210は、
図1に示されるものなど、コンピュータ・システムにおいて具体化される。
【0021】
例示的実施形態において、ネットワーク・デバイス230のそれぞれは、ネットワーク・デバイス230を、リンク225を通じて様々な端末装置210、220に接続する複数のポートを含む。加えて、各端末装置210、220は、端末装置を、1つまたは複数のネットワーク・デバイス230または他の端末装置220に接続する1つまたは複数のポートを含む。例示的実施形態において、各リンク225は、リンク225に接続された2つのポートによって定義される。端末装置220、210のポートはチャネル・ポートと呼ばれ、ネットワーク・デバイス230のポートはスイッチ・ポートと呼ばれる。
【0022】
例示的実施形態において、ネットワーク・デバイス230は、ファイバ・チャネル(FC)またはファイバ・チャネル・オーバー・イーサネット(R)(FCoE)プロトコルあるいはその両方をサポートする。例えば、特定の固定のポート・ネットワーク・デバイスは、FCプロトコルまたはFCoEプロトコルあるいはその両方をサポートし得る。他の例として、特定のネットワーク・デバイスが複数のライン・カードを含む場合、それらの少なくともいくつかはFCプロトコルをサポートすることができ、またはそれらの少なくともいくつかはFCoEプロトコルをサポートすることができ、あるいはその両方とすることができる。特定のネットワーク・デバイス230上の特定のポートは、デフォルトでまたは構成されるのに従って(例えば、特定のポートがユニバーサル・ポートである場合)、FCプロトコルまたはFCoEプロトコルをサポートし得ることが留意される。任意選択で、ネットワーク・デバイス230は、例えば、管理デバイス210上の出力のために、情報を集めるための簡易ネットワーク管理プロトコル(SNMP)などの、1つまたは複数の他のプロトコルをサポートする。
【0023】
次に
図3を参照すると、本発明の実施形態による、ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセットを行う方法300のフロー図が示される。ブロック302に示されるように、方法300は、SANと通信するホストによって、SAN内の各リンクを識別することを含む。例示的実施形態において、SAN内の各リンクは、ポートのペアによって定義され、これらはチャネル・ポートおよびスイッチ・ポートの1つであり、またはスイッチ間リンクの場合は2つのスイッチ・ポートとすることができる。方法300はまた、ブロック304に示されるように、ホストによって、SAN内の各ポートに対するバッファ・クレジット・バランスを取得することを含む。次に、ブロック306に示されるように、方法300は、ホストによって、SAN内の各リンクに対するバッファ・クレジット不均衡を計算することを含む。一実施形態において、バッファ・クレジット不均衡は、リンクの2つのポートのバッファ・クレジット・バランスの差を決定することによって計算される。他の実施形態において、バッファ・クレジット不均衡は、リンクの2つのポートのバッファ・クレジット・バランスのパーセント差を決定することによって計算される。
【0024】
方法300はまた、決定ブロック308に示されるように、リンクに対するバッファ・クレジット不均衡が閾値を超えるかどうかを決定することを含む。リンクに対するバッファ・クレジット不均衡が閾値を超える場合、方法300はブロック310に進み、リンクのリセットを生じさせる。そうでない場合は、方法300はブロック304に戻る。例示的実施形態において、閾値は、ホスト・デバイスのユーザによって設定される。例示的実施形態において、SAN内の各ポートに対するバッファ・クレジット・バランスを取得することは、周期的ベースで行われる。例えば、一実施形態において、ホスト・デバイスは、15分ごとに、またはホスト・デバイスのユーザによって設定された他の所定の間隔で、SAN内の各ポートに対するバッファ・クレジット・バランスを取得するように構成される。
【0025】
一実施形態において、リンクに対するバッファ・クレジット不均衡が閾値を超えるとの決定は、ポートのペアの各ポートに対するバッファ・クレジット・バランスの差が、所定の数より大きいと決定することを含む。一例において、リンクは第1のポートと第2のポートとによって定義され、第1のポートに対するバッファ・クレジット・バランスは8であり、第2のポートに対するバッファ・クレジット・バランスは5である。閾値が2である場合、リンクはリセットされることになる。しかし、閾値が3である場合、この時点でリンクはリセットされないことになる。
【0026】
他の実施形態において、閾値は所定のパーセンテージであり、バッファ・クレジット不均衡は、リンクのポートのペアのより大きなバッファ・クレジット・バランスを、リンクのポートのペアのより小さなバッファ・クレジット・バランスで除算し、1を減算することによって計算される。一例において、リンクは第1のポートと第2のポートとによって定義され、第1のポートに対するバッファ・クレジット・バランスは8であり、第2のポートに対するバッファ・クレジット・バランスは5であり、閾値は50%すなわち0.5である。この例において、リンクに対するバッファ・クレジット不均衡は、(8/5)-1=0.6であり、従ってリンクはリセットされることになる。
【0027】
例示的実施形態において、リンクはリセットされる必要があると決定された後、リンクをリセットするためにとられるアクションは、リンクを定義するポートのタイプに依存する。一実施形態において、リンクのためのポートのペアの少なくとも1つがチャネル・ポートであるとの決定に基づいて、ホスト・デバイスは、リンクをリセットするためにチャネル・ポートにコマンドを発行することによって、リンクがリセットされるようにする。他の実施形態において、ポートのペアのいずれもチャネル・ポートではないとの決定に基づいて、ホスト・デバイスは、リンクのリセットを行うように、リンクに関連付けられたSAN内のネットワーク・デバイスに命令することによって、リンクがリセットされるようにする。一実施形態において、命令は、制御ユニット・プロトコル(CUP)を用いてネットワーク・デバイスに送られる。
【0028】
例示的実施形態において、SANは、ノードの間の通信のためにファイバ・チャネルを利用する。ファイバ・チャネルは、フレーム開始(SOF)またはフレーム終了(EOF)の境界を定めるフレーム・デリミタを含む、フレームと呼ばれるデータのパケットを送るように構成される。送信ポート上のイベントを表す基本信号(primitive signals)は、肯定応答信号(R_RDY)およびバッファ間状態変化(BB_SC)信号を含む。BB_RDY_N変数は、通常、受信されたR_RDY基本要素(primitives)のカウントを保持するために用いられ、BB_FRM_Nは、受信されたフレームのカウントを保持する。バッファ間状態変化数(BB_SC_N)は、BB_SCs基本信号の間のフレームの数と、BB_SCr基本信号の間のR_RDYの数とを指定する値を反映する。バッファ間状態変化R_RDY(BB_SCr)信号は、いずれかのR_RDYが失われたかどうかを、アタッチされたポートが決定することを可能にするために周期的に送信される。バッファ間状態変化SOF(BB_SCs)信号は、いずれかのフレームが失われたかどうかを、アタッチされたポートが決定することを可能にするために送信される。
【0029】
例示的実施形態において、BB_SC_N(バッファ間状態変化数)は、2つのポートの間のリンクに対する合意されたバッファ・クレジット最大値を追跡するために用いられる。例えば、2つのポートが接続されるとき、ログイン(FLOGIまたはPLOGI)の間、ポートは交換リンクパラメータ(ELP)を行い、それらの値を運ぶ内部リンク・サービス(ILS)フレームを互いに送る。2つのポートが異なる値を有する場合、2つの値の大きい方が、両方のポートによって用いられる。通常、BB_SC_Nは、1~15の範囲である。例示的実施形態において、変数Fは、BB_SCsの間で送られることになるフレームの数と、BB_SCr基本信号の間に送られるR_RDYの数とを指定するために用いられる。一実施形態において、Fは、2BB_SC_Nとして定義される。言い換えれば、チェックポイントを確立するために、BB_SCs信号はF個のフレームごとに送られ、BB_SCrはF個のR_RDYごとに送られる。一例において、BB_SC_N=3であり、従ってF=8である。この例において、各ポートは、バッファ間フロー制御を受ける8フレームごとにBB_SCsを送るようになり、各ポートは、8個のR_RDYごとにBB_SCrを送るようになる。
【0030】
例示的実施形態において、各ポートは、ログインの完了と最初のBB_SCsの受信との間に受信されたフレームの数のカウント、例えば、BB_FRM_Nを保持する。加えて、各ポートはまた、BB_SCsの連続する発生の間のカウントを保持する。フレームの数のカウントがFに達したときは、ゼロにラップ・バック(wrap back)し、最初からやり直す。しかし、BB_SCsが到着したときにカウンタがゼロでない場合、これはフレームの1つまたは複数が失われたことを意味する。
【0031】
例示的実施形態において、各ポートは、ログインの完了と、最初のBB_SCrの受信との間に受信されたR_RDYの数のカウント、例えば、BB_RDY_Nを保持する。各ポートはまた、BB_SCrの連続する発生の間のカウントを保持する。R_RDYの数のカウントが、計算された値Fに達したときは、ゼロにラップ・バックし、最初からやり直す。しかし、BB_SCrが受信されたとき、受信されたR_RDYの数のカウントがゼロでない場合は、1つまたは複数のR_RDYが失われている。
【0032】
次に
図4を参照すると、本発明の他の実施形態による、ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセットを行う方法400のフロー図を示す。ブロック402に示されるように、BB_SCrまたはBB_SCsがポートに到達する。次に、決定ブロック404に示されるように、BB_RDY_NまたはBB_FRM_Nがゼロに等しいかどうかが決定される。BB_RDY_NまたはBB_FRM_Nがゼロに等しい場合、方法400は、ブロック406に進み、SANの通常の動作を継続する。しかし、BB_RDY_NおよびBB_FRM_Nの1つがゼロに等しくない場合、1つまたは複数のフレームまたはR_RDYが失われたと決定され、方法400は決定ブロック408に進む。
【0033】
当業者には理解されるように、BB_RDY_NおよびBB_FRM_Nは、ファイバ・チャネル標準において許容される計数/追跡実装形態の異なる実施形態である。例示的実施形態において、これらのカウンタがゼロ値を有することは正常であり、アクションは必要ない。しかし、これらのカウンタがゼロでない値を有するとき、これはR_RDY基本要素が失われたまたは行方不明であることを示し、従ってリンクの受信側において使用可能なバッファ・クレジットの数は、もはやそれらの完全なまたは期待される構成された値ではなくなる。例示的実施形態において、いつバッファ・クレジット回復を実行するかの決定を起動するために、閾値が用いられる。異なる実施形態において、閾値起動は、ポートのログインBB_Credit値のパーセンテージ、0個の残りのバッファ・クレジット、指定された値未満(例えば、5未満)のバッファ・クレジット、またはフレーム・ペーシング遅延の事例の数が、RMF(リソース測定機能)74-7(FICON(R)ディレクタ・アクティビティ・レポート)を通じて、構成されたRMF間隔の間に、報告されたことに基づく、ユーザによって構成可能な値とすることができる。
【0034】
図4を続けて参照すると、決定ブロック408で、バッファ・クレジット損失に対する閾値が起動されたかどうかを決定する。そうである場合、方法400は決定ブロック410に進む。そうでなければ、方法400はブロック406に進み、SANの通常の動作を継続する。決定ブロック410で、リンクのポートの1つまたは複数がチャネル・ポート、または直接アタッチされたCUポートであるかが決定される。リンクのポートの1つまたは複数がチャネル・ポート、または直接アタッチされたCUポートである場合、方法はブロック412に進み、ホスト・デバイスは、コマンドをチャネル・ポートに発行して、リンク・リセット(LR)を行う。そうでなければ、方法はブロック414に進み、ホスト・デバイスは、コマンドを発行して(FICON CUPまたはSMI-Sを通じて)、LRを行う。方法400は、ブロック416で、リンク上のバッファ・クレジットが復旧されたときに完結する。例示的実施形態において、LRの間に、フレームは廃棄されず、それらはLRが完結し、LRがすべての関わるカウンタを初期値にリセットするまでバッファに保持され、実質的に「失われた」バッファ・クレジットを「補充」する。
【0035】
本発明の様々な実施形態は、本明細書において、関連する図面を参照して述べられる。本発明の範囲から逸脱せずに、本発明の代替実施形態が考案され得る。以下の説明において、および図面において、要素の間の様々な接続および位置関係(例えば、上に、下に、隣接してなど)が記述される。これらの接続または位置関係あるいはその両方は、他に明記されない限り、直接または間接とすることができ、本発明はこの点に関して限定するものではない。従って、エンティティの結合は、直接または間接結合を指すことができ、エンティティの間の位置関係は、直接または間接の位置関係とすることができる。さらに、本明細書で述べられる様々なタスクおよび処理ステップは、本明細書では詳しく述べられない追加のステップまたは機能を有する、より包括的な手順またはプロセスに組み込まれ得る。
【0036】
以下の定義および略語は、特許請求の範囲および本明細書の解釈のために用いられるものである。本明細書で用いられる、用語「備える(comprises、comprising)」、「含む(includes、including)」、「有する(has、having)」、「含む(containsもしくはcontaining)」、またはそれらの任意の他の変形は、非排他的包含を包括するものである。例えば、要素のリストを備える組成物、混合物、プロセス、方法、製品、または装置は、必ずしもそれらの要素のみに限定されず、明示的に列挙されないまたはこのような組成物、混合物、プロセス、方法、製品、または装置に固有でない他の要素を含むことができる。
【0037】
加えて、本明細書では「例示的」という用語は、「例、事例、または例証として役立つ」ことを意味するように用いられる。「例示的」として本明細書で述べられる実施形態または設計は、必ずしも他の実施形態または設計より好ましいまたは有利であると解釈されるべきではない。「少なくとも1つ」および「1つまたは複数」という用語は、1以上の任意の整数、すなわち1、2、3、4などを含むものと理解され得る。「複数(a plurality)」という用語は、2以上の任意の整数、すなわち2、3、4、5などを含むものと理解され得る。「接続」という用語は、間接的「接続」および直接的「接続」の両方を含み得る。
【0038】
「約(about)」、「実質的に(substantially)」、「おおよそ(approximately)」という用語およびそれらの変形は、本出願を申請する時点で使用可能な機器に基づいて、特定の量の測定に関連付けられる誤差の程度を含むことが意図される。例えば、「約」は所与の値の±8%または5%または2%を含むことができる。
【0039】
簡単にするために、本発明の態様の作成および使用に関する従来の技術は、本明細書で詳しく述べられる場合または述べられない場合がある。具体的には、本明細書で述べられ様々な技術的特徴を実施するためのコンピューティング・システムおよび特定のコンピュータ・プログラムの様々な態様は、よく知られている。従って、簡略にするために、多くの従来の実装形態の詳細は、本明細書では簡潔に述べられるだけであるか、またはよく知られたシステムまたはプロセスあるいはその両方の詳細を示さずに全体が省かれる。
【0040】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるための、コンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含み得る。
【0041】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、およびこれらの任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通して伝送される電気信号など、それ自体が一時的信号であるものと解釈されるものではない。
【0042】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを通じて、外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0043】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0044】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して本明細書で述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0045】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するための手段を作成するように、マシンを生じさせるべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサにもたらされ得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含んだ製品を備えるように、特定のやり方で機能するようにコンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはその組合せに指示することができる、コンピュータ可読記憶媒体に記憶され得る。
【0046】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、コンピュータによって実施されるプロセスを生じさせるべく、一連の動作ステップがコンピュータ、他のプログラム可能な装置、または他のデバイス上で行われるようにすることができる。
【0047】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際は、実質的に並行して実行されることができ、またはブロックは関わる機能性に応じて、時には逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0048】
本発明の様々な実施形態の説明は、例示のために提示されたが、網羅的であること、または開示される実施形態に限定されるものではない。当業者には、述べられる実施形態の範囲および思想から逸脱せずに、多くの変更形態および変形形態が明らかになるであろう。本明細書で用いられる専門用語は、実施形態の原理、実用的な応用例、または市場で見出される技術に対する技術的改良を最もよく説明するように、または当業者が本明細書で述べられる実施形態を理解することを可能にするように選ばれている。