Intel Software RAID vs. Hardware RAID

In this post I will discuss both, a general overview of Intel RST RAID and hardware RAID, along with a comparison including performance numbers.

The Intel RST RAID comes built-in with all Supermicro Intel based motherboards and can be enabled in the BIOS by adjusting a single setting. It is limited to SATA drives only. This type of RAID is considered a software RAID, since the RAID calculations are done on the CPU.

PROS
No additional hardware required
Cheaper cost
Very easy to use
Lower overall system power consumption
CONS
RAID levels are limited
No dedicated cache
Slower performance
CPU usage

Hardware RAID uses a PCI-e Add-On Card and processes the RAID calculations on the controller’s dedicated processor, therefore offloading the workload from the motherboard CPU.

PROS
Higher performance
Dedicated cache w/ protection
Dedicated processor
More drive options w/ Tri-mode (SATA/SAS/NVMe)
CONS
More expensive
Requires Add-On Card
Requires additional cables
Additional power consumption

FIO performance numbers comparing Intel RST software RAID and a Hardware RAID controller

FIO is a Linux based utility that simulates workload and provides bandwidth numbers for the storage portion of your system. It is highly granular and a number of parameters can be adjusted to simulate your specific workload. In this case, the FIO test was executed from a PXE booted OpenSuse 42.3 Live OS. Both software and hardware RAID arrays did not contain any data when the test was running.

  • RAID Level: RAID10
  • Drives used: 4x Samsung 960GB PM833 SSDs
  • Hardware RAID controller: LSI 9361-4i (SATA/SAS only, not Tri-mode)
  • FIO blocksize: 256k

Intel RST RAID10 Read/Write performance:

Run status group 0 (all jobs):
READ: io=111171MB, aggrb=1852.7MB/s, minb=1852.7MB/s, maxb=1852.7MB/s, mint=60008msec, maxt=60008msec

Run status group 0 (all jobs):
WRITE: io=56761MB, aggrb=968.4MB/s, minb=968.4MB/s, maxb=968.4MB/s, mint=60017msec, maxt=60017msec

fio command used:

fio –ioengine=libaio –name=io –rw=<read|write> –direct=1 –numjobs=1 –bs=256k –iodepth=64 –ramp_time=15 –runtime=60 –filename=/dev/md126

LSI 9361-4i Read/Write performance:

Run status group 0 (all jobs):
READ: io=129244MB, aggrb=2153.8MB/s, minb=2153.8MB/s, maxb=2153.8MB/s, mint=60010msec, maxt=60010msec

Run status group 0 (all jobs):
WRITE: io=60411MB, aggrb=1006.4MB/s, minb=1006.4MB/s, maxb=1006.4MB/s, mint=60030msec, maxt=60030msec

fio command used:

fio –ioengine=libaio –name=io –rw=<read|write> –direct=1 –numjobs=1 –bs=256k –iodepth=64 –ramp_time=15 –runtime=60 –filename=/dev/sda

As you can see, while the write performance is only slightly higher on hardware RAID at almost 4%, we see around a 14% increase in read performance.

In conclusion, whichever RAID option you choose will depend on a lot of different variables including price, PCI-e slot availability, use case, performance needs, workload type and more. Hopefully this post will help you make an educated decision based on your unique environment and needs.