As I highlighted in the PSA part 1 post, NMP, short for Native Multipath Plugin, is the default Multipath Plugin shipped with ESXi hosts. Once the PSA has associated the NMP with particular paths, it uses a number of sub-plugins to handle load balancing and path fail-over. In this post, I will look at the NMP in more detail. I will pay specific attention to the activity of the Storage Array Type Plugin (SATP) which is responsible for handling path fail-over for a given storage array and also the Path Selection Plugin (PSP), which determines which physical path is used to issue an I/O request (load balancing) to a storage device.
If a logical device and its paths are associated with the NMP by the PSA, VMware provides a default SATP for each supported array on the Hardware Compatibility List (HCL). Each SATP supports a specific type of storage array, and make the decision on when to fail-over to an alternate path. Typically, this is determined by the SCSI sense codes returned by the array. Each SATP also has a default PSP associated, although this can be changed if you believe your array would benefit from a different PSP to the default or if your storage array vendor provides you with an alternative PSP.
- # esxcli storage nmp satp list
- # esxcli storage nmp psp list
- # esxcli storage nmp path list
- # esxcli storage nmp device list
These commands will show you exactly which SATP and which PSP are currently being used by a particular device and path.
Now we know what the SATPs are, but how does NMP choose which SATP to associate to a path. Well, there is another set of rules used for that. To examine the complete set of rules for an SATP, use the command:
- # esxcli storage nmp satp rule list
This will list all the rules, and it is rather long. To narrow down the list and see the rules for a single SATP, use the -s option:
- # esxcli storage nmp satp rule list -s VMW_SATP_LOCAL
By way of recap, what you’ll have observed is that the PSA will choose an NMP depending on a claim-rule. The NMP will then choose an SATP, again based on another set of predefined rules. An SATP then has a PSP associated with it by default. In my next post, I will examine the SATP & PSP in more detail.