The Open-iSCSI project is a high performance, transport independent, multi-platform implementation of RFC3720 (The iSCSI specification). It consists of a minimal set of kernel modules combined with powerful userspace utilities. Once installed on a system, a daemon process iscsid can be controlled using the iscsiadm management utility. Open-iSCSI requires a Linux kernel of 2.6.16 or greater.
CentOS 5/6: Open-iSCSI can be installed using yum:
# sudo yum install iscsi-initiator-utils
Debian/Ubuntu: Open-iSCSI can be installed using apt:
# sudo apt-get install open-iscsi
Configure iSCSI Drivers and Utilities
Linux
Open /etc/iscsi/iscsid.conf with the text editor of your choice:
# sudo vi /etc/iscsi/iscsid.conf
Make the following edits to the configuration file. Set the values of username and password to the CHAP username/password provided to you when you purchased the block storage.
node.startup = automatic
node.session.auth.authmethod = CHAP
node.session.auth.username =
node.session.auth.password =
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username =
discovery.sendtargets.auth.password =
Next, you must run the discovery command against the discovery IP for your block storage device. After the discovery command is run, you must restart the iscsi service.
CentOS 5/6:
# sudo iscsiadm -m discovery -t sendtargets -p <Discovery IP Address>
# sudo service iscsi restart
# sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.106
192.168.1.106:3260,257 iqn.2005-10.org.freenas.ctl:vol1
Debian/Ubuntu:
# sudo service open-iscsi start
# sudo iscsiadm -m discovery -t sendtargets -p <Discovery IP Address>
# sudo service open-iscsi restart
Setup Storage Volumes
Linux
After successfully discovering your block storage disk, the volume should show as available to the fdisk command:
# fdisk -l
....output truncated....
Disk /dev/sdb: 300.0 GB, 300000002048 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
Or
# iscsiadm -m session
tcp: [1] 192.168.1.106:3260,257 iqn.2005-10.org.freenas.ctl:vol1 (non-flash)
At this point, you can create filesystems on the disk or configure it as a raw block device as desired:
# parted /dev/sdb
GNU Parted 2.2
Using /dev/sda
Welcome to GNU Parted> ! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart extended 0% 100%
(parted) print
Model: SolidFir SSD SAN (scsi)
Disk /dev/sda: 300GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 300GB 300GB extended
(parted) quit
Create the format the file system:
# mkfs -t ext3 -L myBlockStorage /dev/sdb1
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=myBlockStorage
.... output truncated ....
Create a mount point and mount the device
# mkdir /mnt/my_block_storage_volume
# mount /dev/sdb1 /mnt/my_block_storage_volume/
Get mount information:
# blkid
/dev/mapper/centos-root: UUID="198c20b5-d690-404b-8244-6e4ef8e66618" TYPE="xfs"
/dev/sda2: UUID="5d57ye-2YQD-vpoo-YV4w-VTUm-gtGA-kGTNzr" TYPE="LVM2_member"
/dev/sda1: UUID="bdf1787d-e27b-4cd0-bd47-0de6865c6858" TYPE="xfs"
/dev/mapper/centos-swap: UUID="33d91d50-a9f8-4d1e-94f4-63ab19dc34d1" TYPE="swap"
/dev/sdb1: LABEL="storage" UUID="362c5edb-6c68-4ec9-8745-576cba65133e" SEC_TYPE="ext2" TYPE="ext3" PARTLABEL="extended" PARTUUID="8689df9d-b059-4812-a5d4-e97fcb3b80c4"
Edit fstab to mount on boot:
# nano /etc/fstab
#/dev/sdb1 /mnt/storage ext3 defaults 0 0
Reboot system to ensure that the device is mounted on boot. If you receive the following error:
Edit fstab to include the following:
# /dev/sdb1 /mnt/storage ext3 _netdev 0 0
This works as well…
# /dev/sdb1 /mnt/storage ext3 acl,user,nofail 0 0
Notes:
- Use the nofail option in /etc/fstab
- Make sure the dump field is set to 0 (zero) else the system will stop booting and prompt for the maintenance mode as the device is not available at this time in the boot process.
The dump option is the fifth entry option in /etc/fstab, see man 5 fstab for more information.
- Make sure iscsi is enabled at boot – (CentOS 7 – systemctl enable iscsi.service).
Source: https://www.novell.com/support/kb/doc.php?id=7004427
NOTE: SAN disks can be slow to format due to the large number of small IOPs required by the formatting utility. To speed the formatting of your disk, you may wish to pass the ‘-E lazy_itable_init’ option to mkfs.
In order to automatically connect to your block storage disk on system startup, make the following changes to the /etc/iscsi/iscsi.conf file:
# nano /etc/iscsi/iscsid.conf
# To manually startup the session set to "manual". The default is automatic.
node.startup = automatic