IP Library › Granted Patent US 12,204,419
Granted Patent B1
US 12,204,419 · App. 18/478,132 · Granted Jan 21, 2025

Intelligent restoration of file systems using destination aware restorations

Inventors: Sunil Yadav (Bangalore, IN); Shelesh Chopra (Bangalore, IN)
Assignee: Dell Products L.P.
G06F11/1469G06F2201/84
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,204,419
App. No.
18/478,132
Granted
Jan 21, 2025
Kind
B1
Abstract

Techniques described herein relate to a method for performing restorations of file system data on a host. The method may include identifying a restoration event associated with a file system of a host; obtaining backup metadata associated with a backup of the file system and obtaining current file system metadata associated with the file system; identifying non-matching files and matching files using the backup metadata and the current file system metadata; storing local copies of the matching files on the host; identifying, based on the current file system metadata and the backup metadata, matching portions, non-matching portions, and completely unique files; storing local copies of the matching portions of the non-matching files on the host to restore the matching portions of the non-matching files; and restoring the completely unique files of the non-matching files and the non-matching portions of the non-matching files from a backup storage.

Claims (92)

1. A method for performing restorations of file system data on a host, comprising:

identifying, by a data protection agent of a host, a restoration event associated with a file system of the host;

in response to identifying the restoration event:

obtaining backup metadata associated with a backup of the file system, wherein the backup metadata comprises previously generated checksums of the files included in the file system at a time the backup was generated;

obtaining current file system metadata associated with the file system from a file system metadata repository on a storage of the host;

generating current checksums of the files of the file system using the current file system metadata;

identifying non-matching files and matching files using the previously generated checksums and the current checksums;

storing local copies of the matching files on the host to restore the matching files;

obtaining current data runs associated with the non-matching files from the current file system metadata;

obtaining backup data runs associated with the non-matching files from the backup metadata;

identifying, based on the current data runs and the backup data runs, matching portions of the non-matching files, non-matching portions of the non-matching files, and completely unique files of the non-matching files;

storing local copies of the matching portions of the non-matching files on the host to restore the matching portions of the non-matching files; and

restoring the completely unique files of the non-matching files and the non-matching portions of the non-matching files from a backup storage that includes the backup.

2. The method of claim 1 , wherein identifying the non-matching files and the matching files comprises:

selecting a first file of the files;

in response to selecting the first file:

comparing a first previously generated checksum of the previously generated checksums corresponding to the first file with a first current checksum of the current checksums corresponding to the first file; and

making a first determination that the first previously generated checksum does not match the first current checksum;

making, in response to the first determination, a second determination that the non-matching files comprise the first file; and

selecting a second file of the files.

3. The method of claim 2 , the method further comprising:

in response to selecting the second file:

comparing a second previously generated checksum of the previously generated checksums corresponding to the second file with a second current checksum of the current checksums corresponding to the second file; and

making a third determination that the second previously generated checksum matches the second current checksum; and

making, in response to the third determination, a fourth determination that the matching files comprise the second file.

4. The method of claim 1 , wherein:

a matching portion of the matching portions of the non-matching files comprises the same data block stored on the host as is included in the backup; and

a non-matching portion of the non-matching portions of the non-matching files comprises a different data block stored on the host as is included in the backup.

5. A method for performing restorations of file system data on a host, comprising:

identifying, by a data protection agent of a host, a restoration event associated with a file system of the host;

in response to identifying the restoration event:

obtaining backup metadata associated with a backup of the file system, wherein the backup metadata specifies data of files included in the file system at a time the backup was generated;

obtaining current file system metadata associated with the file system from a file system metadata repository on a storage of the host;

identifying non-matching files and matching files using the backup metadata and the current file system metadata;

storing local copies of the matching files on the host to restore the matching files;

identifying, based on the current file system metadata and the backup metadata, matching portions of the non-matching files, non-matching portions of the non-matching files, and completely unique files of the non-matching files;

storing local copies of the matching portions of the non-matching files on the host to restore the matching portions of the non-matching files; and

restoring the completely unique files of the non-matching files and the non-matching portions of the non-matching files from a backup storage that includes the backup.

6. The method of claim 5 , wherein identifying the matching portions of comprises:

selecting a first file of the files;

in response to selecting the first file:

comparing a first previously generated checksum of previously generated checksums included in the backup metadata corresponding to the first file with a first current checksum of current checksums corresponding to the first file, wherein the current checksums are generated using the current file system metadata; and

making a first determination that the first previously generated checksum does not match the first current checksum;

making, in response to the first determination, a second determination that the non-matching files comprise the first file; and

selecting a second file of the files.

7. The method of claim 6 , the method further comprising:

in response to selecting the second file:

comparing a second previously generated checksum of the previously generated checksums corresponding to the second file with a second current checksum of the current checksums corresponding to the second file; and

making a third determination that the second previously generated checksum matches the second current checksum; and

making, in response to the third determination, a fourth determination that the matching files comprise the second file.

8. The method of claim 6 , wherein the first file comprises one selected from a group consisting of at least:

a modified file modified after a point in time the backup was generated;

a deleted file deleted after the point in time the backup was generated; and

a new file generated after the point in time the backup was generated.

9. The method of claim 8 , wherein the second file comprises a file that has not been modified since the generation of the backup.

10. The method of claim 5 , wherein storing the local copies of the matching files comprises performing a block cloning operation on the matching files.

11. The method of claim 5 , wherein storing local copies of the matching portions of the non-matching files on the host comprises performing a block cloning operation on the matching portions of the non-matching files.

12. The method of claim 5 , wherein:

a matching portion of the matching portions of the non-matching files comprises the same data block stored on the host as is included in the backup; and

a non-matching portion of the non-matching portions of the non-matching files comprises a different data block stored on the host as is included in the backup.

13. A non-transitory computer readable medium (CRM) comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for performing restorations of file system data on a host, comprising:

identifying, by a data protection agent of a host, a restoration event associated with a file system of the host;

in response to identifying the restoration event:

obtaining backup metadata associated with a backup of the file system, wherein the backup metadata specifies data of files included in the file system at a time the backup was generated;

obtaining current file system metadata associated with the file system from a file system metadata repository on a storage of the host;

identifying non-matching files and matching files using the backup metadata and the current file system metadata;

storing local copies of the matching files on the host to restore the matching files;

identifying, based on the current file system metadata and the backup metadata, matching portions of the non-matching files, non-matching portions of the non-matching files, and completely unique files of the non-matching files;

storing local copies of the matching portions of the non-matching files on the host to restore the matching portions of the non-matching files; and

restoring the completely unique files of the non-matching files and the non-matching portions of the non-matching files from a backup storage that includes the backup.

14. The CRM of claim 13 , wherein identifying, based on the current file system metadata and the backup metadata, matching portions of the non-matching files, non-matching portions of the non-matching files, and completely unique files of the non-matching files comprises:

obtaining current data runs associated with the non-matching files from the current file system metadata;

obtaining backup data runs associated with the non-matching files from the backup metadata; and

identifying, based on the current data runs and the backup data runs, matching portions of the non-matching files, non-matching portions of the non-matching files, and completely unique files of the non-matching files.

15. The CRM of claim 14 , wherein:

a matching portion of the matching portions of the non-matching files comprises the same data block stored on the host as is included in the backup; and

a non-matching portion of the non-matching portions of the non-matching files comprises a different data block stored on the host as is included in the backup.

16. The CRM of claim 14 , wherein:

a current data run of the current data runs specifies an offset and a length of a data block of a file of the files currently stored in a storage volume associated with the file system; and

a backup data run of the backup data runs specifies an offset and a length of the file that was stored in a storage volume associated with the file system at a point in time the backup was generated.

17. The CRM of claim 13 , wherein storing the local copies of the matching files comprises performing a block cloning operation on the matching files.

18. The CRM of claim 13 , wherein storing local copies of the matching portions of the non-matching files on the host comprises performing a block cloning operation on the matching portions of the non-matching files.

19. The CRM of claim 13 , wherein identifying the non-matching files and the matching files comprises:

selecting a first file of the files;

in response to selecting the first file:

making a first determination that a first portion of the backup metadata corresponding to the first file and a first portion of the current file system metadata corresponding to the first file do not match;

making, in response to the first determination, a second determination that the non-matching files comprise the first file; and

selecting a second file of the files.

20. The CRM of claim 19 , the method further comprising:

in response to selecting the second file:

making a third determination that a second portion of the backup metadata corresponding to the second file and a second portion of the current file system metadata corresponding to the second file match; and

making, in response to the third determination, a fourth determination that the matching files comprise the second file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2023
From: YADAV, SUNIL; CHOPRA, SHELESH
To: DELL PRODUCTS L.P.
Reel/Frame 065077/0281 →
References Cited (18)
US 9354907B1 · Teli · 2016 [cited by applicant]
US 9424136B1 · Teater et al. · 2016 [cited by applicant]
US 9569446B1 · Feathergill et al. · 2017 [cited by applicant]
US 10310949B1 · Chakraborty · 2019 [cited by applicant]
US 10387381B1 · Patwardhan · 2019 [cited by applicant]
US 10417099B1 · Yadav · 2019 [cited by applicant]
US 11042450B2 · Kang · 2021 [cited by examiner]
US 20140214899A1 · Ganapathy · 2014 [cited by examiner]
US 20150293817A1 · Subramanian · 2015 [cited by applicant]
US 20160019317A1 · Pawar · 2016 [cited by applicant]
US 20170185488A1 · Kumarasamy et al. · 2017 [cited by applicant]
US 20220043717A1 · Yadav · 2022 [cited by examiner]
US 20220342770A1 · Jagannatha · 2022 [cited by applicant]
US 20220382641A1 · Chopra · 2022 [cited by examiner]
US 20220398160A1 · Zou · 2022 [cited by examiner]
US 20220398221A1 · Zou · 2022 [cited by examiner]
US 20230168970A1 · Pradhan · 2023 [cited by applicant]
US 20230297477A1 · Yadav · 2023 [cited by examiner]
Cited By (1)
US 12,379,863