Tuesday, May 17, 2011

Configuring iSCSI initiator on rhel 5

SCSI uses a client-server architecture. A "client" (ie: your system) is an initiator, it initiates requests. A "server" (ie: your storage device) is a target, it has something you want and answers requests from the initiator(s). Initiators come in two varieties: software and hardware. A software initiator is just a driver that handles all requests and pairs the network interfaces driver and the SCSI drivers together to make it all work. Using a software initiator any system with an ethernet card can act as an iSCSI initiator. A hardware initiator is an iSCSI HBA, which is basically just an ethernet card with a SCSI ASIC on-board to offload all the work from the system CPU.

First, install the iscsi-initiator-utils package using:

# yum install iscsi-initiator-utils

Next, start the iscsid service and enable it to start when the system boots:

# service iscsid start
# chkconfig iscsid on

Then obtain a listing of available targets from a given host (please note that ipaddress listed below must be replaced with the resolvable hostname or ip address of the system providing the port if different than default):

# iscsiadm -m discovery -t sendtargets -p ipaddress
xxx.xxx.xxx.xxx:3260,1 iqn.2010-03.com.example:tgtd

Here the "iqn.2010-03.com.example:tgtd" is the target_iqn_name.

You can view the information of your target by:

# iscsiadm -m node -T -p ipaddress

Finally, use the following command to login to the available target (again, replace target_iqn_name with one from the output of the previous command and replace ipaddress below with that of the target system):

# iscsiadm -m node -T target_iqn_name -p ipaddress -l
Logging in to [iface: default, target: iqn.2010-03.com.example:tgtd, portal: xxx.xxx.xxx.xxx,3260]
Login to [iface: default, target: iqn.2010-03.com.example:tgtd, portal: xxx.xxx.xxx.xxx,3260]: successful

Note, you can log into all the LUNs exported on the target by running:

# iscsiadm -m discovery -t st -l

This will enable the target(or targets if you logged into all) to be accessed upon reboots and it stores it in a node database found in /var/lib/iscsi that is more thoroughly described in the /usr/share/doc/iscsi-initiator-utils-VERSION/README file.

If you want to disable the target, you need log out by:

# iscsiadm -m node -T target_iqn_name -p ipaddress -u

Note, you can log out of all targets by running:

# iscsiadm -m node -U all

For a more verbose listing of possible options for the iscsiadm command in Red Hat Enterprise Linux 5 refer to the manual page using:

# man iscsiadm

For a good overview of iSCSI in Red Hat Enterprise Linux 5 refer to the documentation provided in /usr/share/doc/iscsi-initiator-utils-VERSION/README.


1 comment:

  1. It was quite helpful. Thanks and keep up the good work.