VMware vSAN Knowledge Base

Phase 2 — Day-2 Ops ⚠ Break Scenarios ✓ Fix Procedures
14
Day-2 Issues
5
Break Scenarios
9
Fix Procedures
Phase 2
Current Phase
11
vSAN ESA — Storage Pool Failure or NVMe Device Drop
NVMe device removed from ESA storage pool causing capacity reduction and potential data inaccessibility
Impact: Unlike OSA disk groups, ESA uses a single-tier storage pool. A single NVMe failure only removes that device's capacity — the pool stays online. However, multiple device failures can breach FTT policy and cause data loss.
Symptoms
  • vSAN Health: "Physical disk health – Device has errors"
  • Storage pool shows reduced device count in vSphere Client
  • vmkernel.log: PLOG: Device naa.xxx marked as failed
  • vSAN capacity suddenly drops by the size of the failed NVMe
  • Resync initiated automatically for affected components
Root Causes
  • NVMe device media failure or wear-out
  • NVMe controller firmware bug (check VMware HCL for updates)
  • PCIe bus error or slot connectivity issue
  • Overheating causing NVMe thermal throttle then failure
  • Drive not on the vSAN ESA HCL (unsupported model)
🛈 ESA Architecture: vSAN 8 ESA eliminates the cache/capacity tier split. All NVMe devices form a single storage pool. A single device failure does NOT take down an entire disk group — only that device's capacity is lost. This is a major resilience improvement over OSA. However, the NVMe devices must be on the vSAN ESA HCL (not the OSA HCL).
1

Check storage pool device status

# From ESXi Shell:
esxcli vsan storage list
# In ESA mode, all devices show under a single "Storage Pool"
# Look for devices with "Status: Unmounted" or missing entries

esxcli vsan debug disk list
# Check for error counts and congestion values per device
2

Check NVMe device health via SMART

esxcli storage core device smart get -d naa.xxxxxxxxxxxx
# Key indicators:
#   - Media and Data Integrity Errors
#   - Percentage Used (wear level) — alert at >90%
#   - Available Spare — alert when below threshold
3

Verify ESA mode is active

esxcli vsan cluster get
# Look for: "Storage Architecture: ESA" (not "OSA")

# From vSphere Client:
# Cluster → Configure → vSAN → Services
# "Storage Architecture" should display "Express Storage Architecture"
1

Remove the failed device from the storage pool

# From vSphere Client:
# Host → Configure → vSAN → Disk Management → Select failed device → Remove Disk
# vSAN will automatically resync affected components to other devices

# From ESXi Shell:
esxcli vsan storage remove -d naa.FAILED_DEVICE_NAA_ID
2

Physically replace the NVMe device

Follow the server vendor's hot-plug procedure. Verify the replacement drive is on the vSAN ESA HCL.

# After replacement, verify the new device is visible:
esxcli storage core device list | grep -B2 -A10 "naa."
# Confirm model, size, and NVMe transport type
3

Add the new device to the storage pool

# From vSphere Client:
# Host → Configure → vSAN → Disk Management → Claim Disks
# Select the new NVMe device → Add to existing Storage Pool

# From ESXi Shell:
esxcli vsan storage add -d naa.NEW_DEVICE_NAA_ID
4

Monitor resync and rebalance

# From vSphere Client:
# Cluster → Monitor → vSAN → Resyncing Objects

# From ESXi Shell:
esxcli vsan debug resync summary
# Wait for all objects to return to "Compliant" state
VMware KB Reference: KB 88 343 — "vSAN Express Storage Architecture (ESA) overview and requirements". Ensure all NVMe devices are validated on the vSAN ESA-specific HCL at vmware.com/resources/compatibility (select "vSAN ESA" category).
12
vSAN File Services — Share Inaccessible or Agent VM Crash
NFS/SMB file shares become unreachable due to file service agent VM failure or misconfiguration
Impact: All NFS/SMB clients lose access to vSAN file shares. Applications relying on file shares (user home directories, shared data) stop functioning until the file service agent VMs are recovered.
Symptoms
  • NFS/SMB clients: "mount: connection timed out" or "network path not found"
  • vSAN Health: "File Service – File service health" → FAIL
  • File service agent VMs show powered off or not responding
  • vSphere Client → Cluster → Configure → vSAN → File Service Shares shows errors
  • Cannot create new file shares or modify existing ones
Root Causes
  • File service agent VM ran out of disk space
  • Agent VM's IP address conflicted or network changed
  • DNS misconfiguration — agents cannot register/resolve
  • AD integration failure (for SMB/Kerberos shares)
  • ESXi host running the agent VM went into maintenance mode
  • OVF deployment of agent VM failed during initial setup
1

Check file service agent VM status

# From vSphere Client:
# VMs and Templates → Find VMs named "vSAN File Service Node-*"
# Verify they are powered on and have a valid IP on the file services network

# Check health from the cluster:
# Cluster → Monitor → vSAN → Health → File Service
2

Check file service agent logs

# SSH into the file service agent VM (default: root / same as vCenter SSO):
# Check service logs:
cat /var/log/vdfs/vdfs.log | tail -200

# Check if NFS/SMB daemons are running:
systemctl status nfs-server
systemctl status smbd
3

Verify DNS and network connectivity

# From a file service agent VM:
nslookup <file-share-fqdn>
ping <dns_server_ip>

# From a client machine, verify the share IP is reachable:
# Linux: showmount -e <file_service_ip>
# Windows: net view \\<file_service_ip>
1

Restart file service agent VMs

# From vSphere Client:
# Right-click each "vSAN File Service Node-*" VM → Power → Reset

# If the VM won't start, check the datastore for capacity:
# Cluster → Monitor → vSAN → Capacity
# File service agent VMs need space on the vSAN datastore
2

Redeploy file service if agents are corrupted

# From vSphere Client:
# Cluster → Configure → vSAN → File Service Shares
# Click "Disable File Services" (this removes agent VMs)
# Wait for cleanup to complete
# Click "Enable File Services" → re-enter configuration:
#   - File services domain (AD domain for SMB)
#   - DNS server IPs
#   - File services network (IP pool, subnet, gateway)
#   - DNS suffixes
# Agent VMs are redeployed automatically
Disabling file services does NOT delete share data. The data persists on the vSAN datastore. Re-enabling file services and recreating shares with the same names will re-attach to existing data (vSAN 7.0 U1+).
3

Fix AD/DNS integration for SMB shares

# Verify AD join status:
# Cluster → Configure → vSAN → File Service Shares → AD Status

# If "Not joined" or "Error":
# 1. Verify AD credentials and domain controller reachability
# 2. Re-join domain:
#    Cluster → Configure → vSAN → File Service Shares → Edit
#    Re-enter AD domain admin credentials
# 3. Verify DNS forward and reverse lookup zones have entries for file agents
🛈 VMware KB Reference: KB 78)) 35 — "Troubleshooting vSAN file services". File service agent VMs require dedicated IPs (one per host participating in file services). Ensure your IP pool has sufficient addresses for all hosts in the cluster.
13
vSAN HCI Mesh — Remote Datastore Disconnect or Performance Drop
Client cluster loses access to server cluster's remote vSAN datastore or experiences high latency
Symptoms
  • Remote vSAN datastore shows "Unmounted" or "Inaccessible" on client cluster
  • VMs on the remote datastore report I/O errors or hang
  • vSAN Health: "HCI Mesh – Remote datastore connectivity" → FAIL
  • Latency to remote datastore exceeds 5ms (expected <2ms for same-DC)
  • Cannot browse or provision VMs to the remote datastore
Root Causes
  • Network connectivity lost between client and server clusters
  • Server cluster's vSAN service disrupted (maintenance, failure)
  • vSAN VMkernel port group mismatch (different VLANs/subnets)
  • Firewall blocking TCP port 2233 between clusters
  • Server cluster exceeded capacity — no space for remote writes
🛈 HCI Mesh (vSAN 7.0 U1+): A server cluster exports its vSAN datastore as a remote datastore. A client cluster mounts it. The client cluster's hosts access storage over the vSAN network. Both clusters must be in the same vCenter. The server cluster's storage policies govern the remote data.
1

Verify HCI Mesh connectivity

# From vSphere Client:
# Client Cluster → Configure → vSAN → HCI Mesh
# Check "Remote Datastores" status — should be "Mounted"

# From any client cluster host, ping the server cluster's vSAN IPs:
vmkping -I vmk1 <server_cluster_host_vsan_ip>
2

Check server cluster health

# From vSphere Client:
# Server Cluster → Monitor → vSAN → Health
# All health checks must be green for HCI Mesh to function

# Verify the server cluster's vSAN datastore is operational:
# Server Cluster → Monitor → vSAN → Capacity
# Ensure available capacity exists
3

Check vSAN network reachability between clusters

# Ensure vSAN VMkernel adapters on BOTH clusters can communicate:
# Run from a client cluster host:
vmkping -I vmk1 -d -s 8972 <server_host_vsan_ip>

# Verify firewall allows port 2233 (vSAN transport):
nc -zv <server_host_vsan_ip> 2233
1

Restore network connectivity between clusters

Ensure both clusters' vSAN VMkernel adapters are on the same L2 network or have proper L3 routing configured. Verify VLAN tags match and MTU is consistent.

2

Unmount and remount the remote datastore

# From vSphere Client:
# Client Cluster → Configure → vSAN → HCI Mesh
# Select the failed remote datastore → "Unmount"
# Wait 30 seconds
# Click "Mount Remote Datastores" → Select the server cluster → Mount

# This forces re-establishment of the cross-cluster connection
3

If the server cluster had a failure — VMs auto-recover

# Once the server cluster is healthy again:
# VMs on the remote datastore will automatically resume I/O
# Check for stale VMs:
# Client Cluster → Monitor → vSAN → Virtual Objects → Filter "Remote Datastore"
# If VMs remain stale, power-cycle them (power off → power on)
VMware KB Reference: KB 83401 — "Configuring and troubleshooting vSAN HCI Mesh". HCI Mesh requires vSAN 7.0 Update 1+ and both clusters must be in the same vCenter Server instance.
14
vSAN Encryption Key Rotation — Shallow vs Deep Rekey
Performing encryption key rotation for compliance without causing outages or data corruption
🛈 Key Hierarchy:
KEK (Key Encryption Key) — stored in KMS. Wraps the DEK. Rotated via shallow rekey (fast, no data rewrite).
DEK (Data Encryption Key) — stored encrypted on each host. Actually encrypts data. Rotated via deep rekey (requires full data rewrite — very slow).
Most compliance frameworks (PCI-DSS, HIPAA) require KEK rotation (shallow rekey) annually. Deep rekey is rarely needed.
1

Pre-checks before key rotation

# From vSphere Client:
# Cluster → Monitor → vSAN → Health → Run all checks
# All checks must be GREEN before proceeding
# Verify KMS connectivity:
# Administration → Key Providers → Test connection

# Ensure no active resyncs:
# Cluster → Monitor → vSAN → Resyncing Objects
# "Objects Resyncing" must be 0
2

Perform shallow rekey (KEK rotation)

# From vSphere Client:
# Cluster → Configure → vSAN → Services → Encryption
# Click "Generate New Encryption Keys" 
# Select "KEK only (shallow rekey)"
# Click "Apply"

# This operation:
# - Generates a new KEK on the KMS
# - Re-wraps the existing DEK with the new KEK
# - No data is rewritten — completes in minutes
# - No VM I/O impact
3

Verify key rotation completed

# From vSphere Client:
# Cluster → Monitor → vSAN → Health → Encryption
# "Encryption health" should be green
# "KEK ID" should show the NEW key identifier

# Verify from KMS:
# Check that the new key is active and old key is marked as deactivated
1

When to perform deep rekey

  • A DEK is suspected to be compromised
  • Regulatory audit explicitly requires DEK rotation
  • Physical disk was removed without secure erase
2

Execute deep rekey

# From vSphere Client:
# Cluster → Configure → vSAN → Services → Encryption
# Click "Generate New Encryption Keys"
# Select "DEK and KEK (deep rekey)"
# Click "Apply"

# WARNING: This triggers a ROLLING disk group re-encryption:
# - Each disk group is evacuated, reformatted with new DEK, data rewritten
# - Takes HOURS to DAYS depending on data volume
# - VM I/O will be impacted during the process
# - Requires at least 30% free capacity for data migration
Do NOT start deep rekey during production hours. Plan for a maintenance window. Ensure vSAN health is fully green and no other operations (upgrades, host maintenance) are in progress.
3

Monitor deep rekey progress

# From vSphere Client:
# Cluster → Monitor → vSAN → Resyncing Objects
# Deep rekey appears as resync operations
# Track: "Bytes Remaining to Resync" should decrease over time

# Also check Recent Tasks for "Rekey" task status on each host
15
vSAN Health Check Persistent Warnings / False Positives
vSAN Skyline Health shows red/yellow alerts that persist despite the underlying issue being resolved
Common Persistent Warnings
  • "vSAN HCL DB is not up-to-date" — HCL JSON file outdated
  • "Controller firmware is not VMware certified" — firmware updated but DB stale
  • "SCSI controller is not VMware certified" — false positive after driver update
  • "vCenter state is authoritative" — CMDB mismatch
  • "Network – Small ping test" — flapping after resolved issue
Root Causes
  • vSAN HCL database on vCenter not updated (offline or proxy blocked)
  • Health check cache not refreshed after fix
  • VCSA time skew causing certificate/check failures
  • vSAN health service (vsanmgmtd) not restarted after configuration change
  • Skyline Health plugin outdated or corrupted
1

Update the vSAN HCL database manually

# From vSphere Client:
# Cluster → Monitor → vSAN → Health → Hardware Compatibility
# Click "Update VCG Database from file"

# Download latest HCL JSON:
# Go to: https://partnerweb.vmware.com/service/vsan/all.json
# Upload the downloaded all.json file

# If vCenter has internet access via proxy:
# Cluster → Configure → vSAN → Health → Internet Connectivity
# Configure proxy settings → Test → "Update HCL DB from Internet"
2

Force re-run all health checks

# From vSphere Client:
# Cluster → Monitor → vSAN → Health
# Click "Retest" on the specific failing check
# Or click "Retest All" to refresh all health checks

# If checks remain stale, restart the health service on ESXi:
# SSH to each affected host:
/etc/init.d/vsanmgmtd restart
3

Fix vCenter time synchronization

# Many health check false positives are caused by NTP skew
# From VCSA shell:
# Check current time sync:
timedatectl status

# Configure NTP:
# VCSA VAMI (https://vcsa:5480) → Time → Edit
# Set NTP servers (e.g., pool.ntp.org or internal NTP)
# Restart NTP:
systemctl restart systemd-timesyncd
4

Reset Skyline Health plugin if persistently broken

# From VCSA shell:
# Restart the vSAN health service:
vmon-cli -r vsanHealth

# Verify service is running:
vmon-cli -s vsanHealth
# Expected: "Status: Running"

# Force plugin re-registration (last resort):
# vSphere Client → Menu → Administration → Client Plugins
# Find "vSAN" → Verify version and status
🛈 VMware KB Reference: KB 2109870 — "Updating the vSAN Hardware Compatibility List (HCL) database manually". Update the HCL DB after every ESXi upgrade, firmware update, or new hardware addition.
16
vSAN Dedup/Compression — Space Efficiency Degradation or Failure
Space savings drop dramatically or dedup/compression causes excessive latency and disk congestion
Impact: When dedup/compression overhead exceeds benefit, it causes write amplification, elevated latency, and accelerated SSD wear. In extreme cases, capacity tier can fill up due to dedup metadata overhead exceeding savings.
Symptoms
  • Space efficiency ratio drops below 1.2x (minimal savings)
  • Capacity usage increases after enabling dedup (metadata overhead)
  • Write latency spikes during dedup destage operations
  • vSAN Performance: capacity tier shows periodic congestion bursts
  • Disk groups approaching capacity despite expected savings
Root Causes
  • Workload is highly random / unique data (DBs, encrypted VMs)
  • Dedup metadata consuming more space than saved
  • Insufficient cache-to-capacity ratio (OSA: need 1:7 minimum)
  • Mixed workloads — some benefit, others create overhead
  • On-disk format upgrade incomplete — mixed format versions
1

Check current space efficiency ratio

# From vSphere Client:
# Cluster → Monitor → vSAN → Capacity
# Review "Deduplication and Compression Overview":
#   - "Before" = logical data written
#   - "After" = physical space used
#   - Ratio below 1.5x may not justify the overhead

# Per-host view:
# Cluster → Monitor → vSAN → Capacity → Capacity Overview (per host breakdown)
2

Check dedup metadata overhead

# From ESXi Shell:
esxcli vsan debug disk list
# Look at "Dedup Overhead" and "Metadata Usage" per disk

# Check vmkernel logs for dedup-related warnings:
grep -i "dedup\|LSOM.*compress" /var/log/vmkernel.log | tail -50
1

Evaluate whether to keep dedup/compression enabled

General guidance from VMware/Broadcom:

  • Good candidates: VDI desktops, template-heavy environments, test/dev with clones
  • Poor candidates: Databases (Oracle, SQL), already-encrypted data, highly random I/O
  • If space savings ratio is below 1.3x, the overhead likely exceeds the benefit
2

Disable dedup/compression if not beneficial

# From vSphere Client:
# Cluster → Configure → vSAN → Services → Space Efficiency
# Click "Edit" → Uncheck "Deduplication and Compression" → Apply

# IMPORTANT: This triggers a ROLLING disk format change:
# - Each disk group is evacuated one at a time
# - Data is rewritten WITHOUT dedup/compression
# - Requires sufficient free capacity (~30% of used space)
# - Process can take many hours

# Monitor progress:
# Cluster → Monitor → vSAN → Resyncing Objects
Disabling dedup/compression requires re-writing all data in the cluster. If the cluster is at 70%+ capacity, you may not have enough free space. Add capacity or migrate VMs out first.
3

Use "Compression Only" mode (vSAN 7.0 U1+)

# If dedup adds overhead but compression helps:
# Cluster → Configure → vSAN → Services → Space Efficiency
# Click "Edit" → Select "Compression Only" (dedup disabled)
# This avoids dedup metadata overhead while keeping compression savings

# Note: In vSAN ESA, compression is always enabled and significantly
# more efficient due to the single-tier architecture
🛈 VMware KB Reference: KB 2110481 — "vSAN space efficiency with deduplication and compression". In vSAN 8 ESA, compression is built into the data path and is far more efficient — consider upgrading to ESA if dedup/compression performance on OSA is problematic.
17
vSAN Capacity Critical — Datastore Full / Slack Space Exhausted
vSAN datastore reaching 80%+ utilization causing VM provisioning failures and resync blocks
Impact: At 80% utilization vSAN starts throttling. At 95% vSAN may stop all writes. VMs cannot grow, snapshot operations fail, and resync/rebuild cannot complete — leaving the cluster vulnerable to data loss from any additional failure.
vSAN Capacity Warning Levels
  • <70% used: Healthy — normal operations
  • 70–80% used: Warning — plan capacity expansion
  • 80–95% used: Critical — throttling begins, no new provisioning
  • >95% used: Emergency — writes may halt, data loss risk
Why 30% Slack Space?
  • Rebuild capacity: If a host fails, vSAN needs free space to rebuild replicas
  • Resync overhead: Temporary copies during rebalance
  • Snapshot growth: Snapshots consume space as VMs write data
  • Operational buffer: Policy changes, maintenance mode evacuations
1

Check cluster capacity breakdown

# From vSphere Client:
# Cluster → Monitor → vSAN → Capacity
# Review:
#   - "Used" vs "Total Capacity"
#   - "vSAN Overhead" (metadata, checksums)
#   - "Primary VM Data" vs "Replica Overhead" (FTT copies)
#   - "Dedup/Compression" savings (if enabled)

# Per-host breakdown to identify imbalanced hosts:
# Cluster → Monitor → vSAN → Capacity → Per Host
2

Identify large consumers

# From vSphere Client:
# Cluster → Monitor → vSAN → Virtual Objects
# Sort by "Physical Space Used" (descending) to find largest VMs

# Check for snapshot sprawl:
# Each VM → Snapshots → Snapshot Manager
# Old snapshots consume significant hidden capacity
1

Immediate relief — delete old snapshots and unused VMs

# From vSphere Client:
# Identify VMs with snapshots:
# Menu → VMs → Filter "Has Snapshots: Yes"
# Delete all non-essential snapshots: VM → Snapshots → Delete All

# Remove orphaned VMDKs and unused templates:
# Datastore → Files → Browse for .vmdk files not attached to any VM

# Power off and delete decommissioned VMs
2

Migrate VMs to reduce vSAN utilization

# Storage vMotion non-critical VMs to alternative datastores:
# Right-click VM → Migrate → "Change storage only"
# Select a non-vSAN datastore (NFS, iSCSI, local)

# Consider changing storage policy from RAID-1 to RAID-5/6:
# RAID-1 FTT=1 uses 2x capacity (mirror)
# RAID-5 FTT=1 uses 1.33x capacity (parity)
# Change via: VM → Policies → Edit VM Storage Policy
3

Add capacity to the cluster

# Option A — Add disks to existing hosts:
# Host → Configure → vSAN → Disk Management → Claim Disks
# Add new capacity disks to existing disk groups

# Option B — Add a new host to the cluster:
# Datacenter → Add Host → Configure vSAN VMkernel → Add to cluster
# Create disk group on new host:
esxcli vsan storage add -s naa.CACHE_SSD -d naa.CAP1 -d naa.CAP2

# After adding capacity, trigger rebalance:
# Cluster → Monitor → vSAN → Resyncing Objects → "Rebalance Disks"
VMware Best Practice: Set vSAN capacity alarm at 70% utilization. Use RAID-5/6 erasure coding for capacity-sensitive workloads. Enable thin provisioning in storage policies. Schedule regular snapshot audits.
18
vSAN + vLCM — Image-Based Update Failures
vSphere Lifecycle Manager image remediation fails on vSAN hosts — stuck in maintenance or incompatible image
Symptoms
  • vLCM compliance check shows "Non-Compliant" for vSAN hosts
  • Remediation task fails with "Cannot enter maintenance mode"
  • Host stuck in "Entering Maintenance Mode" during rolling update
  • Error: "Hardware support manager unreachable"
  • Post-update: vSAN disk group fails to mount (driver incompatibility)
Root Causes
  • vLCM image includes incompatible storage controller driver
  • Hardware Support Manager (HSM) from vendor not configured
  • Firmware/driver combination not on vSAN HCL
  • Insufficient vSAN capacity for maintenance mode evacuation
  • vLCM depot connectivity issue (offline depot misconfigured)
1

Validate the vLCM image before remediation

# From vSphere Client:
# Cluster → Updates → Image → "Check Compliance"
# Review any warnings about driver/firmware conflicts

# CRITICAL: Verify the storage controller driver in the image
# matches the vSAN HCL entry for your hardware:
# Cluster → Monitor → vSAN → Health → Hardware Compatibility
# Cross-reference controller model + driver version + firmware version
2

Configure Hardware Support Manager for firmware updates

# Each server vendor provides an HSM plugin:
#   Dell: Dell OpenManage Integration for VMware vCenter (OMIVV)
#   HPE: HPE OneView for VMware vCenter
#   Lenovo: Lenovo XClarity Integrator

# From vSphere Client:
# Menu → Lifecycle Manager → Settings → Hardware Support Managers
# Add the vendor's HSM → Configure firmware depot
# Cluster → Updates → Image → Edit → Add "Firmware and Drivers Add-on"
3

Fix stuck maintenance mode during remediation

# If a host is stuck entering maintenance mode during vLCM update:

# Option 1: Change vSAN data migration mode to "Ensure Accessibility":
# Cancel the remediation task
# Right-click host → Maintenance Mode → Enter Maintenance Mode
# Select "Ensure Accessibility" instead of "Full data migration"
# Then re-run remediation

# Option 2: Free capacity first (see KB #17 above)
# Delete snapshots, migrate VMs to other datastores
4

Roll back if post-update disk group fails

# If after remediation a host's disk groups won't mount:
# The storage controller driver may be incompatible

# From ESXi Shell (on affected host):
esxcli software vib list | grep -i "scsi\|sas\|nvme\|raid"
# Compare driver version with vSAN HCL requirement

# Roll back to previous image:
# vSphere Client → Cluster → Updates → Image → "Stage and Remediate"
# Select "Rollback to previous image" (requires previous image saved)

# Or manually install the correct driver VIB:
esxcli software vib install -v /path/to/correct-driver.vib
# Reboot the host
🛈 VMware KB Reference: KB 85 743 — "Using vSphere Lifecycle Manager with vSAN clusters". Always run a pre-check and validate HCL compliance before remediation. Use a single-host test remediation first before rolling to the entire cluster.
19
vSAN Storage Policy Misconfiguration — Wrong FTT / RAID Level
VMs deployed with incorrect storage policies causing unexpected data loss risk or capacity waste
Impact: VMs with FTT=0 have NO redundancy — any single disk or host failure causes permanent data loss. VMs with overly aggressive policies (FTT=2 RAID-1) waste 3x capacity. Both are common misconfigurations.
Dangerous Configurations
  • FTT=0: No replicas — single point of failure (NEVER use in production)
  • FTT=1 RAID-1 on 3-node cluster: Cannot survive maintenance + failure
  • "vSAN Default Storage Policy" unmodified: Ships as FTT=1 RAID-1 which is fine, but admins sometimes change it to FTT=0
  • Force Provisioning = Yes: Creates non-compliant objects silently
Recommended Configurations
  • Production VMs: FTT=1 RAID-1 (4+ nodes) or FTT=1 RAID-5 (4+ nodes, capacity efficient)
  • Mission-Critical: FTT=2 RAID-1 (6+ nodes) or FTT=2 RAID-6 (6+ nodes)
  • Test/Dev: FTT=1 RAID-1 minimum (FTT=0 only if data is disposable)
  • Default policy: Keep at FTT=1 RAID-1, never set to FTT=0
1

Audit all VM storage policies

# From vSphere Client:
# Menu → Policies and Profiles → VM Storage Policies
# Review each policy's vSAN rules:
#   - "Failures to tolerate" (FTT)
#   - "Failure tolerance method" (RAID-1 or RAID-5/6)
#   - "Force provisioning" (should be "No" for production)
#   - "Object space reservation" (thin vs thick)

# Check which VMs use each policy:
# Click a policy → "VM Compliance" tab → See all assigned VMs
2

Find VMs with FTT=0 (no protection)

# From vSphere Client:
# Cluster → Monitor → vSAN → Virtual Objects
# Filter by "Compliance Status" 
# Any VM with "No protection" has FTT=0

# Also check the default policy:
# Menu → Policies and Profiles → "vSAN Default Storage Policy"
# Verify FTT is NOT set to 0
1

Create correct storage policies

# From vSphere Client:
# Menu → Policies and Profiles → VM Storage Policies → Create

# Production Policy example:
#   Name: "vSAN-Production-FTT1-RAID1"
#   Datastore rules: vSAN
#   Failures to tolerate: 1
#   Failure tolerance method: RAID-1 (Mirroring)
#   Force provisioning: No
#   Object space reservation: 0% (thin provisioned)

# Capacity-Efficient Policy example:
#   Name: "vSAN-Production-FTT1-RAID5"
#   Failures to tolerate: 1
#   Failure tolerance method: RAID-5/6 (Erasure Coding)
#   Requires 4+ hosts in cluster
2

Reassign policies to existing VMs

# From vSphere Client:
# Select VM → Policies and Profiles → Edit VM Storage Policies
# Change from the incorrect policy to the correct one
# Click "Apply to all" to apply to all VMDKs

# For bulk re-assignment:
# Select multiple VMs → Right-click → VM Policies → Edit VM Storage Policies

# After policy change, vSAN automatically resyncs objects
# to match the new policy (adds replicas, changes RAID level)
# Monitor: Cluster → Monitor → vSAN → Resyncing Objects
3

Set the correct default storage policy for the datastore

# From vSphere Client:
# Storage → vSAN Datastore → Configure → General
# "Default Storage Policy" → Edit → Select your production policy

# This ensures any new VM deployed without an explicit policy
# automatically gets FTT=1 protection
🛈 Capacity Impact of Policy Choices:
100 GB VM + FTT=1 RAID-1 = 200 GB physical (2x)
100 GB VM + FTT=1 RAID-5 = 133 GB physical (1.33x)
100 GB VM + FTT=2 RAID-1 = 300 GB physical (3x)
100 GB VM + FTT=2 RAID-6 = 150 GB physical (1.5x)
20
vSAN iSCSI Target Service — LUN Inaccessible or Service Crash
Physical servers or external initiators cannot access vSAN iSCSI targets after service failure
Symptoms
  • iSCSI initiators: "Target not available" or "Login failed"
  • vSAN Health: "iSCSI target service – Service runtime status" → FAIL
  • LUNs disappear from initiator's disk list
  • vSphere Client: iSCSI target shows "Offline" status
  • Applications on physical servers using vSAN iSCSI LUNs crash
Root Causes
  • iSCSI target service (vitd) crashed on the home host
  • Network IP for iSCSI target conflicts or becomes unreachable
  • vSAN datastore issue affecting the backing objects for iSCSI LUNs
  • ESXi host running the iSCSI target went into maintenance mode
  • CHAP authentication misconfiguration after credential change
1

Check iSCSI target service status

# From vSphere Client:
# Cluster → Configure → vSAN → iSCSI Target Service
# Review each target's status (Online/Offline) and assigned host

# From the ESXi host running the iSCSI target:
/etc/init.d/vitd status
# Expected: "vitd is running"
2

Verify iSCSI network connectivity

# From the initiator (physical server), verify target is reachable:
ping <iscsi_target_ip>

# From ESXi host, verify the iSCSI VMkernel IP is up:
esxcli network ip interface list
# Check the VMkernel adapter tagged for iSCSI traffic

# Verify from initiator:
iscsiadm -m discovery -t sendtargets -p <target_ip>:3260
1

Restart the iSCSI target service

# From the ESXi host currently assigned as the iSCSI target home:
/etc/init.d/vitd restart

# Verify service is back:
/etc/init.d/vitd status

# Initiators should auto-reconnect within 30-60 seconds
# If not, restart the initiator service on the physical server
2

Relocate iSCSI target if the host is failed/maintenance

# From vSphere Client:
# Cluster → Configure → vSAN → iSCSI Target Service
# Select the affected target → "Edit" → Change "Home Host" to a healthy host

# The target IP will migrate to the new host
# Ensure the iSCSI network port group exists on the new host
3

Fix CHAP authentication issues

# From vSphere Client:
# Cluster → Configure → vSAN → iSCSI Target Service → Select target
# Click "Edit" → Authentication tab
# Verify CHAP name and secret match the initiator's configuration

# On the initiator side (Linux example):
cat /etc/iscsi/iscsid.conf | grep -i "chap"
# Ensure node.session.auth.username and password match the target config
🛈 VMware KB Reference: KB 2151 42 — "Configuring vSAN iSCSI target service". The iSCSI target service supports automatic failover to another host in the cluster if the home host fails. Ensure at least 2 hosts are available for iSCSI target HA.
73
CLOMD Failure — Objects Not Repairing
CLOMD daemon crash or hang prevents vSAN from repairing degraded objects
Impact: CLOMD (Cluster Level Object Manager Daemon) controls object placement and repair. If it fails, degraded objects remain in reduced redundancy indefinitely, increasing data loss risk with each additional failure.
Symptoms
  • Objects stay in "Degraded" state for hours with no resync
  • New VM provisioning fails: "Cannot satisfy storage policy"
  • vmkernel.log: CLOMD: ClomdProcessNodeConfig failed
  • vSAN health shows object issues but no repair activity
  • Resync dashboard shows 0 bytes resyncing despite degraded objects
Root Causes
  • CLOMD service crashed on the object owner host
  • Memory pressure on ESXi host causing CLOMD OOM
  • Corrupt CLOM configuration after unclean host restart
  • Bug in specific ESXi build (check VMware KB database)
  • Excessive number of objects overwhelming CLOMD queue
1

Check CLOMD status

# On each ESXi host in the cluster:
/etc/init.d/clomd status
# Should return "clomd is running"

# Check CLOMD logs:
grep -i "clomd\|CLOM" /var/log/vmkernel.log | tail -50

# Check for crash traces:
ls -la /var/core/clomd*
2

Check object repair queue

# From RVC:
vsan.obj_status_report /dc/computers/cluster-name
# Look for objects with "Needs repair" state

# Check repair timer:
esxcli vsan debug object health summary
1

Restart CLOMD on the affected host

# SSH to the affected ESXi host:
/etc/init.d/clomd restart

# Wait 5 minutes, then verify repair starts:
esxcli vsan debug resync summary
# Should show non-zero "Total Bytes To Resync"
2

If CLOMD won't start — restart all vSAN services

# Full vSAN service restart on the affected host:
/etc/init.d/vsanmgmtd restart
/etc/init.d/clomd restart
/etc/init.d/vsand restart

# If still failing, put host in maintenance mode (ensure accessibility)
# Reboot the host and let vSAN re-initialize
Rebooting an ESXi host removes it from the vSAN cluster temporarily. Ensure the cluster can tolerate this (check object health first). Use "Ensure accessibility" maintenance mode.
74
vSAN Support Bundle Collection Best Practices
Properly collect diagnostic bundles for VMware/Broadcom support escalation

Collect support bundles as soon as possible after an incident. ESXi logs rotate — waiting 24+ hours may lose critical evidence. Always collect from ALL hosts in the cluster, plus vCenter.

1

Collect vSAN-specific bundle from ESXi

# SSH to each ESXi host — use the vSAN-specific group:
vm-support --group vsan -w /tmp/

# This collects vSAN-specific logs (smaller, faster):
# - vsantraces
# - CLOMD/DOM/LSOM logs
# - vSAN object health data
# - esxcli vsan debug output
2

Collect from vCenter Appliance

# vCenter Appliance (VAMI):
# https://vcenter:5480 → Support → Create Support Bundle

# Or via CLI:
# SSH to vCenter:
cd /usr/lib/vmware-vsan/bin/
./vc-support.sh

# Collect vsanmgmtd logs separately if needed:
tar czf /tmp/vsan-vc-logs.tar.gz /var/log/vmware/vsanmgmtd/
3

Collect via vSphere Client (easiest method)

# vSphere Client → Cluster → Monitor → vSAN → Support
# Click "Export vSAN Support Bundle"
# This collects from ALL hosts + vCenter in one operation
# Select the time range around the incident

# For PSOD, also collect:
# /var/core/ — core dump files
# zdump (vmkernel crash dump from the PSOD host)
🛈 Tips: Attach all bundles to your VMware/Broadcom SR (Service Request). Include a timeline of events and any screenshots of errors. For Severity 1 issues, call GSS support directly after uploading bundles.
91
Disk Group Rebuild / Cache SSD Replacement
Step-by-step procedure for replacing a failed cache SSD and rebuilding the disk group
Critical: When a cache SSD fails, the entire disk group goes offline — all capacity disks in that group become unavailable. vSAN begins rebuilding affected object components on other hosts. Replacing the cache SSD and recreating the disk group is the recovery path.
1

Identify the failed disk group

# Check disk group status:
esxcli vsan storage list
# Failed disk group shows "Disk Group State: OFFLINE" or missing

# Identify the failed cache SSD:
esxcli vsan debug disk list
# Cache disk will show "SSD: true" and status "offline" or absent

# Check physical drive health in server management (iDRAC/iLO):
# Locate the failed drive slot for physical replacement
2

Remove the failed disk group

# Remove from vSphere Client:
# Host → Configure → vSAN → Disk Management
# Select the failed disk group → Remove (with data migration if possible)

# Or from CLI:
esxcli vsan storage remove -s naa.FAILED_CACHE_SSD_NAA

# Wait for removal to complete before physical replacement
# This prevents accidental data loss from pulling the wrong drive
3

Physical replacement and disk group recreation

# 1. Physically replace the cache SSD (hot-swap if supported)
# 2. Wait for ESXi to detect the new drive:
esxcli storage core device list | grep -i "new\|naa."

# 3. Claim the new SSD for vSAN cache and recreate disk group:
esxcli vsan storage add -s naa.NEW_CACHE_SSD -d naa.CAPACITY_1 -d naa.CAPACITY_2

# Or via vSphere Client:
# Host → Configure → vSAN → Disk Management → Create Disk Group
# Select the new cache SSD + existing capacity disks

# 4. Monitor resync:
esxcli vsan debug resync summary
# vSAN will rebuild components onto the new disk group
🛈 Capacity disk replacement is simpler — remove the single disk from the disk group, replace physically, then add the new disk back. The disk group stays online since only the cache SSD failure takes down the entire group.
93
vSAN Performance Service Configuration & Troubleshooting
Enable, configure, and troubleshoot the vSAN Performance Service for historical metrics

The vSAN Performance Service collects granular I/O metrics (latency, IOPS, throughput) and stores them in a stats database on the vSAN datastore. It is separate from vSAN Health — health checks object/cluster state while Performance Service tracks I/O metrics over time.

1

Enable the Performance Service

# vSphere Client:
# Cluster → Configure → vSAN → Services → Performance Service → Turn ON

# Requirements:
# - Uses ~255 GB on the vSAN datastore (stats object)
# - One host becomes the "stats master" (elected automatically)
# - Collects data every 5 minutes (configurable intervals)

# Verify it's running:
# Cluster → Monitor → vSAN → Performance → should show graphs
# If graphs show "No data available" — service may need time to collect
2

Troubleshoot missing performance data

# 1. Check if stats master is healthy:
esxcli vsan debug object list | grep -i "stats"
# The stats DB object should be "Healthy"

# 2. Restart the performance service:
# vSphere Client → Cluster → Configure → vSAN → Services
# Turn OFF Performance Service → wait 30 seconds → Turn ON

# 3. If stats object is corrupted:
# Delete the performance stats object (loses history):
# Turn OFF service → it auto-deletes the stats DB
# Turn ON → creates fresh stats object
# Data collection resumes from scratch

# 4. Check disk space — stats DB needs ~255 GB free on vSAN
🛈 Key metrics to monitor: Backend Latency (DAVG), Guest Latency (GAVG), Congestion, Resync Rate, Cache Hit Ratio. Use Performance Service for trend analysis and Skyline Health for anomaly detection.