Wednesday, June 27, 2012

How To Install and Manage ISCSI volume

Internet SCSI (iSCSI) is a network protocol s that allows you to use of the SCSI protocol over TCP/IP networks. It is good alternative to Fibre Channel-based SANs. You can easily manage, mount and format iSCSI Volume under Linux. It allows access to SAN storage over Ethernet.

Open-iSCSI Project
Open ISCSI project is a high-performance, transport independent, multi-platform implementation of iSCSI. Open-iSCSI is partitioned into user and kernel parts.

Install Required Package

iscsi-initiator-utils RPM package - The iscsi package provides the server daemon for the iSCSI protocol, as well as the utility programs used to manage it. iSCSI is a protocol for distributed disk access using SCSI commands sent over Internet Protocol networks. This package is available under Redhat Enterprise Linux / CentOS / Fedora Linux and can be installed using yum command:
# yum install iscsi-initiator-utils

A note about Debian / Ubuntu Linux
If you are using Debian / Ubuntu Linux install open-iscsi package, enter:

$ sudo apt-get install open-iscsi

iSCSI Configuration

There are three steps needed to set up a system to use iSCSI storage:
  1. iSCSI startup using the init script or manual startup. You need to edit and configure iSCSI via /etc/iscsi/iscsid.conf file
  2. Discover targets.
  3. Automate target logins for future system reboots.
  4. You also need to obtain iSCSI username, password and storage server IP address (target host)

Configure iSCSI

Open /etc/iscsi/iscsid.conf with vi text editor:
# vi /etc/iscsi/iscsid.conf

 Setup username and password:
 node.session.auth.username = My_ISCSI_USR_NAME
 node.session.auth.password = MyPassword
 discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
 discovery.sendtargets.auth.password = MyPassword

Where,

  • node.session.* is used to set a CHAP username and password for initiator authentication by the target(s).
  • discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s)

Now start the iscsi service:

# /etc/init.d/iscsi start

Discover targets

Now use iscsiadm command, which is a command-line tool allowing discovery and login to iSCSI targets, as well as access and management of the open-iscsi database. If your storage server IP address is 192.168.8.71, enter:

# iscsiadm -m discovery -t sendtargets -p  192.168.8.71
# /etc/init.d/iscsi restart

Now there should be a block device under /dev directory. To obtain new device name, type:
# fdisk -l

 or

# tail -f /var/log/messages

 Output:

June 27 12:42:20 ora9is2 kernel:   Vendor: EQLOGIC   Model: 100E-00           Rev: 3.2
June 27 12:42:20 ora9is2 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05
June 27 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)
June 27 12:42:20 ora9is2 kernel: sdd: Write Protect is off
June 27 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
June 27 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)
June 27 12:42:20 ora9is2 kernel: sdd: Write Protect is off
June 27 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
June 27 12:42:20 ora9is2 kernel:  sdd: unknown partition table
June 27 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi disk sdd
June 27 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi generic sg3 type 0
June 27 12:42:20 ora9is2 kernel: rtc: lost some interrupts at 2048Hz.
June 27 12:42:20 ora9is2 iscsid: connection0:0 is operational now
/dev/sdd is my new block device.

Format and Mount iSCSI Volume

You can now partition and create a filesystem on the target using usual fdisk and mkfs.ext3 commands:
# fdisk /dev/sdd
 # mke2fs -j -m 0 -O dir_index /dev/sdd1

 OR

# mkfs.ext3 /dev/sdd1

Tip: If your volume is large size like 1TB, run mkfs.ext3 in background using nohup:

# nohup mkfs.ext3 /dev/sdd1 &

Mount new partition:
# mkdir /mnt/iscsi
 # mount /dev/sdd1 /mnt/iscsi

Mount iSCSI drive automatically at boot time

First make sure iscsi service turned on at boot time:
# chkconfig iscsi on

 Open /etc/fstab file and append config directive:
/dev/sdd1  /mnt/iscsi   ext3   _netdev   0           0

 Save and close the file.

Further readings:
Official Open iSCSI documentation

Note that this document comes without warranty of any kind. But every effort has been made to provide the information as accurate as possible. I welcome emails from any readers with comments, suggestions, and corrections at webmaster_at admin@linuxhowto.in

                                      Copyright © 2012 LINUXHOWTO.IN

No comments:

Post a Comment