IP Library Granted Patent US 11,068,349
Granted Patent B2
US 11,068,349 · App. 16/197,644 · Granted Jul 20, 2021

Selective processing of file system objects for image level backups

Inventors: Ratmir Timashev (Baar, CH); Anton Gostev (Saint-Petersburg, RU)
Assignee: Veeam Software AG
G06F11/1451G06F11/1464G06F16/148G06F16/1844G06F2201/80
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 11,068,349
App. No.
16/197,644
Granted
Jul 20, 2021
Kind
B2
Abstract

Systems, methods, and computer program products are provided for reducing the size of image level backups. An example method receives backup parameters identifying a physical or Virtual Machine (VM) to backup and at least one file system object to include in the backup. The method connects to production storage corresponding to the selected physical or virtual machine and obtains access to data stored in disk corresponding to the selected file system object(s). The method fetches file allocation table (FAT) blocks from the disk and parses contents of the FAT blocks to determine if the disk blocks correspond to the selected file system object(s). The method creates a backup disk image FAT comprising blocks corresponding to the selected file system object(s), The method creates a reconstructed disk image FAT blocks corresponding to the backup FAT and disk image data blocks belonging to the selected file system object(s) and all other disk image data blocks are saved as zero blocks. A reconstructed disc image is compressed and stored in a backup file on backup storage, or replicated (copied) to another storage intact.

Claims (74)

1. A system for selective processing of file system objects for an image level backup, comprising:

a backup engine including:

a receiving module configured to receive backup parameters for the image level backup, wherein the backup parameters include a selection of a machine to backup, and a selection of at least one file system object to include in the image level backup;

a connection module configured to connect to production storage corresponding to the selected machine, wherein the connection module is further configured to obtain data from a source disk corresponding to the selected at least one file system object, and wherein the source disk is in the production storage;

a file allocation table (FAT) processing module configured to:

fetch FAT blocks from the source disk;

search the fetched FAT blocks to determine a selected set of data blocks of the source disk, wherein the selected set of data blocks corresponds to the selected at least one file system object; and

create a backup FAT from the fetched FAT blocks, wherein the backup FAT comprises only records corresponding to the selected at least one file system object; and

a block processing module configured to:

read the determined selected set of data blocks;

for each block in the determined selected set of data blocks:

look up block content corresponding to each block;

determine whether the block content is part of the selected at least one file system object;

based on determining whether the block content for each block is not part of the selected at least one file system object:

 save a zeroed block in a reconstructed disk image that corresponds to each block that is not part of the selected at least one file system object, wherein saving the zeroed block includes preventing fetching the block contents from the source disk;

 write the zeroed block to the backup FAT corresponding to each zeroed block in the reconstructed disk image; and

 compress the backup FAT.

2. The system of claim 1 , the block processing module further configured to:

determine a previously processed FAT block of the fetched FAT blocks; and

determine whether the previously processed FAT block is a last block of the source disk.

3. The system of claim 2 , wherein to determine whether the previously processed FAT block is the last block of the source disk, the block processing module is further configured to compare a current block number of the previously processed FAT block to a number of blocks in the source disk.

4. The system of claim 1 , wherein determining whether block content for each block is not part of the at least one file system object further comprises performing a look-up of a current data block in a FAT to obtain the block contents on a corresponding file system object in the source disk.

5. The system of claim 4 , the block processing module further configured to:

correlate actual block locations of the block contents to block locations of the FAT.

6. The system of claim 4 , the block processing module further configured to:

identify the at least one file system object to exclude from the image level backup.

7. The system of claim 4 , the block processing module further configured to:

read the current data block from the source disk.

8. The system of claim 1 , the block processing module further configured to:

save the zeroed data block to the reconstructed disk image.

9. The system of claim 8 , wherein saving the zeroed data block to the reconstructed disk image further comprises saving the selected set of data blocks to a position in the reconstructed disk image corresponding to a position in the source disk.

10. A method for object-selective processing of file system objects for an image level backup, comprising:

receiving backup parameters for the image level backup, wherein the backup parameters include a selection of a machine to backup, and a selection of at least one file system object to include in the image level backup;

connecting to production storage corresponding to the selected machine;

obtaining data from a source disk corresponding to the selected at least one file system object, and wherein the source disk is in the production storage;

fetching FAT blocks from the source disk;

searching the fetched FAT blocks to determine a selected set of data blocks of the source disk, wherein the selected set of data blocks corresponds to the selected at least one file system object;

creating a backup FAT from the fetched FAT blocks, wherein the backup FAT comprises only records corresponding to the selected at least one file system object;

reading the determined selected set of data blocks;

for each block in the determined selected set of data blocks:

looking up block content corresponding to each block;

determining whether the block content is part of the selected at least one file system object; and

based on determining whether the block content is not part of the selected at least one file system object:

saving a zeroed block in a reconstructed disk image that corresponds to each block that is not part of the selected at least one file system object, wherein saving the zeroed block includes preventing fetching the block contents from the source disk;

writing the zeroed block to the backup FAT corresponding to each zeroed block in the reconstructed disk image wherein writing the zeroed block includes preventing fetching the block contents from the source disk; and

compressing the backup FAT.

11. The method of claim 10 , further comprising:

determining a previously processed FAT block of the fetched FAT blocks; and

determining whether the previously processed FAT block is a last block of the source disk.

12. The method of claim 11 , wherein the determining whether the previously processed FAT block is the last block of the source disk further comprises comparing a current block number of the previously processed FAT block to a number of blocks in the source disk.

13. The method of claim 10 , wherein determining whether block content for each block is not part of the at least one file system object further comprises performing a look-up of a current data block in a FAT to obtain the block contents on a corresponding file system object in the source disk.

14. The method of claim 13 , further comprising correlating actual block locations of the block contents to block locations of the FAT.

15. The method of claim 14 , further comprising identifying the at least one file system object to exclude from the image level backup.

16. The method of claim 14 , further comprising reading the current data block from the source disk.

17. A non-transitory computer-readable medium having instructions stored thereon, wherein the instructions when executed by one or more processors cause the one or more processors to perform operations, the operations comprising:

receiving backup parameters for the image level backup, wherein the backup parameters include a selection of a machine to backup, and a selection of at least one file system object to include in the image level backup;

connecting to production storage corresponding to the selected machine;

obtaining data from a source disk corresponding to the selected at least one file system object, and wherein the source disk is in the production storage;

fetching FAT blocks from the source disk;

searching the fetched FAT blocks to determine a selected set of data blocks of the source disk, wherein the selected set of data blocks corresponds to the selected at least one file system object;

creating a backup FAT from the fetched FAT blocks, wherein the backup FAT comprises only records corresponding to the selected at least one file system object;

reading the determined selected set of data blocks;

for each block in the determined selected set of data blocks:

looking up block content corresponding to each block;

determining whether the block content is part of the selected at least one file system object; and

based on determining whether the block content is not part of the at least one file system object:

saving a zeroed block in a reconstructed disk image that corresponds to each block that is not part of the selected at least one file system object, wherein saving the zeroed block includes preventing fetching the block contents from the source disk;

writing the zeroed block to the backup FAT corresponding to each zeroed block in the reconstructed disk image wherein writing the zeroed block includes preventing fetching the block contents from the source disk; and

compressing the backup FAT.

18. The non-transitory computer-readable medium of claim 17 , further comprising instructions for:

determining a previously processed FAT block of the fetched FAT blocks; and

determining whether the previously processed FAT block is a last block of the source disk.

19. The non-transitory computer-readable medium of claim 18 , wherein the determining whether the previously processed FAT block is the last block of the source disk further comprises comparing a current block number of the previously processed FAT block to a number of blocks in the source disk.

20. The non-transitory computer-readable medium of claim 17 , wherein determining whether block content for each block is not part of the at least one file system object further comprises performing a look-up of a current data block in a FAT to obtain the block contents on a corresponding file system object in the source disk.

Assignments (3)
SECURITY INTEREST Recorded May 29, 2020
From: VEEAM SOFTWARE GROUP GMBH
To: JPMORGAN CHASE N.A.
Reel/Frame 052790/0483 →
CHANGE OF NAME Recorded May 18, 2020
From: VEEAM SOFTWARE AG
To: VEEAM SOFTWARE GROUP GMBH
Reel/Frame 052690/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2020
From: TIMASHEV, RATMIR; GOSTEV, ANTON
To: VEEAM SOFTWARE AG
Reel/Frame 051405/0069 →
Continuity (4)
Continuation 15359128 · Nov 22, 2016
Continuation 13159229 · Jun 13, 2011
Provisional Application 61354529 · Jun 14, 2010
Related Publication 20190332489A1 · Oct 31, 2019