Building a Two-Node vSAN ESA Cluster with the ESA Witness Appliance

I wanted to build a two-node vSAN ESA cluster (Express Storage Architecture) in my homelab. This walkthrough covers the host networking, deployment of the ESA Witness Appliance, and the vSphere Client configuration wizard.

The final layout uses two ESXi hosts for vSAN data and a vSAN ESA Witness Appliance deployed from an OVA for witness components. The witness helps establish quorum; it does not add usable VM data capacity to the two-node datastore. See the vSAN 2-Node Cluster Guide for the architecture and deployment requirements.

Networking for a two-node vSAN ESA cluster

Before starting, I had the two data hosts in a cluster and had created the distributed port groups for the vSAN network. The witness appliance remains outside the data cluster and is managed by the same vCenter Server. Its network must be able to communicate with the data hosts.

This is a homelab configuration. Hardware, capacity, and settings shown here describe my lab; check the compatibility and sizing requirements for your own deployment. Environment-specific names and addresses in the screenshots have been replaced with consistent generic examples. The settings and selections reflect the captured walkthrough.

Distributed port groups for the two-node vSAN ESA cluster and witness networks.
Distributed port groups prepared for the data hosts and witness network.

Create a vSAN VMkernel adapter on each data host

Select the first data host and open Configure → Networking → VMkernel adapters. Click Add Networking.

VMkernel adapters on the first data host in the two-node vSAN ESA cluster.
Start from the host’s VMkernel adapters page.

For the connection type, select VMkernel Network Adapter and click Next.

Select VMkernel Network Adapter.
Select VMkernel Network Adapter.

Choose Select an existing network, then select the distributed port group created for vSAN traffic.

Select the vSAN distributed port group for the two-node vSAN ESA cluster.
Select the vSAN distributed port group.

On Port properties, enable the vSAN service. I used the Default TCP/IP stack and an MTU of 9000. Use an MTU supported consistently across the full network path; changing only the VMkernel setting does not establish end-to-end jumbo-frame connectivity.

Enable vSAN traffic on a data-host VMkernel adapter for the two-node vSAN ESA cluster.
Enable vSAN on the VMkernel adapter.

Enter the host’s static IPv4 configuration. Use a unique address for each host, the correct subnet mask, and the appropriate routing for your network. The screenshot uses generic example values in place of my internal addresses: IP 198.51.100.41, subnet mask 255.255.255.0, gateway 198.51.100.1, and DNS server 192.0.2.53.

Example VMkernel IPv4 settings on a two-node vSAN ESA cluster data host.
Configure the VMkernel IPv4 settings using your own network values; example addresses are shown.

Review the selected port group, MTU, and enabled services, then click Finish. Repeat the same process on the second data host, using its own IP address. I have included the first host’s screenshots because the second host follows the same workflow.

Review the adapter configuration before finishing.
Review the adapter configuration before finishing.

Deploy the vSAN ESA Witness Appliance OVA

Download the ESA witness OVA from the Broadcom Support portal with the required entitlements. Start Deploy OVF Template in the vSphere Client, choose Local file, and select the downloaded OVA. This walkthrough uses the 9.1.1.0 ESA witness template.

Select the vSAN ESA Witness Appliance OVA.
Select the vSAN ESA Witness Appliance OVA.

Enter an appliance name and choose its inventory location. The examples in this post use witness01 and Lab-DC.

Name the witness appliance and select its inventory location.
Name the witness appliance and select its inventory location.

Select the compute resource that will run the witness VM and confirm the compatibility check succeeds.

Select the compute destination for the witness VM.
Select the compute destination for the witness VM.

Review the template details and advanced configuration options.

Review the ESA witness template details.
Review the ESA witness template details.

Read the license agreement and accept it to continue with deployment.

Review the license agreement.
Review the license agreement.

Choose the deployment configuration appropriate for your environment. I selected Medium in this lab.

Select the witness deployment configuration.
Select the witness deployment configuration.

Select the datastore and virtual disk format. I used Thin Provision for the witness VM.

Select storage for the witness appliance.
Select storage for the witness appliance.

Map Management Network to the management port group and Secondary Network to the vSAN port group. The examples use lab-esx-mgmt and lab-vsan.

Map the management and secondary networks.
Map the management and secondary networks.

Set and confirm the appliance root password, then select Secondary for vSAN traffic. Enter the management-network settings.

Configure the root password and management network; addresses are examples.
Configure the root password and management network; addresses are examples.

Complete the management gateway, DNS domain, hostname, DNS and NTP settings, then configure the secondary network’s IP address, mask and gateway. The screenshots use example values; substitute your own network settings.

Complete management and secondary-network settings using separate subnet gateways.
Complete management and secondary-network settings using separate subnet gateways.

Review the deployment summary and click Finish. Wait for deployment to complete and power on the appliance.

Review the OVA deployment configuration.
Review the OVA deployment configuration.

Correct the witness gateways and MTU after deployment

After deploying the witness OVA, I found that it had not applied the management-network gateway I entered. It was using the vSAN-network gateway for the management network as well, which prevented management communication from working.

I opened the witness appliance’s web console and corrected the management gateway. I also changed the default gateway on the vSAN VMkernel adapter to the correct gateway for its own subnet.

Finally, I increased the MTU on both the secondary virtual switch and the vSAN VMkernel adapter from the default 1500 to 9000, matching the two data hosts in this cluster. Leaving the witness path at 1500 would create an MTU mismatch with this lab’s 9000-byte vSAN configuration. The full network path must support the configured MTU.

These were corrections I made in this deployment. Check the management and vSAN gateways separately and verify the MTU settings before continuing.

Add the ESA witness to vCenter as a standalone host

After deploying and powering on the appliance, right-click the datacenter and select Add Host. The generalized screenshots call this datacenter Lab-DC. Add the witness as a standalone host outside the two-node data cluster.

Enter the appliance’s management hostname or IP address. The example hostname is witness01.lab.example.

Add the witness appliance to the datacenter as a standalone host.
Add the witness appliance to the datacenter as a standalone host.

Enter root and the password configured during OVA deployment.

Enter the witness appliance credentials.
Enter the witness appliance credentials.

If the host certificate alert appears, review the certificate and verify that it belongs to the intended appliance before continuing. Review the host summary.

Review the witness host summary.
Review the witness host summary.

For host lifecycle management, I selected Extract the image on the host, then reviewed the resulting image specification.

Select the host lifecycle image option.
Select the host lifecycle image option.

Review the extracted ESXi image before continuing.

Review the witness host image specification.
Review the witness host image specification.

The Assign license screen identifies the host as a vSAN Witness host and states that it will not use capacity from the vCenter license.

Review the witness-host licensing information.
Review the witness-host licensing information.

I left Lockdown mode set to Disabled for this lab.

Review the lockdown-mode selection.
Review the lockdown-mode selection.

Select the location for the host’s virtual machines.

Select the VM inventory location.
Select the VM inventory location.

Review the hostname, location, image and other settings, then click Finish.

Review the Add Host summary.
Review the Add Host summary.

The final capture shows the witness host in the datacenter inventory with its state Connected. It is now available for selection in the two-node vSAN configuration wizard.

The witness appliance is connected to vCenter as a standalone host.
The witness appliance is connected to vCenter as a standalone host.

Temporarily disable vSphere HA

Before enabling vSAN, I confirmed that vSphere HA was turned off under Configure → Services → vSphere Availability. If it is enabled, open Edit and turn it off for this configuration step.

This is temporary. Broadcom’s enabling vSAN procedure describes disabling HA during configuration and enabling it afterward. The two-node guide includes the HA settings to review for this topology.

Confirm vSphere HA is off before configuring vSAN.
Confirm vSphere HA is off before configuring vSAN.

Configure the two-node vSAN ESA cluster

Select the data cluster and open Configure → vSAN → Services. Choose Two node vSAN cluster, then click Configure.

Choose the two-node vSAN cluster topology.
Choose the two-node vSAN cluster topology.

Keep vSAN ESA enabled on the first page and click Next.

Enable ESA for the two-node vSAN ESA cluster.
Enable vSAN Express Storage Architecture.

Review the optional services. In this lab, data-at-rest encryption, data-in-transit encryption, reduced redundancy, and RDMA were not enabled. Auto-Policy management and Apply Auto-RAID to all objects were enabled. These are the selections used for this walkthrough.

Review the services selected for the lab.
Review the services selected for the lab.

On Claim disks, select the devices that will contribute to the data hosts’ vSAN storage pools. I chose manual disk claiming for this two-node vSAN ESA cluster so I can enable memory tiering on these hosts at a later time. The wizard showed two claimed disks and approximately 3.64 TB of total vSAN datastore capacity. This displayed capacity is not the usable capacity after policy protection and overhead.

Manually claim storage disks for the two-node vSAN ESA cluster.
Claim the disks for the two data hosts.

On Select witness host, choose the ESXi instance of the deployed ESA Witness Appliance. In the generalized screenshot, this is witness01.lab.example. Confirm that the compatibility check succeeds, then continue to Review.

Select the compatible ESA Witness Appliance for the two-node vSAN ESA cluster.
Select the ESA Witness Appliance and confirm compatibility checks succeed.

Review the final configuration. Confirm the two-node topology, ESA, data disks, witness host, and service selections before clicking Finish.

Review the two-node vSAN ESA cluster configuration and ESA Witness Appliance.
Review the two-node ESA configuration with the ESA Witness Appliance selected.

Monitor the configuration tasks

After finishing the wizard, open Monitor → Tasks and Events → Tasks and watch the vSAN configuration tasks. Confirm that the configuration tasks complete successfully before reviewing cluster health.

Check vSAN health after configuration

Completed configuration tasks are the first checkpoint. I then opened Monitor → vSAN → vSAN Health to review cluster health and address the cluster-compliance finding.

Resolve the 10 Gb ESA cluster-compliance setting

The compliance remediation for this lab was to set /VSAN/DOMNetworkSchedulerThrottleComponent to 1 on each data host. Broadcom recommends this for ESA clusters using 10 Gb networking to improve sharing between resynchronization traffic and VM I/O. It is not a general requirement for faster networks; the Broadcom workaround advises against the setting for 25 Gb or faster networking.

SSH into each data host and run:

esxcli system settings advanced set -i 1 -o /VSAN/DOMNetworkSchedulerThrottleComponent

Verify the value on each host:

esxcli system settings advanced list -o /VSAN/DOMNetworkSchedulerThrottleComponent

Confirm that Int Value is 1, then rerun the health check. The subsequent health check showed that the compliance alert had cleared.

Two-node vSAN ESA cluster health checkpoint

After configuring the cluster with the ESA Witness Appliance, I returned to Monitor → vSAN → vSAN Health. The final captured overview shows a health score of 99, with one unhealthy finding and one informational finding. The details of those findings are not visible in this capture, so I would review them individually before treating validation as complete.

Two-node vSAN ESA cluster health overview: score 99, one unhealthy finding and one informational finding.
Final vSAN health overview: score 99, with remaining findings to review.

Validate the two-node vSAN ESA cluster before adding workloads

  • Rerun vSAN health and resolve any remaining findings.
  • Confirm connectivity, the storage pools on both data hosts, and the ESA Witness Appliance assignment.
  • Check the datastore, VM storage policies, and policy compliance.
  • Re-enable vSphere HA after vSAN configuration, then review the two-node HA guidance and validate the resulting configuration.

The vSAN 2-Node Cluster Guide provides design and operating guidance. My final captured health review is shown above. Review the remaining findings and validate the storage policies and HA configuration before relying on the cluster for workloads.

For another deployment workflow, see my guide to enabling vSAN ESA on a workload domain in VMware Cloud Foundation 9.1.1.

Leave a Reply

Your email address will not be published. Required fields are marked *

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