IP Library Granted Patent US 11,386,124
Granted Patent B2
US 11,386,124 · App. 16/743,274 · Granted Jul 12, 2022

Snapshot rollback for synchronous replication

Inventors: Xiangping Chen (Sherborn, MA); Svetlana Kronrod (Concord, MA)
Assignee: Dell Products L.P.
G06F16/275G06F11/1469G06F2201/84
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,386,124
App. No.
16/743,274
Granted
Jul 12, 2022
Kind
B2
Abstract

An aspect of performing rollback of a snapshot between a source storage system and a target storage system in a synchronous replication session includes reassigning a current replication source volume to a rollback source snapshot. The rollback source snapshot is generated for a consistency group that includes a plurality of volumes. An aspect also includes performing, for one or more snapshot trees maintained for the consistency group, a differential scan between a child of the rollback source snapshot and the current replication source volume, and calculating, from results of the differential scan, a dirty tree differential. For each difference identified in the dirty tree differential, an aspect further includes calculating a corresponding volume offset, and initiating a copy command for the current replication source volume and the rollback source snapshot. The copy command is translated to a remote metadata copy request in synchronous replication data transfer.

Claims (82)

1. A method for performing rollback of a snapshot between a source storage system and a target storage system in a synchronous replication session, the method comprising:

during the synchronous replication session:

reassigning a current replication source volume to a rollback source snapshot, the rollback source snapshot generated for a consistency group that comprises a plurality of volumes;

performing, for one or more snapshot trees maintained for the consistency group, a differential scan between a child of the rollback source snapshot and the current replication source volume, the differential scan being based on a determination of whether a first node corresponding to a previous snapshot is an ancestor of a second node corresponding to the replication source volume;

calculating, from results of the differential scan, a dirty tree differential; and

for each difference identified in the dirty tree differential:

calculating a corresponding volume offset; and

initiating a copy command for the current replication source volume and the rollback source snapshot, the copy command translated to a remote metadata copy request in synchronous replication data transfer, wherein execution of the copy command for each difference in the dirty tree differential results in the target storage system containing matching content as the source storage system after the rollback.

2. The method of claim 1 , further comprising suspending host input/output (IO) operations prior to performing the reassigning of the current replication source volume to the rollback source snapshot.

3. The method of claim 1 , wherein upon reassigning the current replication source volume to the rollback source snapshot, a child of the rollback source snapshot inherits a volume identifier of the current replication source volume, and the current replication source volume receives a new volume identifier.

4. The method of claim 1 , wherein one of the snapshot trees is associated with one or more additional trees including at least one of:

a dirty tree that characterizes updates to logical addresses of a corresponding one of the volumes; and

a hash tree comprising content-based signatures of respective ones of the logical addresses of the corresponding one or more of the volumes;

wherein an instance of the differential scan performed for the one or more snapshot trees comprises aggregating information of at least one of the dirty tree and the hash tree between designated nodes of the one or more snapshot trees.

5. The method of claim 1 , wherein the determination of whether the first node corresponding to the previous snapshot is an ancestor of the second node corresponding to the current replication source volume comprises:

inspecting a path from the second node towards a root node of the snapshot tree;

responsive to the first node being part of the path, determining that the first node is an ancestor of the second node; and

responsive to the first node not being part of the path, determining that the first node is not an ancestor of the second node.

6. The method of claim 5 , wherein performing the differential scan further includes altering a manner in which an instance of the differential scan is performed for the one or more snapshot trees responsive to a result of the determination, comprising:

performing a first type of differential scan comprising aggregating node metadata of a path from the second node to the first node responsive to the first node being an ancestor of the second node; and

performing a second type of differential scan different than the first type of differential scan responsive to the first node not being an ancestor of the second node, the second type of differential scan comprising:

identifying a first path from the first node to a root node;

identifying a second path from the second node to the root node;

determining a lowest common ancestor between the first and second paths;

combining the first and second paths at the lowest common ancestor; and

aggregating node metadata of the combined first and second paths.

7. The method of claim 1 , wherein the copy command is a Small Computer System Interface (SCSI)-based extended copy command that comprises the volume offset, a source logical unit, a source logical block address range, a target logical unit, and a target logical block address range, wherein the copy command is executed by the target storage system.

8. A system for performing rollback of a snapshot between a source storage system and a target storage system in a synchronous replication session, the system comprising:

a memory comprising computer-executable instructions; and

a processor operable by a storage system, the processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:

during the synchronous replication session:

reassigning a current replication source volume to a rollback source snapshot, the rollback source snapshot generated for a consistency group that comprises a plurality of volumes;

performing, for one or more snapshot trees maintained for the consistency group, a differential scan between a child of the rollback source snapshot and the current replication source volume, the differential scan being based on a determination of whether a first node corresponding to a previous snapshot is an ancestor of a second node corresponding to the replication source volume;

calculating, from results of the differential scan, a dirty tree differential; and

for each difference identified in the dirty tree differential:

calculating a corresponding volume offset; and

initiating a copy command for the current replication source volume and the rollback source snapshot, the copy command translated to a remote metadata copy request in a synchronous replication data transfer, wherein execution of the copy command for each difference in the dirty tree differential results in the target storage system containing matching content as the source storage system after the rollback.

9. The system of claim 8 , wherein the operations further comprise suspending host input/output (IO) operations prior to performing the reassigning of the current replication source volume to the rollback source snapshot.

10. The system of claim 8 , wherein upon reassigning the current replication source volume to the rollback source snapshot a child of the rollback source snapshot inherits a volume identifier of the current replication source volume, and the current replication source volume receives a new volume identifier.

11. The system of claim 8 , wherein one of the snapshot trees is associated with one or more additional trees including at least one of:

a dirty tree that characterizes updates to logical addresses of a corresponding one of the volumes; and

a hash tree comprising content-based signatures of respective ones of the logical addresses of the corresponding one or more of the volumes;

wherein an instance of the differential scan performed for the one or more snapshot trees comprises aggregating information of at least one of the dirty tree and the hash tree between designated nodes of the one or more snapshot trees.

12. The system of claim 8 , wherein the determination of whether the first node corresponding to the previous snapshot is an ancestor of the second node corresponding to the current replication source volume comprises:

inspecting a path from the second node towards a root node of the snapshot tree;

responsive to the first node being part of the path, determining that the first node is an ancestor of the second node; and

responsive to the first node not being part of the path, determining that the first node is not an ancestor of the second node.

13. The system of claim 12 , wherein performing the differential scan further includes altering a manner in which an instance of the differential scan is performed for the one or more snapshot trees responsive to a result of the determination, comprising:

performing a first type of differential scan comprising aggregating node metadata of a path from the second node to the first node responsive to the first node being an ancestor of the second node; and

performing a second type of differential scan different than the first type of differential scan responsive to the first node not being an ancestor of the second node, the second type of differential scan comprising:

identifying a first path from the first node to a root node;

identifying a second path from the second node to the root node;

determining a lowest common ancestor between the first and second paths;

combining the first and second paths at the lowest common ancestor; and

aggregating node metadata of the combined first and second paths.

14. The system of claim 8 , wherein the copy command is a Small Computer System Interface (SCSI)-based extended copy command that comprises the volume offset, a source logical unit, a source logical block address range, a target logical unit, and a target logical block address range, wherein the copy command is executed by the target storage system.

15. A computer program product for performing rollback of a snapshot between a source storage system and a target storage system in a synchronous replication session, the computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer, causes the computer to perform operations comprising:

during the synchronous replication session:

reassigning a current replication source volume to a rollback source snapshot, the rollback source snapshot generated for a consistency group that comprises a plurality of volumes;

performing, for one or more snapshot trees maintained for the consistency group, a differential scan between a child of the rollback source snapshot and the current replication source volume, the differential scan being based on a determination of whether a first node corresponding to a previous snapshot is an ancestor of a second node corresponding to the replication source volume;

calculating, from results of the differential scan, a dirty tree differential; and

for each difference identified in the dirty tree differential:

calculating a corresponding volume offset; and

initiating a copy command for the current replication source volume and the rollback source snapshot, the copy command translated to a remote metadata copy request in a synchronous replication data transfer, wherein execution of the copy command for each difference in the dirty tree differential results in the target storage system containing matching content as the source storage system after the rollback.

16. The computer program product of claim 15 , wherein the operations further comprise suspending host input/output (IO) operations prior to performing the reassigning of the current replication source volume to the rollback source snapshot.

17. The computer program product of claim 15 , wherein upon reassigning the current replication source volume to the rollback source snapshot a child of the rollback source snapshot inherits a volume identifier of the current replication source volume, and the current replication source volume receives a new volume identifier.

18. The computer program product of claim 15 , wherein one of the snapshot trees is associated with one or more additional trees including at least one of:

a dirty tree that characterizes updates to logical addresses of a corresponding one of the volumes; and

a hash tree comprising content-based signatures of respective ones of the logical addresses of the corresponding one or more of the volumes;

wherein an instance of the differential scan performed for the one or more snapshot trees comprises aggregating information of at least one of the dirty tree and the hash tree between designated nodes of the one or more snapshot trees.

19. The computer program product of claim 15 , wherein the determination of whether the first node corresponding to the previous snapshot is an ancestor of the second node corresponding to the current replication source volume comprises:

inspecting a path from the second node towards a root node of the snapshot tree;

responsive to the first node being part of the path, determining that the first node is an ancestor of the second node; and

responsive to the first node not being part of the path, determining that the first node is not an ancestor of the second node.

20. The computer program product of claim 19 , wherein performing the differential scan further includes altering a manner in which an instance of the differential scan is performed for the one or more snapshot trees responsive to a result of the determination, comprising:

performing a first type of differential scan comprising aggregating node metadata of a path from the second node to the first node responsive to the first node being an ancestor of the second node; and

performing a second type of differential scan different than the first type of differential scan responsive to the first node not being an ancestor of the second node, the second type of differential scan comprising:

identifying a first path from the first node to a root node;

identifying a second path from the second node to the root node;

determining a lowest common ancestor between the first and second paths;

combining the first and second paths at the lowest common ancestor; and

aggregating node metadata of the combined first and second paths.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 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 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: CHEN, XIANGPING; KRONROD, SVETLANA
To: DELL PRODUCTS L.P.
Reel/Frame 051524/0427 →