VMware vSAN ESA 9.1.1: Inaccessible Objects After Cluster Restart

During a recent troubleshooting session in my VMware HomeLab, I encountered an interesting issue with my nested VMware vSAN Express Storage Architecture (ESA) 9.1.1 cluster.

All three ESXi hosts were online. The vSAN network was healthy and the cluster membership looked perfectly normal.

However, the vSphere Client insisted that the cluster was powered off or still restarting.

Even worse, virtual machine migrations failed and all vSAN objects were reported as inaccessible.

The solution turned out to be surprisingly simple: two advanced ESXi settings that had not been reset after the cluster shutdown workflow.

In this post, I’ll walk through the symptoms, investigation, root cause and recovery.

My HomeLab Environment

The affected cluster is part of my nested VMware lab, which I use for automation development, VMware testing and end-to-end validation of ansible playbooks.

ComponentConfiguration
VMware vCenter Server9.1.1.0100
VMware ESXi9.1.1.0.25714478
vSAN ArchitectureExpress Storage Architecture (ESA)
ClusterVC9-vSAN-ESA
ESXi Hostsnesx901, nesx902, nesx903
Cluster Size3 nodes
EnvironmentNested VMware HomeLab

The cluster had previously undergone a shutdown and startup sequence.

The Symptoms

The first warning appeared under:

Cluster > Configure > vSAN

The vSphere Client displayed:

VC9-vSAN-ESA is powered off or in the process of shutting down or restarting.

Interestingly, the cluster itself appeared to be running.

All three ESXi hosts were connected and vSAN was enabled.

Another problem appeared when I attempted to migrate a virtual machine named DSM-VM08.

The migration failed with:

Cannot Create File

Operation failed, diagnostic report:
DSM-VM08 (Cannot Create File)

Reserving folder on host

This suggested that vSAN was unable to create new objects or files on the datastore.

At this point, the question was whether the cluster was actually powered off, whether the storage was unavailable or whether vCenter was reporting an incorrect state.

Step 1: Verify vSAN Cluster Membership

I started by checking the vSAN cluster directly on nesx901:

esxcli vsan cluster get

The relevant output was:

Enabled: true
Local Node State: MASTER
Local Node Health State: HEALTHY
Sub-Cluster Member Count: 3
Sub-Cluster Member HostNames: nesx901, nesx902, nesx903
Maintenance Mode State: OFF
Mode: REGULAR
vSAN ESA Enabled: true

This confirmed that:

  • vSAN was enabled.
  • All three ESXi hosts were members of the same cluster.
  • The local host was operating as the vSAN master.
  • The cluster was not in maintenance mode.
  • vSAN ESA was enabled.

From a cluster membership perspective, everything looked normal.

Step 2: Check the Actual Cluster Power State

Next, I checked the vSAN Management Service logs on the vCenter Server Appliance.

grep 'currentPowerStatus' \
  /var/log/vmware/vsan-health/vmware-vsan-health-service.log

The log contained:

Cluster domain-c1007,
currentPowerStatus clusterPoweredOn,
HA True,
selfContain None,
embedded vCLS: None

Additional log messages repeatedly showed:

None targetPowerStatus found

According to the vSAN management service, the cluster was powered on and no target power state was recorded.

This did not match the warning displayed in the vSphere Client.

However, a healthy cluster membership and a powered-on state do not necessarily mean that the vSAN object layer is fully operational.

That became apparent in the next step.

Step 3: Investigate vSAN Object Health

I checked the vSAN object health summary:

esxcli vsan debug object health summary get

The result was unexpected:

Health Status       Number Of Objects
-------------------------------------
inaccessible                      749
healthy                             0

All vSAN objects were inaccessible.

To investigate further, I listed the affected objects:

esxcli vsan debug object list --health=inaccessible

The objects I inspected showed the same health condition:

Health: inaccessible -
Object is initializing or creating.(APD)

Even more interesting, their individual storage components were reported as:

Component State: ACTIVE

The components were distributed across all three hosts.

The objects also reported:

Size: 0.00 GB
Type: N/A
Path: N/A

This was an important clue.

The individual components were present and active, but vSAN could not make the overall objects accessible.

The issue was therefore not obviously caused by missing hosts, failed physical disks or a network partition.

Step 4: Identify the Root Cause

After investigating the vSAN shutdown and restart behavior, I came across two relevant advanced settings:

/VSAN/DOMPauseAllCCPs
/VSAN/IgnoreClusterMemberListUpdates

These settings are used during the vSAN cluster shutdown workflow.

DOMPauseAllCCPs pauses Distributed Object Manager component operations as part of the shutdown protection mechanism.

IgnoreClusterMemberListUpdates prevents the host from processing cluster membership list updates while the shutdown protection state is active.

Both are expected to return to 0 after the cluster has successfully completed its startup workflow.

I checked the settings on the first ESXi host:

esxcfg-advcfg -g /VSAN/DOMPauseAllCCPs
esxcfg-advcfg -g /VSAN/IgnoreClusterMemberListUpdates

The output was:

Value of DOMPauseAllCCPs is 1
Value of IgnoreClusterMemberListUpdates is 1

I repeated the checks on the other two hosts.

The results were identical.

Host DOMPauseAllCCPs IgnoreClusterMemberListUpdates
nesx90111
nesx90211
nesx90311

All three ESXi hosts still had their vSAN shutdown protection settings enabled.

This explained why the cluster could report healthy membership while its objects remained inaccessible.

The cluster had not fully returned to its normal operating configuration.

Broadcom documents this behavior in KB 393357.

Step 5: Recover the vSAN Cluster

Important: The following commands modify the vSAN host configuration. They should only be used after confirming that the hosts are online, the cluster network is healthy and no intentional shutdown or restart workflow is still running.

In a production environment, I would also verify the data protection and recovery situation before making changes.

With the cluster membership already verified, I reset the two advanced settings on the affected ESXi hosts:

esxcfg-advcfg -s 0 /VSAN/DOMPauseAllCCPs
esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates

The commands returned:

Value of DOMPauseAllCCPs is 0
Value of IgnoreClusterMemberListUpdates is 0

No ESXi host reboot was necessary for the observed recovery.

Step 6: Verify vSAN Object Recovery

Immediately after resetting the parameters on nesx901, I checked the object health again:

esxcli vsan debug object health summary get

This time, the result was:

Health Status       Number Of Objects
-------------------------------------
inaccessible                        0
healthy                           749

All 749 previously inaccessible vSAN objects had recovered.

This was the strongest confirmation that the remaining shutdown protection settings had been responsible for the inaccessible objects.

Verify Resynchronization

I also checked whether any vSAN object synchronization was still required:

esxcli vsan debug resync summary get

The output was:

Total Number Of Resyncing Objects: 0
Total Bytes Left To Resync: 0
Total GB Left To Resync: 0.00

There were no remaining resynchronization operations.

Note that esxcli vsan resync list was not available in this ESXi 9.1.1 environment. The working command was esxcli vsan debug resync summary get.

Verify Overall Cluster Health

Finally, I ran:

esxcli vsan health cluster list

The output confirmed:

Overall health findings    green (OK)
Cluster                    green
Network                    green
Data                       green
Capacity utilization       green
Physical disk              green
Performance service        green

All vSAN health categories were green.

The performance service had also recovered, including the statistics database, primary election and data collection checks.

Before and After

Health Check Before Recovery After Recovery
Cluster Membership3/33/3
vSAN Objects Healthy0749
vSAN Objects Inaccessible7490
vSAN Object HealthRedGreen
Performance ServiceYellowGreen
Overall Cluster HealthRedGreen
Pending ResyncNot yet verified0 GB
DOMPauseAllCCPs10 on all three ESXi hosts
IgnoreClusterMemberListUpdates10 on all three ESXi hosts

The final storage health checks confirmed that the cluster was operational again.

The earlier migration failure and vSphere Client warning were part of the original symptoms. A separate successful migration retest was not captured in the diagnostic output presented here.

Lessons Learned

1. Cluster Membership Does Not Guarantee Storage Availability

All three ESXi hosts were present and the vSAN master was healthy.

Nevertheless, every reported vSAN object was inaccessible.

2. ACTIVE Components Do Not Necessarily Mean Healthy Objects

The components were distributed across the hosts and reported as active, but object initialization was blocked.

3. Always Check Shutdown Protection Settings After a Failed Restart

These two commands should be part of any vSAN startup troubleshooting checklist:

esxcfg-advcfg -g /VSAN/DOMPauseAllCCPs
esxcfg-advcfg -g /VSAN/IgnoreClusterMemberListUpdates

4. Avoid Destructive Recovery Actions Before Understanding the Root Cause

Deleting inaccessible objects would have been completely inappropriate in this situation.

The objects recovered without any object deletion, datastore recreation or host removal.

5. Validate Recovery at Multiple Levels

A successful recovery should include:

esxcli vsan cluster get
esxcli vsan debug object health summary get
esxcli vsan debug resync summary get
esxcli vsan health cluster list

Together, these checks validate membership, object accessibility, resynchronization and overall vSAN health.

Preventing the Issue in My HomeLab

Because my nested VMware lab is frequently powered on and off for development and testing, I’m planning to incorporate these checks into my automated startup validation workflow.

The workflow should:

  1. Verify that all expected ESXi hosts are connected.
  2. Confirm that the vSAN cluster membership is complete.
  3. Check both shutdown protection settings on every host.
  4. Detect unexpected values of 1 and report them.
  5. Verify that the cluster startup workflow has completed before allowing any corrective action.
  6. Validate vSAN object health and pending resynchronization.

I would not automatically reset the parameters simply because they are set to 1. During an intentional shutdown, those values are expected.

The automation must first establish that the cluster should be operating normally.

This is particularly important for my testing environment, where reliable cluster startup and shutdown behavior is essential for repeatable end-to-end tests.

Conclusion

This incident was a good reminder that vSAN can appear healthy at the host and network level while its storage objects remain completely inaccessible.

In my case, the problem was caused by two advanced settings left enabled after the vSAN cluster shutdown and restart workflow:

DOMPauseAllCCPs = 1
IgnoreClusterMemberListUpdates = 1

Resetting them to their normal values restored object accessibility.

The final result:

  • 749 healthy objects
  • 0 inaccessible objects
  • 0 GB pending resync
  • Overall vSAN health: Green (OK)

No object deletion, datastore rebuild or ESXi host reboot was required.

Sometimes, the most useful troubleshooting clue is not the biggest error message but a pair of advanced settings that never returned to their expected state.

References

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert