説明

ネットワークにおけるスイッチとデバイスの間の配信不能通知

【課題】 ネットワークにおけるスイッチとデバイスとの間の配信不能通知をサポートするためのコンピュータ・プログラム、システム、及び方法を提供する。
【解決手段】 使用可能でない宛先ノードを示すテスト経路要求に応答して、スイッチに配信不能通知を戻させるために配信不能通知サービスを要求するテスト・サービス・パラメータを含む、スイッチによるログインを開始する。スイッチが配信不能通知サービスを伴ったログインを受諾するというスイッチからの応答を受け取ることに応答して、ログインにおいてテスト・サービスが使用可能であることを示す。スイッチのログインにおいて配信不能通知サービスが使用可能であると判断することに応答して、テスト経路要求をスイッチに送り、宛先ノードが使用可能であるかどうかを判断する。テスト経路要求が向けられる宛先ノードが使用可能でないとスイッチが判断することに応答して、スイッチから配信不能通知を受け取る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークにおけるスイッチとデバイスの間の配信不能通知(non-delivery notification)をサポートするための方法、システム及びコンピュータ・プログラムに関する。
【背景技術】
【0002】
ファイバーチャネル・ストレージ・エリア・ネットワーク(Storage Area Network、SAN)において、ファイバーチャネル・ファブリックは、幾つかのスイッチと、イニシエータ(例えば、サーバ)Nx_PortとターゲットNx_Port(例えば、ストレージ・デバイス)との間の相互接続部とからなることができる。2つのNx_Port間の経路におけるいずれかの物理ファイバーチャネル・リンクが故障したとき、或いはサービス措置、リセット又は他の回復措置のためにオフラインにされたとき、通信中のNx_Portは、これらの間の通信経路全体の状態を迅速に判断して、より高レベルのアプリケーション又はオペレーティング・システムが故障した経路を使用し、非常に長いタイムアウト回復を経験する前に、故障に対する措置をとり、この通信経路を回復すること、又は、別の使用可能な経路を使い始めることができるようにしなければならない。
【0003】
ネットワークにおけるサーバ又は他のデバイスは、クエリ・フレームを送ることによって、別のノードへの経路の状態を判断することができる。ファイバーチャネルの実装において、状態を判断したいと思うデバイスは、PDISC拡張リンク・サービス(Extended Link Service、ELS)要求を、第1のNx_Portから第2の宛先Nx_Portに送り、タイムアウト時間内の応答又は応答の欠如を用いて、経路の状態を判断することができる。代替的に、デバイスは、クエリをネームサーバに送り、ターゲット・デバイスが、デバイスにおけるリンクの故障又はリンクのオフライン状況のために、ネームサーバから登録を取り消されたかどうかを判断することができる。これらの方法の各々は、このデバイスからの通信に影響を与え得るファブリックの状態の変化を示す登録状態変化通知(Registered State Change Notification、RSCN)をファブリックから受信したときに開始することができる。
【0004】
ファイバーチャネルのクラス2サービスは、フレーム又は要求の受信確認付き(acknowledged)配信、及び、フレーム又は要求を配信できなかった場合のファブリックによる要求側への通知を要求することによって、デバイスの可用性についての情報を提供する。例えば、ファイバーチャネルのクラス2サービスにおいて、要求が1つのNx_Portから別のNx_Portに送られ、ファブリックにおけるいずれの特定の地点においても要求をターゲットに配信できない場合、要求を配信できなかったスイッチは、ファブリック拒否(F_RJT)又はファブリック・ビジー(F_BSY)応答を要求側に送らなければならない。これにより、経路の一部が故障しているという表示が、要求側に即時に(マイクロ秒で)与えられる。開始プログラム(initiator)が現在ファブリック又はネームサーバにそれぞれログインされていない場合には、クラス2サービスをさらに用いて、ネームサーバに照会し、即時のF_RJT又はP_RJT(ポート拒否)が受信されるようにすることができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ファイバーチャネルのクラス2サービスは、ファイバーチャネルのスイッチ及びホストバス・アダプタに実装するには高価であり、非エンタープライズ・クラスのファイバーチャネル・デバイスには広く用いられていない。配信通知の確認を必要としないファイバーチャネルのクラス3サービスの使用が、より一般的である。配信できなかったクラス3クエリは、要求側に通知されずに削除される。ファイバーチャネルのクラス3環境においては、ファイバーチャネル経路の状態を判断したいと思うデバイスは、クエリを宛先ノードに送り、応答のないタイムアウト時間の満了を待ち、テストされている宛先ノードへの経路が使用可能でないことを判断する必要がある。経路の状態を判断するためにタイムアウト時間を待つために、経路の故障をタイムリーに判断することはできない。例えば、要求側は、2秒−10秒のオーダーであるタイムアウト時間を待たなければならないだけでなく、幾つかの実施においては、経路が故障したと判断する前に、もう一度クエリ及びタイムアウトを再試行しなければならないことがある。何らかの他のエラー又はファブリック輻輳が原因でタイムアウトが生じることもあるので、この判断が正確であるという保証はない。
【課題を解決するための手段】
【0006】
ネットワークにおけるスイッチとデバイスの間の配信不能通知をサポートするためのコンピュータ・プログラム、システム、及び方法が提供される。使用可能でない宛先ノードを示すテスト経路要求に応答して、スイッチに配信不能通知を戻させるために配信不能通知サービスを要求するテスト・サービス・パラメータを含む、スイッチによるログインを開始する。スイッチが配信不能通知サービスを伴ったログインを受諾するというスイッチからの応答を受け取ることに応答して、ログインにおいてテスト・サービスが使用可能であることを示す。スイッチのログインにおいて配信不能通知サービスが使用可能であると判断することに応答して、テスト経路要求をスイッチに送り、宛先ノードが使用可能であるかどうかを判断する。テスト経路要求が向けられる宛先ノードが使用可能でないとスイッチが判断することに応答して、スイッチから配信不能通知を受け取る。
【0007】
ネットワークにおけるスイッチとデバイスの間の配信不能通知をサポートするためのコンピュータ・プログラム、システム、及び方法が提供される。配信不能通知サービスを要求するテスト・サービス・パラメータを含むログイン要求をアダプタから受け取る。配信不能通知がサポートされていると判断することに応答して、アダプタにおいて使用可能であるものとして配信不能通知サービスを示す。アダプタから、宛先ノードへのテスト経路要求を受け取る。テスト経路要求を宛先ノードに転送する。テスト経路要求が向けられる宛先ノードが使用可能でないと判断する。宛先ノードが使用可能でないと判断することに応答して、アダプタにおいて配信不能通知サービスが使用可能であるかどうかを判断する。アダプタにおいて配信不能通知サービスが使用可能であると判断することに応答して、宛先ノードについての配信不能通知をアダプタに送る。
【0008】
ここで本発明の実施形態が、添付図面を参照して単なる例として説明される。
【図面の簡単な説明】
【0009】
【図1】ネットワーク・コンピューティング環境の実施形態を示す。
【図2】デバイス・ログイン要求の実施形態を示す。
【図3】デバイス・ログイン情報の実施形態を示す。
【図4】スイッチ・ログイン情報の実施形態を示す。
【図5】テスト経路要求の実施形態を示す。
【図6】スイッチとデバイスの間に配信不能通知サービスを伴ったログインを確立するための、デバイス及びスイッチ内で実行される動作の実施形態を示す。
【図7】配信不能通知サービスを用いて宛先ノードの可用性を判断するための、デバイス及びスイッチ内で実行される動作の実施形態を示す。
【発明を実施するための形態】
【0010】
図1は、ネットワーク7において、デバイス2が、スイッチ6を介して宛先ノード4に接続される実施形態を示す。デバイス2、宛先ノード4及びスイッチ6は、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、広域エリア・ネットワーク(WAN)、無線ネットワーク等のような、スイッチ、デバイス、及びストレージ・システムの1つ又は複数のファブリックを含むより大きいネットワーク7の一部とすることができる。宛先ノード4は、ネットワーク7内の他のデバイスにパケットを送ると共に、パケットを受信することができる。さらに、宛先ノード4は、デバイス2が通信することができる、ネットワーク7内のいずれかのデバイスを表わす。
【0011】
デバイス2は、プロセッサ8と、メモリ10と、アダプタ12とを含むことができる。メモリ10は、オペレーティング・システム14と、デバイス2の動作とアダプタ12のハードウェアとの間のインターフェースを提供するアダプタ・デバイス・ドライバ16とを含む。アダプタ12は、アダプタ・コントローラ18と、3つが示されている1つ又は複数のポート20a、20b、20cとを含む。アダプタ・コントローラ18は、アダプタ12及びポート20a、20b、20cの動作を管理する。デバイス2は、ホスト、ストレージ・デバイス又は他のネットワーク・コンポーネントを含むことができる。
【0012】
スイッチ6は、アダプタ22の動作を制御するためのアダプタ・コントローラ24と、ファイバーチャネル・ファブリックのようなネットワーク内のデバイスへの相互接続を与えるための1つ又は複数のポート26a、26b、26cとを含む。スイッチ6は、プロセッサ28と、プロセッサ28により実行されるオペレーティング・システム32及びアダプタ・デバイス・ドライバ34プログラムを有するメモリ30とを含む。アダプタ・デバイス・ドライバ34は、スイッチ・コンポーネントとアダプタ22との間のインターフェースを提供する。デバイス2上のポート20cは、スイッチ・アダプタ22上のポート26bに接続され、スイッチ・ポート26aは、宛先ノード4内のアダプタ(図示せず)に接続される。スイッチ6は、他のスイッチ、ホスト、ストレージ・デバイス等を含む、ネットワーク内のデバイスの間の相互接続を提供するために、複数のポートを有する複数のアダプタを含むことができる。
【0013】
デバイス2及びスイッチ6は、コードを実行するプロセッサ8、28を含むように示される。代替的な実施形態においては、デバイス2及びスイッチ6のコード及び論理は、ハードウェア・デバイスとして実装することができる。メモリ・デバイス10、30は、揮発性又は不揮発性のコンピュータ・メモリ・デバイスを含むことができる。
【0014】
ネットワーク内のデバイス2、6、8は、スイッチド(switched)ファブリック構成で接続することができる。代替的な実施形態においては、デバイスは、アービトレート型ループ又はポイントツーポイント構成で接続することができる。ファイバーチャネルの実装において、デバイス2及び宛先ノード4は、Nx_portを含むことができる。特定の実装において、スイッチ6は、該スイッチを通してパケットを宛先ノードに送る接続されたデバイスに成功又は失敗の受信確認(acknowledgement)を自動的には戻さない、クラス3のファイバー・チャネル・サービスを用いて、スイッチ6がデバイス2及び宛先ノード4に接続することができる。
【0015】
図2は、デバイス2のようなネットワーク7内のデバイスが、スイッチ6を用いたログイン及びこれとのセッションの確立を実行し、デバイス2が、スイッチ6に直接的又は間接的に接続されたネットワーク7内の他のデバイスと通信するのを可能にする、デバイス・ログイン要求50の実施形態を示す。この要求50は、ログイン要求パラメータ52と、デバイス2がテスト経路要求を送った場合に、スイッチ6が宛先ノード4に配信できないという配信不能通信を与えるようにデバイス2がスイッチ6に要求する、配信不能通知(non-delivery notification、NDN)フラグ54とを含む。ファイバーチャネルの実装において、NDNフラグ54を含むデバイス・ログイン要求50は、ファブリック・ログイン(Fabric Login、FLOGI)拡張リンク・サービス(Extended LinkService、ELS)要求を含むことができる。デバイス2及びスイッチ6が、サービス・パラメータ54を交換して、配信不能通知サービスを確立し、そこでスイッチ6は、宛先ノードに配信することができないという配信不能通知が、テスト経路要求に対して与えられることを確認する。
【0016】
1つのファイバーチャネルの実装において、NDNフラグ54は、例えば、フレームに配信できないことを即時に通知する機能へのサポートを具体的に記述する新しいELSサービスへのサポートを示す、ファイバーチャネルのクラス3サービスについてのクラスサービス・パラメータのワード0(現在予約されている、ワード0ビット20のような)内の配信不能通知(NDN)サービス・オプションを含むことができる。スイッチ6のアダプタ22は、クラス3サービス・パラメータのサービス・オプション・ワードにおけるNDNサポートを示すLS_ACC(リンクサービスの受諾)によりFLOGIに応答し、ファブリック7全体がこの新しい機能をサポートすることを示すことができる。スイッチ間リンク(ISL)を通して相互接続されるスイッチは、例えば、リンク確立パラメータ(Establish Link Parameter、ELP)のスイッチ間リンク・サービスを用いて交換されるクラス3のポート相互接続パラメータにおいて新しいビットを定義することによって、接続されたスイッチにおけるこの機能へのサポートを判断することができる。
【0017】
ファイバーチャネルの実装において、スイッチ6は、テスト経路要求を廃棄することでき、NDNサービスがサポートされているとき、F_RJT(ファブリック拒否)ファイバーチャネル・リンク制御フレーム又はLS_RJT(リンクサービス拒否)ELS応答シーケンスの形で、配信不能通知を戻す。配信不能通知は、テスト経路要求フレームを配信することができない理由(宛先ポートがオフラインである、宛先がログインされていない、ソースがログインされていない等)を示す理由コードを含むことができる。
【0018】
非ファイバーチャネルの実装又は他のタイプのファイバーチャネルの実装のような代替的な実施形態においては、異なるワード、パラメータ、及び他のプロトコルを用いて、ログイン中の配信不能通知へのサポートを確立することができる。
【0019】
図3は、例えばポート26a、26b、26cなどのスイッチ・アダプタ・ポート62と、識別されたスイッチ・ポート62に送られたテスト経路要求に対して配信不能通知が与えられるかどうかを示す配信不能通知(NDN)フラグ64とを示すためにデバイス2が保持するデバイス・ログイン情報60の実施形態を示す。デバイス・ログイン情報60は、アダプタ・デバイス・ドライバ16、アダプタ・コントローラ18、及び/又は他のデバイス2のコードによって保持することができる。
【0020】
図4は、例えばポート20a、20b、20cなどのデバイス・アダプタ・ポート72と、識別されたデバイス・ポート72からのテスト経路要求に対して配信不能通知が与えられるかどうかを示す配信不能通知(NDN)フラグ74とを示すようにスイッチ6が保持するスイッチ・ログイン情報70の実施形態を示す。スイッチ・ログイン情報70は、アダプタ・デバイス・ドライバ34、アダプタ・コントローラ24、及び/又は他のスイッチ6のコードによって保持することができる。
【0021】
図5は、メッセージをテスト経路要求として識別するテスト経路要求パラメータ82と、宛先ノードがテスト経路要求に応答していないことを検知したときに、スイッチ6に信号を送って配信不能通知を与える配信不能通知フラグ84とを含んだ、宛先ノード4に関する状態変化通知を受け取ることに応答してデバイス・アダプタ12がスイッチ6を介して宛先ノード4に送るテスト経路要求80の実施形態を示す。このように、スイッチ・アダプタ22及びデバイス・アダプタ12が、要求に対して配信不能通知を与えないファイバーチャネルのクラス3サービスのようなプロトコルを用いて通信したとしても配信不能通知を与えるように、スイッチ6に信号が送られる。
【0022】
図6は、デバイス・アダプタ12とスイッチ・アダプタ22との間のログインを開始して、テスト経路要求の配信不能通知を与えるために、デバイス2及びスイッチ6において、具体的には、デバイス2及びスイッチ6のアダプタ・デバイス・ドライバ16、34及び/又はアダプタ・コントローラ18、24において実行される動作の実施形態を示す。動作100、102、114、116、118及び120は、デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16によって実行することができ、動作104、106、108、110及び112は、スイッチのアダプタ・コントローラ24及び/又はアダプタ・デバイス・ドライバ34によって実行することができる。デバイスのアダプタ・デバイス・ドライバ16及び/又はアダプタ・コントローラ18は、テスト経路要求に対する配信不能通知を要求するテスト・サービス・パラメータ54を伴うデバイス・ログイン要求50を送ることによって(ブロック102において)、スイッチ6によるログインを開始する(ブロック100において)。配信不能通知を要求するように設定されたテスト・サービス・パラメータ54を含むログイン要求50をデバイス・アダプタ12から受け取ると(ブロック104において)、ログインを処理するスイッチのアダプタ・コントローラ24及び/又はデバイス・ドライバ34は、配信不能通知サービス(NDN)がサポートされているかどうかを判断する(ブロック106において)。(ブロック106において)NDNサービスがサポートされていない場合には、スイッチのアダプタ・コントローラ24及び/又はデバイス・ドライバ34は、NDNサービスがサポートされていることを示さずに、ログインへの受諾を戻す(ブロック108において)。(ブロック106において)NDNサービスがサポートされている場合には、スイッチのアダプタ・コントローラ24及び/又はデバイス・ドライバ34は、ログインを受け取ったアダプタ・ポート20cに使用可能であるものとしてNDNサービスを示す(ブロック110において)。この表示は、フィールド72におけるデバイス・アダプタ・ポート20cを識別し、サポートされているものとしてNDNサービスを示すように配信不能通知サービス74フラグを設定するスイッチ・ログイン情報70(図4)を作成することによって、行うことができる。NDNサービスがサポートされている場合には、ログインの受諾がデバイスのアダプタ・ポートに戻され(ブロック112において)、NDNサービスが使用可能であるという表示を伴ってログイン及びセッションを確立する。
【0023】
ログイン要求への応答を受け取ると(ブロック114において)、デバイスのアダプタ・コントローラ18及び/又はデバイス・ドライバ16は、ログインが確立されたフィールド62(図3)におけるスイッチ・ポート26bを識別し、かつ、フィールド64において配信不能通知サービスがサポートされているかどうか示す、デバイス・ログイン情報60を示すが、これは、ログインへのスイッチの応答が、NDNサービスがサポートされていることを示すかどうかによって決まる。
【0024】
図7は、宛先ノード4が使用可能であるかどうかをデバイス・アダプタ12が判断するとき、デバイス2及びスイッチ6において、具体的には、デバイス2及びスイッチ6のアダプタ・デバイス・ドライバ16、34及び/又はアダプタ・コントローラ18、24において実行される動作の実施形態を示す。動作200、202、204、218、220及び222は、デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16によって実行することができ、動作206、208、210、212、214及び216は、スイッチのアダプタ・コントローラ24及びアダプタ・デバイス・ドライバ34によって実行することができる。デバイスのアダプタ・デバイス・ドライバ16及び/又はアダプタ・コントローラ18が、スイッチ6から、宛先ノードに関する状態変化通知を受け取ると(ブロック200において)、デバイスのアダプタ・デバイス・ドライバ16及び/又はアダプタ・コントローラ18は、状態変化通知が送られたスイッチ・アダプタ22においてNDNサービスがサポートされているかどうかを判断する。この判断は、スイッチに関するデバイス・ログイン情報60を処理し、フィールド72において識別されたスイッチ・ポートに関するNDNサービス・フラグ74が、NDNサービスがサポートされていることを示すかどうかを判断することによって、行うことができる。(ブロック202において)状態変化通知を受け取るスイッチ・ポート26bにおいてNDNサービスがサポートされている場合、デバイスのアダプタ・デバイス・ドライバ16及び/又はアダプタ・コントローラ18は、宛先ノード4が使用可能であるかどうかを判断するために、NDNサービスを要求するように設定された配信不能通知パラメータ84伴って、テスト経路要求80(図5)を宛先ノード4に送る(ブロック204において)。
【0025】
デバイス・アダプタ12から宛先ノード4へのテスト経路要求を受け取ると、スイッチのアダプタ・デバイス・ドライバ34及び/又はアダプタ・コントローラ24は、テスト経路要求を宛先ノード4に転送する(ブロック208において)。テスト経路要求80が向けられる宛先ノード4が使用可能でないと判断することに応答して(ブロック210において)、スイッチのアダプタ・デバイス・ドライバ34及び/又はアダプタ・コントローラ24は、テスト経路要求80を開始したアダプタ12において配信不能通知(NDN)サービスが使用可能であるかどうかを判断する(ブロック212において)。このことは、フィールド72において識別された、テスト経路要求を開始したデバイス・ポート20a、20b、20cに関するスイッチ・ログイン情報70を処理し、配信不能通知がサポートされていることをNDNフラグ74が示すかどうかを判断することによって、判断することができる。(ブロック212において)テスト要求を送るデバイス・アダプタ12においてNDNサービスがサポートされていない場合には、配信不能通知は、デバイス・アダプタ12に送られず(ブロック214において)、制御は終了する。他の場合には、(ブロック212において)NDNサービスがサポートされている場合、スイッチのアダプタ・デバイス・ドライバ34及び/又はアダプタ・コントローラ24は、配信不能通知(NDN)を、テスト経路要求を開始するアダプタ12に送り、宛先ノードへの配信不能に関する情報を提供する(ブロック216において)。スイッチのアダプタ・デバイス・ドライバ34及び/又はアダプタ・コントローラ24は、テスト経路要求を廃棄することができる。特定の実施形態において、NDN通知は、宛先ノード4が、サービス措置、リセット、又は他の回復措置等のためにオフラインにされている可能性があることを示すなど、宛先ノード4への配信不能の理由を示すコードを含むことができる。次に、デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16は、配信不能通知を処理し、宛先ノード4への要求を異なる経路に経路変更する、又は、宛先ノード4への要求を休止するといった措置をとることができる。デバイス・アダプタ12は、経路を用いたより高レベルのアプリケーション又はオペレーティング・システムが非常に長いタイムアウト回復を開始する前に、故障に対する措置をとり、配信不能通知を受け取った経路を回復させること、又は別の使用可能な経路を使用し始めることができる。
【0026】
(ブロック202において)デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16が、状態変化通知を与えるスイッチのアダプタ・ポート26bにおいてNDNサービスがサポートされていないと判断した場合、デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16は、クエリを宛先ノード4に送って、宛先ノード4が使用可能であるかどうかを判断することができる(ブロック220において)。デバイスのアダプタ・コントローラ18及び/又はアダプタ・デバイス・ドライバ16は、クエリを送ったときからのタイムアウト時間の後に宛先ノードが使用可能であることを示す、クエリへの応答を受け取らなかったことに応答して、宛先ノードを使用可能でないものとして示す(ブロック222において)。配信不能通知サービスがサポートされていない場合、スイッチ6は、宛先ノード4が使用可能でない又は応答しないと判断したら、配信不能通知を戻さない。
【0027】
図7のスイッチ動作を、スイッチ6と宛先ノード4との間のいずれかの中間スイッチによって行い、配信不能通知を前のスイッチに、又はテスト経路要求を中間スイッチに転送した他のエンティティに戻すことができる。例えば、テスト経路要求を受け取るいずれのスイッチも、テスト経路要求を宛先ノード4又はファブリック7における次の中間エンティティに配信することができない場合、その中間スイッチ又はエンティティは、テスト経路要求を廃棄し、配信不能通知を、別のスイッチ又は開始デバイス2とすることができる、要求を転送した前のエンティティに送ることができる。このように、宛先ノード4とデバイス2との間の各々の中間エンティティが図7の動作を実行し、NDN通知を前のエンティティに戻し、最終的にデバイス2に到達させる。
【0028】
説明される実施形態において、図7の動作は、デバイス2が状態変化通知を受け取ることに応答して実行される。代替的な実施形態において、動作は、状態変化通知以外のイベントに応答して実行され得る。
【0029】
図6及び図7における動作は、ファイバーチャネルのクラス3サービスにおける場合のように、一般に、スイッチ・アダプタ22が、配信の成功又は配信の失敗の受信確認をデバイス4に提供しないプロトコルに従って、スイッチ・アダプタ及びデバイス・アダプタが通信するときに実行される。説明される実施形態は、他の方法で配信又は配信不能の受信確認を提供しないプロトコルにおいて配信不能通知サービスをサポートするために、スイッチ・アダプタのための技術を提供する。
【0030】
テスト経路要求を宛先に送ることの代替技術である代替的な実施形態において、デバイス2は、テスト経路要求を、スイッチ6内に実装することができる又はネットワークにおける別個のコンポーネントを含むことができるファブリック・コントローラに送ることができる。こうした実施形態において、ファブリック・コントローラは、ネームサーバ、又は宛先ノード4への経路の状態を判断する他の何らかの手段を用いて、宛先ポートの状態を判断する。このことは、特定のテスト経路要求のスヌーピング(snooping)及び要求の宛先ではないポートにおいて応答を作成する必要性を回避するという利点をもつ。1つの実装において、ファブリック・コントローラは、LS−ACC応答において、宛先ノードの状態についての結果をもたらすことができる。
【0031】
特定のファブリック・コントローラの実装において、デバイス2は、スイッチ6を介して要求をファブリック・コントローラに送ることができ、ファブリック・コントローラがスイッチ6の外部に実装されている場合には、次に、スイッチ6は、テスト要求をファブリック・コントローラに転送し、ファブリック・コントローラからの応答を配信不能通知の形で戻すことができる。ファブリック・コントローラがスイッチ6内に実装されている場合には、スイッチ6は、配信不能通知をデバイス2に戻す。
【0032】
説明される動作は、ソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを生成するための標準的なプログラミング技術及び/又はエンジニアリング技術を用いて、方法、装置、又はコンピュータ・プログラムとして実装することができる。従って、実施形態の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、これらは全て、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ばれることがある。さらに、実施形態の態様は、媒体上に具体化されたコンピュータ可読プログラム・コードを有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラムの形態をとることができる。
【0033】
1つ又は複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置、デバイス又は前述のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)は、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、又は前述のいずれかの適切な組み合わせを含む。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと接続して用いるために、プログラムを収容し、又は格納することができる任意の有形媒体とすることができる。
【0034】
コンピュータ可読信号媒体は、例えば、ベースバンド内の、又は、搬送波の一部としての、内部に具体化されたコンピュータ可読プログラム・コードを有する、伝搬されるデータ信号を含むことができる。このような伝搬される信号は、これらに限定されるものではないが、電磁気、光、又はこれらの任意の適切な組み合わせを含む、種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって、又はこれらと接続して用いるために、プログラムを通信し、伝搬し、又は転送することができる、任意のコンピュータ可読媒体とすることができる。
【0035】
コンピュータ可読媒体上に具体化されるプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は前述のいずれかの適切な組み合せを含む、いずれかの適切な媒体を用いて伝送することができる。
【0036】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立したソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
【0037】
本発明の態様は、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラムのフローチャート図及び/又はブロック図を参照して、上述されている。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを生産し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すようにすることができる。
【0038】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスに特定の方式で機能するように指示することができるコンピュータ可読媒体内に格納して、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施する命令を含む製品を製造するようにすることもできる。
【0039】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにロードして、コンピュータ、他のプログラム可能装置、又は他のデバイス上でコンピュータ実装プロセスを生成するための一連の動作ステップを実行させ、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
【0040】
「1つの実施形態(an embodiment)」、「実施形態(embodiment)」、「複数の実施形態(embodiments)」、「当該の実施形態(the embodiment)」、「当該の複数の実施形態(the embodiments)」、「1つ又は複数の実施形態(one or more embodiments)」、「幾つかの実施形態(someembodiments)」、「一実施形態(one embodiment)」という用語は、特に明示されない限り、「本発明の1つ又は複数の(全てではない)実施形態」を意味する。
【0041】
「含む(including)」、「備える(comprising)」、「有する(having)」という用語、及びその変形は、特に明示されない限り、「含むが、これらに限定されるものではない」ことを意味する。
【0042】
列挙された項目のリストは、特に明示されない限り、項目のいずれか又は全てが相互に排他的であることを意味するものではない。
【0043】
「1つの(a)」、「1つの(an)」及び「その(the)」という用語は、特に明示されない限り、「1つ又は複数(one or more)」という意味である。
【0044】
互いに通信を行うデバイスは、特に明示されない限り、互いに連続的に通信を行うものである必要はない。さらに、互いに通信を行うデバイスは、直接的に通信を行うことも、1つ又は複数の中間物を通して間接的に通信を行うこともできる。
【0045】
互いに通信を行う幾つかのコンポーネントを伴う実施形態の記述は、そのような全てのコンポーネントが必要であることを意味するものではない。これに反して、本発明の幅広い可能な実施形態を示すために、種々の随意的なコンポーネントが説明される。
【0046】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどは、逐次的な順序で説明されることがあるが、そうしたプロセス、方法及びアルゴリズムは、代替的な順序で機能するように構成することができる。言い換えれば、説明される場合があるステップのあらゆる配列又は順序は、必ずしもステップがその順序で行われなければならないという要件を示しているとは限らない。本明細書において説明されるプロセスのステップは、実際のいずれかの順序で行うこともできる。さらに、幾つかのステップは、同時に実行してもよい。
【0047】
本明細書において単一のデバイス又は物品が説明されるときは、2つ以上のデバイス/物品を(それらが協働しているかどうかに関わりなく)、単一のデバイス/物品の代わりに用い得ることが容易に明らかであろう。同様に、本明細書において2つ以上のデバイス又は物品が(それらが協働しているかどうかに関わりなく)説明される場合は、2つ以上のデバイス又は物品の代わりに、単一のデバイス/物品を用いることができ、又は、示される数のデバイス又はプログラムの代わりに、異なる数のデバイス/物品を用いることができることが容易に明らかであろう。デバイスの機能及び/又は特徴は、代替的に、そのような機能/特徴を有すると明示的に説明されない1つ又は複数の他のデバイスによって具体化することができる。従って、本発明の他の実施形態が、デバイス自体を含む必要はない。
【0048】
図6及び図7に示される動作は、特定の順序で行われる特定のイベントを示す。代替的な実施形態においては、特定の動作を異なる順序で行っても、修正しても、又は除去してもよい。さらに、ステップを上述した論理に加えてもよく、ステップが、依然として説明される実施形態に適合してもよい。さらに、本明細書で説明される動作を逐次的に行ってもよく、又は、特定の動作を並行して処理してもよい。さらにまた、単一の処理ユニット又は分散された処理ユニットにより、動作を実行することができる。
【0049】
本発明の種々の実施形態の上記の説明は、例証及び説明のために与えられている。上記の説明は、網羅的であるように、又は本発明を開示された正確な形態に制限するように意図されるものではない。上記の教示に照らして多くの修正及び変形が可能である。本発明の範囲は、この詳細な説明ではなく、むしろここに添付された特許請求の範囲によって制限されることが意図されている。上記の仕様、例、及びデータは、本発明の構成の製造及び使用を十分に説明するものである。本発明の範囲から逸脱することなく、本発明の多くの実施形態を行うことができるので、本発明は、以下に添付される特許請求の範囲内にある。
【符号の説明】
【0050】
2:デバイス
4:宛先ノード
6:スイッチ
7:ネットワーク
8、28:プロセッサ
10、30:メモリ
12、22:アダプタ
14、32:オペレーティング・システム
16、34:アダプタ・デバイス・ドライバ
18、24:アダプタ・コントローラ
20a、20b、20c、26a、26b、26c:ポート
50:デバイス・ログイン要求
52:ログイン要求パラメータ
54、64、74、84:配信不能通知フラグ
60:デバイス・ログイン情報
62:スイッチ・アダプタ・ポート
70:スイッチ・ログイン情報
72:デバイス・アダプタ・ポート
80:テスト経路要求
82:テスト経路要求パラメータ

【特許請求の範囲】
【請求項1】
スイッチ及び宛先ノードと通信するための方法であって、
使用可能でない前記宛先ノードを示すテスト経路要求に応答して、前記スイッチに配信不能通知を戻させるために配信不能通知サービスを要求するテスト・サービス・パラメータを含む、前記スイッチによるログインを開始することと、
前記スイッチが前記配信不能通知サービスを伴ったログインを受諾するという前記スイッチからの応答を受け取ることに応答して、前記ログインにおいて前記テスト・サービスが使用可能であることを示すことと、
前記スイッチのログインにおいて前記配信不能通知サービスが使用可能であると判断することに応答して、前記テスト経路要求を前記スイッチに送り、前記宛先ノードが使用可能であるかどうかを判断することと、
前記テスト経路要求が向けられる前記宛先ノードが使用可能でないと前記スイッチが判断することに応答して、前記スイッチから前記配信不能通知を受け取ることと、
を含む方法。
【請求項2】
前記テスト経路要求は、前記スイッチを介して前記宛先ノードに送られる、請求項1に記載の方法。
【請求項3】
前記宛先ノードに関する状態変化通知を受け取ることをさらに含み、前記テスト経路要求は、前記状態変化通知を受け取ること及び前記配信不能通知サービスが使用可能であると判断することに応答して送られる、請求項2に記載の方法。
【請求項4】
前記配信不能通知サービスが使用可能でないと判断することに応答して、前記宛先ノードが使用可能であるかどうかを判断するためのクエリを送ることと、
前記クエリが送られたときからのタイムアウト時間の後に、前記宛先ノードが使用可能であることを示す前記クエリへの応答を受け取らないことに応答して、使用可能でないものとして前記宛先ノードを示すことと、
をさらに含む、請求項3に記載の方法。
【請求項5】
前記テスト・サービスを要求する前記ログインは、ファイバーチャネルのクラス3サービスの一部として開始される、請求項1に記載の方法。
【請求項6】
前記テスト経路要求は、前記テスト経路要求を前記宛先ノードに配信することができない、前記スイッチを含むいずれかの転送者が、前記配信不能通知を前記スイッチ又は前記デバイスと前記転送者との間の次の中間エンティティに戻すように要求する、配信不能通知パラメータを含む、請求項2に記載の方法。
【請求項7】
前記テスト経路要求は前記スイッチを介してファブリック・コントローラに送られ、前記ファブリック・コントローラは前記宛先ノードが使用可能であるかどうかを判断し、かつ、前記宛先ノードについての前記配信不能通知を戻し、前記配信不能通知は前記スイッチを介して前記ファブリック・コントローラから受け取られる、請求項1に記載の方法。
【請求項8】
アダプタ及び宛先ノードと通信するための方法であって、
前記アダプタから、配信不能通知サービスを要求するテスト・サービス・パラメータを含むログイン要求を受け取ることと、
前記配信不能通知がサポートされていると判断することに応答して、前記アダプタにおいて使用可能であるものとして前記配信不能通知サービスを示すことと、
前記アダプタから、前記宛先ノードへのテスト経路要求を受け取ることと、
前記テスト経路要求を前記宛先ノードに転送することと、
前記テスト経路要求が向けられる前記宛先ノードが使用可能でないと判断することと、
前記宛先ノードが使用可能でないと判断することに応答して、前記アダプタにおいて前記配信不能通知サービスが使用可能であるかどうかを判断することと、
前記アダプタにおいて前記配信不能通知サービスが使用可能であると判断することに応答して、前記宛先ノードについての配信不能通知を前記アダプタに送ることと、
を含む方法。
【請求項9】
前記アダプタにおいて前記配信不能通知が使用可能でないと判断することに応答して、前記宛先ノードが使用可能でないことを示す前記配信不能通知を前記アダプタに送らないことをさらに含む、請求項8に記載の方法。
【請求項10】
前記配信不能通知サービスは、ファイバーチャネルのクラス3のプロトコルでサポートされている、請求項8に記載の方法。
【請求項11】
スイッチ及び宛先ノードと通信状態にあるシステムであって、
前記スイッチ及び前記宛先ノードと通信するためのアダプタを含み、前記アダプタは、請求項1から請求項7までのいずれかのステップを実行するように動作可能であるシステム。
【請求項12】
デバイス・アダプタ及び宛先ノードと通信状態にあるスイッチであって、
前記デバイス・アダプタ及び前記宛先ノードと通信するためのスイッチ・アダプタを含み、前記スイッチ・アダプタは、請求項8から請求項10までのいずれかのステップを実行するように動作可能であるスイッチ。
【請求項13】
コンピュータにより実行されたときに、請求項1から請求項10までのいずれかのステップを実行するプログラム・コードを含むコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2012−533955(P2012−533955A)
【公表日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−520990(P2012−520990)
【出願日】平成22年7月7日(2010.7.7)
【国際出願番号】PCT/EP2010/059753
【国際公開番号】WO2011/009727
【国際公開日】平成23年1月27日(2011.1.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.Smalltalk
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】