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.