Abstract:
Disclosed is a shared, front-end, distributed RAID. A multiple storage request receiver module (2302) receives at least two storage requests from at least two clients (114) to store file or object data in one or more storage devices (150) of a storage device set (1604). The storage requests are concurrent and have at least a portion of the data in common. The storage device set (1604) includes autonomous storage devices (150) forming a RAID group. Each storage device (150) is capable of independently receiving storage requests from a client (114) over a network (116). A striping module (2304) calculates a stripe pattern and writes N data segments per stripe to N storage devices (150). A parity-mirror module (2306) writes a set of N data segments to parity-mirror storage devices (1602). A sequencer module (2308) ensures completion of a first storage request prior to executing a second storage request.
Abstract:
An invention is disclosed for data storage with progressive RAID. A storage request receiver module (1702) receives a request to store data. A striping module (1704) calculates a stripe pattern for the data and each stripe includes N data segments. The striping module (1704) writes the N data segments to N storage devices (150). Each data segment is written to a separate storage device (150) within a set of storage devices (1604) assigned to the stripe. A parity-mirror module (1706) writes a set of N data segments to one or more parity-mirror storage devices (1602) within the set of storage devices. A parity progression module (1708) calculates a parity data segment on each parity-mirror device (1602) in response to a storage consolidation operation, and stores the parity data segments. The storage consolidation operation is conducted to recover storage space and/or data on a parity-mirror storage device (1602).
Abstract:
An apparatus, system, and method are disclosed for managing data in a solid-state storage device (102). A solid-state(storage (110) and solid-state controller (104) are included. The solid-state storage controller (104) includes a write data pipeline (106) and a read data pipeline (108). The write data pipeline (106) includes a packetizer (302))and anECC generator (304). The packetizer (302) receives a data segment and creates one or more data packets sized for the solid-state storage (110). The ECC generator (304) generates one or more error-correcting codes ('ECC') for the data packets received from the packetizer (302). The read data pipeline (108) includes an ECC correction module (322), a depacketizer (324), and an alignment module (326). The ECC correction module (322) reads a data packet from solid-state storage (110), determines if a data error exists using corresponding ECC and corrects errors. The depacketizer (324) checks and removes one or more packet headers. The alignment module (326) removes unwanted data, and re-formats the data as data segments of an object.
Abstract:
An apparatus, system, and method are disclosed for predicting failures in solid-state storage and include a determination module (302), a threshold module (304), a storage region error module (306), and a retirement module (308). The determination module (302) determines that data stored in an ECC chunk contains Error Correcting Code ("ECC") correctable errors and further determines a bit error count for the ECC chunk. The ECC chunk originates from non-volatile solid-state storage media (110). The threshold module (304) determines that the bit error count satisfies an ECC chunk error threshold. The storage region error module (306) determines that a storage region that contained contains at least a portion of the ECC chunk satisfies a region retirement criteria. The retirement module (310) retires the storage region that contains at least a portion of the ECC chunk where the storage region satisfies the region retirement criteria.
Abstract:
Disclosed is a front-end, distributed RAID. A storage request receiver module (2102) receives a storage request to store data in autonomous storage devices (150) forming a RAID group. The storage devices (150) independently receive storage requests from a client (114) over a network (116), and one or more of the storage devices (150) are designated as parity-mirror storage devices (1602) for a stripe. The striping association module (2104) calculates a stripe pattern for the data. Each stripe includes N data segments, each associated with N storage devices (150). The parity-mirror association module (2106) associates a set of the N data segments with one or more parity-mirror storage devices (1602). The storage request transmitter module (2108) transmits storage requests to each storage device (150, 1602). Each storage request is sufficient to store onto the storage device (150, 1602) associated data segments. The storage requests are substantially free of data.