RAID, which level?
If you have ever worked in a small office or in an enterprise, surely this word will ring a bell in your head. RAID (Redundant Array of Independent Disks) is a method to improve system performance or to provide fault tolerance. It is widely used in the enterprise level and quite used in small offices. Mastering the concept is nearly fundamental to every system administrator.
What is RAID?
As said earlier it is a method to improve system performance or to provide fault tolerance to a system. RAID operates on drives, whether SSD or HDD it doesn’t matter, it can be operated on both, and also with a mix of both. The concept behind RAID is simple: many drives working as one to achieve one of the aforementioned advantages. There are two ways to achieve RAID:
- Software: almost cost-less but doesn’t support all the types of RAID, and usually a bit slower than Hardware.
- Hardware: faster than software, supports every RAID type but it comes at a cost
Striping, mirroring and parity
These three concept are the base of RAID, since their combination will result in each RAID configuration, that’s done in order to provide flexibility and to achieve different purposes.
- Striping: means that data is stored across multiple drives, this achieves performance.
- Mirroring: it creates a perfect copy of the data, this avoids data loss.
- Parity: this means creating parity in order to achieve fault tolerance.
There is a number of RAID levels: the first 7 (from 0 to 6) are the so-called standard levels. Using a combination of two RAID levels, there are nested levels. And in the end there is also a number of proprietary RAID levels called non-standard levels.
Standard RAID levels
RAID 0 (Block Striping, No Mirroring, No Parity)
This is the most basic form of RAID, it uses a minimum of two drives, to achieve better performance, but provides no fault tolerance, and if one of the drives breaks data loss risk is really high.
RAID 1 (No Striping, Mirroring, No Parity)
This one is the most basic RAID setup to avoid data loss. With a minimum of two drives, if one fails there is the other containing the exact same copy of data. It is quite good if you have important data, but you will have to pay double for each drive you decide to add. Meaning you will have 50% of the space you would have without RAID.
RAID 2 (Bit Striping, No Mirroring, No Parity)
RAID 2 is not used anymore since it is really expansive and most of its functions are now available within drives themselves. It will require a minimum of three drives. Striping is not done at block-level, it is instead at bit-level. It uses a particular algorithm called Hamming as error correction code. It will require separate group of drives: one for data, one for error correction. In this setup the controller must instruct the drives to reach the same angular orientation to read and check the data on the fly, correcting eventual errors. Provides one drive fault tolerance.
RAID 3 (Byte Striping, No Mirroring, Dedicated Parity)
This one has the same advantage as RAID 0, it is used with a minimum of three drives, in which one is dedicated to parity. In this setup disks have to spin at the same time to retrieve data. Consequently it has a great sequential speed but a poor random one. It is not used anymore. Provides one drive fault tolerance.
RAID 4 (Block Striping, No Mirroring, Dedicated Parity)
Another mostly unused setup is RAID 4. It will require a minimum of three drives, and one dedicated drive for parity. It is almost like RAID 3 but striping is done at block-level. Provides one drive fault tolerance.
RAID 5 (Block Striping, No Mirroring, Distributed Parity)
This is one of the most common setups in small environments. It provides a good combination of all the advantages RAID has to offer. It requires a minimum of three drives, and if one of these three drives fails you can recover almost painlessly. Parity is distributed among all the drives and data is striped at block-level. Provides one drive fault tolerance.
RAID 6 (Block Striping, No mirroring, Distributed Parity)
Almost identical to RAID 5 it uses two parity blocks instead of one (RAID 5 uses one). Provides two drives fault tolerance, but will require a minimum of four drives.
That’s it for today, coming up: nested and non-standard RAID levels.
Image courtesy of Robert
- 2020 A year in review for Marksei.com - 30 December 2020
- Red Hat pulls the kill switch on CentOS - 16 December 2020
- OpenZFS 2.0 released: unified ZFS for Linux and BSD - 9 December 2020