US20050235016A1 - Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling - Google Patents

Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling Download PDF

Info

Publication number
US20050235016A1
US20050235016A1 US10/823,619 US82361904A US2005235016A1 US 20050235016 A1 US20050235016 A1 US 20050235016A1 US 82361904 A US82361904 A US 82361904A US 2005235016 A1 US2005235016 A1 US 2005235016A1
Authority
US
United States
Prior art keywords
journal
backup
data
volume
recovery method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/823,619
Other versions
US7167880B2 (en
Inventor
Takashi Amano
Kenji Yamagami
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to US10/823,619 priority Critical patent/US7167880B2/en
Assigned to HITACHI, LTD. reassignment HITACHI, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YAMAGAMI, KENJI, AMANO, TAKASHI
Publication of US20050235016A1 publication Critical patent/US20050235016A1/en
Priority to US11/640,933 priority patent/US7574462B2/en
Application granted granted Critical
Publication of US7167880B2 publication Critical patent/US7167880B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Definitions

  • the present invention relates generally to a backup and recovery system for a storage system, more particularly the present invention relates to a backup and recovery system and method for a storage system that avoids journal overflow.
  • Journaling is a backup and restore technique commonly used in database systems. An image of the data to be backed up is taken. Then, as changes are made to the data, a journal of the changes is maintained. Recovery of data is accomplished by applying the journal to an appropriate image to recover data at any point in time.
  • Typical database systems such as Oracle, can perform journaling.
  • Recovering data at any point in time addresses the following types of administrative requirements. For example, a typical request might be, “I deleted a file by mistake at around 10:00 am yesterday. I have to recover the file just before it was deleted.”
  • journal entries In a backup and recovery system using storage based journaling, the storage system must store a large number of journal entries from the processing of numerous write requests. Accordingly, the storage system requires a very large capacity in order to store the large number of journal entries. However, disks, tapes or any other such storage media have an upper limit in capacity. Thus, the storage system can not store a large number of journal entries if the capacity for storing journal entries decrease. Therefore, a need exists for a storage system that avoids journal overflow.
  • a storage system provides data storage services for users and their applications.
  • the storage system performs additional data processing to provide for recovery of lost data, including performing snapshot operations and journaling.
  • Snapshots and journal entries are stored separately from the production data volumes provided for the users. Older journal entries are cleared in order to make room for new journal entries. This involves updating a snapshot by applying one or more of the older journal entries to an appropriate snapshot. Subsequent recovery of lost data can be provided by accessing an appropriate snapshot and applying journal entries to the snapshot to reproduce the desired data state.
  • the present invention provides solutions for avoiding journal overflow in the after journal and before journal methods.
  • the solutions for avoiding journal overflow according to the present invention include:
  • the solution for avoiding journal overflow according to the present invention includes:
  • FIG. 1 is a high level generalized block diagram illustrating a backup and recovery system according to the present invention
  • FIG. 2 is a generalized diagram illustrating an embodiment of a data structure for storing journal entries in according to the present invention
  • FIG. 3 is a generalized diagram illustrating a first solution to periodically taking a new snapshot and deleting the oldest journal of the after journal method according to the present invention
  • FIG. 4 is a generalized diagram illustrating a second solution to periodically taking a new logical snapshot and deleting the oldest journal of the after journal method according to the present invention
  • FIG. 5 is a generalized diagram illustrating a third solution to stop taking journal entries when the journal volume is full of the after journal method according to the present invention
  • FIG. 6 is a generalized diagram illustrating a fourth solution to stop taking journal entries when the journal volume is full and then switching to bitmap management of the after journal method according to the present invention
  • FIG. 7 is a generalized diagram illustrating a solution to apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry of the before journal method according to the present invention
  • FIG. 8 is a generalized diagram illustrating an embodiment of a data structure of a management table of free capacity of the journal for storing information relating to the free capacity of the journal volume(s) according to the present invention
  • FIG. 9 is a flowchart illustrating the steps of the first solution to periodically taking a new snapshot and deleting the oldest journal of the after journal method according to the present invention.
  • FIG. 10 is a flowchart illustrating the steps of the second solution to periodically taking a new logical snapshot and deleting the oldest journal of the after journal method according to the present invention
  • FIG. 11 is a flowchart illustrating the steps of the third solution to stop taking journal entries when the journal volume is full of the after journal method according to the present invention.
  • FIG. 12 is a flowchart illustrating the steps of the fourth solution to stop taking journal entries when the journal volume is full and then switching to bitmap management of the after journal method according to the present invention
  • FIG. 13 is a flowchart illustrating the steps of the solution to apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry of the before journal method according to the present invention
  • FIG. 14 is a diagram illustrating the taking of a logical snapshot for plural write requests according to the present invention.
  • FIG. 15 a and b are diagrams illustrating the Bitmap Management Table before and after taking a logical snapshot according to the present invention.
  • FIG. 1 is a high level generalized block diagram of an illustrative embodiment of a backup and recovery system according to the present invention.
  • a snapshot is taken for production data volumes (DVOL) 101 .
  • the term “snapshot” in this context conventionally refers to a physical data image of the data volume at a given point in time.
  • the snapshot can be of the entire data volume, or some portion or portions of the data volume(s).
  • a journal entry is made for every write operation issued from the host to the data volumes. As will be discussed below, by applying a series of journal entries to an appropriate snapshot, data can be recovered at any point in time.
  • the backup and recovery system shown in FIG. 1 includes at least one storage system 100 .
  • the storage system 100 includes suitable processor(s), memory, and control circuitry to perform I/O between a host 110 and its storage media (e.g., disks).
  • the backup and recovery system also requires at least one host 110 .
  • a suitable communication path 130 is provided between the host and the storage system 100 .
  • the host 110 typically will have one or more user applications (APP) 112 executing on it. These applications will read and/or write data to storage media contained in the data volumes 101 of storage system 100 . Thus, applications 112 and the data volumes 101 represent the target resources to be protected. It can be appreciated that data used by the user applications can be stored in one or more data volumes.
  • APP user applications
  • journal group JNLG 102
  • the data volumes 101 are organized into the journal group.
  • a journal group is the smallest unit of data volumes where journaling of the write operations from the host 110 to the data volumes is guaranteed.
  • the associated journal records the order of write operations from the host to the data volumes in proper sequence.
  • the journal data produced by the journaling activity can be stored in one or more journal volumes (JVOL) 106 .
  • the host 110 also includes a recovery manager (RM) 111 .
  • RM recovery manager
  • This component provides a high level coordination of the backup and recovery operations. Additional discussion about the recovery manager will be discussed below.
  • the storage system 100 provides a snapshot (SS) 105 of the data volumes comprising a journal group.
  • the snapshot 105 is representative of the data volumes 101 in the journal group 106 at the point in time that the snapshot was taken.
  • Conventional methods are known for producing the snapshot image.
  • One or more snapshot volumes (SVOL) 107 are provided in the storage system which contains the snapshot data.
  • a snapshot can be contained in one or more snapshot volumes.
  • a management table (MT) 108 is provided to store the information relating to the journal group 102 , the snapshot 105 , and the journal volume(s) 106 .
  • a complete discussion of the details of the management table 108 and its use is provided in the related application Ser. Nos. 10/608,391, 10/621,791 and 10/627,507 identified above and as such the contents of each including the details of the management table 108 and its use are incorporated herein by reference.
  • a management table of free capacity of the journal (MTFCJ) 120 is provided to store information relating to the free capacity of the journal volume(s).
  • the storage system 100 uses (monitors) this table to trigger various actions including, for example, taking and not taking journals and snapshots so as to avoid journal overflow.
  • the management table of free capacity of the journal 120 includes a plurality of entries. These entries, for example, include:
  • Journal group name 801 This is a listing of the journal group names for each journal group (JNLG-A, JNLG-B and JNLG-C) 102 . A user defines this name when the user makes a journal group.
  • Free capacity of journal pool 802 This is an indication of the amount of free capacity of journal pool that is available for use by the journal group(s). A journal overflow occurs if the free capacity becomes zero (empty).
  • Threshold of free capacity 803 This is an indication, with respect to each journal group, of the lowest amount of free capacity of the journal pool the storage system is allowed to reach.
  • the storage system 100 according to the present invention, for example, conducts monitoring so as to detect if the free capacity decreases to a level less than the threshold.
  • the setting of this threshold is basically a policy decision as determined by the user.
  • the unit of measurement used to set this threshold can for example be Giga Bytes (GB), Mega Bytes (MB), etc.
  • Threshold rate of free capacity 804 This is an indication, with respect to each journal group, of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach.
  • the storage system 100 according to the present invention, for example, conducts monitoring so as to detect if the free capacity available for use as a percentage of the journal pool decreases to be less than this threshold.
  • the setting of this threshold is basically a policy decision as determined by the user.
  • the unit of measurement used to set this threshold can for example be a percent (%).
  • Wrap-around 805 This is an indication, with respect to each journal group, whether the storage system is to overwrite the oldest journal entry by the newest journal entry.
  • the setting of this threshold is basically a policy decision as determined by the user.
  • a controller component 140 is also provided which coordinates the journaling of write operations and snapshots of the data volumes, and the corresponding movement of data among the different storage components 101 , 106 , 107 . It can be appreciated that the controller component is a logical representation of a physical implementation which may comprise one or more sub-components distributed within the storage system 100 .
  • FIG. 2 shows the data used in an implementation of the journal.
  • a journal is generated in response.
  • the journal comprises a Journal Header 219 and Journal Data 225 .
  • the Journal Header 219 contains information about its corresponding Journal Data 225 .
  • the Journal Data 225 comprises the data (write data) that is the subject of the write operation. This kind of journal is also referred to as an “AFTER journal.”
  • the Journal Header 219 comprises an offset number (JH_OFS) 211 .
  • the offset number identifies a particular data volume 101 in the journal group 102 .
  • the data volumes are ordered as the oth data volume, the 1 st data volume, the 2 nd data volume and so on.
  • the offset numbers might be 0, 1, 2, etc.
  • a starting address in the data volume (identified by the offset number 211 ) to which the write data is to be written is stored to a field in the Journal Header 219 to contain an address (JH_ADR) 212 .
  • the address can be represented as a block number (LBA, Logical Block Address).
  • a field in the Journal Header 219 stores a data length (JH_LEN) 213 , which represents the data length of the write data. Typically it is represented as a number of blocks.
  • a field in the Journal Header 219 stores the write time (JH_TIME) 214 , which represents the time when the write request arrives at the storage system 100 .
  • the write time can include the calendar date, hours, minutes, seconds and even milliseconds. This time can be provided by the disk controller 140 or by the host 110 .
  • two or more mainframe hosts share a timer and can provide the time when a write command is issued.
  • a sequence number field (JH_SEQ) 215 contains a sequence number which is assigned to each write request. The sequence number is stored in a field in the Journal Header 219 . Every sequence number within a given journal group 102 is unique. The sequence number is assigned to a journal entry when it is created.
  • a journal volume identifier field (JH_JVOL) 216 is also stored in the Journal Header 219 .
  • the volume identifier identifies the journal volume 106 associated with the Journal Data 225 .
  • the identifier is indicative of the journal volume containing the Journal Data. It is noted that the Journal Data can be stored in a journal volume that is different from the journal volume which contains the Journal Header.
  • a journal data address field (JH_JADR) 217 stored in the Journal Header 219 contains the beginning address of the Journal Data 225 in the associated journal volume 106 that contains the Journal Data.
  • a journal type field (JH_TYPE) 218 stored in the Journal Header 219 indicates the journal entry as being an after journal type or a before journal type.
  • FIG. 2 shows that the journal volume 106 comprises two data areas: a Journal Header Area 210 and a Journal Data Area 220 .
  • the Journal Header Area 210 contains only Journal Headers 219
  • Journal Data Area 220 contains only Journal Data 225 .
  • the Journal Header is a fixed size data structure.
  • a Journal Header is allocated sequentially from the beginning of the Journal Header Area. This sequential organization corresponds to the chronological order of the journal entries.
  • data is provided that points to the first journal entry in the list, which represents the “oldest” journal entry. It is typically necessary to find the Journal Header 219 for a given sequence number (as stored in the sequence number field 215 ) or for a given write time (as stored in the time field 214 ).
  • journal type field (JH_TYPE) 218 contains a journal type indicator which identifies the type of journal entry.
  • two types of journal entries are kept: (1) an AFTER journal and (2) a BEFORE journal.
  • An AFTER journal entry contains the data that is contained in the write operation for which a journal entry is made.
  • a BEFORE journal entry contains the original data of the area in storage that is the target of a write operation.
  • a BEFORE journal entry therefore represents the contents “before” the write operation is performed.
  • Journal Header 219 and Journal Data 225 are contained in chronological order in their respective areas in the journal volume 106 .
  • the order in which the Journal Header and the Journal Data are stored in the journal volume is the same order as the assigned sequence number.
  • an aspect of the present invention is that the journal information 219 , 225 wraps within their respective areas 210 , 220 .
  • journal entries As per the above in a backup and recovery system using storage based journaling, the storage system must store a large number of journal entries from the processing of numerous write requests. Accordingly, the storage system requires a very large capacity in order to store the large number of journal entries. However, disks, tapes or any other such storage media have an upper limit in capacity. Thus, the storage system can not store a large number of journal entries if the capacity for storing journal entries decrease.
  • the present invention solves the above noted problem by providing solutions for avoiding journal overflow in the after journal and before journal methods.
  • the solutions for avoiding journal overflow according to the present invention include:
  • the solution for avoiding journal overflow according to the present invention includes:
  • An after journal entry contains data that is contained in the write operation for which a journal entry is made. Thus, the after journal entry keeps the changed data. Therefore, the storage system needs a basic snapshot to which the after journal entries are to be applied in order to restore the data. If the storage system does not have a basic snapshot to which the after journal entries are applied the storage system can not restore the data.
  • the first solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes periodically taking a new snapshot and deleting the oldest journal as illustrated in FIGS. 3 and 9 .
  • the present invention provides a data volume DVOL 101 which corresponds to an application.
  • the application when executed, for example, sends write requests (WR) 303 to the DVOL 101 along the time line 304 so as to write data therein.
  • the WRs could for example be formed into sets of WRs 302 , each set of WRs 302 corresponding to a single transaction.
  • a journal entry JNL 305 is made in the volume so as to store an after journal entry in JVOL 106 .
  • a Snapshot 107 a , 107 b of the DVOL 106 is taken.
  • a snapshot 107 is stored on one or more SVOLs and represents a point in time copy of the DVOL 106 .
  • the backup and recovery system using storage based journaling can restore the data of each write request.
  • an application may not be able to recover the data by using this method of restoring data, because the data of each write may occur at an arbitrary point during the execution of the application.
  • the recovery should be conducted at a meaningful point such as, for example, the end of a transaction. Such points can be set by the use of check points 301 .
  • this method requires a trigger to operate in order to take a new snapshot.
  • a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 901 ).
  • the controller 140 takes a snapshot 107 a (Step 907 ).
  • An application sends a write request to write data in the DVOL 101 (Step 902 ).
  • the controller 140 checks the capacity of journal pool (Step 903 ).
  • Step 904 the controller 140 takes a new snapshot 107 b (Step 904 ) and deletes the old journal entries (Step 905 ). Thereafter, a new journal entry is taken (Step 906 ). If the capacity of journal pool is greater or equal to the threshold 803 ( 804 ), then the controller 140 takes a journal entry (Step 906 ). If desired a user can take a new snapshot manually.
  • the above described first solution of the after journal method has no performance impact due to journal overflow and does not need to update a snapshot by a journal entry.
  • This solution can store a large number of journal entries due to the frequent taking of snapshots.
  • the second solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes periodically taking a new logical snapshot and deleting the oldest journal as illustrated in FIGS. 4 and 10 .
  • the present invention provides features similar to those illustrated in FIG. 3 with the exception of a logical snapshot 401 being taken at the check points 301 .
  • the controller 140 periodically takes a logical snapshot 401 instead of a snapshot 107 .
  • a logical snapshot 401 is a type of snapshot that represents the changes to the data as represented by, for example, a bitmap. Accordingly, a logical snapshot is a virtual entity since no physical copy of the volume exists.
  • the controller 140 before taking a journal entry, the controller 140 makes a difference bitmap (not shown) to be used for a logical snapshot 401 .
  • each bit shows the update status of a data area (5 12 KB, 1 024 KB etc) of DVOL 101 .
  • the controller 140 has the latest journal information (JH_SEQ 215 ) corresponding to the updated bit. If the controller 140 takes a logical snapshot 401 , then the controller 104 deletes the oldest journal entry with the exception of the newest journal entry corresponding to updated bit. Therefore, the logical snapshot represents the latest journal entries corresponding to an updated bit.
  • FIG. 14 An explanation of a logical snapshot is illustrated in FIG. 14 .
  • the DVOL 101 is divided into a plurality of data areas 150 each being of a pre-set size (512 KB, 1024 KB etc).
  • a differential bitmap (BMP) 151 is provided for each DVOL 101 , wherein each bit of the differential BMP corresponds to one of the data areas so as to indicate whether the corresponding data area has changed or not.
  • a “1” indicates a change, whereas a “0” indicates no change.
  • a BMP Management Table 153 is provided indicating relations among BMP 151 , journal entries and DVOL 101 .
  • FIG. 14 illustrates on the left side of the figure the status of the data areas 150 and the bits of the BMP 151 upon the occurrence of write requests 1 , 2 , and 3 .
  • FIG. 14 also illustrates on the right side of the figure the status of the data areas 150 and the bits of the BMP 151 a upon the occurrence of write request 4 after conducting write requests 1 , 2 , and 3 .
  • the right side of FIG. 14 illustrates that the storage system took a logical snapshot when write request 4 reached the DVOL 101 , thereby forming BMP Management Table 153 .
  • FIGS. 15 a and 15 b illustrate the status of the BMP Management Table before the logical snapshot is taken and after the logical snapshot is taken, respectively.
  • the BMP Management Table includes a plurality of entries each having the fields seq# 1401 indicating a sequential number of BMP Management Table entry based on JH_TIME 214 or JH_SEQ 215 also forming part of each entry, DVOL# 1402 indicating a unique DVOL number assigned to DVOL 101 in Journal Group 102 , 1403 bitmap# indicating parameters A-B, where A is the version/generation of the logical snapshot and B is data area number, 1404 indicating a version/generation of the logical snapshot, and 1405 indicating a time logical snapshot was taken.
  • BMP Management Table 153 corresponds to FIG. 15 a
  • BMP Management Table 154 corresponds to FIG. 15 b
  • FIG. 15 a is a BMP Management Table before taking a logical snapshot
  • FIG. 15 b is a BMP Management Table after taking a logical snapshot.
  • a logical snapshot of any version/generation does not reference Journal 1 in FIG. 15 b since the data area corresponding to Journal 1 was written by write request 4 . Therefore storage system can delete Journal 1 when the storage system takes a logical snapshot. Accordingly, the storage system can delete any non-reference journals.
  • the logical snapshot means a group of journals which have the same generation and max sequence number as per the BMP Management Table 153 for each of the data areas 150 .
  • the storage system 100 can delete journals which do not have a max sequence number of the BMP Management Table 153 for each of the data areas 150 at the time of generation of the logical snapshot. Journals which do not have max sequence number of BMP Management Table 153 for each of the data areas means non-reference journals.
  • this method requires a trigger to operate in order to take a logical snapshot.
  • a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1001 ).
  • the controller 140 takes a snapshot 107 or takes a bit map for a logical snapshot 401 (Step 1007 ).
  • An application sends a write request to write data in the DVOL 101 (Step 1002 ).
  • the controller 140 checks the capacity of journal pool (Step 1003 ).
  • Step 1004 the controller 140 takes a snapshot 107 or takes a bitmap for a logical snapshot 401 (Step 1004 ) and deletes the old journal entry (Step 1005 ). Thereafter, a new journal entry is taken (Step 1006 ). If the capacity of the journal pool is greater than or equal to the threshold 803 ( 804 ), then the controller 140 takes a journal entry (Step 1006 ). If desired a user can take a new snapshot manually.
  • the third solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes stop taking journal entries when the journal volume is full as illustrated in FIGS. 5 and 11 .
  • the present invention provides features similar to those illustrated in FIGS. 3 and 4 with the exception that a snapshot 107 will be taken and journal entries 305 made until the JVOL 106 becomes full.
  • the present invention stops taking journal entries 305 before the JVOL 106 overflows.
  • this method requires a trigger to stop taking journal entries 305 .
  • a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1101 ).
  • the controller 140 takes a snapshot (Step 1006 ).
  • An application sends a write request to write data in the DVOL 101 (Step 1102 ).
  • the controller 140 checks the capacity of journal pool (Step 1103 ). If the capacity of journal pool is less than the threshold 803 , then the controller 140 stops taking journal entries (Step 1104 ). If the capacity of journal pool is greater than or equal to the threshold 803 ( 804 ), then the controller 140 takes a journal entry (Step 1105 ). If desired a user can stop taking journal entries manually.
  • the fourth solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes stop taking journal entries when the journal volume is full and then switching to bitmap management as illustrated in FIGS. 6 and 12 .
  • the present invention provides features similar to those illustrated in FIGS. 3, 4 and 5 with the exception that a snapshot 107 will be taken and journal entries 305 are made until the JVOL 106 becomes full.
  • the present invention stops taking journal entries 305 before the JVOL 106 overflows and then switches to bitmap management.
  • this method requires a trigger to stop taking journal entries 305 .
  • a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1201 ).
  • the controller 140 takes a snapshot 107 (Step 1209 ).
  • An application sends a write request to write data in the DVOL 101 (Step 1202 ).
  • the controller 140 checks the capacity of journal pool (Step 1203 ). If the capacity of the journal pool is less than the threshold 803 ( 804 ), then the controller 140 stops taking journal entries (Step 1204 ).
  • Step 1205 the controller 140 switches to bitmap management which tracks a difference using a bitmap 601 (Step 1205 ). If the user adds capacity to the journal pool (Step 1206 ) such as by adding disks, then the controller 140 can take a logical snapshot 401 and take a journal for a logical snapshot 401 (Step 1207 ). As known the logical snap shot requires less storage capacity than a snapshot. The operation of the controller 140 then returns to Step 1202 . If the capacity of journal pool is greater than or equal to the threshold 803 ( 804 ), then the controller 140 takes a journal entry (Step 1208 ). If desired a user can stop taking journal entries manually.
  • a before journal entry contains the original data of the area in storage that is the target of a write operation.
  • a before journal entry therefore represents the contents “before” the write operation is performed. Therefore, the storage system does not need a basic snapshot to which the after journal entries are to be applied in order to restore the data. If the storage system does not have the DVOL 101 to which the before journal entries are applied the storage system can not restore the data.
  • the solution of the present invention provided with respect to the before journal method for avoiding journal overflow includes applying wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry as illustrated in FIGS. 7 and 13 .
  • the present invention provides a data volume DVOL 101 which corresponds to an application and a journal volume 106 which stores before journal entries.
  • the application when executed, for example, sends write requests (WR) 303 to the DVOL 101 along the time line 304 so as to write data therein.
  • the WRs could for example be formed into sets of WRs 302 , each set of WRs 302 corresponding to a single transaction.
  • a corresponding journal entry BJNL 701 is made and is stored as a before journal entry in JVOL 106 .
  • a plurality of periodically occurring check points 301 can be provided along time line 304 .
  • the backup and recovery system using storage based journaling can restore the data of each write request.
  • an application may not be able to recover the data by using this method of restoring data, because the data of each write may occur at an arbitrary point during the execution of the application.
  • the recovery should be conducted at a meaningful point such as, for example, the end of a transaction. Such points can be set by the use of the check points 301 .
  • the user sets whether the overwrite method 805 is to be used in the MTFCJ 120 and sets the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1301 ).
  • An application sends a write request to write data in the DVOL 101 (Step 1302 ).
  • the controller 140 checks the capacity of journal pool (Step 1303 ). If the capacity of journal pool is less than the threshold 803 ( 804 ), then the controller 140 overwrites the oldest journal entry in the JVOL 106 (Step 1304 ). The controller 140 can find the oldest journal entry by using JH_SEQ 215 . Thereafter the operation of the controller proceeds to Step 1302 . If the capacity of journal pool is greater than or equal to the threshold 803 ( 804 ), then the controller 140 takes a journal entry (Step 1305 ).
  • the present invention provides a method and apparatus having various solutions for avoiding journal overflow in after and before journal methods of a backup and recovery system used with a storage system.
  • the after journal method solutions which are conducted when the amount of free space reaches a threshold, include periodically taking a new snapshot and deleting the oldest journal, periodically taking a new logical snapshot and deleting the oldest journal, stopping the taking of journal entries when the journal volume is full, and stopping the taking of journal entries when the journal volume is full and then switching to bitmap management.
  • the before journal method solution which is conducted when the amount of free space reaches a threshold, includes applying wrap-around overwriting to overwrite the oldest journal entry by the newest journal entry.

Abstract

A method and apparatus which provide solutions for avoiding journal overflow in after and before journal methods of a backup and recovery system used with a storage system. The after journal method solutions, which are conducted when the amount of free space reaches a threshold, include periodically taking a new snapshot and deleting the oldest journal, periodically taking a new logical snapshot and deleting the oldest journal, stopping the taking journal entries when the journal volume is full, and stopping the taking journal entries when the journal volume is full and then switching to bitmap management. The before journal method solution, which is conducted when the amount of free space reaches a threshold, includes applying wrap-around overwriting to overwrite the oldest journal entry by the newest journal entry.

Description

    CROSS-REFERENCES TO RELATED APPLICATIONS
  • This application is related to the following commonly owned and co-pending U.S. applications:
  • Application Ser. No. 10/608,391, filed Jun. 26, 2003 entitled “Method and Apparatus for Backup and Recovery System Using Storage Based Journaling,” by K. Yamagami; application Ser. No. 10/621,791, filed Jul. 16, 2003 entitled “Method and Apparatus for Data Recovery Using Storage Based Journaling,” by K. Yamagami; and application Ser. No. 10/627,507, filed Jul. 25, 2003 entitled “Method and Apparatus for Synchronizing Applications for Data Recovery Using Storage Based Journaling,” by K. Yamagami, the contents of each being incorporated herein by reference for all purposes.
  • BACKGROUND OF THE INVENTION
  • The present invention relates generally to a backup and recovery system for a storage system, more particularly the present invention relates to a backup and recovery system and method for a storage system that avoids journal overflow.
  • Several methods are conventionally used to prevent the loss of data. Typically, data is backed up in a periodic manner (e.g. once a day) by a system administrator. Many systems are commercially available which provide backup and recovery of data; e.g., Veritas NetBackup, Legato/Networker, and so on. Another technique is known as volume shadowing. This technique produces a mirror image of data onto a secondary storage system as it is being written to the primary storage system.
  • Journaling is a backup and restore technique commonly used in database systems. An image of the data to be backed up is taken. Then, as changes are made to the data, a journal of the changes is maintained. Recovery of data is accomplished by applying the journal to an appropriate image to recover data at any point in time. Typical database systems, such as Oracle, can perform journaling.
  • Except for database systems, however, there are no ways to recover data at any point in time. Even for database systems, applying a journal takes time since the procedure includes:
      • 1) Reading the journal data from storage (e.g., disk),
      • 2) Analyzing the journal to determine where in the journal the desired data can be found, and
      • 3) Applying the journal data to a suitable image of the data to reproduce the activities performed on the data, this usually involves accessing the image, and writing out data as the journal is applied.
  • Recovering data at any point in time addresses the following types of administrative requirements. For example, a typical request might be, “I deleted a file by mistake at around 10:00 am yesterday. I have to recover the file just before it was deleted.”
  • If the data is not in a database system, this kind of request cannot be conveniently, if at all, serviced. A need therefore exists for processing data in a manner that facilitates recovery of lost data. A need exists for being able to provide data processing that facilitates data recovery in user environments other than in a database application.
  • In a backup and recovery system using storage based journaling, the storage system must store a large number of journal entries from the processing of numerous write requests. Accordingly, the storage system requires a very large capacity in order to store the large number of journal entries. However, disks, tapes or any other such storage media have an upper limit in capacity. Thus, the storage system can not store a large number of journal entries if the capacity for storing journal entries decrease. Therefore, a need exists for a storage system that avoids journal overflow.
  • SUMMARY OF THE INVENTION
  • A storage system provides data storage services for users and their applications. The storage system performs additional data processing to provide for recovery of lost data, including performing snapshot operations and journaling. Snapshots and journal entries are stored separately from the production data volumes provided for the users. Older journal entries are cleared in order to make room for new journal entries. This involves updating a snapshot by applying one or more of the older journal entries to an appropriate snapshot. Subsequent recovery of lost data can be provided by accessing an appropriate snapshot and applying journal entries to the snapshot to reproduce the desired data state.
  • The present invention provides solutions for avoiding journal overflow in the after journal and before journal methods.
  • With respect to the after journal method the solutions for avoiding journal overflow according to the present invention include:
      • (a) Periodically taking a new snapshot and deleting the oldest journal,
      • (b) Periodically taking a new logical snapshot and deleting the oldest journal,
      • (c) Stop taking journal entries when the journal volume is full, and
      • (d) Stop taking journal entries when the journal volume is full and then switching to bitmap management.
  • With respect to the before journal method the solution for avoiding journal overflow according to the present invention includes:
      • (a) Apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry.
    BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing and a better understanding of the present invention will become apparent from the following detailed description of example embodiments and the claims when read in connection with the accompanying drawings, all forming a part of the disclosure of this invention. While the foregoing and following written and illustrated disclosure focuses on disclosing example embodiments of the invention, it should be clearly understood that the same is by way of illustration and example only and the invention is not limited thereto, wherein in the following brief description of the drawings:
  • FIG. 1 is a high level generalized block diagram illustrating a backup and recovery system according to the present invention;
  • FIG. 2 is a generalized diagram illustrating an embodiment of a data structure for storing journal entries in according to the present invention;
  • FIG. 3 is a generalized diagram illustrating a first solution to periodically taking a new snapshot and deleting the oldest journal of the after journal method according to the present invention;
  • FIG. 4 is a generalized diagram illustrating a second solution to periodically taking a new logical snapshot and deleting the oldest journal of the after journal method according to the present invention;
  • FIG. 5 is a generalized diagram illustrating a third solution to stop taking journal entries when the journal volume is full of the after journal method according to the present invention;
  • FIG. 6 is a generalized diagram illustrating a fourth solution to stop taking journal entries when the journal volume is full and then switching to bitmap management of the after journal method according to the present invention;
  • FIG. 7 is a generalized diagram illustrating a solution to apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry of the before journal method according to the present invention;
  • FIG. 8 is a generalized diagram illustrating an embodiment of a data structure of a management table of free capacity of the journal for storing information relating to the free capacity of the journal volume(s) according to the present invention;
  • FIG. 9 is a flowchart illustrating the steps of the first solution to periodically taking a new snapshot and deleting the oldest journal of the after journal method according to the present invention;
  • FIG. 10 is a flowchart illustrating the steps of the second solution to periodically taking a new logical snapshot and deleting the oldest journal of the after journal method according to the present invention;
  • FIG. 11 is a flowchart illustrating the steps of the third solution to stop taking journal entries when the journal volume is full of the after journal method according to the present invention;
  • FIG. 12 is a flowchart illustrating the steps of the fourth solution to stop taking journal entries when the journal volume is full and then switching to bitmap management of the after journal method according to the present invention;
  • FIG. 13 is a flowchart illustrating the steps of the solution to apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry of the before journal method according to the present invention;
  • FIG. 14 is a diagram illustrating the taking of a logical snapshot for plural write requests according to the present invention; and
  • FIG. 15 a and b are diagrams illustrating the Bitmap Management Table before and after taking a logical snapshot according to the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 is a high level generalized block diagram of an illustrative embodiment of a backup and recovery system according to the present invention. When the system is activated, a snapshot is taken for production data volumes (DVOL) 101. The term “snapshot” in this context conventionally refers to a physical data image of the data volume at a given point in time. Depending on system requirements, implementation, and so on, the snapshot can be of the entire data volume, or some portion or portions of the data volume(s). During the normal course of operation of the system in accordance with the present invention, a journal entry is made for every write operation issued from the host to the data volumes. As will be discussed below, by applying a series of journal entries to an appropriate snapshot, data can be recovered at any point in time.
  • The backup and recovery system shown in FIG. 1 includes at least one storage system 100. Though not shown, one of ordinary skill can appreciate that the storage system 100 includes suitable processor(s), memory, and control circuitry to perform I/O between a host 110 and its storage media (e.g., disks). The backup and recovery system also requires at least one host 110. A suitable communication path 130 is provided between the host and the storage system 100.
  • The host 110 typically will have one or more user applications (APP) 112 executing on it. These applications will read and/or write data to storage media contained in the data volumes 101 of storage system 100. Thus, applications 112 and the data volumes 101 represent the target resources to be protected. It can be appreciated that data used by the user applications can be stored in one or more data volumes.
  • In accordance with the present invention, a journal group (JNLG) 102 is defined. The data volumes 101 are organized into the journal group. In accordance with the present invention, a journal group is the smallest unit of data volumes where journaling of the write operations from the host 110 to the data volumes is guaranteed. The associated journal records the order of write operations from the host to the data volumes in proper sequence. The journal data produced by the journaling activity can be stored in one or more journal volumes (JVOL) 106.
  • The host 110 also includes a recovery manager (RM) 111. This component provides a high level coordination of the backup and recovery operations. Additional discussion about the recovery manager will be discussed below.
  • The storage system 100 provides a snapshot (SS) 105 of the data volumes comprising a journal group. For example, the snapshot 105 is representative of the data volumes 101 in the journal group 106 at the point in time that the snapshot was taken. Conventional methods are known for producing the snapshot image. One or more snapshot volumes (SVOL) 107 are provided in the storage system which contains the snapshot data. A snapshot can be contained in one or more snapshot volumes. Though the disclosed embodiment illustrates separate storage components for the journal data and the snapshot data, it can be appreciated that other implementations can provide a single storage component for storing the journal data and the snapshot data.
  • A management table (MT) 108 is provided to store the information relating to the journal group 102, the snapshot 105, and the journal volume(s) 106. A complete discussion of the details of the management table 108 and its use is provided in the related application Ser. Nos. 10/608,391, 10/621,791 and 10/627,507 identified above and as such the contents of each including the details of the management table 108 and its use are incorporated herein by reference.
  • A management table of free capacity of the journal (MTFCJ) 120 is provided to store information relating to the free capacity of the journal volume(s). The storage system 100 uses (monitors) this table to trigger various actions including, for example, taking and not taking journals and snapshots so as to avoid journal overflow.
  • As illustrated in FIG. 8 the management table of free capacity of the journal 120 includes a plurality of entries. These entries, for example, include:
  • Journal group name 801: This is a listing of the journal group names for each journal group (JNLG-A, JNLG-B and JNLG-C) 102. A user defines this name when the user makes a journal group.
  • Free capacity of journal pool 802: This is an indication of the amount of free capacity of journal pool that is available for use by the journal group(s). A journal overflow occurs if the free capacity becomes zero (empty).
  • Threshold of free capacity 803: This is an indication, with respect to each journal group, of the lowest amount of free capacity of the journal pool the storage system is allowed to reach. The storage system 100 according to the present invention, for example, conducts monitoring so as to detect if the free capacity decreases to a level less than the threshold. The setting of this threshold is basically a policy decision as determined by the user. The unit of measurement used to set this threshold can for example be Giga Bytes (GB), Mega Bytes (MB), etc.
  • Threshold rate of free capacity 804: This is an indication, with respect to each journal group, of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach. The storage system 100 according to the present invention, for example, conducts monitoring so as to detect if the free capacity available for use as a percentage of the journal pool decreases to be less than this threshold. The setting of this threshold is basically a policy decision as determined by the user. The unit of measurement used to set this threshold can for example be a percent (%).
  • Wrap-around 805: This is an indication, with respect to each journal group, whether the storage system is to overwrite the oldest journal entry by the newest journal entry. The setting of this threshold is basically a policy decision as determined by the user.
  • A controller component 140 is also provided which coordinates the journaling of write operations and snapshots of the data volumes, and the corresponding movement of data among the different storage components 101, 106, 107. It can be appreciated that the controller component is a logical representation of a physical implementation which may comprise one or more sub-components distributed within the storage system 100.
  • FIG. 2 shows the data used in an implementation of the journal. When a write request from the host 110 arrives at the storage system 100, a journal is generated in response. The journal comprises a Journal Header 219 and Journal Data 225. The Journal Header 219 contains information about its corresponding Journal Data 225. The Journal Data 225 comprises the data (write data) that is the subject of the write operation. This kind of journal is also referred to as an “AFTER journal.”
  • The Journal Header 219 comprises an offset number (JH_OFS) 211. The offset number identifies a particular data volume 101 in the journal group 102. In this particular implementation, the data volumes are ordered as the oth data volume, the 1st data volume, the 2nd data volume and so on. The offset numbers might be 0, 1, 2, etc.
  • A starting address in the data volume (identified by the offset number 211) to which the write data is to be written is stored to a field in the Journal Header 219 to contain an address (JH_ADR) 212. For example, the address can be represented as a block number (LBA, Logical Block Address). A field in the Journal Header 219 stores a data length (JH_LEN) 213, which represents the data length of the write data. Typically it is represented as a number of blocks.
  • A field in the Journal Header 219 stores the write time (JH_TIME) 214, which represents the time when the write request arrives at the storage system 100. The write time can include the calendar date, hours, minutes, seconds and even milliseconds. This time can be provided by the disk controller 140 or by the host 110. For example, in a mainframe computing environment, two or more mainframe hosts share a timer and can provide the time when a write command is issued.
  • A sequence number field (JH_SEQ) 215 contains a sequence number which is assigned to each write request. The sequence number is stored in a field in the Journal Header 219. Every sequence number within a given journal group 102 is unique. The sequence number is assigned to a journal entry when it is created.
  • A journal volume identifier field (JH_JVOL) 216 is also stored in the Journal Header 219. The volume identifier identifies the journal volume 106 associated with the Journal Data 225. The identifier is indicative of the journal volume containing the Journal Data. It is noted that the Journal Data can be stored in a journal volume that is different from the journal volume which contains the Journal Header.
  • A journal data address field (JH_JADR) 217 stored in the Journal Header 219 contains the beginning address of the Journal Data 225 in the associated journal volume 106 that contains the Journal Data.
  • A journal type field (JH_TYPE) 218 stored in the Journal Header 219 indicates the journal entry as being an after journal type or a before journal type.
  • FIG. 2 shows that the journal volume 106 comprises two data areas: a Journal Header Area 210 and a Journal Data Area 220. The Journal Header Area 210 contains only Journal Headers 219, and Journal Data Area 220 contains only Journal Data 225. The Journal Header is a fixed size data structure. A Journal Header is allocated sequentially from the beginning of the Journal Header Area. This sequential organization corresponds to the chronological order of the journal entries. As will be discussed, data is provided that points to the first journal entry in the list, which represents the “oldest” journal entry. It is typically necessary to find the Journal Header 219 for a given sequence number (as stored in the sequence number field 215) or for a given write time (as stored in the time field 214).
  • As per the above the journal type field (JH_TYPE) 218 contains a journal type indicator which identifies the type of journal entry. In accordance with the present invention, two types of journal entries are kept: (1) an AFTER journal and (2) a BEFORE journal. An AFTER journal entry contains the data that is contained in the write operation for which a journal entry is made. A BEFORE journal entry contains the original data of the area in storage that is the target of a write operation. A BEFORE journal entry therefore represents the contents “before” the write operation is performed.
  • Journal Header 219 and Journal Data 225 are contained in chronological order in their respective areas in the journal volume 106. Thus, the order in which the Journal Header and the Journal Data are stored in the journal volume is the same order as the assigned sequence number. As will be discussed below, an aspect of the present invention is that the journal information 219, 225 wraps within their respective areas 210, 220.
  • As per the above in a backup and recovery system using storage based journaling, the storage system must store a large number of journal entries from the processing of numerous write requests. Accordingly, the storage system requires a very large capacity in order to store the large number of journal entries. However, disks, tapes or any other such storage media have an upper limit in capacity. Thus, the storage system can not store a large number of journal entries if the capacity for storing journal entries decrease.
  • The present invention solves the above noted problem by providing solutions for avoiding journal overflow in the after journal and before journal methods.
  • With respect to the after journal method the solutions for avoiding journal overflow according to the present invention include:
      • (a) Periodically taking a new snapshot and deleting the oldest journal (FIGS. 3 and 9),
      • (b) Periodically taking a new logical snapshot and deleting the oldest journal (FIGS. 4 and 10),
      • (c) Stop taking journal entries when the journal volume is full (FIGS. 5 and 11), and
      • (d) Stop taking journal entries when the journal volume is full and then switching to bitmap management (FIGS. 6 and 12).
  • With respect to the before journal method the solution for avoiding journal overflow according to the present invention includes:
      • (a) Apply wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry (FIGS. 7 and 13).
  • A descriptions of the above noted solutions are provided below. However, it should be noted that the present invention is not limited to the embodiments described herein, but could extend to other embodiments as would be known or as would become known to those skilled in the art.
  • After Journal Method
  • An after journal entry contains data that is contained in the write operation for which a journal entry is made. Thus, the after journal entry keeps the changed data. Therefore, the storage system needs a basic snapshot to which the after journal entries are to be applied in order to restore the data. If the storage system does not have a basic snapshot to which the after journal entries are applied the storage system can not restore the data.
  • 1. First Solution
  • The first solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes periodically taking a new snapshot and deleting the oldest journal as illustrated in FIGS. 3 and 9.
  • As per FIG. 3 the present invention provides a data volume DVOL 101 which corresponds to an application. The application when executed, for example, sends write requests (WR) 303 to the DVOL 101 along the time line 304 so as to write data therein. The WRs could for example be formed into sets of WRs 302, each set of WRs 302 corresponding to a single transaction. When each WR 303 is received by the DVOL 101 a corresponding journal entry JNL 305 is made in the volume so as to store an after journal entry in JVOL 106. At each of a plurality of periodically occurring Check points 301 along time line 304 a Snapshot 107 a, 107 b of the DVOL 106 is taken. A snapshot 107 is stored on one or more SVOLs and represents a point in time copy of the DVOL 106.
  • The backup and recovery system using storage based journaling can restore the data of each write request. However, an application may not be able to recover the data by using this method of restoring data, because the data of each write may occur at an arbitrary point during the execution of the application. Generally, in order to properly restore data for applications, the recovery should be conducted at a meaningful point such as, for example, the end of a transaction. Such points can be set by the use of check points 301.
  • As per the flowchart of the present invention as illustrated in FIG. 9, this method requires a trigger to operate in order to take a new snapshot. As per the flowchart of FIG. 9, at initialization a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 901). The controller 140 takes a snapshot 107 a (Step 907). An application sends a write request to write data in the DVOL 101 (Step 902). The controller 140 checks the capacity of journal pool (Step 903). If the capacity of journal pool is less than the threshold 803 (804), then the controller 140 takes a new snapshot 107 b (Step 904) and deletes the old journal entries (Step 905). Thereafter, a new journal entry is taken (Step 906). If the capacity of journal pool is greater or equal to the threshold 803 (804), then the controller 140 takes a journal entry (Step 906). If desired a user can take a new snapshot manually.
  • The above described first solution of the after journal method has no performance impact due to journal overflow and does not need to update a snapshot by a journal entry. This solution can store a large number of journal entries due to the frequent taking of snapshots.
  • 2. Second Solution
  • The second solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes periodically taking a new logical snapshot and deleting the oldest journal as illustrated in FIGS. 4 and 10.
  • As per FIG. 4 the present invention provides features similar to those illustrated in FIG. 3 with the exception of a logical snapshot 401 being taken at the check points 301. Thus, according to the present invention the controller 140 periodically takes a logical snapshot 401 instead of a snapshot 107.
  • A logical snapshot 401 is a type of snapshot that represents the changes to the data as represented by, for example, a bitmap. Accordingly, a logical snapshot is a virtual entity since no physical copy of the volume exists. Thus, according to the present invention before taking a journal entry, the controller 140 makes a difference bitmap (not shown) to be used for a logical snapshot 401. In the bitmap each bit shows the update status of a data area (5 12 KB, 1 024 KB etc) of DVOL 101. The controller 140 has the latest journal information (JH_SEQ 215) corresponding to the updated bit. If the controller 140 takes a logical snapshot 401, then the controller 104 deletes the oldest journal entry with the exception of the newest journal entry corresponding to updated bit. Therefore, the logical snapshot represents the latest journal entries corresponding to an updated bit.
  • An explanation of a logical snapshot is illustrated in FIG. 14. As per FIG. 14 the DVOL 101 is divided into a plurality of data areas 150 each being of a pre-set size (512 KB, 1024 KB etc). A differential bitmap (BMP) 151 is provided for each DVOL 101, wherein each bit of the differential BMP corresponds to one of the data areas so as to indicate whether the corresponding data area has changed or not. A “1” indicates a change, whereas a “0” indicates no change. A BMP Management Table 153 is provided indicating relations among BMP 151, journal entries and DVOL 101. FIG. 14 illustrates on the left side of the figure the status of the data areas 150 and the bits of the BMP 151 upon the occurrence of write requests 1, 2, and 3. FIG. 14 also illustrates on the right side of the figure the status of the data areas 150 and the bits of the BMP 151 a upon the occurrence of write request 4 after conducting write requests 1, 2, and 3. Thus, according to the resent invention the right side of FIG. 14 illustrates that the storage system took a logical snapshot when write request 4 reached the DVOL 101, thereby forming BMP Management Table 153.
  • FIGS. 15 a and 15 b illustrate the status of the BMP Management Table before the logical snapshot is taken and after the logical snapshot is taken, respectively. The BMP Management Table includes a plurality of entries each having the fields seq# 1401 indicating a sequential number of BMP Management Table entry based on JH_TIME 214 or JH_SEQ 215 also forming part of each entry, DVOL# 1402 indicating a unique DVOL number assigned to DVOL 101 in Journal Group 102, 1403 bitmap# indicating parameters A-B, where A is the version/generation of the logical snapshot and B is data area number, 1404 indicating a version/generation of the logical snapshot, and 1405 indicating a time logical snapshot was taken.
  • According to the present invention BMP Management Table 153 corresponds to FIG. 15 a, whereas BMP Management Table 154 corresponds to FIG. 15 b. Thu, as described above FIG. 15 a is a BMP Management Table before taking a logical snapshot, whereas FIG. 15 b is a BMP Management Table after taking a logical snapshot.
  • A logical snapshot of any version/generation does not reference Journal 1 in FIG. 15 b since the data area corresponding to Journal 1 was written by write request 4. Therefore storage system can delete Journal 1 when the storage system takes a logical snapshot. Accordingly, the storage system can delete any non-reference journals.
  • Another way of describing the above is, the logical snapshot means a group of journals which have the same generation and max sequence number as per the BMP Management Table 153 for each of the data areas 150. The storage system 100 can delete journals which do not have a max sequence number of the BMP Management Table 153 for each of the data areas 150 at the time of generation of the logical snapshot. Journals which do not have max sequence number of BMP Management Table 153 for each of the data areas means non-reference journals.
  • As per the flowchart of the present invention as illustrated in FIG. 10, this method requires a trigger to operate in order to take a logical snapshot. As per the flowchart of FIG. 10, at initialization a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1001). The controller 140 takes a snapshot 107 or takes a bit map for a logical snapshot 401 (Step 1007). An application sends a write request to write data in the DVOL 101 (Step 1002). The controller 140 checks the capacity of journal pool (Step 1003). If the capacity of journal pool is less than the threshold 803 (804), then the controller 140 takes a snapshot 107 or takes a bitmap for a logical snapshot 401 (Step 1004) and deletes the old journal entry (Step 1005). Thereafter, a new journal entry is taken (Step 1006). If the capacity of the journal pool is greater than or equal to the threshold 803 (804), then the controller 140 takes a journal entry (Step 1006). If desired a user can take a new snapshot manually.
  • 3. Third Solution
  • The third solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes stop taking journal entries when the journal volume is full as illustrated in FIGS. 5 and 11.
  • As per FIG. 5 the present invention provides features similar to those illustrated in FIGS. 3 and 4 with the exception that a snapshot 107 will be taken and journal entries 305 made until the JVOL 106 becomes full. When the JVOL 106 becomes full the present invention stops taking journal entries 305 before the JVOL 106 overflows.
  • As per the flowchart of the present invention as illustrated in FIG. 11, this method requires a trigger to stop taking journal entries 305. Thus, as per the flowchart of FIG. 11 at, for example, initialization a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1101). The controller 140 takes a snapshot (Step 1006). An application sends a write request to write data in the DVOL 101 (Step 1102). The controller 140 checks the capacity of journal pool (Step 1103). If the capacity of journal pool is less than the threshold 803, then the controller 140 stops taking journal entries (Step 1104). If the capacity of journal pool is greater than or equal to the threshold 803 (804), then the controller 140 takes a journal entry (Step 1105). If desired a user can stop taking journal entries manually.
  • 4. Fourth Solution
  • The fourth solution of the present invention provided with respect to the after journal method for avoiding journal overflow includes stop taking journal entries when the journal volume is full and then switching to bitmap management as illustrated in FIGS. 6 and 12.
  • As per FIG. 6 the present invention provides features similar to those illustrated in FIGS. 3, 4 and 5 with the exception that a snapshot 107 will be taken and journal entries 305 are made until the JVOL 106 becomes full. When the JVOL 106 becomes full the present invention stops taking journal entries 305 before the JVOL 106 overflows and then switches to bitmap management.
  • As per the flowchart of the present invention as illustrated in FIG. 12, this method requires a trigger to stop taking journal entries 305. Thus, as per the flowchart of FIG. 12 at, for example, initialization a user defines the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1201). The controller 140 takes a snapshot 107 (Step 1209). An application sends a write request to write data in the DVOL 101 (Step 1202). The controller 140 checks the capacity of journal pool (Step 1203). If the capacity of the journal pool is less than the threshold 803 (804), then the controller 140 stops taking journal entries (Step 1204). Thereafter, the controller switches to bitmap management which tracks a difference using a bitmap 601 (Step 1205). If the user adds capacity to the journal pool (Step 1206) such as by adding disks, then the controller 140 can take a logical snapshot 401 and take a journal for a logical snapshot 401 (Step 1207). As known the logical snap shot requires less storage capacity than a snapshot. The operation of the controller 140 then returns to Step 1202. If the capacity of journal pool is greater than or equal to the threshold 803 (804), then the controller 140 takes a journal entry (Step 1208). If desired a user can stop taking journal entries manually.
  • Before Journal Method
  • A before journal entry contains the original data of the area in storage that is the target of a write operation. A before journal entry therefore represents the contents “before” the write operation is performed. Therefore, the storage system does not need a basic snapshot to which the after journal entries are to be applied in order to restore the data. If the storage system does not have the DVOL 101 to which the before journal entries are applied the storage system can not restore the data.
  • 1. Solution
  • The solution of the present invention provided with respect to the before journal method for avoiding journal overflow includes applying wrap-around overwriting so as to overwrite the oldest journal entry by the newest journal entry as illustrated in FIGS. 7 and 13.
  • As per FIG. 7 the present invention provides a data volume DVOL 101 which corresponds to an application and a journal volume 106 which stores before journal entries. The application when executed, for example, sends write requests (WR) 303 to the DVOL 101 along the time line 304 so as to write data therein. The WRs could for example be formed into sets of WRs 302, each set of WRs 302 corresponding to a single transaction. When each WR 303 is received by the DVOL 101 a corresponding journal entry BJNL 701 is made and is stored as a before journal entry in JVOL 106. A plurality of periodically occurring check points 301 can be provided along time line 304.
  • The backup and recovery system using storage based journaling can restore the data of each write request. However, an application may not be able to recover the data by using this method of restoring data, because the data of each write may occur at an arbitrary point during the execution of the application. Generally, in order to properly restore data for applications, the recovery should be conducted at a meaningful point such as, for example, the end of a transaction. Such points can be set by the use of the check points 301. As per the flowchart of the present invention as illustrated in FIG. 13, the user sets whether the overwrite method 805 is to be used in the MTFCJ 120 and sets the threshold of free capacity 803 and/or the threshold rate of free capacity 804 in the MTFCJ 120 (Step 1301). An application sends a write request to write data in the DVOL 101 (Step 1302). The controller 140 checks the capacity of journal pool (Step 1303). If the capacity of journal pool is less than the threshold 803 (804), then the controller 140 overwrites the oldest journal entry in the JVOL 106 (Step 1304). The controller 140 can find the oldest journal entry by using JH_SEQ 215. Thereafter the operation of the controller proceeds to Step 1302. If the capacity of journal pool is greater than or equal to the threshold 803 (804), then the controller 140 takes a journal entry (Step 1305).
  • As per the above the present invention provides a method and apparatus having various solutions for avoiding journal overflow in after and before journal methods of a backup and recovery system used with a storage system. The after journal method solutions, which are conducted when the amount of free space reaches a threshold, include periodically taking a new snapshot and deleting the oldest journal, periodically taking a new logical snapshot and deleting the oldest journal, stopping the taking of journal entries when the journal volume is full, and stopping the taking of journal entries when the journal volume is full and then switching to bitmap management. The before journal method solution, which is conducted when the amount of free space reaches a threshold, includes applying wrap-around overwriting to overwrite the oldest journal entry by the newest journal entry.
  • While the invention has been described in terms of its preferred embodiments, it should be understood that numerous modifications may be made thereto without departing from the spirit and scope of the present invention. It is intended that all such modifications fall within the scope of the appended claims.

Claims (23)

1. A backup and recovery method for a storage system that avoids journal overflow comprising:
producing at least a first snapshot of a data volume which is 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 volume, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal volume; and
when the free space falls below a threshold value, taking a new snapshot of the data volume and deleting the oldest journal entry, thereby avoiding journal overflow.
2. A backup and recovery method according to claim 1, wherein said threshold value is set in a management table which includes a plurality of entries each containing information of respective journal volumes.
3. A backup and recovery method according to claim 2, wherein one of said entries of said management table includes an indication of the size of a journal pool which includes said journal volume.
4. A backup and recovery method according to claim 3, wherein said threshold value is an indication of the lowest amount of free capacity of the journal pool the storage system is allowed to reach.
5. A backup and recovery method according to claim 3, wherein said threshold value is an indication of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach.
6. A backup and recovery method for a storage system that avoids journal overflow comprising:
producing a snapshot of a data volume which is 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 volume, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal volume; and
when the free space falls below a threshold value, taking a logical snapshot of the data volume and deleting the oldest journal entry, thereby avoiding journal overflow.
7. A backup and recovery method according to claim 6, wherein said threshold value is set in a management table which includes a plurality of entries each containing information of respective journal volumes.
8. A backup and recovery method according to claim 7, wherein one of said entries of said management table includes an indication of the size of a journal pool which includes said journal volume.
9. A backup and recovery method according to claim 8, wherein said threshold value is an indication of the lowest amount of free capacity of the journal pool the storage system is allowed to reach.
10. A backup and recovery method according to claim 8, wherein said threshold value is an indication of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach.
11. A backup and recovery method according to claim 6, wherein said logical snapshot includes changes to the data stored on the data volume as represented by a bitmap,
wherein each bit of the bitmap indicates whether a change has been made to a corresponding area of the data volume.
12. A backup and recovery method for a storage system that avoids journal overflow comprising:
producing at least a snapshot of a data volume which is 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 volume, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal volume; and
when the free space falls below a threshold value, stopping the storing of journal entries, switching to bitmap management and taking a logical snapshot of the data volume, thereby avoiding journal overflow.
13. A backup and recovery method according to claim 12, wherein when the storing of journal entries have been stopped and control is switched to bitmap management, said method further comprising:
adding capacity to said journal volume.
14. A backup and recovery method according to claim 12, wherein said logical snapshot includes changes to the data stored on the data volume as represented by a bitmap,
wherein each bit of the bitmap indicates whether a change has been made to a corresponding area of the data volume.
15. A backup and recovery method according to claim 12, wherein said threshold value is set in a management table which includes a plurality of entries each containing information of respective journal volumes.
16. A backup and recovery method according to claim 15, wherein one of said entries of said management table includes an indication of the size of a journal pool which includes said journal volume.
17. A backup and recovery method according to claim 16, wherein said threshold value is an indication of the lowest amount of free capacity of the journal pool the storage system is allowed to reach.
18. A backup and recovery method according to claim 17, wherein said threshold value is an indication of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach.
19. A backup and recovery method for a storage system that avoids journal overflow comprising:
storing write data in a data volume which is 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 volume, thereby accumulating a list of journal entries;
monitoring an amount of free space on the journal volume; and
when the free space falls below a threshold value, overwriting the oldest journal entry stored on the journal volume, thereby avoiding journal overflow.
20. A backup and recovery method according to claim 19, wherein said threshold value is set in a management table which includes a plurality of entries each containing information of respective journal volumes.
21. A backup and recovery method according to claim 20, wherein one of said entries of said management table includes an indication of the size of a journal pool which includes said journal volume.
22. A backup and recovery method according to claim 21, wherein said threshold value is an indication of the lowest amount of free capacity of the journal pool the storage system is allowed to reach.
23. A backup and recovery method according to claim 21, wherein said threshold value is an indication of the lowest percentage measure of the amount of free capacity to the total amount of capacity of the journal pool the storage system is allowed to reach.
US10/823,619 2004-04-14 2004-04-14 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling Expired - Fee Related US7167880B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/823,619 US7167880B2 (en) 2004-04-14 2004-04-14 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling
US11/640,933 US7574462B2 (en) 2004-04-14 2006-12-19 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/823,619 US7167880B2 (en) 2004-04-14 2004-04-14 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/640,933 Continuation US7574462B2 (en) 2004-04-14 2006-12-19 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling

Publications (2)

Publication Number Publication Date
US20050235016A1 true US20050235016A1 (en) 2005-10-20
US7167880B2 US7167880B2 (en) 2007-01-23

Family

ID=35097601

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/823,619 Expired - Fee Related US7167880B2 (en) 2004-04-14 2004-04-14 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling
US11/640,933 Expired - Fee Related US7574462B2 (en) 2004-04-14 2006-12-19 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/640,933 Expired - Fee Related US7574462B2 (en) 2004-04-14 2006-12-19 Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling

Country Status (1)

Country Link
US (2) US7167880B2 (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112149A1 (en) * 2004-11-19 2006-05-25 Nec Corporation Storage system, method for replication thereof and program
US20060224636A1 (en) * 2005-04-05 2006-10-05 Microsoft Corporation Page recovery using volume snapshots and logs
US20070112893A1 (en) * 2005-11-15 2007-05-17 Wataru Okada Computer system, management computer, storage system, and backup management method
EP1788483A2 (en) 2005-11-16 2007-05-23 Hitachi, Ltd. Data recovery method for computer system
EP1814032A2 (en) * 2006-01-31 2007-08-01 Hitachi, Ltd. Recovery for storage system
EP1840720A2 (en) * 2006-03-28 2007-10-03 Hitachi, Ltd. Storage system and power source control method thereof, storage apparatus and data procesing method
US20070271429A1 (en) * 2006-05-18 2007-11-22 Hitachi, Ltd. Storage System and method of producing recovery volume
US20070288490A1 (en) * 2006-06-12 2007-12-13 Tom Benjamin Longshaw Method, system, and database archive for enhancing database archiving
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability
EP1898309A2 (en) * 2006-09-06 2008-03-12 Hitachi, Ltd. Storage subsystem and back-up/recovery method
US20080126443A1 (en) * 2006-08-15 2008-05-29 Cochran Robert A Method and system for efficient journal-based resynchronization
US20080162840A1 (en) * 2007-01-03 2008-07-03 Oliver Augenstein Methods and infrastructure for performing repetitive data protection and a corresponding restore of data
US7433898B1 (en) * 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling
EP2015185A1 (en) * 2007-06-11 2009-01-14 Hitachi Ltd. Information system and information storage method of information system
US20090125692A1 (en) * 2007-10-24 2009-05-14 Masayuki Yamamoto Backup system and method
JP2009146389A (en) * 2007-11-22 2009-07-02 Hitachi Ltd Backup system and method
US20100023797A1 (en) * 2008-07-25 2010-01-28 Rajeev Atluri Sequencing technique to account for a clock error in a backup system
US20100088280A1 (en) * 2008-09-25 2010-04-08 Hitachi, Ltd. Computer system for hierarchically managing a journal and method therefor
US7774313B1 (en) * 2005-11-29 2010-08-10 Symantec Corporation Policy enforcement in continuous data protection backup systems
CN102096613A (en) * 2010-12-30 2011-06-15 上海爱数软件有限公司 Method and device for generating snapshot
US20120131290A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Backup Memory Administration
US20140095435A1 (en) * 2012-09-28 2014-04-03 Vmware,Inc. Automated document replication in a distributed computing system
US20140172803A1 (en) * 2012-12-19 2014-06-19 Microsoft Corporation Main-memory database checkpointing
US8788459B2 (en) 2012-05-15 2014-07-22 Splunk Inc. Clustering for high availability and disaster recovery
US9378096B1 (en) * 2012-06-30 2016-06-28 Emc Corporation System and method for cache management
EP3098715A1 (en) * 2015-05-21 2016-11-30 Zerto Ltd. System and method for object-based continuous data protection
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
EP3159796A1 (en) * 2015-09-21 2017-04-26 Zerto Ltd. System and method for generating backups of a protected system from a recovery system
US9665307B1 (en) * 2013-12-19 2017-05-30 EMC IP Holding Company LLC Incremental continuous data protection
US20180032555A1 (en) * 2016-07-28 2018-02-01 Bank Of America Corporation Object database system including an object-specific historical attribute-change information system
CN107862223A (en) * 2017-11-28 2018-03-30 长沙深蓝未来智能技术有限公司 Repeatedly covering prevents the method that electronic information storage carrier data is recovered totally
US9984128B2 (en) 2012-05-15 2018-05-29 Splunk Inc. Managing site-based search configuration data
US10255137B1 (en) * 2013-12-16 2019-04-09 EMC IP Holding Company LLC Point-in-time recovery on deduplicated storage
US10387448B2 (en) 2012-05-15 2019-08-20 Splunk Inc. Replication of summary data in a clustered computing environment
WO2021055035A1 (en) * 2019-09-16 2021-03-25 Microsoft Technology Licensing, Llc Incrementally updating recovery map data for a memory system
US11003687B2 (en) 2012-05-15 2021-05-11 Splunk, Inc. Executing data searches using generation identifiers
US11144397B2 (en) 2014-09-12 2021-10-12 Microsoft Technology Licensing, Llc Data recovery using bitmap data structure
US11385969B2 (en) 2009-03-31 2022-07-12 Amazon Technologies, Inc. Cloning and recovery of data volumes
US20220283988A1 (en) * 2015-09-11 2022-09-08 Cohesity, Inc. Distributed write journals that support fast snapshotting for a distributed file system
US20220317898A1 (en) * 2021-04-03 2022-10-06 EMC IP Holding Company LLC Managing Application Storage Resource Allocations Based on Application Specific Storage Policies
US11579981B2 (en) 2018-08-10 2023-02-14 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11755415B2 (en) 2014-05-09 2023-09-12 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US11860741B2 (en) 2017-11-22 2024-01-02 Amazon Technologies, Inc. Continuous data protection

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412685B2 (en) * 2004-07-26 2013-04-02 Riverbed Technology, Inc. Method and system for managing data
JP4583150B2 (en) * 2004-12-06 2010-11-17 株式会社日立製作所 Storage system and snapshot data creation method in storage system
US8306952B2 (en) * 2005-03-29 2012-11-06 Sap Ag Technique for managing messages
JP4796854B2 (en) * 2006-01-30 2011-10-19 株式会社日立製作所 Measures against data overflow of intermediate volume in differential remote copy
JP2008015768A (en) * 2006-07-05 2008-01-24 Hitachi Ltd Storage system and data management method using the same
US20080228828A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Management of collections within a data storage system
US9141670B2 (en) * 2007-08-27 2015-09-22 Teradata Us, Inc. Methods and systems for hardware acceleration of streamed database operations and queries based on multiple hardware accelerators
US8121981B2 (en) * 2008-06-19 2012-02-21 Microsoft Corporation Database snapshot management
US8103911B2 (en) * 2008-07-25 2012-01-24 International Business Machines Corporation Method and system for disaster recovery based on journal events pruning in a computing environment
JP5065347B2 (en) * 2009-07-23 2012-10-31 ブラザー工業株式会社 Data processing system, program and printing device
US8539184B2 (en) * 2009-09-23 2013-09-17 International Business Machines Corporation On demand storage group management with recapture
US9946606B1 (en) * 2010-11-18 2018-04-17 Datacore Software Corporation Stream architecture for data representation
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US9229818B2 (en) * 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US9098439B2 (en) * 2012-01-05 2015-08-04 International Business Machines Corporation Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs
US10003636B1 (en) * 2013-03-15 2018-06-19 Datacore Software Corporation Multi-node data store management
US10108503B2 (en) 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
US11169707B2 (en) 2016-01-22 2021-11-09 Netapp, Inc. Garbage collection pacing in a storage system
US10838630B2 (en) 2016-04-18 2020-11-17 Netapp, Inc. Write-ahead log maintenance and recovery
JP6708929B2 (en) * 2016-08-15 2020-06-10 富士通株式会社 Storage control device, storage system, and storage control program
US10839852B2 (en) 2016-09-21 2020-11-17 International Business Machines Corporation Log snapshot control on an automated data storage library
US10782890B2 (en) * 2016-09-21 2020-09-22 International Business Machines Corporation Log snapshot procedure control on an automated data storage library
US10620851B1 (en) * 2017-10-06 2020-04-14 EMC IP Holding Company LLC Dynamic memory buffering using containers
US10853314B1 (en) * 2017-10-06 2020-12-01 EMC IP Holding Company LLC Overlay snaps
US11029855B1 (en) 2019-10-01 2021-06-08 Datacore Software Corporation Containerized storage stream microservice

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4823261A (en) * 1986-11-24 1989-04-18 International Business Machines Corp. Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US5857207A (en) * 1993-05-12 1999-01-05 Apple Computer, Inc. Storage manager for computer system
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6128630A (en) * 1997-12-18 2000-10-03 International Business Machines Corporation Journal space release for log-structured storage systems
US6189016B1 (en) * 1998-06-12 2001-02-13 Microsoft Corporation Journaling ordered changes in a storage volume
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6415372B1 (en) * 1999-09-15 2002-07-02 Emc Coropration Rolling back storage subsystem reconfigurations
US20020133491A1 (en) * 2000-10-26 2002-09-19 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US20040225689A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Autonomic logging support
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US6898688B2 (en) * 2001-12-28 2005-05-24 Storage Technology Corporation Data management appliance
US6981114B1 (en) * 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8915875D0 (en) 1989-07-11 1989-08-31 Intelligence Quotient United K A method of operating a data processing system
JPH03103941A (en) 1989-09-18 1991-04-30 Nec Corp Automatic commitment control system
JPH052517A (en) 1991-06-26 1993-01-08 Nec Corp Data base journal control system
US5404508A (en) 1992-12-03 1995-04-04 Unisys Corporation Data base backup and recovery system and method
CA2221216A1 (en) 1996-11-15 1998-05-15 Mark Squibb System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map
JPH11353215A (en) 1998-06-11 1999-12-24 Nec Corp Journal-after-update collecting process system
JP2000155708A (en) 1998-11-24 2000-06-06 Nec Corp Automatic monitoring method for use state of journal file
US7111004B2 (en) * 2003-06-18 2006-09-19 International Business Machines Corporation Method, system, and program for mirroring data between sites

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4823261A (en) * 1986-11-24 1989-04-18 International Business Machines Corp. Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US5857207A (en) * 1993-05-12 1999-01-05 Apple Computer, Inc. Storage manager for computer system
US6289356B1 (en) * 1993-06-03 2001-09-11 Network Appliance, Inc. Write anywhere file-system layout
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US6128630A (en) * 1997-12-18 2000-10-03 International Business Machines Corporation Journal space release for log-structured storage systems
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6442706B1 (en) * 1998-03-30 2002-08-27 Legato Systems, Inc. Resource allocation throttle for remote data mirroring system
US6189016B1 (en) * 1998-06-12 2001-02-13 Microsoft Corporation Journaling ordered changes in a storage volume
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6415372B1 (en) * 1999-09-15 2002-07-02 Emc Coropration Rolling back storage subsystem reconfigurations
US20020133491A1 (en) * 2000-10-26 2002-09-19 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US6898688B2 (en) * 2001-12-28 2005-05-24 Storage Technology Corporation Data management appliance
US6981114B1 (en) * 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
US20040225689A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Autonomic logging support

Cited By (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433898B1 (en) * 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling
US9165157B2 (en) 2004-06-01 2015-10-20 Citrix Systems, Inc. Methods and apparatus facilitating access to storage among multiple computers
US20060112149A1 (en) * 2004-11-19 2006-05-25 Nec Corporation Storage system, method for replication thereof and program
US7698308B2 (en) * 2004-11-19 2010-04-13 Nec Corporation Storage system and method for data replication with reduced redundant data transfer
US20060224636A1 (en) * 2005-04-05 2006-10-05 Microsoft Corporation Page recovery using volume snapshots and logs
US7814057B2 (en) * 2005-04-05 2010-10-12 Microsoft Corporation Page recovery using volume snapshots and logs
US20080307021A1 (en) * 2005-11-15 2008-12-11 Wataru Okada Computer system, management computer, storage system, and backup management method
US7409414B2 (en) * 2005-11-15 2008-08-05 Hitachi, Ltd. Computer system, management computer, storage system, and backup management method
US7693885B2 (en) 2005-11-15 2010-04-06 Hitachi, Ltd. Computer system, management computer, storage system, and backup management method
US20070112893A1 (en) * 2005-11-15 2007-05-17 Wataru Okada Computer system, management computer, storage system, and backup management method
EP1788483A2 (en) 2005-11-16 2007-05-23 Hitachi, Ltd. Data recovery method for computer system
US20070174694A1 (en) * 2005-11-16 2007-07-26 Hitachi, Ltd. Data recovery method for computer system
EP1788483A3 (en) * 2005-11-16 2008-04-09 Hitachi, Ltd. Data recovery method for computer system
US7506117B2 (en) 2005-11-16 2009-03-17 Hitachi, Ltd. Data recovery method for computer system
US7774313B1 (en) * 2005-11-29 2010-08-10 Symantec Corporation Policy enforcement in continuous data protection backup systems
EP1814032A2 (en) * 2006-01-31 2007-08-01 Hitachi, Ltd. Recovery for storage system
EP1814032A3 (en) * 2006-01-31 2008-07-02 Hitachi, Ltd. Recovery for storage system
EP1840720A3 (en) * 2006-03-28 2008-12-10 Hitachi, Ltd. Storage system and power source control method thereof, storage apparatus and data procesing method
EP1840720A2 (en) * 2006-03-28 2007-10-03 Hitachi, Ltd. Storage system and power source control method thereof, storage apparatus and data procesing method
EP1860559A3 (en) * 2006-05-18 2008-01-23 Hitachi, Ltd. Storage system and method of producing recovery volume
US7840766B2 (en) 2006-05-18 2010-11-23 Hitachi, Ltd. Storage system and method of producing recovery volume
US8131962B2 (en) 2006-05-18 2012-03-06 Hitachi, Ltd. Storage system and method of producing recovery volume
EP1860559A2 (en) 2006-05-18 2007-11-28 Hitachi, Ltd. Storage system and method of producing recovery volume
US20070271429A1 (en) * 2006-05-18 2007-11-22 Hitachi, Ltd. Storage System and method of producing recovery volume
EP2131284A1 (en) 2006-05-18 2009-12-09 Hitachi, Ltd. Storage system and method of producing recovery volume
US20110055506A1 (en) * 2006-05-18 2011-03-03 Hitachi, Ltd. Storage System and Method of Producing Recovery Volume
US20070288490A1 (en) * 2006-06-12 2007-12-13 Tom Benjamin Longshaw Method, system, and database archive for enhancing database archiving
US8271452B2 (en) * 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability
US7546485B2 (en) * 2006-08-15 2009-06-09 Hewlett-Packard Development Company, L.P. Method and system for efficient journal-based resynchronization
US20080126443A1 (en) * 2006-08-15 2008-05-29 Cochran Robert A Method and system for efficient journal-based resynchronization
EP1898309A2 (en) * 2006-09-06 2008-03-12 Hitachi, Ltd. Storage subsystem and back-up/recovery method
EP1898309A3 (en) * 2006-09-06 2011-11-30 Hitachi, Ltd. Storage subsystem and back-up/recovery method
US20080162840A1 (en) * 2007-01-03 2008-07-03 Oliver Augenstein Methods and infrastructure for performing repetitive data protection and a corresponding restore of data
US7725631B2 (en) 2007-06-11 2010-05-25 Hitachi, Ltd. Information system and information storage method of information system
EP2015185A1 (en) * 2007-06-11 2009-01-14 Hitachi Ltd. Information system and information storage method of information system
US20090125692A1 (en) * 2007-10-24 2009-05-14 Masayuki Yamamoto Backup system and method
JP2009146389A (en) * 2007-11-22 2009-07-02 Hitachi Ltd Backup system and method
US20100023797A1 (en) * 2008-07-25 2010-01-28 Rajeev Atluri Sequencing technique to account for a clock error in a backup system
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US8260746B2 (en) * 2008-09-25 2012-09-04 Hitachi, Ltd. Computer system for hierarchically managing a journal and method therefor
US20100088280A1 (en) * 2008-09-25 2010-04-08 Hitachi, Ltd. Computer system for hierarchically managing a journal and method therefor
US8037027B2 (en) * 2008-09-25 2011-10-11 Hitachi, Ltd. Computer system for hierarchically managing a journal and method therefor
US20110314242A1 (en) * 2008-09-25 2011-12-22 Ai Satoyama Computer system for hierarchically managing a journal and method therefor
US20230070982A1 (en) * 2009-03-31 2023-03-09 Amazon Technologies, Inc. Cloning and recovery of data volumes
US11385969B2 (en) 2009-03-31 2022-07-12 Amazon Technologies, Inc. Cloning and recovery of data volumes
US11914486B2 (en) * 2009-03-31 2024-02-27 Amazon Technologies, Inc. Cloning and recovery of data volumes
US20120131290A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Backup Memory Administration
US20120254521A1 (en) * 2010-11-18 2012-10-04 International Business Machines Corporation Backup Memory Administration
US9836370B2 (en) * 2010-11-18 2017-12-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Backup memory administration using an active memory device and a backup memory device
CN102096613A (en) * 2010-12-30 2011-06-15 上海爱数软件有限公司 Method and device for generating snapshot
US11003687B2 (en) 2012-05-15 2021-05-11 Splunk, Inc. Executing data searches using generation identifiers
US9160798B2 (en) 2012-05-15 2015-10-13 Splunk, Inc. Clustering for high availability and disaster recovery
US10474682B2 (en) 2012-05-15 2019-11-12 Splunk Inc. Data replication in a clustered computing environment
US10387448B2 (en) 2012-05-15 2019-08-20 Splunk Inc. Replication of summary data in a clustered computing environment
US11675810B2 (en) 2012-05-15 2023-06-13 Splunkinc. Disaster recovery in a clustered environment using generation identifiers
US9984129B2 (en) 2012-05-15 2018-05-29 Splunk Inc. Managing data searches using generation identifiers
US9984128B2 (en) 2012-05-15 2018-05-29 Splunk Inc. Managing site-based search configuration data
US8788459B2 (en) 2012-05-15 2014-07-22 Splunk Inc. Clustering for high availability and disaster recovery
US10324843B1 (en) 2012-06-30 2019-06-18 EMC IP Holding Company LLC System and method for cache management
US9378096B1 (en) * 2012-06-30 2016-06-28 Emc Corporation System and method for cache management
US9619539B2 (en) * 2012-09-28 2017-04-11 Vmware, Inc. Automated document replication in a distributed computing system
US20140095435A1 (en) * 2012-09-28 2014-04-03 Vmware,Inc. Automated document replication in a distributed computing system
US20140172803A1 (en) * 2012-12-19 2014-06-19 Microsoft Corporation Main-memory database checkpointing
US10318648B2 (en) * 2012-12-19 2019-06-11 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US9304998B2 (en) * 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US20160078044A1 (en) * 2012-12-19 2016-03-17 Microsoft Technology Licensing, Llc Main-memory database checkpointing
WO2014100492A3 (en) * 2012-12-19 2014-08-21 Microsoft Corporation Main-memory database checkpointing
US10255137B1 (en) * 2013-12-16 2019-04-09 EMC IP Holding Company LLC Point-in-time recovery on deduplicated storage
US9665307B1 (en) * 2013-12-19 2017-05-30 EMC IP Holding Company LLC Incremental continuous data protection
US11755415B2 (en) 2014-05-09 2023-09-12 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US11144397B2 (en) 2014-09-12 2021-10-12 Microsoft Technology Licensing, Llc Data recovery using bitmap data structure
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
EP3098715A1 (en) * 2015-05-21 2016-11-30 Zerto Ltd. System and method for object-based continuous data protection
US9892005B2 (en) 2015-05-21 2018-02-13 Zerto Ltd. System and method for object-based continuous data protection
US20220283988A1 (en) * 2015-09-11 2022-09-08 Cohesity, Inc. Distributed write journals that support fast snapshotting for a distributed file system
US11741048B2 (en) * 2015-09-11 2023-08-29 Cohesity, Inc. Distributed write journals that support fast snapshotting for a distributed file system
EP3159796A1 (en) * 2015-09-21 2017-04-26 Zerto Ltd. System and method for generating backups of a protected system from a recovery system
US20180032555A1 (en) * 2016-07-28 2018-02-01 Bank Of America Corporation Object database system including an object-specific historical attribute-change information system
US11860741B2 (en) 2017-11-22 2024-01-02 Amazon Technologies, Inc. Continuous data protection
CN107862223A (en) * 2017-11-28 2018-03-30 长沙深蓝未来智能技术有限公司 Repeatedly covering prevents the method that electronic information storage carrier data is recovered totally
US11579981B2 (en) 2018-08-10 2023-02-14 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11269737B2 (en) 2019-09-16 2022-03-08 Microsoft Technology Licensing, Llc Incrementally updating recovery map data for a memory system
WO2021055035A1 (en) * 2019-09-16 2021-03-25 Microsoft Technology Licensing, Llc Incrementally updating recovery map data for a memory system
US20220317898A1 (en) * 2021-04-03 2022-10-06 EMC IP Holding Company LLC Managing Application Storage Resource Allocations Based on Application Specific Storage Policies

Also Published As

Publication number Publication date
US20070100917A1 (en) 2007-05-03
US7167880B2 (en) 2007-01-23
US7574462B2 (en) 2009-08-11

Similar Documents

Publication Publication Date Title
US7167880B2 (en) Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling
US7783848B2 (en) Method and apparatus for backup and recovery using storage based journaling
US7979741B2 (en) Method and apparatus for data recovery system using storage based journaling
US8868507B2 (en) Method and apparatus for data recovery using storage based journaling
US8296265B2 (en) Method and apparatus for synchronizing applications for data recovery using storage based journaling
US8103840B2 (en) Snapshot mechanism and method thereof
US7237080B2 (en) Persistent snapshot management system
US7237075B2 (en) Persistent snapshot methods
US6871271B2 (en) Incrementally restoring a mass storage device to a prior state
US20080162594A1 (en) Data storage system and process
KR20150081810A (en) Method and device for multiple snapshot management of data storage media

Legal Events

Date Code Title Description
AS Assignment

Owner name: HITACHI, LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AMANO, TAKASHI;YAMAGAMI, KENJI;REEL/FRAME:015738/0247;SIGNING DATES FROM 20040414 TO 20040827

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20150123