I’m Hilton Lange, Software Development Engineer in the VMM 2012 team. I’d like to continue my previous article about Dynamic Optimization (DO) by telling you about its closely related sister feature, Power Optimization (PO). DO allows you to automatically correct certain VM health issues and continually load balance the VMs in your cluster. PO allows you to entirely power down a section of your cluster when load is lower than peak.
When everything is configured correctly, Power Optimization will identify a host or hosts which can be powered down, evacuate all VMs to other hosts in the same cluster, and then gracefully shut down the host or hosts, pausing their cluster service. At a specified time, or in response to an increase in VM load, PO will power on nodes again as required, resume the cluster service and rebalance all running VMs between their current hosts and the newly rejoined host.
Power Optimization benefits
Power Optimization is a key feature that helps IT organizations realize the cost savings benefits of a private cloud. The elastic nature of a private cloud that scales up and scales down based on demand enables an IT organization to deliver just in time (JIT) computing power and only pay for the computing power that is needed. Companies for decades now have driven down costs in supply chain management by only ordering, transporting, and storing just what is needed at a given point in time. You can read more about “just in time” here.
Power Optimization effectively delivers “just in time” compute power when you need it to your datacenter. Having 10 virtual machines running simultaneously consuming power and cooling all night long to do the work that one virtual machine can do just doesn’t make sense. If you think about it, assuming an 8 hour workday, a given line of business application server really only needs to be on for 1/3 of the day. The other 2/3 of the day it is doing nothing but consuming power and cooling (aka *money*).
By some estimations, power consumption is directly attributable to 31% of the costs of operating a data center and is trending up. This obviously won’t work for every datacenter and situation and there are obviously plenty of VMs that simply cannot be turned off, but let’s say that you were to turn off the VMs for 2/3 of the day in your datacenter. You could save 20% of the cost of your datacenter operations with this one feature! That’s the power of power optimization.
Power Optimization basics
Getting Power Optimization to work requires the following steps to be taken.
A cluster with 5 or more hosts (4 if the cluster was created by VMM)
Power optimization will never violate cluster quorum. In addition, power optimization will always keep a minimum of one additional host in reserve to prevent the cluster from losing quorum in the case of unexpected node failure. A cluster of size 5 needs 3 hosts to maintain quorum. This allows PO to power down one host, and still leave the cluster with one spare node before it gets to its minimum quorum of 3.
If your cluster was created in VMM, we can use the witness disk that is automatically added to count as one additional node for these calculations.
The more nodes you have, the greater percentage of them PO can switch off. A 16 node cluster with a witness disk can have up to 7 nodes powered down by PO.
Hosts with BMC (Baseboard Management Controller) power management
BMCs provide us the ability to communicate with hosts even when they are not responding, and send them management instructions as if we were at the physical server rack. We can cut power, restore power, press the reset button etc. Most importantly, this allows us to power down hosts in your environment and have a method to power them back up.
Each BMC has its own IP address independent of the host’s network or operating system. If you go to the host properties in VMM’s admin console, you’ll see the ability to configure the BMC settings by providing the BMC address, port, authentication details and protocol. VMM 2012 supports the two leading industry protocols, IPMI/DCMI and SMASH. When you configure the BMC values on a host, VMM will validate a connection to the BMC and update the host information accordingly. You will be able to see in your task trail if the settings were accepted or failed validation.
Power Optimization needs to be enabled in the cluster’s parent Host Group
The Power Optimization settings are available in the host group properties under the Dynamic Optimization tab. Once Dynamic Optimization is enabled for a host group you will be able to access and enable the Power Optimization option, the hours of operation and the thresholds which govern its behavior.
The cluster needs to be experiencing low load during the PO window
Once you’ve configured and enabled Power Optimization, if your cluster experiences a time of low load and you have set up PO to be allowed during the current hour and day of the week, VMM will start to automatically power down hosts and consolidate the VMs onto the remaining hosts in your cluster.
Power Optimization’s logic
Power Optimization has fairly straightforward logic compared to Dynamic Optimization. PO simply scans each host and asks the question: “If this host were powered down, could all of its hosted VMs be placed onto the other hosts without negatively impacting their load.”
Power Optimization uses a configurable conservative load level to ensure this objective. A host will only be powered off if doing so causes no other host’s load to rise above the “PO levels”, configured on the Power Optimization configuration screen. Additionally, when any host crosses the next level (the “Warning Level” or the “DO level”), PO will power one of the power managed hosts back on to redistribute the load.
Investigating Power Optimization issues
If you’ve configured Power Optimization, but you’re not seeing any hosts get powered down, the most common causes are listed here.
- You don’t have enough healthy nodes, you need at least quorum plus 2.
- The host that you are expecting to evacuate does not have BMC successfully configured. You can test this through the UI, if you right-click the host and don’t see “Power Down” as an option, it’s not working.
- The host that you are expecting to evacuate has non-HA VMs, stopped VMs or VMs with the “Exclude from Dynamic Optimization” property selected. None of these VMs can be live migrated, and we won’t power down a host we can’t fully evacuate.
- The cluster’s local timezone is not in the configured PO window.
- The VMs you are expecting to evacuate are experiencing warnings or errors on their target host. Like with DO, use the VM migration option in the admin console to check this.
- Powering down a node would cause the cluster to become overcommitted, as per your configured cluster reserve value. Set the cluster reserve to 0 to temporarily disable this.
- The node was already powered down by VMM, and has been brought online by the user during this power optimization window.
When will hosts power back on?
Each time a DO/PO run executes (by default every 10 minutes), hosts will be powered on if one of the following two conditions are met:
- The power optimization time window has expired or is expiring before the next DO/PO run.
- A VM in the cluster is experiencing a warning condition that can only be resolved by migrating it to a powered off node.
Experimenting with Power Optimization
If you want a bit more control as you are testing, you can enable hypothetical power optimizations from Powershell. Enable DO and put it on a very long period (999 minutes). Enable PO and make all times enabled. Then you can run the following commands in Powershell to see what PO would have done to your environment had it been enabled and ran at this moment.
> $clus = Get-SCVMHostCluster -Name “MyClusterName”
> $plan = Start-SCDynamicOptimization -VMHostCluster $clus -WhatIf
This will do a hypothetical calculation of DO and PO’s plan, and show you the list of hosts that would be powered off as part of the returned plan. This allows you to move VMs around, tweak settings and see what effect it would have had on a fully PO-enabled environment. Just remember to disable DO and PO when you’re done!
As with Dynamic Optimization, your feedback is invaluable to us. Please let us know what your experiences are, how much power PO has allowed you to save, and any improvements we can make in future VMM releases.