iSCSI Extensions for RDMA

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

The iSCSI Extensions for RDMA (iSER) is a computer network protocol that extends the Internet Small Computer System Interface (iSCSI) protocol to use Remote Direct Memory Access (RDMA). RDMA is provided by either the Transmission Control Protocol (TCP) with RDMA services (iWARP), RoCE (RDMA over converged Ethernet) that does not need the TCP layer and therefore provides lower latency, or InfiniBand. It permits data to be transferred directly into and out of SCSI computer memory buffers (which connects computers to storage devices) without intermediate data copies.

History

An RDMA consortium was announced on May 31, 2002 with a goal of product implementations by 2003.[1] The consortium released their proposal in July, 2003.[2] The protocol specifications were published as drafts in September 2004 in the Internet Engineering Task Force and issued as RFCs in October 2007.[3][4] The OpenIB Alliance was renamed in 2007 to be the OpenFabrics Alliance, and then released an open source software package.[5]

Description

The motivation for iSER is to use RDMA to avoid unnecessary data copying on the target and initiator. The Datamover Architecture (DA) defines an abstract model in which the movement of data between iSCSI end nodes is logically separated from the rest of the iSCSI protocol; iSER is one Datamover protocol. The interface between the iSCSI and a Datamover protocol, iSER in this case, is called Datamover Interface (DI).

The main difference between the standard iSCSI and iSCSI over iSER is the execution of SCSI read/write commands. With iSER the target drives all data transfer (with the exception of iSCSI unsolicited data) by issuing RDMA write/read operations, respectively. When the iSCSI layer issues an iSCSI command PDU, it calls the Send_Control primitive, which is part of the DI. The Send_Control primitive sends the STag with the PDU. The iSER layer in the target side notifies the target that the PDU was received with the Control_Notify primitive (which is part of the DI). The target calls the Put_Data or Get_Data primitives (which are part of the DI) to perform an RDMA write/read operation respectively. Then, the target calls the Send_Control primitive to send a response to the initiator. An example is shown in the figures (time progresses from top to bottom).

READ command execution with iSER
WRITE command execution with iSER

All iSCSI control-type PDUs contain an iSER header, which allows the initiator to advertise the STags that were generated during buffer registration. The target will use the STags later for RDMA read/write operations.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.

Further reading

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found. Thesis for Master of Science in Computer Science

External links

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • iSER and DA Frequently Asked Questions