IP Library Granted Patent US 9,495,370
Granted Patent B1
US 9,495,370 · App. 12/173,203 · Granted Nov 15, 2016

Data recovery point review in a continuous data protection system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,495,370
App. No.
12/173,203
Granted
Nov 15, 2016
Kind
B1
Abstract

Technologies for providing recovery point review within a continuous data protection system can support a data storage operator in a data recovery procedure. A snapshot image can be chosen that was made prior to a data loss event. A new writable snapshot can be created from this logged snapshot. The new writeable snapshot can become the target for recovering the data volume. Review can be performed in a forward direction by reading a journal of I/O operations that have occurred since the prior snapshot was made. Review can be performed in a backward direction by deriving a dirty data list of changes made to the data volume and then removing the changes as requested. The operator can continue forward and backward review operations to refine the selected recovery point. Upon establishing the desired recovery point, the new writable snapshot can be committed, or rolled back, onto the data storage volume.

Claims (41)

1. A method for reviewing recovery points in a continuous data protection system, the method comprising:

associating a journal of logged write operations with a data volume;

identifying a snapshot of the data volume within the journal;

creating a recovery snapshot based on the identified snapshot;

reviewing the recovery snapshot forward through the journal, the forward review comprising applying the logged write operations from the journal to the recovery snapshot from a pointer within the journal of where the recovery snapshot was created forward to a recovery point and buffering in memory a journal header list from the logged write operations, the journal header list storing information in the memory pertaining to the logged write operations without the content of the logged write operations;

creating a dirty header list from the journal header list, the dirty header list comprising one or more nodes, each of the nodes representing a bitmap for tracking one or more dirty sectors of a chunk of the data volume;

reviewing the recovery snapshot backwards through the journal after reviewing the recovery snapshot forward through the journal by referencing the dirty header list and overwriting dirty writes on the recovery snapshot with data from the identified snapshot and the journal;

iterating the forward and the backward reviews to refine the recovery point associated with the recovery snapshot; and

committing the recovery snapshot to the data volume.

2. The method of claim 1 , wherein reviewing the recovery snapshot forward comprises playing operations from the journal onto the recovery snapshot.

3. The method of claim 1 , wherein reviewing the recovery snapshot backwards comprises restoring prior data up to an earlier recovery point onto the recovery snapshot.

4. The method of claim 3 , wherein marking dirty sector indicators comprises identifying replacement source data for each dirty sector as one of an entry in the journal and a corresponding sector in the identified snapshot.

5. The method of claim 3 , further comprising restoring dirty sectors onto the recovery snapshot as parallel I/O operations.

6. A non-transitory computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:

associate a journal of logged write operations with a data volume;

identify a snapshot of the data volume within the journal;

create a recovery snapshot based on the identified snapshot;

review the recovery snapshot forward through the journal, the forward review comprising applying the logged write operations from the journal to the recovery snapshot from a pointer within the journal of where the recovery snapshot was created forward to a recovery point and buffering in memory a journal header list from the logged write operations, the journal header list storing information in the memory pertaining to the logged write operations without the content of the logged write operations;

create a dirty header list from the journal header list, the dirty header list comprising one or more nodes, each of the nodes representing a bitmap for tracking one or more dirty sectors of a chunk of the data volume;

review the recovery snapshot backwards through the journal after reviewing the recovery snapshot forward through the journal by referencing the dirty header list and overwriting dirty writes on the recovery snapshot with data from the identified snapshot and the journal;

iterate the forward and the backward reviews to refine the recovery point associated with the recovery snapshot; and

commit the recovery snapshot to the data volume.

7. The non-transitory computer storage medium of claim 6 , wherein reviewing the recovery snapshot forward comprises playing operations from the journal onto the recovery snapshot.

8. The non-transitory computer storage medium of claim 6 , wherein reviewing the recovery snapshot backwards comprises restoring prior data up to an earlier recovery point onto the recovery snapshot.

9. The non-transitory computer storage medium of claim 8 , wherein marking dirty sector indicators comprises identifying replacement source data for each dirty sector as one of an entry in the journal and a corresponding sector in the identified snapshot.

10. The non-transitory computer storage medium of claim 8 , further comprising computer-executable instructions which cause the computer system to restore dirty sectors onto the recovery snapshot as parallel I/O operations.

11. A continuous data protection system comprising:

a storage server;

a storage volume associated with storage server;

a journal associated with the storage server;

a processing unit associated with the storage server;

and one or more modules that are executed on the processing unit, being configured to:

identify a snapshot of the storage volume within the journal,

create a recovery snapshot based on the identified snapshot,

review the recovery snapshot forward through the journal, the forward review comprising applying logged write operations from the journal to the recovery snapshot from a pointer within the journal of where the recovery snapshot was created forward to a recovery point and buffering in memory a journal header list from the logged write operations, the journal header list storing information in the memory pertaining to the logged write operations without the content of the logged write operations,

create a dirty header list from the journal header list, the dirty header list comprising one or more nodes, each of the nodes representing a bitmap for tracking one or more dirty sectors of a chunk of the storage volume,

review the recovery snapshot backwards through the journal after reviewing the recovery snapshot forward through the journal by referencing the dirty header list and overwriting dirty writes on the recovery snapshot with data from the identified snapshot and the journal, and

iterate the forward and the backward reviews to refine the recovery point associated with the recovery snapshot.

12. The system claim 11 , wherein reviewing the recovery snapshot forward comprises playing operations from the journal onto the recovery snapshot.

13. The system of claim 11 , wherein reviewing the recovery snapshot backwards comprises restoring prior data up to an earlier recovery point onto the recovery snapshot.

14. The system of claim 13 , wherein marking dirty sector indicators comprises identifying replacement source data for each dirty sector as one of an entry in the journal and a corresponding sector in the identified snapshot.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2008
From: CHATTERJEE, PARESH; MAHALINGAM, ANANDH; JAYARAMAN, RAJA; MALIAKAL, JOMY
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 021493/0202 →