RAID levels explained
We break down the difference between the various RAID configurations
To paraphrase Benjamin Franklin, nothing is certain except death, taxes and lost data. There's only so much that technology can do about death and taxes, but a solid RAID configuration can definitely help with the latter. RAID technology helps protect hard drives - whether they're in a server, desktop NAS drive or data centre storage array - from data loss through mechanical failure or corruption.
RAID stands for "Redundant Array of Independent Disks" or "Redundant Array of Inexpensive Disks". It was principally designed with fault tolerance or failover protection in mind, and involves mirroring the data in a storage array across multiple disks, ensuring that if one drive fails, the contents of the array are not lost. Redundancy is important as hard drive failure can and does happen, so RAID acts as a failsafe against hardware breakdown.
In addition, multiple drives can also be combined into a single pool to create a cheap, high-capacity storage resource. This also allows the system to write to multiple disks at once, thereby improving performance.
There are many different levels of RAID, the most common being RAID 0, RAID 1, and RAID 5. Other more niche levels include RAID 6, 10 and 5+1. In addition to this, there is JBOD (Just a Bunch Of Disks), virtual disk RAID, and other vendor-specific RAID implementations.
Benefits of using RAID
There are a number of advantages to using RAID over conventional hard drive configurations.
Large storage: RAID volumes can support much larger capacities than a single drive. If you need more storage, you can simply add more drives.
Fault tolerance: For most RAID levels, some degree of redundancy and fault tolerance is built into the array, helping to prevent data loss.
Continuous running: When hard drives fail on a computer, the operating system stops. In a RAID array, when hard drives fail, the systems continues to operate normally while the failed disk is replaced - assuming the system supports hot-swapping drives.
Parity: Many RAID levels will include 'parity' protections which, in the event of a drive failure, use data from the other drives in an array to rebuild the replacement drive.
Speed: RAID can run much faster than a single drive, as the array can write to and read from multiple disks at the same time, increasing transmission rates.
RAID levels explained
RAID 0 (Disk striping)
This type of RAID divides data across any number of disks enabling higher data throughput. Files are read from multiple disks, increasing speed and capacity. This is known as striping and has the benefit of increased performance.
However, it doesn't have redundancy and fault tolerance as data is not duplicated. Disks appear as a single partition. If one of them fails, the array is broken, and data is lost. RAID 0 is used where speed is more important than data loss (such as live streaming, video on demand and IPTV).
RAID 1 (Disk Mirroring)
This RAID level reads and writes the same data to two drives. This is known as data mirroring and provides redundancy. If a disk fails, the system can still access data from the other disk or disks. Once a faulty disk is replaced, data is copied from one of the remaining disks to the new disk, rebuilding the array. This is an easy way to create failover storage.
The downside is that it lowers the usable capacity by half, increasing the cost per GB. It is used where data redundancy and availability are critical.
RAID 5 (Striping with parity)
This type of RAID stripes data blocks across multiple disks as RAID 0 does, but it also stores parity information (this is a checksum to determine if the data on the disk has any errors and can help in recovering data in the event of disk failure). RAID 5 has both speed (as data is accessible from multiple disks) and redundancy as parity information is stored across disks. If a disk fails, data can be recreated from data on other disk and the parity blocks. Around a third of the disk capacity is used in storing parity data.
The drawback of this is it has lower performance, as servers need to carry out many more write operations for parity. It is ideal for file storage and application servers.
RAID 6 (Striping with double parity)
This is not unlike RAID 5, however, it stores two parity blocks instead of one. That means that two drives can fail without destroying the array. This enables it to have higher redundancy and better read performance.
However, if a server is carrying out lots of write operations, performance decreases because of the extra parity overhead. This too is ideal for large file and application servers.
RAID 10 (Striping + Mirroring)
This is a combination of RAID 0's striping and RAID 1's mirroring. This means you have redundancy (RAID 1) and better performance (RAID 0).
The drawbacks of this is that usable capacity is lower and cost is higher. There is also limited scalability compared to other RAID levels. This arrangement is heavily used in database servers carrying out a lot of write operations.
There are two ways of implementing RAID; Software RAID and hardware RAID.
Hardware RAID uses a dedicated hardware controller to which the disks are linked. An on-board processor manages RAID that offloads the work from the host processor, making it faster to read and write data. Hardware controllers offer an extra element of failsafe as its BBU (Battery Backup Unit) protects your data in case of an unanticipated loss of power in the server. Replacing failed disk is easy; you just pull it out and insert a new one.
The disadvantage of hardware RAID is the need to buy hardware, which makes it more expensive than software RAID. If the controller fails, you need a compatible one to replace it to get the system back up and working.
Software RAID is done within an operating system and is fairly easy to implement. There is no need for extra hardware and firmware; this makes it more cost effective. Arrays can also be reconfigured as they are not restricted by the hardware RAID controller.
The disadvantage of software RAID is that it is slower than hardware RAID. It uses processing power, and in turn, impacts read and write speeds of a RAID configuration, along with other operations on the server. Replacing disks is a more complicated task too, as the system has to stop using the disk before it is replaced.