IP Library › Granted Patent US 11,579,987
Granted Patent B1
US 11,579,987 · App. 17/316,518 · Granted Feb 14, 2023

Disaster recovery systems and methods with low recovery point objectives

Inventors: Serge Shats (Palo Alto, CA); Alexei Jelvis (Menlo Park, CA)
Assignee: Jetstream Software Inc.
G06F11/1469G06F9/45558G06F11/1435G06F11/1451G06F11/1461G06F11/1464G06F11/1471G06F11/1484G06F12/0253G06F16/1873G06F2009/45587G06F2009/45591G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,579,987
App. No.
17/316,518
Granted
Feb 14, 2023
Kind
B1
Abstract

Data recovery systems and methods utilize object-based storage for providing a data protection and recovery methodology with low recovery point objectives, and for enabling both full recovery and point-in-time based recovery. Data generated at a protected site (e.g., via one or more virtual machines) is intercepted during write procedures to primary storage. The intercepted data is replicated via a replication log, provided as data objects, and transmitted to an object based storage system. During recovery, data objects may be retrieved through point-in-time based recovery directly by the systems of the protected site, and/or data objects may be provided via full recovery, for example, within a runtime environment of a recovery site, with minimal data loss and operation interruption by rehydrating data objects within the runtime environment via low-latency data transfer and rehydration systems.

Claims (45)

1. A data recovery system for protecting data generated and stored in primary storage in association with a protected site, the data recovery system comprising:

one or more non-transitory memory storage areas and one or more processors configured for execution as either an object-based data store or a filesystem storage environment, and wherein:

when executing as an object-based data store, storing data of one or more protected sites for recovery in the object-based data store by:

receiving data replicated from the one or more protected sites while the data is written to the primary storage of the one or more protected sites; and

storing the data received from the one or more protected sites in object-based storage within the one or more non-transitory memory storage areas to enable point-in-time recovery; and

executing garbage collection to re-write valid data identified within one or more data objects subject to deletion during garbage collection at least in part by receiving the valid data from the primary storage of the one or more protected sites and re-writing the valid data received from the primary storage of the one or more protected sites as one or more new data objects stored at the non-transitory memory storage area,

when executing as a filesystem storage environment, storing data of the one or more protected sites in a filesystem storage environment for immediate access by systems for data input-output operations by:

receiving data replicated from the one or more protected sites while the data is written to the primary storage of the one or more protected sites in real time during data input-output operations of the systems for data input-output operations;

storing the data received from the one or more protected sites in storage within the one or more non-transitory memory storage areas accessible to the systems for data input-output operations to enable at least substantially immediate recovery of the data of a protected site of the one or more protected sites; and

during a recovery operation, providing the data stored within the one or more non-transitory memory storage areas to at least one system for data input-output operations to enable recovery of data associated with a protected site of the one or more protected sites.

2. The data recovery system of claim 1 , wherein the object-based data store is configured for point-in-time-based recovery to provide, during a recovery operation executed at least in part via the object-based data store, data to restore virtual machines to a data state reflecting a point in time.

3. The data recovery system of claim 1 , wherein the object-based data store is configured to store the data received from the one or more protected sites as version-based data objects configured for version-based recovery operations.

4. The data recovery system of claim 1 , wherein the one or more protected sites each comprise a plurality of virtual machines.

5. The data recovery system of claim 1 , wherein the filesystem storage environment is configured to, when receiving data replicated from the one or more protected sites, receive data from a replication log executing via a processing system of a protected site of the one or more protected sites.

6. The data recovery system of claim 1 , wherein the object-based data store is configured to, when receiving data replicated from the one or more protected sites, receive data from a replication log executing via a processing system of a protected site of the one or more protected sites.

7. The data recovery system of claim 1 , wherein storing the data received from the one or more protected sites in object-based storage comprises storing the data together with corresponding metadata uniquely identifying each data object to enable point-in-time recovery.

8. A method for protecting data generated and stored in primary storage at a protected site and enabling data recovery, the method comprising:

executing, via one or more processors and one or more memory storage areas, a data recovery system for protecting data generated and stored in primary storage in association with a protected site, wherein the data recovery system is configured for storing data replicated from one or more protected sites in one of an object-based data store or a filesystem storage environment;

wherein storing data in the object-based data store comprises:

receiving data replicated from one or more protected sites while the data is written to primary storage of the one or more protected sites in real time during data input-output operations of the systems for data input-output operations; and

storing the data received from the one or more protected sites in the object-based data store to enable point-in-time recovery; and

executing garbage collection to re-write valid data identified within one or more data objects subject to deletion during garbage collection at least in part by receiving the valid data from the primary storage of the one or more protected sites and re-writing the valid data received from the primary storage of the one or more protected sites as one or more new data objects stored at the non-transitory memory storage area; and

wherein storing data in the filesystem storage environment comprises:

receiving data replicated from the one or more protected sites while the data is written to primary storage of the one or more protected sites in real time during data input-output operations of the systems for data input-output operations, wherein the filesystem storage environment is immediately accessible by systems for data input-output operations;

storing the data received from the one or more protected sites in the filesystem storage environment accessible to the systems for data input-output operations to enable at least substantially immediate recovery of the data of a protected site of the one or more protected sites; and

during a recovery operation, providing the data stored within the filesystem storage environment to at least one system for data input-output operations to enable recovery of data associated with a protected site of the one or more protected sites.

9. The method of claim 8 , wherein storing the data in the object-based data store comprises storing the data to enable point-in-time-based recovery to provide, during a recovery operation executed at least in part via the object-based data store, data to restore virtual machines to a data state reflecting a point in time.

10. The method of claim 8 , wherein storing the data in the object-based data store comprises storing the data received from the one or more protected sites as version-based data objects configured for version-based recovery operations.

11. The method of claim 8 , wherein storing the data in the filesystem storage environment comprises, when receiving data replicated from the one or more protected sites, receiving data from a replication log executing via a processing system of a protected site of the one or more protected sites.

12. The method of claim 8 , wherein storing the data in the object-based data store comprises, when receiving data replicated from the one or more protected sites, receiving data from a replication log executing via a processing system of a protected site of the one or more protected sites.

13. The method of claim 8 , wherein storing the data received from the one or more protected sites in object-based storage comprises storing the data together with corresponding metadata uniquely identifying each data object to enable point-in-time recovery.

14. A computer-program product for protecting data generated and stored in primary storage at a protected site and enabling data recovery, the computer-program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

a first executable portion configured for storing data of one or more protected sites for recovery in an object-based data store; and

a second executable portion, executable in the alternative with the first executable portion, configured for storing data of the one or more protected sites in a filesystem storage environment for immediate access by systems for data input-output operations; and

wherein execution of the executable portion configured for storing data of the one or more protected sites for recovery in the object-based data store comprises:

receiving data replicated from the one or more protected sites while the data is written to primary storage of the one or more protected sites in real time during data input-output operations of the systems for data input-output operations; and

storing the data received from the one or more protected sites in the object-based data store to enable point-in-time recovery; and

executing garbage collection in the object-based data store to re-write valid data identified within one or more data objects subject to deletion during garbage collection at least in part by receiving the valid data from primary storage of the one or more protected sites and re-writing the valid data received from primary storage of the one or more protected sites as one or more new data objects stored at the one or more non-transitory memory storage area; and

wherein execution of the executable portion configured for storing data of the one or more protected sites in a filesystem storage environment comprises:

receiving data replicated from the one or more protected sites while the data is written to primary storage of the one or more protected sites in real time during data input-output operations of the systems for data input-output operations, wherein the filesystem storage environment is immediately accessible by systems for data input-output operations;

storing the data received from the one or more protected sites in the filesystem storage environment accessible to the systems for data input-output operations to enable at least substantially immediate recovery of the data of a protected site of the one or more protected sites; and

during a recovery operation, providing the data stored within the filesystem storage environment to at least one system for data input-output operations to enable recovery of data associated with a protected site of the one or more protected sites.

15. The computer-program product of claim 14 , wherein storing the data in the filesystem storage environment comprises, when receiving data replicated from the one or more protected sites, receiving data from a replication log executing via a processing system of a protected site of the one or more protected sites.

16. The computer-program product of claim 14 , wherein storing the data in the object-based data store comprises, when receiving data replicated from the one or more protected sites, receiving data from a replication log executing via a processing system of a protected site of the one or more protected sites.

17. The computer-program product of claim 14 , wherein storing the data received from the one or more protected sites in object-based storage comprises storing the data together with corresponding metadata uniquely identifying each data object to enable point-in-time recovery.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 3, 2026
From: SANFORD, STEVEN "TED"
To: JETSTREAM SOFTWARE INC.
Reel/Frame 075502/0672 →
SECURITY INTEREST Recorded Mar 11, 2024
From: JETSTREAM SOFTWARE INC.
To: SANFORD, STEVEN "TED"
Reel/Frame 066721/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2021
From: SHATS, SERGE; JELVIS, ALEXEI
To: JETSTREAM SOFTWARE INC.
Reel/Frame 056872/0823 →
Continuity (2)
Continuation 16721799 · Dec 19, 2019
Provisional Application 62878661 · Jul 25, 2019