VMware vSAN Knowledge Base

Phase 4 — VCF Integration & Lifecycle ⚠ Break Scenarios ✓ Fix Procedures
14
VCF & Lifecycle Issues
5
Break Scenarios
9
Fix Procedures
Phase 4
Current Phase
31
SDDC Manager Bring-Up Fails — vSAN Cluster Not Formed
VCF management domain deployment stalls during vSAN datastore creation or disk claiming
Impact: VCF management domain cannot be deployed. No workload domains can be created. Entire VCF stack is blocked at Day 0.
Symptoms
  • SDDC Manager bring-up wizard stalls at "Create vSAN Cluster" step
  • Bring-up JSON validation passes, but task fails at ~40-60%
  • SDDC Manager logs show "vSAN disk group creation failed"
  • ESXi hosts show disks but vSAN cannot claim them
  • Cloud Builder VM reports timeout waiting for vSAN datastore
Common Root Causes
  • Disk controller not in VMware HCL for vSAN (firmware/driver mismatch)
  • Disks have existing partition tables (not wiped before bring-up)
  • vSAN VMkernel (vmk1) IP mismatch in bring-up JSON vs. actual config
  • Time sync (NTP) skew >5 minutes between hosts
  • ESXi build not matching VCF Bill of Materials (BoM)
1

Verify disk eligibility from ESXi Shell on each host

# List all disks visible to vSAN
esxcli vsan storage list

# Check for existing partitions blocking claim
esxcli storage core device partition list

# Identify vSAN-eligible disks
esxcli vsan storage automode get
2

Wipe stale partitions on unclaimed disks (ESXi Shell)

# Remove existing partition table from disk (replace naa.xxx with actual device ID)
# WARNING: This destroys ALL data on the disk
partedUtil delete "/vmfs/devices/disks/naa.xxxxxxxxxxxxxxxxxxxx" 1

# For GPT-formatted disks, delete all partitions
partedUtil mklabel "/vmfs/devices/disks/naa.xxxxxxxxxxxxxxxxxxxx" gpt
3

Verify NTP sync and VMkernel config before retrying

# Check NTP synchronization
esxcli system ntp get

# Verify vSAN VMkernel adapter IP
esxcli network ip interface ipv4 get

# Confirm vSAN traffic tag on vmk adapter
esxcli vsan network list
4

Validate ESXi build matches VCF BoM, then retry bring-up

# Check ESXi version on host
vmware -vl

# Compare output against VCF compatibility matrix
# Navigate to: SDDC Manager UI > Lifecycle Management > Bundle Management
# Ensure ESXi ISO/build matches BoM for your target VCF version
🛈 Best Practice: Always run the VCF Pre-Check tool from Cloud Builder before initiating bring-up. This validates network, NTP, DNS, ESXi version, and disk eligibility in advance.
32
Workload Domain Expansion Fails — Host Commission Stuck
Adding new ESXi hosts to a VCF workload domain fails during vSAN disk claiming or network validation
Impact: Cluster cannot scale out. New VMs cannot be placed. Capacity constraints grow until expansion completes. Pending host sits in "Error" state in SDDC Manager.
Symptoms
  • SDDC Manager shows host commission task at "Validating Host" or "Adding Host to Cluster" indefinitely
  • Host appears in vCenter but not joined to vSAN cluster
  • vSAN Health shows "Network: vSAN cluster partition"
  • SDDC Manager task log: "Failed to claim disks" or "Network validation failed"
Root Causes
  • New host ESXi version not in VCF BoM (even minor patch mismatch)
  • Host network profile mismatch (VLAN ID, MTU, vmk IP range)
  • Disks on new host have stale VMFS/vSAN partitions from prior use
  • Host not in SDDC Manager host inventory (needs commissioning first)
  • DNS PTR record missing for the new host IP
1

Validate host prerequisites from ESXi Shell

# Confirm ESXi version and build
vmware -vl

# Check all disks are clean
esxcli storage core device list | grep -i "Display Name"

# Verify no existing vSAN disk groups
esxcli vsan storage list

# Check NTP sync
esxcli system ntp get
2

Verify network profile matches existing cluster hosts

# Check vmk interfaces and VLAN assignments
esxcli network ip interface list
esxcli network ip interface ipv4 get

# Verify vSAN vmk has correct traffic type
esxcli vsan network list

# Test MTU end-to-end (must match cluster — typically 9000 for jumbo)
vmkping -I vmk1 -d -s 8972 <existing-host-vSAN-IP>
3

Commission host properly in SDDC Manager

# In SDDC Manager UI:
# 1. Navigate to Inventory > Hosts
# 2. Click "Commission Hosts"
# 3. Provide host FQDN, credentials, and storage/network pool
# 4. Wait for validation — all checks must pass (green)

# If commission fails, check SDDC Manager logs:
# SSH to SDDC Manager VM
cat /var/log/vmware/vcf/domainmanager/domainmanager.log | grep -i "commission"
4

Retry host addition after fixing prerequisites

# In SDDC Manager UI:
# Inventory > Workload Domains > Select Domain > Select Cluster > Add Host
# Ensure "Retry" on the failed task or start fresh after decommission

# After host joins, verify vSAN membership:
esxcli vsan cluster get
esxcli vsan storage list
Important: Never manually add hosts to vCenter in a VCF environment. All host operations must go through SDDC Manager to maintain desired state consistency.
33
VCF Lifecycle Bundle Download or Apply Failure
SDDC Manager fails to download update bundles from depot or apply them to workload domains
Impact: VCF environment cannot be patched or upgraded. Security vulnerabilities remain unpatched. Compliance drift grows. Downstream bundle dependencies may be blocked.
Symptoms
  • SDDC Manager > Lifecycle Management shows "Bundle download failed"
  • Update pre-check passes but apply task fails at "Staging" or "Installing"
  • Error: "Unable to connect to VMware Depot" or "Checksum mismatch"
  • Bundle stuck in "Downloading" state for hours
  • Offline bundle upload via SCP rejected by SDDC Manager
Root Causes
  • SDDC Manager cannot reach depot.vmware.com (firewall or proxy)
  • Expired or invalid My VMware credentials in SDDC Manager depot settings
  • Insufficient space on SDDC Manager /nfs/vmware/vcf/nfs-mount
  • Bundle version skipped — VCF requires sequential upgrade path
  • SSL interception proxy corrupting bundle checksums
1

Verify depot connectivity from SDDC Manager

# SSH to SDDC Manager appliance
curl -v https://depot.vmware.com 2>&1 | head -30

# If using a proxy, verify proxy settings
cat /etc/vmware/vcf/domainmanager/application.properties | grep proxy

# Check DNS resolution
nslookup depot.vmware.com

# Verify NTP sync (certificate validation will fail if clock is off)
timedatectl status
2

Check storage space and clean stale downloads

# Check disk usage on SDDC Manager
df -h /nfs/vmware/vcf/nfs-mount

# List downloaded bundles
ls -lah /nfs/vmware/vcf/nfs-mount/bundle/

# Remove stale/incomplete bundle files if space is low
# Navigate to SDDC Manager UI > Lifecycle > Bundle Management
# Delete any bundles in "Failed" state before retrying
3

For air-gapped environments — use offline bundle transfer

# Download bundle from my.vmware.com on a connected machine
# Transfer to SDDC Manager via SCP:
scp VCF-*.tar vcf@sddc-manager:/nfs/vmware/vcf/nfs-mount/bundle/

# In SDDC Manager UI:
# Lifecycle Management > Bundle Management > Upload Bundle
# Select the transferred .tar file

# Alternatively, use the VCF Bundle Transfer Utility (BTU)
# from Broadcom support portal for structured offline transfers
4

Verify upgrade path and retry

# In SDDC Manager UI:
# Lifecycle > Bundle Management — verify bundle order
# VCF REQUIRES sequential upgrades: e.g., 4.5 → 5.0 → 5.1 → 5.2
# You CANNOT skip intermediate versions

# Run pre-check before apply:
# Lifecycle > Updates > Select Update > Run Pre-Check
# Fix any failures, then Apply
🛈 Note: VCF 5.x bundles are available exclusively through the Broadcom Support Portal. Ensure your Broadcom entitlement is properly linked to your organization's VCF licenses.
34
NSX-T Transport Node Breaks vSAN Connectivity
NSX transport node preparation disrupts vSAN VMkernel traffic causing cluster partition or data unavailability
Impact: vSAN cluster partitions when NSX VDS migration moves vSAN VMkernel to an N-VDS or misconfigured VDS. All objects become inaccessible. VMs freeze with I/O errors. This is a Day 1/Day 2 top killer in VCF deployments.
Symptoms
  • Immediately after NSX transport node prep: vSAN health alarm — "Network: All hosts have unicast connectivity" fails
  • VMs report disk I/O errors or become unresponsive
  • vSAN objects show "Inaccessible" in vSphere Client
  • ESXi vmkernel.log: "Lost access to vSAN network"
  • NSX Manager shows transport node as "Partial Success" or "Failed"
Root Causes
  • Transport Node Profile (TNP) incorrectly maps vSAN VMkernel to wrong uplink
  • VDS uplink failover order changed during NSX preparation
  • TEP (Tunnel Endpoint) VLAN overlaps with vSAN VLAN
  • MTU reduced below 1600 for overlay traffic, starving vSAN jumbo frames
  • Physical switch LACP/static LAG config mismatch after NSX VDS changes
1

Immediately verify vSAN VMkernel connectivity

# On each ESXi host — check vSAN vmk is reachable
vmkping -I vmk1 <other-host-vSAN-IP> -d -s 8972

# If vmk1 is down, check the port group and uplink
esxcli network ip interface list
esxcli network vswitch dvs vmware list

# Check vSAN network membership
esxcli vsan network list
2

If vSAN vmk lost its uplink — emergency fix from ESXi Shell

# List current VDS port group assignments
esxcli network vswitch dvs vmware list

# If vmk1 has no active uplinks, check the physical NIC assignment
esxcli network nic list

# In vSphere Client (if accessible):
# Host > Configure > Networking > VMkernel adapters
# Verify vmk1 is on the correct VDS port group with active uplinks

# CRITICAL: Do NOT reboot the host — fix networking in-place
3

Fix the Transport Node Profile before re-applying

# In NSX Manager UI:
# System > Fabric > Profiles > Transport Node Profiles
# Edit the TNP:
#   - Verify uplink mapping: vSAN vmk must remain on a dedicated uplink
#   - TEP VLAN must NOT overlap with vSAN VLAN
#   - MTU must be ≥9000 for vSAN (if using jumbo frames)

# Recommended VDS layout for VCF:
#   Uplink 1+2: Management + vMotion + vSAN (active/standby)
#   Uplink 3+4: NSX overlay TEP + Edge uplinks
# NEVER share the same physical uplinks for TEP and vSAN without proper teaming
4

Re-apply TNP and validate vSAN health

# After fixing TNP, re-apply from NSX Manager:
# System > Fabric > Nodes > Host Transport Nodes
# Select the failed node > Resolve or Re-apply

# Verify vSAN health post-fix:
esxcli vsan health cluster list

# In vSphere Client:
# Cluster > Monitor > vSAN > Health
# All network tests must show green
Prevention: ALWAYS take a configuration backup of the VDS and host network config BEFORE applying NSX Transport Node Profiles. Test TNP on a single host first (remove from TNP auto-apply), validate vSAN health, then roll out to remaining hosts.
35
Configuring vSAN Stretched Cluster in VCF — Correct Workflow
Proper SDDC Manager workflow for deploying and maintaining stretched vSAN clusters across two sites with a witness
🛈 Context: VCF supports stretched vSAN clusters for workload domains. However, the setup requires specific SDDC Manager workflows — manual vSAN stretched cluster configuration outside SDDC Manager will cause desired-state drift and future lifecycle failures.
Requirements
  • Minimum 3+3 hosts (3 per site) + 1 witness host
  • L2 stretched VLAN for vSAN between sites (or L3 with routing)
  • RTT between sites ≤ 5ms (vSAN requirement)
  • Witness host at a third site (cannot be at either data site)
  • SDDC Manager 5.x with stretched cluster support enabled
Architecture
  • Preferred site: Primary read locality (Site A)
  • Secondary site: Replica site (Site B)
  • Witness site: Tiebreaker — hosts only witness components (Site C)
  • Objects stored as: RAID-1 (site-mirror) across Site A + Site B + witness vote at Site C
  • VM placement governed by vSphere HA admission control & DRS affinity
1

Deploy witness host and validate connectivity

# Deploy the vSAN Witness Appliance OVA (from Broadcom downloads)
# In vSphere Client: Deploy OVF Template > select witness OVA
# Assign witness to management vCenter (NOT workload vCenter)

# After deployment, SSH to witness and verify:
esxcli vsan network list
vmkping -I vmk1 <site-A-vSAN-IP> -d -s 8972
vmkping -I vmk1 <site-B-vSAN-IP> -d -s 8972
2

Configure stretched cluster via SDDC Manager

# In SDDC Manager UI:
# Inventory > Workload Domains > Create Workload Domain
#   (or modify existing domain)
# Select "Stretched Cluster" deployment type
# Assign hosts to Site A (preferred) and Site B (secondary)
# Specify witness host FQDN and credentials

# SDDC Manager will:
# 1. Configure fault domains (preferred / secondary)
# 2. Set up witness traffic routing
# 3. Apply correct vSAN storage policies (Site Disaster Tolerance = 1)
3

Validate health after stretch configuration

# In vSphere Client:
# Cluster > Monitor > vSAN > Health
# Check these critical tests:
#   - "Stretched cluster: Witness host within vCenter cluster" — MUST be green
#   - "Stretched cluster: Preferred fault domain healthy"
#   - "Stretched cluster: Secondary fault domain healthy"
#   - "Stretched cluster: Witness host healthy"

# From ESXi on any data host:
esxcli vsan cluster get
# Look for: "Sub-Cluster Master Mode: PREFERRED" or "SECONDARY"
4

Configure DRS affinity rules for site awareness

# In vSphere Client:
# Cluster > Configure > VM/Host Rules
# Create rules to pin critical VMs to preferred site:
#   Rule Type: "Virtual Machines to Hosts"
#   VMs: [select VMs]
#   Host Group: "Preferred-Site-Hosts"
#   Constraint: "Should run on hosts in group" (soft) or "Must run" (hard)

# This ensures VMs read from local site for lowest latency
# HA will still failover to secondary site if preferred site is lost
Warning: Never manually modify fault domains or witness host assignment outside SDDC Manager. Always use SDDC Manager workflows for stretched cluster changes to maintain desired state integrity.
36
vLCM Image-Based Cluster Management in VCF
Setting up and troubleshooting vSphere Lifecycle Manager image-based management for VCF workload domains
🛈 Context: VCF 5.x mandates vLCM image-based management for all clusters. This replaces legacy baselines. The cluster image defines the exact ESXi version, vendor add-on (firmware/drivers), and component versions for every host in the cluster.
Failure Scenarios
  • vLCM compliance check shows "Non-compliant" after VCF bundle apply
  • Remediation fails with "Host cannot enter maintenance mode"
  • Firmware update skipped — "Hardware Support Manager not configured"
  • Image export fails: "Depot not reachable" or "Missing component"
  • Cluster image shows different ESXi build than VCF BoM expects
Root Causes
  • Hardware Support Manager (HSM) plugin not registered for vendor (Dell, HPE, Lenovo)
  • Vendor depot URL inaccessible from vCenter (firewall / proxy)
  • Host has VIBs installed manually (outside vLCM) causing image drift
  • vSAN objects blocking maintenance mode (insufficient spare capacity)
  • SDDC Manager and vCenter image definitions out of sync
1

Check cluster image compliance

# In vSphere Client:
# Cluster > Updates > Image
# Click "Check Compliance" — wait for scan

# Review non-compliant hosts — expand to see:
#   - Missing components (drivers, firmware)
#   - Extra VIBs (manually installed, not in image)
#   - Version mismatch

# From ESXi Shell on non-compliant host:
esxcli software vib list | grep -v "VMware"
# This shows any non-VMware VIBs that may cause drift
2

Register Hardware Support Manager for firmware management

# In vSphere Client:
# Administration > vCenter Server Settings > vSphere Lifecycle Manager
# Under "Hardware Support Managers" — register the vendor plugin:
#   - Dell: Dell OpenManage Integration for VMware vCenter (OMIVV)
#   - HPE: HPE OneView for VMware vCenter
#   - Lenovo: Lenovo XClarity Integrator for VMware vCenter

# After registration, edit the cluster image:
# Cluster > Updates > Image > Edit
# Add "Firmware and Drivers Add-on" from vendor depot
# Save and Check Compliance again
3

Handle maintenance mode failures during remediation

# If host cannot enter maintenance mode due to vSAN:
# Check vSAN data migration mode in remediation settings:
# Cluster > Updates > Image > Remediate > Settings
# Options:
#   "Ensure data accessibility" (fastest, reduced redundancy)
#   "Full data migration" (safest, requires spare capacity)
#   "No data migration" (DANGEROUS — only for single-host test)

# Verify vSAN has capacity to evacuate:
esxcli vsan storage list
# Ensure remaining hosts have enough free space

# Check if DRS can migrate all VMs off the host:
# vSphere Client > Host > VMs tab — look for pinned VMs or anti-affinity rules
4

Sync SDDC Manager with vCenter image state

# If SDDC Manager shows different image than vCenter:
# SSH to SDDC Manager
cat /var/log/vmware/vcf/lcm/lcm.log | grep -i "image"

# In SDDC Manager UI:
# Lifecycle Management > check for "Configuration Drift" alerts
# If drift detected — use "Sync Inventory" to re-read from vCenter

# NEVER change cluster image directly in vCenter for VCF domains
# Always apply updates through SDDC Manager Lifecycle workflow
Best Practice: Before every VCF upgrade, export the current cluster image as a backup. In vSphere Client: Cluster > Updates > Image > Export Image. This allows rollback if the new image causes issues.
37
Aria Operations (vROps) Not Collecting vSAN Metrics in VCF
Aria Operations fails to display vSAN health data, capacity forecasts, or performance metrics for VCF workload domains
Impact: No visibility into vSAN health, capacity, or performance from Aria. Capacity planning becomes guesswork. Alerts for degraded objects, resync, or capacity thresholds are missing. Compliance dashboards are incomplete.
Symptoms
  • Aria Operations dashboard shows "No data available" for vSAN objects
  • vSAN-specific dashboards (capacity, resync, health) are empty
  • Adapter status shows "Data receiving — Off" for vCenter cloud account
  • Alerts for vSAN capacity or health never fire
  • vSAN metrics missing from custom dashboards and reports
Root Causes
  • vSAN Management Pack not installed in Aria Operations
  • vCenter cloud account configured with limited permissions (missing vSAN read)
  • Aria collector cannot reach vCenter API (port 443) or ESXi hosts (port 443)
  • Metric collection interval too long — vSAN metrics lagging by hours
  • Aria Operations version incompatible with vSAN/VCF version
1

Verify Management Pack and adapter status

# In Aria Operations UI:
# Administration > Solutions > VMware vSAN
# Verify status is "Installed" and "Collecting"

# If not installed:
# Administration > Solutions > Add Solution
# Search for "VMware vSAN" pack — install the matching version

# Check adapter instance:
# Administration > Solutions > VMware vSAN > Adapter Instances
# Verify "Collection Status: Data Receiving"
2

Validate vCenter cloud account permissions

# In Aria Operations:
# Data Sources > Cloud Accounts > vCenter account
# Click "Test Connection" — must return success

# Required permissions on the vCenter service account:
#   - Host.Config.Storage (vSAN disk operations read)
#   - VirtualMachine.Config.Settings (VM policy read)
#   - StorageProfile.View (SPBM policy read)
#   - vSAN: Read-only at minimum (Cluster-level permission)

# In vSphere Client:
# Administration > Access Control > Roles
# Verify the Aria service account role includes vSAN privileges
3

Verify collector network connectivity

# SSH to Aria Operations collector node
# Test connectivity to vCenter:
curl -k https://<vcenter-fqdn>/sdk -o /dev/null -w "%{http_code}"
# Expected: 200 or 301

# Test connectivity to ESXi hosts (required for host-level metrics):
curl -k https://<esxi-host-ip>/sdk -o /dev/null -w "%{http_code}"

# If blocked — open firewall rules:
#   Aria Collector → vCenter: TCP 443
#   Aria Collector → ESXi hosts: TCP 443
4

Configure vSAN-specific dashboards and alerts

# In Aria Operations:
# Dashboards > vSAN > enable built-in dashboards:
#   - vSAN Cluster Overview
#   - vSAN Capacity Planning
#   - vSAN Performance
#   - vSAN Resync Activity

# Configure alert policies:
# Alerts > Alert Definitions > search "vSAN"
# Enable and tune thresholds:
#   - vSAN Capacity Used > 70% (Warning), > 80% (Critical)
#   - vSAN Resync ETA > 4 hours (Warning)
#   - vSAN Object Health Degraded (Critical — immediate)
🛈 VCF Integration: When Aria is deployed via SDDC Manager (Aria Suite Lifecycle), the vSAN management pack and vCenter cloud account are auto-configured. If you deployed Aria manually, you must configure these yourself.
38
VCF Management Domain vSAN Datastore Degraded — Recovery
Management domain vSAN issues jeopardize SDDC Manager, vCenter, NSX Manager, and all VCF control plane components
Critical Impact: The management domain vSAN datastore hosts ALL VCF control plane VMs: SDDC Manager, vCenter, NSX Manager, Aria Suite. If this datastore degrades or fails, the ENTIRE VCF stack becomes unmanageable. This is a Severity 1 event requiring immediate action.
Symptoms
  • SDDC Manager UI unreachable or extremely slow
  • vCenter connection drops intermittently
  • NSX Manager cluster shows split-brain or node offline
  • Management VMs report disk I/O latency > 100ms
  • vSAN Health on management cluster: objects degraded or absent
  • Cannot manage workload domains from SDDC Manager
Root Causes
  • Host failure in 4-node management cluster (FTT=1 tolerance exceeded)
  • Disk group failure on management host (cache or capacity disk)
  • Network partition isolating management hosts
  • Management cluster ran out of vSAN capacity (logs, snapshots)
  • Firmware bug on management host storage controller
1

Assess the damage — connect directly to ESXi hosts

# If vCenter is down, connect directly to each management host via ESXi Shell
# Check vSAN cluster status:
esxcli vsan cluster get

# Check vSAN health (local view):
esxcli vsan health cluster list 2>/dev/null

# Check disk group health:
esxcli vsan storage list

# Check for partitioned nodes:
esxcli vsan cluster get | grep "Partition"

# List all VMs and their power state:
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/power.getstate <vmid>
2

If host is down — bring it back online immediately

# If host had a PSOD or power loss:
# 1. Power on the physical server via iLO/iDRAC/IMM
# 2. Wait for ESXi to boot completely
# 3. Verify it rejoins vSAN:
esxcli vsan cluster get

# If disk group failed, recreate it:
# First identify the failed disk group:
esxcli vsan storage list | grep -A5 "Status"

# If cache disk failed — the entire disk group is lost
# New cache disk required. In vSphere Client (if available):
# Host > Configure > vSAN > Disk Management > Create Disk Group

# If vSphere Client is down, use RVC or wait for vCenter recovery
3

Recover vCenter first (highest priority)

# vCenter must be recovered first — all other components depend on it

# If vCenter VM is powered off, start it from ESXi host directly:
vim-cmd vmsvc/getallvms | grep -i "vcenter\|vcsa"
vim-cmd vmsvc/power.on <vcenter-vmid>

# Wait for vCenter services to start (can take 10-15 minutes)
# From vCenter SSH (once accessible):
service-control --status --all

# If vCenter cannot start due to I/O errors:
# 1. Check the vSAN datastore is accessible
# 2. Use vSAN RVC to investigate object health:
#    rvc root@localhost > vsan.check_state <cluster>
4

Recover SDDC Manager and validate VCF state

# After vCenter is up, verify SDDC Manager VM:
vim-cmd vmsvc/getallvms | grep -i "sddc"
vim-cmd vmsvc/power.on <sddc-vmid>

# Wait for SDDC Manager services to start
# SSH to SDDC Manager:
systemctl status domainmanager
systemctl status operationsmanager
systemctl status lcm

# If services are degraded, restart:
systemctl restart domainmanager

# Verify VCF inventory sync:
# SDDC Manager UI > Dashboard
# Check for "Configuration Drift" or "Inventory Sync Failure" alerts
Prevention: Management domain must have FTT=1 minimum with 4+ hosts. Use RAID-1 mirroring (not erasure coding) for management datastore — it provides faster rebuild and better I/O under degradation. Monitor management vSAN capacity separately with strict 70% threshold.
39
vSAN HCI Mesh — Cross-Workload Domain Storage Sharing in VCF
Mounting vSAN datastores across workload domains for disaggregated compute/storage in a VCF environment
🛈 Context: vSAN HCI Mesh allows a "client cluster" to mount the vSAN datastore of a remote "server cluster" as additional storage. In VCF, this enables cross-workload-domain storage disaggregation — compute-heavy domains can consume storage from storage-rich domains.
Requirements
  • vSAN 7.0 U1+ on both server and client clusters
  • Both clusters managed by the same vCenter instance
  • L3 routable vSAN network between clusters
  • Client cluster must also be vSAN-enabled (even if minimal local storage)
  • VCF 4.3+ with HCI Mesh support in SDDC Manager
Limitations
  • Cross-vCenter HCI Mesh is NOT supported — clusters must be in same vCenter
  • Management domain vSAN should NOT be shared via HCI Mesh
  • Performance depends on inter-cluster network bandwidth (25GbE+ recommended)
  • Storage policies on remote datastore are controlled by the server cluster
  • VCF stretched clusters do NOT support HCI Mesh
1

Verify network reachability between clusters

# From a host in the CLIENT cluster, ping a host in the SERVER cluster via vSAN vmk:
vmkping -I vmk1 <server-cluster-host-vSAN-IP> -d -s 8972

# Verify both clusters have vSAN services enabled:
# On server cluster host:
esxcli vsan cluster get

# On client cluster host:
esxcli vsan cluster get

# Confirm both report "Cluster UUID" and "Local Node State: MASTER" or "AGENT"
2

Mount the remote vSAN datastore

# In vSphere Client:
# Navigate to the CLIENT cluster
# Cluster > Configure > vSAN > Services > Datastore Sharing
# Click "Mount Remote Datastores"
# Select the SERVER cluster's vSAN datastore
# Click "Mount"

# Verify mount:
# Client Cluster > Datastores — the remote vSAN DS should appear
# Hosts in the client cluster can now place VMs on the remote datastore

# From ESXi on client cluster host:
esxcli storage filesystem list | grep -i vsan
3

Troubleshoot mount failures

# If mount fails, check these:

# 1. Verify vSAN datastore sharing is enabled on SERVER cluster:
# Server Cluster > Configure > vSAN > Services > Datastore Sharing
# "Allow access to remote datastores" must be ENABLED

# 2. Check network connectivity between ALL host pairs:
# Every host in client must reach every host in server via vSAN vmk
vmkping -I vmk1 <each-server-host-IP> -d -s 8972

# 3. Check firewall rules on both clusters:
esxcli network firewall ruleset list | grep -i vsan

# 4. Ensure no IP conflicts on vSAN vmk subnet across clusters
4

VCF-specific considerations

# In VCF environments, HCI Mesh must be configured via SDDC Manager:
# SDDC Manager UI > Workload Domains > Select Client Domain
# Configure > Storage > Mount Remote vSAN Datastore

# IMPORTANT VCF RULES:
# 1. Never share the management domain vSAN datastore
# 2. Both workload domains must be under the same SDDC Manager
# 3. HCI Mesh operations will appear in SDDC Manager audit log
# 4. Lifecycle updates to the server cluster may temporarily
#    affect I/O on the client cluster (plan maintenance windows)

# Monitor cross-cluster latency:
# vSphere Client > Server Cluster > Monitor > vSAN > Performance
# Check "Backend Latency" for HCI Mesh traffic
Use Case: HCI Mesh is ideal when you have a storage-heavy cluster with excess capacity and a compute-heavy cluster needing more storage — without buying additional disks. Common in VDI workload domains consuming storage from a general-purpose domain.
40
VCF Certificate Rotation Breaks vSAN Encryption or Services
Certificate renewal in VCF causes vSAN encryption, KMS connectivity, or inter-host communication failures
Impact: After certificate rotation, vSAN encryption may lose connectivity to the KMS (Key Management Server). Hosts may fail to unlock encrypted disk groups on reboot. Inter-host vSAN communication may drop if VMCA-signed certs are not trusted. This can cause complete data unavailability on encrypted vSAN clusters.
Symptoms
  • After cert rotation: vSAN Health shows "KMS connection failure"
  • Host reboot results in "Locked disk group — encryption key unavailable"
  • vSAN Health: "vSAN encryption — cluster KMS connection" fails
  • ESXi logs: "SSL handshake failed" to KMS endpoint
  • SDDC Manager certificate management task shows "Partial Success"
Root Causes
  • KMS trust store not updated with new VMCA root certificate
  • Certificate rotation skipped ESXi host certificates (incomplete rollout)
  • KMS client certificate on vCenter expired and was not renewed
  • SDDC Manager rotated certs but did not restart vSAN services
  • Custom CA (enterprise PKI) certificate chain incomplete after rotation
1

Check current certificate status across VCF components

# On vCenter (VCSA SSH):
# Check VMCA root certificate expiry:
/usr/lib/vmware-vmca/bin/certool --getrootca | openssl x509 -noout -dates

# Check ESXi host certificate status:
# vSphere Client > Host > Configure > Certificate
# Verify "Valid To" date and issuer matches VMCA or custom CA

# On SDDC Manager:
# Inventory > Certificates
# Review all component certificate expiry dates
2

Re-establish KMS trust with new certificates

# In vSphere Client:
# Cluster > Configure > Security > Key Management Servers
# Select the KMS provider
# Click "Establish Trust" — re-exchange certificates

# For KMIP-based KMS:
# 1. Export the new VMCA root cert:
/usr/lib/vmware-vmca/bin/certool --getrootca --cert=/tmp/vmca-root.pem

# 2. Import this cert into the KMS trust store
#    (procedure varies by KMS vendor — HyTrust, Thales, etc.)

# 3. Re-establish trust in vSphere Client
# 4. Verify: Cluster > Configure > Security > "KMS connection status: Connected"
3

Verify vSAN encryption health after cert fix

# Check vSAN encryption status on each host:
esxcli vsan encryption info get

# Expected output:
#   Encryption Active: true
#   KMS Cluster Name: <your-kms-cluster>
#   DEK Generation ID: <number>

# Run vSAN health check:
esxcli vsan health cluster list | grep -i "encrypt"

# In vSphere Client:
# Cluster > Monitor > vSAN > Health
# "Encryption" section — all tests must be green:
#   - "vCenter and all hosts are connected to Key Management Servers"
#   - "CPU AES-NI is supported on all hosts"
4

Prevent future cert rotation issues

# ALWAYS use SDDC Manager for certificate operations in VCF:
# SDDC Manager UI > Inventory > Certificates > Rotate Certificates
# This ensures ALL components are updated in the correct order

# Set up certificate expiry monitoring:
# SDDC Manager > Lifecycle > Certificate Dashboard
# Configure alerts for certificates expiring within 60 days

# Before any cert rotation:
# 1. Backup vCenter (file-based backup)
# 2. Snapshot SDDC Manager VM
# 3. Document current KMS trust state
# 4. Schedule a maintenance window — do NOT rotate certs in production hours

# After rotation, validate ALL of these:
# - vCenter accessible
# - ESXi hosts connected to vCenter
# - vSAN health green
# - KMS connected
# - NSX Manager cluster healthy
Critical: NEVER let VMCA root certificate expire in a VCF environment. Plan rotation at least 6 months before expiry. An expired VMCA root certificate requires full certificate infrastructure rebuild — a multi-day recovery effort.
83
DRS + vSAN Conflict Resolution
DRS vMotion migrations conflicting with vSAN data locality and resync operations

DRS optimizes compute by migrating VMs between hosts. vSAN optimizes storage by keeping data components distributed. When DRS moves a VM away from its DOM owner or data locality, vSAN performance can degrade due to remote reads. During maintenance mode, DRS evacuates VMs faster than vSAN can evacuate data, causing cascading issues.

Symptoms
  • VMs experience increased latency after DRS migration
  • vSAN resync traffic spikes after DRS rebalance cycles
  • Maintenance mode takes excessively long (DRS + vSAN competing)
  • DRS alerts: "Cannot evacuate host — vSAN constraint"
  • Network congestion from combined vMotion + vSAN resync traffic
Best Practices
  • Set DRS to "Partially Automated" for vSAN clusters
  • Increase DRS migration threshold to reduce unnecessary moves
  • Separate vMotion and vSAN traffic on different NICs
  • Use VM-Host affinity rules for latency-sensitive workloads
  • Schedule DRS and vSAN rebalance at different maintenance windows
1

Optimize DRS for vSAN

# vSphere Client → Cluster → Configure → vSphere DRS
# Set Automation Level: "Partially Automated" (recommended for vSAN)
# Set Migration Threshold: Conservative (3 out of 5)

# Advanced settings to consider:
# TryBalanceVmsPerHost = 1  (helps distribute VMs evenly)
# PercentIdleMBInMemDemand = 25  (reduce sensitivity)

# For vSAN specifically, ensure:
# "VM Overrides" for critical VMs → set to "Manual" to prevent DRS moving them
2

Separate traffic during maintenance

# Before host maintenance:
# 1. Put DRS in manual mode temporarily
# 2. Manually vMotion VMs off the host in controlled batches
# 3. Wait for vSAN to begin data evacuation
# 4. Monitor resync progress before proceeding

# This prevents DRS from flooding the network with vMotions
# while vSAN is simultaneously trying to resync data

# After maintenance, re-enable DRS automation level
84
HBA / Controller Passthrough (JBOD) Mode for vSAN
Storage controllers must be in passthrough/JBOD mode — RAID mode causes silent performance degradation and failures
Impact: vSAN requires direct access to individual disks. If the storage controller is in RAID mode (even RAID-0 per disk), vSAN cannot properly manage the disks. This causes: incorrect SMART data, hidden write amplification, cache bypass, and eventual disk group failures that are extremely difficult to diagnose.
Symptoms
  • Disk performance far below HCL specifications
  • SMART data returns all zeros or incorrect values
  • Unexplained disk group failures not matching hardware health
  • vSAN Health: "Controller driver not recommended"
  • Write cache destage extremely slow despite healthy SSD
Root Causes
  • Controller shipped in RAID mode by default from vendor
  • Firmware update reverted controller to RAID mode
  • Wrong controller model — some don't support passthrough
  • BIOS setting overriding controller mode after reboot
  • Mixed-mode controller (some ports RAID, some passthrough)
1

Check current controller mode

# From ESXi:
esxcli storage core adapter list
# Look for the HBA type — should show "SAS" not "RAID"

# Check with storcli/perccli (Dell) or sasicli (HPE):
/opt/lsi/storcli/storcli64 /c0 show
# "Topology" should show "JBOD" not "RAID0" or "RAID1"

# vSAN HCL check:
esxcli vsan storage list
# Verify controller model matches vSAN HCL entry for "passthrough" mode
2

Switch controller to passthrough/JBOD mode

# ⚠ WARNING: This requires host downtime and may erase controller config
# 1. Put host in maintenance mode (ensure accessibility)
# 2. Reboot into controller BIOS/UEFI (usually Ctrl+R or F2 at POST)
# 3. Change mode from "RAID" to "HBA" or "JBOD" or "Passthrough"
# 4. Save and reboot

# For Dell PERC controllers (via lifecycle controller):
# System Setup → Device Settings → RAID Controller → Convert to HBA mode

# After reboot, verify ESXi sees individual disks:
esxcli storage core device list | grep -c "naa."
# Should show individual disks, not virtual drives
Always check the vSAN HCL first. Not all controllers support passthrough mode. Some require specific firmware versions. The vSAN HCL lists the exact controller model + firmware + driver combination required. Using an unsupported controller voids VMware support.
87
vSAN + Kubernetes / Tanzu (Cloud Native Storage)
vSAN as persistent storage for Kubernetes workloads via CSI driver and Supervisor clusters

vSAN provides persistent volumes for Kubernetes via the vSphere CSI Driver. When a pod requests a PersistentVolumeClaim (PVC), the CSI driver creates a First Class Disk (FCD/Improved Virtual Disk) on vSAN. The vSAN storage policy is applied to the FCD, giving Kubernetes workloads enterprise-grade storage with FTT protection, encryption, and dedup/compression.

1

PVC stuck in "Pending" state

# Most common issue — PVC not binding to a PV
kubectl describe pvc <pvc-name> -n <namespace>
# Look at "Events" section for error messages

# Common causes:
# 1. StorageClass references a non-existent vSAN policy
kubectl get storageclass -o yaml | grep storagePolicyName
# Fix: verify the policy name matches exactly in vSphere

# 2. CSI driver pods not running
kubectl get pods -n vmware-system-csi
# All pods should be Running. Restart if CrashLoopBackOff:
kubectl rollout restart deployment vsphere-csi-controller -n vmware-system-csi

# 3. vSAN capacity full — can't create new FCDs
# Check vSAN datastore capacity in vSphere Client
2

Configure vSAN StorageClass for Kubernetes

# Create a vSAN-backed StorageClass:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: vsan-default
provisioner: csi.vsphere.vmware.com
parameters:
  storagePolicyName: "vSAN Default Storage Policy"
  datastoreURL: "ds:///vmfs/volumes/vsan:xxxxxx/"
reclaimPolicy: Delete
allowVolumeExpansion: true

# Apply:
kubectl apply -f storageclass.yaml

# For Tanzu with Supervisor:
# Storage policies are mapped automatically via VM Classes
# Namespace → Storage → Add Storage Policy
3

Troubleshoot CSI driver connectivity

# CSI driver needs connectivity to vCenter:
kubectl logs deployment/vsphere-csi-controller -n vmware-system-csi -c vsphere-csi-controller
# Look for "Failed to connect to vCenter" errors

# Verify CSI secret has correct vCenter credentials:
kubectl get secret vsphere-config-secret -n vmware-system-csi -o yaml
# Decode and verify vCenter IP, user, and password

# For TKG clusters: check the vSphere Cloud Provider config
# kubeadm configmap → verify vcenter-config section
🛈 Best Practice: Create separate vSAN storage policies for different K8s workload tiers (databases = FTT=2 RAID-1, stateless apps = FTT=1 RAID-5). Map each to a Kubernetes StorageClass. Use allowVolumeExpansion: true for databases that grow.
94
Host Profile / Auto Deploy with vSAN
Stateless ESXi deployment with vSAN disk claiming rules and host profile compliance

Host Profiles capture ESXi host configuration as a template. Auto Deploy boots stateless ESXi from network (PXE). When combined with vSAN, special care is needed for disk claiming rules — Auto Deploy hosts must correctly identify which disks are cache vs. capacity for vSAN.

1

Configure disk claiming rules in Host Profile

# vSAN disk claiming in Host Profile:
# Host Profile → Storage → vSAN → Disk Claiming
# Define rules that match your hardware:

# Rule example (by disk model):
# Cache: Model contains "INTEL_SSDPE2MX" → Tag: SSD, Group: Cache
# Capacity: Model contains "ST2000NM" → Tag: Non-SSD, Group: Capacity

# Or by disk size:
# Cache: Size < 500GB → Cache tier
# Capacity: Size >= 500GB → Capacity tier

# CRITICAL: Rules must be deterministic across all hosts
# Same hardware model must produce same disk assignment
2

Troubleshoot host profile compliance failures

# Check compliance:
# Host → Configure → Host Profile → Check Compliance

# Common vSAN-related failures:
# 1. "Disk claiming rules do not match" 
#    → Reference host has different disk models than target
#    → Fix: update claiming rules to be model-agnostic (use size-based)

# 2. "vSAN VMkernel not found"
#    → Host profile requires vmk with vSAN traffic tag
#    → Verify network profile includes vSAN VMkernel definition

# 3. "Cannot enable vSAN — host has no eligible disks"
#    → Boot device being claimed by vSAN rules
#    → Add exclusion rule for boot device (USB/SD/M.2)
#    → Exclude: Device path matches "mpx.vmhba*" (local boot)
🛈 Auto Deploy + vSAN: Stateless hosts do not persist vSAN configuration across reboots. The Host Profile must fully define the vSAN config (VMkernel, disk groups, cluster membership). Test profile compliance on a reference host before deploying to production.