For years, vSphere administrators have had it easy; they had the ability to “set it and forget it” when it came to optimizing workloads across the various hosts that comprised the cluster. This magic came by way of the Distributed Resource Scheduler (DRS) feature available in the vSphere/vCenter product set. Configurable to different automation levels, DRS takes the guesswork out of workload placement decisions by taking over this responsibility on behalf of the user. With DRS, the administrator can specify rules that must be followed. These affinity rules dictate which workloads are allowed to run with other workloads. For example, no one wants a situation in which all of an organization’s domain controllers are placed on the same host.
In Virtual Machine Manager 2008 R2, Microsoft leveraged the monitoring capabilities of Operations Manager with a feature called Performance and Resource Optimization (PRO). This feature would recommend workload migrations when resource constraint rule dictated and these migrations could be carried out with additional PRO rules with or without administrator intervention.
With VMM 2012, Microsoft has replaced the PRO feature with a new feature called Dynamic Optimization. The best part: Dynamic Optimization eliminates any reliance on Operations Manager. Although Operations Manager is a great product, as a requirement for PRO, it was just an implementation bottleneck.
Further, bear in mind that VMM 2012 supports Hyper-V, vSphere and Xen Server. As such, Dynamic Optimization works across all of these supported platforms as well.
So, what exactly does Dynamic Optimization bring to the table?
Like DRS, Dynamic Optimization automatically performs initial placement for new virtual machine. When a new VM is created, it will be placed based on cluster resources. On an ongoing basis—every 10 minutes, to be exact—Dynamic Optimization evaluates the current state and moves workloads based on resource utilization.
Now, for a negative. From the System Center blog on Dynamic Optimization: “there is no built-in process to make sure two cluster groups (virtual servers in this case) that are anti-affined are running on different hosts.” So, if you have anti-affinity rules associated with existing clusters, those rules may not be respected under Dynamic Optimization.