This post was originally published on this site

This blog post will go over the steps to connect FlashArray volumes over iSCSI on RHEL variant Linux systems (RHEL, Oracle Linux, CentOS).

Required package on RHEL for iSCSI
iscsi-initiator-utils

Multipathing package
device-mapper-multipath

High level process with iSCSI

  1. Setup iSCSI at the initiator
  2. Setup Host at the FlashArray level
  3. Discover the iSCSI targets
  4. Login to the iSCSI targets
  5. Create volumes, attach to the hosts, scan them and create the filesystems

1. To set up iSCSI at the host level, install the package iscsi-initiator-utils and start the iscsi service.  Make sure to include the multipathing package as well.

Implement all the Linux best practices for FlashArray that can be found here.
https://support.purestorage.com/Solutions/Linux/Reference/Linux_Recommended_Settings

2. Setup the host at the FlashArray level by first getting the initiator’s IQN which can be found at /etc/iscsi/initiatorname.iscsi

Example:
[root@oraprod ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1988-12.com.oracle:abd254f8bba0

Go the Pure FlashArray, click Storage on the left frame and select the Hosts tab.  Click the + sign on the right side to create a new host. Provide the IQN name you got from the initiator.

Configure IQN for a host in FlashArray

3. On the host, discover the iSCSI targets

$ iscsiadm -m discovery -t st -p <target IP address>

Example:

4. Create a volume on Pure FlashArray and attach to the host.  Without a volume/lun attached to the host, trying to login to the target will result in following errors.

iscsiadm -m node –targetname iqn.2010-06.com.purestorage:flasharray.7b87f11aad2d06c8 -p 192.168.154.254 -l

5. Using the IQN information of the target, login to iSCSI target using iscsiadm command.

iscsiadm -m node –targetname <target iqn> -p <target IP address> –login

Example:

Login on all the iSCSI ports on the target.  As of now, we have connected only to the first iSCSI target IP and hence Purity GUI shows Uneven paths. Run the above login command across all available iscsi paths .

To login automatically on the host startup, run the following command to update the config at the host level.  Do it on all the available iSCSI target IP addresses.

iscsiadm -m node -T <target iqn> -p <target IP> –op update -n node.startup -v automatic

Example:

You can verify if the iSCSI setup is successful by checking at the FlashArray GUI.  Click Health on the left frame and go to the Connections tab. Look for the Paths against the host you just added.  If it shows “Unused Port” and if you don’t see any entries against the host initiator it means the host has not logged into the target.

Clicking on the “Unused Port” shows the connection map of the host ports.

After discovering and logging into the target from all the initiators, we can see that the Paths shows Redundant across all of them.

5. Create the volumes on Pure Flasharray and attach to the host.

6. Update /etc/multipath.conf or udev rules based on your standard operating procedures to create a persistent name for the multipath device.

7.  Scan for the devices on the host using rescan-scsi-bus.sh (sg3_utils package).

8.  The devices should be available for use now.

[root@oraprod ~]# ls -ltr /dev/mapper/fs*
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_data01p1 -> ../dm-14
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_data01 -> ../dm-13
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_data02p1 -> ../dm-15
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_data02 -> ../dm-11
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_fra1 -> ../dm-16
lrwxrwxrwx. 1 root root 8 May  1 18:06 /dev/mapper/fs_prod_fra -> ../dm-12

10. Create the filesystem on top of the partitions.

11.  Mount the filesystem using _netdev option to make sure to inform the kernel that these filesystems should be mounted after all network interfaces are brought up to avoid missing device issues if it comes up earlier.