IP Library Granted Patent US 7,069,381
Granted Patent B1
US 7,069,381 · App. 10/609,487 · Granted Jun 27, 2006

Automated Recovery from data corruption of data volumes in RAID storage

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 7,069,381
App. No.
10/609,487
Granted
Jun 27, 2006
Kind
B1
Abstract

The present invention relates to an apparatus or computer executable method of detecting and repairing corrupt data in a RAID data storage system. In one embodiment, parity and checksum data are stored in the RAID data storage system for each stripe that stores data. The parity data is used to determine whether data in the corresponding stripe is corrupt. If stripe data is determined to be corrupt, the checksum data is used to correct the corruption.

Claims (44)

1. In a RAID data storage system comprising a stripe, wherein the stripe comprises stripe units B 1 –B max , a method comprising:

receiving a request to read data from stripe unit B x , wherein B x is one of stripe units B 1 –B max , wherein the request is received from a computer system in data communication with the RAID data storage system;

reading stripe parity P corresponding to stripe units B 1 –B max in response to receiving the request;

generating new stripe parity P new corresponding to stripe units B 1 –B max as a function of data of each of the stripe units B 1 –B max ;

comparing the new stripe parity P new with the stripe parity P;

returning stripe unit B x data to the computer system if the stripe parity P compares equally to the new stripe parity P new .

2. The method of claim 1 wherein the RAID data storage system comprises a parity RAID data storage system.

3. The method of claim 2 wherein the parity RAID data storage system comprises a RAID-5 data storage system.

4. In a RAID data storage system comprising a stripe, wherein the stripe comprises stripe units B 1 –B max , a method comprising:

receiving a request to read data from stripe unit B x , wherein B x is one of stripe units B 1 –B max , wherein the request is received from a computer system in data communication with the RAID data storage system;

reading stripe parity P corresponding to stripe units B 1 –B max in response to receiving the request;

generating new stripe parity P new corresponding to stripe units B 1 –B max as a function of data of each of the stripe units B 1 –B max ;

comparing the new stripe parity P new with the stripe parity P;

if stripe parity P does not compare equally to new stripe parity P new :

reading checksum CS data from memory, wherein the checksum CS data corresponds to stripe units B 1 –B max ;

(a) generating new data for stripe unit B y , one of the stripe units B 1 –B max as a function of checksum CS data and data of stripe units B 1 –B max other than stripe unit B y ;

(b) generating new checksum CS new data as a function of the new data for stripe unit B y and data of stripe units B 1 –B max other than stripe unit B y ;

(c) comparing new checksum CS new data with checksum CS data;

(d) overwriting data of stripe unit B y with the new data of stripe unit B y if new checksum CS new data compares equally to checksum CS data.

5. The method of claim 4 further comprising changing the value of variable y and repeating (a)–(d) if new checksum CS new data does not compare equally with checksum CS data.

6. The method of claim 4 wherein the RAID data storage system comprises a parity RAID data storage system.

7. The method of claim 6 wherein the parity RAID data storage system comprises a RAID-5 data storage system.

8. The method of claim 4 further comprising returning stripe unit B x data to the computer system if the stripe parity P compares equally to the new stripe parity P new .

9. A computer readable medium storing instructions executable by a first computer system in a RAID data storage system, wherein the RAID data storage system comprises a stripe, wherein the stripe comprises stripe units B 1 –B max , wherein the first computer system performs a method in response to executing instructions stored on the computer readable medium, the method comprising:

reading stripe parity P corresponding to stripe units B 1 –B max in response to receiving a request to read data from stripe unit B x , wherein B x is one of B 1 –B max , wherein the request is received from a second computer system in data communication with the first computer system;

generating new stripe priority P new corresponding to stripe units B 1 –B max as a function of data of each of the stripe units B 1 –B max ;

comparing the new stripe parity P new with the stripe parity P;

returning stripe unit B x data to the second computer system if the stripe parity P compares equally to the new stripe parity P new .

10. The computer readable medium of claim 9 wherein the RAID data storage system comprises a parity RAID data storage system.

11. The computer readable medium of claim 10 wherein the parity RAID data storage system comprises a RAID-5 data storage system.

12. A computer readable medium storing instructions executable by a first computer system in a RAID data storage system, wherein the RAID data storage system comprises a stripe, wherein the stripe comprises stripe units B 1 –B max , wherein the first computer system performs a method in response to executing instructions stored on the computer readable medium, the method comprising:

reading stripe parity P corresponding to stripe units B 1 –B max in response to receiving a request to read data from stripe unit B x , wherein B x is one of B 1 –B max , wherein the request is received from a second computer system in data communication with the first computer system;

generating new stripe priority P new corresponding to stripe units B 1 –B max as a function of data of each of the stripe units B 1 –B max ;

comparing the new stripe parity P new with the stripe parity P;

if stripe parity P does not compare equally to new stripe parity P new :

reading checksum CS data corresponding to stripe units B 1 –B max ;

(a) generating new data for B y , one of the stripe units B 1 –B max , as a function of checksum CS data and data of stripe units B 1 -B max other than stripe unit B y ;

(b) generating new checksum CS new data as a function of the new data for stripe unit B y and data of stripe units B 1 –B max other than stripe unit B y ;

(c) comparing new checksum CS new data with checksum CS data;

(d) overwriting data of stripe unit B y with the new data of stripe unit B y if new checksum CS new data compares equally to checksum CS data.

13. The computer readable medium of claim 12 wherein the method further comprises changing the value of y and repeating (a)–(d) if new checksum CS new data does not compare equally with checksum CS data.

14. The computer readable medium of claim 12 wherein the RAID data storage system comprises a parity RAID data storage system.

15. The computer readable medium of claim 14 wherein the parity RAID data storage system comprises a RAID-5 data storage system.

16. The computer readable medium of claim 12 wherein the method further comprises returning stripe unit B x data to the second computer system if the stripe parity P compares equally to the new stripe parity P new .

Assignments (16)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2025
From: COHESITY, INC.
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 072830/0475 →
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 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2004
From: VERITAS SOFTWARE CORPORATION
To: VERITAS OPERATING CORPORATION
Reel/Frame 015915/0090 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2003
From: KISELEV, OLEG; COLGROVE, JOHN A.
To: VERITAS SOFTWARE CORPORATION
Reel/Frame 014255/0284 →