Does fake RAID offer any advantage over software RAID?

Does a fake RAID controller do any useful work or is it just like a place where to store the parameters? I know that Linux offers much more flexibility than my poor on-board controller, but this is not important for me.

Is there any performance advantage by using the fake RAID?


Solution 1:

Generally speaking there is no significant performance difference at all between software RAID and fake RAID, as fake RAID is more-or-less software RAID anyway.

Any parity calcs (for RAID5 and similar) will be done in the CPU in either case (and I'd be more trusting of the OS to be efficient and well tested/stable/supported than the fake-RAID drivers especially for a cheap mobo/controller so you might find fake-RAID less speedy and less reliable), also any block reads needed in order to update parity blocks have to go over the controller to the OS in both cases.

Also, the multiple drive writes issue exists in either case - to write to a block on a two-drive RAID1 for instance means two writes by the OS to the controller with both software and fake RAID - with hardware RAID there is always just one write to the controller and it manages talking to the drives potentially in parallel rather than sequentially. With software/fake the writes may also be parallel, but it depends on the I/O controllers and drivers supporting this (it is more likely with software RAID if your drives are not all on the same controller, so again there is potential for fake RAID to actually be a little slower in that circumstance).

In general Fake RAID takes the bad bits of the software RAID (potential CPU hit and I/O latency because of it, inability to multiplex writes (depending on controller/drivers/OS) to save bus bandwidth, no hardware cache) with the bad bits of hardware RAID (vendor dependence and sometimes controller model dependence), and none of the advantages of either (the flexibility and potential machine portability of software RAID or the the OS independence, write efficiency, cache options and so on of hardware RAID). I (and many others) recommend it be avoided.

MINOR NOTE: My thoughts on driver efficiency/stability are OS independent - I'd trust the software RAID options in any of Linux/BSD/Windows/OSX/other, similarly more than the drivers for a cheap fake raid configuration (such as that provided by your motherboard).
ALSO NOTE: potential bugs in drivers and other problems listed above aside, fake RAID will still protect you from some drive failures, but I would suggest using software RAID instead.

Solution 2:

FakeRAID stores the RAID container information in the hardware/firmware, so that if another OS comes along there's no need to tell it what containers exist. Software RAID stores the RAID container information within the drives, so that if the drives are moved to other hardware there's no need to tell it what containers exist.

Solution 3:

I am a hardware engineer with a major vendor. Fake-RAID is the bane of my life, 80% of the disk replacements will need an outage to replace a broken disk because after replacement, the OS does not see the new disk. You then have to go to the BIOS and rebuild the volume. Normally you won't lose data, but it is a hassle and you will be working via a remote console.

If you have software RAID available, don't use fake-RAID - it works fine until something breaks. Get to learn your volume manager. Over the last 13 years I cannot recall anyone having an outage when a software mirrored disk breaks.

Solution 4:

It offers a massive drawback: it is bound to the hardware raid controller. So if your raid card, or mainboard breaks, you lose your raid information.

The presumed advantage of "operating system independence" is not there, in my opinion, as the drivers still have to be installed to take advantage of it. In case of multiboot, you will be better off partitioning the different disks and using each operating system´s builtin capabilities.