iSCSI Extensions for RDMA ( iSER ) は、インターネット小型コンピュータシステムインターフェイス ( iSCSI ) プロトコルを拡張してリモートダイレクトメモリアクセス ( RDMA )を使用するコンピュータネットワークプロトコルです。
RDMAは以下によって提供されます。
iSERは、中間的なデータコピーを必要とせず、 CPUの関与を最小限に抑えながら、 SCSIコンピュータメモリバッファ(コンピュータとストレージデバイスを接続するバッファ)との間でデータを直接転送することを可能にする。
RDMAコンソーシアムは2002年5月31日に発表され、2003年までに製品実装を目指すことになった。[ 1 ] コンソーシアムは2003年7月に提案書をリリースした。[ 2 ]プロトコル仕様は2004年9月にインターネット技術タスクフォース でドラフトとして公開され、 2007年10月にRFCとして発行された。[ 3 ] [ 4 ] OpenIB Allianceは2007年にOpenFabrics Allianceに改名され、その後オープンソースソフトウェアパッケージをリリースした。[ 5 ]
iSERの目的は、RDMAを使用してターゲットとイニシエータ間での不要なデータコピーを回避することです。データムーバーアーキテクチャ(DA)は、iSCSIエンドノード間のデータ移動をiSCSIプロトコルの他の部分から論理的に分離する抽象モデルを定義しており、iSERはデータムーバープロトコルの1つです。iSCSIとデータムーバープロトコル(この場合はiSER)間のインターフェースは、データムーバーインターフェース(DI)と呼ばれます。
標準iSCSIとiSER上のiSCSIの主な違いは、SCSI読み書きコマンドの実行方法です。iSERでは、ターゲットがRDMA書き込み/読み取り操作を発行することで、すべてのデータ転送(iSCSIの非要求データを除く)を駆動します。iSCSIレイヤがiSCSIコマンドPDUを発行すると、DIの一部であるSend_Controlプリミティブが呼び出されます。Send_Controlプリミティブは、PDUとともにSTagを送信します。ターゲット側のiSERレイヤは、Control_Notifyプリミティブ(DIの一部)を使用して、PDUが受信されたことをターゲットに通知します。ターゲットは、Put_DataまたはGet_Dataプリミティブ(DIの一部)を呼び出して、それぞれRDMA書き込み/読み取り操作を実行します。その後、ターゲットはSend_Controlプリミティブを呼び出して、イニシエータに応答を送信します。図に例を示します(時間は上から下へ進みます)。
すべてのiSCSI制御型PDUにはiSERヘッダーが含まれており、これによりイニシエータはバッファ登録中に生成されたSTagを通知できます。ターゲットは後でこれらのSTagを使用してRDMAの読み書き操作を行います。