Energy Management for Hypervisor-Based Virtual Machines

  • Author:

    Jan Stoess, Christian Lang, and Frank Bellosa

  • Source:

    Proceedings of the 2007 USENIX Technical Conference, Santa Clara, CA, June 17-22, 2007

  • Date: 17.-22.06.2007
  • Abstract:

    Current approaches to power management are based on operating systems with full knowledge of and full control over the underlying hardware; the distributed nature of multi-layered virtual machine environments renders such approaches insufficient. In this paper, we present a novel framework for energy management in modular, multi-layered operating system structures. The framework provides a unified model to partition and distribute energy, and mechanisms for energy-aware resource accounting and allocation. As a key property, the framework explicitly takes the recursive energy consumption into account, which is spent, e.g., in the virtualization layer or subsequent driver components.

    Our prototypical implementation targets hypervisor- based virtual machine systems and comprises two components: a host-level subsystem, which controls machine-wide energy constraints and enforces them among all guest OSes and service components, and, complementary, an energy-aware guest operating system, capable of fine-grained applicationspecific energy management. Guest level energy management thereby relies on effective virtualization of physical energy effects provided by the virtual machine monitor. Experiments with CPU and disk devices and an external data acquisition system demonstrate that our framework accurately controls and stipulates the power consumption of individual hardware devices, both for energy-aware and energyunaware guest operating systems.

    BibTex:

    @InProceedings{stoess07emhypervisorbasedvm,
      author = {Jan Stoess and Christian Lang and Frank Bellosa},
      type = {publication},
      title = {Energy Management for Hypervisor-Based Virtual Machines},
      booktitle = {Proceedings of the 2007 USENIX Technical Conference},
      address = {Santa Clara, CA},
      month = jun # "~17--22",
      year = 2007,
      affiliation = {University of Karlsruhe, Germany}
    }