JP2006033854A - ノード間の通信を可能にする方法、システム、およびプログラム - Google Patents

ノード間の通信を可能にする方法、システム、およびプログラム Download PDF

Info

Publication number
JP2006033854A
JP2006033854A JP2005206418A JP2005206418A JP2006033854A JP 2006033854 A JP2006033854 A JP 2006033854A JP 2005206418 A JP2005206418 A JP 2005206418A JP 2005206418 A JP2005206418 A JP 2005206418A JP 2006033854 A JP2006033854 A JP 2006033854A
Authority
JP
Japan
Prior art keywords
node
protocol
layer
adapter
initiator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005206418A
Other languages
English (en)
Inventor
Lewis Hufferd John
ジョン・ルイス・ハファード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006033854A publication Critical patent/JP2006033854A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】リモート・ノードと通信するためにローカル・ノードで行われる方法、システム、およびプログラムを提供すること。
【解決手段】第1の通信プロトコルを使用してリモート・ノードと通信して、第2の通信プロトコルのための接続を確立する。リモート・ノードとの通信を可能にするデータ構造が作成されて、第2の通信プロトコルのためにリモート・ノードとの通信を確立する。第2の通信プロトコルのための拡張層が呼び出される。データ構造は拡張層に渡されて、第2の通信プロトコルを使用してリモート・ノードと通信するために使用される。
【選択図】図1

Description

本発明は、ノード間の通信を可能にする方法、システム、およびプログラムに関する。
ストレージ環境では、ホスト・システムから、ディスクへのアクセスを管理するストレージ・コントローラにデータ・アクセス・コマンドが通信される。ストレージ・コントローラは、ホスト・システム中のカード、または別個のデバイスである。iSCSI(Internet Small Computer Systems Interface)プロトコルは、イーサネット・スイッチおよびルータを含むイーサネット接続を利用するストレージ・ネットワークに使用される。本願で使用される用語「iSCSI」は、IETF(InternetEngineering Task Force)標準本体で定義されるiSCSIプロトコルの構文およびセマンティックと、このプロトコルの変種を指す。iSCSIが利用される現在のストレージ・ネットワークでは、パケットの構成は、インターネット・プロトコル(IP)と伝送制御プロトコル(TCP)のパッケージ層をカプセル化したイーサネット・パッケージからなり、IPおよびTCPのパッケージ層がさらに、1つまたは複数のSCSIコマンドを含むiSCSIパッケージをカプセル化する。イーサネット・プロトコルは、パケットが任意のネットワーク・セグメント(リンク)上の2地点間を流れる際にリンク・レベルの誤り検査を提供して、リンクを通過する間にデータが破損したかどうかを判定する。ネットワーク・データ送信動作では、イニシエータ・デバイスが、ネットワークを介してデータまたはコマンドをターゲット・デバイスに送信する。TCP/IPパッケージは、終端間の検査を行って、送信されたパケットが送信中にスイッチとルータを通過する際に変化したかどうかを反対側で判定する誤り検出コードを含む。誤りを検出した受信側デバイスは、送信元デバイスに否定の受信通知を送信して、誤りが検出されたパケットの再送信を要求する。
RDMAコンソーシアム発行 仕様「RDMAプロトコルVerbs仕様(バージョン1.0)」(2003年4月) RDMAコンソーシアム発行「信頼性のある移送機構を通じた直接敵なデータ配置(バージョン1.0)」(2002年10月) RDMAコンソーシアム発行「TCP仕様のためのマーカーPDUの位置合わせフレーミング(バージョン1.0)」(2002年10月) RDMAコンソーシアム公表 マイケル・コー(Michael Ko)他「RDMA仕様のためのiSCSI拡張(バージョン1.0)」(2003年7月) 「InfiniBand(商標)アーキテクチャ 仕様 Volume1」公開1.1(2002年11月 著作権InfiniBand(商標)業界団体) 「IP over InfiniBand:接続モード」IETFにより「draft-kashyap-ipoib-connected-mode-01.txt」として公表(2003年9月) RFC2960「ストリーム制御伝送プロトコル」(Internet Society,2000年)
RMDA(Remote Direct Memory Access)プロトコルは、1つのネットワーク・ノードが、メモリ・バスの帯域幅とプロセッサのオーバーヘッドの需要を可能な限り少なくして、別のネットワーク・ノードのメモリに直接情報を置くことを可能にする。RDMA over TCP/IP(iWARPとも称される)は、標準的なTCP/IPネットワークを通じたRDMA動作を支援する相互動作可能なプロトコルを定義する。RDMAネットワーク・インタフェース・カード(RNIC)は、RDMAプロトコルを実施し、ローカルおよびリモートのメモリにデータを転送するRDMA動作を行う。RDMAプロトコルのさらなる詳細については、RDMAコンソーシアム発行 仕様「RDMAプロトコルVerbs仕様(バージョン1.0)」(2003年4月);RDMAコンソーシアム発行「信頼性のある移送機構を通じた直接的なデータ配置(バージョン1.0)」(2002年10月);およびRDMAコンソーシアム発行「TCP仕様のためのマーカーPDUの位置合わせフレーミング(バージョン1.0)」(2002年10月)に記載される。これらの仕様は、参照により全体が本明細書に組み込まれる。
RDMAコンソーシアム公表 マイケル・コー(Michael Ko)他「RDMA仕様のためのiSCSI拡張(バージョン1.0)」(2003年7月)と題する仕様は、RDMAの最上位にiSCSIをレイヤ化することにより、iSCSIにRDMAのデータ転送機能を提供するプロトコルを定義する。この仕様は、参照により全体が本明細書に組み込まれる。
iWARPとも称されるRDMA over TCP/IPの一部として定義された機能の多くは、以前にInfiniBandネットワークにおける動作として定義されたものである。InfiniBandのアダプタ・ハードウェアは、RDMA動作をサポートする。InfiniBandは、通常のTCP/IPソケット・アプリケーションが、TCP/IPネットワークで動作する場合と同じように、InfiniBandネットワークを通じてメッセージを送信することを可能にするSDP(ソケット・ダイレクト・プロトコル)と呼ばれるプロトコルのセットも定義する。InfiniBandおよびSDPプロトコルについてのさらなる詳細は、文献「InfiniBand(商標)アーキテクチャ 仕様 Volume1」公開1.1(2002年11月 著作権InfiniBand(商標)業界団体)に記載される。同文献は、参照により全体が本明細書に組み込まれる。
次いで図面を参照するが、すべての図面を通じて同様の参照符合は対応する部分を表す。
リモート・ノードと通信するためにローカル・ノードで行われる方法、システム、およびプログラムが提供される。第1の通信プロトコルを使用してリモート・ノードと通信して、第2の通信プロトコルのための接続を確立する。リモート・ノードとの通信を可能にするデータ構造が作成されて、第2の通信プロトコルのためにリモート・ノードとの通信を確立する。第2の通信プロトコルのために拡張層が呼び出される。データ構造は拡張層に渡されて、第2の通信プロトコルを使用してリモート・ノードと通信するために使用される。
以下の説明では、本明細書の一部をなし、本発明のいくつかの実施形態を表す添付図面を参照する。他の実施形態を利用することができ、また本発明の範囲内で構造的および動作的な変更を加えてよいことは理解されたい。
図1は、ネットワーク4を通じて通信する複数のコンピューティング・ノード2a、2b,...,2nからなるネットワーク・コンピューティング環境を示す。このネットワークは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、ストレージ・エリア・ネットワーク(SAN)からなることができる。あるいは、ノードは、SCSIバスなどのバスを通じて通信してもよい。
図1のノード2a、2b,...,2nは、イニシエータとターゲットの両方として動作することができる。図2は、ネットワーク4を通じた通信を可能にするために、ノード2a、2b、2cなどのノードに含まれるコンポーネントを表す。ノード2は、中央演算処理装置や複合体(complex)などのプロセッサ6と、オペレーティング・システム8を含む。ノード2はさらに、データベース・プログラムやサーバ・プログラムなどのユーザ・アプリケーションからなるアプリケーション14を含む。I/O動作を行うには、アプリケーション14は、SCSI層16に対する呼び出しを行ってSCSIのI/O要求を生成し、その要求がiSCSI層18に対する呼び出しを行う。iSCSI層18は、iSCSIのログイン動作を行うことにより、ターゲット・ノードとの通信を開始する。ログインするには、iSCSI層は、TCPソケット層などのソケット層20とのインタフェースをとって、リモート・ターゲット・ノードとの通信を確立し、ログインする。ソケット層20は、iSCSI層18とアダプタ24中のネットワーク・プロトコルとのインタフェースをとるために使用されるプログラミング・インタフェースからなる。
アダプタ24は、RNICアダプタまたはInfiniBand(IB)アダプタからなることができる。アダプタ24は、RDMA層26と、TCP層やInfiniBand層などのネットワーク層28を含み、ネットワーク4を通じて送信するためにトランスポート層にパケットをパッケージし、または、ネットワーク4から受信したパケットをパッケージから取り出す。
アダプタ24がInfiniBandアダプタからなる場合、ノード2は、ソケット・ダイレクト・プロトコル(SDP)層42を含むことができ、ソケット層20がSDP層42とのインタフェースをとり、SDP層42が、ソケット層20とRDMA層26との間のインタフェースをとる。InfiniBandの実施形態では、SDP層42が、iSCSI層18からRDMA呼び出しを通じてRDMA層26に対するソケット層20呼び出しを(直接、またはIBアダプタ・ドライバ44を介して)実施することにより、ソケット層20を使用して呼び出しを行うアプリケーション14と、アダプタ24中のRDMA層26との間のインタフェースを提供する。InfiniBand実施形態とRNIC実施形態の両方で、iSER層22が提供され、ログイン後は、iSCSI層18が、iSER層22を呼び出してRNIC24に対する呼び出しを行う。iSER層22は、機能呼び出しを通じて直接、またはRDMAverb層を備えるRNICドライバ44を通じて、RNIC24を呼び出すことができる。アダプタ24がRNICアダプタからなる実施形態では、ノード2は、SDP層42を含まず、一方、InfiniBandアダプタの実施形態では、SDP層42が含まれる。
RDMA層26は、イニシエータ・ノードとターゲット・ノード中の登録されたメモリ位置に、論理的に連続した方式で(ローカルに、またはローカルかつリモートに)直接アクセスすることができる。メモリ領域やメモリ・ウィンドウなどの定義されたメモリ位置は、RDMA26によって作成され、メモリ領域32などの登録されたメモリ位置を参照するために使用されるステアリング(steering)・タグで識別される。RNIC実施では、ステアリング・タグは、STagと称され、InfiniBand実施形態では、ステアリング・タグは、リモート・ステアリング・タグを表すR_Keyと、ローカル・ステアリング・タグを表すL_Keyと称される(本明細書で両方のキーに使用される汎用的な用語は#_Keyである)。特定の実施形態では、メモリ領域またはメモリ・ウィンドウと称するメモリ領域のサブセットを登録することができ、登録された各メモリ位置、領域、またはウィンドウには、別個のSTag/#_Keyを関連付ける。RDMA層26は、STag/#_Keyを使用して、参照されるメモリ位置にアクセスする。特定の実施形態では、iSER層22が、RDMAverb層44を呼び出すことにより、アダプタ24を呼び出してメモリ領域を登録する。RDMAverb層44(RNIC/IBアダプタ・ドライバ)は、オペレーティング・システム8とアダプタ24のインタフェースをとるデバイス・ドライバを備える。例えばメモリ領域やメモリ・ウィンドウなどのメモリ位置を宣言し、登録するための、iSER層22またはSDP層42の機能からの呼び出しに応答して、アダプタ・ドライバ44は、アダプタ24を呼び出す。
RDMA層26は、メモリ変換テーブル34を維持しており、メモリ領域を登録する時には、登録されたメモリ領域とそのメモリ領域を参照するために生成されたSTag/#_Keyを識別するエントリをメモリ変換テーブル34に加えて、RDMA層26がそのメモリ領域にSTag/#_Keyを関連付けられるようにする。メモリ変換テーブル34は、アダプタ24のバッファに維持しても、メモリ30に維持してもよい。STag/#_Keyは、I/O動作に使用するために登録を要求するiSER層22の機能に返される。
アダプタ24がSTag/#_Keyを生成し、iSER層22に返すと、iSER層22は、続いてI/O動作を行う。iSER層22は、iSCSI層18から受け取ったパケットを、ヘッダ情報とアダプタ24から受け取ったSTag/R_Keyでラップし、そのパケットを転送のためにアダプタ24に渡す。
RDMAデータ転送を管理するために、RDMA層26は、送信待ち行列36、受信待ち行列38、および完了待ち行列40を保持する。送信待ち行列36と受信待ち行列38は、RDMA層26がRDMAデータ転送要求を管理するために使用する作業待ち行列からなる。完了待ち行列40は、複数の作業待ち行列についての1つの完了通知点を提供する完了エントリを有する1つまたは複数のエントリを含む、共用可能な待ち行列からなることができる。待ち行列36、38、および40は、恐らくは各論理接続について多くのインスタンスを有する場合があり、アダプタ24により、メモリ30か、またはアダプタ24のバッファに割り振られることができる。
図3に、諸実施形態で使用される送信パッケージのフォーマットを示す。SCSI層16によって生成される(読み出しまたは書き込みコマンドなどの)SCSIコマンド50は、iSCSI層18でiSCSIプロトコル・データ・ユニット(PDU)52の中にカプセル化され、PDU52はさらに、iSER層22の機能によってiSERヘッダ54の中にカプセル化される。SCSIコマンド50を含むiSCSI PDU52はさらに、イニシエータ・タスク・タグ(ITT)56を含み、iSCSI層18は、そのITTを、基礎となるSCSIコマンドに関連付けられた発行されるすべてのiSCSIタスクに割り当てて、基礎となるSCSI I/O動作を識別する。ITT56は、セッションにわたってタスクを一意に識別する。ターゲット・ノードがイニシエータからの要求に応答すると、ITT56が使用されて、その応答をiSCSI層18で元の要求に関係付ける。例えば、ターゲットが動作を完了し、動作ステータスを返す時に送信される、ターゲットiSCSI層18からのiSCSIのSCSI応答PDU中のITT56が、イニシエータのiSCSI層18によって使用されて、ターゲットのPDUを元のSCSI書き込みコマンドに関係付ける。
iSERヘッダ54は、I/O動作に使用されるSTag/R_Keyと、通知されたSTag/R_Keyを受け取るリモート・ノードがそのSTag/R_Keyで参照されるメモリ領域(ウィンドウ)から読み出すのか、書き込むのかを示す情報と、その要求に関連する作業待ち行列とを含む。iSERヘッダ54とiSCSI PDU52はさらに、TCP層やInfiniBandネットワーク・プロトコル層などの1つまたは複数の追加的なネットワーク層60にカプセル化される。特定の実施形態では、アダプタ24のネットワーク層28が、TCP、IBなどのネットワーク層60の中にiSERヘッダ54とPDU52をアセンブルする。
iSER層22はさらに、ターゲット・ノードにRDMAチャネルを通じてデータを読み出させる、または書き込ませるための読み出しまたは書き込みSTag/R_Keyなど、そのタスクのためのデータを転送するために使用されるSTag/#_Keyに、iSCSIタスクを表すITTを関連付けるITTとSTag/#_Keyのマップ70(図2)をメモリ30に維持する。図4に、その対応付けがローカルのSTag/L_Keyについてか、リモートのSTag/R_Keyについてかを示すローカル/リモートの指示73を含む、マップ70のエントリ72の内容を示す。ローカル・マッピングのエントリは、ローカルのメモリ・ウィンドウまたはメモリ領域を参照するSTag/L_Keyを、I/Oコマンドに関連するデータをローカルに記憶(または取り出す)するために使用されるITTに関連付け、リモート・マッピングのエントリは、リモート・ノードのメモリ領域またはウィンドウを参照するSTag/R_Keyを、そのローカルのメモリ領域またはウィンドウにデータがそこから読み出される、または転送されるITTに関連付ける。対応付けのエントリ72はさらに、iSCSIタスクを表す関連付けられたITT74と、そのタスクに関連付けられたSTag/#_Key76と、そのタスクについてのステータス情報78とを含む。
図5、6、7、8、9、および10は、ここに記載される実施形態による、SCSI書き込みコマンドを処理する動作を表す。図5および6は、RNICアダプタまたはInfiniBandアダプタ24を含むイニシエータ・ノード2にRDMAを使用するためにターゲット・ノードに接続するために、イニシエータ・ノード2のコンポーネントによって実施される動作を示す。図5に関して、ブロック100で制御が開始し、iSCSI層18がソケット層20とのインタフェースをとってターゲット・ノードと通信し、新規のiSCSI接続に「ログイン」し、ターゲット・ノードと各種のパラメータをネゴシエートする。イニシエータ・ノードとターゲット・ノードはともに、図2に示すアーキテクチャを含むことができ、対応するRNICアダプタまたはInfiniBandアダプタあるいはその両方を含む。そのため、イニシエータ・ノードで行われる動作は、イニシエータ・ノード2がRNICアダプタ24を含むか、InfiniBandアダプタ24を含むかによって決まる。上記で述べたように、イニシエータ・ノード2は、イニシエータ・ノード2にインストールされたアダプタ24のタイプに基づいて、通信に必要とされる層とコードをロードすることができる。例えば、ノードがInfiniBandアダプタを含む場合、ノードは、SDP層42をロードし、一方、ノードがRNICアダプタのみを含む場合は、SDP層42はロードされなくてよい。(ブロック102で)iSCSI層18がRNICアダプタ24を介して接続する場合、ソケット層20は(ブロック104で)、RNICアダプタ24中のTCP28ネットワーキング機能を介して、ターゲット・ノードにiSCSIメッセージを渡し、受信した応答をソケット層20を介してiSCSI層に返す。そうでなく、(ブロック102で)iSCSI層18がInfiniBandアダプタ24を介して接続する場合、ソケット層20は、(ブロック106で)SDP層42を介してターゲット・ノードにiSCSIメッセージを渡し、受け取った応答をソケット層20を介してiSCSI層18に返す。SDP層42は、(ブロック108で)待ち行列の対26、28、完了待ち行列40などのRDMA接続のためのデータ構造を作成し、InfiniBandアダプタ24およびInfiniBandネットワーク4を介して、ターゲットとの間でメッセージの送受信をする。
(ブロック110で)イニシエータ・ノード2がRNICアダプタまたはInfiniBandアダプタ24のネットワーキング層を介してリモート・ノードとのRDMAセッションを確立することを望まない場合、イニシエータ・ノード2は、ネゴシエーション接続を切断し、(ブロック112で)RDMA互換の他のターゲット・ノードを見つけることを試みる。そうでなく、(ブロック110で)RDMAセッションが許容される場合は、(ブロック114で)SDP層42(InfiniBandアダプタ24の場合)またはネットワーク層28(RNICアダプタの場合)が、(ブロック114で)ターゲット・ノードからの応答を返し、引き続き、RNICネットワーキング層28またはSDP層42をトリガしてターゲットとの間で追加的なログイン要求とログイン応答メッセージを送受信するために、iSCSI層がソケットAPIを使用できるようにする。
図6に関して、ログイン・パラメータが設定されると、イニシエータiSCSI層18は、(ブロック116で)RNICアダプタ24の場合はネットワーキング層(例えばTCP)により、またはInfiniBandアダプタの場合はSDP層42によって扱われるソケット呼び出しを介して、ターゲット・ノードに最後のログイン要求PDUを送信する。(ブロック118で)ターゲットからの最後のログイン応答PDUを受信すると、iSCSI層18は、iSERプリミティブを使用してiSER層22を呼び出し、自身のソケット情報ハンドル(RNICアダプタ24の場合はネットワーキング層28の制御構造、または、InfiniBandアダプタの場合はSDP RDMA制御構造をポイントする)を渡す。iSER層22は、次いで(ブロック120で)、ソケット制御構造を引き継ぎ、iSER/RDMA動作のためにその制御構造を設定および変更する。InfiniBandアダプタ24の場合は、iSER層22は、SDPセッションを終了させ、iSER層22にSDPによって使用されていたRDMA通信チャネル(待ち行列のペア、完了待ち行列など)を所有および使用させる特別な呼び出しを(ブロック122で)発行する。そして、iSCSI層は、ターゲット・ノードで以後行われるすべての通信についてRDMAを介してiSERと(ブロック124で)通信する。
図7および8は、ターゲット・ノードのコンポーネントによって実施される動作を示し、ターゲット・ノードは、RDMAを使用するためにイニシエータ・ノードに接続するノード2(図2)のアーキテクチャを有することができ、ターゲット・ノード2は、RNICアダプタまたはInfiniBandアダプタ24を含む。図2に関して説明したアーキテクチャを使用して、イニシエータ・ノードとターゲット・ノード両方のコンポーネントを説明する。図7に関して、ターゲット・ノードのiSCSI層20は、(ブロック150で)ソケット呼び出しを介して、リッスンしているポートがイニシエータ・ノードからの接触を待つことを可能にする。ソケット層20は、RNICアダプタ24のネットワーキング層28(例えばTCP)を使用するか、またはInfiniBandネットワークを通じて通信するInfiniBandアダプタの場合はSDP42を使用することにより、この接触を可能にする。同じソケット・インタフェースを介してイニシエータ・ノードのiSCSI層18からの接触があると(ブロック152)、ターゲット・ノードは、イニシエータ・ノードとネゴシエートして、RDMA接続に移る同意を得る。(ブロック154で)RDMA接続が承認されない場合は、ターゲット・ノードは、ネゴシエート接続を切断し、別の接続が確立されるまで(ブロック156で)待機し続ける。そうでなく、RDMA接続が承認される場合は、例えばTCPなどのターゲット・ノードのRNICのネットワーキング層28、またはSDP層42が、(ブロック160で)イニシエータ・ノードからの応答をソケットAPIを介してiSCSI層18に返し、引き続き、iSCSI層がRNICネットワーキング層またはSDP層をトリガしてイニシエータとの間で追加的なログイン要求とログイン応答メッセージを送受信できるようにする。ターゲットのiSCSI層18は(ブロック162で)、イニシエータからの最後のログイン要求を受信すると、iSERプリミティブを使用してiSER層22を呼び出し、自身のソケット情報ハンドル(RNICアダプタのネットワーキング層28の制御構造またはSDP制御構造をポイントする)と最後のログイン応答メッセージを渡す。
図8に関して、iSCSIがiSER層22を呼び出すと、iSER層22は(ブロック164で)接続を引き継ぎ、iSERのRDMA通信チャネルを確立する。RNICアダプタ24の場合の接続情報は、例えばTCPなどのネットワーキング層28が以前に確立した情報であり、InfiniBandアダプタ24の場合の接続情報は、SDP層42によって作成され、使用されたRDMA接続とデータ構造を含む。いずれの場合も、RDMA RNICまたはInfiniBandアダプタのデータ/制御構造は、iSER/RDMA動作を可能にするように変更される。InfiniBandアダプタ24の場合、iSER層22は、(ブロック166で)SDPセッションを終了させ、SDP層42からRDMA通信を引き継ぐための特別な呼び出しを発行する。通信プロセスが(ブロック168で)完全にiSER RDMAモードに切り替わる前に、ターゲットiSCSIからiSERに送信された「最後の」ログイン応答PDUが、前の接続モード(例えばTCP/IあるいはSDP/IB)で送信される最後のメッセージとしてイニシエータに発行される。次いで、iSCSI層は、iSER層を通じて(ブロック170で)通信し、iSER層は、イニシエータ・ノードとその後行われるすべての対話にRDMAを使用する。
図9に、SCSIコマンドが完了し、「送信とともに無効化(send withinvalidate)メッセージ」を送信することが可能なRDMAアダプタを有するターゲット・ノードから「送信とともに無効化」を受信すると、イニシエータ・ノード2によって行われる動作を図示する。(ブロック200で)「送信とともに無効化」メッセージを受信すると、「送信とともに無効化」をサポートする場合、アダプタ24は、(ブロック202で)、メッセージで指定されたSTag/R_keyを無効にし、ここでSTagはRDMAヘッダにある。イニシエータが「送信とともに無効化」をサポートしない場合は、InfiniBandアダプタ24の場合に発生する可能性があるが、その場合、メッセージは、iSER層22に転送されて処理される。イニシエータiSER層22は、(ブロック204で)応答PDUを受信し、メッセージのITT56(図3)にアクセスして、ITT/STagマップ70で、アクセスされるITTに関連付けられたSTagまたはR_Keyを判定する。(ブロック206で)「送信とともに無効化」メッセージの中のSTag/R_KeyがITT/STagのマッピング70にあるSTag/R_Keyと一致し、かつイニシエータのアダプタが自動的な無効化をサポートする場合、イニシエータのiSER層22は、(ブロック208で)アダプタによって無効にされなかったマッピング70中のITTに関連付けられた追加的なSTag/#_Keyを無効にする。アダプタが自動的な無効化をサポートしない場合、または、「送信とともに無効化」の中のSTag/R_Keyがマッピング70にあるSTag/R_Keyと一致しない場合、iSER層22は、(ブロック210で)、直接アダプタを呼び出して、STag/R_Keyとマッピング70のITTに関連付けられた追加的なSTag/#_Keyを無効にする。iSER層22は次いで(ブロック212で)SCSI応答PDUをiSCSI層18に渡し、自身のITT/STag/#_Keyマッピング・テーブル70をクリアする。次いで、iSCSI層18は、SCSI層16に、動作の完了ステータスを通知する。
図10に、SCSIコマンドが完了し、InfiniBandアダプタ24を有するターゲット・ノードから「即値データとともに送信(send with immediate data)」メッセージを受信するときの、イニシエータ・ノード2によって行われる動作を図示する。イニシエータのアダプタ24(InfiniBandまたはRNIC)がターゲットのInfiniBandアダプタから「即値データとともに送信」メッセージまたは「送信」メッセージを(ブロック250で)受信すると、そのメッセージは、イニシエータ・アダプタ24により(ブロック252で)iSER層22に渡され、iSER層はアダプタ24を呼び出して、ある場合にはメッセージの「即値データ」部分にあるR_Keyを無効にする。そして、iSER層22は、アダプタ24に、それまでに無効化されなかったマッピング70のITTに関連付けられた#_Key/STagを(ブロック254で)無効にする。iSER層22は、(ブロック256で)iSCSI層18にSCSI応答PDUを伝達し、自身のITT/STag/#_Key対応付けテーブル70をクリアする。iSCSI層17は次いで、SCSI層16に動作の完了ステータスを通知する。
プロトコル・ゲートウェイ
図11、12、13、および14に、どのようにゲートウェイ302、322、352、および354を使用してノード間でメッセージを転送することができるかを表す。各ゲートウェイ302、322、352、および354は、スイッチ、ルータなどのターゲットとイニシエータがそれを通じてメッセージを通信する、再送信を行うハードウェア・デバイスからなることができる。ゲートウェイ302、322、352、および354は、1つのプロトコルから別のプロトコルに送信される、イニシエータ・ノードとターゲット・ノード間で送信されるメッセージを処理するプロトコル・コンバータ314、334、362、および364を含む。あるいは、ゲートウェイ302は、ターゲット・ノードのハードウェアでインプリメントしても、イニシエータ・ノードのハードウェアでインプリメントしてもよい。ゲートウェイ302、322、352、および354はさらに、InfiniBandなどの1つのプロトコルのメッセージと、iWARPなどの別のプロトコルのメッセージとの対応付けを提供するプロトコル・マッピング316、336、353、および365を含む。
図11に、iWARPを使用するiSCSI/iSER306を実施し、iWAPプロトコルを使用してメッセージを送信するRNIC310を含むターゲット・ノード300を図示する。ゲートウェイ302は、InfiniBandを使用するiSCSI/iSERプロトコル308を実施し、InfiniBandアダプタ312を有するイニシエータ・ノード304を宛先とするメッセージを、iWARPネットワークのターゲット・ノード300から受信する。プロトコル・コンバータ314は、iWARPのメッセージを、InfiniBandアダプタ312と互換性のあるInfiniBandプロトコルに準拠したメッセージに変換する。
図12に、InfiniBandを使用するiSCSI/iSER326を実施し、InfiniBandプロトコルを使用してメッセージを送信するInfiniBandアダプタ330を含むターゲット・ノード320を図示する。ゲートウェイ322は、iWARPを使用するiSCSI/iSERプロトコル328を実施し、RNIC332を有するイニシエータ・ノード324を宛先とするInfiniBandのメッセージを、ターゲット・ノード320から受信する。プロトコル・コンバータ334は、InfiniBandのメッセージを、iWARPプロトコルを使用して動作するRNICアダプタ332と互換性のあるiWARPプロトコルに準拠したメッセージに変換する。
図13は、ゲートウェイ352と354が協働して、中間にあるiWARPネットワークで送信するためにメッセージを変換しながら、ターゲット・ノード350からのiSER/IBメッセージをイニシエータ・ノード356に配信する実施形態を図示する。ターゲット350からInfiniBandのメッセージを受信したターゲット・ゲートウェイ352は、そのメッセージを、iWARPプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをiWARPネットワークのイニシエータ・ゲートウェイ354に送信する。iWARPメッセージをターゲット・ゲートウェイ352から受信したイニシエータ・ゲートウェイ354は、メッセージを、イニシエータ・ノード356で使用されるInfiniBandプロトコルと互換性のあるフォーマットに変換してから、変換したメッセージをイニシエータ・ノード356に送信する。このようにして、ゲートウェイ352と354を使用して、InfiniBandプロトコルを使用し、InfiniBand358、366を使用するiSCSI/iSERとInfiniBandアダプタ360、368とを含む2つのノード350と356の間で、iWARPネットワークを通じて送信するためにメッセージを変換する。さらに、代替実施形態では、イニシエータ・ノードとターゲット・ノード間には、可能な種々の通信プロトコルで使用するためにメッセージの任意数の変換を行うゲートウェイがいくつあってもよい。
図14は、2つのゲートウェイ372と374が協働して、中間にあるInfiniBandネットワークで送信するためにメッセージを変換しながら、ターゲット・ノード370からのiSER/iWARPメッセージをイニシエータ・ノード376に伝達する実施形態を示す。ターゲット・ノード370からiWARPメッセージを受信したターゲット・ゲートウェイ372は、そのメッセージを、InfiniBandプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをInfiniBandネットワーク上のイニシエータ・ゲートウェイ374に送信する。ターゲット・ゲートウェイ372からInfiniBandメッセージを受信したイニシエータ・ゲートウェイ374は、そのメッセージを、イニシエータ・ノード376で使用されるiWARPプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをiWARPネットワークでイニシエータ376に送信する。このようにして、ゲートウェイ372と374を使用して、iWARPプロトコルを使用し、iWARPを使用するiSCSI/iSER378、390とiWARPアダプタ380、392とを含む2つのノード370と376の間で、InfiniBandネットワークを通じて送信するためにメッセージを変換する。さらに、代替実施形態では、可能な種々の通信プロトコルで使用するためにメッセージの任意数の変換を行うゲートウェイがイニシエータ・ノードとターゲット・ノードの間にいくつあってもよい。
図11、12、13、および14は、ターゲット・ノードからイニシエータ・ノードへのメッセージの流れを示す。ただし、このメッセージ・フローは、イニシエータ・ノードからターゲット・ノードに進行しても、または、任意の2タイプのノード間で進行することができる。例えば、図13のゲートウェイ352と354をこの点で繰り返すことができ、図14のゲートウェイ372および374を繰り返すことができる。
図15、16、および17は、メッセージの送信元のノードで使用されるプロトコルと異なるプロトコルをインプリメントしてメッセージを送信するノードで使用されるフォーマットから、メッセージを受信するノードと互換性のあるフォーマットにメッセージを変換するためにプロトコル・コンバータ314(図11)、334(図12)、362(図13)、364、382(図14)および386によって行われる動作を示す。図15に関して、プロトコル・コンバータ314、334、362、382、および386(ゲートウェイ)は、(ブロック400で)ターゲット・ノードから(または別のゲートウェイ・ノードを介してターゲット・ノードから)iSCSI/iSERメッセージを受信する。(ブロック402で)メッセージの送信元がiSER/iWARPを使用するターゲット・ノード(またはターゲットからのゲートウェイ)であり、かつ(ブロック408で)iWARPのメッセージ・タイプがそれに相当するInfiniBandメッセージに対応する場合、プロトコル・コンバータ314、364、または382は、(ブロック410で)iWARPメッセージをそれに相当するInfiniBandメッセージに変換し、変換したInfiniBandメッセージを、InfiniBandネットワークを通じて、例えば304、356などのイニシエータ・ノード(または後にあるゲートウェイ)に転送する。プロトコル・マッピング316、336、353、365、384、および388は、例えばInfiniBandとiWARPなど異なるフォーマットの対応するメッセージの対を、プロトコル・コンバータ314、334、362、364、382、および386に提供することができ、プロトコル・コンバータは、iWARPからInfiniBandへの(およびInfiniBandからiWARPへの)メッセージ・タイプの対応付けを保持することができ、プロトコル・マッピングは、あるプロトコル・フォーマットのメッセージがどのように変換され、もう一方のプロトコル・フォーマットに対応するかを示す。(ブロック408で)iWARPのメッセージ・タイプが、それに相当するInfiniBandのメッセージに対応せず、かつ(ブロック412で)メッセージが、STagを有するiWARPの「送信とともに無効化」メッセージでない場合は、そのような変換はプロトコル・コンバータ314、364、382によって扱われないので、プロトコル・コンバータ314、364、または382は、(ブロック414で)そのメッセージを廃棄し、エラーを投げる。
(ブロック412で)メッセージが、STagを有するiWARPの「送信とともに無効化メッセージ」である場合は、プロトコル・コンバータ314、364、または382は、(ブロック416で)InfiniBandの「要求されるイベントを伴う(または伴わずに)送信」メッセージを作成する。プロトコル・コンバータ314、364、または382は、(ブロック418で)、iWARPメッセージからInfiniBandメッセージの即値データ・フィールドに、ターゲットまたはイニシエータ中のメモリ位置への直接の参照を参照するSTagを追加する(あるいは、STagを破棄し、即値データなしで送信する準備をする)。プロトコル・コンバータ314、364、または382は、(ブロック420で)、変換されたメッセージをInfiniBandネットワークを通じてイニシエータ(またはその後にあるゲートウェイ)に送信する。ブロック410または420から、コントロールはブロック422に進み、ここで、後にゲートウェイがある場合は、そのようなゲートウェイが図16のブロック440からの動作を行うことによりiSER/IBメッセージをiSER/iWARPに変換する。
(ブロック402で)ターゲット・ノードからのメッセージがInfiniBandプロトコルであった場合は、コントロールは、図16のブロック440に進む。(ブロック440で)送信がイニシエータに到達する前にiWARPネットワークを通じて例えばゲートウェイ352などのゲートウェイに続いており、かつ(ブロック442で)InfiniBandのメッセージ・タイプが、プロトコル・マッピング353にあるそれに相当するiWARPメッセージに対応する場合は、プロトコル・コンバータ362は、(ブロック444で)InfiniBandメッセージをそれに相当するiWARPメッセージに変換し、変換したメッセージをiWARPを通じて次のゲートウェイ354に転送する。(ブロック442で)InfiniBandのメッセージ・タイプが、プロトコル・マッピング353でそれに相当するiWARPメッセージに対応せず、かつ(ブロック446で)メッセージがInfiniBandの「即値データとともに送信」メッセージでない場合は、(ブロック448で)エラーが投げられ、メッセージが廃棄される。
(ブロック446で)メッセージがInfiniBandの「即値データと共に送信」メッセージである場合は、プロトコル・コンバータ362は、(ブロック450で)iWARPの「送信とともに無効化」(要求されるイベントを伴う)メッセージを作成し、(ブロック452で)InfiniBandメッセージの即値データ・フィールドのR_Keyを、iWARPの「送信とともに無効化メッセージ」のSTagフィールドに追加する(あるいは、R_Key(即値データ)を破棄し、STagなしの送信メッセージを準備する)。プロトコル・コンバータ362は、(ブロック454で)変換したメッセージを図13に示すようにiWARPネットワークを通じてゲートウェイ354に送信する。ブロック454または444以降は、その後にあるゲートウェイが、ブロック400からの動作を行うことにより、iSER/iWARPメッセージをiSER/InfiniBandメッセージに変換することができる。
(ブロック440で)、ターゲット・ノードからのInfiniBandの送信がイニシエータ・ノードに到達する前にiWARPネットワークを通じてゲートウェイに続かない場合、(すなわちInfiniBandメッセージが、それぞれ図12および図14に示すように、iWARPネットワーク上のゲートウェイ322または374を通じて直接イニシエータ324または376に進行する場合)、コントロールは図17のブロック480に進む。(ブロック480で)InfiniBandのメッセージ・タイプがそれに相当するiWARPのメッセージに対応する場合、プロトコル・コンバータ334または386は、(ブロック486で)InfiniBandのメッセージをそれに相当するiWARPメッセージに変換し、iWARPを通じてイニシエータに転送する。(ブロック480で)InfiniBandのメッセージ・タイプがプロトコル・マッピング336または388でそれに対応するiWARPメッセージに対応せず、(ブロック488で)メッセージがInfiniBandの「即値データとともに送信」メッセージでない場合は、(ブロック490で)エラーが投げられ、メッセージが廃棄される。
(ブロック488で)メッセージがInfiniBandの「即値データとともに送信」メッセージである場合は、プロトコル・コンバータ334または386は、(ブロック492で)iWARPの「送信とともに無効化」(要求されるイベントを伴う)メッセージを作成し、(ブロック494で)InfiniBandメッセージの即値データ・フィールドのR_Keyを、iWARPの「送信とともに無効化」メッセージのSTagフィールドに加える(あるいは、R_Key(即値データ)を破棄し、STagなしで送信メッセージを準備する)。プロトコル・コンバータ334または386は、(ブロック496で)変換されたメッセージを図12または14に示すようなiWARPネットワークを通じてイニシエータ・ノードに送信する。
ここに記載される実施形態は、メッセージを処理し、必要な場合は受信側のノードで使用される通信プロトコルと互換性のあるフォーマットに変換することにより、異なる通信プロトコルを使用するネットワーク間でメッセージを送信できるようにする技術を提供する。
追加的な実施形態の詳細
本明細書に記載される実施形態は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを作製する標準的なプログラミング技術またはエンジニアリング技術あるいはその両方を使用して、方法、装置、またはプログラムとして実施することができる。本明細書で使用される用語「プログラム」は、ハードウェア・ロジック(例えば集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途集積回路(ASIC)など)、または、磁気記憶媒体(ハードディスク・ドライブ、フロッピー・ディスク、テープなど)、光学ストレージ(CD−ROM、光ディスクなど)、揮発性および不揮発性のメモリ装置(EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラマブル・ロジックなど)などのコンピュータ可読媒体にインプリメントされたコードまたはロジックを意味する。コンピュータ可読媒体中のコードは、プロセッサによってアクセスされ、実行される。好ましい実施形態がインプリメントされるコードは、さらに、伝送媒体を通じて、またはネットワークを通じてファイル・サーバからアクセスすることができる。そのような場合、コードが実施されたプログラムは、ネットワーク伝送線、無線送信媒体、空間を伝播する信号、電波、赤外線信号などを通じて伝搬する信号などの伝送媒体からなることができる。したがって、「プログラム」は、コードが具現化された媒体からなることができる。また、「プログラム」は、コードが具現化され、処理、および実行されるハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせからなることもできる。言うまでもなく、当業者は、本発明の範囲から逸脱せずにこの構成に多くの変更を加えてよく、プログラムは、当技術分野で知られる情報担持媒体からなってよいことを理解されよう。
ここに記載される動作は、回路によって行うことができ、「回路」とは、ハードウェアまたはソフトウェア、またはそれらの組み合わせを指す。ここに記載される実施形態の動作を行う回路は、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途集積回路(ASIC)などのハードウェア・デバイスからなることができる。回路は、集積回路などのプロセッサ・コンポーネントと、メモリなどのコンピュータ可読媒体中のコードからなることもでき、そのコードがプロセッサによって実行されて、ここに記載される実施形態の動作が行われる。
ここに記載される実施では、物理層は、イーサネット・プロトコルを利用した。代替の実施では、SATA(Serial Advanced Technology Attachment)、InfiniBand、シリアル接続SCSIケーブルなど、パケットのリンク間のチェックサム確認/CRC(または他のデータ検出方式)を提供する代替のプロトコルをイーサネットの代わりに使用することができる。
ここに記載される実施では、トランスポート層は、iSCSIプロトコルからなった。代替の実施では、パケットでI/Oコマンドを送信し、終端間のチェックサム確認/CRC(または他のデータ検出方式)を提供する、当技術分野で知られる他のプロトコルを使用してよい。
ここに記載される実施では、パッケージされたI/Oコマンドは、SCSIコマンドからなった。代替の実施では、このコマンドは、ATA(Advanced Technology Attachment)など、SCSIとは異なるI/Oコマンド・フォーマットとすることができる。
ここに記載される実施形態では、iSCSI層がiSER層に呼び出しを行って、RDMAデータ転送機能にアクセスした。追加的な実施形態では、アプリケーションまたは他のデータ転送プロトコルなどのiSCSI以外のデータ転送プロトコル層が、iSER層を呼び出してRDMAデータ転送機能にアクセスすることができる。
代替実施形態では、IP over InfiniBandプロトコル(信頼性のある接続−RC)をSDPの代わりに使用して、InfiniBandネットワークを介して、TCPなどのプロトコルを使用して符号化されたパケットを送信することができる。IP over InfiniBandプロトコル(信頼性のある接続−RC)についてのさらなる詳細は、文献:IETFにより「draft-kashyap-ipoib-connected-mode-01.txt」として公表された「IP over InfiniBand:接続モード」2003年9月に記載される。同文献は、参照により全体が本明細書に組み込まれる。例えば、SDP層を代わりにIPoIB(RC)実装の最上位にレイヤ化されたTCPスタックに替えることができ、そのTCP/IPoIBの組み合わせのいずれの部分をノード2のソフトウェア中またはアダプタ24に配置することができる。そのような実施形態では、IPoIB(RC)機能は、必要に応じてIPoIB(RC)の仕様に従ってRDMA層26を呼び出すことができる。
追加的な実施形態では、SCTP(Stream ControlTransmission Protocol)など、TCP以外のプロトコルを使用してIP対応ネットワークを通じてパケットを送信することができる。SCTPは、文献RFC2960「ストリーム制御伝送プロトコル」(Internet Society,2000年)に定義され、同文献は、参照により全体が本明細書に組み込まれる。
図5、6、7、8、9、および10は、特定の順序で行われる具体的な動作を記載する。代替の実施では、特定の動作は、異なる順序で行っても、変更または除去してもよい。さらに、上記のロジックにステップを加えてもよく、なおここに記載される実施に準拠する。さらに、本明細書に記載される動作は、連続的に行っても、特定の動作を並行して処理してもよい。さらに、動作は、1つの処理装置によって行っても、分散した処理装置によって行ってもよい。
上記の実施の説明は、例示と説明のために提示された。この説明は、完全なものではなく、また本発明をここに開示される通りの形態に限定するものでもない。上記の教示に照らして多くの変更と変種が可能である。本発明の範囲は、この詳細な説明ではなく、頭記の特許請求の範囲によって限定されるものとする。上記の詳細な説明、例、およびデータは、本発明の構成の製造と使用についての完全な説明を提供する。本発明の主旨および範囲内で本発明の多くの実施をなすことができるので、本発明は、頭記の特許請求の範囲に存する。
諸実施形態が実施されるネットワーク・ノードの例を示す図である。 ここに記載される実施形態によるコンピューティング・アーキテクチャの例の図である。 パケット・フォーマットの図である。 マッピングに保持される情報である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 諸実施形態によりデータを転送するために行われる動作を説明する図である。 ゲートウェイを含む実施形態を説明する図である。 ゲートウェイを含む実施形態を説明する図である。 ゲートウェイを含む実施形態を説明する図である。 ゲートウェイを含む実施形態を説明する図である。 メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。 メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。 メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。
符号の説明
2a コンピューティング・ノード
2b コンピューティング・ノード
2c コンピューティング・ノード
4 ネットワーク
6 プロセッサ
8 オペレーティング・システム
14 アプリケーション
18 iSCSI層
20 ソケット層
22 iSER層
24 アダプタ
26 RDMA層
28 ネットワーク層
30 メモリ
32 メモリ領域
34 メモリ変換テーブル
36 送信待ち行列
38 受信待ち行列
40 完了待ち行列
42 SDP層
44 アダプタ・ドライバ(RDMAverb層)
50 コマンド
52 PDU
54 ヘッダ
56 ITT
60 ネットワーク層
70 マップ
72 エントリ
300 ターゲット・ノード
370 ターゲット・ノード
304 イニシエータ・ノード
376 イニシエータ・ノード
302 ゲートウェイ
322 ゲートウェイ
352 ゲートウェイ
354 ゲートウェイ
372 ゲートウェイ
374 ゲートウェイ
312 アダプタ
380 アダプタ
392 アダプタ
314 プロトコル・コンバータ
334 プロトコル・コンバータ
362 プロトコル・コンバータ
364 プロトコル・コンバータ
316 プロトコル・マッピング
336 プロトコル・マッピング
353 プロトコル・マッピング
365 プロトコル・マッピング

Claims (39)

  1. リモート・ノードと通信するためにローカル・ノードでインプリメントされるプログラムであって、前記プログラムは、
    第1の通信プロトコルを使用して前記リモート・ノードと通信して、第2の通信プロトコルのための接続を確立する動作と、
    前記リモート・ノードとの通信を可能にするデータ構造を作成して、前記第2の通信プロトコルのための接続を前記リモート・ノードとの間に確立する動作と、
    前記第2の通信プロトコルのための拡張層を呼び出す動作と、
    前記第2の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために、前記データ構造を前記拡張層に渡す動作と
    を実行させるプログラム。
  2. 前記接続を確立するための前記リモート・ノードとの通信は、ソケット層を通じて行われる請求項1に記載のプログラム。
  3. 前記第1の通信プロトコルは、前記リモート・ノードと通信するために使用されるRNICアダプタ中にインプリメントされたネットワーキング層からなり、前記第2の通信プロトコルは、RDMAプロトコルからなり、前記拡張層は、前記RDMAプロトコルを使用した前記リモート・ノードとの通信を扱うiSER層からなる請求項1に記載のプログラム。
  4. 前記接続を確立するための前記リモート・ノードとの通信は、前記第2の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第2の通信プロトコルのための前記データ構造を作成し、
    前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了する呼び出しを発行する動作であって、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信する動作
    をさらに実行させる請求項1に記載のプログラム。
  5. 前記第1の通信プロトコルは、ソケット層を構成し、前記第2の通信プロトコルは、前記RDMAプロトコルからなり、前記インタフェース・プロトコルは、SDP層、またはIPoIB(RC)の上にレイヤ化されたTCPからなり、前記拡張層は、前記RDMAプロトコルを使用する前記リモート・ノードとの通信を扱うiSER層からなり、InfiniBandアダプタが使用されて前記リモート・ノードと通信する請求項4に記載のプログラム。
  6. 前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項1に記載のプログラム。
  7. 前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項6に記載のプログラム。
  8. 前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
    前記ターゲット・ノードから、イニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信する動作であって、前記直接の参照は、前記第2の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしない動作と、
    前記直接の参照がマップ中の1つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にする動作と、
    前記直接の参照が前記マップ中の1つの参照と一致する、または前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも1つの直接の参照を無効にする動作と
    を行う請求項1に記載のプログラム。
  9. 前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも1つの参照を無効にする動作を行う請求項8に記載のプログラム。
  10. 前記拡張層はiSER層からなり、前記ターゲット・ノードは、RNICアダプタまたはInfiniBandアダプタを含み、前記呼び出されるイニシエータ・アダプタは、RNICアダプタまたはInfiniBandアダプタを含む請求項9に記載のプログラム。
  11. 前記ローカル・ノードは、ターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項10に記載のプログラム。
  12. 前記ターゲット・ノードはさらに、
    前記第1の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信する動作
    を行い、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項11に記載のプログラム。
  13. 前記間接的な参照は、ITTを含み、前記直接の参照は、STagまたはR_Keyを含む請求項8に記載のプログラム。
  14. リモート・ノードと通信するためにローカル・ノードで実施されるシステムであって、
    (a)コンピュータ可読媒体と、
    (b)(i)第1の通信プロトコル、
    (ii)第2の通信プロトコル、および
    (iii)前記第2の通信プロトコルのための拡張層、
    を含むコードと、
    (c)前記コンピュータ可読媒体と通信する、前記ローカル・ノードにある回路であって、
    (i)前記第1の通信プロトコルを使用して前記リモート・ノードと通信して、前記第2の通信プロトコルのための接続を確立し、
    (ii)前記コンピュータ可読媒体中にデータ構造を作成して前記リモート・ノードとの通信を可能にして、前期第2の通信プロトコルのための前記接続を前記リモート・ノードとの間に確立し、
    (iii)前記第2の通信プロトコルのための前記拡張層を呼び出し、
    (iv)前記第2の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために前記データ構造を前記拡張層に渡すこと
    を可能にされた回路と
    を備えるシステム。
  15. ソケット層をさらに備え、前記接続を確立するための前記リモート・ノードとの通信は、前記ソケット層を通じて行われる請求項14に記載のシステム。
  16. 前記第1の通信プロトコルは、前記リモート・ノードと通信するために使用されるRNICアダプタ中に実施されたネットワーキング層を含み、前記第2の通信プロトコルは、前記RDMAプロトコルを含み、前記拡張層は、前記RDMAプロトコルを使用した前記リモート・ノードとの通信を扱うiSER層からなる請求項14に記載のシステム。
  17. 前記接続を確立するための前記リモート・ノードとの通信は、前記第2の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第2の通信プロトコルのための前記データ構造を作成し、前記回路はさらに、
    前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了させる呼び出しを発行することを可能にされ、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信する請求項14に記載のシステム。
  18. 前記第1の通信プロトコルは、ソケット層を含み、前記第2の通信プロトコルは、前記RDMAプロトコルを含み、前記インタフェース・プロトコルは、SDP層、またはIPoIB(RC)の上にレイヤ化されたTCPを含み、前記拡張層は、前記RDMAプロトコルを使用した前記リモート・ノードとの通信を扱うiSER層を含み、InfiniBandアダプタが使用されて、前記リモート・ノードと通信する請求項17に記載のシステム。
  19. 前記ローカル・ノードはイニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項14に記載のシステム。
  20. 前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項19に記載のシステム。
  21. 前記ローカル・ノードはイニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
    前記ターゲット・ノードからイニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信する動作であって、前記直接の参照は、前記第2の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしない動作と、
    前記直接の参照がマップ中の1つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にする動作と、
    前記直接の参照が前記マップ中の1つの参照と一致する、または前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも1つの直接の参照を無効にする動作と
    を行う請求項14に記載のシステム。
  22. 前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも1つの参照を無効にする動作を行う請求項21に記載のシステム。
  23. 前記拡張層はiSER層からなり、前記ターゲット・ノードは、RNICアダプタまたはInfiniBandアダプタを含み、前記呼び出されるイニシエータ・アダプタは、RNICアダプタまたはInfiniBandアダプタを含む請求項22に記載のシステム。
  24. 前記ローカル・ノードはターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項23に記載のシステム。
  25. 前記ターゲット・ノードの回路はさらに、
    前記第1の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信することを可能にされ、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項24に記載のシステム。
  26. 前記間接的な参照は、ITTを含み、前記直接の参照は、STagまたはR_Keyを含む請求項21に記載のシステム。
  27. リモート・ノードと通信するためにローカル・ノードで行われる方法であって、
    第1の通信プロトコルを使用して前記リモート・ノードと通信して第2の通信プロトコルのための接続を確立するステップと、
    前記リモート・ノードとの通信を可能にするデータ構造を作成して、前記第2の通信プロトコルのための接続を前記リモート・ノードとの間に確立するステップと、
    前記第2の通信プロトコルのための拡張層を呼び出すステップと、
    前記第2の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために、前記データ構造を前記拡張層に渡すステップと
    を備える方法。
  28. 前記接続を確立するための前記リモート・ノードとの通信は、ソケット層を通じて行われる請求項27に記載の方法。
  29. 前記第1の通信プロトコルは、前記リモート・ノードと通信するために使用されるRNICアダプタ中に実施されたネットワーキング層を含み、前記第2の通信プロトコルは、前記RDMAプロトコルを含み、前記拡張層は、前記RDMAプロトコルを使用した前記リモート・ノードとの通信を扱うiSER層を含む請求項27に記載の方法。
  30. 前記接続を確立するための前記リモート・ノードとの通信は、前記第2の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第2の通信プロトコルのための前記データ構造を作成し、
    前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了する呼び出しを発行するステップであって、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信するステップ
    をさらに備える請求項27に記載の方法。
  31. 前記第1の通信プロトコルは、ソケット層を構成し、前記第2の通信プロトコルは、前記RDMAプロトコルを含み、前記インタフェース・プロトコルは、SDP層、またはIPoIB(RC)の上にレイヤ化されたTCPを含み、前記拡張層は、前記RDMAプロトコルを使用する前記リモート・ノードとの通信を扱うiSER層を含み、InfiniBandアダプタが使用されて前記リモート・ノードと通信する請求項30に記載の方法。
  32. 前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項27に記載の方法。
  33. 前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項27に記載の方法。
  34. 前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
    前記ターゲット・ノードからイニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信するステップであって、前記直接の参照は、前記第2の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしないステップと、
    前記直接の参照がマップ中の1つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にするステップと、
    前記直接の参照が前記マップ中の1つの参照と一致する、または、前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも1つの直接の参照を無効にするステップと
    を行う請求項27に記載の方法。
  35. 前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも1つの参照を無効にする動作を行う請求項34に記載の方法。
  36. 前記拡張層はiSER層からなり、前記ターゲット・ノードは、RNICアダプタまたはInfiniBandアダプタを含み、前記呼び出されるイニシエータ・アダプタは、RNICアダプタまたはInfiniBandアダプタを含む請求項35に記載の方法。
  37. 前記ローカル・ノードは、ターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項36に記載の方法。
  38. 前記ターゲット・ノードはさらに、
    前記第1の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信するステップを行い、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項37に記載の方法。
  39. 前記間接的な参照は、ITTを含み、前記直接の参照は、STagまたはR_Keyを含む請求項34に記載の方法。
JP2005206418A 2004-07-16 2005-07-15 ノード間の通信を可能にする方法、システム、およびプログラム Pending JP2006033854A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/893,213 US7475153B2 (en) 2004-07-16 2004-07-16 Method for enabling communication between nodes

Publications (1)

Publication Number Publication Date
JP2006033854A true JP2006033854A (ja) 2006-02-02

Family

ID=35599346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005206418A Pending JP2006033854A (ja) 2004-07-16 2005-07-15 ノード間の通信を可能にする方法、システム、およびプログラム

Country Status (3)

Country Link
US (3) US7475153B2 (ja)
JP (1) JP2006033854A (ja)
CN (1) CN1722732B (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779081B2 (en) * 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
US7475153B2 (en) * 2004-07-16 2009-01-06 International Business Machines Corporation Method for enabling communication between nodes
US20060077993A1 (en) * 2004-10-12 2006-04-13 Eaton Corporation Method of managing communication buffers for a plurality of communication layers and node employing the same
US20060101225A1 (en) * 2004-11-08 2006-05-11 Eliezer Aloni Method and system for a multi-stream tunneled marker-based protocol data unit aligned protocol
US20060133422A1 (en) * 2004-12-22 2006-06-22 Maughan Robert R Maintaining message boundaries for communication protocols
US20060168092A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation Scsi buffer memory management with rdma atp mechanism
US8539109B1 (en) * 2005-03-09 2013-09-17 Oracle America, Inc. Third party direct memory access protocol extension to separate data path from control path
US8527661B1 (en) * 2005-03-09 2013-09-03 Oracle America, Inc. Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path
US7730214B2 (en) * 2006-12-20 2010-06-01 International Business Machines Corporation Communication paths from an InfiniBand host
US7689679B2 (en) * 2007-02-23 2010-03-30 International Business Machines Corporation Method to enable infiniband network bootstrap
US7734743B2 (en) * 2007-02-23 2010-06-08 International Business Machines Corporation Method to enable infiniband network bootstrap
US7734818B2 (en) * 2007-02-23 2010-06-08 International Business Machines Corporation Method to add IPV6 and DHCP support to the network support package
US7886139B2 (en) * 2007-02-23 2011-02-08 International Business Machines Corporation Method to enable firmware to boot a system from an ISCSI device
US8271669B2 (en) * 2007-05-30 2012-09-18 Broadcom Corporation Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers
TWI348850B (en) * 2007-12-18 2011-09-11 Ind Tech Res Inst Packet forwarding apparatus and method for virtualization switch
US7971236B1 (en) * 2008-10-29 2011-06-28 Netapp, Inc. Method and system for secure remote direct memory access
CN101710902B (zh) * 2009-12-10 2014-03-05 北京邮电大学 一种无结构p2p网络及其数据查询方法和索引更新方法
CN101841566B (zh) * 2010-04-01 2013-12-18 中兴通讯股份有限公司南京分公司 一种网络存储目标端驱动系统和方法
US8417898B2 (en) 2010-10-07 2013-04-09 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method
US20120229481A1 (en) * 2010-12-13 2012-09-13 Ati Technologies Ulc Accessibility of graphics processing compute resources
US9176794B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
AU2011265444B2 (en) * 2011-06-15 2015-12-10 Tata Consultancy Services Limited Low latency FIFO messaging system
US8780913B2 (en) * 2011-08-30 2014-07-15 International Business Machines Corporation Operating an infiniband network having nodes and at least one IB switch
CN102404212A (zh) * 2011-11-17 2012-04-04 曙光信息产业(北京)有限公司 一种基于InfiniBand网络的跨平台RDMA通信方法
US9176911B2 (en) * 2012-12-11 2015-11-03 Intel Corporation Explicit flow control for implicit memory registration
US20140337456A1 (en) * 2013-05-07 2014-11-13 Dell Products L.P. Systems and methods for enabling rdma between diverse endpoints
US10095654B2 (en) * 2014-09-30 2018-10-09 International Business Machines Corporation Mapping and reducing
US9674303B1 (en) * 2014-11-19 2017-06-06 Qlogic, Corporation Methods and systems for efficient data transmission in a data center by reducing transport layer processing
US10031886B2 (en) 2016-02-17 2018-07-24 International Business Machines Corporation Remote direct memory access-based method of transferring arrays of objects including garbage data
CN108418695A (zh) * 2018-01-10 2018-08-17 北京思特奇信息技术股份有限公司 一种ocs实时计费云化系统和方法
CN109067506A (zh) * 2018-08-15 2018-12-21 无锡江南计算技术研究所 一种基于多滑动窗口并发的轻量级异步消息实现方法
US11379405B2 (en) * 2019-09-17 2022-07-05 Vmware, Inc. Internet small computer interface systems extension for remote direct memory access (RDMA) for distributed hyper-converged storage systems
US11509579B2 (en) * 2020-08-24 2022-11-22 Mellanox Technologies, Ltd. Gateway for remote direct memory access over converged ethernet
CN113873008B (zh) * 2021-08-30 2024-03-19 浪潮电子信息产业股份有限公司 一种rdma网络节点的连接重配方法、装置、系统及介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553075A (en) * 1994-06-22 1996-09-03 Ericsson Ge Mobile Communications Inc. Packet data protocol for wireless communication
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
DE19630845A1 (de) * 1996-07-31 1998-02-05 Sel Alcatel Ag Verfahren zum Betreiben einer Schnittstelleneinrichtung, sowie Schnittstelleneinrichtung und Vermittlungsstelle mit einer solchen Schnittstelleneinrichtung
FI102708B (fi) * 1996-10-22 1999-01-29 Nokia Telecommunications Oy Menetelmä ja järjestelmä etätyöaseman ja automaattisen kutsunjakojärje stelmän välisen tietoliikenneyhteyden sovittamiseksi
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
SE512415C2 (sv) * 1997-07-22 2000-03-13 Ericsson Telefon Ab L M Förfarande och anordning i ett telesystem
US6360282B1 (en) * 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6185607B1 (en) * 1998-05-26 2001-02-06 3Com Corporation Method for managing network data transfers with minimal host processor involvement
US6374248B1 (en) * 1999-12-02 2002-04-16 Sun Microsystems, Inc. Method and apparatus for providing local path I/O in a distributed file system
US20030099254A1 (en) * 2000-03-03 2003-05-29 Richter Roger K. Systems and methods for interfacing asynchronous and non-asynchronous data media
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
DE60135654D1 (de) * 2000-05-23 2008-10-16 Sepaton Inc Verfahren und vorrichtung zur datenvervielfachung durch verwendung von scsi ber tcp/ip
CA2413434A1 (en) * 2000-06-26 2002-01-03 International Business Machines Corporation Data management application programming interface for a parallel file system
US7346702B2 (en) * 2000-08-24 2008-03-18 Voltaire Ltd. System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US6862609B2 (en) * 2001-03-07 2005-03-01 Canopy Group, Inc. Redundant storage for multiple processors in a ring network
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7620692B2 (en) * 2001-09-06 2009-11-17 Broadcom Corporation iSCSI receiver implementation
US6895590B2 (en) * 2001-09-26 2005-05-17 Intel Corporation Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US6845403B2 (en) * 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
JP2003140840A (ja) * 2001-10-31 2003-05-16 Toshiba Corp ネットワーク接続されたディスクアレイのアクセス方法及び記憶装置
US7366784B2 (en) * 2001-11-27 2008-04-29 Hitachi, Ltd. System and method for providing and using a VLAN-aware storage device
US7246245B2 (en) * 2002-01-10 2007-07-17 Broadcom Corporation System on a chip for network storage devices
US6851023B2 (en) * 2002-01-14 2005-02-01 Raidcore, Inc. Method and system for configuring RAID subsystems with block I/O commands and block I/O path
US20030169690A1 (en) * 2002-03-05 2003-09-11 James A. Mott System and method for separating communication traffic
US7237031B2 (en) * 2002-03-07 2007-06-26 Sun Microsystems, Inc. Method and apparatus for caching protocol processing data
EP1552409B1 (en) * 2002-08-19 2013-07-24 Broadcom Corporation One-shot rdma
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7043578B2 (en) * 2003-01-09 2006-05-09 International Business Machines Corporation Method, system, and program for processing a packet including I/O commands and data
US7526574B2 (en) * 2004-04-21 2009-04-28 International Business Machines Corporation Method for communicating data transfer requests between data transfer protocols
US7577707B2 (en) * 2004-04-21 2009-08-18 International Business Machines Corporation Method, system, and program for executing data transfer requests
US7779081B2 (en) * 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
US7475153B2 (en) * 2004-07-16 2009-01-06 International Business Machines Corporation Method for enabling communication between nodes

Also Published As

Publication number Publication date
US7475153B2 (en) 2009-01-06
US20090034553A1 (en) 2009-02-05
CN1722732B (zh) 2011-11-09
US7761588B2 (en) 2010-07-20
CN1722732A (zh) 2006-01-18
US20100217878A1 (en) 2010-08-26
US8176187B2 (en) 2012-05-08
US20060013251A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
US7761588B2 (en) System and article of manufacture for enabling communication between nodes
US7966380B2 (en) Method, system, and program for forwarding messages between nodes
JP4347247B2 (ja) データ転送要求を実行するための方法、システム、およびプログラム
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
US8180928B2 (en) Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US8930558B2 (en) Proxying multiple targets as a virtual target using identifier ranges
US7685287B2 (en) Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US8438321B2 (en) Method and system for supporting hardware acceleration for iSCSI read and write operations and iSCSI chimney
US8396981B1 (en) Gateway for connecting storage clients and storage servers
US7924881B2 (en) Datagram identifier management
EP1759317B1 (en) Method and system for supporting read operations for iscsi and iscsi chimney
JP2002305535A (ja) データを転送する信頼できるプロトコルを提供する方法および装置
US20050283545A1 (en) Method and system for supporting write operations with CRC for iSCSI and iSCSI chimney
KR101752823B1 (ko) 작동 요청을 처리하기 위한 스토리지 시스템, 방법 및 장치
US7639715B1 (en) Dedicated application interface for network systems
US20050281261A1 (en) Method and system for supporting write operations for iSCSI and iSCSI chimney
US7526574B2 (en) Method for communicating data transfer requests between data transfer protocols
WO2015055008A1 (zh) 一种存储控制芯片及磁盘报文传输方法
US20080056263A1 (en) Efficient transport layer processing of incoming packets
Ko et al. Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access (RDMA)
US8793399B1 (en) Method and system for accelerating network packet processing
Ko et al. Internet Small Computer System Interface (iSCSI) Extensions for the Remote Direct Memory Access (RDMA) Specification
Hufferd et al. Network Working Group M. Ko Request for Comments: 5046 IBM Corporation Category: Standards Track M. Chadalapaka Hewlett-Packard Company
Ko et al. RFC 5046: Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access (RDMA)
Ko et al. iSCSI Extensions for RDMA Specification (Version 1.0) 1 Status of this Memo This document is a Release Specification of the RDMA Consortium. Copies of this document and associated errata may be found at