Multi-hypervisor virtual machines
First Claim
1. A multi-hypervisor virtual machine system, comprising:
- a unitary host machine including one or more processors;
at least one unitary virtual machine from a plurality of unitary virtual machines which concurrently relies on each of at least two concurrently available hypervisors to interface with the unitary host machine; and
the at least two concurrently available hypervisors,the at least one unitary virtual machine being configured to concurrently communicate with the at least two concurrently available hypervisors to execute on the unitary host machine,wherein a first concurrently available hypervisor from the at least two concurrently available hypervisors controls a first virtual central processing unit of the at least one unitary virtual machine, and a second concurrently available hypervisor from the at least two concurrently available hypervisors controls a second virtual central processing unit of the at least one unitary virtual machine, andwherein the first concurrently available hypervisor is selected for relaying input/output requests generated from the at least one unitary virtual machine running on the second virtual central processing unit to the first virtual central processing unit, such that when outgoing packets from the at least one unitary virtual machine switch back and forth between the first concurrently available hypervisor and the second concurrently available hypervisor, the outgoing packets from the at least one unitary virtual machine are restricted to exit via only the first concurrently available hypervisor.
4 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.
346 Citations
20 Claims
-
1. A multi-hypervisor virtual machine system, comprising:
-
a unitary host machine including one or more processors; at least one unitary virtual machine from a plurality of unitary virtual machines which concurrently relies on each of at least two concurrently available hypervisors to interface with the unitary host machine; and the at least two concurrently available hypervisors, the at least one unitary virtual machine being configured to concurrently communicate with the at least two concurrently available hypervisors to execute on the unitary host machine, wherein a first concurrently available hypervisor from the at least two concurrently available hypervisors controls a first virtual central processing unit of the at least one unitary virtual machine, and a second concurrently available hypervisor from the at least two concurrently available hypervisors controls a second virtual central processing unit of the at least one unitary virtual machine, and wherein the first concurrently available hypervisor is selected for relaying input/output requests generated from the at least one unitary virtual machine running on the second virtual central processing unit to the first virtual central processing unit, such that when outgoing packets from the at least one unitary virtual machine switch back and forth between the first concurrently available hypervisor and the second concurrently available hypervisor, the outgoing packets from the at least one unitary virtual machine are restricted to exit via only the first concurrently available hypervisor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for providing multiple hypervisors for a virtual machine system, comprising:
-
providing a unitary host machine including one or more processors; providing at least two hypervisors which are concurrently available and independently execute on the unitary host machine; and executing a unitary virtual machine which concurrently relies on the at least two concurrently available hypervisors to interface with the unitary host machine, the unitary virtual machine having a memory map which has portions accessible by each of the at least two concurrently available hypervisors, wherein a first hypervisor of the at least two hypervisors is selected for relaying input/output requests generated from each of the at least two hypervisors on the unitary virtual machine, such that when outgoing packets from the unitary virtual machine switch back and forth between the at least two hypervisors, the outgoing packets from the unitary virtual machine are restricted to exit via only the first hypervisor. - View Dependent Claims (17, 18)
-
-
19. A method for providing multiple hypervisors for a virtual machine system, comprising:
-
providing a single virtual machine supporting execution of a guest operating system and having a memory map, the guest operating system supporting execution of applications, on hardware resources of a unitary host machine including one or more processors; providing at least two concurrently available and independently executing hypervisors which each concurrently interface the single virtual machine to the unitary host machine, the at least two concurrently available and independently executing hypervisors each having access to at least a respective portion of the memory map; performing a first action by the single virtual machine which employs resources provided by a first hypervisor of the at least two concurrently available and independently executing hypervisors, and controls at least one virtual central processing unit of the single virtual machine; performing a second action by the single virtual machine which employs resources provided by a second hypervisor of the at least two concurrently available and independently executing hypervisors; servicing input/output requests of the single virtual machine by the first hypervisor, on behalf of both the first hypervisor and the second hypervisor, such that when outgoing packets from the single virtual machine switch back and forth between the first hypervisor and the second hypervisor, the outgoing packets from the at least one unitary virtual machine are restricted to exit via only the first hypervisor; and relaying device interrupts from the first hypervisor to the second hypervisor, wherein the first and second hypervisors have respectively different sets of execution privileges and offer different services to the single virtual machine. - View Dependent Claims (20)
-
Specification