Oracle Linux Server Configuration
For this blog post I will be using an Oracle Linux 8 server and a Pure Storage FlashArray to demonstrate how block volumes can be presented to an Oracle Linux 8 database server via iSCSI.
Let’s start by logging in as root and configuring the Linux database server to support Internet Small Computer System Interface Protocol (iSCSI).
Note: for Oracle RAC servers you will need to perform the steps below on each node of the cluster.
Install iscsi-initiator-utils
yum install iscsi-initiator-utils -y
yum install lsscsi
Install multipath
yum install device-mapper-multipath
Enable iSCSI at bootup
chkconfig iscsid on
service iscsid start
chkconfig iscsi on
service iscsi start
Once iSCSI is enabled we need to find the iSCSI Qualifier Name (IQN) address of each host initiator.
We can do this by looking at the /etc/iscsi/initiatorname.iscsi file.
[root@z-rac2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1988-12.com.oracle:aadc2b3ac387
FlashArray Configuration
We now need to add the host initiator to the FlashArray host, logon and navigate to Storage -> Hosts select the host and click the 3 vertical pips in the Host Ports panel.
Add add the Port IQN obtained from the Linux operating system.

Create Volumes
From the UI navigate to the Storage -> Volumes tab, in the Volumes panel click + to create new Volume(s), and repeat for required volumes, for example.

Now connect the newly created block Volumes to the Host.
Navigate to Storage -> Hosts and select Host.
Click on the 3 vertical pips in the Connected Volumes panel, and connect Volumes to Host.

iSCSI and Host level Device Configuration
The next step is to gather information on the iSCSI ports configured on the Pure Storage FlashArray.
This can easily be done within the WebUI but for this blog post I will use the command line interface (CLI) purereport list command, for example:
pureuser@z-x90-b> pureport list
Name WWN Portal IQN
CT0.ETH4 - 192.168.100.45:3260 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
CT0.ETH5 - 192.168.100.46:3260 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
CT1.ETH4 - 192.168.100.47:3260 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
CT1.ETH5 - 192.168.100.48:3260 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
pureuser@z-x90-b>
Returning to the database server run the iscsiadm discovery against storage array using the IP address obtained in the step above, for example:
[root@z-rac2 ~]# iscsiadm -m discovery -t st -p 192.168.100.45
192.168.100.45:3260,1 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
192.168.100.46:3260,1 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
192.168.100.47:3260,1 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
192.168.100.48:3260,1 iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae
We can see that all the IQN information correlates to the earlier information on the FlashArray.
Log the iSCSI sessions into the Pure Array controller addresses.
[root@z-rac2 ~]# iscsiadm -m node -T iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae -p 192.168.100.45 -l
[root@z-rac2 ~]# iscsiadm -m node -T iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae -p 192.168.100.46 -l
[root@z-rac2 ~]# iscsiadm -m node -T iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae -p 192.168.100.47 -l
[root@z-rac2 ~]# iscsiadm -m node -T iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae -p 192.168.100.48 -l
Add automatic iSCSI login on database server startup.
[root@z-rac2 ~]# iscsiadm -m node -L automatic
Use iscsiadm to display detailed information about the iscsi targets, for example.
[root@z-rac2 ~]# iscsiadm -m node -T iqn.2010-06.com.purestorage:flasharray.1e508186c5515eae -p 192.168.100.45
Using the FlashArray WebUI or CLI obtain the newly created volume Serial IDs.
pureuser@z-x90-b> purevol list z-rac2-u04, z-rac2-u05
Name Size Source Created Serial
z-rac2-u04 5T - 2024-05-15 11:11:11 BST 704FA624CF6E419604772FBF
z-rac2-u05 3T - 2024-05-15 11:11:28 BST 704FA624CF6E419604772FC0
Update /etc/multipath.conf to provide meaningful names.
The Linux multipath World Wide Identifier (wwid) for a Pure Storage FlashArray will be the Vendor ID + lowercase volume serial number, for example.
3624a9370 + 704fa624cf6e4196 (for Array) + 04772fbf (for disk)
3624a9370 + 704fa624cf6e4196 (for Array) + 04772fc0 (for disk)
Update the /etc/multipath.conf file as required, for example:
multipath {
wwid 3624a9370704fa624cf6e419604772fbf
alias u04
}
multipath {
wwid 3624a9370704fa624cf6e419604772fc0
alias u05
}
Reload multipath configuration.
[root@z-rac2 ~]# service multipathd reload
Redirecting to /bin/systemctl reload multipathd.service
Confirm the volumes alias, size and multipath settings are as expected with multipath -ll.
[root@z-rac2 ~]# multiapath -ll
...
u04 (3624a9370704fa624cf6e419604772fbf) dm-15 PURE,FlashArray
size=5.0T features='0' hwhandler='1 alua' wp=rw
...
u05 (3624a9370704fa624cf6e419604772fc0) dm-14 PURE,FlashArray
size=3.0T features='0' hwhandler='1 alua' wp=rw
...
We are now ready to create and mount the filesystems.
Provision file systems
Provision file systems using mkfs, I typically use ext4, for example:
[root@z-rac2 ~]# mkfs.ext4 /dev/mapper/u04
[root@z-rac2 ~]# mkfs.ext4 /dev/mapper/u05
Create Mount Points
Create required mount points, updated /etc/fstab file and finally mount filesystems, for example
[root@z-rac2 ~]# mkdir /u04 /u05
[root@z-rac2 ~]# vi /etc/fstab
[root@z-rac2 ~]# mount -a
mount: (hint) your fstab has been modified, but systemd still uses
the old version; use 'systemctl daemon-reload' to reload.
[root@z-rac2 ~]# systemctl daemon-reload
[root@z-rac2 ~]# chown -R oracle:oinstall /u04 /u05
Summary
In this blog post I have shared how to configure an Oracle Linux 8 server for iSCSI, created 2 FlashArray block volumes, and presented to a database server, created filesystems and mounted them ready for use by a database

Leave a Reply