How-to – vCenter Inventory Service fails to start in vCenter Server Appliance 5.x

0
6738

Symptoms

  • The vCenter Server Inventory service fails to start in vCenter Server Appliance
  • In the /var/log/vmware/vpx/inventoryservice/ds.log file, you see entries similar to:[YYYY-10-19 13:56:41,077 WrapperListener_start_runner FATAL com.vmware.vim.dataservices.WrapperListenerImpl] Error starting service: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘instanceUUID’ defined in class path resource [server/config/server-config.xml]: Cannot resolve reference to bean ‘store’ while setting bean property ‘targetObject’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘storeFactory’ defined in class path resource [server/config/query-server-config.xml]: Invocation of init method failed; nested exception is com.xhive.error.XhiveException: INTERNAL_ERROR: Log corrupt: no log records seen, checkpointLSN = 5009727e5)
  • Virtual machines are missing in the inventory in Web Client 5.5. 
  • In the vSphere Web Client, you see an error similar to: Client is not authenticated to VMware Inventory Service

Cause

This issue occurs when the vCenter Server Inventory Service database is unusable or corrupt.

Resolution

To resolve this issue, recreate the vCenter Inventory Service database and re-register it to vCenter Server Appliance.
To recreate the vCenter Inventory Service database and to and re-register it to vCenter Server Appliance:
  1. Connect to the vCenter Server Appliance using SSH or a virtual machine console and log in as the root user.
  2. Run these commands:
# service vmware-inventoryservice stop
# rm -rf /storage/db/inventoryservice/data
# /usr/lib/vmware-vpx/inventoryservice/scripts/ds-invoke.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice com.vmware.vim.dataservices.CreateDb /storage/db/inventoryservice/data changeme default changeme

Note: The database password is changeme.

  1. Ensure that the vCenter Inventory Service is started by running this command:# service vmware-inventoryservice start
  2. To re-register the vCenter Inventory Service to vCenter Server Appliance, run these commands in order depending on your version:

vCenter Server Appliance 5.0:

# /usr/lib/vmware-vpx/inventoryservice/scripts/ds-invoke.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice-registration com.vmware.vim.dataservices.provider.util.SetupLocalService -vcurl https://vcenter_name_or_ip:443 /sdk/vimService -providercfg file:/usr/lib/vmware-vpx/inventoryservice/lib/server/config/vc-provider-registration.xml -servicecfg /usr/lib/vmware-vpx/inventoryservice/lib/server/config/dataservice.properties# service vmware-vpxd restart

vCenter Server Appliance 5.1:

# /usr/lib/vmware-vpx/inventoryservice-registration/vcregtool.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice-registration com.vmware.vim.dataservices.vcregtool.RegisterVC -action register -lookupserviceurl https:// vcenter_name_or_ip:7444/lookupservice/sdk -isurl https://vcenter_name_or_ip:10443 -vcurl https://vcenter_name_or_ip/sdk/vimService -vccert /etc/vmware-vpx/ssl/rui.crt -vcprivkey /etc/vmware-vpx/ssl/rui.key -vcinstancecfg /etc/vmware-vpx/instance.cfg -vcendpointsdir /usr/lib/vmware-vpx/endpoints -vcextensionsdir /usr/lib/vmware-vpx/extensions

# service vmware-vpxd restart

Note: If you are using an external Single Sign-On instance, specify the Single Sign-On server name or IP address within the -lookupserviceurl portion of the above command.

vCenter Server Appliance 5.5:

# vcenterhost=vchost.mydomain.com

Note: The above command sets the vcenterhost= to the FQDN of your vCenter Server Appliance. To obtain the FQDN of your vCenter Server Appliance, run the command hostname.

# /usr/lib/vmware-vpx/inventoryservice-registration/vcregtool.sh -Dvim.logdir=/var/log/vmware/vpx/inventoryservice-registration com.vmware.vim.dataservices.vcregtool.RegisterVC -action register -lookupserviceurl https://$vcenterhost:7444/lookupservice/sdk -isurl https://$vcenterhost:10443 -vcurl https://$vcenterhost/sdk/vimService -vccert /etc/vmware-vpx/ssl/rui.crt -vcprivkey /etc/vmware-vpx/ssl/rui.key -vcinstancecfg /etc/vmware-vpx/instance.cfg -vcendpointsdir /usr/lib/vmware-vpx/endpoints -vcextensionsdir /usr/lib/vmware-vpx/extensions
# service vmware-vpxd restart

Note: If you are using an external Single Sign-On instance, specify the Single Sign-On server name or IP address within the-lookupserviceurl portion of the above command.