Unmentioned: Hardware RAID generally has battery backup so writes are completed even if the power fails (or the kernel panics). Software and Fake RAID can’t do that.
Or alternately that having that allows them to (legitimately) acknowledge writes before the data has actually hit disk platters and hence offer better write performance – i.e. that if they didn’t have that they would presumably (hopefully!) wait to acknowledge writes until the data actually had hit the platters rather than “cheating” and losing data on a power loss.
That said, with the SSDs that are now easily available you can achieve a similar effect using host-side software layers like bcache/dm-cache in writeback mode.
Generally that is the best option, it would only not apply when the drives are lying about syncing to disk (some cheap models still do on both SSD and HDD controllers, gets better benchmark results).
More unmentioned: with a copy-on-write FS like ZFS, you won’t ever get corruption from incomplete writes, because writes are atomic.
Another bonus with mdadm-based software raid is that the SATA drives are still visible as normal SATA drives via /dev/sda etc, so you can run smartmontools/smartctl/smartd/hdparm to monitor S.M.A.R.T. status and tweak power management etc. Many fakeraid/hardware raid hide the ATA device layer and/or require proprietary tools, so you’ll be missing out on detection of bad blocks and other errors.
Too bad this article is totally Linux/mdadm-centric and does not mention other sofware RAID solutions, like the “rampant layering violation” called ZFS, FreeBSD’s graid, OpenBSD’s softraid, etc.
Even with hardware RAID presenting one logical device, you still need driver support for that RAID controller. I remember way back in the 2000s, I had to wait for Dell to release their Percraid drivers so we could finally update Redhat on one of our machines. I think that’s in mainline though now.
This post is pretty spot on. I’m so use to mdadm and Linux RAID that I thought I could just extend Intel Rapid Store volumes if I just cloned them to a new disk. That totally didn’t work:
The Linux kernel does have support for showing Rapid Store (fake raid) drives, so you can use it, but the only reason you should is if you need to dual boot Windows.