System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
First Claim
1. A solid-state storage subsystem comprising:
- a non-volatile memory array comprising a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of solid-state storage elements; and
a controller configured to;
implement a data redundancy configuration with a plurality of data stripes, each data stripe comprising a respective subset of the plurality of storage elements of the user data quota portion; and
be responsive to a failure of a storage element of the user data quota portion by at least;
replacing the failed storage element of the user data quota portion with one of the storage elements of the over-provisioning quota portion; and
rebuilding one or more of the data stripes that include the failed storage element using the storage element from the over-provisioning quota portion.
7 Assignments
0 Petitions
Accused Products
Abstract
Redundant “parity” RAID (5, 6, 50, 60) is a well-known technique for increasing data reliability beyond the failure rate of an individual storage device. In many implementations of redundant RAID, when a storage element is lost, a replacement or spare element is required to restore redundancy. A typical solid state storage device is over-provisioned with more storage media than is required to satisfy the specified user capacity. Embodiments of the present invention utilize the additional over-provisioned capacity and potentially modify the stripe size to restore RAID redundancy when a storage element or path (i.e., page, block, plane, die, channel, etc.) has failed. In some cases, this may also involve reducing the RAID stripe size.
232 Citations
13 Claims
-
1. A solid-state storage subsystem comprising:
-
a non-volatile memory array comprising a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of solid-state storage elements; and a controller configured to; implement a data redundancy configuration with a plurality of data stripes, each data stripe comprising a respective subset of the plurality of storage elements of the user data quota portion; and be responsive to a failure of a storage element of the user data quota portion by at least; replacing the failed storage element of the user data quota portion with one of the storage elements of the over-provisioning quota portion; and rebuilding one or more of the data stripes that include the failed storage element using the storage element from the over-provisioning quota portion. - View Dependent Claims (2, 3, 4)
-
-
5. A method of maintaining data redundancy in a solid-state storage subsystem in the event of a storage element failure, the method comprising:
-
dividing a non-volatile memory array of the solid-state storage subsystem into a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of storage elements, the user data quota portion storing a plurality of stripes that are arranged in accordance with a data redundancy configuration, each data stripe comprising a respective subset of the plurality of storage elements in the user data quota portion; and in response to detecting a failure in a storage element in the user data quota portion, removing the failed storage element from one or more of the data stripes that include the failed storage element; rebuilding the one or more data stripes; and prior to rebuilding the one or more data stripes, determining if a capacity of the over-provisioning quota portion is above a pre-defined minimum size, the pre-defined minimum being a value that exceeds an amount needed to replace a storage element. - View Dependent Claims (6, 7, 8)
-
-
9. A method of maintaining data redundancy in a solid-state storage subsystem in the event of a storage element failure, the method comprising:
-
dividing a non-volatile memory array of the solid-state storage subsystem into a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of storage elements, the user data quota portion storing a plurality of stripes that are arranged in accordance with a data redundancy configuration, each data stripe comprising a respective subset of the plurality of storage elements in the user data quota portion; and in response to detecting a failure in a storage element in the user data quota portion, replacing the failed storage element of the user data quota portion with one of the storage elements of the over-provisioning quota portion; and rebuilding the one or more data stripes. - View Dependent Claims (10, 11, 12, 13)
-
Specification