IP Library Granted Patent US 10,649,868
Granted Patent B2
US 10,649,868 · App. 15/194,097 · Granted May 12, 2020

Multiple points in time disk images for disaster recovery

Inventors: Tomer Ben Or (Givat Haim Ichud, IL); Gil Barash (Tel Aviv, IL); Chen Burshan (Tel Aviv, IL); Ziv Kedem (Tel Aviv, IL)
Assignee: Zerto Ltd.
G06F11/263G06F9/45533G06F9/45558G06F11/2094G06F11/2205G06F2009/45579G06F2009/45583
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 10,649,868
App. No.
15/194,097
Granted
May 12, 2020
Kind
B2
Abstract

An enterprise disaster recovery system, including at least one data disk, a processor for running at least one data application that reads data from the at least one data disk and writes data to the at least one data disk over a period of time, a recovery test engine that (i) generates in parallel a plurality of processing stacks corresponding to a respective plurality of previous points in time within the period of time, each stack operative to process a command to read data at a designated address from a designated one of the at least one data disk and return data at the designated address in an image of the designated data disk at the previous point in time corresponding to the stack, and (ii) that generates in parallel a plurality of logs of commands issued by the at least one data application to write data into designated addresses of designated ones of the plurality of data disks, each log corresponding to a respective previous point in time, wherein the plurality of previous points in time within the period of time are specified arbitrarily by a user of the system.

Claims (36)

1. An enterprise disaster recovery system, comprising:

a plurality of data disks;

at least one data application to run on a host computing device to read data from at least one data disk of the plurality of data disks and to write data to the at least one data disk over a period of time;

a recovery test engine to run on a recovery computing device to:

generate in parallel a plurality of processing stacks corresponding to a respective plurality of previous points in time within the period of time, each processing stack operative to process a read command to read data at a designated address from a designated data disk of the plurality of data disks and return data at the designated address in an image of the designated data disk at the previous point in time corresponding to the processing stack;

generate in parallel a plurality of write commands issued by the at least one data application to write data into designated addresses of designated data disks of the plurality of data disks; and

log each write command received from the at least one data application into one of a plurality of write journals, each write journal corresponding to a respective previous point in time.

2. The system of claim 1 , comprising the recovery test engine to stop operation of at least one processing stack of the plurality of processing stacks responsive to the receipt of a command to stop operation for the at least one processing stack.

3. The system of claim 1 , comprising the recovery test engine to start operation of at least one processing stack of the plurality of processing stacks responsive to the receipt of a command to start operation for the at least one processing stack.

4. The system of claim 1 , comprising the recovery test engine to receive the plurality of previous points in time via an administrative user interface.

5. The system of claim 1 , comprising the recovery test engine to receive, from the at least one data application corresponding to one processing stack of the plurality of processing stacks, a read command to read data at the designated address from the designated data disk.

6. The system of claim 1 , comprising the recovery test engine to process each processing stack of the plurality of processing stacks to return data at the designated address in an image of the designated data disk at the previous point in time corresponding to the processing stack.

7. The system of claim 1 , comprising the recovery test engine to receive a write command from the at least one data application to write data in the designated address of the designated data disk for the corresponding processing stack and to log the write command into the one of the plurality of write journals for a corresponding point in time, the one of the plurality of write journals including a dedicated virtual disk.

8. The system of claim 1 , comprising the recovery test engine to:

determine, responsive to stoppage of operation of a first processing stack of the plurality of processing stacks, that a second processing stack of the plurality of processing stacks is running; and

receive, from the second processing stack, responsive to the determination that the second processing stack is running, a read command to read data at the designated address from the designated data disk.

9. The system of claim 1 , comprising the recovery test engine to stop operation of the plurality of processing stacks responsive to the determination that none of the plurality of processing stacks is running for a recovery test.

10. A method for testing enterprise disaster recovery, comprising:

receiving an arbitrarily designated plurality of points in time for conducting data recovery tests in parallel;

generating in parallel a plurality of processing stacks, each stack corresponding to one of the designated points in time, and each stack operative to receive a command issued by at least one data application to read data from a designated address from a designated data disk and to return data at the designated address in an image of the designated data disk at the designated point in time corresponding to the stack;

generating in parallel a plurality of write commands issued by the at least one data application to write data into designated addresses of designated data disks; and

logging the write commands received from the at least one data application into a plurality of write journals, each write journal corresponding to one of the designated points in time.

11. The method of claim 10 , comprising stopping operation of any designated one of the stacks in response to receiving a command to stop operation of the designated stack.

12. The method of claim 10 , comprising starting operation of at least one processing stack of the plurality of processing stacks responsive to receiving a command to start operation for the at least one processing stack.

13. The method of claim 10 , comprising receiving, from the at least one data application corresponding to one processing stack of the plurality of processing stacks, a read command to read data at the designated address from the designated data disk.

14. The method of claim 10 , comprising processing each processing stack of the plurality of processing stacks to return data at the designated address in an image of the designated data disk at the previous point in time corresponding to the processing stack.

15. The method of claim 10 , comprising receiving a write command from the at least one data application to write data in the designated address of the designated data disk for the corresponding processing stack and to log the write command into one of the plurality of write journals for a corresponding point in time.

16. The method of claim 10 , comprising generating in parallel the plurality of processing stacks, each stack operative to receive the command issued by at least one data application to read data from the designated address from the designated data disk of a server of a virtual protection group and to return data at the designated address in the image of the designated data disk of the server of the virtual protection group.

17. The method of claim 10 , comprising:

determining, responsive to stopping operation of a first processing stack of the plurality of processing stacks, that a second processing stack of the plurality of processing stacks is running; and

receiving, from the second processing stack, responsive to determining that the second processing stack is running, a read command to read data at the designated address from the designated data disk.

18. The method of claim 10 , comprising stopping operation of the plurality of processing stacks responsive to determining that none of the plurality of processing stacks is running for a recovery test.

19. The system of claim 1 , wherein the recovery test engine stops operation of at least one processing stack of the plurality of processing stacks responsive to the receipt of a command to stop operation.

20. The system of claim 1 , comprising a journal manager to:

receive the write commands from the at least one data application of a host site; and

log the write commands onto one of the plurality of write journals, the one of the plurality of write journals including a dedicated virtual disk.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2024
From: ZERTO LTD.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 066269/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2020
From: KEDEM, ZIV
To: ZERTO LTD.
Reel/Frame 052257/0391 →
SECURITY INTEREST Recorded Nov 19, 2019
From: ZERTO LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 051044/0213 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 13, 2019
From: ZERTO LTD
To: SILICON VALLEY BANK
Reel/Frame 050998/0757 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2016
From: OR, TOMER BEN; BARASH, GIL; BURSHAN, CHEN
To: ZERTO LTD.
Reel/Frame 039174/0390 →
Continuity (5)
Division 13367456 · Feb 7, 2012
Continuation In Part 13175898 · Jul 4, 2011
Continuation In Part 13039446 · Mar 3, 2011
Provisional Application 61314589 · Mar 17, 2010
Related Publication 20160357652A1 · Dec 8, 2016
Cited By (1)
US 12,663,962