Motherboard RAID or Linux mdadm: Which is Faster?

📅 May 24, 2016
mobo-mdadm-raid1-2-100x10MMost SATA motherboards today feature a “RAID Mode” in BIOS. Does it really make a difference compared to mdadm?

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…

The Hardware

  • 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.

Motherboard RAID

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.

mdadm

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.

RAID Configuration

Here are a few diagrams to help understand the RAID concept implemented in this article.

a

RAID-0 using two hard drives.

RAID-0 using three hard drives.

RAID-0 using three hard drives.

RAID-1 with two and three hard drives. The motherboard RAID only allowed two drives in its array while mdadm supported more.

RAID-1 with two and three hard drives. The motherboard RAID only allowed two drives in its array while mdadm supported more.

RAID-5

RAID-5 with three hard drives.

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.

Benchmarks

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.

a

mdadm. Samsung 160G as a single drive, RAID-0, and RAID-1 using two drives. RAID-0 practically doubles the read/write speeds and capacity while RAID-1 remains the same as a single drive.

Now, let’s observe three drives in mdadm RAID.

a

mdadm. Three Samsung 160G drives in RAID-0, RAID-1, and RAID-5. RAID-0 scales well and almost triples the performance and capacity while RAID-1 remains the same but with twice the redundancy. RAID-5 is a reasonable compromise between a speed increase and redundancy.

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.

 

a

Motherboard RAID. Not much speed increase.

Let’s look at a few motherboard vs. mdadm comparisons.

 

a

Motherboard and mdadm RAID-0 with three drives. Disks 6x1000M.

 

a

Motherboard and mdadm RAID-1 with two drives. Disks 100x10M. About the same.

 

a

Motherboard RAID and mdadm RAID-5 with three drives. Disks 100x10M. Motherboard RAID showed a lead with this benchmark.

 

a

Motherboard and mdadm RAID-5 with three 160G drives. Disks 6x1000M.

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!

Summary Chart

Let’s organize these numbers for easier comparison.

a

All Disks benchmarks are 100x10M by default unless noted as 6x1000M. The average access speed was around 13-16ms.

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.

a

sudo fdisk -l See the /dev/mapper/isw_jfhedebhe_Volume1? That is your motherboard RAID array.

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.

RAID and Veracrypt. mdadm works perfectly while the motherboard RAID was invisible AS-IS.

RAID and Veracrypt. mdadm functioned perfectly while the motherboard RAID was invisible AS-IS.

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.

Reboot Required

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.

a

Nemo Properties in Linux Mint 17.3. Motherboard RAID array formatted as ext4.

a

Disks shows the motherboard RAID array as a block device named /dev/dm-0. The individual 160G drives shown here are the three member drives.

a

GParted allows you to format the motherboard RAID array. Oh, look! It’s the long device name again! Have fun typing that out in a terminal.

“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.

a

Linux Mint 17.3 installer sees the motherboard RAID-0 array fine. You can edit partitions normally.

a

However, Linux Mint 17.3 installation would always show this dialog and return to the previous partition dialog after clicking “Install Now.”

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.

 

Comparison Summary

Motherboard RAID

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

mdadm

Much better…

  • (+) 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

Conclusion

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.

,

  1. Leave a comment

Leave a comment