This
blog post will cover what Intelligent Placement is in VMM 2012, how it works
and how it fits into Dynamic Optimization.
High-level overview of Intelligent
Placement
When
you deploy a virtual machine with VMM, there is a lot going on under the hood
to ensure that you will have a successful deployment. Things like hardware
configuration and host resources is critical, and also consistency when you
deploy to a cluster. In summary, there is a lot of variables in the mix that
can give you a warning or error. Some of the warnings and errors you might get
could seems irrelevant to you at first, but VMM like to ensure that your
environment is fit, healthy and properly configured.
This is
why I am writing this blog post to enlighten you to be able to understand what
is going on and how to correct these things. I’ve seen a lot of consultants,
customers and forum users blaming VMM for not being able to deploy a virtual
machine, while it is successful when using Failover Cluster Manager or/and Hyper-V
Manager.
Virtual Machine Manager – The Management
layer and its intelligence
Once
you add your virtualization hosts (Hyper-V) to VMM, the VMM agent gets
installed as part of the process.
The VMM
management server communicates with its agents on the hosts and get the
information its need to detect how the hosts are operating. The Fabric
workspace in VMM is where you configure your infrastructure – the building
blocks for your datacenter and cloud. This will include storage, network and
computing power. Computing power in this context is equal to virtualization
hosts and the different server roles required supporting their life cycle. You can
configure Host groups within VMM and
the host groups contain several properties for the hosts it contains.
One of
the properties that is relevant to this blog post and intelligent placement is
host reserves and dynamic optimization.
You can
specify an amount of resources that should be reserved for the hosts within the
host group at all time. VMM will bring this (among other variables, as we will
see) into consideration during deployment of virtual machines and services. And
just to be a bit more complex, you have the opportunity to specify host
reserves on each host individually as well. As you can see, there is a lot of
things to be aware of. Someone should keep this in mind all the time. There might
be just you that is deploying virtual machines in your organization, or other
administrators as well. Luckily, VMM is our rescue here and keep track of this
all the time.
Networking
is another major factor that may affect the deployment. This is also something
you map to your host groups, so that VMM is able to tell if a virtual machine
can be deployed to these hosts or clusters and ensure network connectivity.
Imagine
this in a huge environment. You would probably need a couple of spreadsheets to
keep this documented, and remember you would have to maintain it too.
Dynamic Optimization
When
you have a cluster managed by VMM, you can enable both Dynamic Optimization and
Power Optimization at the host group level. Dynamic Optimization will load
balance the cluster(s) when enabled, based on the configuration you specify. You
can decide how aggressive it should be (move virtual machines for less gain)
and how frequently the optimization should run. Power Optimization will power
your hosts on and off when needed, to support the workload. Power Optimization
requires Dynamic Optimization to be enabled and that your hosts are configured
for out of band management.
Dynamic
Optimization is one of the features you should really care of if you want to
enable a private cloud and have a dynamic environment for your virtual
machines. Instead of check the state of your cluster, hosts prior to a new
virtual machine deployment, make sure you have enough resources; VMM will do
this for you thanks to intelligent placement, and ensure that the environment
is correctly balanced with dynamic optimization.
Dynamic
Optimization was first new in VMM 2012 and did not require SCOM integration to
work, as it required in VMM 2008 R2.
So instead
of using a SCOM agent on your hosts to get this information, VMM monitors and
acts natively in the VMM service with the VMM agents instead and relies on the
intelligent placement feature.. Since VMM is now in control of it, you will
have a centralized decision maker seeing your cloud fabric in context.
We now know that
Intelligent Placement is the enabler for Dynamic Optimization and you should
really use Dynamic Optimization (and eventually Power Optimization if possible)
when managing your cloud environment. We will now have a look at some of the
checks that intelligent placement is doing for you
What does Intelligent Placement actually check
before it places its virtual machines on the hosts?
Platform type (Hyper-V, XenServer, VMWare)
Three different hypervisors is potential equal to
three different kinds of errors.
Hyper-V has its own disk formats and scalability
limitations, and the same goes for both VMware and XenServer. If you try to
deploy a virtual machine with VHDX disks to an ESXi host, or trying to deploy a
VM that has Dynamic Memory enabled when the hypervisor does not support it, this
would fail beyond recognition. Intelligent Placement will check this, and you can
create hardware profiles for your virtual machines that matches the three
different hypervisors that VMM supports and categorize these in the library.
CPU compatibility
Make model, stepping and architecture.
A known
rule in the Hyper-V world is that you can perform Live Migration between hosts
as long as the CPU is from the same manufacturer. You can also enable the
option to allow migration to different CPU architectures on the HW profile for
the virtual machine. This is something that VMM checks for you during
deployment and intelligent placement.
Host Reserves
As mentioned
earlier, each host group and each individual host can have its own
reservations. Intelligent Placement will ensure this will be considered during
placement of VMs so you do not overcommit your hosts and clusters.
Logical processor count on the host
With
Hyper-V in Windows Server 2012, you can have as many vCPU’s within a virtual
machine as there are logical CPU’s on the hosts. The maximum number a virtual
machine supports is 64 vCPU’s.
To summarize,
if you deploy a virtual machine with 14 vCPU’s and the host only has 8 logical
CPU’s, this will result in an error telling you what is going on and why it is
failing.
NUMA configuration match between VM
and host
VMM
detects and check the NUMA configuration to make sure nothing is in disharmony
before it deploys a virtual machine.
Snapshot compatibility
Compatibility
on migration or deployment from libraries will be checked during intelligent
placement.
Host state
Checks if
the hosts are available for placement, responding, has healthy agents and so
on.
Networking
This could
probably be an entire blog post by itself. Networking plays a huge role in VMM,
and VMM is responsible and able to ensure that everything is properly
configured. Network connectivity for the hosts groups, associated physical
network adapters on the hosts to the right logical networks, VM networks
associated with the right logical networks according to the host groups and
hosts, if network virtualization is enabled on the logical network and/or the
logical switch, native port profiles, if the load balancer is available for
host group and much more is checked both during placement and during Dynamic
Optimization.
Possible owners, preferred owners
(Cluster)
Now in VMM
2012 SP1, you can specify both possible owners and preferred owners for each
virtual machine. This is a setting we know from Failover Cluster in Windows
Server and VMM and these settings are now exposed in VMM. VMM will bring this
into consideration during placement and when Dynamic Optimization kicks in.
Availability sets and Anti-Affinity
settings
When you
configure availability sets for the virtual machines, VMM will not place these
virtual machines on the same hosts. Please note that this is not a hard block.
Machine name length
Allowable
characters in VM name per platform.
Allowable characters in VM name
This setting
is individual to each platform.
Disks
Disk
matching, space, classification, disk IO capacity, shared disk type, and
pass-through disk checks.
Cluster overcommit checks
VMM can
configure ‘cluster reserves’ for each cluster. If the value results in
overcommit for your cluster, you’ll get a warning during placement, and dynamic
optimization might not run as expected.
RemoteFX
Checks if
RemoteFX is available on the hosts compared to the VM configuration
Each of
these checks is taking into account on every deployment, migration, dynamic
optimization, maintenance mode and is continually evaluated by intelligent
placement so that the appropriate actions can be taken if there are any
problems.
I would like to thank
Hilton Lange on the VMM team for providing me with valuable insight and tips to
create this blog post. Thank you!
There is a
lot more going on, and I will likely be updating this blog post when something
new is added – or detected on the way.