US2016117226A1PendingUtilityA1

Data recovery technique for recovering data from an object store

Assignee: NETAPP INCPriority: Oct 22, 2014Filed: Oct 22, 2014Published: Apr 28, 2016
Est. expiryOct 22, 2034(~8.2 yrs left)· nominal 20-yr term from priority
G06F 11/1464G06F 2201/835G06F 11/1451G06F 11/006G06F 11/1448
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system, method, and computer program product for a block-based backing up a storage device to an object storage service is provided. This includes the generation of a data object that encapsulates a data of a data extent. The data extent covers a block address range of the storage device. The data object is named with a base name that represents a logical block address (LBA) of the data extent. The base name is appended with an identifier that deterministically identifies a recovery point that the data object is associated with. The base name combined with the identifier represents a data object name for the data object. The named data object is then transmitted to the object storage service for backup of the data extent. At an initial backup, the full storage device is copied. In incremental backups afterwards, only those data extents that changed are backed up.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 identifying a data extent of an address space of a storage device;   generating a data object encapsulating data of the data extent of the storage device;   naming the data object with a base name representing a logical block address (LBA) of the data extent;   appending the base name with an identifier that deterministically identifies a recovery point that the data object is associated with, the base name and the identifier making up a data object name for the data object; and   providing the data object and the corresponding data object name to a cloud storage for backup of the data extent.   
     
     
         2 . The method of  claim 1 , further comprising:
 designating a portion of the storage device as the data extent.   
     
     
         3 . The method of  claim 1  further comprising:
 dividing the address space of the storage device into a plurality of data extents; and 
 repeating the generating, naming, appending, and providing for each of the plurality of data extents to back up the storage device. 
 
     
     
         4 . The method of  claim 1 , further comprising:
 detecting, during a time interval, a command sent to the storage device that indicates a change to the data extent during the time interval;   generating, at the end of the time interval, an updated data object that encapsulates data corresponding to the changed data extent;   naming the updated data object with a base name representing an LBA of the changed data extent;   appending the base name with a second identifier that deterministically identifies an updated recovery point that the data object is associated with; and   providing the updated data object to the cloud storage.   
     
     
         5 . The method of  claim 4 , further comprising:
 generating a metadata object that defines a supported set of recovery points for the data object; and   generating an updated metadata object that defines a supported set of updated recovery points for the updated data object.   
     
     
         6 . The method of  claim 5 , further comprising:
 determining whether any metadata objects prior to the updated metadata object are older than a supported number of recover points;   identifying any data objects associated with the older metadata objects for deletion in response to the determining;   determining which of the identified data objects do not correspond to at least one of the set of updated recovery points; and   instructing the cloud storage to delete an identified data object that does not correspond to at least one of the updated recovery points.   
     
     
         7 . The method of  claim 1 , wherein the generating further comprises:
 compressing the data corresponding to the data extent using a compression algorithm;   encrypting the compressed data using an encryption algorithm; and   inserting, into the data object, metadata describing the compression algorithm and the encryption algorithm used.   
     
     
         8 . The method of  claim 1 , further comprising:
 generating a configuration metadata object that describes the storage device, including at least one of system name, storage device capacity, and block size of the storage device; and   providing the configuration metadata object to the cloud storage with the data object.   
     
     
         9 . A computing device comprising:
 a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of backing up a storage device;   a processor coupled to the memory, the processor configured to execute the machine executable code to:
 generate a data object that encapsulates a data extent comprising an address range of the storage device; 
 name the data object with a base name representing a logical block address (LBA) of the data extent; 
 append the base name with an identifier that deterministically identifies a recovery point that the data object is associated with, the base name and the identifier making up a data object name for the data object; and 
 transmit the data object and the data object name to a cloud storage for backup of the data extent. 
   
     
     
         10 . The computing device of  claim 9 , wherein the processor is further configured to execute the machine executable code to:
 designate a section of the storage device as the data extent.   
     
     
         11 . The computing device of  claim 9 , wherein the processor is further configured to execute the machine executable code to:
 detect, during a time interval, a command sent to the storage device that indicates a change to the data extent during the time interval;   generate, at the end of the time interval, an updated data object that encapsulates the changed data extent;   name the updated data object with a base name representing a logical block address (LBA) of the changed data extent;   append the base name with an updated identifier that deterministically identifies an updated recovery point that the updated data object is associated with; and   transmit the updated data object to the cloud storage.   
     
     
         12 . The computing device of  claim 11 , wherein the processor is further configured to execute the machine executable code to:
 generate a metadata object that defines a supported set of recovery points for the data object; and   generate an updated metadata object that defines a supported set of updated recovery points for the updated data object.   
     
     
         13 . The computing device of  claim 12 , wherein the processor is further configured to execute the machine executable code to:
 determine whether any metadata objects prior to the updated metadata object are older than a supported number of recovery points;   identify any data objects associated with the older metadata objects for deletion in response to the determination;   determine which of the identified data objects are associated with the set of updated recovery points; and   instruct the cloud storage to delete an object of the identified data objects that is not associated with the set of updated recover points.   
     
     
         14 . The computing device of  claim 9 , wherein the processor is further configured to execute the machine executable code to:
 compress the data extent using a compression algorithm;   encrypt the compressed data extent using an encryption algorithm; and   insert, into the data object, metadata describing the compression and encryption algorithms used.   
     
     
         15 . The computing device of  claim 9 , wherein:
 the storage device comprises a plurality of sections; and   the processor is further configured to execute the machine executable code to:
 divide the storage device into a plurality of data extents; and 
 repeat the generation, naming, appending, and transmission for each of the plurality of data extents to back up the storage device. 
   
     
     
         16 . A non-transitory machine readable medium having stored thereon instructions for performing a method of backing up a storage device, comprising machine executable code which when executed by at least one machine, causes the machine to:
 divide the storage device into a plurality of data extents;   generate a plurality of initial data objects that encapsulate and correspond to the plurality of data extents;   name each of the plurality of initial data objects with a base name representing a corresponding logical block address (LBA) of the respective data extent;   append the base names with corresponding identifiers that deterministically identify an initial recovery point that the plurality of initial data objects are associated with, the base names combined with the identifiers making up data object names corresponding to the plurality of initial data objects; and   transmit the plurality of initial data objects to a cloud storage for backup of the storage device.   
     
     
         17 . The non-transitory machine readable medium of  claim 16 , comprising further machine executable code that causes the machine to:
 detect, during a time interval, a command sent to the storage device that indicates a change to any one of the plurality of data extents during the first time interval;   generate, at the end of the time interval, an updated data object that encapsulates the changed data extent;   name the updated data object with a base name representing a logical block address (LBA) of the changed data extent;   append the base name with an updated identifier that deterministically identifies an updated recovery point that the updated data object is associated with; and   transmit the updated data object to the cloud storage.   
     
     
         18 . The non-transitory machine readable medium of  claim 16 , comprising further machine executable code that causes the machine to:
 compress each of the plurality of data extents using a compression algorithm;   encrypt each of the compressed data extents using an encryption algorithm; and   insert, into corresponding ones of the plurality of initial data objects, metadata describing the compression and encryption algorithms used.   
     
     
         19 . The non-transitory machine readable medium of  claim 16 , comprising further machine executable code that causes the machine to:
 generate a configuration metadata object that describes the storage device, including at least one of system name, storage device capacity, and block size of the storage device; and   transmit the configuration metadata object to the cloud storage with the plurality of initial data objects.   
     
     
         20 . The non-transitory machine readable medium of  claim 16 , comprising further machine executable code that causes the machine to:
 back up only address ranges that have been provisioned on a thin provisioned volume of the storage device.

Join the waitlist — get patent alerts

Track US2016117226A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.