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.
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.
- 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.