APPARATUS, SYSTEM, AND METHOD FOR DATA STORAGE USING PROGRESSIVE RAID
First Claim
1. An apparatus for reliable, high performance storage of data, the apparatus comprising:
- a storage request receiver module that receives a request to store data, the data comprising data of a file or of an object;
a striping module that calculates a stripe pattern for the data, the stripe pattern comprising one or more stripes, each stripe comprising a set of N data segments, and writes the N data segments of a stripe to N storage devices, wherein each of the N data segments is written to a separate storage device within a set of storage devices assigned to the stripe;
a parity-mirror module that writes a set of N data segments of the stripe to one or more parity-mirror storage devices within the set of storage devices, the parity-mirror storage devices being in addition to the N storage devices; and
a parity progression module that calculates one or more parity data segments for the stripe in response to a storage consolidation operation, the one or more parity data segments calculated from the N data segments stored on the one or more parity-mirror storage devices, and stores a parity data segment on each of the one or more parity-mirror storage devices, the storage consolidation operation conducted to recover at least one of storage space and data on at least one of the one or more parity-mirror storage devices.
12 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for data storage with progressive redundant array of independent drives (“RAID”). A storage request receiver module, a striping module, a parity-mirror module, and a parity progression module are included. The storage request receiver module receives a request to store data of a file or of an object. The striping module calculates a stripe pattern for the data. The stripe pattern includes one or more stripes, and each stripe includes a set of N data segments. The striping module writes the N data segments to N storage devices. Each data segment is written to a separate storage device within a set of storage devices assigned to the stripe. The parity-mirror module writes a set of N data segments to one or more parity-mirror storage devices within the set of storage devices. The parity progression module calculates a parity data segment on each parity-mirror device 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.
-
Citations
27 Claims
-
1. An apparatus for reliable, high performance storage of data, the apparatus comprising:
-
a storage request receiver module that receives a request to store data, the data comprising data of a file or of an object; a striping module that calculates a stripe pattern for the data, the stripe pattern comprising one or more stripes, each stripe comprising a set of N data segments, and writes the N data segments of a stripe to N storage devices, wherein each of the N data segments is written to a separate storage device within a set of storage devices assigned to the stripe; a parity-mirror module that writes a set of N data segments of the stripe to one or more parity-mirror storage devices within the set of storage devices, the parity-mirror storage devices being in addition to the N storage devices; and a parity progression module that calculates one or more parity data segments for the stripe in response to a storage consolidation operation, the one or more parity data segments calculated from the N data segments stored on the one or more parity-mirror storage devices, and stores a parity data segment on each of the one or more parity-mirror storage devices, the storage consolidation operation conducted to recover at least one of storage space and data on at least one of the one or more parity-mirror storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus for updating data in a progressive redundant array of independent drives (“
- RAID”
) group, the apparatus comprising;an update receiver module that receives an updated data segment, the updated data segment corresponding to an existing data segment of an existing stripe, a stripe comprising data from a file or object divided into one or more stripes, each stripe comprising N data segments and one or more parity data segments, the N data segments stored on storage devices of a set of storage devices assigned to the stripe, each of the parity data segments generated from the N data segments of the stripe and stored on one or more parity-mirror storage devices assigned to the stripe, the set of storage devices comprising the one or more parity-mirror storage devices, the existing stripe comprising N existing data segments and one or more existing parity data segments; an update copy module that copies the updated data segment to the storage device where the corresponding existing data segment is stored and to the one or more parity-mirror storage devices corresponding to the existing stripe; and a parity update module that calculates one or more updated parity data segments for the one or more parity-mirror storage devices of the existing stripe in response to a storage consolidation operation, the storage consolidation operation conducted to recover at least one of storage space and data on one or more parity-mirror storage devices with the updated one or more parity data segments. - View Dependent Claims (17, 18, 19, 20, 21, 22)
- RAID”
-
23. A system for reliable, high performance storage of data, the system comprising:
-
a set of storage devises assigned to a stripe, the set of storage devices comprising N storage devices and one or more parity-mirror storage devices in addition to the N storage devices; a storage request receiver module that receives a request to store data, the data comprising data of a file or an object; a striping module that calculates a stripe pattern for the data, the stripe pattern comprising one or more stripes, each stripe comprising a set of N data segments, and writes the N data segments of a stripe to the N storage devices, wherein each of the N data segments is written to a separate storage device within the set of storage devices; a parity-mirror module that writes a set of N data segments of the stripe to each of the one or more parity-mirror storage devices; and a parity progression module that calculates one or more parity data segments for the stripe in response to a storage consolidation operation, the one or more parity data segments calculated from the N data segments stored on the one or more parity-mirror storage devices, and stores a parity data segment on each of the one or more parity-mirror storage devices, the storage consolidation operation conducted autonomously from the storage operations of the storage receiver module, the striping module, and the parity mirror module, the storage consolidation operation conducted to recover at least one of storage space and data on the one or more parity-mirror storage devices. - View Dependent Claims (24, 25)
-
-
26. A computer program product comprising a computer readable medium having computer usable program code executable to perform operations for reliable, high performance storage of data, the operations of the computer program product comprising:
-
receiving a request to store data, the data comprising data of a file or of an object; calculating a stripe pattern for the data, the stripe pattern comprising one or more stripes, each stripe comprising a set of N data segments, and writing the N data segments to N storage devices, wherein each of the N data segments is written to a separate storage device within a set of storage devices assigned to the stripe; writing a set of N data segments of the stripe to one or more parity-mirror storage devices within the set of storage devices, the one or more parity-mirror storage devices being in addition to the N storage devices; and calculating a parity data segment for the stripe in response to a storage consolidation operation, the parity data segment calculated from the N data segments stored on a parity-mirror storage device and storing the parity data segment on the parity-mirror storage device, the storage consolidation operation conducted autonomously from receiving a request to store N data segments, writing the N data segments to the N storage devices, or writing the N data segments to one or more parity-mirror storage devices, the storage consolidation operation conducted to recover at least one of storage space and data on the parity-mirror storage device.
-
-
27. A computer program product comprising a computer readable medium having computer usable program code executable to perform operations for reliable, high performance storage of updated data, the operations of the computer program product comprising:
-
receiving an updated data segment, the updated data segment corresponding to an existing data segment of an existing stripe, a stripe comprising data from a file or object divided into one or more stripes, each stripe comprising N data segments and one or more parity data segments, the N data segments stored on storage devices of a set of storage devices assigned to the stripe, each of the parity data segments generated from the N data segments of the stripe and stored on one or more parity-mirror storage devices assigned to the stripe, the set of storage devices comprising the one or more parity-mirror storage devices, the existing stripe comprising N existing data segments and one or more existing parity data segments; copying the updated data segment to the storage device where the corresponding existing data segment is stored and to the one or more parity-mirror storage devices corresponding to the existing stripe; and calculating one or more updated parity data segments for the one or more parity-mirror storage devices of the existing stripe in response to a storage consolidation operation, the storage consolidation operation conducted to recover at least one of storage space and data on one or more parity-mirror storage devices with the updated one or more parity data segments.
-
Specification