Encountered a strange bug which is invoked in a very specific case with old vCD 1.5 allocated vdc’s on a system that has been upgraded to 5.1.x and then to 5.5. The incorrect vDC CPU allocations can be seen in 5.1.x but won’t prohibit any vDC creation but with 5.5 it will check that there are sufficient resources available and thus fail if you over provision. In the image below you can see that there are 5 vDC’s using the Allocation Pool mehtod and have a nice 9233372036854776.00Ghz CPU allocation. Obviously this isn’t correct so it needs to be fixed.
If you try to change the CPU allocation value of any of those vDC’s, you will get an error stating the following: “The given value of CPU allocation for this OrgVdc is too high to be accomodated. ValidationException INVALID_VRP_CPU_MHZ”
*note* This fix requires modifying the vCloud Director database and thus should be done only if necessary. if unsure, do contact VMware support.
You can find the vDC provision values in a table named dbo.vrp in your vCloud Director database, to verify the vDC allocations, do the following query:
select * from dbo.vrp where cpu_allocation_mhz > 4294967295000
now you can update the CPU allocations with the following command
update vrp set cpu_allocation_mhz = 10240 where cpu_allocation_mhz > 4294967295000
and to verify they have been updated, do the following query
select * from dbo.vrp where cpu_allocation_mhz > 10240
After this, vCloud Director organization virtual datacenter provision numbers will be closer to what should be expected.
As vCD only works as a easy to use portal for vCenter Server, the provisioning values are also incorrect in vCenter Server. To correct these, open up the Cluster view in Hosts and Clusters and select the Resource Allocation tab. You can sort using the Limit – MHz column to easily find the incorrect vDC resource pools. From here it’s easy to enter the same values which have been changed in vCloud Director database.
If there are any vDC resource pools with a negative CPU value, then you won’t be able to edit them by right clicking and selecting “Edit Resource Settings”, but needs to be done using the resource allocation tab. You will get an error stating that an Internal error occured in the vSphere client. Value of ‘-1’ is not valid for ‘Value’. ‘Value’ should be between ‘Minimum’ and ‘Maximum’.
This will now fix provisioning of new Virtual Datacenters but most likely will leave the vDC’s broken. Any old vDC that had a incorrect value will need to be re-created, which isn’t optimal.