4.2.39 · Coding › Operating Systems
Ek akela disk slow hota hai (ek hi head se limited) aur fragile bhi (ek failure = sab kuch khatam).
RAID = Redundant Array of Independent Disks : kai disks ko ek logical disk mein jodo taaki tum
speed , reliability , ya dono khareed sako — lekin hamesha capacity, paisa, ya write performance keemat pe milega.
Har RAID level bas ek alag jawab hai is sawaal ka: "Main data kaise spread karu, aur kitni redundancy rakhu?"
Striping — data ko disks ke beech mein toddo taaki reads/writes parallel ho sakein → speed , koi redundancy nahi.
Mirroring — doosre disk par ek poora copy rakho → redundancy , 50% capacity ki cost lagti hai.
Parity — ek computed "check value" store karo taaki missing block rebuild ho sake → sasti redundancy, costly writes.
Core tension: tum capacity, speed, aur reliability teeno ko ek saath maximize nahi kar sakte . Apna trade-off chuno.
Intuition Parity = "XOR puzzle ka missing piece"
Agar main tumhe teen numbers aur unka XOR bata dun, tum koi bhi ek missing number recover kar sakte ho — kyunki XOR
apna khud ka inverse hai.
Derivation. Maano data blocks hain D 1 , D 2 , … , D n − 1 alag n − 1 disks par. Parity define karo:
P = D 1 ⊕ D 2 ⊕ ⋯ ⊕ D n − 1
Maano disk k khatam ho jaata hai. Hum baaki saare D i aur P jaante hain. Jo kuch bhi hamare paas hai uska XOR karo:
D 1 ⊕ ⋯ ⊕ D k − 1 ⊕ D k + 1 ⊕ ⋯ ⊕ P
P substitute karo aur ⊕ properties use karo: x ⊕ x = 0 aur x ⊕ 0 = x . Har surviving block
P ke andar apni copy ko cancel karta hai, bas ye bachta hai:
= D k
RAID 6 ke liye hum ek doosra, independent parity Q add karte hain jo Reed–Solomon ka use karta hai Galois field GF ( 2 8 ) par:
Q = ⨁ i g i ⋅ D i
Do independent equations (P aur Q ) tumhe do unknowns solve karne dete hain → 2 disk failures survive ho jaati hain.
Definition RAID 0 — pure striping
Data n disks ke beech block-by-block split hota hai. Koi redundancy nahi. Capacity = n . Koi bhi 1 failure = total loss.
Sabse fast reads aur writes. Sirf scratch/cache ke liye use karo.
Definition RAID 1 — mirroring
Har disk ka ek identical twin hota hai. n disks ke saath, usable capacity = n /2 . Ek disk per
mirror pair ka loss survive kar leta hai. Reads scale karte hain (koi bhi copy padho); writes dono copies par jaate hain.
Definition RAID 5 — striping + distributed single parity
n disks, ek disk ki jagah parity ke liye use hoti hai, rotated sabhi disks ke beech mein (koi single bottleneck disk nahi).
Usable capacity = n − 1 . 1 failure survive karta hai. Chhote writes ko read-modify-write penalty milti hai.
Definition RAID 6 — striping + double distributed parity
Har stripe mein do parity blocks (P aur Q ). Usable capacity = n − 2 . 2 simultaneous failures survive karta hai.
Heavy write penalty, lekin bade disks ke lambe rebuilds ke dauran safe rehta hai.
Definition RAID 10 (1+0) — mirror, then stripe
Mirrored pairs banao, phir pairs ke beech mein stripe karo. Usable capacity = n /2 . RAID 0 jaisa fast, RAID 1 jaisa redundant.
Ek pair mein 1 failure survive karta hai (possibly multiple total). Mehanga hai, lekin databases ke liye great.
Intuition Parity ko free mein update nahi kar sakte
RAID 5 mein EK data block change karne ke liye, parity sahi rehni chahiye. Nayi parity ko purana data aur purani
parity chahiye, isliye ek chhota write ban jaata hai: read old data → read old parity → write new data → write new parity .
Worked example Capacity & fault tolerance, 8 × 4 TB disks
RAID 0: 8 × 4 = 32 TB. 0 survive karta hai. Kyun: kisi bhi cheez ki koi copy nahi.
RAID 1 (mirrored pairs): 32/2 = 16 TB. Kyun: aadhe disks copies hain.
RAID 5: ( 8 − 1 ) × 4 = 28 TB. Kyun: ek disk ki jagah parity hai.
RAID 6: ( 8 − 2 ) × 4 = 24 TB. Kyun: do disks ki jagah parity hai.
RAID 10: 16 TB. Kyun: mirror capacity aadhi karta hai; striping capacity add nahi karta.
Worked example XOR se lost block recover karo
Stripe: D 1 = 1011 , D 2 = 0110 , D 3 = 1100 . Parity P = 1011 ⊕ 0110 ⊕ 1100 .
Step: 1011 ⊕ 0110 = 1101 . Ye step kyun? pehle do ko combine karo.
Phir 1101 ⊕ 1100 = 0001 = P . Kyun? chain finish karo.
Ab disk 2 mar jaati hai. Recover karo: D 2 = P ⊕ D 1 ⊕ D 3 = 0001 ⊕ 1011 ⊕ 1100 .
0001 ⊕ 1011 = 1010 ; 1010 ⊕ 1100 = 0110 = D 2 . ✓ Kyun? original se match karta hai — parity kaam kiya.
Worked example Ek chhote RAID 5 write ke liye I/Os count karo
Ek block update karo: read D o l d (1), read P o l d (1), compute P n e w = P o l d ⊕ D o l d ⊕ D n e w ,
write D n e w (1), write P n e w (1) → 4 I/Os . Kyun? parity ko valid rakhne ke liye recompute karna padta hai.
Common mistake "RAID 1 = backup hai, toh mujhe backups ki zaroorat nahi."
Ye sahi kyun lagta hai: har cheez ki doosri copy hai. Fix: RAID disk
failure se bachata hai, deletion, ransomware, fire, ya filesystem corruption se nahi — ye cheezein mirror par
turant copy ho jaati hain. RAID availability ke liye hai, backup ke liye nahi.
Common mistake "RAID 5 ke saath 12 huge disks theek hai."
Ye sahi kyun lagta hai: capacity great hai aur ye failure tolerate karta hai. Fix: multi-TB
disk rebuild karne mein heavy read load ke saath kai ghante lagte hain; rebuild ke dauran doosri failure sab kuch khatam kar deti hai. Bade/bahut-disk arrays ke liye
RAID 6 (ya RAID 10) use karo.
Common mistake "RAID 10 aur RAID 0+1 same cheez hain."
Ye sahi kyun lagta hai: same disks, same 50% capacity. Fix: RAID 10 = mirror phir stripe
(zyada rebuild-friendly, zyada failure patterns tolerate karta hai). RAID 0+1 = stripe phir mirror (ek disk
ka loss poori stripe khatam kar deta hai). Order matter karta hai.
Common mistake "Zyada parity disks = faster."
Ye sahi kyun lagta hai: zyada disks usually matlab zyada parallelism. Fix: parity write
overhead add karta hai (read-modify-write). RAID 6 chhote writes par RAID 5 se slow hai, jo RAID 0/10 se slow hai.
Recall Feynman: 12-saal-ke-bachche ko samjhao
Socho tum aur tumhare doston ne ek comic ki ek-ek page copy ki. RAID 0: sab alag-alag pages rakhte hain — ek saath padhne mein super
fast, lekin agar ek dost apna page kho de toh comic barbad. RAID 1: do doston ke paas same pages hain, isliye agar ek chhoot jaaye toh doosre ke paas hai. RAID 5: har dost ek magic "summary number" bhi likhta hai taaki agar koi ek dost gayab ho jaaye, baaki log missing page summary se rebuild kar sakein. RAID 6: do magic summaries, isliye agar do dost bhi gayab ho jaayein tum theek ho. RAID 10: dosto ko backups ke roop mein pair karo, phir comic ko pairs mein split karo — fast aur safe.
Mnemonic Levels yaad karo
"0 = Zero safety, 1 = One copy, 5 = Five-survives-one (single parity), 6 = siX-survives-two (double parity),
10 = 1 then 0 (mirror then stripe)."
Capacity: 0→n, 1→n/2, 5→n−1, 6→n−2, 10→n/2.
RAID ka full form kya hai? Redundant Array of Independent Disks.
Kaunsa RAID level zero redundancy rakhta hai? RAID 0 (pure striping).
n disks ke saath RAID 5 ki usable capacity? (n − 1) disks ke barabar.
n disks ke saath RAID 6 ki usable capacity? (n − 2) disks ke barabar.
RAID 6 kitne disk failures survive karta hai? Do simultaneous failures.
Khoye hue block D_k ke liye parity recovery formula? D_k = P ⊕ (saare surviving data blocks ka XOR).
XOR parity exactly ek disk kyun recover karta hai? XOR self-inverse hai (x⊕x=0); ek parity = ek equation = ek unknown solve ho sakta hai.
Ek chhote RAID 5 write ke liye kitne I/Os lagte hain, aur kyun? 4 — read old data, read old parity, write new data, write new parity.
Chhote write par parity update karne ka formula? P_new = P_old ⊕ D_old ⊕ D_new.
RAID 10 aur RAID 0+1 mein kya fark hai? RAID 10 = mirror phir stripe (zyada failure-tolerant); 0+1 = stripe phir mirror.
RAID 6 doosre XOR P ki jagah doosra parity Q kyun use karta hai? XOR ki do copies same equation deti hain; Q GF(2^8) coding use karta hai independent hone ke liye, jisse do unknowns solve ho sakein.
Kya RAID backups ka substitute hai? Nahi — ye disk failure se bachata hai, deletion/corruption/ransomware se nahi.
Write-heavy database ke liye kaunsa level best hai? RAID 10 (fast writes + redundancy); chhote random writes ke liye parity levels avoid karo.
XOR and Boolean Algebra — parity ke peeche ka math.
Galois Fields GF(2^n) — RAID 6 ke doosre parity ka basis.
Disk Scheduling — striping throughput kaise improve karta hai.
Reliability and MTBF — failure tolerance quantify karna.
Backups vs Redundancy — RAID ≠ backup kyun.
File Systems — RAID filesystem layer ke neeche rehta hai.
RAID 10 speed plus redundancy