VMware, VM will not power up on vCloud with moRef error.
Issue:
In VMware vCloud Director we can not power up a VM with error: vCloud could not find object with moRef “vm-xxx”.
You will be able to power up the VM on vSphere, but this is not reflected in the vCloud VM status.
Resolution:
Every object within a vSphere environment is internally tracked, and referred to, by a unique identifier called moRef ID (“Managed Object Reference ID”).
Every virtual infrastructure object managed by vSphere (datacenters, clusters, hosts, datastores, VMs, vApps, vSwitches and so on) has a moRef ID.
If the vCloud database has an incorrect moRef id for a Virtual Machine for example, as such vCloud can no longer track the VM and as such it can not manage it.
To correct this, we will need to remove the erroneous moRef id.
In my example, I am using oracle database and this will need oracle db manager installed.
Steps:
select id, name,vc_id ,moref, cloud_uuid,instance_uuid from vm where name like ‘%VM-NAME%’;
^you can see the moref the vm has
select vm_inv_id, name,moref ,vc_id, cloud_uuid,instance_uuid from vm_inv where name like ‘%VM-NAME%’;
^ confirm the same moref is here
select * from computevm where vmmoref = ‘vm-324226’;
^check if the above moref is here
select * from networked_vm where moref = ‘vm-324233’;
^check if the above moref is here
update computevm set vmmoref = ‘vm-324233’ where vmmoref = ‘vm-1939’;
^change the moref to new from old e.g. from 1931 to 324233
update networked_vm set moref = ‘vm-324233’ where moref = ‘vm-1939’;
^change the moref to new from old e.g. from 1931 to 324233
commit
^save the changes
Notes:
Above guide used some information from the following guides:
How to (quickly) match a moRef ID to a name in VMware vSphere