Home > Data Storage Media > RAID > Striping

What is RAID by Michael Neuffer
Duplexing by Charles M. Koziero
Striping by Charles M. Koziero
Guide to RAID by David Risley
Mirroring by Charles M. Koziero
Drive Swapping by Charles M. Koziero



The article published below is from www.pcguide.com

The main performance-limiting issues with disk storage relate to the slow mechanical components that are used for positioning and transferring data. Since a RAID array has many drives in it, an opportunity presents itself to improve performance by using the hardware in all these drives in parallel. For example, if we need to read a large file, instead of pulling it all from a single hard disk, it is much faster to chop it up into pieces, store some of the pieces on each of the drives in an array, and then use all the disks to read back the file when needed. This technique is called striping, after the pattern that might be visible if you could see these "chopped up pieces" on the various drives with a different colour used for each file. It is similar in concept to the memory performance-enhancing technique called interleaving.

Striping can be done at the byte level, or in blocks. Byte-level striping means that the file is broken into "byte-sized pieces" (hee hee, sorry about that, I just couldn't resist. ;^) ) The first byte of the file is sent to the first drive, then the second to the second drive, and so on. (See the discussion of RAID level 3 for more on byte-level striping.) Sometimes byte-level striping is done as a sector of 512 bytes. Block-level striping means that each file is split into blocks of a certain size and those are distributed to the various drives. The size of the blocks used is also called the stripe size (or block size, or several other names), and can be selected from a variety of choices when the array is set up; see here for more details.

Block diagram of a RAID striping configuration. One controller (which again can be hardware or software) splits files into blocks or bytes and distributes them across several hard disks. The block size determines how many "pieces" files will be split into. In this example, the first block of file 1 is sent to disk #1, then the second block to disk #2, etc. When all four disks have one block of file 1, the fifth block goes back to disk #1, and this continues until the file is completed. Note that file 3 is only on one disk; this means it was smaller than the block size in this case.

Striping is used in the implementation of most of the basic, single RAID levels (and by extension, any multiple RAID levels that use those single RAID levels). However, the actual way striping is set up, and how it is used, varies greatly from level to level. RAID 0 uses block-level striping without parity; RAID 3 and RAID 7 use byte-level striping with parity; and RAID 4, RAID 5 and RAID 6 use block-level striping with parity. Note the distinction between striping with and without parity: striping by itself involves no redundancy, and therefore, provides no data protection. Also see the discussion of RAID 2 for a look at the oddball bit-level striping with ECC defined by that RAID type.