IP Library › Granted Patent US 11,934,275
Granted Patent B2
US 11,934,275 · App. 17/563,046 · Granted Mar 19, 2024

Backup copy validation as an embedded object

Inventors: Sunil Yadav (Bangalore, IN); Shelesh Chopra (Bangalore, IN)
Assignee: Dell Products L.P.
G06F11/1451G06F11/1004G06F11/1469G06F2201/835
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,934,275
App. No.
17/563,046
Granted
Mar 19, 2024
Kind
B2
Abstract

A synthetic full backup of a source volume representing a state of the volume at a current time is retrieved, the synthetic full having been generated by merging a full backup of the volume performed at an initial time with an incremental backup of the volume performed at the current time, after the initial time. A bitmap tracking changes to the volume made between the initial and current times is accessed. The bitmap is used to identify a location on the volume having changes made between the initial and current times. First data written to the location on the volume is read. Second data written to the same location on the synthetic full backup is read. First and second checksums are generated based on the first and second data, respectively. The checksums are compared and if any do not match, an indication is generated that the synthetic full is corrupt.

Claims (50)

1. A method comprising:

retrieving a synthetic full backup of a source volume representing a state of the source volume at a current time, the synthetic full backup having been generated by merging a full backup of the source volume performed at an initial time with an incremental backup of the source volume performed at the current time, after the initial time;

accessing a bitmap tracking changes to the source volume made between the initial time and the current time;

identifying from the bitmap a location on the source volume comprising changes made between the initial time and the current time;

reading first data written to the location on the source volume, the reading first data comprising reading a first span of blocks from the source volume, the first span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

reading second data written to the same location on the synthetic full backup, the reading second data comprising reading a second span of blocks from the synthetic full backup, the second span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

generating a first checksum based on the first data and a second checksum based on the second data;

comparing the first and second checksums; and

if the first and second checksums do not match, generating an indication that the synthetic full backup is corrupt;

further comprising:

randomly selecting a plurality of blocks from the source volume and a corresponding plurality of blocks from the synthetic full backup for checksum comparisons to validate the synthetic full backup.

2. The method of claim 1 wherein the first span of blocks comprises blocks before, at, and after the location on the source volume, the first checksum thereby being generated using data from the first span of blocks, and

wherein the second span of blocks comprises blocks, before, at, and after the same location on the synthetic full backup, the second checksum thereby being generated using data from the second span of blocks.

3. The method of claim 1 wherein a number of blocks in the first span of blocks is equal to a number of blocks in the second span of blocks.

4. The method of claim 1 wherein the first data comprises a first file and the second data comprises a second file.

5. The method of claim 1 further comprising:

storing the bitmap with the synthetic full backup by copying the bitmap into a snapshot taken of the source volume at the current time for the incremental backup.

6. The method of claim 1 wherein a number of random locations selected for validation of the synthetic full backup is proportional to a size of the incremental backup.

7. A system for validating backups comprising:

a processor; and

memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:

retrieving a synthetic full backup of a source volume representing a state of the source volume at a current time, the synthetic full backup having been generated by merging a full backup of the source volume performed at an initial time with an incremental backup of the source volume performed at the current time, after the initial time;

accessing a bitmap tracking changes to the source volume made between the initial time and the current time;

identifying from the bitmap a location on the source volume comprising changes made between the initial time and the current time;

reading first data written to the location on the source volume, the reading first data comprising reading a first span of blocks from the source volume, the first span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

reading second data written to the same location on the synthetic full backup, the reading second data comprising reading a second span of blocks from the synthetic full backup, the second span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

generating a first checksum based on the first data and a second checksum based on the second data;

comparing the first and second checksums; and

if the first and second checksums do not match, generating an indication that the synthetic full backup is corrupt;

further comprising:

randomly selecting a plurality of blocks from the source volume and a corresponding plurality of blocks from the synthetic full backup for checksum comparisons to validate the synthetic full backup.

8. The system of claim 7 wherein the first span of blocks comprises blocks before, at, and after the location on the source volume, the first checksum thereby being generated using data from the first span of blocks, and

wherein the second span of blocks comprises blocks, before, at, and after the same location on the synthetic full backup, the second checksum thereby being generated using data from the second span of blocks.

9. The system of claim 7 wherein a number of blocks in the first span of blocks is equal to a number of blocks in the second span of blocks.

10. The system of claim 7 wherein the first data comprises a first file and the second data comprises a second file.

11. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method for validating backups comprising:

retrieving a synthetic full backup of a source volume representing a state of the source volume at a current time, the synthetic full backup having been generated by merging a full backup of the source volume performed at an initial time with an incremental backup of the source volume performed at the current time, after the initial time;

accessing a bitmap tracking changes to the source volume made between the initial time and the current time;

identifying from the bitmap a location on the source volume comprising changes made between the initial time and the current time;

reading first data written to the location on the source volume, the reading first data comprising reading a first span of blocks from the source volume, the first span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

reading second data written to the same location on the synthetic full backup, the reading second data comprising reading a second span of blocks from the synthetic full backup, the second span of blocks that are read comprising blocks that have changed according to the bitmap and blocks that have not changed according to the bitmap;

generating a first checksum based on the first data and a second checksum based on the second data;

comparing the first and second checksums; and

if the first and second checksums do not match, generating an indication that the synthetic full backup is corrupt;

further comprising:

randomly selecting a plurality of blocks from the source volume and a corresponding plurality of blocks from the synthetic full backup for checksum comparisons to validate the synthetic full backup.

12. The computer program product of claim 11 wherein the first span of blocks comprises blocks before, at, and after the location on the source volume, the first checksum thereby being generated using data from the first span of blocks, and

wherein the second span of blocks comprises blocks, before, at, and after the same location on the synthetic full backup, the second checksum thereby being generated using data from the second span of blocks.

13. The computer program product of claim 11 wherein a number of blocks in the first span of blocks is equal to a number of blocks in the second span of blocks.

14. The computer program product of claim 11 wherein the first data comprises a first file and the second data comprises a second file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: YADAV, SUNIL; CHOPRA, SHELESH
To: DELL PRODUCTS L.P.
Reel/Frame 058485/0858 →
Continuity (1)
Related Publication 20230205640A1 · Jun 29, 2023