Apparatus, system, and method for reconfiguring an array of storage elements
First Claim
1. A method for reconfiguring an array of solid-state storage elements, the method comprising:
- determining that one or more storage elements are unavailable to store data, the storage elements configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk;
generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk; and
storing the second ECC chunk and associated second parity data across (N+P)−
Z storage elements where 1≦
z≦
P.
9 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements. The method includes determining that one or more storage elements are unavailable to store data. The storage elements are configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk. The method includes generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk. The method includes storing the second ECC chunk and associated second parity data across (N+P)−Z storage elements where 1≦Z≦P.
-
Citations
25 Claims
-
1. A method for reconfiguring an array of solid-state storage elements, the method comprising:
-
determining that one or more storage elements are unavailable to store data, the storage elements configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk; generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk; and storing the second ECC chunk and associated second parity data across (N+P)−
Z storage elements where 1≦
z≦
P. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus to reconfigure an array of solid-state storage elements, the apparatus comprising:
-
a storage element error module configured to determine that one or more storage elements in an array of storage elements are in error, the storage elements configured in an array of N storage elements storing a first ECC chunk and P storage elements that store first parity data generated from the first ECC chunk; a data reconfiguration module configured to generate a second ECC chunk comprising at least a portion of data of the first ECC chunk; and a new configuration storage module configured to store the second ECC chunk and associated second parity data on (N+P)−
Z storage elements where 1≦
Z≦
P, wherein the storage element error module, the data reconfiguration module, and the new configuration storage module comprise one or more of logic hardware and executable code, the executable code stored on a computer readable storage medium. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product comprising a non-transitory computer readable storage medium having computer usable program code executable to perform operations for reconfiguring an array of solid-state storage elements, the operations comprising:
-
determining that one or more storage elements are retired, the retired storage elements comprising a subset of storage elements configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data generated from the first ECC chunk; reading data from one or more storage elements other than the retired storage elements and generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk; and storing the second ECC chunk and associated second parity data across (N+P)−
Z storage elements where 1≦
z≦
P and Z comprises a number of retired storage elements. - View Dependent Claims (21)
-
-
22. A system to reconfigure an array of solid-state storage elements, the system comprising:
-
a storage controller configured to control an array of N storage elements storing a first ECC chunk and P storage elements that store first parity data associated with the first ECC chunk; a storage element error module configured to determine that one or more storage elements are unavailable to store data; a data regeneration module configured to regenerate data of the first ECC chunk with the first parity data and a portion of data of the first ECC chunk; a data reconfiguration module configured to generate second Error Correcting Code (“
ECC”
) and a second ECC chunk comprising the second ECC and at least a portion of data of the first ECC chunk; anda new configuration storage module configured to store the second ECC chunk and associated second parity data on (N+P)−
Z storage elements where 1≦
z≦
P and Z comprises a number of unavailable storage elements, wherein the storage controller, the storage element error module, the data reconfiguration module, and the new configuration storage module comprise one or more of logic hardware and executable code, the executable code stored on a computer readable storage medium. - View Dependent Claims (23)
-
-
24. An apparatus for reconfiguring an array of solid-state storage elements, the apparatus comprising:
-
means for identifying one or more storage elements that are unavailable to store data, the storage elements configured in an array of N data storage elements that each store a portion of a first ECC chunk and P parity storage elements that store first parity data corresponding to the first ECC chunk; means for regenerating data of the first ECC chunk with the first parity data and a portion of data of the first ECC chunk in response to available data of the first ECC chunk comprising parity data; means for generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk; and means for storing the second ECC chunk and associated second parity data on (N+P)−
Z storage elements where 1≦
z≦
P and Z comprises a number of unavailable storage elements, wherein the means for identifying, the means for regenerating, the means for generating, and the means for storing comprise one or more of logic hardware and executable code, the executable code stored on a computer readable storage medium. - View Dependent Claims (25)
-
Specification