System and method for providing continuous data protection
First Claim
Patent Images
1. A method for providing continuous data protection in a file system, comprising:
- generating one or more persistent consistency point images (PCPIs) of the file system, wherein each PCPI shares one or more file system blocks with at least one other generated PCPI;
executing a consistency point during which data changes contained in memory are flushed to persistent storage and one or more data blocks on the persistent storage are freed;
performing write allocation of the freed blocks to a delete log to prevent the freed blocks from being reclaimed for reuse by the file system;
allowing any of the freed blocks that are subsequently freed from the delete log to be reclaimed by the file system for reuse during future write allocation;
updating a consistency point log to list blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and
appending a new entry to the consistency point log and updating the header of the consistency point log.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method provides continuous data protection using checkpoints in a write anywhere file system. During a consistency point of a write anywhere file system, freed blocks are identified and are appended to a delete log for retention. A consistency point log is updated with a new entry associated with the consistency point. If the file system needs to retrieve its state at a particular point in time, the stored blocks of the delete log may be recovered.
-
Citations
39 Claims
-
1. A method for providing continuous data protection in a file system, comprising:
-
generating one or more persistent consistency point images (PCPIs) of the file system, wherein each PCPI shares one or more file system blocks with at least one other generated PCPI; executing a consistency point during which data changes contained in memory are flushed to persistent storage and one or more data blocks on the persistent storage are freed; performing write allocation of the freed blocks to a delete log to prevent the freed blocks from being reclaimed for reuse by the file system; allowing any of the freed blocks that are subsequently freed from the delete log to be reclaimed by the file system for reuse during future write allocation; updating a consistency point log to list blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and appending a new entry to the consistency point log and updating the header of the consistency point log. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer data storage system configured to provide continuous data protection in a file system, comprising:
-
means for generating one or more persistent consistency point images (PCPIs) of the file system, wherein each PCPI shares one or more file system blocks with at least one other generated PCPI; means for executing a consistency point during which data changes contained in memory are flushed to persistent storage and one or more data blocks on the persistent storage are freed; means for performing write allocation of the freed blocks to a delete log to prevent the freed blocks from being reclaimed for reuse by the file system; means for allowing any of the freed blocks that are subsequently freed from the delete log to be reclaimed by the file system for reuse during future write allocation; means for updating a consistency point log to list blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and means for appending a new entry to the consistency point log and means for updating the header of the consistency point log. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer readable storage medium containing executable program instructions executed by a processor, comprising:
-
program instructions that generate one or more persistent consistency point images (PCPIs) of a file system, wherein each PCPI shares one or more file system blocks with at least one other generated PCPI; program instructions that execute a consistency point during which data changes contained in memory are flushed to persistent storage and one or more data blocks on the persistent storage are freed; program instructions that perform write allocation of the freed blocks to a delete log to prevent the freed blocks from being reclaimed for reuse by the file system; program instructions that allow any of the freed blocks that are subsequently freed from the delete log to be reclaimed by the file system for reuse during future write allocation; program instructions that update a consistency point log to list blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and program instructions that append a new entry to the consistency point log and program instructions that update the header of the consistency point log.
-
-
21. A computer data storage system configured to provide continuous data protection in a file system, comprising:
-
a consistency point log stored within the file system configured to list a set of blocks which have been freed during execution of a consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log and further configured to append a new entry to the consistency point log and update the header of the consistency point log; a delete log comprising the set of blocks freed within the file system; and a file system module implementing the file system and configured to identify the set of blocks freed during the consistency point. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method for providing continuous data protection in a storage system, comprising:
-
updating a consistency point log to list blocks which have been freed during execution of a consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; appending a new entry to the consistency point log and updating the header of the consistency point log; tracking the blocks freed within the storage system by performing write allocation of the freed blocks to a delete log to prevent the freed blocks from being reclaimed for reuse by the storage system; and releasing the blocks for reuse by the storage system in accordance with a user retention policy by subsequently freeing the released blocks from the delete log. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A method for providing continuous data protection in a storage system, comprising:
-
logging received data operations in a persistent memory; replacing data in an operation log with pointers to data blocks written in a checkpoint; storing, during the course of write allocation, the received write operations in a data operations log; updating the data operations log to list blocks which have been freed during execution of a consistency point, wherein the data operations log comprises a header and at least one entry for each consistency point logged in the data operations log; and appending a new entry to the data operations log and updating the header of the data operations log. - View Dependent Claims (32, 33, 34)
-
-
35. A method for providing continuous data protection in a storage system, comprising:
-
retaining data written to the storage system; permitting access, by a user, to earlier data written to the storage system; performing write allocation of a freed block to a delete log to prevent the freed block from being reclaimed for reuse by the storage system; updating a consistency point log to list blocks which have been freed during execution of a consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; appending a new entry to the consistency point log and updating the header of the consistency point log; and expiring earlier data based on a pre-determined retention policy.
-
-
36. A method for providing continuous data protection in a storage system, comprising:
-
generating one or more persistent consistency point images (PCPIs) of the storage system, wherein each PCPI shares one or more storage system blocks with at least one other generated PCPI; maintaining, in memory, modifications made to storage system blocks; executing a consistency point, whereby the modifications are flushed to persistent storage; freeing, in response to the executed consistency point, one or more data blocks on the persistent storage; adding, to a delete log, the one or more freed data blocks by inserting pointers of the freed blocks into an inode buffer tree of the delete log; updating a consistency point log to list the freed blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and appending a new entry to the consistency point log and updating the header of the consistency point log.
-
-
37. A method for providing continuous data protection in a storage system, comprising:
-
generating one or more persistent consistency point images (PCPIs) of the storage system, wherein each PCPI shares one or more storage system blocks with at least one other generated PCPI; maintaining, in a first memory, modified storage system blocks; executing a consistency point, whereby the modifications are flushed to persistent storage; freeing, in response to the executed consistency point, one or more data blocks on the persistent storage; retaining, in one or more blocks of a delete log, the one or more freed data blocks, wherein at least one block of the delete log corresponds to the one or more data blocks previously freed during the consistency point; updating a consistency point log to list blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and appending a new entry to the consistency point log and updating the header of the consistency point log.
-
-
38. A computer readable storage medium containing executable program instructions executed by a processor comprising:
-
program instructions that generate one or more persistent consistency point images (PCPIs) of a storage system, wherein each PCPI shares one or more storage system blocks with at least one other generated PCPI; program instructions that maintain in a first memory, modifications made to storage system blocks; program instructions that execute a consistency point, whereby the modifications in the first memory are flushed to a second memory; program instructions that free in response to the executed consistency point, one or more data blocks on the persistent storage; program instructions that add to a delete log, the one or more freed data blocks by inserting pointers of the freed blocks into an inode buffer tree of the delete log; program instructions that update a consistency point log to list the one or more freed data blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and program instructions that append a new entry to the consistency point log and program instructions that update the header of the consistency point log.
-
-
39. A method for providing continuous data protection in a file system, comprising:
-
generating one or more persistent consistency point images (PCPIs) of the file system, wherein each PCPI shares one or more file system blocks with at least one other generated PCPI; maintaining, in non-volatile random access memory (NVRAM), modifications made to file system blocks; executing a consistency point, whereby the modifications in the NVRAM are flushed to persistent storage other than NVRAM; freeing, in response to the executed consistency point, one or more data blocks on the persistent storage; adding, to a delete log, the one or more freed data blocks by inserting pointers of the one or more freed blocks into an inode buffer tree of the delete log; updating a consistency point log to list the one or more freed blocks which have been freed during execution of the consistency point, wherein the consistency point log comprises a header and at least one entry for each consistency point logged in the consistency point log; and appending a new entry to the consistency point log and updating the header of the consistency point log.
-
Specification