User Tools

Site Tools


using_the_linux_iscsi_software_initiator

Using the Linux iSCSI software initiator

Requirements

You'll need:

  • An iSCSI-enabled kernel (or kernel modules). This is standard in kernels >= 2.6.18.
  • Userland tools from the "open-iscsi" package. Probably not installed by default, so install with your favorite package manager (or tarball, if that's how you roll).

Overview

There are two halves to the iSCSI software initiator:

  1. Kernel parts, which do "read block", "write block"
  2. Userland parts: administration, login, logout, etc.

Basically, the process of mounting a LUN works as follows:

  1. In userland, "discover" the target & lun, save info to a config file.
  2. In userland, "login" to target, which makes the kernel create a /dev/sd? device for the LUN(s)
  3. Mess with device as normal.

Procedure

  • Install package "open-iscsi" (userland tools) from your distributions package manager. In Ubuntu:
$ sudo apt-get install open-iscsi
  • Check/set iSCSI initiator name. This may be in '/etc/initiatorname.iscsi' or '/etc/iscsi/initiatorname.iscsi'
$ sudo YourEditorOfChoice /etc/iscsi/initiatorname.iscsi
  • Load the modules & start the iscsid service. Your package manager may have done this for you, but make sure.

In RedHat:

$ sudo service open-iscsi start

Elsewhere:

$ sudo /etc/init.d/open-iscsi start

This makes dmesg say:

Loading iSCSI transport class v2.0-724.
iscsi: registered transport (tcp)
iscsi: registered transport (iser)
  • Associate given initiator with an iGroup and LUN on the filer.
  • Perform iSCSI discovery to populate your config files:
$ iscsiadm -m discovery -t sendtargets -p 10.60.118.14:3260
10.60.118.14:3260,1001 iqn.1992-08.com.netapp:sn.101166881
  • "Log in" to the filer to attach the LUN:
$ iscsiadm -m node -T iqn.1992-08.com.netapp:sn.101166881 -p 10.60.118.14:3260 -l

This makes dmesg say:

scsi4 : iSCSI Initiator over TCP/IP
scsi 4:0:0:0: Direct-Access     NETAPP   LUN              0.2  PQ: 0 ANSI: 4
SCSI device sdb: 16777216 512-byte hdwr sectors (8590 MB)
sdb: Write Protect is off
sdb: Mode Sense: bd 00 00 08
SCSI device sdb: write cache: disabled, read cache: enabled, doesn't support DPO or FUA
SCSI device sdb: 16777216 512-byte hdwr sectors (8590 MB)
sdb: Write Protect is off
sdb: Mode Sense: bd 00 00 08
SCSI device sdb: write cache: disabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1 sdb2
sd 4:0:0:0: Attached scsi disk sdb
sd 4:0:0:0: Attached scsi generic sg1 type 0
  • The LUN is now treated like a local SCSI drive, so we can do things like:
$ fdisk /dev/sdb
$ mount /dev/sdb2 /mnt/mylun
  • Optional - make the iSCSI login occur automatically at boot:
    • First, make our LUN be attached whenever the iscsid service is started:
      • Edit /etc/iscsi/nodes/<Target_IQN>/<Target_IP_and_port>
      • Change "node.startup = manual" to "node.startup = automatic"
    • Second, make the iscsi service load at boot. For Ubuntu, run "services-admin". For RedHat, do:
$ chkconfig --level <levels> open-iscsi on
using_the_linux_iscsi_software_initiator.txt · Last modified: 2010/12/03 23:31 by tkbletsc