IP Library Granted Patent US 12,475,002
Granted Patent B2
US 12,475,002 · App. 17/220,102 · Granted Nov 18, 2025

System and method for efficient block level granular replication

Inventors: Rithin Shetty (Sunnyvale, CA); Vishwajith Shivappa (Mysore, IN); Paul Lockwood (Santa Cruz, CA); Pawan Saxena (Pleasanton, CA); Preethi Gopaulakrishnan (Sunnyvale, CA)
Assignee: NetApp, Inc.
G06F11/1469G06F11/1451G06F16/128G06F2201/82
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,475,002
App. No.
17/220,102
Granted
Nov 18, 2025
Kind
B2
Abstract

A system and method for efficiently restoring one or more data containers is provided. A common persistent consistency point image (PCPI) is identified between a source and a destination storage systems prior to the destination storage system performing a rollback operation to the commonly identified PCPI. Differential data is then transmitted from the source storage system in a line efficient manner to the destination storage system.

Claims (44)

1 . A method comprising:

detecting that a subset of containers of a first file system of a first device comprise inconsistent data;

suspending operations directed to the subset of containers;

modifying the first file system so that content of the subset of containers matches content of a common image, wherein the modifying rolls back a state of a container within the first file system to a point in time of the container captured by the common image;

overwriting the content of the subset of containers with a content difference transferred from an active file system of a second device and corresponding to a difference between content of the common image and content of the active file system, wherein only changed blocks or references to the changed blocks of a container of the subset of containers are transferred if the container exists within the common image, wherein the content difference is identified as changes to the active file system by clients not captured by the common image, and wherein the overwriting comprises:

in response to determining that the content difference comprises multiple instances of a block of data referenced by multiple files, transferring a single instance of the block of data from the second device to the first device for overwriting the content of the subset of containers, wherein a reference for the block is transmitted instead of the single instance of the block based upon the block being shared with the common image; and

unsuspending and processing the operations directed to the subset of containers.

2 . The method of claim 1 , comprising:

enabling restart of a transfer of the content difference, from the second device to the first device, from a point corresponding to a last completed portion of the content difference being transferred.

3 . The method of claim 1 , comprising:

preserving a set of logical unit number identifiers prior to creating a rollback image on the first device before.

4 . The method of claim 3 , comprising:

restoring the set of logical unit identifiers after the content difference has been received from the second device.

5 . The method of claim 1 , wherein a suspended read operation is unsuspended and processed.

6 . The method of claim 1 , wherein the common image was created prior to the subset of containers becoming corrupted and corresponds to a common time of instantiation of the first file system and the active file system.

7 . The method of claim 1 , comprising:

processing a write operation directed to a first container within the first file system based upon the first container not being within the subset of containers.

8 . The method of claim 1 , wherein compression of the content difference, received from the second device, is retained.

9 . The method of claim 1 , wherein data deduplication of the content difference, received from the second device, is maintained.

10 . A computing device comprising:

a memory comprising machine executable code; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

detect that a subset of containers of a first file system of a first device comprise inconsistent data;

suspend operations directed to the subset of containers;

modify the first file system so that content of the subset of containers matches content of a common image, wherein the modifying rolls back a state of a container within the first file system to a point in time of the container captured by the common image;

overwrite the content of the subset of containers with a content difference transferred from an active file system of a second device and corresponding to a difference between content of the common image and content of the active file system, wherein only changed blocks or references to the changed blocks of a container of the subset of containers are transferred if the container exists within the common image, wherein the content difference is identified as changes to the active file system by clients not captured by the common image, and wherein the overwriting comprises:

in response to determining that the content difference comprises multiple instances of a block of data referenced by multiple files, transfer a single instance of the block of data from the second device to the first device for overwriting the content of the subset of containers, wherein a reference for the block is transmitted instead of the single instance of the block based upon the block being shared with the common image; and

unsuspended and process the operations directed to the subset of containers.

11 . The computing device of claim 10 , wherein the subset of containers comprises a first file, and wherein the machine executable code causes the processor to deny access to the first file and allow access to other files and luns within the first file system.

12 . The computing device of claim 10 , wherein the machine executable code causes the processor to process requests directed to data of the first file system other than the subset of containers.

13 . The computing device of claim 10 , wherein the content difference comprises changes between a second subset of containers of the active file system and the common image.

14 . The computing device of claim 13 , wherein the content difference comprises an identifier of a first block of data existing in the common image.

15 . The computing device of claim 13 , wherein the content difference comprises an identifier of a first block of data previously transmitted from the second device to the first device.

16 . The computing device of claim 10 , wherein the machine executable code causes the processor to store a set of lun identifiers prior to creating a rollback image on the first device.

17 . The computing device of claim 16 , wherein the machine executable code causes the processor to restore the set of lun identifiers after the content difference has been received.

18 . The computing device of claim 10 , wherein compression of the content difference, received from the second device, is retained.

19 . The computing device of claim 10 , wherein data deduplication of the content difference, received from the second device, is maintained.

20 . A non-transitory computer readable medium comprising program instructions, which when executed by a processor, causes the processor to:

detect that a subset of containers of a first file system of a first device comprise inconsistent data;

suspend operations directed to the subset of containers;

modify the first file system so that content of the subset of containers matches content of a common image, wherein the modifying rolls back a state of a container within the first file system to a point in time of the container captured by the common image;

overwrite the content of the subset of containers with a content difference transferred from an active file system of a second device and corresponding to a difference between content of the common image and content of the active file system, wherein the content difference is identified as changes to the active file system by clients not captured by the common image, wherein only changed blocks or references to the changed blocks of a container of the subset of containers are transferred if the container exists within the common image, and wherein the overwriting comprises:

in response to determining that the content difference comprises multiple instances of a block of data referenced by multiple files, transfer a single instance of the block of data from the second device to the first device for overwriting the content of the subset of containers, wherein a reference for the block is transmitted instead of the single instance of the block based upon the block being shared with the common image; and

unsuspended and process the operations directed to the subset of containers.

Priority Claims (1)
IN 2343/DEL/2014 · Aug 19, 2014 · national
Continuity (2)
Continuation 14526141 · Oct 28, 2014
Related Publication 20210216414A1 · Jul 15, 2021
References Cited (41)
US 5202887A · Ueno et al. · 1993 [cited by applicant]
US 5819292A · Hitz et al. · 1998 [cited by applicant]
US 7054960B1 · Bezbaruah · 2006 [cited by examiner]
US 7409494B2 · Edwards et al. · 2008 [cited by applicant]
US 7464238B1 · Yadav · 2008 [cited by applicant]
US 7472242B1 · Deshmukh · 2008 [cited by examiner]
US 7475098B2 · Patterson et al. · 2009 [cited by applicant]
US 7516285B1 · Haynes et al. · 2009 [cited by applicant]
US 7590633B1 · Manley · 2009 [cited by examiner]
US 7635682B2 · Denmeade et al. · 2009 [cited by applicant]
US 7653682B2 · Erasani et al. · 2010 [cited by applicant]
US 7685388B1 · Jiang · 2010 [cited by applicant]
US 7818299B1 · Federwisch · 2010 [cited by examiner]
US 7827350B1 · Jiang et al. · 2010 [cited by applicant]
US 8010509B1 · Khurana · 2011 [cited by examiner]
US 8099571B1 · Driscoll et al. · 2012 [cited by applicant]
US 8099727B2 · Bahat · 2012 [cited by examiner]
US 8260747B2 · Wu et al. · 2012 [cited by applicant]
US 8301791B2 · Malaiyandi · 2012 [cited by examiner]
US 9052833B2 · Petersen et al. · 2015 [cited by applicant]
US 9680790B2 · Ruggeri · 2017 [cited by examiner]
US 10977134B2 · Shetty et al. · 2021 [cited by applicant]
US 20030182312A1 · Chen et al. · 2003 [cited by applicant]
US 20030182313A1 · Federwisch et al. · 2003 [cited by applicant]
US 20030182330A1 · Manley et al. · 2003 [cited by applicant]
US 20050138089A1 · Kasai · 2005 [cited by applicant]
US 20060184587A1 · Federwisch et al. · 2006 [cited by applicant]
US 20080281879A1 · Kawamura · 2008 [cited by applicant]
US 20100325377A1 · Lango et al. · 2010 [cited by applicant]
US 20110035357A1 · Ting et al. · 2011 [cited by applicant]
US 20110225359A1 · Kulkarni et al. · 2011 [cited by applicant]
US 20110289344A1 · Bae et al. · 2011 [cited by applicant]
US 20120072659A1 · Wade et al. · 2012 [cited by applicant]
US 20120136832A1 · Sadhwani · 2012 [cited by applicant]
US 20130073519A1 · Lewis et al. · 2013 [cited by applicant]
US 20140149783A1 · Georgiev · 2014 [cited by examiner]
US 20150227543A1 · Venkatesh · 2015 [cited by examiner]
US 20150269032A1 · Muthyala · 2015 [cited by examiner]
EP 1882223A2 · 2008 [cited by applicant]
“A Model for Types and Levels of Human Interaction with Automation”, May 2000, Raja Parasuraman, Thomas H. Sheridan and Christopher D. Eickens, IEEE Transactions on Systems, Man and Cybernetics—part A: Systems and Human… [cited by applicant]
U.S. Appl. No. 13/237,742, filed Sep. 20, 2011, 48 pages. [cited by applicant]