If you look up hardware and software RAID solutions online, the general consensus seems to be that hardware RAID is better for both performance and reliability, while software RAID is simply cheaper and more convenient.
This might’ve been true a decade or two ago, but in 2022, it’s not the case anymore. Software RAID has made great strides and is undoubtedly better suited for certain scenarios. But, onboard RAID (i.e., FakeRAID) is still a waste of time though.
Isn’t onboard RAID also software RAID? Not exactly. Such conflicting information leaves most people confused. As such, we hope that this article will leave you informed enough to be able to pick the best RAID solution for your exact needs.
What is Hardware RAID?
Hardware RAID refers to arrays managed by purpose-built disk controllers that contain RAID firmware. These RAID controller cards plug into the PCIe slots on the motherboard, much like normal disk controllers. However, they differ in that they contain specialized processors which handle array management functions.
The main benefit of these processors is that you’re able to offload parity calculations from the system’s CPU to the controller. Offloading RAID I/O like this used to make a significant performance difference back in the day when processors were low-spec and already saturated. These days though, RAID I/O only has minimal impact on a processor’s performance.
Most RAID controllers also support RAID caching, which is another major factor responsible for hardware RAID’s top-tier performance. Data loss through power failure is a potential problem, though, which is why any decent controller these days has a Battery Backup Unit / Module (BBU / BBM).
In the present context, these are the two main reasons to opt for hardware RAID. On the other hand, the trade-offs include higher costs, vendor exclusivity, and a comparatively lower level of support.
Excellent I/O performance with high-end cards
Higher setup and maintenance cost
Need to find a compatible controller in case you need to replace
What is Software RAID?
Software RAID refers to arrays managed by a software component rather than a hardware RAID controller. Software RAID is typically implemented at the OS level through a driver (e.g., the multiple devices md driver in Linux). It’s also commonly implemented as a file system component, such as in the case of ZFS RAID-Z.
As we’ve already mentioned, the software RAID has a negative stigma surrounding it that it’s slow and unreliable. But this is an outdated notion.
RAID I/O may be managed by the CPU in software RAID. But unlike in the past, this can be done with minimal impact on the performance as processors have improved tremendously. In fact, certain software RAID solutions like ZFS or Linux RAID actually outperform low-end hardware controllers.
There are also some misconceptions regarding reliability. Most hardware RAID controllers don’t actually verify parity data unless a disk dies or reports an error. In this respect, something like ZFS, which actually verifies data integrity, is much more reliable. This does mean that ZFS’s performance will be impacted as it’s doing extra work. Definitely a worthwhile tradeoff, though.
Ultimately, the quality of a software RAID solution depends on which one we’re specifically talking about. For instance, you’ll rarely hear about good experiences with Windows RAID, whereas ones like ZFS or Linux RAID are very popular for their performance and reliability.
Another thing to keep in mind with things like ZFS or Linux md is that they do have a slight learning curve. You need some knowledge of how they work and the commands they use, particularly if you want to set up and manage them efficiently.
Finally, you should also be wary of onboard RAID. These are implemented using a standard disk controller and special firmware/drivers (e.g., Intel Rapid Storage Technology).
The intention with onboard RAID was to bridge the gap between hardware and software RAID and provide the benefits of both. However, the reality turned out to be the opposite, and it offers neither performance nor reliability comparable to the other two RAID types.
Lower setup and maintenance costs
Certain solutions are more reliable for data integrity
Slightly worse performance
Certain implementations require core technical expertise
Hardware RAID Vs Software RAID – Key Differences
Hardware and software RAID solutions differ in how they provide the I/O performance gains that they do, as well as in other metrics like reliability, cost, and compatibility.
The performance difference between hardware and software RAID ultimately depends on the specific solution in question. Certain software implementations like Windows RAID or things like FakeRAID are known to have pretty poor performance. Low-end RAID cards may provide a slightly better performance, but they can’t be considered reliable if things like BBU aren’t supported.
Good software implementations like ZFS generally outperform low-end cards. This is partly due to the fact that the system processors are faster than the RAID controller’s onboard processor. The same is true for Linux RAID, but it also has the advantage of being open-source, thus peer-reviewed and optimized.
Ultimately, high-end RAID controllers are the top of the line, though. High-end controllers cache data in the onboard memory during write operations which provides a considerable write performance boost.
A larger amount of onboard memory will provide a greater performance boost when working with lots of large files like media files. This makes high-end cards with higher memory worthwhile on things like media production workstations. The performance gain won’t be as great on systems that deal with random I/O on smaller files, though.
One thing to keep in mind is that the performance boost from write caching shouldn’t come at the cost of data integrity. We’ll cover this in the next section.
We’ve established how a good RAID controller card will provide the best performance through caching. But additionally, you should also ensure that the cache is protected by a BBU or BBM. Otherwise, a power loss event in write-back mode could lead to data loss, which could ultimately lead to the failure of the array.
Assuming the data in the controller cache is preserved (generally up to 72 hours), simply restarting the system should be enough to recover the data. Also, as a general rule, you should check the battery status and replace it if necessary, as it tends to deteriorate after a few years.
Onboard RAID doesn’t support such backup batteries, which makes it vulnerable to a number of things, from power outages to kernel errors. Yet another reason not to use it.
Software RAID, on the other hand, is reliable in a different sense. Software solutions like ZFS may have comparatively lower performance, but this is for a good reason.
It’s commonly thought that high-end controllers verify parity and correct errors on the fly, but this is not the case. Linux MD is regarded as one of the best software RAID solutions thanks to its performance, but even it doesn’t verify the parity unless a disk self-reports an error.
This is why something like ZFS or BTRFS really shines in terms of data integrity. ZFS has a native scrub feature that regularly checks for and repairs data corruption and bit rot. As for frequency, the general recommendation is to scrub normal disks once a week and enterprise-grade disks once a month.
And in case your current controller fails, you’ll need an identical controller from the same manufacturer. Swapping it for a different controller from a different vendor won’t work.
It’s also important to test these spares from time to time as they could potentially fail as well. And if you can’t find a compatible controller, you won’t be able to recover your data.
Software RAID doesn’t have this problem, as it’s implemented on the OS level. It’s less sensitive to component failures, but if any of the disks in the array fail, you’ll generally be able to hot-swap the disk and rebuild the array without much difficulty.
When getting started with RAID, one of the major factors that put most people off hardware RAID is the setup and maintenance cost. After all, RAID controllers don’t come cheap. At least not any decent ones. When you take things like spares into account, things look even grimmer for hardware RAID.
Software RAID, on the other hand, is a cost-effective solution that also offers decent performance.
Application / RAID Levels
When picking between hardware and software RAID, it’s also important to consider other factors like the scale of your setup and the RAID level you’re going to use.
If you plan to use lower RAID levels like RAID 0 or RAID 1 for a small array, you won’t need a hardware controller. But in the case of larger arrays, you’ll want to opt for higher RAID levels like RAID 5 and RAID 6 or hybrid RAID levels like RAID 50, RAID 60, etc. In such cases, a RAID controller is necessary for optimal performance.
Alternatively, if you plan to use non-standard RAID solutions like Linux MD or RAID-Z, you won’t need a hardware controller either. In fact, it’s recommended to avoid hardware RAID controllers when using ZFS for efficiency and data protection reasons.
Is Hardware RAID Worth It?
Software RAID is also great for performance these days. But ultimately, it still can’t match the level of performance that a high-end card with write caching and BBU offers. If costs aren’t an issue, you could definitely consider going with a high-quality hardware RAID setup for the best performance.
As an aside, we should also mention that NAS solutions like QNAP and Synology are actually software RAID. People often splurge on such NAS units, thinking they’re getting high-end hardware RAID, but this is not the case. The good thing, though, is that their performance is still comparable to, if not better than, an average hardware RAID setup.
When is Software RAID Better?
As long as top-of-the-line performance isn’t a necessity, software RAID tends to be a better option these days. The performance is generally decent, and the fact that you don’t have to buy expensive controllers lowers the entry barrier.
However, while we’re on this topic, we should mention that certain software solutions like ZFS or Linux RAID do have a slight learning curve, particularly if you plan to set up and use them efficiently.
Final Verdict – Hardware RAID Vs Software RAID
At this point, it should be evident that both hardware and software RAID offer comparable benefits these days. The right RAID solution for you ultimately just depends on factors like your budget and your highest priorities (convenience, performance, reliability, etc.).
Regardless of whether you go for hardware or software RAID, or standard or non-standard RAID levels, please keep in mind that RAID isn’t a backup. RAID only protects against disk failure. Without a separate offsite backup, it’s still possible to lose all your data to malware, corruption, accidents, or human error. To reiterate, backup!
With all that said, here are the key differences between hardware and software RAID once again before we conclude the article:
Better top-end performance
Slightly worse performance in general
In the case of write caching provides protection through BBUs
Certain solutions like ZFS are better for data consistency
Compatible replacement controller is needed in the case of failure
Physical controller isn’t used, but if mobo fails, you can simply swap for a different one
Higher setup and maintenance cost
Better suited for higher standard RAID levels like RAID 6, 10, 60, etc.
Best to go with non-standard implementations like ZFS, Linux MD, etc.