November 19

Linux: ISCSI initiator initial setup (This was specifically for Oracle Linux 7 Server to PureX20)

1. Install needed software
yum install iscsi-initiator-utils
yum install device-mapper-multipath

2. Get IQN of the host initiator:
cat /etc/iscsi/initiatorname.iscsi

3. Add the iscsi initiater name into your tagets device configuration to accept your connection
An example of IQN returned: 
InitiatorName=iqn.1994-05.com.redhat:bffc5f96a7fb 

4. Configure your NIC(S) on the same iscsi subnet of your target device. I this is a mutli nic configuration on the same subnet do the following:

Create a bond.  In our case bond2:

cd /etc/sysconfig/network-scripts/
nano ifcfg-bond2

DEVICE=bond2
IPADDR=10.1.200.51
NETMASK=255.255.255.0
GATEWAY=10.1.200.1
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
BONDING_OPTS="mode=1 miimon=250 use_carrier=1 updelay=500 downdelay=500 primary_reselect=2"
MTU=9000

nano ifcfg-bond2_p1p1
DEVICE=p1p1
TYPE=Ehternet
NAME=bond2_p1p1
ONBOOT=yes
MASTER=bond2
SLAVE=yes
NM_CONTROLLED=no
MTU=9000


nano ifcfg-bond2_p5p1
DEVICE=p5p1
TYPE=Ehternet
NAME=bond2_p5p1
ONBOOT=yes
MASTER=bond2
SLAVE=yes
NM_CONTROLLED=no
MTU=9000

5. Remove uneeded device configurations
mv ifcfg-p1p1 /root
mv ifcfg-p5p1 /root

6. reboot

7. Setup the multipath base config
mpathconf --enable --with_multipathd y
mpathconf --enable


8. Modify multipath.conf
--------------------------------------------------------------------------
/etc/multipath.conf
# This is a basic configuration file with some examples, for device mapper
# multipath.
#
# For a complete list of the default configuration values, run either
# multipath -t
# or
# multipathd show config
#
# For a list of configuration options with descriptions, see the multipath.conf
# man page

## By default, devices with vendor = "IBM" and product = "S/390.*" are
## blacklisted. To enable mulitpathing on these devies, uncomment the
## following lines.
#blacklist_exceptions {
#	device {
#		vendor	"IBM"
#		product	"S/390.*"
#	}
#}

## Use user friendly names, instead of using WWIDs as names.
defaults {
	user_friendly_names yes
	find_multipaths yes
	polling_interval      10
}
##
## Here is an example of how to configure some standard options.
##
#
#defaults {
#	polling_interval 	10
#	path_selector		"round-robin 0"
#	path_grouping_policy	multibus
#	uid_attribute		ID_SERIAL
#	prio			alua
#	path_checker		readsector0
#	rr_min_io		100
#	max_fds			8192
#	rr_weight		priorities
#	failback		immediate
#	no_path_retry		fail
#	user_friendly_names	yes
#}
##
## The wwid line in the following blacklist section is shown as an example
## of how to blacklist devices by wwid.  The 2 devnode lines are the
## compiled in default blacklist. If you want to blacklist entire types
## of devices, such as all scsi devices, you should use a devnode line.
## However, if you want to blacklist specific devices, you should use
## a wwid line.  Since there is no guarantee that a specific device will
## not change names on reboot (from /dev/sda to /dev/sdb for example)
## devnode lines are not recommended for blacklisting specific devices.
##
blacklist {
	wwid 26353900f02796769
	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|nbd)[0-9]*"
	devnode "^hd[a-z][0-9]*"
	devnode "^etherd"
	devnode "^nvme.*"
	devnode "^xvd[a-z]*"  # here
	devnode "^zram[0-9]*" # here
}
#multipaths {
#	multipath {
#		wwid			3600508b4000156d700012000000b0000
#		alias			yellow
#		path_grouping_policy	multibus
#		path_selector		"round-robin 0"
#		failback		manual
#		rr_weight		priorities
#		no_path_retry		5
#	}
#	multipath {
#		wwid			1DEC_____321816758474
#		alias			red
#	}
#}
#devices {
#	device {
#		vendor			"COMPAQ  "
#		product			"HSV110 (C)COMPAQ"
#		path_grouping_policy	multibus
#		path_checker		readsector0
#		path_selector		"round-robin 0"
#		hardware_handler	"0"
#		failback		15
#		rr_weight		priorities
#		no_path_retry		queue
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#	}
#}

#blacklist {
#}
######################### for rhel6+  ###############################
####devices {
####   device {
####       vendor                "PURE"
####       path_selector         "queue-length 0"
####       path_grouping_policy  group_by_prio
####       path_checker          tur
####       fast_io_fail_tmo      10
####       dev_loss_tmo          60
####       no_path_retry         0
####       hardware_handler      "1 alua"
####       prio                  alua
####       failback              immediate
####   }
####}
######################### for rhel7+  ###############################
devices {
  device {
        vendor "PURE"
        product "FlashArray"
        path_grouping_policy "multibus"
        path_selector "queue-length 0"
        path_checker "tur"
        features "0"
        hardware_handler "0"
        prio "const"
        failback immediate
        fast_io_fail_tmo 10
        dev_loss_tmo 60
        user_friendly_names no
    }
}

--------------------------------------------------------------------------

9. Start iscsi
systemctl enable iscsi
systemctl start iscsi
systemctl status iscsi

10. Start and enable multipathd
systemctl start multipathd
systemctl enable multipathd
systemctl status multipathd

11. Query the IP of the iscsi target
iscsiadm -m discovery -t sendtargets -p 10.1.206.14
iscsiadm -m discovery -t st -p 10.1.206.14.10 automatic

12. Setup the iscsi initiator for automatic connectivity
iscsiadm -m node -L automatic

13. Verify sessions
iscsiadm -m session

14. Verify disk connectivity
multipath -ll
dmsetup info -c -o name,blkdevname,devnos_used,blkdevs_used,UUID


Copyright 2021. All rights reserved.

Posted November 19, 2021 by Timothy Conrad in category "Linux

About the Author

If I were to describe myself with one word it would be, creative. I am interested in almost everything which keeps me rather busy. Here you will find some of my technical musings. Securely email me using - PGP: 4CB8 91EB 0C0A A530 3BE9 6D76 B076 96F1 6135 0A1B