IP Library › Granted Patent US 12,105,600
Granted Patent B1
US 12,105,600 · App. 18/482,150 · Granted Oct 1, 2024

Leveraging file-system block cloning for efficient file-based backup and recovery operations

Inventors: Sunil Yadav (Bangalore, IN); Shelesh Chopra (Bangalore, IN)
Assignee: Dell Products, L.P.
G06F11/1461G06F11/1469G06F16/122G06F16/148G06F2201/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,105,600
App. No.
18/482,150
Granted
Oct 1, 2024
Kind
B1
Abstract

A method for efficient file-based backups and recoveries. The method includes: receiving, to initiate a backup session, a file-system backup instruction identifying a host file-system; obtaining at least one clone logical cluster number (LCN) corresponding to a file managed by the host file-system, and a region LCN corresponding to a file region of the file; based on a determination that the region LCN matches a clone LCN of the at least one clone LCN: querying a cluster-offset tracking data structure using the region LCN to identify a cluster-offset tracking entry including the region LCN and a container offset; writing, as a session metadata record stored in backup session metadata for the backup session, file metadata describing the file and including the container offset; and transmitting, to a backup target, an information tuple including a backup session identifier generated for the backup session, and the backup session metadata.

Claims (84)

1. A method for efficient file-based backups and recoveries, the method comprising:

receiving, to initiate a backup session, a file-system backup instruction identifying a host file-system;

obtaining at least one clone logical cluster number (LCN) corresponding to a file managed by the host file-system, and a region LCN corresponding to a file region of the file;

based on a determination that the region LCN matches a clone LCN of the at least one clone LCN:

querying a cluster-offset tracking data structure using the region LCN to identify a cluster-offset tracking entry comprising the region LCN and a container offset;

writing, as a session metadata record stored in backup session metadata for the backup session, file metadata describing the file and comprising the container offset; and

transmitting, to a backup target, an information tuple comprising a backup session identifier generated for the backup session, and the backup session metadata.

2. The method of claim 1 , wherein the host file-system supports block cloning.

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

prior to the determination:

adding, to the cluster-offset tracking data structure, the cluster-offset tracking entry comprising a second region LCN matching the region LCN, and the container offset.

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

prior to adding the cluster-offset tracking entry:

based on a second determination that the second region LCN matches the clone LCN:

querying the cluster-offset tracking data structure using the second region LCN to deduce that the cluster-offset tracking data structure lacks the cluster-offset tracking entry;

identifying the container offset initially referencing unoccupied container storage space in a backup session data container for the backup session;

reading, from host storage, file content mapped to a second file region corresponding to the second region LCN; and

writing the file content to the backup session data container at the container offset.

5. The method of claim 4 , wherein the information tuple further comprises the backup session data container, and wherein the file content further maps to the file region of the file.

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

after obtaining the at least one clone LCN corresponding to the file and prior to obtaining the region LCN corresponding to the file region of the file:

obtaining the second region LCN corresponding to the second file region that, at least in part, forms the file.

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

prior to obtaining the at least one clone LCN corresponding to the file:

obtaining at least one second clone LCN corresponding to a second file managed by the host file-system, and the second region LCN corresponding to the second file region that, at least in part, forms the second file,

wherein a second clone LCN of the at least one second clone LCN matches the clone LCN.

8. The method of claim 1 , wherein the at least one clone LCN is respectively associated with at least one cloned cluster, and wherein each cloned cluster of the at least one cloned cluster represents a shared logical cluster.

9. The method of claim 8 , wherein the shared logical cluster references host storage space in host storage that maps to at least one file region of a group of file regions comprising the file region of the file and a second file region of the file, and the file region of the file and a second file region of a second file managed by the host file-system.

10. The method of claim 1 , the method further comprising:

receiving, to initiate a recovery session following a data loss, a file-system recovery instruction comprising the backup session identifier;

receiving, from the backup target and in response to transmission thereto of a metadata request comprising the backup session identifier, the backup session metadata associated with the backup session identifier;

extracting, from the session metadata record for the file in the backup session metadata, the container offset mapped to the file region of the file;

based on a second determination that an offset-offset tracking data structure comprises an offset-offset tracking entry comprising the container offset and a storage offset:

locating, mapped to at least the file region of the file, file content stored in host storage at the storage offset;

copying the file content to obtain a file content copy;

identifying a new storage offset initially referencing unoccupied host storage space in the host storage; and

writing, to recover at least a portion of the data loss, the file content copy in the host storage at the new storage offset.

11. The method of claim 10 , the method further comprising:

prior to the second determination:

adding, to the offset-offset tracking data structure, the offset-offset tracking entry comprising a second container offset matching the container offset, and the storage offset.

12. The method of claim 11 , the method further comprising:

prior to adding the offset-offset tracking entry:

based on a second determination that the offset-offset tracking data structure lacks the offset-offset tracking entry:

identifying the storage offset initially referencing second unoccupied host storage space in the host storage;

receiving, from the backup target and in response to transmission thereto of a read request comprising the backup session identifier and the container offset, the file content stored at the container offset in a backup session container associated with the backup session identifier; and

writing the file content to the host storage at the storage offset.

13. The method of claim 12 , the method further comprising:

prior to extracting the container offset mapped to the file region of the file:

extracting, from the session metadata record for the file in the backup session metadata, the second container offset mapped to a second file region of the file.

14. The method of claim 12 , the method further comprising:

prior to extracting the container offset mapped to the file region of the file:

extracting, from a second session metadata record for a second file in the backup session metadata, the second container offset mapped to a second file region of the second file.

15. 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 efficient file-based backups and recoveries, the method comprising:

receiving, to initiate a backup session, a file-system backup instruction identifying a host file-system;

obtaining at least one clone logical cluster number (LCN) corresponding to a file managed by the host file-system, and a region LCN corresponding to a file region of the file;

based on a determination that the region LCN matches a clone LCN of the at least one clone LCN:

querying a cluster-offset tracking data structure using the region LCN to identify a cluster-offset tracking entry comprising the region LCN and a container offset;

writing, as a session metadata record stored in backup session metadata for the backup session, file metadata describing the file and comprising the container offset; and

transmitting, to a backup target, an information tuple comprising a backup session identifier generated for the backup session, and the backup session metadata.

16. The non-transitory CRM of claim 15 , wherein the host file-system supports block cloning.

17. The non-transitory CRM of claim 15 , wherein the at least one clone LCN is respectively associated with at least one cloned cluster, and wherein each cloned cluster of the at least one cloned cluster represents a shared logical cluster.

18. The non-transitory CRM of claim 17 , wherein the shared logical cluster references host storage space in host storage that maps to at least one file region of a group of file regions comprising the file region of the file and a second file region of the file, and the file region of the file and a second file region of a second file managed by the host file-system.

19. The non-transitory CRM of claim 15 , the method further comprising:

receiving, to initiate a recovery session following a data loss, a file-system recovery instruction comprising the backup session identifier;

receiving, from the backup target and in response to transmission thereto of a metadata request comprising the backup session identifier, the backup session metadata associated with the backup session identifier;

extracting, from the session metadata record for the file in the backup session metadata, the container offset mapped to the file region of the file;

based on a second determination that an offset-offset tracking data structure comprises an offset-offset tracking entry comprising the container offset and a storage offset:

locating, mapped to at least the file region of the file, file content stored in host storage at the storage offset;

copying the file content to obtain a file content copy;

identifying a new storage offset initially referencing unoccupied host storage space in the host storage; and

writing, to recover at least a portion of the data loss, the file content copy in the host storage at the new storage offset.

20. A system, comprising:

a backup target; and

a host device operatively connected to the backup target, and comprising:

host storage configured to store data mapped to files;

a computer processor operatively connected to the host storage; and

a host file-system operating on the computer processor and configured to manage the files,

wherein the computer processor is configured to perform a method for efficient file-based backups and recoveries, the method comprising:

receiving, to initiate a backup session, a file-system backup instruction identifying the host file-system;

obtaining at least one clone logical cluster number (LCN) corresponding to a file of the files managed by the host file-system, and a region LCN corresponding to a file region of the file;

based on a determination that the region LCN matches a clone LCN of the at least one clone LCN:

querying a cluster-offset tracking data structure using the region LCN to identify a cluster-offset tracking entry comprising the region LCN and a container offset;

writing, as a session metadata record stored in backup session metadata for the backup session, file metadata describing the file and comprising the container offset; and

transmitting, to the backup target, an information tuple comprising a backup session identifier generated for the backup session, and the backup session metadata.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: YADAV, SUNIL; CHOPRA, SHELESH
To: DELL PRODUCTS L.P.
Reel/Frame 065231/0066 →
Cited By (2)
US 12,405,985 US 12,498,901