IP Library › Granted Patent US 12,373,306
Granted Patent B2
US 12,373,306 · App. 18/352,457 · Granted Jul 29, 2025

Efficient table-based remote backup of data items between source and target storage servers

Inventors: Narayan Behera (Pune, IN); Sameer P. Mohod (Pune, IN)
Assignee: Dell Products L.P.
G06F11/1464G06F11/1451
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,306
App. No.
18/352,457
Granted
Jul 29, 2025
Kind
B2
Abstract

An apparatus comprises at least one processing device that includes a processor coupled to a memory. The processing device is configured to maintain for a first storage server one or more index tables characterizing data backed up from the first storage server to at least a second storage server, to receive a request to back up a particular data item from the first storage server to the second storage server, to access, responsive to the received request, a corresponding one of the one or more index tables characterizing data backed up from the first storage server to at least the second storage server, and to control backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables. Backup of the particular data item is illustratively controlled using content-based identifiers in the corresponding index table.

Claims (42)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to maintain for a first storage server one or more index tables characterizing data backed up from the first storage server to at least a second storage server;

to receive a request to back up a particular data item from the first storage server to the second storage server;

to access, responsive to the received request, a corresponding one of the one or more index tables characterizing data backed up from the first storage server to at least the second storage server; and

to control backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables;

wherein backup of the particular data item from the first storage server to the second storage server is initiated responsive to the one or more entries of the corresponding one of the one or more index tables not including an identifier of the particular data item; and

wherein the one or more entries of the corresponding one of the one or more index tables are updated to include the identifier of the particular data item responsive to receipt of an indication in the first storage server from the second storage server that backup of the particular data item has successfully completed in the second storage server.

2. The apparatus of claim 1 wherein said at least one processing device comprises at least a portion of a storage controller of a first storage system that includes at least the first storage server.

3. The apparatus of claim 1 wherein the first storage server and the second storage server comprise respective storage nodes of at least one storage system.

4. The apparatus of claim 1 wherein a given one of the one or more index tables comprises a backup file index table having a plurality of entries comprising respective content-based identifiers of respective files previously backed up between the first storage server and the second storage server.

5. The apparatus of claim 4 wherein the content-based identifiers in respective entries of the backup file index table comprise respective checksums generated from content of the respective previously backed-up files.

6. The apparatus of claim 4 wherein the content-based identifiers in respective entries of the backup file index table comprise respective hash values generated from content of the respective previously backed-up files.

7. The apparatus of claim 1 wherein at least one of the one or more index tables characterizes a plurality of data files previously backed up from the first storage server to the second storage server.

8. The apparatus of claim 7 wherein the first storage server comprises at least a portion of a primary storage system and the second storage server comprises at least a portion of a secondary storage system.

9. The apparatus of claim 7 wherein the first storage server comprises a source storage server of a designated backup process and the second storage server comprises a target storage server of the designated backup process, wherein in conjunction with completion of a corresponding portion of the designated backup process for a given data file, the source storage server marks backup of the given data file as complete.

10. The apparatus of claim 1 wherein controlling backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables comprises initiating backup of the particular data item from the first storage server to the second storage server responsive to the particular data item not having a corresponding content-based identifier in a first index table of the first storage server.

11. The apparatus of claim 10 wherein controlling backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables further comprises completing backup of the particular data item from the first storage server to the second storage server responsive to the particular data item not having a corresponding content-based identifier in a second index table of the second storage server.

12. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device:

to maintain for a first storage server one or more index tables characterizing data backed up from the first storage server to at least a second storage server;

to receive a request to back up a particular data item from the first storage server to the second storage server;

to access, responsive to the received request, a corresponding one of the one or more index tables characterizing data backed up from the first storage server to at least the second storage server; and

to control backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables;

wherein backup of the particular data item from the first storage server to the second storage server is initiated responsive to the one or more entries of the corresponding one of the one or more index tables not including an identifier of the particular data item; and

wherein the one or more entries of the corresponding one of the one or more index tables are updated to include the identifier of the particular data item responsive to receipt of an indication in the first storage server from the second storage server that backup of the particular data item has successfully completed in the second storage server.

13. The computer program product of claim 12 wherein a given one of the one or more index tables comprises a backup file index table having a plurality of entries comprising respective content-based identifiers of respective files previously backed up between the first storage server and the second storage server, and further wherein the content-based identifiers in respective entries of the backup file index table comprise at least one of respective checksums generated from content of the respective previously backed-up files and respective hash values generated from content of the respective previously backed-up files.

14. The computer program product of claim 12 wherein at least one of the one or more index tables characterizes a plurality of data files previously backed up from the first storage server to the second storage server.

15. The computer program product of claim 14 wherein the first storage server comprises a source storage server of a designated backup process and the second storage server comprises a target storage server of the designated backup process, wherein in conjunction with completion of a corresponding portion of the designated backup process for a given data file, the source storage server marks backup of the given data file as complete.

16. A method comprising:

maintaining for a first storage server one or more index tables characterizing data backed up from the first storage server to at least a second storage server;

receiving a request to back up a particular data item from the first storage server to the second storage server;

accessing, responsive to the received request, a corresponding one of the one or more index tables characterizing data backed up from the first storage server to at least the second storage server; and

controlling backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables;

wherein backup of the particular data item from the first storage server to the second storage server is initiated responsive to the one or more entries of the corresponding one of the one or more index tables not including an identifier of the particular data item; and

wherein the one or more entries of the corresponding one of the one or more index tables are updated to include the identifier of the particular data item responsive to receipt of an indication in the first storage server from the second storage server that backup of the particular data item has successfully completed in the second storage server.

17. The method of claim 16 wherein a given one of the one or more index tables comprises a backup file index table having a plurality of entries comprising respective content-based identifiers of respective files previously backed up between the first storage server and the second storage server, and further wherein the content-based identifiers in respective entries of the backup file index table comprise at least one of respective checksums generated from content of the respective previously backed-up files and respective hash values generated from content of the respective previously backed-up files.

18. The method of claim 16 wherein at least one of the one or more index tables characterizes a plurality of data files previously backed up from the first storage server to the second storage server.

19. The method of claim 18 wherein the first storage server comprises a source storage server of a designated backup process and the second storage server comprises a target storage server of the designated backup process, wherein in conjunction with completion of a corresponding portion of the designated backup process for a given data file, the source storage server marks backup of the given data file as complete.

20. The method of claim 16 wherein controlling backup of the particular data item based at least in part on one or more entries of the corresponding one of the one or more index tables comprises:

initiating backup of the particular data item from the first storage server to the second storage server responsive to the particular data item not having a corresponding content-based identifier in a first index table of the first storage server; and

completing backup of the particular data item from the first storage server to the second storage server responsive to the particular data item not having a corresponding content-based identifier in a second index table of the second storage server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2023
From: BEHERA, NARAYAN; MOHOD, SAMEER P.
To: DELL PRODUCTS L.P.
Reel/Frame 064258/0991 →
Continuity (1)
Related Publication 20250021445A1 · Jan 16, 2025
References Cited (97)
US 7165155B1 · Duprey et al. · 2007 [cited by applicant]
US 7440982B2 · Lu et al. · 2008 [cited by applicant]
US 7444464B2 · Urmston et al. · 2008 [cited by applicant]
US 8095726B1 · O'Connell et al. · 2012 [cited by applicant]
US 8214612B1 · Natanzon · 2012 [cited by applicant]
US 8301593B2 · Hoffmann et al. · 2012 [cited by applicant]
US 8335899B1 · Meiri et al. · 2012 [cited by applicant]
US 9104326B2 · Frank et al. · 2015 [cited by applicant]
US 9208162B1 · Hallak et al. · 2015 [cited by applicant]
US 9286003B1 · Hallak et al. · 2016 [cited by applicant]
US 9514014B2 · Webman et al. · 2016 [cited by applicant]
US 9552258B2 · Hallak et al. · 2017 [cited by applicant]
US 9606870B1 · Meiri et al. · 2017 [cited by applicant]
US 9716754B2 · Swift · 2017 [cited by applicant]
US 10176046B1 · Hu et al. · 2019 [cited by applicant]
US 10261693B1 · Schneider et al. · 2019 [cited by applicant]
US 10324640B1 · Chen et al. · 2019 [cited by applicant]
US 10338851B1 · Kronrod et al. · 2019 [cited by applicant]
US 10359965B1 · Stronge et al. · 2019 [cited by applicant]
US 10394485B1 · Chen et al. · 2019 [cited by applicant]
US 10437501B1 · Kucherov et al. · 2019 [cited by applicant]
US 10437855B1 · Stronge et al. · 2019 [cited by applicant]
US 10466925B1 · Blanco et al. · 2019 [cited by applicant]
US 10496324B2 · Meiri et al. · 2019 [cited by applicant]
US 10496489B1 · Chen et al. · 2019 [cited by applicant]
US 10496672B2 · Meiri et al. · 2019 [cited by applicant]
US 10838863B2 · Kamran et al. · 2020 [cited by applicant]
US 10866934B1 · Chen et al. · 2020 [cited by applicant]
US 10884650B1 · Meiri et al. · 2021 [cited by applicant]
US 10929050B2 · Kucherov et al. · 2021 [cited by applicant]
US 10951699B1 · Sayles et al. · 2021 [cited by applicant]
US 11079961B1 · Meiri et al. · 2021 [cited by applicant]
US 11099767B2 · Chen et al. · 2021 [cited by applicant]
US 11249834B2 · Chen et al. · 2022 [cited by applicant]
US 11288286B2 · Harduf et al. · 2022 [cited by applicant]
US 11379142B2 · Shtarkman et al. · 2022 [cited by applicant]
US 11386042B2 · Porath et al. · 2022 [cited by applicant]
US 20040236803A1 · Spiegeleer · 2004 [cited by examiner]
US 20070022121A1 · Bahar et al. · 2007 [cited by applicant]
US 20080279462A1 · Celi, Jr. · 2008 [cited by applicant]
US 20090132955A1 · Garg et al. · 2009 [cited by applicant]
US 20090276593A1 · Jacobson et al. · 2009 [cited by applicant]
US 20100179941A1 · Agrawal et al. · 2010 [cited by applicant]
US 20110022566A1 · Beaverson et al. · 2011 [cited by applicant]
US 20110225123A1 · D'Souza et al. · 2011 [cited by applicant]
US 20120124282A1 · Frank et al. · 2012 [cited by applicant]
US 20120317353A1 · Webman et al. · 2012 [cited by applicant]
US 20130305002A1 · Hallak et al. · 2013 [cited by applicant]
US 20130325824A1 · Shoens · 2013 [cited by applicant]
US 20140181016A1 · Whitehead et al. · 2014 [cited by applicant]
US 20140244935A1 · Ezra et al. · 2014 [cited by applicant]
US 20150046398A1 · Camble et al. · 2015 [cited by applicant]
US 20150378766A1 · Beveridge et al. · 2015 [cited by applicant]
US 20150378785A1 · Tarasuk-Levin et al. · 2015 [cited by applicant]
US 20160150012A1 · Barszczak et al. · 2016 [cited by applicant]
US 20160170987A1 · Kesselman · 2016 [cited by applicant]
US 20160202927A1 · Klarakis et al. · 2016 [cited by applicant]
US 20160224259A1 · Ahrens et al. · 2016 [cited by applicant]
US 20160261513A1 · Aingaran et al. · 2016 [cited by applicant]
US 20160345207A1 · Kwak et al. · 2016 [cited by applicant]
US 20160357468A1 · Hathorn et al. · 2016 [cited by applicant]
US 20170075842A1 · Su et al. · 2017 [cited by applicant]
US 20170132243A1 · Lewis et al. · 2017 [cited by applicant]
US 20170185529A1 · Chhabra et al. · 2017 [cited by applicant]
US 20170192857A1 · Meiri et al. · 2017 [cited by applicant]
US 20180095873A1 · Nakagoe et al. · 2018 [cited by applicant]
US 20190303490A1 · Chen et al. · 2019 [cited by applicant]
US 20190392060A1 · Meiri et al. · 2019 [cited by applicant]
US 20200026616A1 · Hu et al. · 2020 [cited by applicant]
US 20200233881A1 · Harduf et al. · 2020 [cited by applicant]
US 20200250089A1 · Kamran et al. · 2020 [cited by applicant]
US 20200341641A1 · Kucherov et al. · 2020 [cited by applicant]
US 20200364106A1 · Chen et al. · 2020 [cited by applicant]
US 20210124494A1 · Chen et al. · 2021 [cited by applicant]
US 20210124657A1 · Kamran et al. · 2021 [cited by applicant]
US 20210240349A1 · Meiri et al. · 2021 [cited by applicant]
US 20210357361A1 · Porath et al. · 2021 [cited by applicant]
US 20210365185A1 · Shtarkman et al. · 2021 [cited by applicant]
WO 2016111954A1 · 2016 [cited by applicant]
International Search Report and Written Opinion for PCT/US2019/024900, dated Jan. 7, 2020, 12 pages. [cited by applicant]
International Search Report and Written Opinion for PCT/US2019/024885, dated Jan. 7, 2020, 13 pages. [cited by applicant]
EMC Corporation, “Introduction to XtremIO Virtual Copies,” White Paper, Mar. 2016, 39 pages. [cited by applicant]
EMC Corporation, “XtremIO Data Protection (XDP): Flash-Specific Data Protection, Provided by XtremIO (Ver. 4.0),” White Paper, Apr. 2015, 25 pages. [cited by applicant]
Dell EMC, “XtremIO v6.0 Specifications,” Specification Sheet, 2017, 4 pages. [cited by applicant]
Dell EMC, “Dell EMC XtremIO X2: Next-Generation All-Flash Array,” Data Sheet, 2017, 5 pages. [cited by applicant]
EMC Corporation, “High Availability, Data Protection and Data Integrity in the XtremIO Architecture,” White Paper, Apr. 2015, 28 pages. [cited by applicant]
Dell EMC, “Introduction to Dell EMC XtremIO X2 Storage Array—A Detailed Review,” Dell EMC White Paper, Aug. 2017, 46 pages. [cited by applicant]
N. Tolia et al., “Opportunistic Use of Content Addressable Storage for Distributed File Systems,” Proceedings of the USENIX Annual Technical Conference, Jun. 9-14, 2003, 14 pages. [cited by applicant]
EMC Corporation, “EMC Recoverpoint Replication of XtremIO: Understanding the Essentials of RecoverPoint Snap-Based Replication for XtremIO,” EMC White Paper, Aug. 2015, 31 pages. [cited by applicant]
Dell EMC, “Introduction to Dell EMC XtremIO X2 Storage Array—A Detailed Review,” Dell EMC White Paper, Apr. 2018, 52 pages. [cited by applicant]
Dell EMC, “Introduction to XtremIO Metadata-Aware Replication,” Dell EMC White Paper, Apr. 2018, 18 pages. [cited by applicant]
Dell EMC, “PowerMax OS,” Dell EMC PowerMax Family Product Guide, May 2019, 192 pages. [cited by applicant]
Dell EMC, “Dell EMC VxRack FLEX,” Dell EMC Product Overview, 2018, 5 pages. [cited by applicant]
EMC Corporation, “Introduction to the EMC XtremIO Storage Array (Ver. 4.0): A Detailed Review,” White Paper, Apr. 2015, 65 pages. [cited by applicant]
EMC Corporation, “Unstoppable Data Reduction: Always-on, In-Line, Zero-Penalty, Enterprise-Class, Free,”https://store.emc.com/xtremio, Jul. 2014, 2 pages. [cited by applicant]
U.S. Appl. No. 18/119,954 filed in the name of Narayan Behera et al. on Mar. 10, 2023, and entitled “Efficient Table-Based Replication Between Source and Target Storage Systems.” [cited by applicant]
U.S. Appl. No. 18/136,395 filed in the name of Narayan Behera et al. on Apr. 19, 2023, and entitled “Efficient Table-Based Archiving of Data Items from Source Storage System to Target Storage System.” [cited by applicant]