RAID is an acronym for Redundant Array of Independent (or Inexpensive) Disks. RAID is the way of combining several independent and relatively small disks into a single storage of a large size. The disks included into the array are called array members. The disks can be combined into the array in different ways which are known as RAID levels.
Each of RAID levels has its own characteristics of:
- Fault-tolerance which is the ability to survive of one or several disk failures.
- Performance which shows the change in the read and write speed of the entire array as compared to a single disk.
- The capacity of the array which is determined by the amount of user data that can be written to the array. The array capacity depends on the RAID level and does not always match the sum of the sizes of the RAID member disks.
The main methods of storing data in the array are:
- Striping – splitting the flow of data into blocks of a certain size (called “block size”) then writing of these blocks across the RAID one by one. This way of data storage affects on the performance.
- Mirroring is a storage technique in which the identical copies of data are stored on the RAID members simultaneously. This type of data placement affects the fault tolerance as well as the performance.
- Parity is a storage technique which is utilized striping and checksum methods. In parity technique, a certain parity function is calculated for the data blocks. If a drive fails, the missing block are recalculated from the checksum, providing the RAID fault tolerance.
RAID LEVELS –
Level 0: Striped disk array without fault tolerance
Provides data striping (spreading out blocks of each file across multiple disk drives) but no redundancy. This improves performance but does not deliver fault tolerance. If one drive fails then all data in the array is lost.
Level 1: Mirroring and duplexing
Provides disk mirroring. Level 1 provides twice the read transaction rate of single disks and the same write transaction rate as single disks.
Level 5: Block interleaved distributed parity
Provides data striping at the byte level and also stripe error correction information. This results in excellent performance and good fault tolerance. Level 5 is one of the most popular implementations of RAID.
Level 6: Independent data disks with double parity
Provides block-level striping with parity data distributed across all disks.
Level 10: A stripe of mirrors
Not one of the original RAID levels, multiple RAID 1 mirrors are created, and a RAID 0 stripe is created over these.
Below table articulates the difference between RAID types and how they stand in terms of various features –