#VCP
Collection of APIs used by Storage vendors to specify multipathing/loadbalancing settings to the ESXi hosts.
Is handled by a kernel module on the ESXi server itself called PSA(Pluggable Storage Architecture) which allows for multiple multipathing plugins (MPPs).
PSA itself has multiple software modules that are responsible for multipathing.
## Native Multipathing plugin (NMP)
VMware's own VMkernel multipathing plugin that is used by default.
NMP has its own 2 sub modules, PSP and SATP.
### Path selection Policy (PSP)
responsible for selecting the physical path for I/O requests, has 3 different policies to choose from.
- VMW_PSP_MRU
- Most recently used policy that uses the first working path on system boot. When it becomes unavailable an alternate path is chosen.
But when the original path is restored again, MRU will still keep using the failed over path.
- VMW_PSP_FIXED
- uses designated preferred path, if it is not assigned the first working path will be used, similar to MRU. If the path fails, PSP will revert back to the designated path once path is recovered.
- VMW_PSP_RR
- Path is rotating through configured paths, including paths based on I/O bandwith and latency. Active-passive arrays use all active path, while active-active arrays use all available paths.
### Storage Array Type Plugin (SATP)
responsible for array specific operations like state determination of path, health monigoring, activation and error detection.
Rules are searched first by drivers, then vendor/model and lastly by transport. The following default SATP policies are used when nothing is configured.
- VMW_SATP_LOCAL
- for local devices
- VMW_SATP_DEFAULT_AA
- for active/active arrays
- Default PSP VMW_PSP_FIXED
- VMW_SATP_DEFAULT_AP
- for active/passive arrays
- VMW_SATP_DEFAULT_ALUA
- used for ALUA compliant arrays
- default PSP VMW_PSP_MRU
### Multipathing plugins (MPP)
3rd party Plugins created by using VMkernel APIs.
They offer multipathing and failover functions for specific storage arrays.
#### VMware High Performance Plugin (HPP)
like NMP but for high-speed sotrage devices like NVMe PCIe flash
can use the following Path Selection Schemes(PSS):
- Fixed
- LB-RR
- LB-IOPs
- LB-Bytes
- LB-Latency
## 🔗Resources