Snapshot virtual-templating
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.
Claims
exact text as granted — not AI-modified1 - 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.
10 . The method as recited in claim 9 wherein mapping each nonshareable resource is dependent on a type of the nonshareable resource.
11 . The method as recited in claim 10 wherein the mapping comprises copying the nonshareable resource on write to the corresponding system resource.
12 . The method as recited in claim 11 wherein the type comprises memory or storage data.
13 . The method as recited in claim 10 wherein the mapping comprises virtualizing the nonshareable resource on allocation of the nonshareable resource.
14 . The method as recited in claim 13 wherein the type comprises a systemwide unique resource that is not externally exported.
15 . The method as recited in claim 10 wherein the mapping comprises customizing the nonshareable resource for the second instance.
16 . The method as recited in claim 15 wherein the type comprises a process-unique resource.
17 . The method as recited in claim 10 wherein the mapping comprises multiplexing the nonshareable resource.
18 . The method as recited in claim 17 wherein the type comprises a systemwide unique resource that is externally exported.
19 . The method as recited in claim 10 wherein the mapping comprises allocating the corresponding system resource in place of the nonshareable resource.
20 . The method as recited in claim 19 wherein the type comprises a network-wide unique resource.
21 . The method as recited in claim 10 wherein the classifying is responsive to one or more user-defined rules, and wherein the mapping is responsive to a first rule of the one or more rules that the nonshareable resource matches.
22 . The method as recited in claim 9 further comprising:
creating a third instance of the application; and restoring the snapshot image to the third instance, wherein the restoring comprises: using the template to identify the shareable and nonshareable resources; providing the shareable resources to the third instance from the snapshot image; and mapping each nonshareable resource to a corresponding system resource, wherein the second instance and the third instance do not interfere with each other.
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.
24 . The computer readable medium as recited in claim 23 wherein mapping each nonshareable resource is dependent on a type of the nonshareable resource.
25 . The computer readable medium as recited in claim 24 wherein the mapping comprises copying the nonshareable resource on write to the corresponding system resource.
26 . The computer readable medium as recited in claim 25 wherein the type comprises memory or storage data.
27 . The computer readable medium as recited in claim 24 wherein the mapping comprises virtualizing the nonshareable resource on allocation of the nonshareable resource.
28 . The computer readable medium as recited in claim 27 wherein the type comprises a systemwide unique resource that is not externally exported.
29 . The computer readable medium as recited in claim 24 wherein the mapping comprises customizing the nonshareable resource for the second instance.
30 . The computer readable medium as recited in claim 29 wherein the type comprises a process-unique resource.
31 . The computer readable medium as recited in claim 24 wherein the mapping comprises multiplexing the nonshareable resource.
32 . The computer readable medium as recited in claim 31 wherein the type comprises a systemwide unique resource that is externally exported.
33 . The computer readable medium as recited in claim 24 wherein the mapping comprises allocating the corresponding system resource in place of the nonshareable resource.
34 . The computer readable medium as recited in claim 33 wherein the type comprises a network-wide unique resource.
35 . The computer readable medium as recited in claim 24 wherein the classifying is responsive to one or more user-defined rules, and wherein the mapping is responsive to a first rule of the one or more rules that the nonshareable resource matches.
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.Join the waitlist — get patent alerts
Track US2005198647A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.