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.
/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
select id, dns_name, product_version from vpx_host;
\q
vim-cmd vmsvc/getallvms | grep vCLS
vim-cmd vmsvc/power.off <VM_ID>
vim-cmd vmsvc/unregister <VM_ID>
service-control --stop vmware-vpxd
service-control --start vmware-vpxd
Option 2.
Connect to the vCenter Server Appliance via SSH.
$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