First install the Open-iSCSI initiator utils:
# yum -y install iscsi-initiator-utils
Edit /etc/iscsi/iscsid.conf and set your username and password, only if you use CHAP authentication to your iSCSI service.
Most likely, you will have to allow access to the iSCSI volume on the array, so log into your NAS admin interface and authorize your Linux host either by username, IP, or initiator name. You can find your Linux host's initiator name in:
/etc/iscsi/initiatorname.iscsi
Set iscsi to start on boot, and start it now:
# chkconfig iscsid on ; service iscsid start
# chkconfig iscsi on ; service iscsi start
Use iscsiadm to discover your iSCSI targets, replacing the IP with your own portal IP:
# iscsiadm -m discovery -t st -p 192.168.1.123
Once discovery tells you the target names, log into the one you want to work with:
# iscsiadm -m node -T iqn.2123-01.com:blah:blah:blah \
-p 192.168.1.123 -l
If you want to automatically login at boot:
# iscsiadm -m node -T iqn.2123-01.com:blah:blah:blah \
-p 192.168.1.123 -o update -n node.startup -v automatic
Now the iSCSI volume should be detected by your system as a block device. You can check what device it was detected as by tailing your log.
# tail -n 50 /var/log/messages
Let's assume that the block device was detected as /dev/sdd. We will have to partition and format our filesystem at this point. You can either use a straight Linux partition, or you can use Linux Volume Management. I prefer LVM because it allows for more flexibility, including easy volume growth. You must use LVM if your device will be over 2TB, which is a limitation of regular Linux partitions.
For LVM, we will Initialize the block device as a physical volume, create a volume group, create a logical volume and format it as ext3. Note that with LVM, you do not use fdisk or create the sdd1 partition:
# pvcreate /dev/sdd
# vgcreate SANVolGroup01 /dev/sdd
# lvcreate --extents 100%VG --name SANLogVol01 SANVolGroup01
# mkfs -t ext3 -m 1 -L mysan1 -O \
dir_index,filetype,has_journal,sparse_super \
/dev/SANVolGroup01/SANLogVol01
# mount /dev/SANVolGroup01/SANLogVol01 /mnt/san01
For a simple Linux partition, instead of LVM, we will create a new partition on the block device and then format it as ext3:
# fdisk /dev/sdd
# mkfs -t ext3 -m 1 -L mysan1 -O \
dir_index,filetype,has_journal,sparse_super \
/dev/sdd1
# mount /dev/sdd1 /mnt/san01
iSCSI fstab entries require the "_netdev" option, so there is not an attempt to mount until networking is enabled. Mounting by label is also a good option, as devices may be detected at boot in different orders.