What was broken ?
VCDriver connects to a vCenter Cluster which is an aggregate of physical hosts. VCDriver incorrectly reported the resource statistics to the tracker. It randomly picked up a host in the cluster and reported the resource stats.
How was it fixed ?
Let me summarize on how we calculate the metrics :-
vcpus = sum(pCPUs of hosts in the cluster)
vcpus_used : 0 (Not fixed by the patch)
host_memory_total = Effective Memory of a cluster, which is defined as the memory available to run virtual machines. This is the aggregated effective resource level from all running hosts. Hosts that are in maintenance mode or are unresponsive are not counted. Resources used by the VMware Service Console are not included in the aggregate.
host_memory_free = effectiveMemory - consumedMemory. The consumed memory is the current memory usage of all VM's across the cluster.
Note:- Currently, the nova scheduler does not honor the vcpus_used reported by the driver. It logs the hypervisor's view of resource consumption and computes the vcpus_used directly from the instances provisioned on the compute node. Because reporting vcpus_used was not critical, it's not fixed here.
For new reviewers :-
What was broken ?
VCDriver connects to a vCenter Cluster which is an aggregate of physical hosts. VCDriver incorrectly reported the resource statistics to the tracker. It randomly picked up a host in the cluster and reported the resource stats.
How was it fixed ?
Let me summarize on how we calculate the metrics :-
vcpus = sum(pCPUs of hosts in the cluster)
vcpus_used : 0 (Not fixed by the patch)
host_memory_total = Effective Memory of a cluster, which is defined as the memory available to run virtual machines. This is the aggregated effective resource level from all running hosts. Hosts that are in maintenance mode or are unresponsive are not counted. Resources used by the VMware Service Console are not included in the aggregate.
host_memory_free = effectiveMemory - consumedMemory. The consumed memory is the current memory usage of all VM's across the cluster.
Note:- Currently, the nova scheduler does not honor the vcpus_used reported by the driver. It logs the hypervisor's view of resource consumption and computes the vcpus_used directly from the instances provisioned on the compute node. Because reporting vcpus_used was not critical, it's not fixed here.