1 Year Warranty Included All Products*

phone: 651-633-0095

Pros and Cons of different raid levels

15th May 2023

RAID otherwise known as redundant array of independent disks is a way for computers and storage systems to combine multiple drives together for data storage space. There are many different types of RAID levels, each with its own pros and cons. In this blog post, we'll take a closer look at some of the most popular RAID levels and explore their advantages and disadvantages. So whether you're looking to set up a new RAID array or simply want to learn more about this technology, read on!

What is a raid array and how does it work

A raid system is a hardware or software solution used to improve the reliability and performance of a computer's storage system. In hardware based RAID setups, multiple physical disk drives are connected to specialized hardware controllers that manage data distribution and hardware redundancy. On the other hand, Software based RAID solutions rely on an operating system as the disk controller, allowing for reduced hardware costs by sharing resources which already exist within the computer. The specific process involved in each setup varies depending on which type of RAID is selected but typically includes different levels of mirroring or parity depending on the raid level and raid configuration.

Raid levels explained

Here we are going to cover all of the most common raid configurations you will see in computer systems in use today.

Raid 0: 

Raid 0, also known as disk striping is the highest performing raid level but also the most dangerous because of the complete lack of redundancy. Striping effectively writes data across all drives so that all drives can be accessed simultaneously leading to potentially huge performance gains however the very thing that makes it so fast also makes it dangerous as the loss of any of the drives in the array will lead to complete data loss as each drive is needed to work with the data.

Raid 0 performance increases linearly with each drive that you add, 2 drives will be a potential max 2x read and write performance boost, 3 drives will be a 3x read and write performance boost so on and so forth. As you can tell from this example disk striping is a very powerful tool when it comes to performance but must weigh the pros and cons when looking at this type of raid configuration.

Raid 1

Raid 1, also known as disk mirroring is a basic two disks array which just uses both drives to store the exact same set of information so that if one drive fails you can still access your data.

Raid 1 performance is usually comparable to the performance of one of drives in the array so it's generally mostly used for it's redundancy benefits more than anything else.

Raid 5: 

Raid 5 is where things start to get a bit more complicated. Raid 5 uses what is called parity data to provide it's drive redundancy the drive redundancy. In effect with a raid 5, each disk that is in the array has a section of data held on it called parity data, this parity data effectively equals out to being exactly 1 drives worth of data spread across all the drives, this is what causes the lose of 1 drives worth of space for the entirety of the array. What this parity data allows is for one drive to fail and the array to keep functioning, once you replace the failed drive the array is able to use the parity data spread across all of the other drives to reconstruct the data on the replaced drive.

Raid 5 performance is directly correlated with the number of drives within the array, read speed has a max potential benefit of the factor of number of drives minus one because of the parity data, when it comes to write speed there isn't really much of a benefit as the raid controller needs to do parity calculations. which slows down the write process. Random write performance suffers quite a bit because of the parity calculations as well.

RAID 5 issues with larger arrays: Raid 5 is no longer recommended on arrays larger than 1TB by virtue of how the rebuild process works. Raid 5 arrays when rebuilding data onto a replaced drive requires reading the entirety of all the other drives in the array and there can be no errors or additional failures during this process. As you increase the number of drives and size of the array you directly effect the rebuild speed which can get to the point of multiple days for the rebuild process to complete. If another drive were to fail or you were to get a uRE on one of the disk drives during this process the entire array will fail leading to complete data loss on the array. Most storage vendors and enterprise server manufacturers consider raid 5 deprecated and should be approached with this knowledge if deciding to utilize this raid level.

Raid 6: 

Raid 6 is effectively the same concept as raid 5 except with 2 drives worth of parity data meaning the array can survive 2 drive failures rather than just the 1 of the raid 5 array however with a loss of 2 drives worth of space vs 1 for raid 5. Raid 6 while considered a safer method than raid 5 is itself getting close to being considered deprecated as well depending on the size of array you're planning on utilizing. Raid 6 is safe for most arrays but once you start approaching 8TB+ arrays the exact same worries that occur with raid 5 start here as the likely hood of another drive failure or drive error during the rebuild increases as the array size itself increases and adds an unneeded level of uncertainty when performing a rebuild. Along with the potential for upwards of a week or more to rebuild extremely large arrays, the array itself will have performance degradation during this time as the controller and drives are constantly reading and writing to perform the rebuild which will have a detrimental impact on your actual system performance. Again you can obviously still utilize raid 6 on arrays of these sizes but they start to have more and more potential downsides that you will want to take into consideration.

Raid 10:

Raid 10 is often considered the pinnacle of raid levels but has some drawbacks as well which we will cover here.

Raid 10 is in effect a combination of raid 1 and raid 0 hence the name. It is basically sets of mirrored disks striped together in a raid 0. The minimum number of drives is 4 as you need at least 2 set of mirrored drives to stripe together and the maximum all comes down to however many drives your storage system can handle.

The biggest drawback is you only get 50% of the drive space as useable because of the use of mirrors.

The biggest benefit of raid 10 are the performance as each set of stipes adds a multiple for read and write. A raid 10 of 6 drives has a potential max read increase of 6x and write increase of 3x. A raid 10 of 8 drives has a potential max read increase of 8x and 4x write increase, so on and so forth. Server performance with raid 10 on a hardware based raid controller with SSDs can get into the GBps read and write speeds depending on hardware selected so it's arguably the best choice till you're looking at external large scale SAN solutions.

Another big benefit of raid 10 is how redundancy and rebuilds work in comparison to raid 5/6. With raid 10 a replaced failed drive only needs to copy data from the mirrored pair rather than requiring the data of every other drive within the array leading to much faster rebuilds.

The other benefit is the more drives you have in the array the lower the percentage chance of multiple drive failures causing complete loss of data as the only way the array fails is by both disks in one of the raid 1 pairs failing at the same time. You can in effect have a failed disk in every raid 1 pair and the more pairs you have in the array the lower chance of the failed disks being in the same pair. Obviously you want to replace a disk as soon as it fails in best practices but the capability is there for raid 10 to be more redundant.

Raid 50

Raid 50 is a similar concept to raid 10 however rather than being striped raid 1s like a raid 10 is, it is striped raid 5s hence raid 50.

In effect raid 50 gives you slightly better redundancy as you can have 1 disk fail out of each raid 5 sub array so if you have for example 3 raid 5 sub arrays in your raid 50 you can have up to 3 drive failures without causing complete raid failure whereas just a standard raid 5 only allows 1 drive failure across the entire array. This however means you lose a drives worth of usable space for every raid 5 sub array because of the underlying way that raid 5 redundancy works.

Raid 50 is considered somewhat more safe than a raid 5 as a rebuild of a drive only needs to access the drives within it's own raid 5 sub array rather than every single drive in the entire array like a standard raid 5 of the same number of disks would require. This means that you can have a larger overall array before hitting the point where raid 5 becomes an actual danger to your data. Raid 50 is still overall considered not the best choice because of it's underlying reliance on raid 5 technology despite its slight improvements on redundancy and rebuilds.

Raid 60:

Raid 60 is basically just like a raid 50 but with underlying raid 6s rather than raid 5s. The performance and benefits are exactly what you would expect from this so I'm not going to delve to deep into this method. Basically it's just an improvement in potential redundancy with a corresponding additional loss of useable space.

Depreciated raid levels

There are several completely depreciated raid levels which I will just touch on briefly here as they generally aren't supported on modern systems and hardware raid controller. Raid 2 uses bit level striping, Raid 3 uses byte level striping and raid 4 uses an inferior version of block level striping similar to raid 5. Raid 3 and 4 were basically replaced entirely by raid 5 as it has better performance with less complexity and requirements.

Benefits of hardware raid controllers vs software based raid systems

Hardware raid is the preferred method of utilizing raid on most systems. Generally speaking with hardware controllers you're going to be handling all the IO through the controller rather than having the OS and system CPU handle it which can lead to speed degradation and other unwanted symptoms. Along with that hardware raid controller setups often times have cache memory on the controller to speed up writes and other operations which can be very beneficial as modern raid controllers have upwards of 8GB+ on them. The utilization of cache memory on the controller leads to much improved write speeds, especially if you're utilizing standard HDDs in the array rather than SSDs as the controller is able to cache much of the writes to the write cache on the controller and then the controller will write the cached data onto the actual drives within the raid array. This effectively gives you much higher write speeds through the cache vs the speed of writes directly to the HDDs.

Software raid is viable for many different use cases and can be a much cheaper option with the right hardware. For most environments however, especially ones which are critical or have high IO requirements, using a hardware raid controller is the preferred way to go as you get better performance and reliability vs software raid solutions.

All that being said there are some implementations of software raid that can still give fairly good performance. Storage spaces from Microsoft is a software raid function built into windows and windows server operating system which allows you to either setup mirroring raid configurations or pool multiple physical disks(at least three disks) together in arrays similar to raid 5/6. This also gives the ability to utilize SSDs as cache devices which can help quite a bit with write operations. While not as fast as dedicated solutions in most cases, it offers a great easy way to get some level of data redundancy and protection from disk failure without the need for expensive additional raid hardware.