Method and apparatus for data recovery using storage based journaling
First Claim
Patent Images
1. A storage system to be coupled to a host computer via a network, the storage system comprising:
- a data volume storing write data from the host computer;
a snapshot storing area for storing a plurality of snapshots including a first snapshot of at least a portion of the data volume at a first point in time, and also storing a second snapshot of the portion of the data volume at a second point in time that is a latest snapshot among the stored snapshots; and
a journal storing area storing an oldest after-journal entry before the first point in time, an after-journal entry between the first and second point in time, and another after-journal entry after the second point in time,wherein the journal storing area has a variable amount of available space in which new after-journal entries can be written,wherein if the amount of available space in the journal storing area falls below a predetermined threshold, then the amount of available space is increased by sequentially freeing journals beginning with the oldest after-journal entry without applying the journals until the amount of available space is no longer below the predetermined threshold,wherein if, during the increasing of the amount of available space, it becomes necessary to free said another after-journal entry after the second point in time, then said another after-journal entry is applied to the second snapshot to create a new snapshot before being made free,wherein when receiving a data recovery request to recover data at a target point in time between the first point in time and the second point in time, determining whether recovery is possible, and if recovery is possible, by using a copy of the first snapshot in a recovery volume and at least a portion of one after-journal entry to perform recovery at the target point in time, andwherein based on a user'"'"'s selection, the storage system determines whether to create a before-journal entry before applying said portion of one after-journal entry to the copy of the first snapshot, the before-journal entry being recording data that is stored in a location where the after-journal entry is applied to enable rollback to a snapshot at any point in time between the first snapshot and the second snapshot.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage system maintains a journal and a snapshot of one or more data volumes. Two journal entry types are maintained, an AFTER journal entry and a BEFORE journal entry. Two modes of data recovery are provided: “fast” recovery and “undo-able” recovery. A combination of both recovery modes allows the user to quickly recover a targeted data state.
-
Citations
19 Claims
-
1. A storage system to be coupled to a host computer via a network, the storage system comprising:
-
a data volume storing write data from the host computer; a snapshot storing area for storing a plurality of snapshots including a first snapshot of at least a portion of the data volume at a first point in time, and also storing a second snapshot of the portion of the data volume at a second point in time that is a latest snapshot among the stored snapshots; and a journal storing area storing an oldest after-journal entry before the first point in time, an after-journal entry between the first and second point in time, and another after-journal entry after the second point in time, wherein the journal storing area has a variable amount of available space in which new after-journal entries can be written, wherein if the amount of available space in the journal storing area falls below a predetermined threshold, then the amount of available space is increased by sequentially freeing journals beginning with the oldest after-journal entry without applying the journals until the amount of available space is no longer below the predetermined threshold, wherein if, during the increasing of the amount of available space, it becomes necessary to free said another after-journal entry after the second point in time, then said another after-journal entry is applied to the second snapshot to create a new snapshot before being made free, wherein when receiving a data recovery request to recover data at a target point in time between the first point in time and the second point in time, determining whether recovery is possible, and if recovery is possible, by using a copy of the first snapshot in a recovery volume and at least a portion of one after-journal entry to perform recovery at the target point in time, and wherein based on a user'"'"'s selection, the storage system determines whether to create a before-journal entry before applying said portion of one after-journal entry to the copy of the first snapshot, the before-journal entry being recording data that is stored in a location where the after-journal entry is applied to enable rollback to a snapshot at any point in time between the first snapshot and the second snapshot. - View Dependent Claims (2, 3, 4)
-
-
5. A storage system to be coupled to a host computer via a network, the storage system comprising:
-
a data volume storing write data from the host computer; a snapshot storing area storing a first snapshot of at least a portion of the data volume for a first point in time, the first point in time represented, by first information that specifies a time when the first snapshot is taken, the snapshot storing area further storing a second snapshot of the portion of the data volume for a second point in time subsequent to the first point in time, the second point in time represented by second information that specifies a time when the second snapshot is taken; a journal storing area storing after-journal entries including an after-journal entry between the first point in time and the second point in time, wherein the after-journal entries comprise the write data and time ordering information specifying write ordering of write operations to the data volume; and a storage controller to conduct write operations according to write requests received from the host computer, to manage snapshot operations to store a plurality of snapshots including the first snapshot and the second snapshot, wherein the first and second information are associated with the time ordering information, wherein the storage system manages journal operations to record the after-journal entries and monitors the journal storing area so as to free at least one of the stored after-journal entries in the journal storing area without applying the after-journal entries if an amount of available space in the journal storing area is less than a predetermined threshold and as long as data recovery is still possible by using at least the second snapshot and the stored after-journal entries, wherein when receiving a data recovery request with a first target time between the first point in time and the second point in time, if the storage system determines that the data recovery request can be performed based on the first target time and the stored after-journal entries, the storage system copies the first snapshot to a recovery volume, and selects at least one of the after-journal entries corresponding to the write operations conducted between the first point in time and the first target time based on the first information, the time ordering information, and the first target time to recover data of the portion of the data volume at the first target time by applying the selected after-journal entries to the copied snapshot in the recovery volume, and wherein based on a user'"'"'s selection, the storage system determines whether to create a before-journal entry before applying the selected after-journal entries to the copied snapshot, the before-journal entry being recording data that is stored in a location where the after-journal entry is applied to enable rollback to a snapshot at any point in time between the first snapshot and the second snapshot. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of storing information in a storage system to be coupled to a host computer via a network, the method comprising the steps of:
-
storing write data received from the host computer in a data volume; storing, in a snapshot storing area, a plurality of snapshots including a first snapshot of at least a portion of the data volume at a first point in time and also a second snapshot of the portion of the data volume at a second point in time that is latest snapshot among the stored snapshots; storing, in a journal storing area, an oldest after-journal entry before the first point in time, an after-journal entry between the first and second point in time, and another after-journal entry after the second point in time, wherein the journal storing area has a variable amount of available space in which new after-journal entries can be written; if the amount of available space in the journal storing area falls below a predetermined threshold, increasing the amount of available space by sequentially freeing journals beginning with the oldest after-journal without applying the journals until the amount of available space is no longer below the predetermined threshold; if, when increasing of the amount of available space, it becomes necessary to free said another after-journal entry after the second point in time, then applying said another after-journal entry to the second snapshot to create a new snapshot before freeing them; when receiving a data recovery request to recover data at a target point in time between the first point in time and the second point in time, determining whether recovery is possible, and if recovery is possible, performing recovery at the target point in time by using a copy of the first snapshot in a recovery volume and at least a portion of one after-journal entry, and wherein based on a user'"'"'s selection, the storage system determines whether to create a before-journal entry before applying said portion of one after-journal entry to the copy of the first snapshot, the before-journal entry being recording data that is stored in a location where the after-journal entry is applied to enable rollback to a snapshot at any point in time between the first snapshot and the second snapshot. - View Dependent Claims (17, 18, 19)
-
Specification