WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
    • VMware Cloud Foundation 9
  • VKS
  • Homelab
    • Hardware Options
    • Hardware Reviews
    • Lab Deployment Scripts
    • Nested Virtualization
    • Homelab Podcasts
  • VMware Nostalgia
  • Apple
You are here: Home / ESXi / Using Nested ESXi for VMware Cloud Foundation (VCF) Workload Domain fails with vSAN ESA Auto Disk Claim 

Using Nested ESXi for VMware Cloud Foundation (VCF) Workload Domain fails with vSAN ESA Auto Disk Claim 

05.28.2024 by William Lam // 2 Comments

As of VMware Cloud Foundation 5.1.0, you can now use the new vSAN Express Storage Architecture (ESA) when deploying a VCF Workload Domain where as in earlier releases, only the vSAN Original Storage Architecture (OSA) was supported, which is typically what I deploy for testing purposes.

While working on some enhancements to my VCF Automated Lab Deployment Script, I needed to go through a VCF Workload Domain deployment using vSAN ESA but I kept running into the following error within SDDC Manager: Perform vSAN ESA Auto Disk Claim


Based on the error message, I had assumed there was an issue with claiming the SSD on the Nested ESXi VM for vSAN ESA but when I logged into the VCF Workload Domain vCenter Server, I was able to claim the devices without any issues. Looking at the SDDC Manager logs /var/log/vmware/vcf/domainmanager/domainmanager.log also did not yield anything useful:

2024-05-27T12:43:44.545+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] Host host-16 does not contribute to the vSAN ESA storage. 2024-05-27T12:43:44.598+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] Host host-19 does not contribute to the vSAN ESA storage. 2024-05-27T12:43:44.650+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] Host host-20 does not contribute to the vSAN ESA storage. 2024-05-27T12:43:44.701+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] Host host-21 does not contribute to the vSAN ESA storage. 2024-05-27T12:43:44.702+0000 DEBUG [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.e.s.c.c.v.vsphere.VsphereClient,dm-exec-14] Destroying 2 open views 2024-05-27T12:43:44.722+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] Failed to verify storage pool disks for cluster wld-w01-cl01 2024-05-27T12:43:44.723+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.v.c.f.p.a.i.ClaimDisksForVsanEsaClusterAction,dm-exec-14] com.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Found host(s) in clust er wld-w01-cl01 without contributing to storage pool. 2024-05-27T12:43:44.723+0000 ERROR [vcf_dm,66548000bff276b81889b17ab22d34ed,2f33] [c.v.e.s.o.model.error.ErrorFactory,dm-exec-14] [A337BL] VSPHERE_AUTO_DISK_CLAIM_FAILED Failed to enable auto claim on cluster wld-w01-cl01 com.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Failed to enable auto claim on cluster wld-w01-cl01 at com.vmware.vcf.common.fsm.plugins.action.impl.ClaimDisksForVsanEsaClusterAction.postValidate(ClaimDisksForVsanEsaClusterAction.java:119) at com.vmware.vcf.common.fsm.plugins.action.impl.ClaimDisksForVsanEsaClusterAction.postValidate(ClaimDisksForVsanEsaClusterAction.java:23) at com.vmware.evo.sddc.orchestrator.platform.action.FsmActionState.lambda$static$1(FsmActionState.java:23) at com.vmware.evo.sddc.orchestrator.platform.action.FsmActionState.invoke(FsmActionState.java:62) at com.vmware.evo.sddc.orchestrator.platform.action.FsmActionPlugin.invoke(FsmActionPlugin.java:159) at com.vmware.evo.sddc.orchestrator.platform.action.FsmActionPlugin.invoke(FsmActionPlugin.java:144) at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.invokeMethod(ProcessingTaskSubscriber.java:400) at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.processTask(ProcessingTaskSubscriber.java:561) at com.vmware.evo.sddc.orchestrator.core.ProcessingTaskSubscriber.accept(ProcessingTaskSubscriber.java:124) at jdk.internal.reflect.GeneratedMethodAccessor397.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:85) at com.google.common.eventbus.Subscriber.lambda$dispatchEvent$0(Subscriber.java:71) at com.vmware.vcf.common.tracing.TraceRunnable.run(TraceRunnable.java:59) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: com.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Found host(s) in cluster wld-w01-cl01 without contributing to storage pool. at com.vmware.vcf.common.fsm.plugins.action.impl.ClaimDisksForVsanEsaClusterAction.postValidate(ClaimDisksForVsanEsaClusterAction.java:113) ... 17 common frames omitted

After a bit of digging, I was wondering if this was related to a similiar issue that is seen during the VCF Bringup of the VCF Management Domain using vSAN ESA where a custom vSAN HCL JSON was required?

It turns out we also need to update the default vSAN HCL JSON that is located on SDDC Manager with our custom generated vSAN HCL to get around this error, which I wish was part of the error message so it was a bit more specific to issue observed.

Step 1 - You will need to ensure that your Nested ESXi VM only has an NVMe storage controller configured. If you are using my Nested ESXi Virtual Appliance, you will need to add NVMe controller and then update each disk to use the NVMe controller and finally remove the SCSI controller before proceeding further.


Here is a quick PowerCLI snippet if you are interested in automating the reconfiguration of Nested ESXi VM:

$vm = Get-VM [Nested ESXi VM]
$devices = $vm.ExtensionData.Config.Hardware.Device

$newControllerKey = -102

# Reconfigure 1 - Add NVMe Controller & Update Disk Mapping to new controller
$deviceChanges = @()
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

$scsiController = $devices | where {$_.getType().Name -eq "ParaVirtualSCSIController"}
$scsiControllerDisks = $scsiController.device

$nvmeControllerAddSpec = New-Object VMware.Vim.VirtualDeviceConfigSpec
$nvmeControllerAddSpec.Device = New-Object VMware.Vim.VirtualNVMEController
$nvmeControllerAddSpec.Device.Key = $newControllerKey
$nvmeControllerAddSpec.Device.BusNumber = 0
$nvmeControllerAddSpec.Operation = 'add'
$deviceChanges+=$nvmeControllerAddSpec

foreach ($scsiControllerDisk in $scsiControllerDisks) {
    $device = $devices | where {$_.key -eq $scsiControllerDisk}

    $changeControllerSpec = New-Object VMware.Vim.VirtualDeviceConfigSpec
    $changeControllerSpec.Operation = 'edit'
    $changeControllerSpec.Device = $device
    $changeControllerSpec.Device.key = $device.key
    $changeControllerSpec.Device.unitNumber = $device.UnitNumber
    $changeControllerSpec.Device.ControllerKey = $newControllerKey
    $deviceChanges+=$changeControllerSpec
}

$spec.deviceChange = $deviceChanges

$task = $vm.ExtensionData.ReconfigVM_Task($spec)
$task1 = Get-Task -Id ("Task-$($task.value)")
$task1 | Wait-Task | Out-Null

# Reconfigure 2 - Remove PVSCSI Controller
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$scsiControllerRemoveSpec = New-Object VMware.Vim.VirtualDeviceConfigSpec
$scsiControllerRemoveSpec.Operation = 'remove'
$scsiControllerRemoveSpec.Device = $scsiController
$spec.deviceChange = $scsiControllerRemoveSpec

$task = $vm.ExtensionData.ReconfigVM_Task($spec)
$task1 = Get-Task -Id ("Task-$($task.value)")
$task1 | Wait-Task | Out-Null

Step 2 - We now need to generate our custom vSAN ESA JSON based on our running Nested ESXi VM and replace that on SDDC Manager before starting the VCF Workload Domain deployment. We will use my create_custom_vsan_esa_hcl_json.ps1 PowerCLI script which just needs to connect to one of the Nested ESXi VM (Connect-VIServer) to generate the custom vSAN HCL JSON.

Step 3 - SSH to SDDC Manager and update /nfs/vmware/vcf/nfs-mount/vsan-hcl/all.json with the contents of the custom vSAN HCL JSON from Step 2

Note: Make sure the ownership of  the file is vcf_lcm:vcf in case you decide to remove and simply re-create the file.

At this point you can now start a VCF Workload Domain deployment using the SDDC Manager UI or API and you should no longer run into the vSAN ESA Auto Disk Claim error 🙂

Categories // ESXi, Home Lab, Nested Virtualization, VMware Cloud Foundation, VSAN Tags // Nested ESXi, VMware Cloud Foundation, vSAN ESA

Comments

  1. *protectedDiego says

    10/07/2025 at 5:47 am

    Hi William, how are you doing? Do you think this works for VCF 9?

    Reply
    • *protectedDiego says

      10/07/2025 at 6:12 am

      Hi William, just to update you I followed all the steps as described. For VCF 9 specifically, I had to take one extra step: I retrieved the SSO administrator credentials from SDDC Manager through the API, logged into vCenter, manually added all the disks, and then restarted the task in SDDC Manager. Everything is working fine now.

      Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Simplify License Management across VCF Operations Fleet & Standalone Deployment for Monitoring 03/05/2026
  • Automated Initial Configuration of VCF Operations 9 using CASA API 03/04/2026
  • Automated Deployment of VCF Operations 9 OVA 02/27/2026
  • Frequent Query container volume async Tasks in vSphere UI  02/20/2026
  • Quick Tip - Debugging "stuck" vSphere Supervisor being removed 02/19/2026

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2026

 

Loading Comments...