Everything you ever wanted to know about RAID (Part 1 of 4) – Overview

By Alasdair Lumsden on 7 Nov 2013

Part 1: An Overview of RAID

Back in 2008 we wrote a tiny blog article about RAID 1 vs RAID 5 performance. This turned out, rather bizarrely, to be one of our most popular blog articles. We’ve been doing a lot with storage over the past few years, so we decided to write a series of blog posts on RAID.

In this series we’ll cover:

  1. An overview of RAID
  2. RAID Levels
  3. RAID Hardware & Software (including ZFS)
  4. Performance Benchmarks

array

RAID: Redundant Array of Inexpensive Disks

RAID is a method of providing data security and/or improving performance by distributing data across multiple disks. There are different methods of doing this, aka "RAID levels", the most common of which are mirroring (RAID 1) and striping with parity (RAID 5), although there are others too – we’ll cover the common ones below.

RAID is typically performed by a PCIe RAID controller card, to which the disks will be directly attached. However it’s possible to do RAID in software, and most operating systems support this. Indeed, some modern filesystems such as ZFS actually prefer to do the RAID themselves, as it affords greater control over the data, and this is how we do RAID at EveryCity.

RAID should at least protect you against a single drive failure, and other RAID levels (Such as RAID 6 or RAID 10) can protect against multiple drive failures. When a failed disk is replaced, the array should automatically rebuild, although during this operation performance may be reduced.

Why use RAID?

Drives are the slowest and most unreliable parts of any computer system. Traditional Harddrives contain mechanical moving parts, and although capacities have increased in line with Moore’s law, performance has not; a typical harddrive can still only service 100-150 IOPs (Input/Output Operations Per Second), which is abysmally slow. Harddrives are typically the first component to fail in any system. Google wrote an interesting paper on the subject, which makes for interesting reading, due to the huge number of drives they have.

intel_ssd

One would have hoped that Solid State Disks would improve this situation; since they’re solid with no moving parts, surely they will be significantly more reliable? Sadly this hasn’t been the case, in fact early SSDs were substantially less reliable. Jeff Atwood, a favourite blogger of mine, wrote a nice piece on the topic(The Hot/Crazy Solid State Drive Scale). This is due to the way flash cells have a finite number of read/write cycles.

Performance of SSDs has also been mixed. Early drives suffered from degraded performance over time, with stalls during garbage collection and inconsistent behaviour. However as technology has improved, SSDs have definitely gotten better, both in terms of reliability and performance.

How does RAID fit in here?

Well, simply put, RAID’s goal is to turn a bunch of unreliable and slow drives into a single reliable and fast logical disk drive, removing the headache of storing data.

From a performance perspective, the more spindles you spread your data across, the faster it is to read and write, so RAID is also used to improve performance.

In our next post, we’ll go through the different RAID levels available. Check it out!