Short answer:
FlashArray API doesn’t “figure it out” from vCenter. It’s deliberately agnostic. In the ideal (and supported best-practice) world, each vSphere cluster maps 1:1 to a FlashArray host group, and each ESXi host maps 1:1 to a FlashArray host object with its initiators. That alignment makes provisioning, automation, and LUN ID consistency dead simple.
What “sane” looks like
- One FA host object per ESXi host, populated with the host’s FC WWPNs or iSCSI IQN.
- One FA host group per vSphere cluster (per array), containing those host objects; present shared VMFS datastores to the host group so every node sees the same LUN number.
- vVols nuance: you still map the Protocol Endpoint (PE) to the cluster’s host group; VASA handles per-VM vVol binding.
- If you use the Pure vSphere Plugin, it will create/update the matching host/host-group objects for you when you provision (and it keeps LUN IDs consistent across hosts).
Safe(ish) way to get back to sane (no outages)
The one hard rule: don’t rip a host out of its current host group without planning—that instantly drops access to any volumes presented via that group and can trigger PDL on the ESXi side.
A pragmatic, step-by-step approach:
Inventory reality
From FlashArray: list hosts, host groups, and connections (which volumes are connected to which host/host-group).
From vCenter: list clusters and member hosts (and which datastores they’re using).
The FA API and SDKs expose all of this; you can script it in PowerShell SDK v2 or Python.
- Define target state
- Decide your naming (e.g., host objects = ESXi shortnames; host groups = cluster names).
- Create any missing host groups that mirror clusters; create any missing host objects for ESXi hosts. (The Pure Plugin or Cody’s helper cmdlets can scaffold this for you.)
- Migrate host membership one host at a time
- For each ESXi host, temporarily connect the currently-used datastore volumes directly to the host (host-level connections) so the host continues to see its LUNs even after you change groups.
- Move the host into the correct host group (the one that matches its vSphere cluster).
Connect the same datastore volumes to the new host group, confirm the host sees the new group-based paths and stable LUN IDs, then remove the temporary host-level connections. (FA supports connections to hosts and host groups; group connections keep LUN IDs identical across the cluster.)
Repeat for the next host.
For vVols
Ensure the Protocol Endpoint is mapped to the cluster’s host group; datastore(s) will enumerate via VASA automatically.
Provisioning going forward
Use the Pure vSphere Plugin to create/expand datastores; it will place volumes on FA and connect them to the right host group automatically—no more shell-games.
Quick audit helpers
Pure vSphere PowerShell module & SDK2: there are cmdlets and examples that build FA host/host-group objects straight from vCenter clusters (e.g., New-PfaHostGroupFromVcCluster), and SDK2 samples for managing hosts/host groups.
https://blog.purestorage.com/purely-technical/configuring-an-esxi-cluster-for-storage-provisioning-for-a-flasharray-via-powershell/