Given the recent intense focus in the industry around data center power management and the furious pace of the adoption of virtualization, it is remarkable that the subject of power management in virtualized environments has received relatively little attention.
It is fair to say that power management technology has not caught with virtualization.
Here are a few thoughts on this particular subject, which I intend to elaborate in subsequent transmittals.
For historical reasons the power management technology available today had its inception in the physical world where watts consumed in a server can be traced to the watts that came through the power utility feeds. Unfortunately, the semantics of power in virtual machines have yet to be comprehensively defined to industry consensus.
For instance, assume that the operating system running in a virtual image decides to transition the system to the ACPI S3 state, sleep to memory. What we have now is the state of the virtual image preserved in the image's memory with the virtual CPU turned off.
Assuming that the system is not paravirtualized, the operating system can't tell if it's running in a physical or virtual instance. The effect of transitioning to S3 will be purely local to the virtual machine. If the intent of the system operator was to transition the machine to S3 to save power, it does not work this way. The virtual machine still draws resources from the host machine and requires hypervisor attention. Transitioning the host itself to S3 may not be practical as there might be other virtual machines still running, not ready to go to sleep.
Consolidation is another technology for reducing data center power consumption by driving up the server utilization rates. Consolidation for power management is a blunt tool, where applications that used to run in a physical server are now virtualized and squished into a single physical host. The applications are sometimes strange bedfellows. Profiling might have been done to make sure they could coexist, as a priori, static exercise with the virtual machine instances treated as black boxes. There is no attempt to look at the workload profiles inside each virtualized instance and in real time. Power savings come from an almost wishful side effect of repackaging applications formerly running in a dedicated server into virtualized instances.
A capability to map power to virtual machines, in both directions, from physical to virtual and virtual to physical would be useful from an operational perspective. The challenge is twofold, first from a monitoring perspective because there is no commonly agreed method yet to prorate host power consumption to the virtual instances running within, and second from a control perspective. It would be useful to schedule or assign power consumption to virtual machines, allowing end users tomake a tradeoff between power and performance. Fine grained power monitoring would allow prorating power costs to application instances, introducing useful pricing checks and balances encouraging energy consumption instead of the more common method today of hiding energy costs in the facility costs.