How to Configure an SRP Initiator

As an example of how to specify SRP connection fields, consider the Open Fabrics Enterprise Distribution (OFED) implementation of SRP on Linux initiators. The following notes are based on the file srp_release_notes.txt from the OFED. The current release of the OFED distribution can be found here, and it includes an online copy of srp_release_notes.txt.

For a deeper discussion of SRP Addressing and Discovery that may be helpful when configuring other kinds of SRP Initiator, refer to the optional section on Understanding SRP Addressing and Discovery.

Enabling SRP - Linux Initiator

To load the SRP module, either execute the "modprobe ib_srp" command after the OFED driver is up, or change the value of SRP_LOAD in /etc/infiniband/openib.conf to "yes" (causing the srp module to be loaded at driver boot).

SRP Discovery Example - Linux Initiator

To use IB Device Management services to search for available SRP storage that is visible using port 2 of the first IB HCA (HCA number 0) on the system (known to Linux as mthca0), use the following command. The -c option to srp_daemon produces output in a convenient one-line-per-target format that is re-used below. The -n option causes the output to contain a default setting of the initiator_ext parameter that works well when enabling simultaneous SRP sessions to distinct target ports on the target system, to take advantage of multipath I/O.

# srp_daemon -a -n -c -o -i mthca0 -p 2
id_ext=0003ba0001002e48,ioc_guid=0003ba0001002e48,dgid=fe800000000000000003ba0001002e49,pkey=ffff,service_id=0003ba0001002e48,initiator_ext=492e000100ba0300
id_ext=0003ba0001002e48,ioc_guid=0003ba0001002e48,dgid=fe800000000000000003ba0001002e4a,pkey=ffff,service_id=0003ba0001002e48,initiator_ext=4a2e000100ba0300

SRP Connection Command Example - Linux Initiator

In Linux OFED SRP, management capabilities are exported through a synthetic directory that corresponds to a particular HCA and port. Each port has a subdirectory under /sys/class/infiniband_srp named mthcaHCA-PORT. For example, the directory corresponding to the 2nd port on the 1st HCA (HCA number 0) in the system is named /sys/class/infiniband_srp/mthca0-2.

To create an SRP connection, create a file named add-target in the directory that contains an entry of name-value pairs that describes the desired connection. For example, to create a connection from port 2 on the initiator HCA (mthca0) to a COMSTAR SRP target HCA with HCA GUID 0003ba0001002e48, use the following commands:

echo -n id_ext=0003ba0001002e48,ioc_guid=0003ba0001002e48,\
dgid=fe800000000000000003ba0001002e4a,pkey=ffff,\
service_id=0003ba0001002e48,initiator_ext=4a2e000100ba0300\
 > /sys/class/infiniband_srp/mthca0-2/add_target

Note that the output format of srp_daemon -c is suitable for sending to add_target. As a simple way to create a connection to all visible SRP targets, use the single command srp_daemon -e. This form of srp_daemon performs the add_target function directly.

srp_daemon -o -e -i mthca0 -p 2

Verifying Available Storage Logical Units

Different initiator systems have different mechanisms for displaying the set of available logical units. There may be separate commands to display the available SCSI targets and to display the available storage logical units. For example, on some Linux varieties, you can cat /proc/scsi/scsi. You can also install the optional lsscsi command. The following example is from Red Hat.

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST380013AS       Rev: 3.18
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: SUN      Model: COMSTAR          Rev: 1.0
  Type:   Direct-Access                    ANSI SCSI revision: 05
# lsscsi
[0:0:0:0]    disk    ATA      ST380013AS       3.18  /dev/sda
[2:0:0:0]    disk    SUN      COMSTAR          1.0   /dev/sdc

The first entry above is a locally attached disk and the second entry represents one particular COMSTAR SRP target.

To display available disks on Linux, use fdisk -l. The disk /dev/sda corresponds to the locally attached SCSI disk identified above, and contains two partitions. The disks /dev/sdc and /dev/sdd  are remote logical units that correspond to a SCSI host called Host 2. The disk /dev/sdc and /dev/sdd in this example do not contain a valid partition table because neither logical unit has yet been formatted.

# fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        9729    78043770   8e  Linux LVM

Disk /dev/sdc: 53.6 GB, 53687025664 bytes
64 heads, 32 sectors/track, 51199 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 53.6 GB, 53687025664 bytes
64 heads, 32 sectors/track, 51199 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdd doesn't contain a valid partition table

SRP Connection Parameters Example - Linux Initiator

When creating an SRP connection, the following parameters must be specified:

  • IB connection parameters - To identify the endpoints of the desired IB channel
  • SRP parameters - To further specify the desired connection

The following table describes each required item as well as the short keyword that OFED uses for each one.

IB Connection Parameters

OFED keyword Item Name Description
directory name Initiator HCA and port The initiator IB endpoint, specified as HCA and port
dgid Target port IB subnet address (destination GID) of the HCA physical port
pkey Partition key IB partition identifier for this connection

Desired Service Parameters

OFED keyword Item Name Description Set To
ini-ext Initiator extension Set arbitrarily by initiator administrator arbitrary
ioc_guid Target I/O controller GUID GUID of target SRP-capable I/O Controller tgt HCA GUID
id_ext SCSI target ID ID of desired SCSI target tgt HCA GUID
service_id Target service ID IB service ID of target SRP IB service tgt HCA GUID

Where to Go Next

Labels

task task Delete
smallsiteadmin smallsiteadmin Delete
configuring configuring Delete
storage storage Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact