storage_device_paths
Identify dead or disabled SCSI paths per device across hosts: check which hosts see a device, path counts, working paths, and linked datastores to resolve multipath problems.
Instructions
[READ] SCSI multipath state per device (NAA) across the hosts of one scope: which hosts see it, path counts and states, working paths, adapters, target WWPN, PSP/SATP policy, and the VMFS datastores on it.
Use for: "does datastore X have dead or disabled paths on any host" (datastore=X), "which hosts see naa.… and through which adapters" (cluster + device), "do hosts see different numbers of paths" (cluster + only_differences=true), "which devices and datastores depend on vmhba2" (host + adapter). Exactly one of cluster, host or datastore is required — this tool will not read every host at once.
Per device: shared (reached over FC/iSCSI or seen by 2+ hosts), seen_by, not_seen_on (hosts that WERE read and do not see a shared device; a disk inside one host is never listed), path_count_differs, states_needing_attention (dead/disabled only) and per-host {paths_total, by_state, working_paths, policy, satp, adapters}; with adapter set, also paths_via_adapter and only_paths_via_adapter (matched by vmhba name, which can be a different card on each host of a cluster). Per-path detail is included when device or datastore is given. Devices needing attention sort first; 'summary' counts the whole result, not just this page.
Gotchas: hosts in hosts_not_read were NOT read (refused, not connected — vCenter's copy of a lost host's config may be stale — or missing from the reply) and are never in not_seen_on — when complete is false, say which hosts are unknown instead of concluding a device is missing. States are as vSphere reports them: 'standby' can be normal (active/passive arrays), and a path count does not prove independent fabrics. NFS/vSAN/vVol datastores have no SCSI paths (scope_note says so). NVMe-oF namespaces may not appear. No rescans.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | ESXi host name exactly as in vCenter inventory. | |
| limit | No | Devices per page, 1-200 (default 50). | |
| device | No | Canonical name (e.g. naa.60060e80...) or display name; case-insensitive. | |
| offset | No | Devices to skip; pass the previous page's next_offset. | |
| target | No | Optional vCenter/ESXi target name from config. | |
| adapter | No | vmhba name (e.g. vmhba2) to keep devices with a path through it. | |
| cluster | No | Cluster name exactly as in vCenter. | |
| datastore | No | Datastore name; scopes to the hosts that mount it and its VMFS extents. | |
| only_differences | No | Keep only devices whose visibility or path count differs across the hosts that were read. |