4.2.39 · D4 · HinglishOperating Systems

ExercisesRAID — levels 0, 1, 5, 6, 10 — trade-offs

3,649 words17 min read↑ Read in English

4.2.39 · D4 · Coding › Operating Systems › RAID — levels 0, 1, 5, 6, 10 — trade-offs

Shuru karne se pehle, ek reminder us notation ka jo hum baar baar use karenge, taaki koi bhi symbol unexplained na rahe:


Level 1 — Recognition

Recall Solution L1·Q1

(a) RAID 0 — pure striping. Yeh har block ki ek copy store karta hai, lekin zero redundancy rakhta hai (rebuild karne ke liye kuch bhi extra nahi). (b) RAID 1 — mirroring. (c) RAID 5 — striping + ek distributed parity. (d) RAID 6 — striping + double distributed parity ( aur ). (e) RAID 10 — mirror phir stripe.

Recall Solution L1·Q2

(a) False. Koi redundancy nahi matlab koi bhi single failure poora array kho deta hai. (b) True. Do independent parities → do solvable unknowns. (c) True. Aadhi disks copies hain, toh usable .


Level 2 — Application

Recall Solution L2·Q1

Raw = TB. Yeh raha kyun har capacity rule kaam karta hai, phir number:

  • RAID 0: har disk unique data rakhti hai, kuch waste nahi → TB.
  • RAID 1: har disk ka ek identical twin hai, toh aadhi disks pure copies hain → TB.
  • RAID 5: ek disk ki worth of space parity pe spend hoti hai (rotated, koi single disk nahi) → TB.
  • RAID 6: do parities aur pe do disks ki worth of space spend hoti hai → TB.
  • RAID 10: mirroring already usable capacity ko aadha kar deta hai; pairs ke across striping speed add karta hai, space nahi → TB.
Recall Solution L2·Q2

Left to right karo (XOR associative hai, toh grouping free hai): (bit by bit: 1≠0→1, 1≠0→1, 0≠1→1, 1≠1→0). Toh .

Recall Solution L2·Q3

Recovery rule: . — exactly original. ✓

Recall Solution L2·Q4

4 I/Os: purana data read karo, purani parity read karo, naya data likho, nayi parity likho. Parity se recompute hoti hai (baaki disks ko touch karne ki zaroorat nahi).


Level 3 — Analysis

Recall Solution L3·Q1

Sahi nayi parity compute karne ke liye tumhe purane data ka contribution hatana aur naya daalna padta hai: Is formula ko aur chahiye, aur dono abhi disk pe hain — tumhe pehle unhe read karna padega. Toh: read karo, read karo (2 reads) → phir likho, likho (2 writes) = 4 I/Os. Woh 2 reads woh hidden cost hai jise naïve count bhool jaata hai.

Recall Solution L3·Q2

RAID 6 do parities aur rakhta hai, dono us block ko include karti hain jo tumne change kiya. Har ek ko apna read-modify-write chahiye:

  • , , read karo → 3 reads.
  • , , likho → 3 writes.

Total = 6 I/Os. Isliye RAID 6 small writes pe RAID 5 se slow hai.

Recall Solution L3·Q3

Ek large sequential read tab fast hota hai jab bahut saare disk heads ek saath data pull kar rahे hों. Toh sawaal yeh hai: har level ke liye, kitne spindles parallel mein useful data feed karte hain?

  • RAID 0 spindles: har disk unique data rakhti hai, sab ek saath read karte hain. Kuch waste nahi → sabse fast.
  • RAID 10 spindles tak: har mirror pair reads dono mein se kisi bhi twin se serve kar sakta hai, toh har pair ki dono disks ek saath alag alag parts stream kar sakti hain → essentially RAID 0 se match karta hai.
  • RAID 5 spindles read karte hain, lekin kisi bhi stripe mein sirf data carry karte hain (har stripe mein ek block parity hai). Pure sequential read ke liye controller phir bhi saari disks spin karta hai, phir bhi useful-data bandwidth RAID 0/10 se thodi kum hoti hai kyunki har stripe mein ek disk ki worth parity hai, payload nahi. Isliye yeh thoda peeche hai.
  • RAID 1 (plain mirror, striped nahi): ek single mirror pair ke paas sirf 2 disks hain jo ek logical stream feed karti hain, toh yeh striped levels ki tarah bade ke saath scale nahi karta → sabse slow per usable-data.

Ordering, symbol ke saath jiska matlab hai "lagbhag barabar, ya thoda faster than": Reads striped levels mein broadly similar hote hain; write side (parity penalty) real differentiator hai.

Recall Solution L3·Q4

RAID 5 ke paas ek parity equation hai, jo exactly ek unknown disk solve karta hai. Pehli dead disk rebuild karte waqt, baaki 11 disks ghanton tak hard read hoti hain — woh stress doosri failure ka chance badhata hai. Agar rebuild finish hone se pehle doosri disk mar jaaye, toh ab tumhare paas do unknowns hain lekin sirf ek equation hai → unsolvable → total loss. RAID 6 ek doosra, independent parity rakhta hai, jo do equations deta hai, toh yeh do dead disks ke liye solve kar sakta hai aur us scenario mein survive kar sakta hai. Failure-rate reasoning ke liye Reliability and MTBF dekho.


Level 4 — Synthesis

Recall Solution L4·Q1

RAID 10 choose karo. Reasoning:

  • Write-heavy + small writes → parity ke read-modify-write penalty se bachao (RAID 5/6 out).
  • Disk failure availability ke saath survive karni chahiye → RAID 0 out.
  • RAID 10 = mirror then stripe → fast writes (koi parity recompute nahi) aur redundancy.

RAID 10 ki capacity disks hai. TB usable chahiye at TB/disk = usable data disks → mirror pairs → disks (deta hai TB usable). Odd hone par pairs up round karo; yahan exact hai.

Recall Solution L4·Q2

RAID 6 choose karo. Reasoning:

  • Large writes, rare → parity penalty big stripes pe amortise ho jaati hai, aur small-write cost irrelevant hai.
  • Cost matters → RAID 6 sirf 2 disks waste karta hai (vs RAID 10 jo aadha waste karta hai).
  • Long rebuilds ke dauran survive karni chahiye big disks ke saath → double parity chahiye (RAID 5 yahan unsafe hai, dekho L3·Q4).

RAID 6 usable = disks. TB chahiye at TB/disk = usable data disks → disks. Usable TB. ✓

Recall Solution L4·Q3

RAID 10 zyada robust hai.

  • RAID 10 (mirror-then-stripe): har pair ek mirror hai. Ek pair tab tak survive karta hai jab tak uski do disks mein se ek live hai. Do failures tabhi fatal hain jab dono dead disks same pair mein hों. 4 pairs ke saath, doosri failure same pair mein sirf ~1 in 7 baar padti hai → usually survive karta hai.
  • RAID 0+1 (stripe-then-mirror): ek disk loss uski poori stripe ko maar deta hai, toh tum poori tarah doosri stripe pe lean kar rahe ho. Us surviving stripe mein doosri failure array ko maar deti hai. Vulnerability ki window bahut wide hai.

Order matters: mirror-then-stripe damage ko ek single pair mein localise karta hai.


Level 5 — Mastery

Recall Solution L5·Q1

Right-hand side se shuru karo aur substitute karo: Har surviving () ko ke andar uski copy ke saath group karo. Commutativity/associativity se hum unhe pair kar sakte hain, aur self-inverse se har pair vanish ho jaata hai: Sirf woh term jo bina partner ke hai — — survive karta hai. Isliye single parity exactly ek erasure fix karta hai: ek equation, ek unknown.

Recall Solution L5·Q2

Do dead data disks ke saath, survivors dete hain: , ke identical hai, toh woh same equation yield karta hai. Ek equation ki do copies phir bhi sirf ek equation hai do unknowns ke saath → infinitely many use satisfy karte hain → unrecoverable. RAID 6 instead compute karta hai GF(2^8) pe, jahan ko ek distinct field element se multiply karna har disk ko alag tarike se weight karta hai. Ab equation equation se linearly independent hai, ek solvable system deta hai → dono unknowns recover ho jaate hain.

Recall Solution L5·Q3

(a) RAID 5 with : ek single data block ki parity bas uski copy hai (). Toh yeh RAID 1 (mirroring) mein degenerate ho jaata hai. Usable disk, same as ke liye . (b) RAID 6, : usable disk. Teen mein se do disks parity hain — extremely wasteful, aur minimum size jahan RAID 6 sense bhi karta hai. (c) . All-zero data ki parity zero hai (identity ). (d) RAID 1 with ke paas mirror karne ke liye koi twin nahi — yeh sirf ek single plain disk hai, koi redundancy nahi. Meaningful mirror nahi hai.

Recall Solution L5·Q4

Step: . Phir . Recover: . ; . ✓ Original se match karta hai — round-trip close ho jaata hai.

L4·Q3 se failure-survival counting visually dekhna zyada aasaan hai:

Figure — RAID — levels 0, 1, 5, 6, 10 — trade-offs

Recall

RAID 5 ka ek small write 4 I/Os kyun kosta hai?
Tumhe aur likhne se pehle aur read karne padte hain — do hidden reads plus do writes.
Single XOR parity sirf ek dead disk kyun recover kar sakta hai?
Ek parity = ek equation = ek solvable unknown.
RAID 6 doosre XOR ki jagah pe kyun use karta hai?
Doosra XOR same equation deta hai; disks ko se weight karta hai linearly independent hone ke liye, toh do unknowns solvable hain.
Write-heavy DB ke liye jo redundancy chahta ho, kaun sa level?
RAID 10 — fast writes (koi parity recompute nahi) plus redundancy.
Saste bade archive ke liye jo long rebuilds survive kare, kaun sa level?
RAID 6 — sirf 2 disks waste, rebuild ke dauran doosri failure survive karta hai.
RAID 10 aur RAID 0+1 mein kya fark hai?
RAID 10 = mirror then stripe (damage ek pair mein localise karta hai); RAID 0+1 = stripe then mirror (ek disk ek poori stripe maar deta hai).