Apparatus, system, and method for a shared, front-end, distributed RAID
First Claim
1. An apparatus for managing the reliable storage of shared data in a front-end, distributed RAID storage system by one or more clients, the apparatus comprising:
- a multiple storage request receiver module that receives a first storage request and a second storage request from two clients for data in one or more storage devices of a storage device set, the first storage request arriving prior to the second storage request and processed concurrent with the second storage request, the first storage request comprising a request to store data, the first storage request and the second storage request referring to at least a portion of the data in common, the storage device set comprising autonomous storage devices forming a RAID group, each storage device independently receiving storage requests directly from a client;
a striping module that calculates a stripe pattern for data of the first storage request and writes N data segments of a stripe for the data of the first storage request to N storage devices within the storage device set, wherein each of the N data segments is written to a separate storage device in response to a subcommand to each of the separate storage devices, the subcommands derived from the first request; and
a sequencer module that ensures completion of the first storage request prior to executing the second storage request by determining completion of the subcommands derived from the first storage request prior to executing the second storage request.
10 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method are disclosed for a shared, front-end, distributed redundant array of independent drives (“RAID”). A multiple storage request receiver module receives at least two storage requests from at least two clients to store file or object data in one or more storage devices of a storage device set. The storage requests are concurrent and have at least a portion of the data in common. The storage device set includes autonomous storage devices forming a RAID group. Each storage device is capable of independently receiving storage requests from a client over a network. A striping module calculates a stripe pattern and writes N data segments per stripe to N storage devices. A parity-mirror module writes a set of N data segments to parity-mirror storage devices. A sequencer module ensures completion of a first storage request prior to executing a second storage request.
174 Citations
29 Claims
-
1. An apparatus for managing the reliable storage of shared data in a front-end, distributed RAID storage system by one or more clients, the apparatus comprising:
-
a multiple storage request receiver module that receives a first storage request and a second storage request from two clients for data in one or more storage devices of a storage device set, the first storage request arriving prior to the second storage request and processed concurrent with the second storage request, the first storage request comprising a request to store data, the first storage request and the second storage request referring to at least a portion of the data in common, the storage device set comprising autonomous storage devices forming a RAID group, each storage device independently receiving storage requests directly from a client; a striping module that calculates a stripe pattern for data of the first storage request and writes N data segments of a stripe for the data of the first storage request to N storage devices within the storage device set, wherein each of the N data segments is written to a separate storage device in response to a subcommand to each of the separate storage devices, the subcommands derived from the first request; and a sequencer module that ensures completion of the first storage request prior to executing the second storage request by determining completion of the subcommands derived from the first storage request prior to executing the second storage request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system for managing the reliable storage of shared data in a front-end, distributed RAID storage system by one or more clients, the system comprising:
-
a storage device set of autonomous storage devices forming a RAID group, the storage devices independently receiving storage requests directly from a client; a multiple storage request receiver module that receives a first storage request and a second storage request from two clients for data in the one or more storage devices of the storage device set, the first storage request arriving prior to the second storage request and processed concurrent with the second storage request, the first storage request comprising a request to store data, the first storage request and the second storage request referring to at least a portion of the data in common; a striping module that calculates a stripe pattern for data of the first storage request and writes N data segments of a stripe for the data of the first storage request to N storage devices within the storage device set, wherein each of the N data segments is written to a separate storage device in response to a subcommand to each of the separate storage devices, the subcommands derived from the first request; and a sequencer module that ensures completion of the first storage request prior to executing the second storage request by determining completion of the subcommands derived from the first storage request prior to executing the second storage request. - View Dependent Claims (22, 23)
-
-
24. A method for managing the reliable storage of shared data in a front-end, distributed RAID storage system by one or more clients, the method comprising:
-
receiving a first storage request and a second storage request from two clients for data in one or more storage devices of a storage device set, the first storage request arriving prior to the second storage request and processed concurrent with the second storage request, the first storage request comprising a request to store data, the first storage request and the second storage request referring to at least a portion of the data in common, the storage device set comprising autonomous storage devices forming a RAID group, each storage device independently receiving storage requests directly from a client without an intervening storage controller; calculating a stripe pattern for data of the first storage request and writing N data segments of a stripe for the data of the first storage request to N storage devices within the storage device set, wherein each of the N data segments is written to a separate storage device in response to a subcommand to each of the separate storage devices, the subcommands derived from the first request; and ensuring completion of the first storage request prior to executing the second storage request by determining completion of the subcommands derived from the first storage request prior to executing the second storage request. - View Dependent Claims (25, 26, 27, 28, 29)
-
Specification