Last Modified
2014-11-14 08:57:33 -0500
Requires

Description

An admission controlled resource scheduler for large scale vSphere deployments

While DRS (Dynamic Resource Scheduler) in vSphere handles CPU and Memory allocations within a single vSphere cluster, larger deployments require another layer of scheduling to make the use of multiple clusters transparent. So this class doesn't replace DRS, but in fact works on top of it.

The scheduler in this class performs admission control to make sure clusters don't get overloaded. It does so by adding additional metrics to the already existing CPU and Memory reservation system that DRS has. After admission control it also performs very basic initial placement. Note that in-cluster placement and load-balancing is left to DRS. Also note that no cross-cluster load balancing is done.

This class uses the concept of a Pod: A set of clusters that share a set of datastores. From a datastore perspective, we are free to place a VM on any host or cluster. So admission control is done at the Pod level first. Pods are automatically dicovered based on lists of clusters and datastores.

Admission control covers the following metrics:

Placement after admission control:

Usage: Instantiate the class, call make_placement_decision and then use the exposed computer (cluster), resource pool, vm_folder and datastore. Currently once computed, a new updated placement can't be generated.