Before getting into the technicalities of RAID and the features of a storage array, let's do an overview of RAID and what it accomplishes. RAID stands for Redundant Array of Inexpensive Disks. In my book, RAID serves two main purposes. The primary purpose of using RAID in small business applications is to make your server/computer more resilient to drive failures. A common misconception is that RAID is a backup solution. However, once we cover the basic RAID levels, it will become apparent that RAID was never meant to be a backup solution. When a drive fails, you have the option to replace the drive and rebuild the array. Rebuilding array refers to the restoration of data to the new drive that replaced the damaged drive. The secondary yet almost equally important purpose is to improve the performance of a storage array. By spreading data across multiple drives, we are able to boost performance since we can take a piece from each drive.
The five primary RAID levels utilized in small business/small practice are RAID 0, RAID 1, RAID5, RAID 6, RAID 10.
- RAID 0 is what is referred to as a striped array which essentially splits data between drives to maximize speed. However, there is a big downside, your chance of data loss multiplies for every drive you add to a RAID 0 array. Let's assume a specific hard drive model you're using has a 5% annualized failure rate. Let's also assume you elected to stripe your data across 2 disks. If either disk fails, you will lose your data since the data is split between the two drives. So, in terms of reliability, this is even worse than using one drive. Now your chance of failure is 2 x 5% or 10% for that storage array. This is the absolute worst RAID level to use for important data. While it offers the best performance, it does so at the cost of reliability. Requires at least 2 disks. Not resistant to any drive failure.
- RAID 1 is what is referred to as a mirrored array which essentially copies data from one drive to another. The drives are exact clones of each other. There is the common mistake of people thinking this is a form of backup. What those people fail to realize is that if you have a virus on one drive, you have that same virus on the other drive. If a file is corrupted on the first drive, it's corrupted on the second drive. The upside of using RAID 1 is that your data is resistant to failure if a drive fails, your business keeps on running and you can later replace the drive and rebuild the array. Requires at least 2 disks. Resistant to one disk failure per mirror.
- RAID 5 is more complex than RAID 0, RAID 1, and RAID 10. RAID 5 arrays store data using a method called block level striping with distributed parity. That sounds complicated. Let's break RAID 5 into components. First the block level striping is the same as the striping in RAID 0 in the sense that data is split across multiple drives. That's what gives us the extra performance as mentioned earlier. Now the reliability component comes from the distributed parity component of RAID 5. Parity is a lot like basic Algebra. Let's assume that we have 3 numbers, we know the difference of the first two numbers is equal to the third number or A-B=C. So as long as I know two of the variables, I can find the third number. Parity uses that same logic to reconstruct data on a missing drive. Let's assume I have 3 drives in RAID 5; Drive A, Drive B, and Drive C. Let's also assume disk B fails, the RAID controller is able to calculate the missing data from the parity data spread across the 2 drives. So if the parity data from drive A tells me that A=5 and the parity data from drive C tells me that C=2. I can find what was on B by using the formula mentioned earlier A-B=C or 5-B=2. From this, we can determine B equaled 3. Of course, in the computer world, everything is binary and you'll have things like XOR/binary operators to recalculate missing data. I find the algebra example is something the average person can relate to better. The RAID controller will have to do millions of calculations to rebuild the data which makes RAID 5 have a slow rebuild time, but you get the extra performance of striping when the array is fully operational. Requires at least 3 disks. Resistant to one disk failure per array.
- RAID 6 capitalizes on the same striping features as RAID 5 but doubles down on the parity portion. Think of RAID 6 as RAID 5 on steroids. Since I've already explained RAID 5, I won't go into too much detail with RAID 6. RAID 6 uses an additional distributed parity scheme as in RAID 5. This makes the array resistant to two disk failures. RAID 6 is meant to store very important data where downtime results in major financial damage. Requires at least 4 disks. Resistant to two disk failures per array.
- RAID 10 utilizes a combination of the mirroring of RAID 1 and striping of RAID 0. It is also referred to as RAID 1+0 or a stripe of mirrors. (Not to be confused with RAID 0+1 or a mirror of stripes). Data is striped or split between 2 sets of disks as in RAID 0. Each set contains a mirrored pair as in RAID 1. Hence, the term a stripe of mirrors. If this confuses you, think of each mirrored pair as a single drive. Then you're just striping/splitting data into two drives as in RAID 0. RAID 10 makes those drives into mirrored pairs. So if one drive fails, you still have the other drive in the pair. This is my personal favorite for RAID levels and is the recommended RAID level by many IT Professionals nowadays since it has the best performance of all the aforementioned RAID levels (with the exception of RAID 0) and provides extra resilience in case of failure. You can lose up to two disks, one in each mirrored pair without losing any data. So the resilience is better than RAID 5 but not as good as RAID 6 which lets you lose any 2 disks. But the rebuild times are significantly faster than RAID 5 and RAID 6 since there are no parity calculations. In my opinion (and many others' I hope), RAID 10 is the best RAID level for small business applications (especially database applications like EHR or CRM software). Requires at least 4 disks. Resistant to one disk failure in a mirrored pair.