SATP stands for Storage Array Type Plugin, and it is a critical component in VMware vSphere environments that plays a key role in managing the paths to storage devices. SATP is part of the Pluggable Storage Architecture (PSA) framework, which provides an abstraction layer between the storage hardware and the VMware ESXi host. SATP is used to control the behavior of storage paths and devices in an ESXi host.
Here’s why SATP is used and its main functions:
- Path Management: SATP is responsible for managing the paths to storage devices, including detecting, configuring, and managing multiple paths. It ensures that the ESXi host can communicate with the storage devices through multiple paths for redundancy and improved performance.
- Path Failover: In a storage environment with redundant paths, SATP monitors the health of these paths. If a path becomes unavailable or fails, SATP can automatically redirect I/O traffic to an alternate path, ensuring continuous access to storage resources even in the event of a path failure.
- Storage Policy Enforcement: SATP enforces specific policies and behaviors for handling path failover and load balancing based on the characteristics of the storage array. These policies are defined by the storage array vendor and are unique to each array type.
- Multipathing: SATP enables multipathing, which allows an ESXi host to use multiple physical paths to access the same storage device. This improves performance and redundancy by distributing I/O traffic across multiple paths.
- Vendor-Specific Handling: Different storage array vendors have their own specific requirements and behaviors. SATP allows VMware to support a wide range of storage arrays by providing vendor-specific plugins that communicate with the storage array controllers.
- Load Balancing: SATP can balance I/O traffic across multiple paths to optimize performance and prevent overloading of any single path.
- Path Selection: SATP determines which path to use for I/O operations based on specific path selection policies defined by the array type and the administrator.
Here’s an example of how you can use PowerCLI to check and display the recommended SATP settings:
# Connect to your vCenter Server
Connect-VIServer -Server YourVCenterServer -User YourUsername -Password YourPassword
# Get the ESXi hosts you want to check
$ESXiHosts = Get-VMHost -Name "ESXiHostName1", "ESXiHostName2" # Add ESXi host names
# Loop through ESXi hosts
foreach ($ESXiHost in $ESXiHosts) {
Write-Host "Checking SATP settings for $($ESXiHost.Name)"
# Get the list of storage devices
$StorageDevices = Get-ScsiLun -VMHost $ESXiHost
# Loop through storage devices
foreach ($Device in $StorageDevices) {
$SATP = $Device.ExtensionData.Config.StorageArrayTypePolicy
Write-Host "Device: $($Device.CanonicalName)"
Write-Host "Current SATP: $($SATP.Policy)"
Write-Host "Recommended SATP: $($SATP.RecommendedPolicy)"
Write-Host ""
}
}
# Disconnect from the vCenter Server
Disconnect-VIServer -Server * -Confirm:$false
Replace YourVCenterServer, YourUsername, YourPassword, ESXiHostName1, ESXiHostName2 with your actual vCenter Server details and ESXi host names.
In this script:
- Connect to the vCenter Server using
Connect-VIServer. - Get the list of ESXi hosts using
Get-VMHost. - Loop through ESXi hosts and retrieve the list of storage devices using
Get-ScsiLun. - For each storage device, retrieve the current SATP settings and the recommended SATP settings.
- Display the device name, current SATP, and recommended SATP.
Here are a few examples of storage vendors and their corresponding SATP plugins:
- VMW_SATP_DEFAULT_AA (VMware Default Active/Active):
- Vendor: VMware (default)
- Description: This is the default SATP provided by VMware and is used for active/active storage arrays.
- Example: Many local and shared storage arrays in VMware environments use this default SATP.
- VMW_SATP_ALUA (Asymmetric Logical Unit Access):
- Vendor: VMware (default)
- Description: This SATP is used for arrays that support ALUA, a type of storage access where certain paths are optimized for I/O based on their proximity to the storage controller.
- Example: EMC VNX, Hitachi HDS storage arrays.
- IBM_SATP_DEFAULT_AA (IBM Default Active/Active):
- Vendor: IBM
- Description: IBM’s SATP module for active/active storage arrays.
- Example: IBM DS8000 series storage arrays.
- HP_SATP_ALUA (HP Asymmetric Logical Unit Access):
- Vendor: Hewlett Packard Enterprise (HPE)
- Description: HPE’s SATP module for ALUA-compatible storage arrays.
- Example: HPE 3PAR, HPE Nimble Storage.
- NETAPP_SATP_ALUA (NetApp Asymmetric Logical Unit Access):
- Vendor: NetApp
- Description: NetApp’s SATP module for ALUA-based storage arrays.
- Example: NetApp FAS, NetApp AFF.
- DGC_CLARiiON (Dell EMC CLARiiON):
- Vendor: Dell EMC
- Description: SATP module for Dell EMC CLARiiON storage arrays.
- Example: Older Dell EMC CLARiiON storage systems.
These examples illustrate how different storage vendors provide their own SATP modules to enable proper communication and management of storage paths and devices in VMware environments. The specific SATP module used depends on the storage array being utilized. It’s important to consult the documentation provided by both VMware and the storage vendor to ensure proper configuration and compatibility in your vSphere environment.