When trying to decide the best storage configuration for your server, you may have come across the concept of RAID. RAID is fairly common in modern server configurations and offers redundancy for stored data. In this article, we will explore the concept of software RAID and hardware RAID and discuss how these technologies work.
What is RAID? Redundant Array of Independent Disks
RAID (Redundant Array of Independent Disks) is a technology that combines multiple independent hard drives into a single larger volume for the purpose of redundancy and or performance. This is useful when you have a large amount of data and want to prevent data loss in the event of a hard drive failure or if you have an application that has very heavy disk usage and you need to improve the performance of your drives. When you are choosing your server you may see that some have a Software RAID or a Hardware RAID. Both hardware RAIDs and software RAIDs can support the same types of RAID, however you will generally get better performance from a hardware RAID.
Hardware RAID vs Software RAID
As RAID consists of arrays of independent disks, it is worth noting that this can take the form of either hardware or software. Typically, hardware RAID involves the use of a hardware RAID controller that handles the management of all of the disks in the array. This helps boost performance in the array itself by offloading the processing power required for managing it to a dedicated hardware device. Alternatively, software RAID handles RAID management through software. By using software RAID, the processing power devoted to managing your disk array is drawn from the total server resources. This can negatively impact performance if resources are limited. Both hardware and software RAID provide redundancy, so it is up to you to do decide which works best for your server.
|RAID 0||This level is strictly for performance. It stripes the data across all the drives to combine the total read and write speed of all the drives added to the array and gives you 100% of the total capacity of the drives. This level provides no protection against drive failure; if one drive in the array fails all data is lost. This should not be used if data loss on the array is not acceptable.|
|RAID 1||This level is known as mirroring. This array stores all data on each disk for improved fault tolerance. This level doesn’t improve performance as it is generally slower than the fastest drive. However, this is the lowest level optimal when data loss is unacceptable.|
|RAID 5||This level of RAID stripes data across at least 3 drives and writes parity data to all the drives. The parity data allows it to rebuild a drive in the array in the event one of the drives fails. Due to having to calculate and write the parity to all drives in the array you will lose some of the overall capacity of the array, The more drives you add, the lower the overall percentage of disk space is lost. You will gain a small write speed increase with this array and you will get the combined read speed of all drives in the array. This level can have 1 drive fail; if more than one drive fails all data is lost. When rebuilding a failed drive it can take up to a few days depending on the size and type of drive used. If you are using larger than 1TB drives it is recommended to use a RAID 6 over a RAID 5 as there is a high chance a second drive could fail during the rebuild resulting in data loss.|
|RAID 6||This level of RAID stripes data across at least 4 hard drives and writes double parity. With this array, you can have up to two drives fail at the same time without data loss. You will gain the combined read speed of all drives in the array. However, due to writing double parity, you will have a marginal increase in write speed and you will lose more overall capacity than a RAID 5. Like a RAID 5 you will also lose a smaller overall percentage of your combined disk space with the more drives you add.|
|RAID 10||This is a combination of RAID 1 and 0; it requires at least 4 drives. You will have the combined read speed of all the drives in the array and the write speed of half the drives. The number of drives that can fail in this array depends on the setup. Generally, half the drives can fail without data loss. The main reason for using this over a RAID 5 or 6 would be for improved write speed in smaller arrays.|
|RAID 50||This level of RAID combines 2 or more RAID 5s with a RAID 0, The data is striped across multiple RAID 5s. With this array, you will have the combined read speed of all the drives in the array, and the combined write speed of the individual raid 5s. With this array, you can have 1 drive in each RAID 5 fail without data loss.|
|RAID 60||This level of RAID combines 2 or more RAID 6s with a RAID 0. The data is striped across multiple RAID 6s. With this array, you will have the combined read speed of all the drives in the array, and combined write speed of the individual raid 6s. With this array, you can have up to 2 drives in each RAID 6 fail without data loss.|
You should now have a basic understanding of how RAID works and the various levels of RAID. There are more RAID levels than what is covered in this article. However, most of the levels not covered are obsolete or not available on common hardware or software. Keep in mind using a RAID is not a substitute for backups, but it will help prevent downtime caused by hardware failure however backups should always be made regularly.
Looking to set up even more redundancy? Check out this guide on dedicated backup storage!