System and method of loading virtual machines
First Claim
Patent Images
1. A method comprising;
- booting a first virtual machine wherein at least a first portion of the processes and data resulting from booting an operating system of the first virtual machine are stored in a first host RAM by storing a first set of values at a first set of physical addresses of the first host RAM occupied by the first portion;
booting a second virtual machine wherein at least a second portion of the processes and data resulting from booting an operating system of the second virtual machine are stored in a second host RAM by storing a second set of values at a second set of physical addresses of the second host RAM occupied by the second portion, the second virtual machine being different from the first virtual machine;
booting a third virtual machine wherein at least a third portion of the processes and data resulting from booting an operating system of the third virtual machine are stored in a third host RAM by storing a third set of values at a third set of physical addresses of the third host RAM occupied by the third portion, the third virtual machine being different from the first and second virtual machines, wherein a subset of the first second and third set of values are different,generating a first set of differences comprising a set of values corresponding to the differences between the first set of values at the first set of physical addresses and the second set of values at the second set of physical addresses;
generating a second set of differences comprising a set of addresses and values corresponding to the differences between the second set of values at the second set of physical addresses and the third set of values at the third set of physical addresses;
receiving a request for access to a new virtual machine that is functionally equivalent to the third virtual machine;
copying the first set of values to a fourth set of physical addresses of a fourth host RAM; and
responsive to the request, performing the steps of;
1) identifying the first and second set of differences,2) modifying the set of values in the fourth host RAM in accordance with the first set of difference,4) modifying the set of values in the fourth host RAM in accordance with the second set of differences, and5)providing access to the new virtual machine by providing access to the values stored in the fourth host RAM.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method is provided of swapping a first virtual machine with a second virtual machine by modifying those portions of memory where the two machines differ. The differences may be determined by booting both the first and the second virtual machines and generating a difference file based on the differences in the memory occupied by the booted virtual machines.
16 Citations
14 Claims
-
1. A method comprising;
-
booting a first virtual machine wherein at least a first portion of the processes and data resulting from booting an operating system of the first virtual machine are stored in a first host RAM by storing a first set of values at a first set of physical addresses of the first host RAM occupied by the first portion; booting a second virtual machine wherein at least a second portion of the processes and data resulting from booting an operating system of the second virtual machine are stored in a second host RAM by storing a second set of values at a second set of physical addresses of the second host RAM occupied by the second portion, the second virtual machine being different from the first virtual machine; booting a third virtual machine wherein at least a third portion of the processes and data resulting from booting an operating system of the third virtual machine are stored in a third host RAM by storing a third set of values at a third set of physical addresses of the third host RAM occupied by the third portion, the third virtual machine being different from the first and second virtual machines, wherein a subset of the first second and third set of values are different, generating a first set of differences comprising a set of values corresponding to the differences between the first set of values at the first set of physical addresses and the second set of values at the second set of physical addresses; generating a second set of differences comprising a set of addresses and values corresponding to the differences between the second set of values at the second set of physical addresses and the third set of values at the third set of physical addresses; receiving a request for access to a new virtual machine that is functionally equivalent to the third virtual machine; copying the first set of values to a fourth set of physical addresses of a fourth host RAM; and responsive to the request, performing the steps of; 1) identifying the first and second set of differences, 2) modifying the set of values in the fourth host RAM in accordance with the first set of difference, 4) modifying the set of values in the fourth host RAM in accordance with the second set of differences, and 5)providing access to the new virtual machine by providing access to the values stored in the fourth host RAM. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
one or more processors; and memory storing data and instructions, the instructions executable by the processor, wherein the data comprises; a first image capturing a first set of values stored at a first set of physical addresses of a first host RAM that are occupied by at least a portion of the processes and data resulting from at least beginning the process of booting a first virtual machine having a first operating system; and wherein the instructions comprise, in response to a request for a new virtual machine having an associated operating system, the operations of; identifying a first difference file and modifying the first image in accordance with the first difference file; identifying a second difference file and modifying the modified first image in accordance with the second difference file, wherein the first difference the identifies the differences between the first image and a second image capturing a second set of values at a second set of physical addresses of a second host RAM of a second virtual machine having a second operating system that has at least begun the process of virtually booting, the second virtual machine being different from the first virtual machine, wherein the second difference file identifies the differences between the second image and a third image capturing a third set of values at a third set of physical addresses of a third host RAM of a third virtual machine having a third operating system that has at least begun the process of virtually booting, the third virtual machine being different from the first and second virtual machines, wherein a subset of the first, second, and third set of values are different; copying the first set of values to a fourth set of physical addresses of a fourth host RAM; modifying the set of values in the fourth host RAM in accordance with the first set of difference; modifying the set of values in the fourth host RAM in accordance with the second set of differences; and providing access to the new virtual machine by providing access to the values stored in the fourth host RAM. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
Specification