Understanding Different RAID Levels

Advantages and disadvantages of various RAID levels

Today’s consumers have become used to having access to every service online instantly and expect it to function without interruption no matter what.

As a business owner, you have many features to consider when choosing the right system and infrastructure for your critical online applications. One of the features you have to consider when choosing the right server for your business is whether to enable RAID on your system, but more importantly, what type of RAID to choose to fit your technical needs. Below we will go through all the pros and cons of each RAID level and give suggestions on which type to choose for your set up.

RAID, short for redundant array of independent (originally inexpensive) disks is a disk subsystem that stores your data across multiple disks to either increase the performance or provide fault tolerance to your system (some levels provide both).

There are two ways of implementing the system. Software raid and hardware raid.

Hardware raid is directly managed by a dedicated hardware controller to which the disks are connected. The raid calculations are managed by an on-board processor which offloads the strain on the host processor CPU. However, the performance of today’s CPUs has increased so much, that this advantage has become more or less obsolete. HW controllers do provide an extra failsafe element with its BBU (Battery Backup Unit) that protects your data in case of an unexpected power loss to the server.

Software RAID is part of the OS and is the easiest and most cost effective implementation. It does not require the use of an additional (often costly) piece of hardware and the proprietary firmware.

Here is a list of the most used RAID levels:

RAID 0 (Disk striping)

Minimum number of disks: 2
Pros: Increased performance (Write and read speeds).
Cons: No redundancy.
Business use: Live streaming, IPTV, VOD Edge Server

RAID 0 splits data across any number of disks allowing higher data throughput. An individual file is read from multiple disks giving it access to the speed and capacity of all of them. This RAID level is often referred to as striping and has the benefit of increased performance. However, it does not facilitate any kind of redundancy and fault tolerance as it does not duplicate data or store any parity information (more on parity later). Both disks appear as a single partition, so when one of them fails, it breaks the array and results in data loss. RAID 0 is usually implemented for caching live streams and other files where speed is important and reliability/data loss is secondary.

RAID 1 (Disk Mirroring)

Minimum number of disks: 2
Pros: Fault tolerance and easy data recovery. Increased read performance.
Cons: Lower usable capacity. Higher cost per megabyte (double the amounts of drives is required to achieve desired capacity).
Business use: Standard application servers where data redundancy and availability is important.

RAID 1 writes and reads identical data to pairs of drives. This process is often called data mirroring and it’s primary function is to provide redundancy. If any of the disks in the array fails, the system can still access data from the remaining disk(s). Once you replace the faulty disk with a new one, the data is copied to it from the functioning disk(s) to rebuild the array. RAID 1 is the easiest way to create failover storage.

RAID 2

RAID 2 consists of bit-level striping with dedicated Hamming-code parity. All disk spindle rotation is synchronized and data is striped such that each sequential bit is on a different drive. Hamming-code parity is calculated across corresponding bits and stored on at least one parity drive. This level is of historical significance only; although it was used on some early machines as of 2014 it is not used by any commercially available system.

RAID 3

RAID 3 consists of byte-level striping with dedicated parity. All disk spindle rotation is synchronized and data is striped such that each sequential byte is on a different drive. Parity is calculated across corresponding bytes and stored on a dedicated parity drive. Although implementations exist, RAID 3 is not commonly used in practice.

RAID 4

RAID 4 consists of block-level striping with dedicated parity. This level was previously used by NetApp, but has now been largely replaced by a proprietary implementation of RAID 4 with two parity disks, called RAID-DP. The main advantage of RAID 4 over RAID 2 and 3 is I/O parallelism: in RAID 2 and 3, a single read I/O operation requires reading the whole group of data drives, while in RAID 4 one I/O read operation does not have to spread across all data drives. As a result, more I/O operations can be executed in parallel, improving the performance of small transfers.

RAID 5 (Striping with parity)

Minimum number of disks: 3
Pros: Fault tolerance and increased performance (lower than RAID 0)
Cons: Lower performance with servers performing large amounts of write operations because of parity overhead.
Ideal use: File storage servers and application servers.

RAID 5 stripes data blocks across multiple disks like RAID 0, however, it also stores parity information (Small amount of data that can accurately describe larger amounts of data) which is used to recover the data in case of disk failure. This level offers both speed (data is accessed from multiple disks) and redundancy as parity data is stored across all of the disks. If any of the disks in the array fails, data is recreated from the remaining distributed data and parity blocks. It uses approximately one-third of the available disk capacity for storing parity information.

RAID 6 (Striping with double parity)

Minimum number of disks: 4
Pros: Even higher redundancy than RAID 5. Increased read performance.
Cons: Lower performance with servers performing large amounts of write operations because of parity overhead.
Ideal use: Large file storage servers and application servers.

Raid 6 is similar to RAID 5, however, it provides increased reliability as it stores an extra parity block. That effectively means that it is possible for two drives to fail at once without breaking the array.

RAID 10 (Striping + Mirroring)

Minimum number of disks: 4
Pros: Very high performance. Fault tolerance.
Cons: Lower usable capacity/High cost. Limited scalability
Ideal use: Highly utilized database servers/ servers performing a lot of write operations.

RAID 10 combines the mirroring of RAID 1 with the striping of RAID 0. Or in other words, it combines the redundancy of RAID 1 with the increased performance of RAID 0. It is best suitable for environments where both high performance and security is required.

RAID 0+1 (Nested Hybrid RAID)

creates two stripes and mirrors them. If a single drive failure occurs then one of the stripes has failed, at this point it is running effectively as RAID 0 with no redundancy. Significantly higher risk is introduced during a rebuild than RAID 1+0 as all the data from all the drives in the remaining stripe has to be read rather than just from one drive, increasing the chance of an unrecoverable read error (URE) and significantly extending the rebuild window.

RAID 1+0 (Nested Hybrid RAID)

RAID 1+0: creates a striped set from a series of mirrored drives. The array can sustain multiple drive losses so long as no mirror loses all its drives.

JBOD RAID N+N (Nested Hybrid RAID)

JBOD RAID N+N: With JBOD (just a bunch of disks), it is possible to concatenate disks, but also volumes such as RAID sets. With larger drive capacities, write and rebuilding time may increase dramatically (especially, as described above, with RAID 5 and RAID 6). By splitting larger RAID sets into smaller subsets and concatenating them with JBOD, write and rebuilding time may be reduced. If a hardware RAID controller is not capable of nesting JBOD with RAID, then JBOD can be achieved with software RAID in combination with RAID set volumes offered by the hardware RAID controller. There is another advantage in the form of disaster recovery, if a small RAID subset fails, then the data on the other RAID subsets is not lost, reducing restore time.