IP Library › Granted Patent US 11,048,425
Granted Patent B2
US 11,048,425 · App. 16/557,400 · Granted Jun 29, 2021

Data integrity verification

Inventors: Naveen Kumar Selvarajan (Bangalore, IN); Sijesh T. Balakrishnan (Bangalore, IN); Arun Krishna Pillai (Bangalore, IN)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/064G06F3/0608G06F3/0679G06F11/1464H04L9/0643
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,048,425
App. No.
16/557,400
Granted
Jun 29, 2021
Kind
B2
Abstract

In some examples, data integrity verification may include obtaining, from an application for which data is stored in a primary storage volume, an identification of data blocks of the primary storage volume that are stored for the application in a snapshot storage volume that represents a snapshot of data stored in the primary storage volume. The identification may include references to locations of the data blocks in the primary storage volume. Using physical extent mappings and volume block addressing, the identified locations of the data blocks in the primary storage volume may be translated to locations of snapshot storage volume blocks of the snapshot storage volume. Based on the snapshot storage volume blocks that are read from the snapshot storage volume, integrity of corresponding backup copy blocks stored in a backup copy for backup of the primary storage volume may be verified.

Claims (53)

1. An apparatus comprising:

at least one processor; and

a non-transitory computer readable medium storing machine readable instructions that when executed by the at least one processor cause the at least one processor to:

obtain, from an application for which data is stored in a primary storage volume, an identification of data blocks of the primary storage volume that are stored for the application in a snapshot storage volume that represents a snapshot of data stored in the primary storage volume, wherein the identification includes references to locations of the data blocks in the primary storage volume, and the identification does not include data blocks stored for other applications;

using physical extent mappings and volume block addressing, translate the locations, referenced in the identification, of the data blocks in the primary storage volume to locations of snapshot storage volume blocks of the snapshot storage volume; and

verify, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of corresponding backup copy blocks corresponding to the snapshot storage volume blocks, wherein the corresponding backup copy blocks are stored, separate from the data blocks in the primary storage volume and separate from the snapshot storage volume blocks, in a backup copy for backup of the primary storage volume.

2. The apparatus according to claim 1 , wherein the instructions to obtain, from the application for which data is stored in the primary storage volume, the identification of data blocks of the primary storage volume that are stored for the application in the snapshot storage volume that represents the snapshot of data stored in the primary storage volume are further to cause the processor to:

obtain, from the application for which data is stored in the primary storage volume, the identification of data blocks that correspond to files associated with the application.

3. The apparatus according to claim 1 , wherein the instructions to verify, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume are further to cause the processor to:

generate hashes of the snapshot storage volume blocks read from the snapshot storage volume;

generate hashes of the corresponding backup copy blocks stored in the backup copy; and

determine, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume.

4. The apparatus according to claim 3 , wherein the instructions to determine, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume are further to cause the processor to:

determine whether each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks;

based on a determination that each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks, generate an indication of validity of the corresponding backup copy blocks stored in the backup copy; and

based on a determination that one of the hashes of the snapshot storage volume blocks does not match one of the corresponding hashes of the corresponding backup copy blocks, generate an indication of invalidity of the corresponding backup copy blocks stored in the backup copy.

5. The apparatus according to claim 1 , wherein the snapshot storage volume includes data blocks of the primary storage volume that are stored for a plurality of applications including the application.

6. The apparatus of claim 1 , wherein the instructions to cause the at least one processor to verify integrity of backup copy blocks are performed by the at least one processor without reading the entire snapshot storage volume.

7. A computer implemented method comprising:

obtaining, for an application for which data is stored in a primary storage volume, an identification of data blocks of the primary storage volume that are stored for the application in a snapshot storage volume that represents a snapshot of data stored in the primary storage volume, wherein the identification includes references to locations of the data blocks in the primary storage volume, and the identification does not include data blocks stored for other applications;

using physical extent mappings and volume block addressing, translating the locations, referenced in the identification, of the data blocks in the primary storage volume to locations of snapshot storage volume blocks of the snapshot storage volume;

reading, from the snapshot storage volume, the snapshot storage volume blocks; and

verifying, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of corresponding backup copy blocks corresponding to the snapshot storage volume blocks, wherein the corresponding backup copy blocks are stored, separate from the data blocks in the primary storage volume and separate from the snapshot storage volume blocks, in a backup copy for backup of the primary storage volume.

8. The method according to claim 7 , wherein obtaining, for the application for which data is stored in the primary storage volume, the identification of data blocks of the primary storage volume that are stored for the application in the snapshot storage volume that represents the snapshot of data stored in the primary storage volume, further comprises:

obtaining, from the application for which data is stored in the primary storage volume, the identification of the data blocks that correspond to files associated with the application.

9. The method of claim 8 , wherein the files are user selected.

10. The method according to claim 7 , wherein verifying, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume further comprises:

generating hashes of the snapshot storage volume blocks read from the snapshot storage volume;

generating hashes of the corresponding backup copy blocks stored in the backup copy; and

determining, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume.

11. The method according to claim 10 , wherein determining, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume further comprises:

determining whether each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks;

based on a determination that each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks, generating an indication of validity of the corresponding backup copy blocks stored in the backup copy; and

based on a determination that one of the hashes of the snapshot storage volume blocks does not match one of the corresponding hashes of the corresponding backup copy blocks, generating an indication of invalidity of the corresponding backup copy blocks stored in the backup copy.

12. The method according to claim 7 , wherein the snapshot storage volume includes data blocks of the primary storage volume that are stored for a plurality of applications including the application.

13. The method of claim 7 , wherein the verifying integrity of backup copy blocks is performed without reading the entire snapshot storage volume.

14. A non-transitory computer readable medium having stored thereon machine readable instructions, the machine readable instructions, when executed, cause a processor to:

obtain, for an application for which data is stored in a primary storage volume, an identification of specified data blocks, from a plurality of data blocks of the primary storage volume, that are stored for the application in a snapshot storage volume that represents a snapshot of data stored in the primary storage volume, wherein the identification includes references to locations of the specified data blocks in the primary storage volume, and the identification does not include data blocks stored for other applications;

using physical extent mappings and volume block addressing, translate the locations, referenced in the identification, of the specified data blocks in the primary storage volume to locations of snapshot storage volume blocks of the snapshot storage volume; and

verify, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of corresponding backup copy blocks corresponding to the snapshot storage volume blocks, wherein the corresponding backup copy blocks are stored, separate from the data blocks in the primary storage volume and separate from the snapshot storage volume blocks, in a backup copy for backup of the primary storage volume.

15. The non-transitory computer readable medium according to claim 14 , wherein the machine readable instructions to obtain, for the application for which data is stored in the primary storage volume, the identification of specified data blocks, from the plurality of data blocks of the primary storage volume, that are stored for the application in the snapshot storage volume that represents the snapshot of data stored in the primary storage volume, when executed, further cause the processor to:

obtain, for the application for which data is stored in the primary storage volume, the identification of the specified data blocks that correspond to files associated with the application.

16. The non-transitory computer readable medium of claim 15 , wherein the files are user selected.

17. The non-transitory computer readable medium according to claim 14 , wherein the machine readable instructions to verify, based on the snapshot storage volume blocks read from the snapshot storage volume, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume, when executed, further cause the processor to:

generate hashes of the snapshot storage volume blocks read from the snapshot storage volume;

generate hashes of the corresponding backup copy blocks stored in the backup copy; and

determine, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume.

18. The non-transitory computer readable medium according to claim 17 , wherein the machine readable instructions to determine, based on comparison of the hashes of the snapshot storage volume blocks to corresponding hashes of the corresponding backup copy blocks, integrity of the corresponding backup copy blocks stored in the backup copy for backup of the primary storage volume, when executed, further cause the processor to:

determine whether each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks;

based on a determination that each hash of the snapshot storage volume blocks matches each corresponding hash of the corresponding backup copy blocks, generate an indication of validity of the corresponding backup copy blocks stored in the backup copy; and

based on a determination that one of the hashes of the snapshot storage volume blocks does not match one of the corresponding hashes of the corresponding backup copy blocks, generate an indication of invalidity of the corresponding backup copy blocks stored in the backup copy.

19. The non-transitory computer readable medium according to claim 14 , wherein the snapshot storage volume includes data blocks of the primary storage volume that are stored for a plurality of applications including the application.

20. The non-transitory computer readable medium according to claim 14 , wherein the instructions to verify integrity of backup copy blocks is performed without reading the entire snapshot storage volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: SELVARAJAN, NAVEEN KUMAR; BALAKRISHNAN, SIJESH T.; PILLAI, ARUN KRISHNA
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 050247/0190 →
Continuity (1)
Related Publication 20210064238A1 · Mar 4, 2021