RAID
Keywords
Prerequisites
Related Papers
Progress
Sign in to track your progress.
單顆硬碟或 SSD 終究會故障,因此我們需要 RAID(Redundant Array of Independent Disks)將多顆磁碟組合起來,同時提升效能與可靠性。我們會依序介紹幾種常見的 RAID level:RAID 0 透過 striping 將資料分散到多顆磁碟以提高 throughput;RAID 1 透過 mirroring 保留完整副本以提供冗餘;RAID 5 將 parity 分散存放在所有磁碟上,能容忍任一顆磁碟故障;RAID 6 則使用雙重 parity,能容忍任意兩顆磁碟同時故障。除了正常運作模式,我們也會討論 degraded mode 下的讀取流程——當某顆磁碟故障時,系統如何透過 XOR 或 parity 計算即時重建遺失的資料。Rebuild process 是 RAID 運維中的關鍵議題:重建期間系統處於脆弱狀態,若此時又有磁碟故障便可能造成資料遺失,因此我們需要了解 rebuild 的效能瓶頸與風險。RAID 的概念是後續學習 erasure coding 的重要基礎,因為 erasure coding 可以被視為 RAID 的推廣與最佳化。
Key Concepts
我理解 RAID 0 透過 striping 將資料分散到多顆磁碟以提升讀寫效能,但不提供任何冗餘保護
我理解 RAID 1 透過 mirroring 保留完整的資料副本,以犧牲儲存空間換取高可靠性
我理解 RAID 5 如何將 distributed parity 分散存放在所有磁碟上,能容忍任意一顆磁碟故障
我理解 RAID 6 使用 double parity 能容忍任意兩顆磁碟同時故障,以及它與 RAID 5 在寫入效能上的差異
我了解 degraded mode 下系統如何透過 parity 計算即時重建遺失磁碟的資料來回應讀取請求
我知道 rebuild process 期間系統處於 vulnerability window,若此時再有磁碟故障可能導致資料遺失,因此 hot spare 和快速 rebuild 策略至關重要