IP Library Granted Patent US 10,031,816
Granted Patent B2
US 10,031,816 · App. 15/282,626 · Granted Jul 24, 2018

Systems and methods for healing images in deduplication storage

Inventors: Bin Liu (Beijing, CN); Xianbo Zhang (Plymouth, MN); Shuai Cheng (Beijing, CN); Cheng Shan (Beijing, CN); Wen Feng Jiang (Beijing, CN)
Assignee: Veritas Technologies LLC
G06F11/1469G06F11/1451G06F11/1453G06F2201/805G06F2201/82G06F2201/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 10,031,816
App. No.
15/282,626
Granted
Jul 24, 2018
Kind
B2
Abstract

The disclosed computer-implemented method for healing images in deduplication storage may include (i) detecting that a data segment stored within deduplication storage is corrupted by executing an algorithm on the data segment to generate a numerical identifier for the data segment and determining that the numerical identifier does not match a previously stored numerical identifier for the data segment, (ii) checking, during a backup operation, whether a digital fingerprint of a data segment of an image being backed up matches a digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage, and (iii) appending the data segment from the image being backed up to a container that already contains the corrupted data segment rather than replacing the corrupted data segment. Various other methods, systems, and computer-readable media are also disclosed.

Claims (36)

1. A computer-implemented method for healing images in deduplication storage, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

detecting that a data segment stored within deduplication storage is corrupted by executing an algorithm on the data segment to generate a numerical identifier for the data segment and determining that the numerical identifier does not match a previously stored numerical identifier for the data segment;

checking, during a backup operation, whether a digital fingerprint of a data segment of an image being backed up matches a digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage; and

appending, in response to determining that the digital fingerprint of the data segment of the image being backed up matches the digital fingerprint of the corrupted data segment, the data segment from the image being backed up to a container that already contains the corrupted data segment, such that an offset of the appended data segment is greater within the container than an offset of the corrupted data segment within the same container, rather than replacing the corrupted data segment.

2. The computer-implemented method of claim 1 , wherein the algorithm comprises at least one of:

a checksum algorithm;

a hash algorithm; and

a digital fingerprint algorithm.

3. The computer-implemented method of claim 1 , wherein appending the data segment from the image being backed up to the container effectively heals at least one image that references the corrupted data segment.

4. The computer-implemented method of claim 1 , further comprising providing, during a restore operation to restore an image that references the corrupted data segment, the appended data segment rather than the corrupted data segment based on the appended data segment having the greater offset.

5. The computer-implemented method of claim 4 , wherein providing the appended data segment rather than the corrupted data segment is performed according to a read operation that is configured to select, between multiple data segments having the same digital fingerprint, the data segment having the greatest offset within the container.

6. The computer-implemented method of claim 1 , further comprising adding, in response to detecting that the data segment stored within deduplication storage is corrupted, the digital fingerprint of the data segment to a fingerprint corruption list that identifies corrupted data segments.

7. The computer-implemented method of claim 6 , further comprising adding an identifier of the container together with the digital fingerprint of the data segment to the fingerprint corruption list.

8. The computer-implemented method of claim 7 , wherein the data segment is appended to the container that already contains the corrupted data segment, rather than a different container, at least in part by referencing the identifier of the container for the corrupted data segment within the fingerprint corruption list.

9. The computer-implemented method of claim 6 , further comprising checking, during the backup operation, the fingerprint corruption list to determine that the digital fingerprint of the data segment of the image being backed up matches the digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage.

10. The computer-implemented method of claim 1 , further comprising marking, in response to detecting that the data segment stored within the deduplication storage is corrupted, the data segment with a corruption flag set as true.

11. A system for healing images in deduplication storage, the system comprising:

a detection module, stored in memory, that detects that a data segment stored within deduplication storage is corrupted by executing an algorithm on the data segment to generate a numerical identifier for the data segment and determining that the numerical identifier does not match a previously stored numerical identifier for the data segment;

a checking module, stored in memory, that checks, during a backup operation, whether a digital fingerprint of a data segment of an image being backed up matches a digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage;

an appending module, stored in memory, that appends, in response to determining that the digital fingerprint of the data segment of the image being backed up matches the digital fingerprint of the corrupted data segment, the data segment from the image being backed up to a container that already contains the corrupted data segment, such that an offset of the appended data segment is greater within the container than an offset of the corrupted data segment within the same container, rather than replacing the corrupted data segment; and

at least one physical processor configured to execute the detection module, the checking module, and the appending module.

12. The system of claim 11 , wherein the algorithm comprises at least one of:

a checksum algorithm;

a hash algorithm; and

a digital fingerprint algorithm.

13. The system of claim 11 , wherein the appending module appends the data segment from the image being backed up to the container in a manner that effectively heals at least one image that references the corrupted data segment.

14. The system of claim 11 , further comprising a providing module, stored in memory, that provides, during a restore operation to restore an image that references the corrupted data segment, the appended data segment rather than the corrupted data segment based on the appended data segment having the greater offset.

15. The system of claim 14 , wherein the providing module provides the appended data segment rather than the corrupted data segment according to a read operation that is configured to select, between multiple data segments having the same digital fingerprint, the data segment having the greatest offset within the container.

16. The system of claim 11 , wherein the detection module adds, in response to detecting that the data segment stored within deduplication storage is corrupted, the digital fingerprint of the data segment to a fingerprint corruption list that identifies corrupted data segments.

17. The system of claim 16 , wherein the detection module adds an identifier of the container together with the digital fingerprint of the data segment to the fingerprint corruption list.

18. The system of claim 17 , wherein the appending module appends the data segment to the container that already contains the corrupted data segment, rather than a different container, at least in part by referencing the identifier of the container for the corrupted data segment within the fingerprint corruption list.

19. The system of claim 16 , wherein the detection module further checks, during the backup operation, the fingerprint corruption list to determine that the digital fingerprint of the data segment of the image being backed up matches the digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

detect that a data segment stored within deduplication storage is corrupted by executing an algorithm on the data segment to generate a numerical identifier for the data segment and determining that the numerical identifier does not match a previously stored numerical identifier for the data segment;

check, during a backup operation, whether a digital fingerprint of a data segment of an image being backed up matches a digital fingerprint of the corrupted data segment that was taken prior to corruption and that is already stored within the deduplication storage; and

append, in response to determining that the digital fingerprint of the data segment of the image being backed up matches the digital fingerprint of the corrupted data segment, the data segment from the image being backed up to a container that already contains the corrupted data segment, such that an offset of the appended data segment is greater within the container than an offset of the corrupted data segment within the same container, rather than replacing the corrupted data segment.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2016
From: LIU, BIN; ZHANG, XIANBO; CHENG, SHUAI; SHAN, CHENG; JIANG, WEN FENG
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 039913/0368 →
Continuity (1)
Related Publication 20180089037A1 · Mar 29, 2018
Cited By (1)
US 12,585,550