IP Library Granted Patent US 9,116,832
Granted Patent B2
US 9,116,832 · App. 14/458,686 · Granted Aug 25, 2015

Storing raid data as encoded data slices in a dispersed storage network

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 9,116,832
App. No.
14/458,686
Granted
Aug 25, 2015
Kind
B2
Abstract

A method begins by a processing module receiving data for storage and interpreting the data to identify the data as redundant array of independent disks (RAID) data. The method continues with the processing module interpreting the RAID data to identify at least one of RAID block data and RAID parity data. When the RAID data includes RAID block data and RAID parity data the method continues with the processing module encoding the RAID block data in accordance with error coding dispersal storage function parameters to produce at least one set of encoded data slices and outputting the at least one set of encoded data slices to a dispersed storage network memory.

Claims (90)

1. A method for execution by a processing module in a distributed storage (DS) unit, the method comprising:

receiving a request to retrieve data;

identifying a set of redundant array of independent disks (RAID) data blocks and corresponding RAID parity blocks that correspond to the data within RAID memory;

when the set of RAID data blocks is error-free or includes correctable errors:

retrieving the data based on the set of RAID data blocks; and

outputting, via a communication interface of the DS unit, the data based on the set of RAID data blocks; and

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

retrieving the data based on a backup copy of the data from a dispersed storage network (DSN) memory by:

retrieving a decode threshold number of error coded (EC) data slices of a set of EC data slices from the DSN memory, wherein a data segment of the backup copy of the data is dispersed error encoded to produce the set of EC data slices;

reconstructing the data segment of the backup copy of the data using the decode threshold number of EC data slices; and

reconstructing the backup copy of the data using the data segment; and

outputting, via the communication interface of the DS unit, the data based on the backup copy of the data.

2. The method of claim 1 further comprising:

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

generating a copy of the set of RAID data blocks based on the backup copy of the data; and

outputting, via the communication interface of the DS unit, the copy of the set of RAID data blocks.

3. The method of claim 1 further comprising:

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

generating a copy of the set of RAID data blocks based on the backup copy of the data; and

transmitting, via the communication interface of the DS unit, a store command accompanied with the copy of the set of RAID data blocks to the RAID memory.

4. The method of claim 1 , wherein:

other data is stored within the DSN memory based on first distributed data storage parameters having a first pillar width number and a first decode threshold number; and

the backup copy of the data is stored within the DSN memory based on second distributed data storage parameters having a second pillar width number and a second decode threshold number, wherein a difference between the second pillar width number and the second decode threshold number is less than a difference between the first pillar width number and the first decode threshold number.

5. The method of claim 1 further comprising:

calculating other RAID parity blocks based on the set of RAID data blocks;

comparing the other RAID parity blocks with the RAID parity blocks;

determining that the set of RAID data blocks is error-free when the other RAID parity blocks compare favorably with the RAID parity blocks; and

determining that the set of RAID data blocks includes one or more errors when the other RAID parity blocks compare unfavorably with the RAID parity blocks.

6. The method of claim 1 , wherein the DSN memory is local DSN memory that is located within local proximity to the DS unit.

7. The method of claim 1 , wherein the DSN memory is remote DSN memory that is included within another at least one DS unit that is located outside of local proximity to the DS unit.

8. A distributed storage (DS) processing unit comprises:

a communication interface; and

a processing module configured to:

receive a request to retrieve data;

identify a set of redundant array of independent disks (RAID) data blocks and corresponding RAID parity blocks that correspond to the data within RAID memory; and

when the set of RAID data blocks is error-free:

retrieve the data based on the set of RAID data blocks; and

output, via the communication interface, the data based on the set of RAID data blocks; and

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

retrieve the data based on a backup copy of the data from a dispersed storage network (DSN) memory by:

retrieving a decode threshold number of error coded (EC) data slices of a set of EC data slices from the DSN memory, wherein a data segment of the backup copy of the data is dispersed error encoded to produce the set of EC data slices;

reconstructing the data segment of the backup copy of the data using the decode threshold number of EC data slices; and

reconstructing the backup copy of the data using the data segment; and

output, via the communication interface, the data based on the backup copy of the data.

9. The DS processing unit of claim 8 , wherein the processing module is further configured, when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks, to:

generate a copy of the set of RAID data blocks based on the backup copy of the data; and

output, via the communication interface of the DS unit, the copy of the set of RAID data blocks.

10. The DS processing unit of claim 8 , wherein the processing module is further configured, when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks, to:

generate a copy of the set of RAID data blocks based on the backup copy of the data; and

transmit, via the communication interface of the DS unit, a store command accompanied with the copy of the set of RAID data blocks to the RAID memory.

11. The DS processing unit of claim 8 , wherein:

other data is stored within the DSN memory based on first distributed data storage parameters having a first pillar width number and a first decode threshold number; and

the backup copy of the data is stored within the DSN memory based on second distributed data storage parameters having a second pillar width number and a second decode threshold number, wherein a difference between the second pillar width number and the second decode threshold number is less than a difference between the first pillar width number and the first decode threshold number.

12. The DS processing unit of claim 8 , wherein the processing module is further configured to:

calculate other RAID parity blocks based on the set of RAID data blocks;

compare the other RAID parity blocks with the RAID parity blocks;

determine that the set of RAID data blocks is error-free when the other RAID parity blocks compare favorably with the RAID parity blocks; and

determine that the set of RAID data blocks includes one or more errors when the other RAID parity blocks compare unfavorably with the RAID parity blocks.

13. The DS processing unit of claim 8 , wherein the DSN memory is local DSN memory that is located within local proximity to the DS unit.

14. The DS processing unit of claim 8 , wherein the DSN memory is remote DSN memory that is included within another at least one DS unit that is located outside of local proximity to the DS unit.

15. A non-transitory computer readable medium having instructions causing a processing module in a distributed storage (DS) unit to execute a method comprising:

receiving a request to retrieve data;

identifying a set of redundant array of independent disks (RAID) data blocks and corresponding RAID parity blocks that correspond to the data within RAID memory;

when the set of RAID data blocks is error-free:

retrieving the data based on the set of RAID data blocks; and

outputting, via a communication interface of the DS unit, the data based on the set of RAID data blocks; and

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

retrieving the data based on a backup copy of the data from a dispersed storage network (DSN) memory by:

retrieving a decode threshold number of error coded (EC) data slices of a set of EC data slices from the DSN memory, wherein a data segment of the backup copy of the data is dispersed error encoded to produce the set of EC data slices;

reconstructing the data segment of the backup copy of the data using the decode threshold number of EC data slices; and

reconstructing the backup copy of the data using the data segment; and

outputting, via the communication interface of the DS unit, the data based on the backup copy of the data.

16. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 further comprising:

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

generating a copy of the set of RAID data blocks based on the backup copy of the data; and

outputting, via the communication interface of the DS unit, the copy of the set of RAID data blocks.

17. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 further comprising:

when the set of RAID data blocks includes more errors than are correctable based on the RAID parity blocks:

generating a copy of the set of RAID data blocks based on the backup copy of the data; and

transmitting, via the communication interface of the DS unit, a store command accompanied with the copy of the set of RAID data blocks to the RAID memory.

18. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 , wherein:

other data is stored within the DSN memory based on first distributed data storage parameters having first pillar width number and a first decode threshold number; and

the backup copy of the data is stored within the DSN memory based on second distributed data storage parameters having a second pillar width number and a second decode threshold number, wherein a difference between the second pillar width number and the second decode threshold number is less than a difference between the first pillar width number and the first decode threshold number.

19. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 further comprising:

calculating other RAID parity blocks based on the set of RAID data blocks;

comparing the other RAID parity blocks with the RAID parity blocks;

determining that the set of RAID data blocks is error-free when the other RAID parity blocks compare favorably with the RAID parity blocks; and

determining that the set of RAID data blocks includes one or more errors when the other RAID parity blocks compare unfavorably with the RAID parity blocks.

20. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 , wherein the DSN memory is local DSN memory that is located within local proximity to the DS unit.

21. The non-transitory computer readable medium having instructions causing the processing module to execute the method of claim 15 , wherein the DSN memory is remote DSN memory that is included within another at least one DS unit that is located outside of local proximity to the DS unit.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 033526 FRAME: 0857. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 14, 2014
From: GRUBE, GARY W.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033543/0370 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2014
From: GRUBE, GARY W.; RESCH, JASON K.
To: BROADCOM CORPORATION
Reel/Frame 033526/0857 →