vCenter Server Preupgrade check result error:
VMDir Replication between partners is not working.Make sure vmdir service is reachable and started in partner nodes and this node before continuing.
.
The vCenter upgrade fails due to Read-Only VMDir Mode.
In some cases, restoring a vCenter Server from snapshots without restoring the rest of the SSO domain nodes in Enhanced Linked Mode (ELM) can introduce inconsistencies in the VMDIR database, VMDir will change the state to Read-only to prevent potential data corruption amongst ELM partners when such restore operation is detected.
As highlighted previously, the read-only mode is implemented as a protective measure against data corruption incidents, hence a definitive resolution is not available. However, this guide presents a workaround for scenarios where one or more ELM partners are detected in read-only mode.
The steps to be followed are:
Note: Please be advised that we strongly recommend creating offline snapshots of the all the vCenter Servers in ELM setup prior to implementing the workaround. This measure will ensure that comprehensive rollback options are available if necessary.
Preparation:
Identify a healthy vCenter Server (either external or embedded) that you will use as a reference to retrieve VMDIR data. Remember the FQDN of this healthy vCenter Server and its root account password.
Note: If you're fixing an embedded node, choose another embedded node as the reference. If fixing an external node, decide an external node as your reference.
Keep a note of the administrator@your_domain password.
Take note of the replication topology of the issue vCenter - this can be done with below command:
/usr/lib/vmware-vmdir/bin/vdcrepadmin -f showpartnerstatus -h localhost -u administrator
Steps to Repair:
INFO - vSphere SSO Domain Name: vsphere.localINFO - vSphere SSO Domain DN: dc=vsphere,dc=localINFO - vSphere SSO Admin DN: cn=administrator,cn=users,dc=vsphere,dc=local..INFO - Successfully executed script /usr/lib/repoint/taggingservice_component_script.pyINFO - Conflict data, if any, can be found under /storage/domain-data/Conflict*.jsonINFO - Successfully finished <cis.component_data.DcComponentsPreCheck object at 0x7f39f5474850>INFO - pre-check completedINFO - vSphere SSO Domain Name: vsphere.localINFO - vSphere SSO Domain DN: dc=vsphere,dc=localINFO - vSphere SSO Admin DN: cn=administrator,cn=users,dc=vsphere,dc=local..INFO - Successfully executed script /usr/lib/repoint/taggingservice_component_script.pyINFO - Successfully finished <cis.component_data.DcExportCommand object at 0x7f24978e3b80>INFO - export completedINFO - Proceeding with fix-psc rebuildINFO - vSphere SSO Domain Name: vsphere.localINFO - vSphere SSO Domain DN: dc=vsphere,dc=local.INFO - All End points un-registered successfully.INFO - Successfully created user machine in SSO.INFO - Successfully created user vsphere-webclient in SSO.INFO - Successfully created user vpxd in SSO.INFO - Successfully created user vpxd-extension in SSO.INFO - Creating service account....INFO - Initializing ServiceAccount session... Done running commandINFO - vSphere SSO Domain Name: vsphere.localINFO - vSphere SSO Domain DN: dc=vsphere,dc=localINFO - vSphere SSO Admin DN: cn=administrator,cn=users,dc=vsphere,dc=local..INFO - Starting all services ...INFO - All services Started.INFO - Successfully finished <cis.component_data.DcImportCommand object at 0x7f29884c9900>INFO - Successfully cleaned the storage directoryINFO - import completedfixpsc, you can verify service registrations with the lsdoctor tool. Find detailed information at Using the 'lsdoctor' Tool./usr/lib/vmware-vmdir/bin/vdcrepadmin -f createagreement -2 -h localhost -H <TARGET_VC> -u administrator
The same error message during the upgrade of the vCenter will return when an old PSC was decommissioned but never got removed from the partners list.
Make sure no stale entries of old PSCs/vCenters are present in the directory, use vdcrepadmin for that: Determining replication agreements and status with the Platform Services Controller (PSC) then if necessary use the cmsso-util to unregister it as per KB Using the cmsso command to unregister vCenter with External PSC or vCenter with Embedded PSC from Single Sign-On
Determining replication agreements and status with the Platform Services Controller (PSC)