This article is Part of Becoming a VMware Storage Expert series
Storage Plugins – When you use ESXi with a block device presented using iSCSi or FC, you might have seen or heard terms like PSP, SATP, PSA, NMP and ALUA
While we have already discussed a few basics of ALUA, This post will be discussing what are the Plugins involved how they work. This post is a part of Becoming a VMware Storage Expert series
Pluggable Storage Architecture (PSA)
Starting ESXi 3.5 VMware uses Pluggable Storage Architecture (PSA). PSA enables Storage Vendors to build their own Multipathing Plugin(MPP) using
Availability is critical and redundant paths to storage are essential. One of the key functions of the storage component in vSphere is to provide multipathing (that is, which path a given I/O should use if there are multiple paths) and failover (that is, I/O switching to using another path when a path goes down).
VMware, by default, provides a generic multipathing plug-in (MPP) called the Native Multipathing Plug-in (NMP).
Native Multipathing Plug-in (NMP)
Native Multipathing Plug-in (NMP)NMP works with SATP and PSP to handle Failover and Multipathing and it takes care of
- Registering logical devices with the PSA framework
- Receiving input/output (I/O) requests for logical devices it registered with the PSA framework
- Completes the I/Os and posts completion of the SCSI command block with the PSA framework, which includes the following operations:
- Selecting the physical path to which it sends the I/O requests
- Handling failure conditions encountered by the I/O requests
- Handles task management operations, such as aborts/reset
PSA communicates with NMP for the following operations:
- Opening/closing logical devices
- Starting I/O to logical devices
- Aborting an I/O to logical devices
- Getting the name of the physical paths to logical devices
- Getting the SCSI inquiry information for logical devices”
The below image explains how they fit together

SATP, PSP and MMP are explained in this article.