IP Library Granted Patent US 12,373,418
Granted Patent B2
US 12,373,418 · App. 18/502,287 · Granted Jul 29, 2025

Granular replication of volume subsets

Inventors: Vijay Mohan Deshmukh (Fremont, CA); Atul Ramesh Pandit (San Jose, CA); Pawan Saxena (Pleasanton, CA)
Assignee: NetApp, Inc.
G06F16/2358G06F16/245G06F16/27
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,373,418
App. No.
18/502,287
Granted
Jul 29, 2025
Kind
B2
Abstract

Data is replicated on a backup node, where the granularity of the replication can be less than a full volume. A data consistency group comprising a subset of data for a volume is defined for a primary node. A set of differences for the data consistency group is sent to a backup node. The backup node creates change logs in response to receiving the set of differences. In response to receiving a request to access a file having data in the data consistency group, the backup node creates a clone of the file. The backup node determines whether an update to a data block of the file exists in the change logs. In response to determining that the update to the data block exists in the change logs, the backup node updates a copy of the data block for the cloned file with data in the change logs.

Claims (50)

1. A method, comprising:

evaluating a first snapshot of a volume at a first point in time and a second snapshot of the volume at a second point in time to identify differences of the volume between the first point in time and the second point in time, wherein the differences are identified at a volume level for data of the volume;

utilizing configuration data, defining a subset of the data of the volume as a consistency group that includes less than all of the data of the volume, to filter the differences to generate a set of differences for the consistency group within the volume, wherein the filtering removes differences identified for data of the volume not included within the consistency group; and

replicating the set of differences, excluding the differences identified for data of the volume not included within the consistency group, to a destination node for creating a change log having a domain at a consistency group level or sub-consistency group level.

2. The method of claim 1 , comprising:

filtering the differences at a block level granularity to exclude blocks that are the same between the first snapshot and the second snapshot.

3. The method of claim 1 , comprising:

utilizing the configuration data during snapshot creation so that the first snapshot includes data of the consistency group and exclude other data within the volume that is not part of the consistency group.

4. The method of claim 1 , comprising:

utilizing the configuration data during snapshot creation so that the second snapshot includes data of the consistency group and exclude other data within the volume that is not part of the consistency group.

5. The method of claim 1 , comprising:

transmitting the set of differences of over a network to the destination node while preserving block sharing amongst blocks storing data of the volume.

6. The method of claim 1 , comprising:

transmitting the set of differences of over a network to the destination node while retaining compression of blocks storing data of the volume.

7. The method of claim 1 , comprising:

defining the change log to have the domain set for a file system within the consistency group.

8. The method of claim 1 , comprising:

defining the change log to have the domain set for a logical unit number (LUN) within the consistency group.

9. The method of claim 1 , comprising:

defining the change log to have the domain set for a virtual machine disk within the consistency group.

10. A non-transitory machine readable medium having stored thereon instructions comprising machine executable code which when executed by a machine, cause the machine to:

evaluate a first snapshot of a volume at a first point in time and a second snapshot of the volume at a second point in time to identify differences of the volume between the first point in time and the second point in time, wherein the differences are identified at a volume level for data of the volume;

utilize configuration data, defining a subset of the data of the volume as a consistency group that includes less than all of the data of the volume, to filter the differences to generate a set of differences for the consistency group within the volume, wherein the filtering removes differences identified for data of the volume not included within the consistency group; and

replicate the set of differences, excluding the differences identified for data of the volume not included within the consistency group, to a destination node for creating a change log having a domain at a consistency group level or sub-consistency group level.

11. The non-transitory machine readable medium of claim 10 , wherein the machine executable code causes the machine to:

apply data operations to change data at the destination node in relation to the set of differences; and

log metadata blocks in the change log specify information about the set of differences.

12. The non-transitory machine readable medium of claim 10 , wherein the machine executable code causes the machine to:

determine whether a condition exists to trigger the application of the change log to data of the consistency group maintained at the destination node; and

in response to detecting the condition, apply the change log to the data of the consistency group maintained at the destination node.

13. The non-transitory machine readable medium of claim 10 , wherein the machine executable code causes the machine to:

utilize the configuration data during snapshot creation so that the first snapshot includes data of the consistency group and exclude other data within the volume that is not part of the consistency group.

14. An apparatus comprising:

a processor; and

a machine readable storage medium having machine executable code stored therein that is executable by the processor to cause the apparatus to:

evaluate a first snapshot of a volume at a first point in time and a second snapshot of the volume at a second point in time to identify differences of the volume between the first point in time and the second point in time, wherein the differences are identified at a volume level for data of the volume;

utilize configuration data, defining a subset of the data of the volume as a consistency group that includes less than all of the data of the volume, to filter the differences to generate a set of differences for the consistency group within the volume, wherein the filtering removes differences identified for data of the volume not included within the consistency group; and

replicate the set of differences, excluding the differences identified for data of the volume not included within the consistency group, to a destination node for creating a change log having a domain at a consistency group level or sub-consistency group level.

15. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

filter the differences at a block level granularity to exclude blocks that are the same between the first snapshot and the second snapshot.

16. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

utilize the configuration data during snapshot creation so that the first snapshot includes data of the consistency group and exclude other data within the volume that is not part of the consistency group.

17. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

utilize the configuration data during snapshot creation so that the second snapshot includes data of the consistency group and exclude other data within the volume that is not part of the consistency group.

18. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

transmit the set of differences over a network to the destination node while preserving block sharing amongst blocks storing data of the volume.

19. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

transmit the set of differences over a network to the destination node while retaining compression of blocks storing data of the volume.

20. The apparatus of claim 14 , wherein the machine executable code causes the apparatus to:

define the change log to have the domain set for a file system within the consistency group.

Continuity (3)
Continuation 17892179 · Aug 22, 2022
Continuation 14689936 · Apr 17, 2015
Related Publication 20240193149A1 · Jun 13, 2024
References Cited (42)
US 6038639A · O'Brien et al. · 2000 [cited by applicant]
US 7308545B1 · Kekre et al. · 2007 [cited by applicant]
US 7349913B2 · Clark et al. · 2008 [cited by applicant]
US 7870172B1 · Sarma · 2011 [cited by applicant]
US 8099387B2 · Boyd et al. · 2012 [cited by applicant]
US 8335771B1 · Natanzon · 2012 [cited by examiner]
US 8407435B2 · Fienblit · 2013 [cited by examiner]
US 8949614B1 · Jernigan, IV et al. · 2015 [cited by applicant]
US 9043567B1 · Modukuri · 2015 [cited by examiner]
US 9063892B1 · Taylor · 2015 [cited by examiner]
US 9087112B1 · Natanzon · 2015 [cited by examiner]
US 9135120B1 · Natanzon · 2015 [cited by examiner]
US 9218252B1 · Revur · 2015 [cited by examiner]
US 9405481B1 · Cohen · 2016 [cited by examiner]
US 10152250B1 · Xiong · 2018 [cited by examiner]
US 10185583B1 · Natanzon · 2019 [cited by examiner]
US 10621058B2 · Patnaik · 2020 [cited by examiner]
US 11423004B2 · Deshmukh et al. · 2022 [cited by applicant]
US 11567674B2 · Kaushik · 2023 [cited by examiner]
US 11809402B2 · Deshmukh et al. · 2023 [cited by applicant]
US 20030195903A1 · Manley et al. · 2003 [cited by applicant]
US 20060080574A1 · Saito et al. · 2006 [cited by applicant]
US 20070136389A1 · Bergant · 2007 [cited by examiner]
US 20070260830A1 · Faibish et al. · 2007 [cited by applicant]
US 20070276885A1 · Valiyaparambil et al. · 2007 [cited by applicant]
US 20080034016A1 · Cisler et al. · 2008 [cited by applicant]
US 20080172542A1 · Kaushik · 2008 [cited by applicant]
US 20080294858A1 · Sakai et al. · 2008 [cited by applicant]
US 20080301203A1 · Adkins et al. · 2008 [cited by applicant]
US 20090300304A1 · Boyd et al. · 2009 [cited by applicant]
US 20110099187A1 · Hansen · 2011 [cited by applicant]
US 20120233522A1 · Barton et al. · 2012 [cited by applicant]
US 20120323850A1 · Hildebrand et al. · 2012 [cited by applicant]
US 20120330903A1 · Periyagaram et al. · 2012 [cited by applicant]
US 20130006930A1 · Taniguchi et al. · 2013 [cited by applicant]
US 20140025770A1 · Warfield et al. · 2014 [cited by applicant]
US 20140149670A1 · Ezra et al. · 2014 [cited by applicant]
US 20160077919A1 · Duggan et al. · 2016 [cited by applicant]
US 20160085837A1 · Kotagiri et al. · 2016 [cited by applicant]
US 20170249222A1 · Patnaik · 2017 [cited by examiner]
US 20220398240A1 · Deshmukh et al. · 2022 [cited by applicant]
Notice of Allowance mailed Jun. 28, 2023 for U.S. Appl. No. 17/892,179, filed Aug. 22, 2022, 9 pages. [cited by applicant]