Virtual machine base image upgrade based on virtual machine updates
First Claim
1. A computer-implemented method for de-duplication of updates in virtual machines being executed on a host computer system using a hypervisor, wherein a client virtual machine is derived from a base image, the method comprising:
- creating a temporary virtual machine based on the base image;
updating the temporary virtual machine with the updates to produce an updated temporary virtual machine;
identifying modified blocks in an image of the updated temporary virtual machine when compared to the base image, the modified blocks comprising changed block content and added block content;
identifying files associated with the modified blocks in the image of the updated temporary virtual machine;
determining block identifiers of matching files in an image of the client virtual machine that correspond to the identified files associated with the modified blocks in the image of the updated temporary virtual machine;
moving block content of blocks identified by the determined block identifiers from its initial location to a free location within the client virtual machine if the block content and the matching files are not identical in the image of the client virtual machine and the image of the updated temporary virtual machine, the free location within the client virtual machine being identified as unused blocks in the image of the client virtual machine for which corresponding locations in the image of the temporary virtual machine and the image of the base image are also unused;
de-duplicating content within the client virtual machine that is duplicative of content within the updated temporary virtual machine by replacing block content at an initial location of the matching files in the image of the client virtual machine with pointers to corresponding blocks in the image of the updated temporary virtual machine;
generating a complete bootable image of the updated temporary virtual machine by incorporating, into the image of the updated temporary virtual machine, blocks of the base image which have not been updated; and
replacing the base image by the complete bootable image of the updated temporary virtual machine, the replacing making the image of the updated temporary virtual machine a new base image.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for de-duplicating updates in virtual machines (VMs) is provided that may be executed on a host computer u a hypervisor. Client VMs are derived from a base image, and the method includes: creating a temporary virtual machine, updating the temporary virtual machine, identifying modified blocks of the updated temporary virtual machine, and identifying files associated with the modified blocks. Moreover, the method includes determining block identifiers of matching files of a VM corresponding to identified files of the updated temporary VM, moving block content of blocks relating to the determined block identifiers from its initial location to a free location within the client VM if the block content and the matching files are not identical in the client virtual machine and the temporary VM, and de-duplicating content within the client VM, generating a complete bootable image, and replacing the base image by the temporary VM.
17 Citations
13 Claims
-
1. A computer-implemented method for de-duplication of updates in virtual machines being executed on a host computer system using a hypervisor, wherein a client virtual machine is derived from a base image, the method comprising:
-
creating a temporary virtual machine based on the base image; updating the temporary virtual machine with the updates to produce an updated temporary virtual machine; identifying modified blocks in an image of the updated temporary virtual machine when compared to the base image, the modified blocks comprising changed block content and added block content; identifying files associated with the modified blocks in the image of the updated temporary virtual machine; determining block identifiers of matching files in an image of the client virtual machine that correspond to the identified files associated with the modified blocks in the image of the updated temporary virtual machine; moving block content of blocks identified by the determined block identifiers from its initial location to a free location within the client virtual machine if the block content and the matching files are not identical in the image of the client virtual machine and the image of the updated temporary virtual machine, the free location within the client virtual machine being identified as unused blocks in the image of the client virtual machine for which corresponding locations in the image of the temporary virtual machine and the image of the base image are also unused; de-duplicating content within the client virtual machine that is duplicative of content within the updated temporary virtual machine by replacing block content at an initial location of the matching files in the image of the client virtual machine with pointers to corresponding blocks in the image of the updated temporary virtual machine; generating a complete bootable image of the updated temporary virtual machine by incorporating, into the image of the updated temporary virtual machine, blocks of the base image which have not been updated; and replacing the base image by the complete bootable image of the updated temporary virtual machine, the replacing making the image of the updated temporary virtual machine a new base image. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A de-duplication system for updates in virtual machines being executed on a host computer system using a hypervisor, wherein a client virtual machine is derived from a base image stored on a host computer system, the de-duplication system comprising:
-
a memory; and a processor communicatively coupled to the memory, wherein the de-duplication system performs a method comprising; creating a temporary virtual machine based on the base image; updating the temporary virtual machine with the updates to produce an updated temporary virtual machine; identifying modified blocks in an image of the updated temporary virtual machine when compared to the base image, the modified blocks comprising changed block content and added block content; identifying files associated with the modified blocks in the image of the updated temporary virtual machine; determining block identifiers of matching files in an image of the client virtual machine that correspond to the identified files associated with the modified block in the image of the updated temporary virtual machine; moving block content of blocks identified by the determined block identifiers from its initial location to a free location within the client virtual machine if the block content and the matching files are not identical in the image of the client virtual machine and the image of the updated temporary virtual machine, the free location within the client virtual machine being identified as unused blocks in the image of the client virtual machine for which corresponding locations in the image of the temporary virtual machine and the image of the base image are also unused; de-duplicating content within the client virtual machine that is duplicative of content within the updated temporary virtual machine by replacing block content at an initial location of the matching files in the image of the client virtual machine with pointers to corresponding blocks in the image of the updated temporary virtual machine; generating a complete bootable image of the updated temporary virtual machine by incorporating, into the image of the updated temporary virtual machine, blocks of the base image which have not been updated; and replacing the base image by the complete bootable image of the updated temporary virtual machine, the replacing making the image of the updated temporary virtual machine a new base image. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product for de-duplication of updates in virtual machines being executed on a host computer system using a hypervisor, wherein a client virtual machine is derived from a base image, the computer program product comprising:
a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a computer system to cause the computer system to perform a method comprising; creating a temporary virtual machine based on the base image; updating the temporary virtual machine with the updates to produce an updated temporary virtual machine; identifying modified blocks in an image of the updated temporary virtual machine when compared to the base image, the modified blocks comprising changed block content and added block content; identifying files associated with the modified blocks in the image of the updated temporary virtual machine; determining block identifiers of matching files in an image of the client virtual machine that correspond to the identified files associated with the modified blocks in the image of the updated temporary virtual machine; moving block content of blocks identified by the determined block identifiers from its initial location to a free location within the client virtual machine if the block content and the matching files are not identical in the image of the client virtual machine and the image of the updated temporary virtual machine, the free location within the client virtual machine being identified as unused blocks in the image of the client virtual machine for which corresponding locations in the image of the temporary virtual machine and the image of the base image are also unused; de-duplicating content within the client virtual machine that is duplicative of content within the updated temporary virtual machine by replacing block content at an initial location of the matching files in the image of the client virtual machine with pointers to corresponding blocks in the image of the updated temporary virtual machine; generating a complete bootable image of the updated temporary virtual machine by incorporating, into the image of the updated temporary virtual machine, blocks of the base image which have not been updated; and replacing the base image by the complete bootable image of the updated temporary virtual machine, the replacing making the image of the updated temporary virtual machine a new base image.
Specification