Snapshot virtual-templating
3 Assignments
0 Petitions
Accused Products
Abstract
A system, methods, and computer program products are disclosed for creating virtual application templates for the purpose of propagating a single application snapshot into multiple, distinct images. Snapshot virtual templates allow multiple application instances to use the same fixed resource identifier by making the resource identifier virtual, privatizing it, and dynamically mapping it to a unique system resource identifier. When a snapshot is cloned from a virtual template, the common or shared data is used exactly as is, whereas the non-sharable data is either copied-on-write, multiplexed, virtualized, or customized-on-duplication. The present invention notes access to modified resources, fixed system IDs/keys and unique process-related identifies and automatically inserts a level of abstraction between these resources and the application. The resources contained in a snapshot virtual template can be dynamically redirected at restore time. Access to memory and storage is managed in a copy-on-write fashion. System resource handles are managed in a virtualize-on-allocate fashion or by a multiplex-on-access mechanism. Process-unique resources are managed in a redirect-on-duplicate fashion. Rules may be defined through an application configurator that allows some degree of control over the creation of non-sharable data. The snapshot virtual template is constructed by dividing the snapshot image into sharable and non-sharable data. Knowledge of which system resources can be shared is encoded in the application snapshot/restore framework.
-
Citations
36 Claims
-
1-8. -8. (canceled)
-
9. A method comprising:
-
executing a first instance of an application;
during execution of the first instance, recording access by the application to one or more system resources and classifying each system resource as either a shareable resource or a nonshareable resource;
creating a template describing which of the system resources are shareable resources and which of the system resources are nonshareable resources;
snapshotting a state of the first instance to a snapshot image;
creating a second instance of the application; and
restoring the snapshot image to the second instance, wherein the restoring comprises;
using the template to identify the shareable and nonshareable resources;
providing the shareable resources to the second instance from the snapshot image; and
mapping each nonshareable resource to a corresponding system resource. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer readable medium storing a plurality of instructions including instructions which, when executed:
-
during execution of a first instance of an application, record access by the application to one or more system resources and classify each system resource as either a shareable resource or a nonshareable resource;
create a template describing which of the system resources are shareable resources and which of the system resources are nonshareable resources;
snapshot a state of the first instance to a snapshot image; and
restore the snapshot image to a second instance of the application that is distinct from the first instance, wherein the restore comprises;
using the template to identify the shareable and nonshareable resources;
providing the shareable resources to the second instance from the snapshot image; and
mapping each nonshareable resource to a corresponding system resource. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer system comprising:
-
a first module configured, during execution of a first instance of an application, to record access by the application to one or more system resources;
to classify each system resource as either a shareable resource or a nonshareable resource; and
to create a template describing which of the system resources are shareable resources and which of the system resources are nonshareable resources;
a snapshot driver configured to snapshot a state of the first instance to a snapshot image; and
a second module, wherein the first module is configured to restore the snapshot image to a second instance of the application that is distinct from the first instance, wherein the restore comprises the first module using the template to identify the shareable and nonshareable resources;
the first module providing the shareable resources to the second instance from the snapshot image; and
the second module mapping each nonshareable resource to a corresponding system resource.
-
Specification