IP Library Granted Patent US 12,292,802
Granted Patent B2
US 12,292,802 · App. 18/423,685 · Granted May 6, 2025

Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server

Inventors: Sowdambiga Karthikeyan (Fremont, CA); Duncan Alden Littlefield (Millstone Township, NJ)
Assignee: Commvault Systems, Inc.
G06F11/1464G06F3/0619G06F3/064G06F3/065G06F3/067G06F11/1448G06F11/1469
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,292,802
App. No.
18/423,685
Granted
May 6, 2025
Kind
B2
Abstract

An illustrative media agent (MA) in a data storage management system instructs a NAS file server (filer) to restore an MA-created synthesized-copy instead of larger filer-created backup copies. The synthesized-copy is designed only for the particular files to be restored and mimics, and is typically much smaller than, a filer-created backup copy. The synthesized-copy is fed to the filer on restore as a “restore data image.” When receiving a restore request for certain backed-up data files, the MA synthesizes the synthesized-copy on the fly. The MA generates a header mimicking a filer-created backup header; extracts files from filer-created backup copies arranging them within the synthesized-copy as if in filer-created backups; and instructs filer to perform a full-volume restore from the synthesized-copy. The MA serves the synthesized-copy piecemeal as available, rather than waiting to synthesize the entire synthesized-copy. The synthesized-copy is not stored at the MA.

Claims (47)

1. A system comprising:

a computing device comprising one or more hardware processors and computer memory, and in communication with a file server; and

one or more data storage devices in communication with the computing device, wherein the one or more data storage devices store one or more backup copies that were generated by the file server, and wherein the one or more backup copies comprise a plurality of backed-up data files;

wherein the computing device is configured to: generate a synthesized-copy that comprises one or more first backed-up data files selected from among the plurality of backed-up data files in the one or more backup copies that were generated by the file server,

wherein to generate the synthesized-copy, the computing device is further configured to:

(i) configure a header for the synthesized-copy, based at least in part on information collected by the computing device when the computing device stored the one or more backup copies that were generated by the file server at the one or more data storage devices,

wherein the header for the synthesized-copy is readable, by the file server, as a header for a backup copy generated by the file server, even though the synthesized-copy is not generated by the file server, and

(ii) within the synthesized-copy, arrange the one or more first backed-up data files, retrieved from the one or more backup copies, into a sequence that is compatible with how the file server restores backup copies; and

wherein the computing device is further configured to: cause the file server to restore, to the file server, the synthesized-copy comprising the one or more first backed-up data files, without restoring all of the plurality of backed-up data files.

2. The system of claim 1 , wherein to cause the file server to restore the synthesized-copy to the file server, the computing device is configured to instruct the file server to perform a full-volume restore operation from a data storage volume at the computing device, wherein the data storage volume is identified by an identifier at the computing device and is not actually configured at the computing device.

3. The system of claim 2 , wherein the computing device is further configured to: generate the synthesized-copy responsive to the full-volume restore operation of the file server directed to the data storage volume.

4. The system of claim 1 , wherein the computing device is further configured to: respond to one or more read requests received from the file server to restore the one or more first backed-up data files, by transmitting data blocks of the synthesized-copy to the file server without waiting to generate the synthesized-copy in its entirety at the computing device.

5. The system of claim 1 , wherein to arrange the one or more first backed-up data files into the sequence within the synthesized-copy, the computing device is further configured to: renumber one or more original inode identifiers of the one or more first backed-up data files retrieved from the one or more backup copies to fit into the sequence within the synthesized-copy.

6. The system of claim 5 , wherein to cause the file server to restore the synthesized-copy, the computing device is further configured to: instruct the file server to perform a full-volume restore operation from the computing device, and

wherein renumbering of the one or more original inode identifiers enables the file server to restore the one or more first backed-up data files of the synthesized-copy via the full-volume restore operation, even though at least some of the one or more first backed-up data files being restored are not contiguous within the one or more backup copies.

7. The system of claim 1 , wherein the computing device is further configured to:

prior to generating the synthesized-copy, instruct the file server to back up data stored on the file server, resulting in the one or more backup copies;

cause the one or more backup copies to be stored, as received from the file server, at the one or more data storage devices;

collect information about backed-up data files in each of the one or more backup copies received from the file server, and store the information into a data structure at the computing device, and

wherein the header generated for the synthesized-copy is based on the information in the data structure.

8. The system of claim 1 , wherein the computing device is further configured to: transmit data blocks of the synthesized-copy to the file server, as the data blocks of the synthesized-copy become available at the computing device and without storing the synthesized-copy in its entirety at the computing device.

9. The system of claim 1 , wherein the computing device is further configured to: generate the synthesized-copy dynamically, in response to a request to restore to the file server the one or more first backed-up data files, without storing the synthesized-copy in its entirety within the system.

10. The system of claim 1 , wherein the synthesized-copy is transmitted by the computing device to the file server, block-by-block, without waiting to generate the synthesized-copy in its entirety at the computing device.

11. A computer-implemented method comprising:

by a computing device in a data storage management system, wherein the computing device comprises one or more hardware processors and computer memory:

identifying one or more backup copies generated by a file server, wherein the one or more backup copies comprise one or more data files to be restored to the file server;

instructing the file server to perform a full-volume restore operation from a data storage volume at the computing device to the file server;

constructing a synthesized-copy that is to be restored by the file server in the full-volume restore operation, wherein constructing the synthesized-copy comprises:

(i) generating a first header for the synthesized-copy, based at least in part on information at the computing device which was collected by the computing device when the one or more backup copies generated by the file server were stored in secondary storage,

wherein the first header is in a format of a header for a backup copy generated by the file server,

(ii) retrieving, from the one or more backup copies, respective file data and a respective file header for each of the one or more data files to be restored, and

(iii) arranging, within the synthesized-copy, the respective file data and respective file header that were retrieved, into a sequence that is suitable for the file server to perform the full-volume restore operation; and

in response to one or more read requests received from the file server during the full-volume restore operation, transmitting data blocks of the synthesized-copy to the file server as each of the data blocks of the synthesized-copy becomes available at the computing device, without storing the synthesized-copy in its entirety at the computing device.

12. The computer-implemented method of claim 11 , wherein the synthesized-copy is constructed based on a request to restore the one or more data files from the one or more backup copies, and wherein the synthesized-copy is configured as a restore image to be restored by the file server from the data storage volume.

13. The computer-implemented method of claim 12 , wherein the data storage volume is identified by an identifier at the computing device and is not actually configured at the computing device.

14. The computer-implemented method of claim 11 , wherein constructing the synthesized-copy further comprises renumbering of original inode identifiers of the one or more data files to fit into the sequence within the synthesized-copy.

15. The computer-implemented method of claim 11 , wherein constructing the synthesized-copy further comprises renumbering of original inode identifiers of the one or more data files to fit into the sequence within the synthesized-copy, and wherein the renumbering enables the file server to restore the one or more data files via the full-volume restore operation even though at least some of the one or more data files being restored are not contiguous within the one or more backup copies.

16. The computer-implemented method of claim 11 , wherein the computing device enables the file server to restore the one or more data files from the synthesized-copy instead of the file server restoring all of the one or more backup copies.

17. The computer-implemented method of claim 11 , wherein instructing the file server to perform a full-volume restore operation from the data storage volume to the file server causes the one or more data files, as arranged in the synthesized-copy, to be restored to the file server, without restoring other data files from the one or more backup copies.

18. The computer-implemented method of claim 11 , further comprising:

prior to constructing the synthesized-copy, instructing the file server to back up data stored on the file server, resulting in the one or more backup copies;

causing the one or more backup copies to be stored, as received from the file server, at the secondary storage;

collect information about backed-up data files in each of the one or more backup copies received from the file server, and store the information into a data structure at the computing device, and

wherein the header generated for the synthesized-copy is based on the information in the data structure.

19. The computer-implemented method of claim 11 , further comprising:

constructing the synthesized-copy dynamically, in response to a request to restore to the file server the one or more data files, without storing the synthesized-copy in its entirety within the data storage management system.

20. The computer-implemented method of claim 11 , wherein the synthesized-copy is transmitted by the computing device to the file server, block-by-block, without waiting to construct the synthesized-copy in its entirety at the computing device.

Assignments (2)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2024
From: KARTHIKEYAN, SOWDAMBIGA; LITTLEFIELD, DUNCAN ALDEN
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 066319/0337 →
Continuity (4)
Division 17673154 · Feb 16, 2022
Continuation 16814826 · Mar 10, 2020
Continuation 15835296 · Dec 7, 2017
Related Publication 20240193050A1 · Jun 13, 2024
References Cited (118)
US 4084231A · Capozzi et al. · 1978 [cited by applicant]
US 4267568A · Dechant et al. · 1981 [cited by applicant]
US 4283787A · Chambers · 1981 [cited by applicant]
US 4417321A · Chang et al. · 1983 [cited by applicant]
US 4641274A · Swank · 1987 [cited by applicant]
US 4654819A · Stiffler et al. · 1987 [cited by applicant]
US 4686620A · Ng · 1987 [cited by applicant]
US 4912637A · Sheedy et al. · 1990 [cited by applicant]
US 4995035A · Cole et al. · 1991 [cited by applicant]
US 5005122A · Griffin et al. · 1991 [cited by applicant]
US 5093912A · Dong et al. · 1992 [cited by applicant]
US 5133065A · Cheffetz et al. · 1992 [cited by applicant]
US 5193154A · Kitajima et al. · 1993 [cited by applicant]
US 5212772A · Masters · 1993 [cited by applicant]
US 5226157A · Nakano et al. · 1993 [cited by applicant]
US 5239647A · Anglin et al. · 1993 [cited by applicant]
US 5241668A · Eastridge et al. · 1993 [cited by applicant]
US 5241670A · Eastridge et al. · 1993 [cited by applicant]
US 5276860A · Fortier et al. · 1994 [cited by applicant]
US 5276867A · Kenley et al. · 1994 [cited by applicant]
US 5287500A · Stoppani, Jr. · 1994 [cited by applicant]
US 5301286A · Rajani · 1994 [cited by applicant]
US 5321816A · Rogan et al. · 1994 [cited by applicant]
US 5347653A · Flynn et al. · 1994 [cited by applicant]
US 5410700A · Fecteau et al. · 1995 [cited by applicant]
US 5420996A · Aoyagi · 1995 [cited by applicant]
US 5454099A · Myers et al. · 1995 [cited by applicant]
US 5559991A · Kanfi · 1996 [cited by applicant]
US 5642496A · Kanfi · 1997 [cited by applicant]
US 6418478B1 · Ignatius et al. · 2002 [cited by applicant]
US 6542972B2 · Ignatius et al. · 2003 [cited by applicant]
US 6658436B2 · Oshinsky et al. · 2003 [cited by applicant]
US 6721767B2 · DeMeno et al. · 2004 [cited by applicant]
US 6760723B2 · Oshinsky et al. · 2004 [cited by applicant]
US 7003641B2 · Prahlad · 2006 [cited by applicant]
US 7035880B1 · Crescenti · 2006 [cited by applicant]
US 7107298B2 · Prahlad · 2006 [cited by applicant]
US 7130970B2 · Devassy · 2006 [cited by applicant]
US 7162496B2 · Amarendran et al. · 2007 [cited by applicant]
US 7174433B2 · Kottomtharayil et al. · 2007 [cited by applicant]
US 7246207B2 · Kottomtharayil · 2007 [cited by applicant]
US 7315923B2 · Retnamma · 2008 [cited by applicant]
US 7343453B2 · Prahlad · 2008 [cited by applicant]
US 7389311B1 · Crescenti et al. · 2008 [cited by applicant]
US 7395282B1 · Crescenti · 2008 [cited by applicant]
US 7440982B2 · Lu · 2008 [cited by applicant]
US 7454569B2 · Kavuri · 2008 [cited by applicant]
US 7490207B2 · Amarendran et al. · 2009 [cited by applicant]
US 7500053B1 · Kavuri · 2009 [cited by applicant]
US 7529782B2 · Prahlad · 2009 [cited by applicant]
US 7536291B1 · Vijayan Retnamma et al. · 2009 [cited by applicant]
US 7543125B2 · Gokhale · 2009 [cited by applicant]
US 7546324B2 · Prahlad et al. · 2009 [cited by applicant]
US 7603386B2 · Amarendran et al. · 2009 [cited by applicant]
US 7606844B2 · Kottomtharavil · 2009 [cited by applicant]
US 7613752B2 · Prahlad · 2009 [cited by applicant]
US 7617253B2 · Prahlad et al. · 2009 [cited by applicant]
US 7617262B2 · Prahlad · 2009 [cited by applicant]
US 7620710B2 · Kottomtharayil · 2009 [cited by applicant]
US 7636743B2 · Erofeev · 2009 [cited by applicant]
US 7651593B2 · Prahlad · 2010 [cited by applicant]
US 7657550B2 · Prahlad · 2010 [cited by applicant]
US 7660807B2 · Prahlad · 2010 [cited by applicant]
US 7661028B2 · Erofeev · 2010 [cited by applicant]
US 7734669B2 · Kottomtharayil · 2010 [cited by applicant]
US 7747579B2 · Prahlad · 2010 [cited by applicant]
US 7801864B2 · Prahlad · 2010 [cited by applicant]
US 7809914B2 · Kottomtharayil · 2010 [cited by applicant]
US 8156086B2 · Lu · 2012 [cited by applicant]
US 8170995B2 · Prahlad · 2012 [cited by applicant]
US 8229954B2 · Kottomtharayil · 2012 [cited by applicant]
US 8230195B2 · Amarendran · 2012 [cited by applicant]
US 8285681B2 · Prahlad · 2012 [cited by applicant]
US 8307177B2 · Prahlad · 2012 [cited by applicant]
US 8364652B2 · Vijayan · 2013 [cited by applicant]
US 8370542B2 · Lu et al. · 2013 [cited by applicant]
US 8578120B2 · Attarde · 2013 [cited by applicant]
US 8954446B2 · Retnamma · 2015 [cited by applicant]
US 9020990B2 · Brockway et al. · 2015 [cited by applicant]
US 9098495B2 · Goklhale · 2015 [cited by applicant]
US 9239687B2 · Vijayan · 2016 [cited by applicant]
US 9904598B2 · Kumarasamy · 2018 [cited by applicant]
US 10228962B2 · Dornemann et al. · 2019 [cited by applicant]
US 10310953B2 · Vijayan et al. · 2019 [cited by applicant]
US 10387266B2 · Kumarasamy et al. · 2019 [cited by applicant]
US 10481824B2 · Vijayan et al. · 2019 [cited by applicant]
US 10635546B2 · Karthikeyan et al. · 2020 [cited by applicant]
US 10684924B2 · Kilaru et al. · 2020 [cited by applicant]
US 11288135B2 · Karthikeyan et al. · 2022 [cited by applicant]
US 20060224846A1 · Amarendran · 2006 [cited by applicant]
US 20060230244A1 · Amarendran et al. · 2006 [cited by applicant]
US 20090319534A1 · Gokhale · 2009 [cited by applicant]
US 20120150818A1 · Retnamma et al. · 2012 [cited by applicant]
US 20120150826A1 · Retnamma et al. · 2012 [cited by applicant]
US 20140201170A1 · Vijayan et al. · 2014 [cited by applicant]
US 20160154709A1 · Mitkar et al. · 2016 [cited by applicant]
US 20160314046A1 · Kumarasamy · 2016 [cited by applicant]
US 20170235647A1 · Kilaru et al. · 2017 [cited by applicant]
US 20190179714A1 · Karthikeyan et al. · 2019 [cited by applicant]
US 20200081645A1 · Frid · 2020 [cited by examiner]
US 20220229736A1 · Karthikeyan et al. · 2022 [cited by applicant]
EP 0259912 · 1988 [cited by applicant]
EP 0405926 · 1991 [cited by applicant]
EP 0467546 · 1992 [cited by applicant]
EP 0541281 · 1993 [cited by applicant]
EP 0774715 · 1997 [cited by applicant]
EP 0809184 · 1997 [cited by applicant]
EP 0899662 · 1999 [cited by applicant]
EP 0981090 · 2000 [cited by applicant]
WO 9513580 · 1995 [cited by applicant]
WO 9912098 · 1999 [cited by applicant]
WO 2006052872 · 2005 [cited by applicant]
Arneson, “Mass Storage Archiving in Network Environments,” Digest of Papers, Ninth IEEE Symposium on Mass Storage Systems, Oct. 31, 1988Nov. 3, 1988, pp. 45-50, Monterey, CA. [cited by applicant]
Arneson, David A., “Development of Omniserver,” Control Data Corporation, Tenth IEEE Symposium on Mass Storage Systems, May 1990, ‘Crisis in Mass Storage’ Digest of Papers, pp. 88-93, Monterey, CA. [cited by applicant]
Cabrera et al., “ADSM: A Multi-Platform, Scalable, Backup and Archive Mass Storage System,” Digest of Papers, Compcon '95, Proceedings of the 40th IEEE Computer Society International Conference, Mar. 5, 1995-Mar. 9, 199… [cited by applicant]
Eitel, “Backup and Storage Management in Distributed Heterogeneous Environments,” IEEE, Jun. 12-16, 1994, pp. 124-126. [cited by applicant]
Huff, KL, “Data Set Usage Sequence Number,” IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981 New York, US, pp. 2404-2406. [cited by applicant]
Rosenblum et al., “The Design and Implementation of a Log-Structure File System,” Operating Systems Review SIGOPS, vol. 25, No. 5, May 1991, New York, US, pp. 1-15. [cited by applicant]