To manage storage multipathing, ESXi uses a collection of Storage APIs, also called the Pluggable Storage Architecture (PSA). The PSA is an open and modular framework that coordinates the simultaneous operation of multiple multipathing plug-ins (MPPs). With the PSA, third-party software developers can design their own load balancing techniques and failover mechanisms for particular storage array. The third-party code can be inserted directly into the ESXi storage I/O path.

Topics discussing path management use the following acronyms.
Table 1. Multipathing Acronyms
Acronym Definition
PSA Pluggable Storage Architecture
NMP Native Multipathing Plug-In. Generic VMware multipathing module.
PSP Path Selection Plug-In, also called Path Selection Policy. Handles path selection for a given device.
SATP Storage Array Type Plug-In, also called Storage Array Type Policy. Handles path failover for a given storage array.

The VMkernel multipathing plug-in that ESXi provides by default is the VMware Native Multipathing Plug-In (NMP). The NMP is an extensible module that manages sub plug-ins. There are two types of NMP sub plug-ins, Storage Array Type Plug-Ins (SATPs), and Path Selection Plug-Ins (PSPs). SATPs and PSPs can be built in and provided by VMware, or can be provided by a third party.

If more multipathing functionality is required, a third party can also provide an MPP. The third-party MPP can run in addition to the default NMP, or as a replacement.

When coordinating the VMware NMP and any installed third-party MPPs, the PSA performs the following tasks:

  • Loads and unloads multipathing plug-ins.
  • Hides virtual machine specifics from a particular plug-in.
  • Routes I/O requests for a specific logical device to the MPP managing that device.
  • Handles I/O queueing to the logical devices.
  • Implements logical device bandwidth sharing between virtual machines.
  • Handles I/O queueing to the physical storage HBAs.
  • Handles physical path discovery and removal.
  • Provides logical device and physical path I/O statistics.

As the Pluggable Storage Architecture illustration shows, multiple third-party MPPs can run in parallel with the VMware NMP. When installed, the third-party MPPs replace the behavior of the NMP and take control of the path failover and the load-balancing operations for the storage devices.

Figure 1. Pluggable Storage Architecture
The image shows third-party MPPs running in parallel with the VMware NMP.
The multipathing modules perform the following operations:
  • Manage physical path claiming and unclaiming.
  • Manage creation, registration, and deregistration of logical devices.
  • Associate physical paths with logical devices.
  • Support path failure detection and remediation.
  • Process I/O requests to logical devices:
    • Select an optimal physical path for the request.
    • Depending on a storage device, perform specific actions necessary to handle path failures and I/O command retries.
  • Support management tasks, such as reset of logical devices.