A method and system for managing images of virtual machines hosted by a server. The server maintains a base virtual machine image in a common data store for sharing by the virtual machines. When the server identifies an image modification for at least one of the virtual machines, the server determines whether the image modification includes data common to images of the other virtual machines. If so, the common data is copied to the base virtual machine image in the common data store, and a pointer to the copied data is added to an image of the virtual machine in an individual data store.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method for a server running a plurality of virtual machines, the method comprising: maintaining, by the server, a base virtual machine image in a common data store, the base virtual machine image being shared by the plurality of virtual machines; identifying, by the server, an image modification for at least one of the plurality of virtual machines; determining, by the server, that the image modification includes data common to images of the other virtual machines; in response to the determining, copying the common data to the base virtual machine image in the common data store; and adding, to an image of the at least one of the plurality of virtual machines in an individual data store, a pointer to the copied data from the common data store.
2. The method of claim 1 , wherein the image modification comprises at least one of: a software patch for a guest operating system of the virtual machine; a removal or addition of an application to a virtual machine; a software patch for an application of the virtual machine; an update of persistent data used by the guest operating system or an application of the virtual machine; and an update of user data accessible to an end user of the virtual machine.
3. The method of claim 1 , wherein: the virtual machine runs a virtual desktop for one or more end users; and the image of the virtual machine comprises an image of the virtual desktop.
4. The method of claim 1 , wherein determining, by the server, that the image modification includes data common to images of the other virtual machines comprises: calculating a hash value of each data block of the image modification; and comparing the calculated hash values with hash values of data blocks in the common data store.
5. The method of claim 1 , wherein the identifying, the determining, the copying and the adding are performed in real-time in response to a write request.
6. The method of claim 5 , wherein the write request is initiated by any one of a user of the virtual machine, a guest operating system of the virtual machine, and an application of the virtual machine.
7. The method of claim 1 , wherein identifying, by the server, an image modification for at least one of the plurality of virtual machines comprises: periodically scanning images of the plurality of virtual machines to find common data.
8. The method of claim 1 , further comprising: providing a user interface facilitating user selection of virtual machines for sharing the base virtual machine image.
9. The method of claim 8 , wherein the user interface presents a list of virtual machines that are likely to have similar virtual machine images.
10. The method of claim 1 , further comprising: creating an image of a new virtual machine using the base virtual machine image.
11. The method of claim 1 , further comprising: archiving images of the plurality of virtual machines using the base virtual machine image.
12. A system comprising: a common data store to store a base virtual machine image shared by a plurality of virtual machines; a plurality of individual data stores to store incremental images of respective virtual machines; and at least one server, coupled to the common data store and the plurality of individual data stores, the at least one server configured to: detect image modifications that are common to the plurality of virtual machines; in response to the detection, copy the common modifications to the base virtual machine image in the common data store; and add, to the incremental images in the individual data stores, pointers to the copied modifications from the common data store.
13. The system of claim 12 , wherein the image modification comprises at least one of: a software patch for a guest operating system of the virtual machine; a removal or addition of an application to a virtual machine; a software patch for an application of the virtual machine; an update of persistent data used by the guest operating system or an application of the virtual machine; and an update of user data accessible to an end user of the virtual machine.
14. The system of claim 12 , wherein the server determines that the image modification includes data common to images of the other virtual machines by: calculating a hash value of each data block of the image modification; and comparing the calculated hash values with hash values of data blocks in the common data store.
15. The system of claim 12 , wherein the identifying, the determining, the copying and the adding are performed in real-time in response to a write request.
16. The system of claim 12 , wherein the server identifies an image modification for at least one of the plurality of virtual machines by: periodically scanning images of the plurality of virtual machines to find common data.
17. The system of claim 12 , further comprising: a user interface to facilitate user selection of virtual machines for sharing the base virtual machine image, the user interface presenting a list of virtual machines that are likely to have similar virtual machine images.
18. The system of claim 12 , wherein the server is further to: create an image of a new virtual machine using the base virtual machine image.
19. The system of claim 12 , wherein the server is further to: archive images of the plurality of virtual machines using the base virtual machine image.
20. A non-transitory computer readable storage medium including instructions that, when executed by a processing system, cause the processing system to perform a method comprising: maintaining a base virtual machine image in a common data store, the base virtual machine image being shared by the plurality of virtual machines; identifying an image modification for at least one of the plurality of virtual machines; determining that the image modification includes data common to images of the other virtual machines; in response to the determining, copying the common data to the base virtual machine image in the common data store; and adding, to an image of the at least one of the plurality of virtual machine in an individual data store, a pointer to the copied data from the common data store.
21. The non-transitory computer readable storage medium of claim 20 , wherein the image modification comprises at least one of: a software patch for a guest operating system of the virtual machine; a removal or addition of an application to a virtual machine; a software patch for an application of the virtual machine; an update of persistent data used by the guest operating system or an application of the virtual machine; and an update of user data accessible to an end user of the virtual machine.
22. The non-transitory computer readable storage medium of claim 21 , wherein determining that the image modification includes data common to images of the other virtual machines comprises: calculating a hash value of each data block of the image modification; and comparing the calculated hash values with hash values of data blocks in the common data store.
23. The non-transitory computer readable storage medium of claim 20 , wherein identifying an image modification for at least one of the plurality of virtual machines comprises: periodically scanning images of the plurality of virtual machines to find common data.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
April 6, 2009
May 29, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.