I got my hands on a consumer-grade desktop motherboard: MSI Z87-G45 Gaming. Like many other motherboards that contain SATA ports for connecting hard drives, it supports RAID.
I have been using RAID in Linux for many years using mdadm, which is available for free from the Ubuntu repository. This dandy little program allows you to configure various RAID arrays in software whether or not the motherboard supports RAID. It’s reliable, and it works well.
Is there any performance increase from using the RAID supported by the motherboard? What are the differences?
I performed my own simple tests with Linux Mint 17.3 to see if the motherboard RAID offered any advantages over mdadm. Here are the results…
- MSI Z87-G45 Gaming motherboard. Supports RAID0/1/5/10 in BIOS.
- Samsung SpinPoint 160G 7200 RPM SATA hard drives. I tried one, two, and three configurations. These are older drives, but they still work well. I chose to test with mechanical drives instead of SSDs in order to avoid saturating the SATA interface. If there are any improvements to be found, then the mechanical drives will show them.
The same hardware and Linux Mint 17.3 were used for all tests by shutting down and reconnecting drives.
For lack of a better term, motherboard RAID refers to the RAID configuration in the motherboard’s BIOS. Linux does not require any software installed to see the RAID array.
Once the SATA interface has been set to RAID Mode in BIOS, press CTRL+I at boot to launch a crude RAID setup utility.
For software RAID, I used mdadm. I find it to be far more featured than the motherboard RAID. It is terminal-based, but it offers a wide variety of options for monitoring and managing RAID arrays.
Here are a few diagrams to help understand the RAID concept implemented in this article.
Which Offers Better Management?
mdadm. Definitely mdadm. watch cat /proc/mdstat is a simple little wonder that provides real-time monitoring of the raid array. Many tools and a comprehensive man page make mdadm well-supported.
Motherboard RAID (on the MSI Z87-G45) offers no such luxury. The RAID array is created outside of any operating system, and from there, you are operating in the dark unless you install third-party software, which is only available for Windows as far as I can tell.
To see read and write performance comparisons, let’s start by testing a single Samsung 160G hard drive and then comparing it to mdadm RAID-0, RAID-1, and RAID-5. Linux Disks utility benchmark is used so we can see the performance graph.
Now, let’s observe three drives in mdadm RAID.
Notice the RAID-1 example above utilizing three drives. mdadm allows you to configure how many drives you want to add to an array. The MSI Z87-G45 motherboard RAID is limited to two drives for RAID-1.
Now, let’s perform a few tests using motherboard RAID. No mdadm.
Let’s look at a few motherboard vs. mdadm comparisons.
Further benchmarks reproduced similar results. Performance was very close with the motherboard RAID winning slightly over mdadm in some tests (most noticeably with RAID-5). However, both configurations seemed equal during everyday usage. When actually using the computer, I could not notice a difference. Programs loaded and files copied in about the same amount of time.
However, with three mechanical drives, there is more audible hard drive grinding. Three drives are noisy!
Let’s organize these numbers for easier comparison.
Extra Notes About Motherboard RAID
There are a few points to be aware of when using motherboard RAID.
Configuration is performed outside of any operating system.
This means that the RAID array should be seen by any operating system whether it supports RAID or not.
Linux sees the RAID array with a strange device name.
Veracrypt will NOT see the device.
If you like encrypting your RAID array with Veracrypt, then you must use mdadm. Even if fdisk shows the RAID device, Veracrypt will not see it, and so it will not create an encrypted volume or partition from a motherboard RAID array. There might be tricks to fool Veracrypt, but this is far more effort than mdadm. Veracrypt works flawlessly with mdadm RAID arrays.
You can still create encrypted Veracrypt file volumes on a motherboard RAID array just like you can create any other file.
Motherboard RAID Configurations are Limited.
mdadm offers far more flexibility and RAID levels. The RAID offered by the MSI Z87-G45 — as well as most other motherboards I have seen — only offer minimal RAID support, such as RAID0/1/5/10. Even then, the number of drives you can use with each is preset. Do you want three drives in RAID-1 for extra redundancy? Too bad. Motherboard RAID does not allow it (at least on the motherboard I used).
mdadm supports many more RAID levels, such as RAID-6, and you can even specify how many drives to include in a RAID array.
No RAID Array Monitoring Support.
…unless you install third-party software. Much of the software for monitoring motherboard RAID is tied to some version of Windows, so this excludes Linux users.
With mdadm, you can view every nitty-gritty detail on any RAID array, and you can even write your own monitoring scripts. However, mdadm does not report motherboard RAID arrays. The two are different.
If something goes wrong with the array and you need to administer it, you must exit Linux and reboot. Press CTRL+I to enter the RAID configuration utility, and work from there.
With mdadm, you can manage the array without rebooting. Sure there might be tools for motherboard RAID, but I had little success finding them.
The Motherboard RAID Array is Seen as a Regular Drive.
Linux Mint 17.3 sees the motherboard RAID array as a single drive like any other. No additional software installation is necessary.
“Can I Install Linux to the RAID Array?”
Yes, but beware because you might run into problems with older distributions. Also, you must use motherboard RAID since you cannot use mdadm until after Linux is installed. If the motherboard RAID is not configured, then the installer will see separate drives. Remember, the Linux installer needs to see a single device.
I tried installing Linux Mint 17.3 and Xubuntu 16.04 to a three-drive RAID-0 array (480G) using motherboard RAID mode. The LiveCD USB booted to a desktop fine, and the installer detected the motherboard RAID array. Linux Mint 17.3 refused to install.
Xubuntu 16.04 installed perfectly without any issues.
RAID-0 3 Drives Installation --------------------------------------------------- Linux Mint 17.3 Install time: Would not install. Xubuntu 16.04 Install time: 4m36s
Xubuntu 16.04 boots from the RAID-0 array like a normal drive.
Xubuntu 16.04 Boot Time (RAID-0 3 Drives) from Cold Boot to Desktop ------------------------------------------------------------------- Total Boot Time: 48s (Cold boot to usable desktop) BIOS: 16s Cold to Login: 41s
During regular usage, Xubuntu 16.04 performed well from the RAID-0 array. More disk activity was audible due to three mechanical drives operating in unison. Even though RAID-0 with three mechanical drives is faster than a single mechanical drive, Xubuntu 16.04 was still noticeably slower than a single SSD.
With motherboard RAID, you can still encrypt your home with the provided encryption during installation if you enable that option.
Not too impressive…
- (-) Veracrypt not possible with whole drive/partition encryption
- (-) Not much performance increase over mdadm
- (-) No out-of-the-box monitoring tools
- (-) Must exit the operating system and reboot to manage
- (-) Extremely limited RAID configurations and devices allowed
- (-) Primitive utility
- (+) Works regardless of operating system
- (+) 100% compatible with Veracrypt
- (-) Performance about the same as motherboard RAID
- (+) Plenty of command-line monitoring
- (+) No need to exit and reboot the system. Manage within Linux.
- (+) Many, many RAID configurations possible (including RAID-6)
- (+) Excellent command-line tools
- (-) Requires Linux — but this is a good thing
Honestly, I was expecting better performance from the motherboard RAID since it is often touted as “hardware RAID,” and hardware is faster than software, right? This test shatters that reasoning.
Given the management advantages of mdadm over motherboard RAID, I would definitely use mdadm over any motherboard RAID.
Motherboard RAID on consumer motherboards, regardless of the manufacturer, seems more like a motherboard maker’s gimmick than a true RAID solution. If you need hardware RAID, then I would recommend investing in a true, dedicated hardware RAID adapter card with on-board cache.
You can pretty much install and forget about a single hard drive until it develops problems, but when you enter the world of RAID, hard drive management becomes an issue that requires your attention in order to maintain a healthy array. mdadm offers this kind of management from inside Linux. No need to reboot.
If your RAID array becomes degraded, how will you know if you are using motherboard RAID with Linux? mdadm solves this issue and solves it well.
So, to answer the opening question, “Which is faster?” I would say the motherboard RAID offers a slight — very slight — improvement to speed, but the benefits of mdadm outweigh any performance improvements. This makes mdadm the winner.