Internet SCSI (iSCSI) is a network protocol that allows you to use of the SCSI protocol over TCP/IP networks. It’s good alternative to Fibre Channel-based SANs. You can easily manage, mount and format iSCSI volumes under Linux.
Definitions: the iSCSI Target is the server that hosts and exports volumes to the clients. The iSCSI Initiator is the client that use the configured volumes.
On the server you need to install this package, start the related service and ensure that it starts on boot:
# yum -y install scsi-target-utils
# service tgtd start
# chkconfig tgtd on
On the client side you need to install this package, start the related service and ensure that it starts on boot:
# yum -y install iscsi-initiator-utils
# service iscsid start
# chkconfig iscsid on
Now configure your LUNs on the target:
# vim /etc/tgt/targets.conf
This is a basic configuration for target:
# use backing-store to export a specific volume…
# …or use direct-store to export the entire device
# direct-store /dev/sdb
Don’t forget to restart the tgtd service after a configuration update:
# service tgtd restart
Now it’s time to check if your LUNs are being exported correctly. The next command will show two LUNs for each target. The first one (LUN 0) is the controller, the second one (LUN 1) is your volume. Run this command on the target:
# tgtadm –lld iscsi –op show –mode target
Remember to enable iSCSI ports on iptables in order to accept connection on port 3260 for both TCP and UDP protocols!
Ok, your target is now fully configured. You can logon on your client and start to use the remote storage. On the client run these commands to show the exported volumes and login to them:
iscsiadm -m discovery -t sendtargets -p target_ipaddress
iscsiadm -m node -T target_name_iqn -p target_ipaddress –login
Now restart the iscsid service, use fdisk to show the mounted device on /dev and create partitions on it.
If you need to detach from the target you have to logout from it:
iscsiadm -m node -T target_name_iqn -p target_ipaddress –logout