How to Evaluate a RAID

This lesson discusses three axes to evaluate a RAID design.

We'll cover the following

As we will soon see, there are a number of different approaches to building a RAID. Each of these approaches has different characteristics that are worth evaluating, in order to understand their strengths and weaknesses.

Specifically, we will evaluate each RAID design along the following three axes:

Capacity

The first axis is capacity; given a set of NN disks each with BB blocks, how much useful capacity is available to clients of the RAID? Without redundancy, the answer is N.BN.B. In contrast, if we have a system that keeps two copies of each block (called mirroring), we obtain a useful capacity of (N.B)/2(N.B)/2. Different schemes (e.g., parity-based ones) tend to fall in between.

Reliability

The second axis of evaluation is reliability. How many disk faults can the given design tolerate? In alignment with our fault model, we assume only that an entire disk can fail. In later chapters (i.e., on data integrity), we’ll think about how to handle more complex failure modes.

Performance

Finally, the third axis is performance. Performance is somewhat challenging to evaluate because it depends heavily on the workload presented to the disk array. Thus, before evaluating performance, we will first present a set of typical workloads that one should consider.

We now consider three important RAID designs:

  • RAID Level 0 (striping)
  • RAID Level 1 (mirroring)
  • RAID Levels 4/5 (parity-based redundancy).

The naming of each of these designs as a “level” stems from the pioneering work of Patterson, Gibson, and Katz at Berkeley“Redundant Arrays of Inexpensive Disks” by D. Patterson, G. Gibson, R. Katz. SIG- MOD 1988. This is considered the RAID paper, written by famous authors Patterson, Gibson, and Katz. The paper has since won many test-of-time awards and ushered in the RAID era, including the name RAID itself!.

Get hands-on with 1400+ tech skills courses.