Configuring iSCSI Share on Linux

iSCSI Directory Introduction

  • /backstores/block is the location where local shared devices are stored.
  • /iscsi/<target>/tpg1/luns stores the shared resource devices that have been added to the target.
  • /iscsi/<target>/tpg1/acls is used to store the names of the clients that have access to the shared storage resources.
  • /iscsi/<target>/tpg1/portals is used to specify the listening IP address and port that the client can access.

iSCSI Target

Install targetcli package.

mkdir /var/lib/iscsi_disks

yum -y install targetcli
systemctl enable target --now
firewall-cmd --add-service=iscsi-target --permanent
firewall-cmd --reload

targetcli
sudo mkdir /var/lib/iscsi_disks

sudo dnf -y install targetcli
sudo systemctl enable target --now
sudo firewall-cmd --add-service=iscsi-target --permanent
sudo firewall-cmd --reload

sudo targetcli

Create a fileio disk image.

/> /backstores/fileio create disk01 /var/lib/iscsi_disks/disk01.img 20G

Create Target.

/> /iscsi create

Set LUN.

/> /iscsi/iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61/tpg1/luns create /backstores/fileio/disk01

Add the Initiator IQN to ACLs.

/> /iscsi/iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61/tpg1/acls create iqn.1988-12.com.oracle:76176a2a9c9
/> /iscsi/iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61/tpg1/acls create iqn.1988-12.com.oracle:4a97f56359c

The Initiator IQN in /etc/iscsi/initiatorname.iscsi file.

(Option) Enable authentication.

/> /iscsi/iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61/tpg1 set attribute authentication=1
/> /iscsi/iqn.2003-01.org.linux-iscsi.fedora.x8664:sn.bc159853bc27/tpg1/acls/iqn.1994-05.com.redhat:f59e329faae set auth userid=admin
/> /iscsi/iqn.2003-01.org.linux-iscsi.fedora.x8664:sn.bc159853bc27/tpg1/acls/iqn.1994-05.com.redhat:f59e329faae set auth password=password

Save and exit.

/> saveconfig
/> exit

Restart target service.

systemctl restart target

iSCSI Initiator

Install iscsi-initiator-utils package.

yum -y install iscsi-initiator-utils
systemctl enable --now iscsid.service

Set IQN.

sed -i 's/#//' /etc/iscsi/initiatorname.iscsi

(Option) Set authentication.

cat >> /etc/iscsi/iscsid.conf <<EOF
# Added by sakura
node.session.auth.authmethod = CHAP
node.session.auth.username = admin
node.session.auth.password = password
EOF

Discovery target.

iscsiadm -m discovery -t st -p 192.168.184.129:3260
iscsiadm -m node -o show

Login to target.

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61 -p 192.168.184.129:3260 --login

Show attached device.

~]# lsscsi -s
[0:0:0:0] disk VMware Virtual disk 2.0 /dev/sda 64.4GB
[3:0:0:0] cd/dvd NECVMWar VMware SATA CD00 1.00 /dev/sr0 12.1GB
[33:0:0:0] disk LIO-ORG disk01 4.0 /dev/sdb 21.4GB

~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 8388608 byte

Logout from target.

iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.rhel-7.x8664:sn.f732029a5d61 -u

rm -rf /var/lib/iscsi/nodes/*
rm -rf /var/lib/iscsi/send_targets/*

Troubleshooting

Issue: ISCSI_ERR_TCP_CONN_CLOSE

Mar  5 10:19:27 rac2 iscsid: iscsid: Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (3)
Mar 5 10:19:27 rac2 iscsid: iscsid: re-opening session 1 (reopen_cnt 0)
Mar 5 10:19:27 rac2 iscsid: iscsid: disconnecting conn 0x559d5f864e90, fd 6
Mar 5 10:19:29 rac2 iscsid: iscsid: Poll was woken by an alarm
Mar 5 10:19:29 rac2 iscsid: iscsid: re-opening session 1 (reopen_cnt 0)
Mar 5 10:19:29 rac2 iscsid: iscsid: connecting to 192.168.184.10:3260
Mar 5 10:19:29 rac2 iscsid: iscsid: connected local port 61474 to 192.168.184.10:3260
Mar 5 10:19:29 rac2 iscsid: iscsid: login response status 0000
Mar 5 10:19:29 rac2 iscsid: iscsid: deleting a scheduled/waiting thread!
Mar 5 10:19:29 rac2 iscsid: iscsid: connection1:0 is operational after recovery (1 attempts)
Mar 5 10:19:31 rac2 kernel: connection1:0: detected conn error (1020)

Initiator IQN conflict.


Apr 24 00:24:27 pacemaker02 iscsid: iscsid: conn 0 login rejected: initiator failed authorization with target
Apr 24 00:24:25 pacemaker02 iscsid: iscsid: Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (1)
Apr 24 00:24:25 pacemaker02 iscsid: iscsid: conn 0 login rejected: initiator failed authorization with target

After changing the IQN, it is impossible to connect to the target.

~]# iscsiadm -m session -P 3
iSCSI Transport Class version 2.0-870
version 6.2.0.874-17
Target: iqn.2003-01.org.linux-iscsi.fedora.x8664:sn.668e529b388c (non-flash)
Current Portal: 192.168.184.10:3260,1
Persistent Portal: 192.168.184.10:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: iqn.2003-01.org.linux-iscsi.fedora.x8664:sn.668e529b388c:xsk
Iface IPaddress: <empty>
Iface HWaddress: <empty>
Iface Netdev: <empty>
SID: 1
iSCSI Connection State: TRANSPORT WAIT
iSCSI Session State: FREE
Internal iscsid Session State: REOPEN
*********
Timeouts:
*********
Recovery Timeout: 120
Target Reset Timeout: 30
LUN Reset Timeout: 30
Abort Timeout: 15
*****
CHAP:
*****
username: <empty>
password: ********
username_in: <empty>
password_in: ********
************************
Negotiated iSCSI params:
************************
HeaderDigest: None
DataDigest: None
MaxRecvDataSegmentLength: 262144
MaxXmitDataSegmentLength: 262144
FirstBurstLength: 65536
MaxBurstLength: 262144
ImmediateData: Yes
InitialR2T: Yes
MaxOutstandingR2T: 1
************************
Attached SCSI devices:
************************
Host Number: 34 State: running

The Iface Initiatorname not update, reboot iSCSI initiator server.