IP Library Granted Patent US 12704974
Granted Patent B2
US 12704974 · App. 18/810,870 · Granted Aug 11, 2026

Low overhead resynchronization snapshot creation and utilization

Inventors: Akhil Kaushik (San Jose, CA); Ripulkumar Hemantbhai Patel (Fremont, CA); Vrishali Dattatray Hajare (Milpitas, CA); Andrew Eric Dunn (Sunnyvale, CA); Rithin Kumar Shetty (Sunnyvale, CA)
Assignee: NetApp, Inc.
G06F3/0619G06F3/065G06F3/0683G06F11/1451G06F11/1469G06F11/20G06F2201/805G06F2201/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 12704974
App. No.
18/810,870
Filed
Aug 21, 2024
Granted
Aug 11, 2026
Kind
B2
Art Unit
2114
USPC
714/6.21
Abstract

One or more techniques and/or computing devices are provided for resynchronization. For example, a request may be received to create pseudo snapshots of a first consistency group, hosted by a first storage controller, and a second consistency group, hosted by a second storage controller, having a synchronous replication relationship with the first consistency group. Incoming client write requests are logged within an intercept tracking log at the first storage controller. After a first drain without hold of incoming write requests is performed, a first pseudo common snapshot of the second consistency group is created. After a second drain without hold of incoming write operations is performed, a second pseudo common snapshot of the first consistency group and the intercept tracking log is created. The pseudo snapshots and the intercept tracking log (e.g., indicating a delta between the pseudo snapshots) are used to resynchronize the first and second consistency groups.

Claims (43)

1 . A method comprising:

beginning at a first time, maintaining tracking information indicative of one or more portions of data associated with an application that differ between a source consistency group (CG), hosted by a first storage node of a distributed storage system, and a destination CG, hosted by a second storage node of the distributed storage system;

after a first set of inflight write requests received from the application before the first time have been committed on both the source CG and the destination CG, non-disruptively creating a first pseudo common snapshot (PCS) of the destination CG by the second storage node; and

after a second set of inflight write requests received from the application before creation of the first PCS have been committed on both the source CG and the destination CG, non-disruptively creating a second PCS of the source CG by the first storage node, wherein the second PCS captures the tracking information.

2 . The method of claim 1 , wherein the first storage node is part of a primary cluster of the distributed storage system and the second storage node is part of a secondary cluster of the distributed storage system.

3 . The method of claim 2 , wherein the distributed storage system comprises a cross-site distributed storage system in which the primary cluster is located at a first site and the secondary cluster is located at a second site that is remote from the first site.

4 . The method of claim 1 , wherein the first storage node and the second storage node are:

co-located at a same site;

part of a same cluster of the distributed storage system;

locally connected to one or more of each other and a common set of storage devices; and

configured according to a high-availability (HA) configuration.

5 . The method of claim 1 , wherein said non-disruptively creating a first PCS comprises creating the first PCS without pausing incoming write requests received from the application during creation of the first PCS.

6 . The method of claim 1 , wherein said non-disruptively creating a second PCS comprises creating the second PCS without pausing incoming write requests received from the application during creation of the second PCS.

7 . A non-transitory machine readable storage medium comprising machine executable code which when executed by one or more processors of a distributed storage system, causes the distributed storage system to:

beginning at a first time, maintain tracking information indicative of one or more portions of data associated with an application that differ between a source consistency group (CG), hosted by a first storage node of the distributed storage system, and a destination CG, hosted by a second storage node of the distributed storage system;

after a first set of inflight write requests received from the application before the first time have been committed on both the source CG and the destination CG, non-disruptively create a first pseudo common snapshot (PCS) of the destination CG by the second storage node; and

after a second set of inflight write requests received from the application before creation of the first PCS have been committed on both the source CG and the destination CG, non-disruptively create a second PCS of the source CG by the first storage node, wherein the second PCS captures the tracking information.

8 . The non-transitory machine readable storage medium of claim 7 , wherein the first storage node is part of a primary cluster of the distributed storage system and the second storage node is part of a secondary cluster of the distributed storage system.

9 . The non-transitory machine readable storage medium of claim 8 , wherein the distributed storage system comprises a cross-site distributed storage system in which the primary cluster is located at a first site and the secondary cluster is located at a second site that is remote from the first site.

10 . The non-transitory machine readable storage medium of claim 7 , wherein the first storage node and the second storage node are:

co-located at a same site;

part of a same cluster of the distributed storage system;

locally connected to one or more of each other and a common set of storage devices; and

configured according to a high-availability (HA) configuration.

11 . The non-transitory machine readable storage medium of claim 7 , wherein non-disruptive creation of the first PCS comprises creating the first PCS without pausing incoming write requests received from the application during creation of the first PCS.

12 . The non-transitory machine readable storage medium of claim 7 , wherein non-disruptive creation of the second PCS comprises creating the second PCS without pausing incoming write requests received from the application during creation of the second PCS.

13 . The non-transitory machine readable storage medium of claim 7 , wherein the source CG comprises one or more of a plurality of volumes and a plurality of logical unit numbers (LUNs).

14 . A distributed storage system comprising:

one or more processors; and

instructions that when executed by the one or more processors cause the distributed storage system to:

beginning at a first time, maintain tracking information indicative of one or more portions of data associated with an application that differ between a source consistency group (CG), hosted by a first storage node of the distributed storage system, and a destination CG, hosted by a second storage node of the distributed storage system;

after a first set of inflight write requests received from the application before the first time have been committed on both the source CG and the destination CG, non-disruptively create a first pseudo common snapshot (PCS) of the destination CG by the second storage node; and

after a second set of inflight write requests received from the application before creation of the first PCS have been committed on both the source CG and the destination CG, non-disruptively create a second PCS of the source CG by the first storage node, wherein the second PCS captures the tracking information.

15 . The distributed storage system of claim 14 , wherein the first storage node is part of a primary cluster of the distributed storage system and the second storage node is part of a secondary cluster of the distributed storage system.

16 . The distributed storage system of claim 15 , wherein the distributed storage system comprises a cross-site distributed storage system in which the primary cluster is located at a first site and the secondary cluster is located at a second site that is remote from the first site.

17 . The distributed storage system of claim 14 , wherein the first storage node and the second storage node are:

co-located at a same site;

part of a same cluster of the distributed storage system;

locally connected to one or more of each other and a common set of storage devices; and

configured according to a high-availability (HA) configuration.

18 . The distributed storage system of claim 14 , wherein non-disruptive creation of the first PCS comprises creating the first PCS without pausing incoming write requests received from the application during creation of the first PCS.

19 . The distributed storage system of claim 14 , wherein non-disruptive creation of the second PCS comprises creating the second PCS without pausing incoming write requests received from the application during creation of the second PCS.

20 . The distributed storage system of claim 14 , wherein the source CG comprises one or more of a plurality of volumes and a plurality of logical unit numbers (LUNs).