vCenter upgrade fails in UPGRADE_PRECHECK stage - Failed to get vSAN datastore FD number
search cancel

vCenter upgrade fails in UPGRADE_PRECHECK stage - Failed to get vSAN datastore FD number

book

Article ID: 389486

calendar_today

Updated On:

Products

VMware SDDC Manager / VCF Installer

Issue/Introduction

  • vCenter upgrade fails during pre-check with the below error:
vCenter upgrade failed at the VCENTER_UPGRADE_PRECHECK stage.
Upgrade validation has failed.
Failed to get vSAN datastore FD number.
vCenter upgrade is rolled back.Message:
vCenter upgrade failed at the VCENTER_UPGRADE_PRECHECK

Environment

VMware SDDC manager 9.0

Cause

This issue occurs when the hostFailuresToTolerate attribute is missing from the vSAN Default Storage Policy. SDDC Manager validates this policy during pre-checks via the SPBM service; if the attribute is missing, the validation fails.

Note: The vSphere Client UI may still visually report the "Failures to tolerate" rule as present, even when the underlying SPBM hostFailuresToTolerate capability is missing.

Resolution

Check Policy Attributes: 

  • Use any of the below methods to query the vSAN Default Storage Policy and verify if hostFailuresToTolerate is missing.

vCenter Mob:

  • In vSphere Client, Navigate to Policies and Profiles > VM Storage Policies.
  • Select the vSAN Default Storage Policy
  • Copy the UUID of the vSAN Default storage policy from the address bar.

Example: PbmRequirementStorageProfile:#######-####-####-#######%

  • Navigate to https://vcenter-fqdn/pbm/mob/?moid=ProfileManager&method=PbmRetrieveContent
  • Update the UUID captured above

<profileIds>
   <uniqueId>UUID</uniqueId>
</profileIds>

  • Click Invoke Method
  • Validate the presence of "hostFailuresToTolerate" attribute

PowerCli:

# 1. Authenticate to the vCenter Server

Connect-VIServer -Server <vCenter_FQDN_or_IP>

Note: Enter the vCenter SSO administrator credentials when prompted

# 2. Execute the below script which will output if the hostFailuresToTolerate is present or not

$vsanPolicy = Get-SpbmStoragePolicy -Name "vSAN Default Storage Policy"
$fttRule = $vsanPolicy.AnyOfRuleSets.AllOfRules | Where-Object { $_.Capability.Name -eq "VSAN.hostFailuresToTolerate" }
if ($fttRule) {
    Write-Host "VSAN.hostFailuresToTolerate is present. Configured Value: $($fttRule.Value)" -foregroundcolor green
} else {
    Write-Host "VSAN.hostFailuresToTolerate is NOT present in the selected policy." -foregroundcolor red
}

# 3. Disconnect from vCenter Server

Disconnect-VIServer -Confirm:$false

Refresh SPBM Service: 

If hostFailuresToTolerate attribute is missing in the vSAN Default Storage Policy, refresh the SPBM Service.

  • In vSphere Client, Navigate to Policies and Profiles > VM Storage Policies.
  • Select the vSAN Default Storage Policy
  • Select "Edit"
  • Without making any changes, complete the wizard by select next and finish.

Retry Upgrade:

  • Perform the vCenter upgrade again via SDDC Manager