Redundant Array of Independent Disk (RAID)
RAID is a technology that is used to increase the performance and/or reliability of data storage. The abbreviation stands for either Redundant Array of Inexpensive Disks or Redundant Array of Independent Drives. A RAID system consists of two or more drives working in parallel. These can be hard discs, but there is a trend to also use the technology for SSD (Solid State Drives). There are different RAID levels, each optimized for a specific situation. These are not standardized by an industry group or standardization committee. This explains why companies sometimes come up with their own unique numbers and implementations.
RAID
0 – Striping
RAID
1 – Mirroring
RAID
5 – Striping with parity
The software to perform the RAID-functionality and
control the drives can either be located on a separate controller card (a
hardware RAID controller) or it can simply be a driver. Some versions of Windows,
such as Windows Server 2016 as well as Mac OS X, include software RAID
functionality. Hardware RAID controllers cost more than pure software, but they
also offer better performance, especially with RAID 5 and 6.
RAID-systems can be used with a number of interfaces,
including SCSI, IDE, SATA or FC (fiber channel.) There are systems that use SATA
disks internally, but that have a FireWire or SCSI-interface for the host
system.
Sometimes disks in a storage system are defined as
JBOD, which stands for ‘Just a
Bunch Of Disks’. This means that those disks do not use a specific RAID
level and acts as stand-alone disks. This is often done for drives that contain
swap files or spooling data.
Below is an overview of the most popular RAID levels:
In a RAID 0 system data are split up into blocks that
get written across all the drives in the array. By using multiple disks (at
least 2) at the same time, this offers superior I/O performance. This
performance can be enhanced further by using multiple controllers, ideally one
controller per disk.
Advantages
- RAID 0 offers great performance, both in read and writes operations. There is no overhead caused by parity controls.
- All storage capacity is used, there is no overhead.
- The technology is easy to implement.
Disadvantages
- RAID 0 is not fault-tolerant. If one drive fails, all data in the RAID 0 array are lost. It should not be used for mission-critical systems.
RAID level 1 – Mirroring
Data
are stored twice by writing them to both the data drive (or set of data drives)
and a mirror drive (or set of drives). If a drive fails, the controller uses
either the data drive or the mirror drive for data recovery and continues
operation. You need at least 2 drives for a RAID 1 array.
Advantages
- RAID 1 offers excellent read speed and a write-speed that is comparable to that of a single drive.
- In case a drive fails, data do not have to be rebuild, they just have to be copied to the replacement drive.
- RAID 1 is a very simple technology.
Disadvantages
- The main disadvantage is that the effective storage capacity is only half of the total drive capacity because all data get written twice.
- Software RAID 1 solutions do not always allow a hot swap of a failed drive. That means the failed drive can only be replaced after powering down the computer it is attached to. For servers that are used simultaneously by many people, this may not be acceptable. Such systems typically use hardware controllers that do support hot swapping.
RAID level 5
RAID 5 is the most common secure RAID level. It requires at least 3 drives but can work with up to 16. Data blocks are striped across the drives and on one drive a parity checksum of all the block data is written. The parity data are not written to a fixed drive, they are spread across all drives, as the drawing below shows. Using the parity data, the computer can recalculate the data of one of the other data blocks, should those data no longer be available. That means a RAID 5 array can withstand a single drive failure without losing data or access to data. Although RAID 5 can be achieved in software, a hardware controller is recommended. Often extra cache memory is used on these controllers to improve the write performance.
- Read data transactions are very fast while write data transactions are somewhat slower (due to the parity that has to be calculated).
- If a drive fails, you still have access to all data, even while the failed drive is being replaced and the storage controller rebuilds the data on the new drive.
- Drive failures have an effect on throughput, although this is still acceptable.
- This is complex technology. If one of the disks in an array using 4TB disks fails and is replaced, restoring the data (the rebuild time) may take a day or longer, depending on the load on the array and the speed of the controller. If another disk goes bad during that time, data are lost forever.
- Like with RAID 5, read data transactions are very fast.
- If two drives fail, you still have access to all data, even while the failed drives are being replaced. So RAID 6 is more secure than RAID 5.
- Write data transactions are slower than RAID 5 due to the additional parity data that have to be calculated. In one report I read the write performance was 20% lower.
- Drive failures have an effect on throughput, although this is still acceptable.
- This is complex technology. Rebuilding an array in which one drive failed can take a long time.
- If something goes wrong with one of the disks in a RAID 10 configuration, the rebuild time is very fast since all that is needed is copying all the data from the surviving mirror to a new drive. This can take as little as 30 minutes for drives of 1 TB.
- Half of the storage capacity goes to mirroring, so compared to large RAID 5 or RAID 6 arrays, this is an expensive way to have redundancy.