SCSI RDMA Protocol

From HandWiki

In computing the SCSI RDMA Protocol (SRP) is a protocol that allows one computer to access SCSI devices attached to another computer via remote direct memory access (RDMA).[1][2] The SRP protocol is also known as the SCSI Remote Protocol. The use of RDMA makes higher throughput and lower latency possible than what is generally available through e.g. the TCP/IP communication protocol. Though the SRP protocol has been designed to use RDMA networks efficiently, it is also possible to implement the SRP protocol over networks that do not support RDMA.

History

SRP was published as an ANSI standard (ANSI INCITS 365-2002) in 2002 and renewed in 2007 and 2019.[3][4]

Related Protocols

As with the ISCSI Extensions for RDMA (iSER) communication protocol, there is the notion of a target (a system that stores the data) and an initiator (a client accessing the target) with the target initiating data transfers. In other words, when an initiator writes data to a target, the target executes an RDMA read to fetch the data from the initiator and when a user issues a SCSI read command, the target sends an RDMA write to the initiator.

While the SRP protocol is easier to implement than the iSER protocol, iSER offers more management functionality, e.g. the target discovery infrastructure enabled by the iSCSI protocol.

Performance

Bandwidth and latency of storage targets supporting the SRP or the iSER protocol should be similar. On Linux, there are two SRP and two iSER storage target implementations available that run inside the kernel (SCST[5] and LIO) and an iSER storage target implementation that runs in user space (STGT). Measurements have shown that the SCST SRP target has a lower latency and a higher bandwidth than the STGT iSER target. This is probably because the RDMA communication overhead is lower for a component implemented in the Linux kernel than for a user space Linux process, and not because of protocol differences.[6]

Implementations

In order to use the SRP protocol, an SRP initiator implementation, an SRP target implementation and networking hardware supported by the initiator and target are needed. The following software SRP initiator implementations exist:

  • Linux SRP initiator, available since November 2005 (kernel version 2.6.15).
  • Windows SRP initiator, available through the winOFED InfiniBand stack.[7]
  • VMWare SRP initiator, available since January 2008 through Mellanox' OFED Drivers for VMware Infrastructure 3 and vSphere 4.[8]
  • Solaris 10 SRP initiator, available through Sun's download page.[9]
  • Solaris 11 and OpenSolaris SRP initiator, integrated as a component of project COMSTAR.[10]
  • The IBM POWER virtual SCSI client driver for Linux (ibmvscsi), available since January 2008 (kernel version 2.6.24[11]). Virtual SCSI allows client logical partitions to access I/O devices (disk, CD, and tape) that are owned by another logical partition.[12][13]

The following SRP target implementations exist:

  • The SCST SRP target implementation.[5] This is a mature SRP target implementation available since 2008 via both SCST and OFED.[14]
  • Linux LIO SRP target,[15] available since January 2012 (kernel version 3.3[16]), based on the SCST SRP target.
  • The IBM POWER virtual SCSI target driver (ibmvstgt), available since January 2008 (kernel version 2.6.24[11]).[12][13]
  • DataDirect Network's (DDN) disk subsystems such as the S2A9900 and SFA10000, which use the SRP target implementation in the disk subsystem's controllers to present LUNs to servers (the servers act as SRP initiators).[17][18]
  • IBM's FlashSystem.[19]
  • The Solaris COMSTAR target, available since early 2009 in OpenSolaris and Solaris 11.[20]

See also

References

  1. ANSI T10 SRPr16a, www.t10.org.
  2. ANSI T10 SRPr16a, web.archive.org
  3. ANSI webstore for purchasing standards - ANSI INCITS 365-2002
  4. "SCSI RDMA Protocol - 2 (SRP-2)". ANSI T10. 7 May 2019. http://www.t10.org/cgi-bin/ac.pl?t=f&f=srp2r06.pdf. 
  5. 5.0 5.1 The SCST Project, an open source SCSI target implementation for Linux that includes an SRP target implementation.
  6. Performance of SCST versus STGT.
  7. OpenFabrics Enterprise Distribution for Windows.
  8. Mellanox OFED Drivers for VMware Infrastructure 3 and vSphere 4.
  9. Sun's download page.
  10. "Configuring SRP Devices With COMSTAR". http://docs.oracle.com/cd/E23824_01/html/821-1459/gldpr.html. Retrieved 4 February 2013. 
  11. 11.0 11.1 Linux kernel version 2.6.24 change log.
  12. 12.0 12.1 D. Boutcher and D. Engebretsen, Linux Virtualization on IBM POWER5 Systems, Proceedings of the Linux Symposium, Vol. 1, July 2004, pp. 113-120.
  13. 13.0 13.1 IBM Systems Hardware Information Center, Virtual SCSI.
  14. OFED 1.5.4.1 Release Notes, OpenFabrics website, January 2012.
  15. "SCSI RDMA Protocol". linux-iscsi.org. http://linux-iscsi.org/wiki/SCSI_RDMA_Protocol. 
  16. Linus Torvalds (2012-01-18). "InfiniBand/SRP merge". lkml.org. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f59e842fc0871cd5baa213dc32e0ce8e5aaf4758. 
  17. "DDN SFA10000 User Guide". ddn.com. 2012-01-18. http://www.ddn.com/pdfs/SFA10000_1.4.0_User_Guide_C.pdf. 
  18. "DDN Corporate Overview, IB Storage 101 section". ddn.com. 2012-01-18. http://www.hpcadvisorycouncil.com/events/switzerland_workshop/pdf/Presentations/Day%201/11_DDN.pdf. 
  19. IBM (10 March 2014). "IBM FlashSystem Integration Guide". http://www-01.ibm.com/support/docview.wss?uid=ssg1S7004373&aid=1. 
  20. Moellenkamp, Joerg. "PSARC/2009/111: SRP Target in Comstar". http://www.c0t0d0s0.org/archives/5583-PSARC2009111-SRP-Target-in-Comstar.html. Retrieved 4 February 2013.