VM Creation Fails on Dell PowerStore Backend With Duplicate Host Registration Error
Problem
New virtual machine creation fails immediately at the volume-attachment stage on a Dell PowerStore iSCSI backend. Boot-from-volume instances enter ERROR state within seconds of launch, while standalone (empty) volume creation continues to work normally. The instance fault reports a storage backend failure of the form: Build of instance [INSTANCE_UUID] aborted: Unable to update attachment.(Bad or unexpected response from the storage volume backend API: ... Failed to create PowerStore host [HOST_UUID]-iSCSI.). (HTTP 500).
The failure typically surfaces immediately after a management-plane upgrade, but the upgrade is not the underlying cause. The trigger is the number of hosts registered on the PowerStore array crossing a threshold, which commonly coincides with an upgrade because the upgrade is the next significant cluster event.
Environment
Private Cloud Director Virtualization - v2025.10 and Higher
Self-Hosted Private Cloud Director Virtualization - v2025.10 and Higher
Component: Block Storage Service (Dell PowerStore iSCSI backend)
Cause
The Dell PowerStore Block Storage driver looks up existing array hosts through get_all_hosts() in client.py, which issues a single unpaginated GET /host request to the PowerStore REST API. The PowerStore API enforces a default response limit of 100 objects per query.
When the array has more than 100 registered hosts, the response is truncated to the first 100. If the compute node's iSCSI initiator name (IQN) is registered under a host that falls outside those first 100 results, the driver does not see it and concludes the host does not exist. The driver then attempts to create a new host with that IQN, and the PowerStore array rejects the request because it enforces global IQN uniqueness, returning HTTP 400 with code 0xE0A01001002D — "One of the provided port names is already registered with another host."
This is not a naming or IQN-mismatch defect. The iSCSI initiator name in /etc/iscsi/initiatorname.iscsi is not modified during a management-plane upgrade, and the IQN on affected compute nodes remains unchanged. The defect is latent: while the array holds 100 or fewer hosts, every host is returned and the lookup always succeeds. Once the array grows past 100 hosts, any host beyond the first 100 becomes invisible to the driver. An upgrade often appears to "introduce" the failure only because it is the first VM-creation activity after the host count crosses the threshold.
Standalone volume creation does not register an iSCSI host on the array and is therefore unaffected. Only boot-from-volume VM creation — which triggers host registration at attachment time — fails.
This is tracked as a bug under PCD-6294.
Diagnostics
Confirm the failure pattern
Confirm that boot-from-volume VM creation fails while standalone volume creation succeeds. Create an empty volume to verify the Block Storage backend itself is functional, then inspect the failed instance.
The instance fault confirms the failure occurs during volume attachment.
Confirm the IQN is already registered on the array
Verify the compute node's IQN is already present on the PowerStore array under an existing host object. A match confirms there is no IQN mismatch — the host exists, but the driver cannot see it.
The compute node IQN is read from /etc/iscsi/initiatorname.iscsi on the affected hypervisor. This value is not changed by a management-plane upgrade.
Confirm the pagination limit is the cause
Compare an unpaginated query against one with an explicit high limit. If the default query returns exactly 100 hosts while the explicit-limit query returns more, the pagination limit is confirmed as the cause. Confirm the affected compute node's IQN is absent from the 100-host result but present in the full result.
If all checks above match, proceed to the Workaround.
Resolution
A permanent fix is tracked under PCD-6294. The corrected host-lookup logic is expected from the upstream Dell PowerStore driver and will be backported to the Platform9 Block Storage driver once it is merged. No fixed release is available at this time.
In the meantime, apply the Workaround below.
Workaround
Add an explicit high page limit to the PowerStore host-lookup query so that all registered hosts are returned. Apply this change on every host that has the Persistent Storage role assigned.
This workaround edits a file inside a Platform9-managed package. The change is reverted whenever the host is upgraded or the pf9-cindervolume-base package is updated, and it must be reapplied. The change must also be applied to any new host that is later assigned the Persistent Storage role.
If a Persistent Storage host must be brought back to a clean state instead of patched, the stale PowerStore host entry for the affected node can be removed so the driver re-creates it on the next attachment. See How to Delete Stale Storage Host Entries in PCD. This is a per-node relief that recurs for any host outside the first 100 results until the driver fix is in place.
Additional Information
This issue is tracked in PCD-6294. The permanent fix is expected from the upstream Dell PowerStore driver and will be backported to the Platform9 Block Storage driver once merged. The workaround above is temporary and does not survive a host upgrade or package update.
Last updated
