Virtual machine block substitution
First Claim
1. A computer-implemented method of updating a virtual machine, the method comprising:
- executing a hypervisor on a host computer, the hypervisor managing execution of the virtual machine on the host computer, wherein a guest operating system is currently executing on the virtual machine, the hypervisor providing the virtual machine with block-based access to a virtual machine image, the virtual machine image comprised of blocks;
receiving a substitution block at the host computer; and
while the virtual machine is executing, replacing, by the hypervisor, a target block in the virtual machine image with the substitution block, the target block comprising one of the blocks of the virtual machine image, the hypervisor managing the blocks of the virtual machine image and presenting the blocks of the virtual machine image, including the substitution block, to the virtual machine as a virtualized disk.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described to allow substation of blocks into a virtual machine image of an executing virtual machine. A patch may be applied to a first virtual machine image. One or more blocks modified by the patch are identified and copied to a host having a virtual machine executing from a virtual machine image that is based on the first virtual machine image (prior to the patch). While the virtual machine is executing, the substitution blocks are applied (supersede) corresponding original blocks in the virtual machine image. A guest operating system in the virtual machine may either begin using an executable file in a substitution block. In addition, the guest operating system may be forced to flush from memory and cache executable code replaced by the substitution block.
51 Citations
20 Claims
-
1. A computer-implemented method of updating a virtual machine, the method comprising:
-
executing a hypervisor on a host computer, the hypervisor managing execution of the virtual machine on the host computer, wherein a guest operating system is currently executing on the virtual machine, the hypervisor providing the virtual machine with block-based access to a virtual machine image, the virtual machine image comprised of blocks; receiving a substitution block at the host computer; and while the virtual machine is executing, replacing, by the hypervisor, a target block in the virtual machine image with the substitution block, the target block comprising one of the blocks of the virtual machine image, the hypervisor managing the blocks of the virtual machine image and presenting the blocks of the virtual machine image, including the substitution block, to the virtual machine as a virtualized disk. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more computer-readable storage devices storing information to enable a computer to perform a process, the process performed by a virtualization layer executing on the computer, the process comprising:
-
executing the virtualization layer on the computer, the virtualization layer managing execution of a virtual machine on the computer, wherein a guest operating system is executing on the virtual machine, the virtualization providing the virtual machine with block-based access to a first virtual machine image, the first virtual machine image comprised of first blocks that the virtualization layer presents as a virtualized disk; while the virtual machine is being executed with the first virtual machine image on the computer by the virtualization layer that manages virtual machines on the computer, receiving a second block obtained from a second virtual machine image; and while the virtual machine continues to be executed, replacing one of the first blocks with the second block. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method performed by one or more computers, the method comprising:
-
applying a patch to a first virtual machine image to generate a second virtual machine image; identifying blocks of the second virtual machine image that differ from the first virtual machine image; distributing the identified blocks to a plurality of hosts, each host having a hypervisor and one or more virtual machines managed thereby, each virtual machine having a virtual machine image comprised of blocks and presented as a virtual disk by the corresponding hypervisor; and applying the blocks to the virtual machines as they are running on the hosts, the applying performed by respective hypervisors replacing blocks of the virtual machine images managed by the hypervisors. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification