Multi-Hypervisor Virtual Machines

Traditional system virtual machines (VMs) are controlled by only one hypervisor at a time. Consequently, a VM is limited to the set of hypervisor-level services provided by the sole controlling hypervisor. We propose the notion of a multi-hypervisor virtual machine, or Span VM, that is simultaneously controlled by multiple co-located hypervisors. A Span VM runs an unmodified guest operating system and benefits from different services offered by the underlying hypervisors. Using nested virtualization, we demonstrate how two or more hypervisors can cooperatively exert control over a Span VM's memory, VCPUs, and I/O devices. A rich set of hypervisor-level services have been recently proposed, such as guest monitoring, rootkit detection, high availability, and live guest patching. We envision Span VMs to enable a new hypervisor ecosystem in which such services are provided by specialized hypervisors that augment the base hypervisor. We have designed and implemented a prototype systems support for Span VMs using the KVM/QEMU platform. Our current prototype can support Span VMs that use multiple hypervisor services such as VM introspection, network monitoring, and guest mirroring, with performance comparable to traditional nested VMs.

Publications

  1. NSF PI Meeting Poster
  2. Kartik Gopalan, Yaohui Hu, Rohith K. Raghavendra, Hardik Bagdi, Dan Williams, Nilton Bila, Multi-Hypervisor Virtual Machines: Enabling an Ecosystem of Hypervisor-level Services, Accepted, USENIX ATC 2017.
  3. Dan Williams, Yaohui Hu, Umesh Deshpande, Nilton Bila, Kartik Gopalan, Hani Jamjoom, Enabling Efficient Hypervisor-as-a-Service Clouds with Ephemeral Virtualization, In International Conference on Virtual Execution Environments (VEE) 2016. [pdf] [bibtex]
  4. NSF Award