Multi-hypervisor virtual machines
First Claim
1. A computer system, comprising:
- at least one hardware processor;
a privileged hypervisor, executing on the at least one hardware processor;
a plurality of nested hypervisors, configured to concurrently execute under the privileged hypervisor each having a respective set of privileges lower than a set of privileges of the privileged hypervisor; and
at least one virtual machine, configured to concurrently communicate with the plurality of nested hypervisors, and having a memory image which is shared between at least two of the plurality of nested hypervisors, wherein each of the plurality of nested hypervisors provides at least one service or resource to the at least one virtual machine which is different from another of the plurality of nested hypervisors.
2 Assignments
0 Petitions
Accused Products
Abstract
Standard nested virtualization allows a hypervisor to run other hypervisors as guests, i.e. a level-0 (L0) hypervisor can run multiple level-1 (L1) hypervisors, each of which can run multiple level-2 (L2) virtual machines (VMs), with each L2 VM is restricted to run on only one L1 hypervisor. Span provides a Multi-hypervisor VM in which a single VM can simultaneously run on multiple hypervisors, which permits a VM to benefit from different services provided by multiple hypervisors that co-exist on a single physical machine. Span allows (a) the memory footprint of the VM to be shared across two hypervisors, and (b) the responsibility for CPU and I/O scheduling to be distributed among the two hypervisors. Span VMs can achieve performance comparable to traditional (single-hypervisor) nested VMs for common benchmarks.
-
Citations
20 Claims
-
1. A computer system, comprising:
-
at least one hardware processor; a privileged hypervisor, executing on the at least one hardware processor; a plurality of nested hypervisors, configured to concurrently execute under the privileged hypervisor each having a respective set of privileges lower than a set of privileges of the privileged hypervisor; and at least one virtual machine, configured to concurrently communicate with the plurality of nested hypervisors, and having a memory image which is shared between at least two of the plurality of nested hypervisors, wherein each of the plurality of nested hypervisors provides at least one service or resource to the at least one virtual machine which is different from another of the plurality of nested hypervisors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of operating a computer system, comprising:
-
providing a privileged hypervisor, executing on at least one hardware processor; providing a plurality of nested hypervisors, executing under the privileged hypervisor, the plurality of nested hypervisors having a set of privileges lower than a set of privileges of the privileged hypervisor, at least two of the nested hypervisors being configured to-concurrently execute independently of each other; providing at least one virtual machine, having a memory image shared between at least two of the plurality of nested hypervisors; and concurrently communicating between the at least one virtual machine and the plurality of nested hypervisors, wherein each of the plurality of nested hypervisors provides at least one service or resource different from another of the plurality of nested hypervisors to the at least one virtual machine. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method for providing multiple hypervisors for a virtual machine, comprising:
-
providing a virtual machine executing on hardware resources of a unitary host machine under at least two concurrently available and independently executing nested hypervisors which interface the virtual machine to the unitary host machine through a privileged hypervisor, wherein the at least two concurrently available and independently executing nested hypervisors share a memory image of the virtual machine, and access to at least a respective hardware resource; and performing a series of actions by the virtual machine which employ the respective hardware resource selectively provided by respective ones of the at least two concurrently available and independently executing nested hypervisors without mutual interference.
-
Specification