Raid striping using multiple virtual channels
AssigneeIntel Corporation
InventorPaul A. Grun
Life of this patent
Estimating the term…
Abstract
A RAID device stripes a data block across N disk drives. The RAID device receives a storage request from a host computer for the data block, and creates N virtual interface (“VI”) queue pairs. The queue pairs form N virtual channels to the host computer. Further, the RAID device posts a descriptor to each of the queue pairs, with each descriptor referring to 1/Nth of the data block. Further, the RAID device receives 1/Nth of the data block over each of the virtual channels and writes each received 1/Nth data block to a different one of the N disk drives.
Claims20
A method of striping a data block across N disk drives, said method comprising:
- (a) receiving a storage request from a host computer for the data block;
- (b) creating N virtual interface (VI) queue pairs, wherein the queue pairs form N virtual channels to the host computer;
- (c) posting a descriptor to each of the queue pairs, each descriptor referring to 1/Nth of the data block;
- (d) receiving 1/Nth of the data block over each of the virtual channels;
- and
- (e) writing each received 1/Nth data block to a different one of the N disk drives.
A Redundant Array of Inexpensive Disks (RAID) device for storing a data block received from a host computer, said RAID device comprising:
- a RAID controller;
- N disk drives coupled to said RAID controller;
- a transport coupled to said RAID controller;
- and
- a network interface controller coupled to said RAID controller;
- wherein when the data block is being stored, said transport comprises
- N virtual interface (VI) queue pairs that form N virtual channels to the host computer, wherein said queue pairs receive 1/Nth of the data block over the N virtual channels;
- wherein said RAID controller is adapted to write each of the 1/Nth data blocks to a different one of said N disk drives.
A Redundant Array of Inexpensive Disks (RAID) system for striping a data block across N disk drives, said RAID system comprising:
- means for receiving a storage request from a host computer for the data block;
- means for creating N virtual interface (VI) queue pairs, wherein the queue pairs form N virtual channels to the host computer;
- means for posting a descriptor to each of the queue pairs, each descriptor referring to 1/Nth of the data block;
- means for receiving 1/Nth of the data block over each of the virtual channels;
- and
- means for writing each received 1/Nth data block to a different one of the N disk drives.
A method of stripping data across a redundant array of independent disks, comprising:
- receiving a request from a host computer to store a data block in the redundant array of independent disks;
- generating a number of virtual channels, wherein said number of virtual channels is represented by the variable N;
- assigning a plurality of descriptors to a plurality of queue pairs associated with each disk, wherein each queue pair of the plurality of queue pairs comprises a send queue and a receive queue;
- moving a 1/Nth portion of the data block from each send and receive queue of the plurality of queue pairs to N locations in a redundant array of independent disks controller memory;
- and
- writing each 1/Nth portion of the data block stored in the N locations of the redundant array of independent disks controller memory to a different storage device connected to the redundant array of independent disks controller memory.
Dependencies are inferred from the claim text.