To manage multipathing, ESXi uses a special VMkernel layer, Pluggable Storage Architecture (PSA). The PSA is an open and modular framework that coordinates various software modules responsible for multipathing operations, VMware NMP, VMware HPP, and third-party MPPs.
VMware provides generic native multipathing modules, called VMware NMP and VMware HPP. In addition, the PSA offers a collection of VMkernel APIs that third-party developers can use. The software developers can create their own load balancing and failover modules for a particular storage array. These third-party multipathing modules (MPPs) can be installed on the ESXi host and run in addition to the VMware native modules, or as their replacement.
When coordinating the VMware native modules 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 or HPP. When installed, the third-party MPPs can replace the behavior of the native modules. The MPPs can take control of the path failover and the load-balancing operations for the specified storage devices.
Multipathing Concepts and Acronyms
Multipathing Concept | Acronym | Definition |
---|---|---|
Pluggable Storage Architecture | PSA | The PSA is an open and modular framework that coordinates various software modules responsible for multipathing operations. These modules include generic multipathing modules that VMware provides, NMP and HPP, and third-party MPPs. |
Native Multipathing Plug-in | NMP | The NMP is the VMkernel multipathing module that ESXi provides by default and is used for SCSI storage devices. The NMP associates physical paths with a specific storage device and provides a default path selection algorithm based on the array type. The NMP is extensible and manages additional submodules, called Path Selection Policies (PSPs) and Storage Array Type Policies (SATPs). PSPs and SATPs can be provided by VMware, or by a third party. For more information, see VMware Native Multipathing Plug-In. |
Path Selection Plug-in | PSP | The PSPs are submodules of the VMware NMP. PSPs are responsible for selecting a physical path for SCSI I/O requests. For more information, see VMware Path Selection Plug-Ins and Policies. |
Storage Array Type Plug-in | SATP | SATPs are responsible for array-specific operations for a SCSI storage array. The SATP can determine the state of a particular array-specific path, perform a path activation, and detect any path errors. For more information, see VMware SATPs. |
Multipathing Plug-in | MPP (third-party) | The PSA offers a collection of VMkernel APIs that third parties can use to create their own multipathing plug-ins (MPPs). The modules provide specific load balancing and failover functionalities for a particular storage array. The MPPs can be installed on the ESXi host. They can run in addition to the VMware native modules, or as their replacement. |
Native High-Performance Plug-in | HPP | The HPP replaces the NMP for high-speed devices, such as NVMe. The HPP can improve the performance of ultra-fast flash devices that are installed locally on your ESXi host, and is the default plug-in that claims NVMe-oF targets. For information, see VMware High Performance Plug-In and Path Selection Schemes. |
Path Selection Scheme | PSS | To support multipathing, the HPP uses the Path Selection Schemes (PSS). A particular PSS is responsible for selecting physical paths for I/O requests and handles multipathing for NVMe storage devices. For information, see VMware High Performance Plug-In and Path Selection Schemes. |
Claim Rules | The PSA uses claim rules to determine which plug-in owns the paths to a particular storage device. See Using Claim Rules to Control ESXi Multipathing Modules. |