IP Library Granted Patent US 11,733,874
Granted Patent B2
US 11,733,874 · App. 17/306,601 · Granted Aug 22, 2023

Managing replication journal in a distributed replication system

Inventors: Rivka Matosevich (Zichron Ya'acov, IL); Roman Spiegelman (Yokneam Illit, IL); German Goft (Pardess Hanna Karkur, IL); Lior Zilpa (Holon, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/065G06F3/0608G06F3/0634G06F3/0641G06F3/0683G06F16/1815
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,733,874
App. No.
17/306,601
Granted
Aug 22, 2023
Kind
B2
Abstract

Techniques are provided for managing replication journals in a distributed replication system. A data replication system assigns an associated replication journal volume to each replication component operating on a storage node. Each replication component is configured to handle a portion of a replication workload which is distributed among the replication components, and to write journal data in the associated replication journal volume of the replication component. The data replication system performs a recovery process in response to detecting a failed replication component. The recovery process includes designating at least one replication component as a recovery replication component, designating the associated replication journal volume of the failed replication component as a recovery journal volume, and assigning the recovery journal volume to the recovery replication component to enable the recovery replication component to recover journal data in the recovery journal volume.

Claims (90)

1. A method, comprising:

controlling, by a data replication system, data replication operations performed on a storage node of a data storage system, wherein the data replication system comprises a replication component layer comprising a plurality of replication components operating on the storage node, and a distribution layer operating on the storage node and configured to distribute a replication workload among the plurality of replication components, wherein controlling the data replication operations comprises:

assigning, by the data replication system, an associated replication journal volume to each replication component of the plurality of replication components operating on the storage node, wherein each replication component operating on the storage node is (i) assigned to handle a respective portion of a replication workload associated with replication input/output (I/O) requests directed to logical addresses which correspond to a respective block of logical addresses of a storage volume, and (ii) configured to write journal data, which is associated with I/O write operations handled by the replication component in response to the replication I/O requests, in the associated replication journal volume of the replication component;

distributing, by the distribution layer, the replication workload among the plurality of replication components by directing the replication I/O requests to respective replication components which are assigned to handle the replication workload associated with the respective logical addresses of the replication I/O requests; and

in response to detecting a failed replication component of the plurality of replication components, performing, by the data replication system, a recovery process which comprises:

designating at least one replication component of the plurality of replication components as a recovery replication component;

designating the associated replication journal volume of the failed replication component as a recovery journal volume; and

assigning the recovery journal volume to the recovery replication component to enable the recovery replication component to recover journal data in the recovery journal volume.

2. The method of claim 1 , wherein the recovery process further comprises:

reassigning the portion of the replication workload handled by the failed replication component to one or more replication components of the plurality of replication components;

generating a journal barrier to (i) close an associated current barrier journal of each replication component of the plurality of replication components and to (ii) open an associated new barrier journal of each replication component of the plurality of replication components; and

enabling the replication components to write new journal data associated with new I/O write operations performed by the replication components in the associated new barrier journals.

3. The method of claim 1 , wherein the recovery process further comprises:

deleting the recovery journal volume after completion of the recovery process; and

reclaiming storage capacity of the deleted recovery journal volume.

4. The method of claim 1 , further comprising, in response to determining that the failed replication component has been restored, generating and assigning a new associated replication journal to the restored replication component.

5. The method of claim 1 , further comprising:

in response to determining that the failed replication component has been restored before completion of the recovery process:

generating and assigning a new associated replication journal to the restored replication component;

enabling the restored replication component to write new journal data, which is associated with new I/O write operations performed by the restored replication component, into the new associated replication journal;

maintaining the recovery journal volume assignment to the recovery replication component to enable the recovery replication component to recover the journal data in the recovery journal volume and complete the recovery process; and

deleting the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

6. The method of claim 1 , further comprising:

in response to determining that the failed replication component has been restored before completion of the recovery process:

generating and assigning a new associated replication journal to the restored replication component;

enabling the restored replication component to write new journal data, which is associated with new I/O write operations performed by the restored replication component, into the new associated replication journal;

reassigning the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

deleting the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

7. The method of claim 1 , further comprising:

in response to determining that the failed replication component has been restored before completion of the recovery process:

reassigning the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

enabling the restored replication component to utilize the recovery journal volume as a replication journal volume to write new journal data associated with new I/O write operations performed by the restored replication component.

8. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method which comprises:

controlling, by a data replication system, data replication operations performed on a storage node of a data storage system, wherein the data replication system comprises a replication component layer comprising a plurality of replication components operating on the storage node, and a distribution layer operating on the storage node and configured to distribute a replication workload among the plurality of replication components, wherein controlling the data replication operations comprises:

assigning, by the data replication system, an associated replication journal volume to each replication component of the plurality of replication components operating on the storage node, wherein each replication component operating on the storage node is (i) assigned to handle a respective portion of a replication workload associated with replication input/output (I/O) requests directed to logical addresses which correspond to a respective block of logical addresses of a storage volume, and (ii) configured to write journal data, which is associated with I/O write operations handled by the replication component in response to the replication I/O requests, in the associated replication journal volume of the replication component;

distributing, by the distribution layer, the replication workload among the plurality of replication components by directing the replication I/O requests to respective replication components which are assigned to handle the replication workload associated with the respective logical addresses of the replication I/O requests; and

in response to detecting a failed replication component of the plurality of replication components, performing, by the data replication system, a recovery process which comprises:

designating at least one replication component of the plurality of replication components as a recovery replication component;

designating the associated replication journal volume of the failed replication component as a recovery journal volume; and

assigning the recovery journal volume to the recovery replication component to enable the recovery replication component to recover journal data in the recovery journal volume.

9. The article of manufacture of claim 8 , wherein the program code for performing the recovery process further comprises program code for:

reassigning the portion of the replication workload handled by the failed replication component to one or more replication components of the plurality of replication components;

generating a journal barrier to (i) close an associated current barrier journal of each replication component of the plurality of replication components and to (ii) open an associated new barrier journal of each replication component of the plurality of replication components; and

enabling the replication components to write new journal data associated with new I/O write operations performed by the replication components in the associated new barrier journals.

10. The article of manufacture of claim 8 , wherein the program code for performing the recovery process further comprises program code for:

deleting the recovery journal volume after completion of the recovery process; and

reclaiming storage capacity of the deleted recovery journal volume.

11. The article of manufacture of claim 8 , further comprising program code for, in response to determining that the failed replication component has been restored, generating and assigning a new associated replication journal to the restored replication component.

12. The article of manufacture of claim 8 , further comprising program code for:

in response to determining that the failed replication component has been restored before completion of the recovery process:

generating and assigning a new associated replication journal to the restored replication component;

enabling the restored replication component to write new journal data, which is associated with new I/O write performed by the restored replication component, into the new associated replication journal;

maintaining the recovery journal volume assignment to the recovery replication component to enable the recovery replication component to recover the journal data in the recovery journal volume and complete the recovery process; and

deleting the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

13. The article of manufacture of claim 8 , further comprising program code for:

in response to determining that the failed replication component has been restored before completion of the recovery process:

generating and assigning a new associated replication journal to the restored replication component;

enabling the restored replication component to write new journal data, which is associated with new I/O write operations performed by the restored replication component, into the new associated replication journal;

reassigning the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

deleting the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

14. The article of manufacture of claim 8 , further comprising program code for:

in response to determining that the failed replication component has been restored before completion of the recovery process:

reassigning the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

enabling the restored replication component to utilize the recovery journal volume as a replication journal volume to write new journal data associated with new I/O write operations performed by the restored replication component.

15. A system, comprising:

a data storage system comprising a cluster of storage nodes;

a data replication system implemented by the data storage system, wherein the data replication system is configured to control data replication operations performed on a given storage node of the cluster of storage nodes, wherein the data replication system comprises a replication component layer comprising a plurality of replication components operating on the given storage node, and a distribution layer operating on the given storage node and configured to distribute a replication workload among the plurality of replication components operating on the given storage node, wherein in controlling the data replication operations on the given storage node, the data replication system is configured to:

assign an associated replication journal volume to each replication component of the plurality of replication components operating on the given storage node, wherein each replication component operating on the given storage node is (i) assigned to handle a respective portion of a replication workload associated with replication input/output (I/O) requests directed to logical addresses which correspond to a respective block of logical addresses of a storage volume, and (ii) configured to write journal data, which is associated with I/O write operations handled by the replication component in response to the replication I/O requests, in the associated replication journal volume of the replication component;

distribute, by the distribution layer, the replication workload among the plurality of replication components by directing the replication I/O requests to respective replication components which are assigned to handle the replication workload associated with the respective logical addresses of the replication I/O requests; and

perform a recovery process in response to detecting a failed replication component of the plurality of replication components, wherein in performing the recovery process, the data replication system is configured to:

designate at least one replication component of the plurality of replication components as a recovery replication component;

designate the associated replication journal volume of the failed replication component as a recovery journal volume; and

assign the recovery journal volume to the recovery replication component to enable the recovery replication component to recover journal data in the recovery journal volume.

16. The system of claim 15 , wherein in performing the recovery process, the data replication system is configured to:

delete the recovery journal volume after completion of the recovery process; and

reclaim storage capacity of the deleted recovery journal volume.

17. The system of claim 15 , wherein, in response to determining that the failed replication component has been restored, the data replication system is further configured to generate and assign a new associated replication journal to the restored replication component.

18. The system of claim 15 , wherein, in response to determining that the failed replication component has been restored before completion of the recovery process, the data replication system is further configured to:

generate and assign a new associated replication journal to the restored replication component;

enable the restored replication component to write new journal data, which is associated with new I/O write operations performed by the restored replication component, into the new associated replication journal;

maintain the recovery journal volume assignment to the recovery replication component to enable the recovery replication component to recover the journal data in the recovery journal volume and complete the recovery process; and

delete the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

19. The system of claim 15 , wherein, in response to determining that the failed replication component has been restored before completion of the recovery process, the data replication system is further configured to:

generate and assign a new associated replication journal to the restored replication component;

enable the restored replication component to write new journal data, which is associated with new I/O write operations performed by the restored replication component, into the new associated replication journal;

reassign the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

delete the recovery journal volume and reclaiming storage capacity of the deleted recovery journal volume, after completion of the recovery process.

20. The system of claim 15 , wherein, in response to determining that the failed replication component has been restored before completion of the recovery process, the data replication system is further configured to:

reassign the recovery journal volume to the restored replication component to enable the restored replication component to recover remaining journal data in the recovery journal volume and complete the recovery process; and

enable the restored replication component to utilize the recovery journal volume as an associated replication journal volume to write new journal data associated with new I/O write operations performed by the restored replication component.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: MATOSEVICH, RIVKA; SPIEGELMAN, ROMAN; GOFT, GERMAN; ZILPA, LIOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056146/0690 →
Continuity (1)
Related Publication 20220350497A1 · Nov 3, 2022
Cited By (2)
US 12,340,112 US 12,367,216