Set up an iSCSI Target and Initiator and configure multipath

We used two CentOS 7 VMs to configure the Set up an iSCSI Target and Initiator and configure multipath settings.

network-vm1
Network1 : 10.1.1.11
Network2 : 10.1.2.20

network-vm2
Network1 : 10.1.1.12
Network2 : 10.1.2.21

Configure iSCSI Target and initiator and multipath

iSCSI Target and Initiator

iSCSI Target Creation

An iSCSI target can be a dedicated physical device in a network, or it can be an iSCSI software-configured logical device on a networked storage server. The target is the end point in SCSI bus communication. Storage on the target, accessed by an initiator, is defined by LUNs.

Login network-vm2 server and install scsi-target-utils.

Install RPEL release repo.

[root@network-vm1 ~]# yum install epel-release -y
[root@network-vm1 ~]# yum install scsi-target-utils -y

Make sure you enabled the port 3260 in firewall.

example in iptables
[root@network-vm1 ~]# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT

Start and enable the target service.

[root@network-vm1 ~]# service tgtd start
[root@network-vm1 ~]# systemctl enable tgtd

Attach storage for the LUNs and create partition.

[root@network-vm1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xdd5037ae.

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-104857599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
Using default value 104857599
Partition 1 type Linux and size 50 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Create the target in /etc/tgt/targets.conf file.

[root@network-vm1 ~]# vi /etc/tgt/targets.conf

default-driver iscsi
<target iqn.2015-06.com.example.test:target1>
backing-store /dev/sdb1
</target>

Restart the target service.

[root@network-vm1 ~]# service tgtd restart
Redirecting to /bin/systemctl restart tgtd.service

Verify your configurations.

[root@network-vm1 ~]# tgt-admin --show
Target 1: iqn.2017-03.com.apporbit.test:target1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 53686 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/sdb1
Backing store flags:
Account information:
ACL information:
ALL

Install iSCSI Initiator and configure it

Login your network-vm2 server and Install iscsi-initiator-utils

[root@network-vm2 ~]# yum install iscsi-initiator-utils -y

Discover the target. Use the target’s IP address.

[root@network-vm2 ~]# iscsiadm -m discovery -t sendtargets -p 10.1.1.11
10.1.1.11:3260,1 iqn.2017-03.com.gopal.test:target1

[root@network-vm2 ~]# iscsiadm -m discovery -t sendtargets -p 10.1.2.20
10.1.2.20:3260,1 iqn.2017-03.com.gopal.test:target1

Connect to the target.

[root@network-vm2 ~]# iscsiadm -m node -T iqn.2017-03.com.gopal.test:target1 --login
Logging in to [iface: default, target: iqn.2017-03.com.gopal.test:target1, portal: 10.1.1.11,3260] (multiple)
Login to [iface: default, target: iqn.2017-03.com.gopal.test:target1, portal: 10.1.1.11,3260] successful.
[root@network-vm2 ~]#

Login to all the targets

[root@network-vm2 ~]# iscsiadm -m node -l

Check the list of drives.

[root@network-vm2 ~]# fdisk -l
Disk /dev/sdb: 53.7 GB, 53686042624 bytes, 104855552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

If you want to create a file system and mount.

[root@network-vm2 ~]# mkfs.ext4 /dev/sdb

[root@network-vm2 ~]# mount /dev/sdb /opt/iscsi-drive

[root@network-vm2 ~]# blkid /dev/sdb
/dev/sdb: UUID="3b7e58de-1342-4fbb-98fc-9e5d5888e770" TYPE="ext4"
Configuring Multipath for ISCSI storage LUNS in centos 7

I am using network-vm2 server to configure multipath.

Install multipath packages and start it.

[root@network-vm2 ~]# yum install device-mapper-multipath -y

[root@network-vm2 ~]# systemctl start multipathd

Verify the iscsi targets

[root@network-vm2 ~]# iscsiadm -m discovery -t sendtargets -p 10.1.1.11
10.1.1.11:3260,1 iqn.2017-03.com.gopal.test:target1

[root@network-vm2 ~]# iscsiadm -m discovery -t sendtargets -p 10.1.2.20
10.1.2.20:3260,1 iqn.2017-03.com.gopal.test:target1

Login to all the targets

[root@network-vm2 ~]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2017-03.com.gopal.test:target1, portal: 10.1.2.20,3260] (multiple)
Login to [iface: default, target: iqn.2017-03.com.gopal.test:target1, portal: 10.1.2.20,3260] successful.

Configure basic Multipath

[root@network-vm2 ~]# mpathconf --enable --with_multipathd y

add entries

[root@network-vm2 ~]# vi /etc/multipath.conf

defaults {
polling_interval 10
path_selector "round-robin 0"
path_grouping_policy multibus
path_checker readsector0
rr_min_io 100
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_names yes
}
[root@network-vm2 ~]# multipath -ll
mpatha (360000000000000000e00000000010001) dm-2 IET ,VIRTUAL-DISK
size=50G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 3:0:0:1 sdb 8:16 active ready running
`- 4:0:0:1 sdc 8:32 active ready running

Adding Target partition to multipath

Adding Multipath Alias for the Iscsi LUNs in /etc/multipath.conf

multipaths {
multipath {
wwid 360000000000000000e00000000010001
alias LUN0
}
}

Restart multipathd service

[root@network-vm2 ~]# systemctl restart multipathd
[root@network-vm2 ~]# multipath -ll
LUN0 (360000000000000000e00000000010001) dm-2 IET ,VIRTUAL-DISK
size=50G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 3:0:0:1 sdb 8:16 active ready running
`- 4:0:0:1 sdc 8:32 active ready running

check the list of drives

Disk /dev/mapper/LUN0: 53.7 GB, 53686042624 bytes, 104855552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes