IP Library Granted Patent US 12,632,349
Granted Patent B2
US 12,632,349 · App. 18/541,482 · Granted May 19, 2026

Resync transfer for recovering from storage site failure utilizing background scanner

Inventors: Rachita Kothiyal (San Jose, CA); Atul Ramesh Pandit (Los Gatos, CA); Abhishek Naidu (San Jose, CA); Anil Kumar Ponnapur (Sunnyvale, CA); Tijin George (San Jose, CA)
Assignee: NetApp, Inc.
G06F11/1662G06F2201/805
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,632,349
App. No.
18/541,482
Granted
May 19, 2026
Kind
B2
Abstract

Techniques are provided for performing a resync transfer to recover from a storage site failure. During normal operation of a first site hosting a first volume, data is replicated to a second volume hosted by a second site. If the first site fails, when clients are redirected to the second volume at the second site. When the first site recovers, data modifications made to the second volume are resynced back to the first volume. As part of synchronizing the first volume, a data warehouse is rebuilt at the first site in order to track the location of blocks present on the replication destination. Typically, the data modifications are transferred after the data warehouse is rebuilt, which results in significantly long resync times. The techniques provided herein decrease the resync time by either rebuilding the data warehouse in parallel with resyncing the data modifications or circumvent the need for rebuild.

Claims (57)

1 . A method, comprising:

replicating data from a first volume hosted at a first site as a primary volume to a second volume hosted at a second site as a secondary volume;

in response to the first site experiencing a failure, promoting the second volume to be the primary volume and directing client I/O to the second volume for storing data modifications;

in response to the first site recovering, initiating a resync operation to transfer the data modifications from the second volume to the first volume for re-promoting the first volume to be the primary volume; and

during the resync operation:

logging database rebuild operations, for rebuilding a database file used to track blocks that are shared by files of at least one of the first volume or the second volume, into a log metafile that includes mappings between virtual volume block numbers of the second volume and virtual volume block numbers of the first volume; and

implementing a background scanner to reconcile information within the log metafile for rebuilding the database file, wherein the background scanner processes the mappings to perform block share operations to share file block numbers between the second volume and the first volume.

2 . The method of claim 1 , comprising:

representing a data warehouse, used to track locations of blocks within at least one of the first volume or the second volume, utilizing both the database file and the log metafile; and

utilizing both the database file and the log metafile to obtain a consistent state of at least one of the first volume or the second volume.

3 . The method of claim 1 , comprising:

evaluating the log metafile to determine whether a block has been processed as part of the resync operation.

4 . The method of claim 1 , comprising:

utilizing the log metafile and the database file to deduplicate blocks storing data of the first volume.

5 . The method of claim 1 , comprising:

in response to the resync operation completing, demoting the second volume to become the secondary volume and promoting the first volume to become the primary volume.

6 . The method of claim 1 , comprising:

maintaining a data warehouse for the secondary volume, wherein the data warehouse tracks blocks storing data of the secondary volume.

7 . The method of claim 1 , wherein virtual volume block number mappings are logged into the log metafile.

8 . The method of claim 1 , comprising:

populating a data warehouse maintained at the second site for the secondary volume with virtual volume block numbers used by the first volume.

9 . The method of claim 1 , comprising:

populating a data warehouse maintained at the second site for the secondary volume with mappings between virtual volume block numbers, used by the first volume for storing the data, to locations used by the second volume for storing corresponding data.

10 . A computing device comprising:

a memory storing instructions; and

a processor coupled to the memory, the processor configured to execute the instructions to perform operations comprising:

replicating data from a first volume hosted at a first site as a primary volume to a second volume hosted at a second site as a secondary volume;

in response to the first site experiencing a failure, promoting the second volume to be the primary volume and directing client I/O to the second volume for storing data modifications;

in response to the first site recovering, initiating a resync operation to transfer the data modifications from the second volume to the first volume for re-promoting the first volume to be the primary volume; and

during the resync operation:

logging database rebuild operations, for rebuilding a database file used to track blocks that are shared by files of at least one of the first volume or the second volume, into a log metafile that includes mappings between virtual volume block numbers of the second volume and virtual volume block numbers of the first volume; and

implementing a background scanner to reconcile information within the log metafile for rebuilding the database file, wherein the background scanner processes the mappings to perform block share operations to share file block numbers between the second volume and the first volume.

11 . The computing device of claim 10 , wherein the operations comprise:

logging virtual volume block numbers from the second site into the log metafile indexed by the virtual volume block numbers and mapped to virtual volume block numbers used by the first site.

12 . The computing device of claim 10 , wherein the operations comprise:

logging virtual volume block numbers from the second site into the log metafile indexed by the virtual volume block numbers, wherein the indexes are at fixed offsets and a maximum number of indices is derived from a largest virtual volume block number from the second site.

13 . The computing device of claim 10 , wherein the operations comprise:

specifying that the resync operation is complete in response to virtual volume block numbers from the second site being logged into the log metafile.

14 . The computing device of claim 10 , wherein the operations comprise:

asynchronously processing map entries within the log metafile, wherein for each map entry from the second volume to the first volume, a block share is performed between a file block number within a data warehouse for the second volume to a container file block number associated with the first volume.

15 . A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to perform operations comprising:

replicating data from a first volume hosted at a first site as a primary volume to a second volume hosted at a second site as a secondary volume;

in response to the first site experiencing a failure, promoting the second volume to be the primary volume and directing client I/O to the second volume for storing data modifications;

in response to the first site recovering, initiating a resync operation to transfer the data modifications from the second volume to the first volume for re-promoting the first volume to be the primary volume; and

during the resync operation:

logging database rebuild operations, for rebuilding a database file used to track blocks that are shared by files of at least one of the first volume or the second volume, into a log metafile that includes mappings between virtual volume block numbers of the second volume and virtual volume block numbers of the first volume; and

implementing a background scanner to reconcile information within the log metafile for rebuilding the database file, wherein the background scanner processes the mappings to perform block share operations to share file block numbers between the second volume and the first volume.

16 . The non-transitory machine readable medium of claim 15 , wherein the operations comprise:

asynchronously processing map entries within the log metafile, wherein for each map entry from the second volume to the first volume, a block share is performed between a file block number within a data warehouse for the second volume to a container file block number associated with the first volume.

17 . The non-transitory machine readable medium of claim 15 , wherein the operations comprise:

populating a data warehouse maintained at the second site for the secondary volume with virtual volume block numbers used by the first volume.

18 . The non-transitory machine readable medium of claim 15 , wherein the operations comprise:

populating a data warehouse maintained at the second site for the secondary volume with mappings between virtual volume block numbers, used by the first volume for storing the data, to locations used by the second volume for storing corresponding data.

19 . The non-transitory machine readable medium of claim 15 , wherein the operations comprise:

logging virtual volume block numbers from the second site into the log metafile indexed by the virtual volume block numbers and mapped to virtual volume block numbers used by the first site.

20 . The non-transitory machine readable medium of claim 15 , wherein the operations comprise:

logging virtual volume block numbers from the second site into the log metafile indexed by the virtual volume block numbers, wherein the indexes are at fixed offsets and a maximum number of indices is derived from a largest virtual volume block number from the second site.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2024
From: KOTHIYAL, RACHITA; PANDIT, ATUL RAMESH; NAIDU, ABHISHEK; PONNAPUR, ANIL KUMAR; GEORGE, TIJIN
To: NETAPP, INC.
Reel/Frame 066511/0058 →
Continuity (1)
Related Publication 20250199921A1 · Jun 19, 2025
References Cited (34)
US 7308545B1 · Kekre · 2007 [cited by examiner]
US 8010758B1 · Bezbaruah et al. · 2011 [cited by applicant]
US 8099571B1 · Driscoll et al. · 2012 [cited by applicant]
US 10360099B2 · Subramanian et al. · 2019 [cited by applicant]
US 10521143B2 · Subramanian et al. · 2019 [cited by applicant]
US 11036420B2 · Thoppil et al. · 2021 [cited by applicant]
US 11048430B2 · Thoppil et al. · 2021 [cited by applicant]
US 11132339B2 · Kaushik et al. · 2021 [cited by applicant]
US 11151162B2 · Narasingarayanapeta et al. · 2021 [cited by applicant]
US 11210013B2 · Thoppil et al. · 2021 [cited by applicant]
US 11615001B2 · Naidu et al. · 2023 [cited by applicant]
US 11650886B2 · Mathew et al. · 2023 [cited by applicant]
US 11853104B2 · Naidu et al. · 2023 [cited by applicant]
US 12386714B2 · Kothiyal et al. · 2025 [cited by applicant]
US 20050144202A1 · Chen · 2005 [cited by examiner]
US 20100115215A1 · Rosychuk · 2010 [cited by applicant]
US 20140344526A1 · Brown · 2014 [cited by examiner]
US 20160328303A1 · Brandner et al. · 2016 [cited by applicant]
US 20170091057A1 · Ramasubramaniam et al. · 2017 [cited by applicant]
US 20170161308A1 · Jarvis · 2017 [cited by applicant]
US 20190384506A1 · Shivanand · 2019 [cited by examiner]
US 20210240348A1 · Xiong · 2021 [cited by examiner]
US 20230029465A1 · Mallipeddi et al. · 2023 [cited by applicant]
US 20230409535A1 · Kashi Visvanathan · 2023 [cited by examiner]
US 20250199922A1 · Kothiyal et al. · 2025 [cited by applicant]
“FabricPool tier management”, NetApp, URL: https://docs.netapp.com/us-en/ontap/pdfs/sidebar/FabricPool_tier_management.pdf, Apr. 16, 2024, 58 pages. [cited by applicant]
“HA pair management”, NetApp, URL: https://docs.netapp.com/us-en/ontap/pdfs/sidebar/HA_pair_management.pdf, Apr. 16, 2024, 26 pages. [cited by applicant]
“SVM data mobility”, NetApp, URL: https://docs.netapp.com/us-en/ontap/pdfs/sidebar/SVM_data_mobility.pdf, Apr. 16, 2024, 14 pages. [cited by applicant]
Corrected Notice of Allowance mailed on May 14, 2025 for U.S. Appl. No. 18/541,507, filed Dec. 15, 2023, 02 pages. [cited by applicant]
“IBM System Storage SAN Volume Controller and Storewise V700 Replication,” IBM, Retrieved from Internet : https://books.google.com/booksid=Pb66AgAAQBAJ&lpg=PR11&ots=xpDsrxBNa7&dq=storage%20failover%20site%20resynchroniz… [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2024/060003, mailed on Apr. 22, 2025, 19 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 3, 2025 for U.S. Appl. No. 18/541,495, filed Dec. 15, 2023, 15 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 18, 2024 for U.S. Appl. No. 18/541,507, filed Dec. 15, 2023, 07 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 9, 2025 for U.S. Appl. No. 18/541,507, filed Dec. 15, 2023, 07 pages. [cited by applicant]