Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
AssigneeCray Research, Inc.
InventorsTimothy J. Johnson, Alan R. Rivers
Life of this patent
Estimating the term…
Abstract
A system and method for implementing a serial RAID system. Data is striped for the array of disk drives and parity for the striped data is calculated and the resulting data and is written serially to a RAID system over a Fibre Channel or other type of network. The system also allows reading of the striped data and parity serially from the disk array.
Claims11
A method for transferring data between a processor and a plurality of disk drives, comprising the steps of:
- providing an I/O buffer, wherein the I/O buffer includes a plurality of I/O buffer segments, including a parity I/O buffer segment and a plurality of data I/O buffer segments, wherein each I/O buffer segment is assigned to a disk drive from the plurality of disk drives;
- providing a channel controller connected to the I/O buffer;
- providing a time multiplexed network connected to the channel controller;
- connecting the plurality of disk drives over the time multiplexed network to the channel controller;
- striping data received from the processor;
- generating parity data for the striped data;
- storing the striped data and the parity data to the I/O buffer, wherein the step of storing includes the steps of:
- writing the parity data to said parity I/O buffer segment;
- and
- writing a portion of said striped data to each of said plurality of data I/O buffer segments;
- and
- writing the striped data and parity data stored to the I/O buffer from the I/O buffer to the plurality of disk drives.
A method for transferring data between a processor and a plurality of disk drives, wherein the plurality of disk drives includes a first drive, a second drive, a third drive, and a fourth drive, the method comprising the steps of:
- providing an I/O buffer, wherein the I/O buffer includes a plurality of I/O buffer segments, including a parity I/O buffer segment and a plurality of data I/O buffer segments wherein each I/O buffer segment is assigned to a disk drive from the plurality of disk drives, wherein the plurality of data I/O buffer segments includes a first data I/O buffer segment, a second data I/O buffer segment, a third data I/O buffer segment, and a fourth data I/O buffer segment, wherein the first data I/O buffer segment, the second data I/O buffer segment, the third data I/O buffer segment, and the fourth data I/O buffer segment are assigned to the first, second, third and fourth drives respectively;
- providing a channel controller connected to the I/O buffer;
- providing a time multiplexed network connected to the channel controller;
- connecting the plurality of disk drives over the time multiplexed network to the channel controller;
- striping data received from the processor, wherein the step of striping the data comprises the steps of:
- interleaving bits 4n within a first group of bits;
- interleaving bits 4n+1 within a second group of bits;
- interleaving bits 4n+2 within a third group of bits;
- and
- interleaving bits 4n+3 within a fourth group of bits, wherein n is an integer from 0 to 15;
- generating parity data for the striped data;
- storing the striped data and the parity data to the I/O buffer, wherein the step of storing includes the steps of:
- writing the parity data to said parity I/O buffer segment;
- and
- writing a portion of said striped data to each of said plurality of data I/O buffer segments, wherein the step of writing a portion of said striped data includes the step of storing the first group of bits to said first data I/O buffer segment, the second group of bits to said second data I/O buffer segment, the third group of bits to said third data I/O buffer segment and the fourth group of bits to said fourth data I/O buffer segment;
- and
- writing the striped data and parity data stored to the I/O buffer from the I/O buffer to the plurality of disk drives.
A serial RAID system, comprising:
- an I/O interface system;
- and
- a disk array having a plurality of disk drives and a time multiplexed network, wherein the plurality of disk drives are connected to the I/O interface system by the time multiplexed network;
- wherein, the I/O interface system comprises:
- an I/O buffer memory, wherein the I/O buffer memory includes a plurality of I/O buffer segments, including a parity I/O buffer segment and a plurality of data I/O buffer segments, wherein each I/O buffer segment is assigned to a disk drive from the plurality of disk drives;
- a RAID processor, connected to the I/O buffer memory, wherein the RAID processor stripes data, calculates parity data, saves a portion of the striped data to each data I/O buffer segment and saves the parity data to the parity I/O buffer segment;
- and
- a channel controller, connected to the I/O buffer memory and to the disk array, wherein the channel controller transfers striped data stored in the plurality of I/O buffer segments and parity data stored in the parity I/O buffer segment over the time multiplexed network to the plurality of disk drives.
A method for transferring data between a processor and a plurality of disk drives, comprising the steps of:
- providing an I/O buffer, wherein the I/O buffer includes a plurality of I/O buffer segments, including a parity I/O buffer segment and a plurality of data I/O buffer segments, wherein each I/O buffer segment is assigned to a disk drive from the plurality of disk drives;
- providing a channel controller connected to the I/O buffer;
- providing a time multiplexed network connected to the channel controller;
- connecting the plurality of disk drives over the time multiplexed network to the channel controller;
- receiving striped data from the I/O buffer;
- generating parity data for the striped data;
- writing the parity data to the parity I/O buffer segment;
- and
- writing the striped data and parity data stored to the I/O buffer to the plurality of disk drives.
A serial RAID system, comprising:
- an I/O interface system;
- and
- a disk array having a plurality of disk drive and a time multiplexed network, wherein the plurality of disk drives are connected to the I/O interface system by the time multiplexed network;
- wherein, the I/O interface system comprises:
- an I/O buffer memory, wherein the I/O buffer memory includes a plurality of I/O buffer segments, including a parity I/O buffer segment and a plurality of data I/O buffer segments, wherein each I/O buffer segment is assigned to a disk drive from the plurality of disk drives and wherein each data I/O buffer segment stores striped data;
- a RAID processor, connected to the I/O buffer memory, wherein the RAID processor reads striped data from the plurality of data I/O buffer segments, calculates parity data and saves the calculated parity data to the parity I/O buffer segment;
- and
- a channel controller, connected to the I/O buffer memory and to the disk array, wherein the channel controller transfers striped data and parity data stored in the I/O buffer memory over the time multiplexed network to the plurality of disk drives.
Dependencies are inferred from the claim text.