How does Virtual Machine Manager know where to locate a virtual machine when it needs to migrate or you go to create one?
If you don’t have VMM to manage your Hyper-V hosts then it becomes either 100% manual (when you manually migrate or create a VM) or 100% automated when there is a failover. There is no in-system intelligence involved.
VMM does it very differently using Intelligent Placement. The basic premise is that VMM is monitoring key resources on the Hyper-V hosts that it manages. Using an algorithm that is either default or customised by you it will take those resources and know where to place a VM in one of a number of scenarios:
- (Automated Placement) When a VM is created in the self-service console it is automatically place on a host by VMM based on the host ratings.
- (Manual Placement) When you create a VM in the admin console it will recommend a host for you to choose.
- (Automated Placement) When there is a host failure VMM will use Intelligent Placement to move the VM to the highest rated host.
- (Manual Placement) When OpsMgr and PRO tips initiate an alert, VMM will use Intelligent Placement to relocate VM’s to the host with the most available resources, i.e. the highest rated host.
- (Automated Placement) When you drag and drop a VM to a host group the VM will be automatically placed on a host in that group based on host ratings.
You can alter how the Intelligent Placement algorithm works on your VMM server. There are two basic models:
- Resource Maximisation: This is the model you take when you want VMM to make the very most out of each and every host. VMM will try to place as many VM’s on a single host as is reasonable.
- Load Balancing: The goal here is to get the very best performance from your VM’s that you can. VMM will locate VM’s in an effort to balance the resource utilisation across all hosts.
There are 4 basic resource types that will be utilised in the algorithm. There is a slider to allow you to prioritise these resources when they are evaluated:
- Memory (RAM)
- Disk I/O capacity
- Network capacity
To be honest I think most people will choose a load balancing model and will prioritise CPU. Disk I/O and network capacity probably come next depending on where your bottlenecks are. Those few going with the maximisation model will probably prioritise memory because it then likely becomes the bottleneck resource.
How do these host ratings get calculated? VMM measures the resources of the host around every 10 minutes. There are circumstances that change the available resources of a host and thus the rating of the host. These are:
- New Virtual Machine
- Deploy Virtual Machine
- Store Virtual Machine
- Migrate Virtual Machine
- Delete Virtual Machine
- Virtual Machine Turned On
- Virtual Machine Turned Off, Stopped, Paused, Saved State
The host is rated only when a VM is to be placed. The gathered information is used to compare the host against the resources required by the new/moved virtual machine. A rating is generated, anywhere from 0 stars to 5 stars in half star increments. The host ratings do not involve comparing and contrasting hosts. They simply show how suitable each host will be based on empirical data and an estimation of what resources that VM will require in the future. In automated scenarios the host with the highest rating will be chosen. In manual scenarios it’s up to the administrator to agree with or reject the recommendation.
A number of circumstances can cause a host’s rating to be zero stars, i.e. VMM believes the placement to be unsuitable:
- There is not enough RAM available for the VM you want to place on a host.
- There is not enough available storage for a VM, e.g. a Windows Server 2008 Hyper-V cluster does not have an available LUN for the VM.
- The virtual network the VM is configured to use is not available on the host.
- Some advanced VM configuration is not supported by the host, e.g. advanced networking or high availability. You can still force a placement in this scenario by changing that setting when promoted by the wizard.
Intelligent placement is an estimation based on empirical data combined with the tuning of the algorithm. It’s up to you to tune that algorithm to suit the VM’s, hosts and business requirements for your organisation. VMM will then do it’s best by making recommendations to you when you move/create a VM or when an automated action must be performed by VMM.