US2005198647A1PendingUtilityA1

Snapshot virtual-templating

Priority: Oct 5, 1999Filed: Apr 1, 2005Published: Sep 8, 2005
Est. expiryOct 5, 2019(expired)· nominal 20-yr term from priority
G06F 9/4856G06F 2209/482G06F 9/44505
47
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
1 - 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.