If you’ve ever worked with Dell Compellent storage arrays you may have noticed that when you initially connect it to a VMware ESXi host, by default VMware Native Multipathing Plugin (NMP) uses Fixed Path Selection Policy (PSP) for all connected LUNs. And if you have two ports on each of the controllers connected to your storage area network (be it iSCSI or FC), then you’re wasting half of your bandwidth.
Why does that happen? Let’s dig deep into VMware’s Pluggable Storage Architecture (PSA) and see how it treats Compellent.
How Compellent is claimed by VMware NMP
If you are familiar with vSphere’s Pluggable Storage Architecture (PSA) and NMP (which is the only PSA plug-in that every ESXi host has installed by default), then you may know that historically it’s always had specific rules for such Asymmetric Logical Unit Access (ALUA) arrays as NetApp FAS and EMC VNX.
Run the following command on an ESXi host and you will see claim rules for NetApp and DGC devices (DGC is Data General Corporation, which built Clariion array that has been later re-branded as VNX by EMC):
# esxcli storage nmp satp rule list
Name Vendor Default PSP Description ---------------- ------- ----------- ------------------------------- VMW_SATP_ALUA_CX DGC CLARiiON array in ALUA mode VMW_SATP_ALUA NETAPP VMW_PSP_RR NetApp arrays with ALUA support
This tells NMP to use Round-Robin Path Selection Policy (PSP) for these arrays, which is always preferable if you want to utilize all available active-optimized paths. You may have noticed that there’s no default PSP in the VNX claim rule, but if you look at the default PSP for the VMW_SATP_ALUA_CX Storage Array Type Plug-In (SATP), you’ll see that it’s also Round-Robin:
# esxcli storage nmp satp list
Name Default PSP ----------------- ----------- VMW_SATP_ALUA_CX VMW_PSP_RR
There is, however, no default claim rule for Dell Compellent storage arrays. There are a handful of the following non array-specific “catch all” rules:
Name Transport Claim Options Description ------------------- --------- ------------- ----------------------------------- VMW_SATP_ALUA tpgs_on Any array with ALUA support VMW_SATP_DEFAULT_AA fc Fibre Channel Devices VMW_SATP_DEFAULT_AA fcoe Fibre Channel over Ethernet Devices VMW_SATP_DEFAULT_AA iscsi iSCSI Devices
As you can see, the default PSP for VMW_SATP_ALUA is Most Recently Used (MRU) and for VMW_SATP_DEFAULT_AA it’s VMW_PSP_FIXED:
Name Default PSP Description ------------------- ------------- ------------------------------------------ VMW_SATP_ALUA VMW_PSP_MRU VMW_SATP_DEFAULT_AA VMW_PSP_FIXED Supports non-specific active/active arrays
Compellent is not an ALUA storage array and doesn’t have the tpgs_on option enabled. As a result it’s claimed by the VMW_SATP_DEFAULT_AA rule for the iSCSI transport, which is why you end up with the Fixed path selection policy for all LUNs by default.
Changing the default PSP
Now let’s see how we can change the PSP from Fixed to Round Robin. First thing you have to do before even attempting to change the PSP is to check VMware Compatibility List to make sure that the round robin PSP is supported for a particular array and vSphere combination.
As you can see, round robin path selection policy is supported for Dell Compellent storage arrays in vSphere 6.0u2. So let’s change it to get the benefit of being able to simultaneously use all paths to Compellent controllers.
For Compellent firmware versions 6.5 and earlier use the following command to change the default PSP:
# esxcli storage nmp satp set -P VMW_PSP_RR -s VMW_SATP_DEFAULT_AA
Note: technically here you’re changing PSP not specifically for the Compellent storage array, but for any array which is claimed by VMW_SATP_DEFAULT_AA and which also doesn’t have an individual SATP rule with PSP set. Make sure that this is not the case or you may accidentally change PSP for some other array you may have in your environment.
The above will change PSP for any newly provisioned and connected LUNs. For any existing LUNs you can change PSP either manually in each LUN’s properties or run the following command in PowerCLI:
# Get-Cluster ClusterNameHere | Get-VMHost | Get-ScsiLun | where {$_.Vendor -eq
“COMPELNT” –and $_.Multipathpolicy -eq “Fixed”} | Set-ScsiLun -Multipathpolicy
RoundRobin
This is what you should see in LUN properties as a result:
Conclusion
By default any LUN connected from a Dell Compellent storage array is claimed by NMP using Fixed path selection policy. You can change it to Round Robin using the above two simple commands to make sure you utilize all storage paths available to ESXi hosts.
Tags: ALUA, Asymmetric Logical Unit Access, Compellent, dell, ESXi, Fixed, iSCSI, LUN, multipathing, Native Multipathing Plugin, NMP, Path Selection Policy, Pluggable Storage Architecture, PowerCLI, PSA, PSP, Round Robin, SATP, Storage Array Type Plug-In, Storage Center, tpgs_on, vmware, vSphere
May 16, 2016 at 12:14 am |
[…] one of my previous posts I showed how Compellent LUNs on vSphere ESXi hosts are claimed by VMW_SATP_DEFAULT_AA instead […]