IP Library Granted Patent US 12,321,621
Granted Patent B2
US 12,321,621 · App. 18/320,788 · Granted Jun 3, 2025

Performing various operations at the granularity of a consistency group within a cross-site storage solution

Inventors: Murali Subramanian (Karnataka, IN); Akhil Kaushik (San Jose, CA); Anoop Vijayan (Karnataka, IN); Omprakash Khandelwal (Bangalore, IN); Arun Kumar Selvam (Tamilnadu, IN)
Assignee: NetApp, Inc.
G06F3/0631G06F3/0604G06F3/067
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 12,321,621
App. No.
18/320,788
Granted
Jun 3, 2025
Kind
B2
Abstract

Systems and methods are described for efficiently performing various operations at the granularity of a consistency group (CG) within a cross-site storage solution. An example of one of the various operations includes an independent and parallel resynchronization approach that independently brings individual volumes of a CG to a steady state of in-synchronization (InSync), thereby contributing to scalability of CGs by supporting CGs having a large number of member volumes without requiring a change to the resynchronization process. Another example includes preserving dependent write-order consistency when a remote mirror copy goes out-of-synchronization (OOS) for any reason by driving all member volumes OOS responsive to any member volume becoming OOS. Yet another example includes independent creation of snapshots by member volumes to support efficient and on-demand creation by an application of a common snapshots of all or a subset of peered member volumes of a CG with which the application is associated.

Claims (56)

1. A non-transitory computer-readable storage medium embodying a set of instructions, which when executed by one or more processing resources of a distributed storage system, cause the distributed storage system to:

detect a first volume of a plurality of volumes that are members of a local consistency group of the distributed storage system is in an out-of-synchronization (OOS) state with respect to a mirror copy of a dataset associated with the local consistency group that is maintained on a plurality of corresponding volumes that are members of a remote consistency group of a remote distributed storage system; and

preserve dependent write-order consistency on the mirror copy by:

temporarily disallowing access to data stored on the first volume;

broadcasting, on behalf of the first volume, a first request of a three-way handshake of a consensus protocol to the local consistency group, wherein the consensus protocol is for solving a problem of consensus in a distributed system;

responsive to receipt of the first request directed to a given volume of the plurality of volumes:

temporarily disallowing access to data stored on the given volume; and

triggering a second request of the three-way handshake of the consensus protocol by acknowledging the first request; and

responsive to receipt of the second request directed to a particular volume of the plurality of volumes, placing the particular volume in the OOS state and permitting access to the data stored on the particular volume.

2. The non-transitory computer-readable storage medium of claim 1 , wherein said temporarily disallowing access to data stored on the first volume comprises holding responses of completed input/output operations until a distributed transaction associated with the three-way handshake of the consensus protocol has been completed.

3. The non-transitory computer-readable storage medium of claim 1 , wherein said temporarily disallowing access to data stored on the first volume comprises holding input/output operations until a distributed transaction associated with the three-way handshake of the consensus protocol has been completed.

4. The non-transitory computer-readable storage medium of claim 1 , wherein the first request of the three-way handshake comprises a phase 1 request.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the second request of the three-way handshake comprises a phase 2 request.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the three-way handshake of the consensus protocol causes all other members of the local consistency group to transition into the OOS state.

7. A distributed storage system comprising:

one or more processing resources; and

one or more non-transitory computer-readable media, coupled to the one or more processing resources, having stored therein instructions that when executed by the one or more processing resources cause the distributed storage system to:

detect a first volume of a plurality of volumes that are members of a local consistency group of the distributed storage system is in an out-of-synchronization (OOS) state with respect to a mirror copy of a dataset associated with the local consistency group that is maintained on a plurality of corresponding volumes that are members of a remote consistency group of a remote distributed storage system; and

preserve dependent write-order consistency on the mirror copy by:

temporarily disallowing access to data stored on the first volume;

broadcasting, on behalf of the first volume, a first request of a three-way handshake of a consensus protocol to the local consistency group, wherein the consensus protocol is for solving a problem of consensus in a distributed system;

responsive to receipt of the first request directed to a given volume of the plurality of volumes:

temporarily disallowing access to data stored on the given volume; and

triggering a second request of the three-way handshake of the consensus protocol by acknowledging the first request; and

responsive to receipt of the second request directed to a particular volume of the plurality of volumes, placing the particular volume in the OOS state and permitting access to the data stored on the particular volume.

8. The distributed storage system of claim 7 , wherein said temporarily disallowing access to data stored on the first volume comprises holding responses of completed input/output operations until a distributed transaction associated with the three-way handshake of the consensus protocol has been completed.

9. The distributed storage system of claim 7 , wherein said temporarily disallowing access to data stored on the first volume comprises holding input/output operations until a distributed transaction associated with the three-way handshake of the consensus protocol has been completed.

10. The distributed storage system of claim 7 , wherein the first request of the three-way handshake comprises a phase 1 request.

11. The distributed storage system of claim 7 , wherein the second request of the three-way handshake comprises a phase 2 request.

12. The distributed storage system of claim 7 , wherein the three-way handshake of the consensus protocol causes all other members of the local consistency group to transition into the OOS state.

13. A non-transitory computer-readable storage medium embodying a set of instructions, which when executed by one or more processing resources of a distributed storage system, cause the distributed storage system to:

receive a request to create a common snapshot between a local consistency group including a first plurality of volumes of the distributed storage system and a remote consistency group including a second plurality of volumes of a remote distributed storage system, wherein the remote consistency group is protecting the local consistency group;

initiating, on behalf of a first volume of the first plurality of volumes, a first three-way handshake of a consensus protocol with the local consistency group;

responsive to receipt, on behalf of a given volume of the first plurality of volumes, of a final request of the first three-way handshake:

temporarily disallow access to data stored on the given volume;

cause a first snapshot of the data stored on the given volume to be created in a dependent write-order consistent manner independent of any other volumes of the first plurality of volumes and in parallel with one or more other volumes of the first plurality of volumes;

cause a second snapshot of data stored on a volume of the second plurality of volumes corresponding to the given volume to be created in a dependent write-order consistent manner independent of any other volumes of the second plurality of volumes and in parallel with one or more other volumes of the second plurality of volumes; and

after the first snapshot and the second snapshot have been created, send a response to the first volume;

responsive to receipt, on behalf of the first volume, of responses from or on behalf of all other volumes of the first plurality of volumes, cause each of the first plurality of volumes to start allowing access to their respective data by initiating a second three-way handshake of the consensus protocol with the local consistency group.

14. The non-transitory computer-readable storage medium of claim 13 , wherein execution of the instructions by the one or more processing resources further cause the distributed storage system to responsive to receipt of the final request of the first three-way handshake, synchronize in-flight data between a subset of volumes of the first plurality of volumes that are associated with a common set of one or more disks and a corresponding subset of volumes of the second plurality of volumes by flushing a file system buffer cache for each volume of the subset of volumes to the common set of disks.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the first plurality of volumes comprises a subset of all member volumes of the local consistency group.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the distributed storage system comprises a plurality of storage nodes organized as a cluster.

17. A distributed storage system comprising:

one or more processing resources; and

one or more non-transitory computer-readable media, coupled to the one or more processing resources, having stored therein instructions that when executed by the one or more processing resources cause the distributed storage system to:

receive a request to create a common snapshot between a local consistency group including a first plurality of volumes of the distributed storage system and a remote consistency group including a second plurality of volumes of a remote distributed storage system, wherein the remote consistency group is protecting the local consistency group;

initiating, on behalf of a first volume of the first plurality of volumes, a first three-way handshake of a consensus protocol with the local consistency group;

responsive to receipt, on behalf of a given volume of the first plurality of volumes, of a final request of the first three-way handshake:

temporarily disallow access to data stored on the given volume;

cause a first snapshot of the data stored on the given volume to be created in a dependent write-order consistent manner independent of any other volumes of the first plurality of volumes and in parallel with one or more other volumes of the first plurality of volumes;

cause a second snapshot of data stored on a volume of the second plurality of volumes corresponding to the given volume to be created in a dependent write-order consistent manner independent of any other volumes of the second plurality of volumes and in parallel with one or more other volumes of the second plurality of volumes; and

after the first snapshot and the second snapshot have been created, send a response to the first volume;

responsive to receipt, on behalf of the first volume, of responses from or on behalf of all other volumes of the first plurality of volumes, cause each of the first plurality of volumes to start allowing access to their respective data by initiating a second three-way handshake of the consensus protocol with the local consistency group.

18. The distributed storage system of claim 17 , wherein execution of the instructions by the one or more processing resources further cause the distributed storage system to responsive to receipt of the final request of the first three-way handshake, synchronize in-flight data between a subset of volumes of the first plurality of volumes that are associated with a common set of one or more disks and a corresponding subset of volumes of the second plurality of volumes by flushing a file system buffer cache for each volume of the subset of volumes to the common set of disks.

19. The distributed storage system of claim 17 , wherein the first plurality of volumes comprises a subset of all member volumes of the local consistency group.

20. The distributed storage system of claim 17 , wherein the distributed storage system further comprises a plurality of storage nodes organized as a cluster.

Continuity (2)
Continuation 17219759 · Mar 31, 2021
Related Publication 20230289076A1 · Sep 14, 2023
References Cited (133)
US 4853875A · Brown · 1989 [cited by examiner]
US 5742792A · Yanai et al. · 1998 [cited by applicant]
US 6389551B1 · Yount · 2002 [cited by applicant]
US 6415372B1 · Zakai et al. · 2002 [cited by applicant]
US 6732124B1 · Koseki et al. · 2004 [cited by applicant]
US 7039827B2 · Meyer et al. · 2006 [cited by applicant]
US 7475204B2 · Buah et al. · 2009 [cited by applicant]
US 7500014B1 · Jacobson et al. · 2009 [cited by applicant]
US 7631066B1 · Schatz et al. · 2009 [cited by applicant]
US 7640451B2 · Meyer et al. · 2009 [cited by applicant]
US 7644305B2 · Friedrich et al. · 2010 [cited by applicant]
US 7890626B1 · Gadir · 2011 [cited by applicant]
US 8498967B1 · Chatterjee et al. · 2013 [cited by applicant]
US 8645623B1 · O'Shea et al. · 2014 [cited by applicant]
US 8856583B1 · Visser et al. · 2014 [cited by applicant]
US 8874960B1 · Khan et al. · 2014 [cited by applicant]
US 9189341B1 · Natanzon et al. · 2015 [cited by applicant]
US 10412066B1 · Vemuri · 2019 [cited by applicant]
US 10489230B1 · Chen et al. · 2019 [cited by applicant]
US 10496320B2 · Eisler et al. · 2019 [cited by applicant]
US 10725691B1 · Kaushik et al. · 2020 [cited by applicant]
US 10761768B1 · Kaushik et al. · 2020 [cited by applicant]
US 11036423B2 · Kaushik et al. · 2021 [cited by applicant]
US 11089105B1 · Karumbunathan · 2021 [cited by examiner]
US 11327857B2 · Bhargava et al. · 2022 [cited by applicant]
US 11360867B1 · Subramanian et al. · 2022 [cited by applicant]
US 11409622B1 · Kaushik et al. · 2022 [cited by applicant]
US 11481139B1 · Vijayan et al. · 2022 [cited by applicant]
US 11537314B1 · Subramanian et al. · 2022 [cited by applicant]
US 11550679B2 · Kaushik et al. · 2023 [cited by applicant]
US 11675503B1 · Ekins · 2023 [cited by examiner]
US 11892982B2 · Subramanian et al. · 2024 [cited by applicant]
US 11893261B2 · Narasingarayanapeta · 2024 [cited by applicant]
US 11934670B2 · Subramanian et al. · 2024 [cited by applicant]
US 12045491B2 · Subramanian et al. · 2024 [cited by applicant]
US 12050558B2 · Subramanian et al. · 2024 [cited by applicant]
US 20020132613A1 · Leung et al. · 2002 [cited by applicant]
US 20030037029A1 · Holenstein et al. · 2003 [cited by applicant]
US 20040153719A1 · Achiwa et al. · 2004 [cited by applicant]
US 20040267809A1 · East et al. · 2004 [cited by applicant]
US 20050229034A1 · Fujibayashi · 2005 [cited by applicant]
US 20050270855A1 · Earhart et al. · 2005 [cited by applicant]
US 20060095478A1 · Cherkauer et al. · 2006 [cited by applicant]
US 20060136354A1 · Bell et al. · 2006 [cited by applicant]
US 20060150006A1 · Mizutani · 2006 [cited by applicant]
US 20060236048A1 · Deguchi et al. · 2006 [cited by applicant]
US 20070016754A1 · Testardi · 2007 [cited by applicant]
US 20070180307A1 · Zohar et al. · 2007 [cited by applicant]
US 20070234006A1 · Radulescu et al. · 2007 [cited by applicant]
US 20080201702A1 · Bunn · 2008 [cited by applicant]
US 20090043979A1 · Jarvis · 2009 [cited by applicant]
US 20090089609A1 · Baba · 2009 [cited by applicant]
US 20090307530A1 · Tarta · 2009 [cited by applicant]
US 20100064168A1 · Smoot et al. · 2010 [cited by applicant]
US 20100082962A1 · Srinivasan et al. · 2010 [cited by applicant]
US 20100161554A1 · Datuashvili et al. · 2010 [cited by applicant]
US 20110106855A1 · Resch et al. · 2011 [cited by applicant]
US 20110314148A1 · Petersen et al. · 2011 [cited by applicant]
US 20120151249A1 · Swan et al. · 2012 [cited by applicant]
US 20120259961A1 · Winokur · 2012 [cited by examiner]
US 20130159620A1 · Sakashita et al. · 2013 [cited by applicant]
US 20140298136A1 · Resch et al. · 2014 [cited by applicant]
US 20150006949A1 · Bittles et al. · 2015 [cited by applicant]
US 20150058838A1 · Tsirkin · 2015 [cited by applicant]
US 20150378767A1 · Tarasuk-Levin et al. · 2015 [cited by applicant]
US 20160063083A1 · Mu et al. · 2016 [cited by applicant]
US 20160366226A1 · Friedman et al. · 2016 [cited by applicant]
US 20170093983A1 · Everhart et al. · 2017 [cited by applicant]
US 20180260125A1 · Botes · 2018 [cited by examiner]
US 20180352032A1 · Liu et al. · 2018 [cited by applicant]
US 20190004908A1 · Gopinath et al. · 2019 [cited by applicant]
US 20190034286A1 · Brown et al. · 2019 [cited by applicant]
US 20190129976A1 · Cha et al. · 2019 [cited by applicant]
US 20190212924A1 · Ward et al. · 2019 [cited by applicant]
US 20190229978A1 · Rajvaidya et al. · 2019 [cited by applicant]
US 20190347352A1 · Gochkov et al. · 2019 [cited by applicant]
US 20190394266A1 · Fukuyama et al. · 2019 [cited by applicant]
US 20200034258A1 · Avraham et al. · 2020 [cited by applicant]
US 20200050495A1 · Voutilainen et al. · 2020 [cited by applicant]
US 20200050587A1 · Kaushik et al. · 2020 [cited by applicant]
US 20200081801A1 · Brown et al. · 2020 [cited by applicant]
US 20200125460A1 · Selvaraj et al. · 2020 [cited by applicant]
US 20200133520A1 · Patnaik et al. · 2020 [cited by applicant]
US 20200242130A1 · Chen · 2020 [cited by examiner]
US 20200273984A1 · Nakano et al. · 2020 [cited by applicant]
US 20200274812A1 · Ouyang · 2020 [cited by examiner]
US 20200278984A1 · Kaushik et al. · 2020 [cited by applicant]
US 20200319982A1 · Rusev et al. · 2020 [cited by applicant]
US 20210303165A1 · Kaushik et al. · 2021 [cited by applicant]
US 20210374157A1 · Reddy et al. · 2021 [cited by applicant]
US 20220019350A1 · Karr · 2022 [cited by applicant]
US 20220121533A1 · Kumar et al. · 2022 [cited by applicant]
US 20220284328A1 · Wang · 2022 [cited by examiner]
US 20220317896A1 · Valan et al. · 2022 [cited by applicant]
US 20220317897A1 · Subramanian et al. · 2022 [cited by applicant]
US 20220318104A1 · Bhargava et al. · 2022 [cited by applicant]
US 20220318105A1 · Subramanian et al. · 2022 [cited by applicant]
US 20220357854A1 · Narasingarayanapeta · 2022 [cited by applicant]
US 20220357855A1 · Narasingarayanapeta · 2022 [cited by applicant]
US 20220374321A1 · Kaushik et al. · 2022 [cited by applicant]
US 20230110776A1 · Subramanian et al. · 2023 [cited by applicant]
US 20230119175A1 · Kaushik et al. · 2023 [cited by applicant]
US 20230121272A1 · Subramanian et al. · 2023 [cited by applicant]
US 20230161495A1 · Narasingarayanapeta · 2023 [cited by applicant]
US 20230168834A1 · Narasingarayanapeta · 2023 [cited by applicant]
US 20240385995A1 · Subramanian et al. · 2024 [cited by applicant]
US 20240393973A1 · Subramanian et al. · 2024 [cited by applicant]
Co-pending U.S. Appl. No. 17/861,768, inventor Narasingarayanapeta; Krishna Murthy Chandraiah Setty, filed Jul. 11, 2022. [cited by applicant]
Co-pending U.S. Appl. No. 17/970,961, inventor Vijayan; Anoop, filed Oct. 21, 2022. [cited by applicant]
Non-Final Office Action mailed Jan. 17, 2023 for U.S. Appl. No. 17/881,381, filed Aug. 4, 2022, 18 pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 13, 2023 for U.S. Appl. No. 18/066,775, filed Dec. 15, 2022, 16 pages. [cited by applicant]
Non-Final Office Action mailed on Feb. 17, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 11 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 16, 2023 for U.S. Appl. No. 17/970,961, filed Oct. 21, 2022, 6 pages. [cited by applicant]
Notice of Allowance mailed Dec. 13, 2022 for U.S. Appl. No. 17/219,815, filed Mar. 31, 2021. [cited by applicant]
Notice of Allowance mailed Nov. 2, 2022 for U.S. Appl. No. 17/495,990, filed Oct. 7, 2021, 8 pages. [cited by applicant]
Notice of Allowance mailed Nov. 18, 2022 for U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 12 pages. [cited by applicant]
Notice of Allowance mailed Oct. 31, 2022 for U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 9 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 7, 2023 for U.S. Appl. No. 17/219,740, filed Mar. 31, 2021, 7 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 14, 2023 for U.S. Appl. No. 17/505,962, filed Oct. 20, 2021, 8 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 3, 2023 for U.S. Appl. No. 17/219,815, filed Mar. 31, 2021, 5 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 20, 2023 for U.S. Appl. No. 17/219,740, filed Mar. 31, 2021, 11 pages. [cited by applicant]
Pan L., “Paxos at Its Heart is Very Simple”, Distributed System, 2018, Retrieved From : URL: https://blog.the-pans.com/paxos-explained/, pp. 1-12. [cited by applicant]
U.S. Non-Final Office action dated Dec. 21, 2021 in U.S. Appl. No. 17/238,829, filed Apr. 23, 2021, 20 pages. [cited by applicant]
U.S. Notice of Allowance dated Apr. 6, 2022 in U.S. Appl. No. 17/238,829, filed Apr. 23, 2021, 9 pages. [cited by applicant]
U.S. Notice of Allowance mailed Jun. 24, 2022 in U.S. Appl. No. 17/219,816, filed Mar. 31, 2021, 8 pages. [cited by applicant]
U.S. Notice of Allowance mailed May 6, 2022 in U.S. Appl. No. 17/219,746, filed Mar. 31, 2021, 18 pages. [cited by applicant]
U.S. Notice of Allowance mailed Oct. 26, 2022 in U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 9 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 2, 2024 for U.S. Appl. No. 17/219,759, filed Mar. 31, 2021, 05 pages. [cited by applicant]
Notice of Allowance mailed on Jan. 2, 2024 for U.S. Appl. No. 17/505,962, filed Oct. 20, 2021, 02 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2024 for U.S. Appl. No. 18/053,561, filed Nov. 8, 2022, 08 pages. [cited by applicant]
Notice of Allowance mailed on May 31, 2024 for U.S. Appl. No. 18/448,325, filed Aug. 11, 2023, 8 pages. [cited by applicant]
Notice of Allowance mailed on Sep. 20, 2023 for U.S. Appl. No. 17/219,759, filed Mar. 31, 2021, 07 pages. [cited by applicant]
Notice of Allowance mailed on Sep. 20, 2023 for U.S. Appl. No. 17/505,962, filed Oct. 20, 2021, 08 pages. [cited by applicant]
Cited By (2)
US 12,578,896 US 12,705,212