Method and apparatus for data recovery system using storage based journaling
First Claim
Patent Images
1. A method for data recovery in a data storage system comprising:
- receiving I/O requests from a host machine, the I/O requests being directed to a production volume, the I/O requests including write requests;
producing an original snapshot of the production volume, the original snapshot representative of a first data state of the production volume;
servicing the write requests, including performing write operations on the production volume to produce an updated production volume, the updated production volume having a second data state;
storing a plurality of first journal entries, each first journal entry corresponding to one of the write requests and containing data associated with the write request; and
performing a recovery operation comprising steps of;
applying one or more first journal entries to the original snapshot or to a copy of the original snapshot to produce an updated snapshot, the updated snapshot having a third data state that is a data state of the production volume at a point in time between the first data state and the second data state; and
restoring the third data state on the production volume based on the updated snapshot so that the data recovery can be performed on the production volume in the third data state.
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.
208 Citations
28 Claims
-
1. A method for data recovery in a data storage system comprising:
-
receiving I/O requests from a host machine, the I/O requests being directed to a production volume, the I/O requests including write requests;
producing an original snapshot of the production volume, the original snapshot representative of a first data state of the production volume;
servicing the write requests, including performing write operations on the production volume to produce an updated production volume, the updated production volume having a second data state;
storing a plurality of first journal entries, each first journal entry corresponding to one of the write requests and containing data associated with the write request; and
performing a recovery operation comprising steps of;
applying one or more first journal entries to the original snapshot or to a copy of the original snapshot to produce an updated snapshot, the updated snapshot having a third data state that is a data state of the production volume at a point in time between the first data state and the second data state; and
restoring the third data state on the production volume based on the updated snapshot so that the data recovery can be performed on the production volume in the third data state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for data recovery in a data storage system comprising:
-
receiving I/O requests from a host machine, the I/O requests being directed to a production volume, the I/O requests including write requests;
producing an original snapshot of the production volume, the original snapshot representative of a first data state of the production volume;
servicing the write requests including performing write operations on the production volume to produce an updated production volume, the updated production volume having a second data state;
storing a plurality of first journal entries, each first journal entry being associated with a write request and containing data in the production volume that is to be overwritten by the write request; and
performing a recovery operation comprising steps of;
applying one or more first journal entries to the updated production volume or to a copy of the updated production volume to obtain a recovered volume having a third data state that is a data state of the production volume at a point in time earlier than the second data state; and
restoring the third data state on the production volume based on the recovered volume so that the data recovery can be performed on the production volume in the third data state. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A storage system comprising:
-
a production volume;
a plurality of secondary volumes; and
a controller operative to receive read requests and write requests from the host machine, the controller further operative to service a write request by performing steps of;
producing an original snapshot of the production volume, the original snapshot representing a first data state of the production volume;
storing the original snapshot on one of the secondary volumes;
producing a journal entry in response to a write request, the journal entry including data associated with the write request;
storing the journal entry being stored on a first volume from among the secondary volumes; and
subsequent to producing the journal entry, performing one or more I/O operations on the production volume to service the write request, wherein a plurality of journal entries are stored on the first volume as a result of servicing a plurality of write requests, wherein the production volume is in a second data state as a result of the plurality of write requests, the controller further operative to perform a recovery operation comprising steps of;
applying one or more journal entries to the original snapshot or to a copy of the original snapshot to produce an updated snapshot, the updated snapshot having a third data state that is a data state at a point in time between the first data state and the second data state; and
restoring the third data state on the production volume based on the updated snapshot so that data recovery can be performed on the production volume in the third data state. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A storage system comprising:
-
a production volume, the production volume being in a first data state;
a plurality of secondary volumes; and
a controller operative to receive read requests and write requests from the host machine, the controller further operative to service a write request by performing steps of;
producing a journal entry in response to a write request, the journal entry including data from the production volume that will be overwritten by the write request;
storing the journal entry being stored on a first volume from among the secondary volumes; and
subsequent to producing the journal entry, performing one or more I/O operations on the production volume to service the write request, wherein a plurality of journal entries are stored on the first volume as a result of servicing a plurality of write requests, wherein production volume is in a second data state as a result of the write requests, the controller further operative to perform a recovery operation on a current data state of the production volume comprising steps of;
applying one or more journal entries to the current data state of the production volume or to a copy of the production volume in its current data state in order to generate a recovery volume having an earlier data state, the earlier data state being a data state of the production volume at a point in time between the first data state and the second data state; and
restoring the third data state on the production volume based on the recovered volume so that data recovery can be performed on the production volume in the third data state. - View Dependent Claims (25, 26, 27, 28)
-
Specification