A Comparison of Software RAID Types

Linux Software RAID Performance Comparisons

The Problem

We expect RAID-0 to be faster than RAID-5 and that RAID-6 will be slower than RAID-5, but by how much? Here, we compare 5 spindles in each configuration, as well as the same number of data spindles in each configuration.

The Controller

The Test System

The Test Matrix

Conclusion

RAID-0 lacks parity protection and is only significantly faster than RAID-5 and RAID-6 for write-based workloads. While it is typical to use RAID-0 for read-only workloads, there is no compelling performance reasons to do so -- on read-only workloads, RAID-5 and RAID-6 perform nearly as well (or better).

RAID-6 must compute twice the parity information as RAID-5, so one typically expects it to perform significantly worse than RAID-5. This is not the case. Indeed, RAID-6 performance is nearly identical to RAID-5 performance for I/O sizes under 256KB. Capacity and reliability issues -- not performance issues -- should guide the selection between RAID-5 and RAID-6. (This likely assumes sufficient CPU, but the test system is I/O bound, not CPU bound.)

My recommendation is to never use RAID-0, and to select between RAID-5 and RAID-6 based on available capacity, data-recovery, and reliability needs.

Sequential Single Threaded Tests

For sequential reads, all RAID types have comparable performance up through 64KB I/O sizes. After that, RAID-0 saturates the controller and RAID-5 and -6 remain comparable. For workloads including writes, RAID-0 clearly has higher performance (because no parity computation is required); but RAID-5 and -6 are, again, comparable.



Random Single Threaded Tests

For random reads, all RAID types are comparabe, with RAID-0 having slightly higher performance. Writes show RAID-0's performance superiority, but RAID-5 and -6 are very similar up through 256KB I/O sizes, after which RAID-5 is superior.



Sequential Multi-Threaded Tests

All RAID types have comparable performance for mutli-threaded sequential reads up through 64KB I/O sizes, with RAID-5 and -6 actually outperforming RAID-0 for small I/O sizes. RAID-0 is superior for larger I/O sizes, and, as expected, for writes.



Random Multi-Threaded Tests

Multi-threaded random reads perform similarly across RAID types, nearly identially through 64KB I/O sizes. Again, RAID-0 has higher performance for workloads including writes, but RAID-5 and -6 are, again, nearly identical through 256KB I/O sizes.