Recovering corrupt storage systems
A method and system for recovering a corrupt storage system is discussed. A request to recover the system may be received. A backup snapshot for the last point-in-time the system was stable may be synthesized. A difference may be identified between that backup snapshot and the current system. The difference may be transmitted to the corrupt system to recover the data.
1. A method for recovering a source storage system, the method comprising:
intercepting write transactions issued by a host computer to the source storage system before the write transactions are received at the source storage system;
streaming the intercepted write transactions to a backup storage system;
upon receipt of the stream of intercepted write transactions at the backup storage system, recording metadata associated with the write transactions in a metadata journal at the backup storage system, and data associated with the write transactions in a data journal at the backup storage system;
after the recording metadata and data, allowing the write transactions issued by the host computer to be received at the source storage system;
periodically synthesizing backup snapshots of the source storage system using the metadata journal and data journal at the backup storage system;
receiving a request to recover data for the source storage system, the request comprising a point-in-time that is before a logical corruption of the source storage system;
synthesizing a recovery snapshot for the point-in-time using the metadata journal and data journal at the backup storage system;
identifying a difference between the recovery snapshot and a latest synthesized backup snapshot, the latest synthesized backup snapshot having been created for a point-in-time that is after the point-in-time of the recovery snapshot;
adding the difference to a recovery list as entries in the recovery list;
identifying metadata entries in the metadata journal at the backup storage system, wherein the metadata entries are not in the latest synthesized backup snapshot;
adding the metadata entries to the recovery list; and
transmitting data associated with entries in the recovery list to the source storage system.
2. The method of claim 1 , further comprising:
identifying additional metadata entries in a data protection appliance memory at the backup storage system, wherein the additional metadata entries have not been written to the metadata journal; and
adding the additional metadata entries to the recovery list.
3. A computer program product for recovering a source storage system, the computer program product comprising a non-transitory computer readable medium encoded with computer executable program, the code enabling:
intercepting write transactions issued by a host computer to the source storage system before the write transactions are received at the source storage system;
streaming the intercepted write transactions to a backup storage system;
upon receipt of the stream of intercepted write transactions at the backup storage system, recording metadata associated with the write transactions in a metadata journal at the backup storage system, and data associated with the write transactions in a data journal at the backup storage system;
after the recording metadata and data, allowing the write transactions issued by the host computer to be received at the source storage system;
periodically synthesizing backup snapshots of the source storage system using the metadata journal and data journal at the backup storage system;
receiving a request to recover data for the source storage system, the request comprising a point-in-time that is before a logical corruption of the source storage system;
synthesizing a recovery snapshot for the point-in-time using the metadata journal and data journal at the backup storage system;
identifying a difference between the recovery snapshot and a latest synthesized backup snapshot, the latest synthesized backup snapshot having been created for a point-in-time that is after the point-in-time of the recovery snapshot;
adding the difference to a recovery list as entries in the recovery list;
identifying metadata entries in the metadata journal at the backup storage system, wherein the metadata entries are not in the latest synthesized backup snapshot;
adding the metadata entries to the recovery list; and
transmitting data associated with entries in the recovery list to the source storage system.
4. The computer program product of claim 3 , further comprising:
identifying additional metadata entries in a data protection appliance memory at the backup storage system, wherein the additional metadata entries have not been written to the metadata journal; and
adding the additional metadata entries to the recovery list.
5. A system for recovering a source storage system, the system comprising a computer processor configured to execute instructions comprising:
intercepting write transactions issued by a host computer to the source storage system before the write transactions are received at the source storage system;
streaming the intercepted write transactions to a backup storage system;
upon receipt of the stream of intercepted write transactions at the backup storage system, recording metadata associated with the write transactions in a metadata journal at the backup storage system, and data associated with the write transactions in a data journal at the backup storage system;
after the recording metadata and data, allowing the write transactions issued by the host computer to be received at the source storage system;
periodically synthesizing backup snapshots of the source storage system using the metadata journal and data journal at the backup storage system;
receiving a request to recover data for the source storage system, the request comprising a point-in-time that is before a logical corruption of the source storage system;
synthesizing a recovery snapshot for the point-in-time using the metadata journal and data journal at the backup storage system;
identifying a difference between the recovery snapshot and a latest synthesized backup snapshot, the latest synthesized backup snapshot having been created for a point-in-time that is after the point-in-time of the recovery snapshot;
adding the difference to a recovery list as entries in the recovery list;
identifying metadata entries in the metadata journal at the backup storage system, wherein the metadata entries are not in the latest synthesized backup snapshot;
adding the metadata entries to the recovery list; and
transmitting data associated with entries in the recovery list to the source storage system.
6. The system of claim 5 , further comprising:
identifying additional metadata entries in a data protection appliance memory at the backup storage system, wherein the additional metadata entries have not been written to the metadata journal; and
adding the additional metadata entries to the recovery list.