(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 (P aur Q).
(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 =n/2.
Raw = 10×6=60 TB. Yeh raha kyun har capacity rule kaam karta hai, phir number:
RAID 0 → n: har disk unique data rakhti hai, kuch waste nahi → 10×6=60 TB.
RAID 1 → n/2: har disk ka ek identical twin hai, toh aadhi disks pure copies hain → 210×6=30 TB.
RAID 5 → n−1: ek disk ki worth of space parity pe spend hoti hai (rotated, koi single disk nahi) → (10−1)×6=54 TB.
RAID 6 → n−2: do parities P aur Q pe do disks ki worth of space spend hoti hai → (10−2)×6=48 TB.
RAID 10 → n/2: mirroring already usable capacity ko aadha kar deta hai; pairs ke across striping speed add karta hai, space nahi → 210×6=30 TB.
Recall Solution L2·Q2
Left to right karo (XOR associative hai, toh grouping free hai):
D1⊕D2=1101⊕0011=1110(bit by bit: 1≠0→1, 1≠0→1, 0≠1→1, 1≠1→0).1110⊕D3=1110⊕1000=0110=P
Toh P=0110.
4 I/Os: purana data Dold read karo, purani parity Pold read karo, naya data Dnew likho, nayi parity Pnew likho. Parity Pnew=Pold⊕Dold⊕Dnew se recompute hoti hai (baaki disks ko touch karne ki zaroorat nahi).
Sahi nayi parity compute karne ke liye tumhe purane data ka contribution hatana aur naya daalna padta hai:
Pnew=Pold⊕Dold⊕Dnew
Is formula ko Pold aur Dold chahiye, aur dono abhi disk pe hain — tumhe pehle unhe read karna padega. Toh: Dold read karo, Pold read karo (2 reads) → phir Dnew likho, Pnew 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 P aur Q rakhta hai, dono us block ko include karti hain jo tumne change kiya. Har ek ko apna read-modify-write chahiye:
Dold, Pold, Qold read karo → 3 reads.
Dnew, Pnew, Qnew 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 ≈ n spindles: har disk unique data rakhti hai, sab n ek saath read karte hain. Kuch waste nahi → sabse fast.
RAID 10 ≈ n 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 ≈ n spindles read karte hain, lekin kisi bhi stripe mein sirf n−1data 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 n ke saath scale nahi karta → sabse slow per usable-data.
Ordering, ≳ symbol ke saath jiska matlab hai "lagbhag barabar, ya thoda faster than":
RAID 0≈RAID 10≳RAID 5>RAID 1.
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 Q 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.
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.
Right-hand side se shuru karo aur P substitute karo:
P⊕⨁i=kDi=(⨁all iDi)⊕⨁i=kDi.
Har surviving Di (i=k) ko P ke andar uski copy ke saath group karo. Commutativity/associativity se hum unhe pair kar sakte hain, aur self-inverse x⊕x=0 se har pair vanish ho jaata hai:
=Dk⊕(⨁i=k(Di⊕Di))=Dk⊕0=Dk.
Sirf woh term jo bina partner ke hai — Dk — survive karta hai. ■ Isliye single parity exactly ek erasure fix karta hai: ek equation, ek unknown.
Recall Solution L5·Q2
Do dead data disks Da,Db ke saath, survivors dete hain:
P1⊕⨁i=a,bDi=Da⊕Db.P2, P1 ke identical hai, toh woh same equation Da⊕Db yield karta hai. Ek equation ki do copies phir bhi sirf ek equation hai do unknowns ke saath → infinitely many (Da,Db) use satisfy karte hain → unrecoverable.
RAID 6 instead Q=⨁igi⋅Di compute karta hai GF(2^8) pe, jahan Di ko ek distinct field element gi se multiply karna har disk ko alag tarike se weight karta hai. Ab Q equation P equation se linearly independent hai, ek solvable 2×2 system deta hai → dono unknowns recover ho jaate hain.
Recall Solution L5·Q3
(a) RAID 5 with n=2: ek single data block ki parity bas uski copy hai (P=D1). Toh yeh RAID 1 (mirroring) mein degenerate ho jaata hai. Usable =n−1=1 disk, same as n=2 ke liye n/2.
(b) RAID 6, n=3: usable =n−2=1 disk. Teen mein se do disks parity hain — extremely wasteful, aur minimum size jahan RAID 6 sense bhi karta hai.
(c) P=0000⊕0000⊕⋯=0000. All-zero data ki parity zero hai (identity x⊕0=x).
(d) RAID 1 with n=1 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
P=D1⊕D2⊕D3=1010⊕0111⊕0001.
Step: 1010⊕0111=1101. Phir 1101⊕0001=1100=P.
Recover: D3=P⊕D1⊕D2=1100⊕1010⊕0111.
1100⊕1010=0110; 0110⊕0111=0001=D3. ✓ Original se match karta hai — round-trip close ho jaata hai.
L4·Q3 se failure-survival counting visually dekhna zyada aasaan hai: