Method and apparatus for backup and recovery using storage based journaling
First Claim
Patent Images
1. A method for processing data in an application data store comprising:
- producing at least a first snapshot of an application data store, the application data store configured to receive data by way of write operations issued from a host device;
producing a journal entry for each write operation issued from the host device;
storing each journal entry in a journal data store, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal data store; and
when the free space falls below a first threshold value, then removing one or more journal entries from the journal data store, thereby increasing the free space, wherein enough of the journal entries are removed so that the free space rises above a second threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage system maintains a journal of journal entries and at lease one snapshot of one or more data volumes. By assigning a unique sequence number to journal and snapshot, it is easy to find a journal which can be applied to the snapshot. A technique is described for detecting an overflow condition of running out of journal space and recovering the journal space.
-
Citations
31 Claims
-
1. A method for processing data in an application data store comprising:
-
producing at least a first snapshot of an application data store, the application data store configured to receive data by way of write operations issued from a host device;
producing a journal entry for each write operation issued from the host device;
storing each journal entry in a journal data store, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal data store; and
when the free space falls below a first threshold value, then removing one or more journal entries from the journal data store, thereby increasing the free space, wherein enough of the journal entries are removed so that the free space rises above a second threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data processing method comprising:
-
producing at least a first snapshot of at least a portion of an application data store, the application data store being configured to receive write operations issued from a host device;
recording a plurality of journal entries, each journal entry being recorded for a write operation issued from the host device, each journal entry being stored in a journal data store thereby consuming an amount of free space of the journal data store; and
updating the at least first snapshot with at least one journal entry, including associating space consumed by the at least one journal entry with the free space thereby increasing the free space of the journal data store. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for processing data comprising:
-
producing a plurality of snapshots of one or more portions of an application data store, the data volume configured to receive data by way of write operations issued from a host device;
recording a journal entry for each write operation issued from the host device, each journal entry being stored in a journal data store thereby accumulating a list of journal entries and consuming free space on the journal data store;
monitoring a remaining free space on the journal data store; and
when the remaining free space falls below a first threshold value, then removing one or more journal entries by identifying a selected snapshot and removing journal entries earlier in time than the selected snapshot. - View Dependent Claims (16, 17)
-
-
18. A method for processing data comprising:
-
producing a plurality of snapshots of an application data store, the data volume configured to receive data by way of write operations issued from a host device;
producing a journal entry for each write operation issued from the host device;
storing each journal entry in a journal data store, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal data store; and
when the free space falls below a first threshold value, then;
identifying a selected snapshot that is earlier in time than an oldest journal entry and is closest in time to the oldest journal entry than other snapshots;
updating the selected snapshot with one or more journal entries beginning with the oldest journal entry, thereby reducing the list of journal entries; and
repeating the updating step for additional journal entries until the free space rises above a second threshold value. - View Dependent Claims (19, 20)
-
-
21. A method for processing data comprising:
-
producing a plurality of snapshots of an application data store, the application data store configured to receive data by way of write operations issued from a host device;
recording a journal entry for each write operation issued from the host device, the journal entry being stored in a journal data store, thereby accumulating a list of journal entries in the journal data store;
producing a plurality of sequential numbers;
for each snapshot and for each journal entry, associating one of the numbers therewith;
monitoring an amount of free space on the journal data store; and
when the free space falls below a first threshold value, then;
identifying a selected snapshot by comparing sequence numbers associated with the snapshots against a sequence number associated with an oldest journal entry;
updating the selected snapshot with one or more journal entries beginning with the oldest journal entry; and
repeating the updating step with additional journal entries until the free space rises above a second threshold value. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method for processing data in a data storage system comprising:
-
initiating journal processing wherein a journal entry is created for each write operation that is sent to the data storage system, thus producing a plurality of journal entries, the journal entries being stored in a backup storage system;
subsequent to the step of initiating journal processing, taking one or more snapshots of a portion of the data contained in the data storage system;
associating a sequence number to each journal entry when it is created and to each snapshot when it is taken, wherein sequence numbers associated with the journal entries and with the snapshots are part of the same sequence; and
determining whether to apply some of the journal entries to one of the snapshots in order to reduce the amount of space in the backup storage system that is consumed by the journal entries, based on the amount of available storage capacity in the backup storage system. - View Dependent Claims (27)
-
-
28. A storage system for processing data comprising:
-
a production data store configured to receive write operations from a host device;
a snapshot data store configured to store one or more snapshots of at least a portion of the production data store;
a journal data store configured to store one or more journal entries; and
a controller configured to;
access the production data store and the snapshot data store to store one or more snapshots of at least a portion of the production data store on the snapshot data store;
access the journal data store to record a journal entry for each write operation from the host device; and
update one of the snapshots with some, but not all, of the journal entries thereby leaving some journal entries for a data recovery operation. - View Dependent Claims (29)
-
-
30. A storage system for processing data comprising:
-
means for receiving communications from a host device, the communications including one or more write operations;
first storage means for storing production data;
second storage means for storing snapshots;
third storage means for storing journal entries;
control means for;
storing onto the second storage means one or more snapshots of at least a portion of the production data;
recording onto the third storage means a journal entry for each write operation thereby producing a plurality of journal entries and reducing an amount of free space on the third storage means; and
updating one of the snapshots according to one or more journal entries thereby increasing the amount of free space on the third storage means. - View Dependent Claims (31)
-
Specification