IP Library Granted Patent US 11,392,311
Granted Patent B2
US 11,392,311 · App. 17/085,225 · Granted Jul 19, 2022

Overlapping replication cycles for asynchronous replication

Inventors: David Meiri (Somerville, MA); Benjamin Yoder (Chandler, AZ)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/0604G06F3/0634G06F3/0659G06F3/0683
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,392,311
App. No.
17/085,225
Granted
Jul 19, 2022
Kind
B2
Abstract

Peer storage systems share the workload of asynchronously replicating a shared logical storage unit (LSU) to a target system. Peer storage systems (S1 and S2) that synchronously replicate a shared LSU share the workload of asynchronously replicating the shared LSU to a target system (S3) by dividing ownership of the replication cycles in an alternating manner without a strict synchronization of cycles between the peer storage systems. Rather, a given cycle number (e.g., Cycle 1) on S1 may not start and end with a same write operation as a same cycle number (Cycle 1) on S2, such that cycles on S1 (e.g., Cycle 1 and Cycle 2) overlap with cycles having the same number (Cycle 1 and Cycle 2) on S2. S1 may asynchronously replicate to S3 only the cycles it owns, and S2 may asynchronously replicate to S3 only the cycles it owns to S3.

Claims (71)

1. For a system including a first storage system, a second storage system, a third storage system and logical storage unit synchronously replicated between the first storage system and the second system, wherein the logical storage unit is asynchronously replicated from the first storage system to the third storage system and asynchronously replicated from the second storage system to the third storage system, a method comprising:

for a sequence of replication cycle numbers, designating a first series of alternating replication cycle numbers of the sequence to the first storage system and designating a second series of alternating replication cycle numbers of the sequence to the second storage system;

in response to receiving a first write operation on the first storage system, determining whether a current cycle number on the first storage system is a cycle number included in the first series designated to the first storage system; and

if the current cycle number on the first storage system is a cycle number included in the first series, recording the first write operation in a first cycle buffer on the first storage system.

2. The method of claim 1 , further comprising:

prior to receiving the first write operation, synchronizing the first storage system and the second storage system to an initial cycle number.

3. The method of claim 1 , further comprising:

the first storage system determining to transition from a first cycle to a second cycle; and

the first system transmitting an instruction to the second storage system to transition from the first cycle to the second cycle.

4. The method claim 3 , further comprising:

the first system receiving an acknowledgement from the second system that the second system has transitioned to the second cycle; and

in response to receiving the acknowledgement, transitioning the first cycle on the first storage system from a capture phase to a transfer phase during which the write operations are transmitted from the first cycle buffer to the third storage system.

5. The method of claim 3 , further comprising:

the second storage system receiving the instruction from the first storage system;

the second system storage incrementing a current cycle number on the second storage system to a next cycle number;

the second system storage acknowledging to a host system completion of any write operations being executed on the second system for the second cycle number; and

after the second system has acknowledged to the host system, the second storage system sending an acknowledgement to the instruction to the first system indicating that that second storage system has transitioned from the current cycle to a next cycle.

6. The method of claim 5 , further comprising:

prior to the first storage system receiving the acknowledgement, the first system receiving a second write request;

the second storage system, in response to receiving the second write request, recording the second write operation in a second cycle buffer on the first storage system; and

the second storage system, at a later point in time, transmitting the second write operation from the second cycle buffer to the third storage system.

7. The method of claim 1 , further comprising:

if the current cycle number on the first storage system is not a cycle number included in the first series, recording or not recording the first write operation in the first cycle buffer on the first storage system,

wherein the first storage system does not transmit the first write operation from the first cycle buffer to the third storage system, except if the first write operation is recorded in the first cycle buffer and the second storage system fails to transmit the first write operation to the third storage system.

8. The method of claim 1 , wherein the first storage system and the second storage system are in an active-active configuration.

9. A system comprising:

a first storage system;

a second storage system;

a third storage system;

a logical storage unit synchronously replicated between the first storage system and the second system, wherein the logical storage unit is asynchronously replicated from the first storage system to the third storage system and asynchronously replicated from the second storage system to the third storage system; and

executable logic that implements a method including:

for a sequence of replication cycle numbers, designating a first series of alternating replication cycle numbers of the sequence to the first storage system and designating a second series of alternating replication cycle numbers of the sequence to the second storage system;

in response to receiving a first write operation on the first storage system, determining whether a current cycle number on the first storage system is a cycle number included in the first series designated to the first storage system; and

if the current cycle number on the first storage system is a cycle number included in the first series, recording the first write operation in a first cycle buffer on the first storage system.

10. The system of claim 9 , wherein the method further includes:

prior to receiving the first write operation, synchronizing the first storage system and the second storage system to an initial cycle number.

11. The system of claim 9 , wherein the method further includes:

the first storage system determining to transition from a first cycle to a second cycle; and

the first system transmitting an instruction to the second storage system to transition from the first cycle to the second cycle.

12. The system claim 11 , wherein the method further includes:

the first system receiving an acknowledgement from the second system that the second system has transitioned to the second cycle; and

in response to receiving the acknowledgement, transitioning the first cycle on the first storage system from a capture phase to a transfer phase during which the write operations are transmitted from the first cycle buffer to the third storage system.

13. The system of claim 11 , wherein the method further includes:

the second storage system receiving the instruction from the first storage system;

the second system storage incrementing a current cycle number on the second storage system to a next cycle number;

the second system storage acknowledging to a host system completion of any write operations being executed on the second system for the second cycle number; and

after the second system has acknowledged to the host system, the second storage system sending an acknowledgement to the instruction to the first system indicating that that second storage system has transitioned from the current cycle to a next cycle.

14. The system of claim 13 , wherein the method further includes:

prior to the first storage system receiving the acknowledgement, the first system receiving a second write request;

the second storage system, in response to receiving the second write request, recording the second write operation in a second cycle buffer on the first storage system; and

the second storage system, at a later point in time, transmitting the second write operation from the second cycle buffer to the third storage system.

15. The system of claim 9 , wherein the method further includes:

if the current cycle number on the first storage system is not a cycle number included in the first series, recording or not recording the first write operation in the first cycle buffer on the first storage system,

wherein the first storage system does not transmit the first write operation from the first cycle buffer to the third storage system, except if the first write operation is recorded in the first cycle buffer and the second storage system fails to transmit the first write operation to the third storage system.

16. For a system including a first storage system, a second storage system, a third storage system and logical storage unit synchronously replicated between the first storage system and the second system, wherein the logical storage unit is asynchronously replicated from the first storage system to the third storage system and asynchronously replicated from the second storage system to the third storage system, computer-readable media having software stored thereon, the software comprising:

executable code that for a sequence of replication cycle numbers, designates a first series of alternating replication cycle numbers of the sequence to the first storage system and designates a second series of alternating replication cycle numbers of the sequence to the second storage system;

executable code that, in response to receiving a first write operation on the first storage system, determines whether a current cycle number on the first storage system is a cycle number included in the first series designated to the first storage system; and

executable code that, if the current cycle number on the first storage system is a cycle number included in the first series, records the first write operation in a first cycle buffer on the first storage system.

17. The computer-readable media of claim 16 , further comprising:

executable code that, prior to receiving the first write operation, synchronizes the first storage system and the second storage system to an initial cycle number.

18. The computer-readable media of claim 16 , wherein the software further comprises:

executable code that controls the first storage system to determine to transition from a first cycle to a second cycle; and

executable code that controls the first system to transmit an instruction to the second storage system to transition from the first cycle to the second cycle.

19. The computer-readable media claim 18 , wherein the software further comprises:

executable code that controls the first system to receive an acknowledgement from the second system that the second system has transitioned to the second cycle; and

executable code that, in response to receiving the acknowledgement, transitions the first cycle on the first storage system from a capture phase to a transfer phase during which the write operations are transmitted from the first cycle buffer to the third storage system.

20. The computer-readable media of claim 18 , wherein the software further comprises:

executable code that controls the second storage system to receive the instruction from the first storage system;

executable code that controls the second system storage to increment a current cycle number on the second storage system to a next cycle number;

executable code that controls the second system storage to acknowledge to a host system completion of any write operations being executed on the second system for the second cycle number; and

executable code that controls the second storage system to send, after the second system has acknowledged to the host system, an acknowledgement to the instruction to the first system indicating that that second storage system has transitioned from the current cycle to a next cycle.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2020
From: MEIRI, DAVID; YODER, BENJAMIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054224/0200 →