vCenter objects unavailable in the vSphere Client.
Restarting the vpxd service via service-control --start vmware-vpxd works temporarily, but the service crashes again.
The issue occurs immediately following a snapshot revert or a failed upgrade/downgrade of the vCenter Server.
/var/log/vmware/vpxd/vpxd.log
YYYY-MM-DD info vpxd[1234] [Originator@6876 sub=MoCluster opID=27XXXXXX-01] Recommended placement for HDCS VM; [vim.VirtualMachine:vm-X17,vCLS-3XXXXXX-XXX-XXXX-8XXXXXXXXXXXX7], cluster: [vim.ClusterComputeResource:domain-cX,Gold Cluster], host: (null), fault: (vim.fault.NoCompatibleHost) {--> faultCause = (vmodl.MethodFault) null,--> faultMessage = <unset>,--> host = (vim.HostSystem) [--> 'vim.HostSystem:5XXXXcXX-XXXX-XXXX-XXXX-fXXXXXXXXf:host-XXXX'--> ],--> error = (vmodl.MethodFault) [--> (vim.fault.HAErrorsAtDest) {--> faultCause = (vmodl.MethodFault) null,--> faultMessage = <unset>--> msg = ""--> }--> ]--> msg = ""-->
YYYY-MM-DD info vpxd[4567] [[Originator@6876 sub=MoCluster opID=27XXXXXX-01] Recommended placement for HDCS VM; [vim.VirtualMachine:vm-X17,vCLS-3XXXXXX-XXX-XXXX-8XXXXXXXXXXXX7], cluster: [vim.ClusterComputeResource:domain-cX,Gold Cluster], host: (null), fault: (vim.fault.NoCompatibleHost) {
vCenter server 8.0.U2 and 8.0 U3
ESXI 8.0.U2 and 8.0 U3
The version mismatch between the vCenter Server and the Embedded vCLS VMs on certain hosts. This mismatch occurs due to the snapshot revert process, which doesn't account for the Embedded vCLS feature introduced in later versions.
This presents as a database incompatibility which appears to the vCenter Server under 8.0 U2 to be a corrupt object in the vcdb.
Option 1.
Before following the below steps have a vCenter backup in place, Refer to the KB article for steps to manually make the vCenter backup from VAMI : KB 375278
Also take vCenter snapshot before proceeding with the below steps, if the vCenter are in ELM please take the offline snapshot, Refer to the KB article for VMware vCenter in Enhanced Linked Mode pre-changes snapshot (online or offline) best practice : KB 313886
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgresselect id, dns_name, product_version from vpx_host;\qvim-cmd vmsvc/getallvms | grep vCLSvim-cmd vmsvc/power.off <VM_ID>vim-cmd vmsvc/unregister <VM_ID>service-control --stop vmware-vpxdservice-control --start vmware-vpxdOption 2.
Before following the below steps have a vCenter backup in place, Refer to the KB article for steps to manually make the vCenter backup from VAMI : KB 375278
Also take vCenter snapshot before proceeding with the below steps, if the vCenter are in ELM please take the offline snapshot, Refer to the KB article for VMware vCenter in Enhanced Linked Mode pre-changes snapshot (online or offline) best practice : KB 313886
Connect to the vCenter Server Appliance via SSH.
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres -c "UPDATE vpx_host SET enabled = 0"/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres -c "UPDATE vpx_host SET enabled = 1"Connect-VIServer -Server EXAMPLE_FQDN/IP_OF_VCENTER$password = "EXAMPLE_PASSWORD"
get-vmhost | % {
$view = get-view $_.id
$arg = new-object VMware.Vim.HostConnectSpec
$arg.userName = "root"
$arg.password = $password
$arg.force = $true
$view.ReconnectHost_Task($arg,$null)
}
Disconnect-VIServer -Confirm:$false