Change the Default PSP in VMware vSphere 5

One thing I do to my VMware ESXi hosts is set the default Path Selection Policy (PSP) for certain Storage Array Type Plugins (SATPs) to do the right thing. This eliminates my need to reconfigure each datastore’s multipath settings on each host, and helps guarantee that a new LUN added by someone other than me will function correctly from the start. Consider it part of my “make it easy to do the right thing” sysadmin mantra.

This has been covered by others at various points for older vSphere versions, but the vMA & esxcli changed some with version 5, so here are the commands I use. I have two different arrays, one that is active/active without a specific SATP (so it gets caught by VMW_SATP_DEFAULT_AA) and one that supports ALUA (which is covered by VMW_SATP_ALUA). Both are compatible with round-robin; the ALUA array communicates the correct paths for I/O to ESXi and it does the right thing.

esxcli -s hostname.yourco.com -u root -p PASSWORD storage nmp satp set -s VMW_SATP_ALUA -P VMW_PSP_RR

esxcli -s hostname.yourco.com -u root -p PASSWORD storage nmp satp set -s VMW_SATP_DEFAULT_AA -P VMW_PSP_RR

It takes a reboot for this to take effect.

This is also very compatible with my suggestion to use bash ‘for’ loops on the vMA, but I would do it on a test host, or one host in maintenance mode, first, to verify correct behaviour in your own situation.