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 disks each with blocks, how much useful capacity is available to clients of the RAID? Without redundancy, the answer is . In contrast, if we have a system that keeps two copies of each block (called mirroring), we obtain a useful capacity of . 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
Get hands-on with 1400+ tech skills courses.