A Case for Redundant Array of Inexpensive Disks (RAID)

An example of Amdahl’s Law. Consider a disk bound application that spends 9 out of every 10 seconds waiting on disk and 1 second performing computation. A 2x faster CPU would provide only a 5% reduction in overall application run time, because the application would still spend 9 out of every 10 seconds waiting for disk.
The key idea behind RAID is to replace a larger costlier disk with an array of smaller cheaper (per byte) disks. Here we consider replacing one large disk with 4 small disks each of which has 1/4th the capacity, 1/2 the throughput, and 1/8th the price (i.e., 1/2 the cost per byte). Such a replacement would result in higher throughput at lower cost. The problem (akin to RAID-0 discussed later) is that the reliability of data would reduce (even assuming that each of the individual cheaper disks had the same reliability as the expensive disk to begin with). This is because the more the number of disks, the higher the probability that at least one of them will fail, resulting in a data loss. RAID fixes this problem by adding redundant data in the array of disks.
RAID-0: Stripe data across disks without any redundancy. Here we are considering a sector granular striping (S-N means sector N). A collection of stripe units from all the disks (e.g., S-0, S-1, S-2, and S-3) form a stripe.
RAID-1: Data is mirrored across the two disks. An interesting thing to note is that each “disk” in a RAID-1 organization can be a RAID-array (e.g., RAID-5 array of 5 disks) itself. In fact, any disk in any RAID-array can itself be a RAID-array. As such, RAID is a nomenclature for storage organization and hence organizations like a RAID-1 of RAID-5s, or a RAID-5 of RAID-1s are valid storage architectures.
RAID-2: Data is striped at a byte granularity and an error correcting code (ECC) is used for redundancy. Here, B-N represents byte-N and we consider a 512 byte sector, which means 64 bytes per sector.
RAID-3: Data is striped at a byte granularity and parity a.k.a., XOR (i.e., addition in binary) is used as redundancy. Here, B-N represents byte-N and we consider a 512 byte sector, which means 64 bytes per sector.
RAID-4: Data is striped at a sector granularity and parity a.k.a XOR is used for redundancy. Here S-N represents sector-N.
RAID-5: Data is striped at a sector granularity and parity a.k.a XOR is used for redundancy. The difference between RAID-4 and RAID-5 is that there is no single disk that holds the parity sectors in RAID-5. Instead, the parity (as well as data) sectors are spread across the disks in a round-robin fashion.

--

--

--

Visit afterhoursacademic.com for summaries of computer science research papers.

Love podcasts or audiobooks? Learn on the go with our new app.

My first thing that learns things

Common Linked List problems

What’s new in Flutter 3.0 in brief for lazies

Building a Serverless Slack Integration with TypeScript

First steps in Monitoring Micronaut apps with Prometheus and Grafana

Setup of An Application Using AWS Appsync & Sending Request Using Postman,Graphql Playground

Introducing YMP(I)— those who stake shall receive the Governance token

Azure API Management Authenticate to Azure-AD Protected API — Example with Single Page Apps (SPA)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rajat Kateja, After Hours Academic

Rajat Kateja, After Hours Academic

Visit afterhoursacademic.com for summaries of computer science research papers.

More from Medium

Hashing and its Implementation

A Hybrid Ride on Hybridity

What is Application Maintenance?

An introduction to interactional creation via experience ecosystems