When performing FC SAN maintenance or while having an unexpected storage path outage, once the storage path is back up on the ESXi host the paths still show as dead.
Newly presented FC LUNs are not visible.
Unable to unmount/delete VMFS datastore which are backed by FC LUN.
The following log entry related to StorageFPIN is seen multiple times in /var/log/vmkernel.log:
WARNING: StorageFPIN: 521: Failed to allocate memory.The available FPINHeap on host can be checked with the following command. A healthy host will around 5246448 bytes available, but an impacted host will show significantly less free space; sometimes 16k bytes or less:esxcfg-info -a |grep -A3 storageFPINHeap|grep "Max Available"
For example, on on the following host 1 we have hit the issue and run out of FPINheap:|----Max Available...................................416 bytes
On host 2 we have not yet run out of Heap:|----Max Available...................................3219872 bytes
VMware ESXi 8.0U2
FPIN (Fabric Performance Impact Notifications) capability was added to ESXi 8.0 U2 to be able to better understand fabric related issues. Due to a bug in the StorageFPIN code, when FPIN tries to allocate memory and is unable to, it can hold onto a reference count on the paths which prevents the FC vmhba driver from being able to allocate new paths or re-establish existing ones.
This issue will be fixed in ESXi 8.0 P05 patch release.
To work around this issue, it is recommended to disable FPIN on ESXi 8.0 hosts which have FC storage attached.
For ESXi 8.0.2:
Run the command in SSH to disable FPIN: vsish -e set /storage/fpin/info 0
To confirm the setting: vsish -e get /storage/fpin/info
For ESXi 8.0.3:
Run the command in SSH to disable FPIN: esxcli storage fpin info set -e false
To confirm the setting: esxcli storage fpin info get
Note: This setting change does not require a reboot, however if an ESXi host is already in a memory heap exhaustion state for storageFPINHeap then rebooting the host is required after making this setting change.