Method and apparatus for synchronizing applications for data recovery using storage based journaling
First Claim
Patent Images
1. A computer system to be coupled to a host computer via a network, the computer system comprising:
- a data volume storing write data constituting a file from the host computer;
a snapshot storing area storing 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 subsequent to the first point in time;
a journal storing area storing journal entries including a journal entry between the first point in time and the second point in time,wherein the computer system manages journal operations to record the journal entries, and monitors the journal storing area so as to free at least one of the stored journal entries in the journal storing area based on a predetermined criterion which enables data recovery by using at least the second snapshot and the stored journal entries,wherein based upon a command for generating marker information from the host computer, the computer system records marker information as being associated with the journal entries in the journal storing area, the marker information representing a timing of closing the file on the host computer for file system operation, the marker information being independent of a write request,wherein based upon a command for getting marker information from the host computer, the computer system retrieves the recorded marker information for the host computer, andwherein when receiving a data recovery request specifying a specific one of the marker information representing a third point in time between the first point in time and the second point in time, if the computer system determines that the data recovery request can be performed based on the specific one of the marker information and the stored journal entries, the computer system copies the first snapshot to a recovery volume, selects at least one of the journal entries corresponding to the write operations conducted between the first point in time and the third point in time and recovers data of the portion of the data volume at the third point in time by using at least a portion of the selected at least one journal entry and the copied snapshot in the recovery volume.
0 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method to synchronize the state of an application and an application'"'"'s objects with data stored on the storage system. The storage system provides API'"'"'s to create special data, called a marker journal, and stores it on a journal volume. The marker contains application information, e.g. file name, operation on the file, timestamp, etc. Since the journal volume contains markers as well as any changed data in the chronological order, IO activities to the storage system and application activities can be synchronized.
98 Citations
16 Claims
-
1. A computer system to be coupled to a host computer via a network, the computer system comprising:
-
a data volume storing write data constituting a file from the host computer; a snapshot storing area storing 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 subsequent to the first point in time; a journal storing area storing journal entries including a journal entry between the first point in time and the second point in time, wherein the computer system manages journal operations to record the journal entries, and monitors the journal storing area so as to free at least one of the stored journal entries in the journal storing area based on a predetermined criterion which enables data recovery by using at least the second snapshot and the stored journal entries, wherein based upon a command for generating marker information from the host computer, the computer system records marker information as being associated with the journal entries in the journal storing area, the marker information representing a timing of closing the file on the host computer for file system operation, the marker information being independent of a write request, wherein based upon a command for getting marker information from the host computer, the computer system retrieves the recorded marker information for the host computer, and wherein when receiving a data recovery request specifying a specific one of the marker information representing a third point in time between the first point in time and the second point in time, if the computer system determines that the data recovery request can be performed based on the specific one of the marker information and the stored journal entries, the computer system copies the first snapshot to a recovery volume, selects at least one of the journal entries corresponding to the write operations conducted between the first point in time and the third point in time and recovers data of the portion of the data volume at the third point in time by using at least a portion of the selected at least one journal entry and the copied snapshot in the recovery volume. - View Dependent Claims (2, 3, 15)
-
-
4. A computer system to be coupled to a host computer via a network, the computer system comprising:
-
a data volume storing write data constituting a plurality of files 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; a journal storing area storing an old journal entry before the first point in time, a journal entry between the first and second point in time, and another journal entry after the second point in time, wherein the journal storing area has a various amount of available space in which new journal entries can be written, wherein the computer system manages journal operations such that, 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 journal entries beginning with the oldest journal entry 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 journal entry after the second point in time, then said another journal entry is applied to the second snapshot to create a new snapshot before being made free, wherein based upon a command for generating marker information from the host computer, the computer system records marker information as being associated with the journal entries in the journal storing area, the marker information representing a timing of closing of each of the plurality of files on the host computer for file system operation, wherein the marker information is independent of a write request, wherein based upon a command for getting marker information from the host computer, the computer system retrieves the recorded marker information for the host computer, and wherein when receiving a data recovery request specifying a specific one of the marker information representing a target point in time between the first point in time and the second point in time, if the computer system determines whether recovery is possible, and if recovery is possible, the computer system uses a copy of the first snapshot in a recovery volume and at least a portion of the journal entry to perform recovery at the target point in time. - View Dependent Claims (5, 6, 7, 16)
-
-
8. A computer-implemented method of storing information in a computer system to be coupled to a host computer via a network, the method comprising the steps of:
-
storing write data constituting a file from the host computer to a data volume; storing, in a snapshot storing area, 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 subsequent to the first point in time; and storing, in a journal storing area, journal entries including a journal entry between the first point in time and the second point in time; wherein the computer system manages journal operations to record the journal entries, and monitors the journal storing area so as to free at least one of the stored journal entries in the journal storing area based on a predetermined criterion which enables data recovery by using at least the second snapshot and the stored journal entries, wherein based upon a command for generating marker information in the computer system from the host computer, the computer system records marker information as being associated with the journal entries in the journal storing area, the marker information representing a timing of closing the file on the host computer, wherein the marker information is independent of a write request, wherein based upon a command for getting marker information from the host computer, the computer system retrieves the recorded marker information for the host computer, and wherein when receiving a data recovery request specifying marker information representing a third point in time between the first point in time and the second point in time, if the computer system determines that the data recovery request can be performed based on the marker information and the stored journal entries, the computer system copies the first snapshot to a recovery volume, selects at least one of the journal entries corresponding to the write operations conducted between the first point in time and the third point in time and recovers data of the portion of the data volume at the third point in time by using at least a portion of the selected at least one journal entry and the copied snapshot in the recovery volume. - View Dependent Claims (9, 10)
-
-
11. A computer-implemented method of storing information in a computer system to be coupled to a host computer via a network, the method comprising the steps of:
-
storing, in a data volume, write data constituting a plurality of files from the host computer; 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 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 storing, in a journal storing area, an oldest journal entry before the first point in time, a journal entry between the first and second point in time, and another journal entry after the second point in time, wherein the journal storing area has a variable amount of available space in which new journal entries can be written, wherein the computer system manages journal operations such that, 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 journal entries beginning with the oldest journal entry 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 journal entry after the second point in time, then said another journal entry is applied to the second snapshot to create a new snapshot before being made free, wherein based upon a command for generating marker information in the computer system from the host computer, the computer system records marker information as being associated with the journal entries in the journal storing area, the marker information representing a timing of closing of each of the plurality of files on the host computer for file system operation, wherein the marker information is independent from a write request, wherein based upon a command for getting marker information from the host computer, the computer system retrieves the recorded marker information for the host computer, and wherein when receiving a data recovery request specifying a specific marker information at a target point in time between the first point in time and the second point in time, the computer system determines whether recovery is possible, and if recovery is possible, the computer system uses a copy of the first snapshot in a recovery volume and at least a portion of one journal entry to perform recovery at the target point in time. - View Dependent Claims (12, 13, 14)
-
Specification