After hardware maintenance or reseating an HBA355i controller on Nutanix HCI host, the ESXi hypervisor incorrectly identifies the device as a standard storage adapter ( vmhba# ) instead of a PCI Passthrough device.
This prevents the controller VM (CVM) from claiming the HBA, leading to local storage mounting failures.
Validation can be confirmed by the following:
UI Error when enabling Passthrough on this device:
" An error occurred during host configuration: Failed to apply the provided configuration..
Failed to unbind devices: 0000:##:00.0. Configuration will be applied after reboot."
CLI Error:
# esxcli hardware pci pcipassthru set -d 0000:##:00.0 -a -e=1
Error: Unable to configure the PCI device: Failed to unbind device 0000:##:00.0
VMkernel Logs:
WARNING: ScsiAdapter: 3567: Cannot unregister adapter vmhba# with paths claimed
WARNING: Unregister of vmkAdapter vmhba# failed: Busy
Device: 412: psa:driver->ops.detachDevice:0 ms
VMware ESXi 7.0.x
VMware ESXi 8.0.x
VMware ESXi 9.0.x
VMware ESXi (Running on Nutanix HCI)
Broadcom/LSI HBA355i Front
The native ESXi driver lsi_msgpt35 driver module is enabled and claims the HBA355i during the boot sequence.
Because the driver immediately establishes active paths to the enclosure/LUNs, the device enters a "Busy" state.
This prevents the kernel from dynamically unbinding the device to satisfy a PCI Passthrough request.
To allow the kernel to unbind the device, you must manually release the active paths and disable the driver module before enabling passthrough.
Note: Host must be in maintenance mode before making these changes. Replace the # in vmhba# with the appropriate HBA device number.
Identify active paths: Run one of these commands below to confirm the device is busy.
esxcfg-scsidevs -A
esxcfg-mpath -b
esxcli storage core path list -A vmhba#
Unclaim the device paths: Force the Pluggable Storage Architecture (PSA) to release the device: # esxcli storage core claiming unclaim -t location -A vmhba#
Disable the driver module: Prevent the native driver from claiming the device on subsequent boots: # esxcli system module set --enabled=false --module=lsi_msgpt35
Enable Passthrough:
In the vSphere Client, navigate to Host > Configure > Hardware > PCI Devices.
Locate the HBA355i and click Toggle Passthrough.
Persist and Reboot:
Run /sbin/auto-backup.sh to ensure configuration changes are saved to the boot bank.
Reboot the ESXi host.
Verification: After reboot, verify the module status: esxcli system module list | grep lsi_msgpt35 Ensure both 'Enabled' and 'Loaded' columns are false.
For Nutanix environments, the HBA must be in passthrough mode for the CVM to achieve direct I/O access to the physical drives.