IP Library Granted Patent US 9,158,624
Granted Patent B2
US 9,158,624 · App. 14/458,721 · Granted Oct 13, 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,158,624
App. No.
14/458,721
Granted
Oct 13, 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 (67)

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

identifying data that is stored within local redundant array of independent disks (RAID) memory as a set of RAID data blocks and corresponding RAID parity blocks, wherein the local RAID memory is located within local proximity to the DS unit;

partitioning the data into plurality of data segments;

dispersed error encoding a data segment of the plurality of data segments to generate a plurality of error coded (EC) data slices; and

storing the plurality of EC data slices among local dispersed storage network (DSN) memory that is located within the local proximity to the DS unit and remote DSN memory that is located outside of the local proximity to the DS unit.

2. The method of claim 1 further comprising:

storing first one or more EC data slices of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

storing second one or more EC data slices of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

3. The method of claim 2 , wherein:

the first one or more EC data slices of the plurality of EC data slices includes a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data; and

the second one or more EC data slices of the plurality of EC data slices includes remaining EC data slices of the plurality of EC data slices that are not included in the decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data.

4. The method of claim 1 further comprising:

storing no more than a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data within the local DSN memory that is located within the local proximity to the DS unit; and

storing all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

5. The method of claim 1 further comprising:

storing all of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

storing all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

6. The method of claim 1 further comprising:

dispersed error encoding the data segment of the plurality of data segments to generate another plurality of EC data slices, wherein the plurality of EC data slices is based on a first error coding dispersal storage function and the other plurality of EC data slices is based on a second error coding dispersal storage function.

7. The method of claim 1 , wherein:

the DS unit, the RAID memory, and the local DSN memory are located at a first site; and

the remote DSN memory is located at a second site that is geographically different than the first site and that is coupled to the first site via at least one communication network.

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

a communication interface; and

a processing module configured to:

identify data that is stored within local redundant array of independent disks (RAID) memory as a set of RAID data blocks and corresponding RAID parity blocks, wherein the local RAID memory is located within local proximity to the DS unit;

partition the data into plurality of data segments;

dispersed error encode a data segment of the plurality of data segments to generate a plurality of error coded (EC) data slices; and

store the plurality of EC data slices among local dispersed storage network (DSN) memory that is located within the local proximity to the DS unit and remote DSN memory that is located outside of the local proximity to the DS unit via the communication interface.

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

store first one or more EC data slices of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

store, via the communication interface, second one or more EC data slices of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

10. The DS processing unit of claim 9 , wherein:

the first one or more EC data slices of the plurality of EC data slices includes a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data; and

the second one or more EC data slices of the plurality of EC data slices includes remaining EC data slices of the plurality of EC data slices that are not included in the decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data.

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

store no more than a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data within the local DSN memory that is located within the local proximity to the DS unit; and

store, via the communication interface, all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

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

store all of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

store, via the communication interface, all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

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

dispersed error encode the data segment of the plurality of data segments to generate another plurality of EC data slices, wherein the plurality of EC data slices is based on a first error coding dispersal storage function and the other plurality of EC data slices is based on a second error coding dispersal storage function.

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

the DS unit, the RAID memory, and the local DSN memory are located at a first site; and

the remote DSN memory is located at a second site that is geographically different than the first site and that is coupled to the first site via at least one communication network.

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

identifying data that is stored within local redundant array of independent disks (RAID) memory as a set of RAID data blocks and corresponding RAID parity blocks, wherein the local RAID memory is located within local proximity to the DS unit;

partitioning the data into plurality of data segments;

dispersed error encoding a data segment of the plurality of data segments to generate a plurality of error coded (EC) data slices; and

storing the plurality of EC data slices among local dispersed storage network (DSN) memory that is located within the local proximity to the DS unit and remote DSN memory that is located outside of the local proximity to the DS unit.

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

storing first one or more EC data slices of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

storing second one or more EC data slices of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

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

the first one or more EC data slices of the plurality of EC data slices includes a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data; and

the second one or more EC data slices of the plurality of EC data slices includes remaining EC data slices of the plurality of EC data slices that are not included in the decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data.

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

storing no more than a decode threshold number of EC data slices of the plurality of EC data slices that is needed to reconstruct the data within the local DSN memory that is located within the local proximity to the DS unit; and

storing all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

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

storing all of the plurality of EC data slices within the local DSN memory that is located within the local proximity to the DS unit; and

storing all of the plurality of EC data slices within the remote DSN memory that is located outside of the local proximity to the DS unit.

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

dispersed error encoding the data segment of the plurality of data segments to generate another plurality of EC data slices, wherein the plurality of EC data slices is based on a first error coding dispersal storage function and the other plurality of EC data slices is based on a second error coding dispersal storage function.

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

the DS unit, the RAID memory, and the local DSN memory are located at a first site; and the remote DSN memory is located at a second site that is geographically different than the first site and that is coupled to the first site via at least one communication network.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2014
From: GRUBE, GARY W.; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033527/0195 →