Throughout my career, I have seen many different practices on which levels of RAID (Redundant Array of Independent Disks) to use.  This post is referring to the traditional RAID form as there are now a few new forms of RAID that I believe in the future will supplant the original type.  Here are my recommendations and best practices that have served me well through the years.

  • RAID 0 – fastest performance, but also highest chance of failure.  With one drive failure, you will lose the entire array.  Best used as a scratch disk and data that can be lost.
  • RAID 1 – optimal for operating system (OS) installation with 2 drives.
  • RAID 5 – not recommended for any arrays larger than a couple terabytes because of the high chance of an unrecoverable read error (URE) and tolerance of only 1 drive failure.  I have seen too many UREs with RAID 5 that prevent a successful rebuild.  A URE happens when there is corrupt data in the array preventing a successful recovery from a degraded state.  Requires a minimum of 3 drives.
  • RAID 6 – recommended for data stores where reads are more important than writes.  Tolerates 2 drive failures and significantly less chance of experiencing a URE.  Requires a minimum of 4 drives.
  • RAID 10 – most expensive, but has the best performance and resiliency.  Requires a minimum of 4 disks.  It is striped (for performance) and mirrored (for redundancy).

NOTE: RAID is not a replacement for backups.  A good backup strategy that involves testing the backup is a necessity for a production environment.

Also, do yourself a favor and never use RAID 5.  I’ve seen too many failures, headaches and trouble caused by its usage.

Another type of RAID that I recommend and is my first recommendation is using a ZFS file system that has similar options, but better performance and resiliency with background data scrubbing.  The generic name for that type of RAID is called RAIDZ.  I’ll touch on examples and further explanations of this new state-of-the-art form of RAID in another post.