From Livedoc - The Documentation Repository
Revision as of 18:48, 7 June 2008 by Brandon Vargo (talk | contribs) (Initial edit)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

iSCSI is the protocol that allows SCSI commands to be sent over the network. In the case of the CSL, servers use the open-iscsi software to connect to the storage arrays, which actually store the data. This data is sent over the SAN, not the production network.


Initiator - the iscsi client that access the data Target - the iscsi server that hosts the data Node - an initiator or target Initiator name - a unique identifier for an iSCSI node (see initiatorname.iscsi configuration below) CHAP (Challenge-handshake authentication protocol) - used for authenticating iSCSI; as this is insecure, all iSCSI data should travel over a separate network, in our case, the [SAN]. LUN (Logical Unit Number) - the number assigned to a logical unit, in the case of iSCSI, the storage "partitions"

Configuration of open-iscsi


This file stores the nodes' initiator name. With iSCSI, every node must be given a unique identifying initiator name. This is of the form iqn.yyyy-mm.{reversed domain name}:{user defined}. iqn stands for iSCSI qualified name, and yyyy-mm is the date of the first full month for which the domain name was registered. For the CSL, our initiator names are of the form, for initiators, and, for storage servers.


This file stores the server's iSCSI global configuration. An example is given below.

node.active_cnx = 1
# attach to storage automatically when started?
node.startup = automatic
# the CHAP username
node.session.auth.username = [A CHAP username]
# the CHAP password
node.session.auth.password = [A CHAP password]
# the timeout values for an iSCSI session
node.session.timeo.replacement_timeout = 120
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
# other configuration
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
# network configuration
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.session.iscsi.DefaultTime2Wait = 0
node.session.iscsi.DefaultTime2Retain = 0
node.session.iscsi.MaxConnections = 0
node.conn[0].iscsi.HeaderDigest = None
node.conn[0].iscsi.DataDigest = None
node.conn[0].iscsi.MaxRecvDataSegmentLength = 65536
# if we used CHAP for discovery
#discovery.sendtargets.auth.authmethod = CHAP
#discovery.sendtargets.auth.username = [A CHAP username]
#discovery.sendtargets.auth.password = [A CHAP password]


iscsiadm is the main open-iscsi configuration tool.

Discovering storage resources: iscsiadm -m discovery -t sendtargets -p IP address of storage gateway In our case, the storage gateway is one of the two storage IP addresses on each storage array. Logging into the storage array: iscsiadm -m node -T storage initiator -p iSCSCI gateay -l

These commands only need to be done once. After they have been run, configuration files are created under /etc/iscsi/ based off of the global configuration file. If node.startup is set to automatic, then the iSCSI LUNs will be reconnected the next time open-iscsi starts.