Connecting a VMware ESXi host to StorPool iSCSI
When a StorPool volume needs to be accessed by hosts which cannot run the StorPool client service (e.g., VMware hypervisors), it may be exported using the iSCSI protocol.
Introduction
For general information about using the iSCSI remote block device access protocol with StorPool, see iSCSI overview.
Configuring a VMware ESXi host
Once the StorPool iSCSI target volume has been exported, it is time to connect the initiator. This action needs special privilege and iSCSI connectivity configured. For more information, refer to the official VMware documentation
Login to VMware vSphere web-client as administrator, and follow the steps below:
Browse to the host in the vSphere Web Client navigator.
Click the
Configure
>Storage Adapters
> selectvmhba#
and configure.Under Adapter Details, click the
Targets
tab.Configure the Dynamic Discovery method.
In
Dynamic Discovery
>Add..
> enter IP address or DNS name of the Storpool iSCSI system and clickOK
>Rescan the iSCSI adapter
.
Note
If the iSCSI target is not visible under iSCSI Server Location
,
check the connectivity between the VMware ESXi host and the StorPool
iSCSI portal.
After the iSCSI Server Location is visible under Dynamic Discovery
, close
the window, navigate to datastore
> Select Storage
> click new
datastore
.
Select
Type
as VMFS >Next
.Name and device selection
> enter datastore name and select the host >Select the LUN
to proceed >Next
.Select the
VMFS version
(Select the latest version unless you have a specific reason to select the older one) >Next
.Partition configuration
Use the whole disk and go with default block size >Next
.Click
Finish
to create the new datastore.
Note
Once a Datastore is available, virtual hard disks of VMs may be stored on it, thus utilizing the StorPool iSCSI service.
Note
After a new datastore has been created, some time is required before it comes online and becomes active.
Optimizing Multipath Performance
When using multipath, there is a considerable performance improvement when exclusively setting the path selection policy (PSP) to 1 IOPS instead of the default 1000 IOPS.
First, you’d need to switch to the Round Robin PSP, which balances the load across all active storage paths. One way you can do this is by executing the following via the ESXCLI:
# esxcli storage nmp satp set --default-psp=VMW_PSP_RR --satp=VMW_SATP_ALUA
Note
The Multipathing Policy can be changed by going to the Host -> Configure -> Storage Devices -> checkbox at the volume, tab Properties -> Actions -> Edit Multipathing, and set the Path selection policy to Round Robin (VMware).
Then, set the PSP IOPS value of 1 IOPS to be the default for new volumes together with the Round Robin PSP by issuing the following command:
# esxcli storage nmp satp rule add -s "VMW_SATP_ALUA" -V "StorPool" -M "iSCSI DISK" -P "VMW_PSP_RR" -O "iops=1"
Please, note that the above does not change the PSP settings for all existing and already claimed volumes. What you’ll need to do to set the IOPS policy to 1 for a select StorPool volume is to execute the following:
# esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=<volume_name>
Or update the setting on all StorPool volumes at once via:
# for vol in $(esxcfg-scsidevs -c | awk '{print $1}' | grep t10.StorPool) ; do esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=$vol ; done
Configuring vSwitch
The following is a breakdown of the commands that will allow you to set up a vSwitch for iSCSI with NIC teaming and failover via the ESXCLI.
Note
In this example, vSwitch is configured to have one active path in each port group to use the correct underlying path.
To create a new vSwitch with the desired name:
# esxcli network vSwitch standard add -v <vswitch_name>
To set its MTU to 9000 (in case jumbo frames are being used; otherwise, you can use 1500):
# esxcli network vswitch standard set -m 9000 -v <vswitch_name>
To add NICs to vSwitch:
# esxcli network vswitch standard uplink add -u <iface_name1> -v <vswitch_name>
# esxcli network vswitch standard uplink add -u <iface_name2> -v <vswitch_name>
To set the failover policy for the vSwitch:
# esxcli network vswitch standard policy failover set -a <iface_name1>,<iface_name2> -v <vswitch_name>
To create two port groups into the vSwitch:
# esxcli network vswitch standard portgroup add -p <portgroup_name1> -v <vswitch_name>
# esxcli network vswitch standard portgroup add -p <portgroup_name2> -v <vswitch_name>
To assign them suitable VLANs:
# esxcli network vswitch standard portgroup set -p <portgroup_name1> -v <vlan1>
# esxcli network vswitch standard portgroup set -p <portgroup_name2> -v <vlan2>
To set port group failover policy:
# esxcli network vswitch standard portgroup policy failover set -a <iface_name1> -p <portgroup_name1>
# esxcli network vswitch standard portgroup policy failover set -a <iface_name2> -p <portgroup_name2>
To set the MTU for the VMkernel interfaces, if applicable, to 9000:
# esxcli network ip interface add -m 9000 -p <portgroup_name1>
# esxcli network ip interface add -m 9000 -p <portgroup_name2>
To assign IP addresses to the VMkernel interfaces:
# esxcli network ip interface ipv4 set -i <$vmkiface_name1> -I <address1> -N <prefix> -t static
# esxcli network ip interface ipv4 set -i <$vmkiface_name2> -I <address2> -N <prefix> -t static