Pros & Cons of Software RAID versus Hardware RAID

By Angsuman Chakraborty, Gaea News Network
Friday, September 26, 2008

In my quest to find the better service between Software RAID & Hardware RAID, I was caught RAID-handed among too many points and nitty-gritties of technical specifications and opinions. As a result of my explorations, I have developed a simple point-by-point structure to let you walk through this topic rather easily. First let us know what is a RAID and then we will delve into the details. According to wikipedia:

RAID stands for Redundant Array of Inexpensive Disks which is a technology that employs the simultaneous use of two or more hard disk drives to achieve greater levels of performance, reliability, and/or larger data volume sizes.

There are different levels of RAID. The most popular RAID formats are RAID-1 & RAID-5. However today we will not focus on the various RAID format. Let’s go straight to the differences between software RAID and hardware RAID.

Hardware RAID

  • A conventional Hardware RAID consists of a RAID controller that is installed into the PC or server, and the array drives are connected to it.
  • In high end external intelligent RAID controllers, the RAID controller is removed completely from the system to a separate box. Within the box the RAID controller manages the drives in the array, typically using SCSI, and then presents the logical drives of the array over a standard interface (again, typically a variant of SCSI) to the server using the array.

Software RAID:

In software RAID a software does the work of RAID controller in place of a hardware. Instead of using dedicated hardware controllers or intelligent boxes, we use a particular software that manages and implements RAID array with a system software routine.

Now that we are familiar with all the technicalities, let’s get on with the comparison.

Comparing Hardware RAID & Software RAID

Portability

  • OS Portability

    Software RAID is not usable across operating systems. So you cannot, for example, use two RAID disks configured in Linux with Windows XP and vice versa. This is big issue for dual booting systems where you will either have to provide a non-RAID disk for data sharing between the two operating system or use hardware RAID instead.

    As you know, dual booting is mostly obsolete these days as you can run multiple operating systems on the same machine using virtualization software like vmware & xen.

  • Hardware Portability

    Software RAID

    In Linux you can mirror two disks using RAID-1, including the boot partition. If for any reason the hardware goes bad, you can simply take the harddisk to a different machine and it will just run fine on the new hardware. Also with a RAID-1 array, each of the harddisk will have full copy of the operating system and data, effectively providing you with two backups, each of which can be run from a different hardware.

    Unfortunately in Windows it is not so easy to switch a operating systrem from one hardware to another, but that is the story of priprietary licenses and we will keep it for another day.

    Hardware RAID

    Hardware RAID is not so portable. You cannot just swap the hardware to a different machine and hope it will work. You have to find a Motherboard which is compatible with your RAID controller card; otherwise you can kiss your data goodbye. Also there is a bigger issue of problem with the RAID controller itself. If it fails and you cannot get the same controller from the market (and it has probably become obsolete by then), then again you can kiss your data goodbye.

Easy & Speedy Recovery

It may seem trivial but trust me, for a busy and loaded server, an easy and speedy recovery, that too inside the operating system without having to reboot is what one can dream of. Imagine if during the peak hours, your RAID system crashes and you are forced to reboot the machine to make changes to it to restore your data! Software RAID’s like in Linux, not only continues working even when the hardware has failed, but also starts restoring the RAID array, should any spare disk be available. All of these happens in the background and withgout affecting your users. This is where software RAID shines brilliantly.

System Performance

Software RAID uses the CPU to do the work of the RAID controller. This is why high-end hardware RAID controller outperforms software RAID, especially for RAID-5, because it has a high powered dedicated processor. However for low end hardware RAID, the difference may be neglible to non-existent. In fact it is possible for the software RAID perform better than low end hardware RAID controller simply because today’s desktop’s and workstations are powered by very powerful processors and the task is trivial to them.

Support for RAID Standards

High-end Hardware RAID may be slightly more versatile than Software RAID in support for various RAID levels. Software RAID is normally support levels 0, 1, 5 and 10 (which is a combination of RAID 0 and RAID 1) whereas many Hardware RAID controller can also support esoteric RAID levels such as RAID 3 or RAID 1+0. But frankly who uses them?

Cost

This is where software RAID again scores over hardware RAID. Software RAID is free. Hardware RAID is moderate to high priced and can put a strain on your budget if deployed widely.

But over the years the cost of hardware RAID has come down exponentially. So it may not be too far when more affordable RAID-5 cards will be built-in on newer motherboards.

Future Proof

Gone are the days when we could associate software RAIDs with bugs and OS problems. Nowadays software RAIDs are almost flawless. We are using software RAID in linux operating system for several years and haven’t experienced any problem whatsoever. On the contrary, hardware RAID has a single point of failure and that is its hardware controller. If it crashes then your only option is to find another equivalent RAID controller from the market; by this time the model may become obsolete and you may not even find anything compatble. You are as such faced with the haunting prospect of losing all your data, should the RAID controller fail. Software RAID will never become obsolete and will continue to get updated with updated versions of your operating system.

In conclusion: Software or Hardware RAID?

We have been successfully using Linux software RAID for several years without any issues and would prefer it any day over any hardware RAID solution. I think software RAID is the way to go for most users, unless you want to extract the very last ounce of performance from your RAID array and budget is not a constraint.

Beyond RAID…

However even the best RAID system has one teething problem - they are restricted to the same machine. Sure, you can move easily the harddisk running Linux RAID to a different machine but that implies some downtime. What if you want to have more reliability than what RAID standards provide by distributing your data across multiple machines? You should then take a look at MogileFS. It provides far greater reliability than any RAID array by distributing your data redundantly across multiple consumer grade hardware. But that is the story for another day. Till then, happy RAID’ing.

Discussion
April 13, 2010: 3:37 am

Nice Blog! Useful information here,it will help to lots of people.


Peter Allebone
February 12, 2009: 5:33 pm

Hi
I have been in the industry for about 7 years now and have had to deal with failed servers that somtimes use hardware and somtime use software RAID.
In every instance I can think of, recovering from disaster scenarios has been easier (when all was believed to be lost) with software RAID.
The number of issues specific to hardware controllers, exact hardware requirments etc that hardware raid needs is an absolute nightmare in some cases. Software raid is so much easier to get up and running again under windows (there are several disaster recovery apps that allow a rebuild of the raid to an external drive for example) or under linux (the tools are identical accross distros making it easy to try several techniques). Additionally Software mirroring is the easiest to deal with, however Raid 5 and others are not too much trouble with software raid either.

I can imagin scenarios where hardware raid is needed, or that mayby 10 years ago, the cpu’s of servers were not adequate to deal with software raid, but these days I feel that it is safer to stick with software raid, if only for the single reason that more people are using it now. If many peolpe are using it as a solution, then you can bet there will be more tools and recovery procedures for this system than a minority system.

Pete

September 30, 2008: 6:16 am

> RAID10 == RAID1+0
Mea culpa, it has been corrected.

> You complain that Hardware RAID is a single point of failure (SPOF) but:
(A) you can get redundant controllers and (B) software RAID isn’t any less of a SPOF — it’s just that it matches the failure of main system so you don’t see it as a separate thing.

Yes, you can get redundant controller or even have one spare controller lying around just in case of failure. However that increases the cost for one and secondly it isn’t the normal usage pattern. Previously RAID hardware controller used to be very costly. Even today they aren’t very cheap and most people wouldn’t bother having a second controller lying around and gathering dust, just in case the primary controller fails 2-3 years down the road.

> software RAID isn’t any less of a SPOF — it’s just that it matches the failure of main system so you don’t see it as a separate thing.

Any operating system like Linux can continue without issues for several years. New bugs can be uncovered in software but it doesn’t develop bugs with time. However hardware failure is much more common. So software being SPOF isn’t really true. If it is working, it will continue to work. Hardware will however fail sooner or later, sooner if you are unlucky. As such the controller being a real SPOF is still valid.

> Software RAID is not “free” as it adds load to the machine.
With today’s powerful processors the load is insignificant to say the least. We use RAID-1 on our heavily used server machines and have never seen RAID consuming any significant resources. Frankly with today’s processor the “additional load” is just theoretical with not much actual impact.


John D. Mitchell
September 30, 2008: 1:25 am

https://en.wikipedia.org/wiki/RAID has more information

RAID 10 is NOT a combination of RAID1 and RAID5. RAID10 == RAID1+0.

You complain that Hardware RAID is a single point of failure (SPOF) but:
(A) you can get redundant controllers and (B) software RAID isn’t any less of a SPOF — it’s just that it matches the failure of main system so you don’t see it as a separate thing.

Software RAID is not “free” as it adds load to the machine.

RAID5 is evil! See https://www.miracleas.com/BAARF/BAARF2.html

YOUR VIEW POINT
NAME : (REQUIRED)
MAIL : (REQUIRED)
will not be displayed
WEBSITE : (OPTIONAL)
YOUR
COMMENT :