本日主題:用多顆硬碟達成效能與容錯 預計時間:1.5 小時 對應主教材:第 3.5 節
一、今日學習目標
- [ ] 認識常見 RAID 級別與特性
- [ ] 牢記「RAID ≠ 備份」(面試陷阱)
- [ ] 會計算 RAID 的可用容量
- [ ] 理解 RAID 重建(Rebuild)的概念與風險
二、教材內容
2.1 RAID 是什麼?
RAID(Redundant Array of Independent Disks) 是把多顆硬碟組成一組,以提升效能或容錯(壞了硬碟也不丟資料)。
RAID 可以用硬體控制器(Hardware RAID) 或軟體(Software RAID) 實作: - 硬體 RAID:有專用的 RAID 卡(如 Dell PERC、HP Smart Array),效能好、CPU 負擔低,企業伺服器常用 - 軟體 RAID:由作業系統實作(如 Linux mdadm、Windows 動態磁碟),省成本但吃 CPU
2.2 常見 RAID 級別
| RAID | 原理 | 特性 | 最少硬碟 | 可壞幾顆 |
|---|---|---|---|---|
| 0 | 條帶化(Stripe) | 速度快、容量全用,但無容錯 | 2 | 0(壞1顆全毀) |
| 1 | 鏡像(Mirror) | 兩顆內容一樣 | 2 | 1 |
| 5 | 條帶 + 同位元 | 容量與容錯兼顧 | 3 | 1 |
| 6 | 雙同位元 | 容錯更強 | 4 | 2 |
| 10 | RAID 1+0 | 高效能 + 高容錯,成本高 | 4 | 視配置 |
2.3 每個 RAID 級別深入解析
RAID 0(條帶化 Striping)
RAID 0 — 資料分散寫入多顆硬碟:
資料: A B C D E F G H
磁碟 1 磁碟 2
┌───┐ ┌───┐
│ A │ │ B │
│ C │ │ D │
│ E │ │ F │
│ G │ │ H │
└───┘ └───┘
優點:讀寫速度加倍
缺點:任一顆壞 → 全部資料遺失
可用容量:N × 單顆容量
RAID 1(鏡像 Mirroring)
RAID 1 — 兩顆硬碟內容完全相同:
資料: A B C D
磁碟 1 磁碟 2(鏡像)
┌───┐ ┌───┐
│ A │ │ A │ ← 完全複製
│ B │ │ B │
│ C │ │ C │
│ D │ │ D │
└───┘ └───┘
優點:容錯佳(壞一顆不丟資料)、讀取可加速
缺點:容量減半(2顆1TB只有1TB可用)
可用容量:1 × 單顆容量(50% 利用率)
RAID 5(條帶 + 分散同位元)
RAID 5 — 資料 + 同位元分散存放:
磁碟 1 磁碟 2 磁碟 3
┌───┐ ┌───┐ ┌───┐
│ A │ │ B │ │ P1│ ← P1 = A XOR B(同位元)
│ C │ │ P2│ │ D │ ← P2 = C XOR D
│ P3│ │ E │ │ F │ ← P3 = E XOR F
└───┘ └───┘ └───┘
同位元分散在各顆硬碟(避免單顆成為瓶頸)
任一顆壞掉 → 用其他兩顆的資料 + 同位元計算出遺失的資料
優點:容量利用率高(只損失 1 顆的容量)
缺點:寫入時要計算同位元(寫入效能稍差)
可用容量:(N-1) × 單顆容量
RAID 6(雙同位元)
RAID 6 — 類似 RAID 5 但有兩組同位元:
磁碟 1 磁碟 2 磁碟 3 磁碟 4
┌───┐ ┌───┐ ┌───┐ ┌───┐
│ A │ │ B │ │ P1│ │ Q1│
│ C │ │ P2│ │ Q2│ │ D │
│ P3│ │ Q3│ │ E │ │ F │
└───┘ └───┘ └───┘ └───┘
可壞 2 顆仍不丟資料
可用容量:(N-2) × 單顆容量
RAID 10(RAID 1+0)
RAID 10 — 先鏡像再條帶化:
┌──── RAID 0(條帶化)────┐
│ │
│ RAID 1 RAID 1 │
│ ┌───┐┌───┐ ┌───┐┌───┐ │
│ │ A ││ A │ │ B ││ B │ │
│ │ C ││ C │ │ D ││ D │ │
│ └───┘└───┘ └───┘└───┘ │
│ 磁碟1 磁碟2 磁碟3 磁碟4 │
└──────────────────────────┘
優點:效能好 + 容錯好(每組鏡像可壞 1 顆)
缺點:容量利用率只有 50%
可用容量:N/2 × 單顆容量
2.4 RAID 容量計算公式
| RAID | 可用容量公式 | 4 顆 1TB 的可用容量 |
|---|---|---|
| RAID 0 | N × 單顆容量 | 4TB |
| RAID 1 | 1 × 單顆容量 | 1TB(只用 2 顆) |
| RAID 5 | (N-1) × 單顆容量 | 3TB |
| RAID 6 | (N-2) × 單顆容量 | 2TB |
| RAID 10 | N/2 × 單顆容量 | 2TB |
面試常考:「4 顆 2TB 的硬碟做 RAID 5,可用容量是多少?」答案:(4-1) × 2TB = 6TB
2.5 怎麼選?
- 要速度、資料不重要(如暫存、影片編輯暫存)→ RAID 0。
- 重要資料、預算有限、硬碟數少 → RAID 1。
- 兼顧容量與容錯(伺服器常用)→ RAID 5 / 6。
- 要又快又安全(資料庫、高 I/O)→ RAID 10。
決策流程圖
資料重要嗎?
│
├── 不重要 → RAID 0(最快、最大容量)
│
└── 重要 → 預算充足嗎?
│
├── 充足 → RAID 10(效能+容錯最佳)
│
└── 有限 → 硬碟數量?
│
├── 2 顆 → RAID 1
├── 3-4 顆 → RAID 5
└── 4+ 顆 → RAID 6(安全優先)
或 RAID 5(容量優先)
2.6 RAID 重建(Rebuild)與風險
當 RAID 中有硬碟故障時,更換新硬碟後需要「重建(Rebuild)」:
RAID 5 重建流程:
正常運作 硬碟故障 更換硬碟 重建中 完成
┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
│A│ │B│ │C│ │A│ │✗│ │C│ │A│ │ │ │C│ │A│ │░│ │C│ │A│ │B│ │C│
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
▲ 降級模式 ▲ 插入新碟 ▲ 用同位元 ▲ 回復正常
仍可運作 開始重建 計算遺失資料
重建時間與風險
| 因素 | 說明 |
|---|---|
| 重建時間 | 取決於硬碟大小和系統負載。1TB 可能需要數小時,4TB+ 可能需要超過一天 |
| URE 風險 | 大容量硬碟在重建時,讀取整個硬碟過程中可能遇到 URE(不可恢復讀取錯誤),導致重建失敗 |
| 重建期間的脆弱性 | RAID 5 重建時如果又有一顆壞掉 → 資料全毀。所以大容量環境建議用 RAID 6 |
| 效能影響 | 重建過程會大量讀寫,系統效能明顯下降 |
面試加分小知識:這就是為什麼大容量硬碟(4TB+)的環境越來越多人選擇 RAID 6 而非 RAID 5——因為重建時間長,期間再壞一顆的風險不可忽視。
2.7 Hot Spare(熱備援硬碟)
Hot Spare 機制:
正常時 硬碟故障時
┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
│A│ │B│ │C│ │HS│ ←待命 │A│ │✗│ │C│ │▶│ ← 自動啟用重建
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
Hot Spare 是一顆隨時待命的備用硬碟。當 RAID 中有硬碟故障時,RAID 控制器自動使用 Hot Spare 開始重建,不需要人工更換硬碟。這大幅縮短了 RAID 降級運作的時間,降低風險。
2.8 ⚠️ RAID ≠ 備份(最重要觀念,面試必考)
RAID 只能防「硬碟實體故障」。它救不了: - 檔案被誤刪/覆蓋 - 中勒索病毒(壞檔會同步到所有鏡像) - 機房火災、整機被偷 - 人為惡意破壞 - 軟體 Bug 導致資料損壞 - RAID 控制器本身故障(可能毀掉整個陣列)
所以:RAID 提升可用性,但你仍然必須做備份(3-2-1)。 兩者目的不同、缺一不可。
RAID vs 備份 對比表
| 項目 | RAID | 備份 |
|---|---|---|
| 防硬碟故障 | ✅ | ✅ |
| 防誤刪 | ❌(刪了就是刪了) | ✅(可從備份還原) |
| 防勒索病毒 | ❌(加密會同步) | ✅(異地備份不受影響) |
| 防火災/天災 | ❌(整機都毀) | ✅(異地備份存活) |
| 防控制器故障 | ❌ | ✅ |
| 即時可用 | ✅(無停機) | ⚠️(需時間還原) |
2.9 常見誤解
| 誤解 | 正確觀念 |
|---|---|
| 做了 RAID 就不需要備份 | 大錯!RAID 只防硬碟故障,誤刪、中毒、火災都救不了 |
| RAID 5 比 RAID 1 好 | 各有優缺:RAID 5 容量利用率高但重建風險大;RAID 1 簡單可靠 |
| 硬碟越多越安全 | RAID 0 加再多顆都不安全(壞任一顆全毀)。安全性取決於 RAID 級別 |
| RAID 重建很快 | 大容量硬碟重建可能要一天以上,期間效能下降且有二次故障風險 |
| SSD 不需要 RAID | SSD 也會故障。企業級 SSD RAID 不但提供容錯,還能提升 IOPS |
三、今日練習
Q1. RAID 1 和 RAID 5 的差別?各最少幾顆硬碟、可壞幾顆? Q2. 公司已經做了 RAID 5,還需要備份嗎?為什麼? Q3. RAID 0 為什麼不適合放重要資料? Q4. 6 顆 2TB 的硬碟做 RAID 5,可用容量是多少?做 RAID 6 呢? Q5. 什麼是 Hot Spare?它能解決什麼問題?
參考解答
**A1.** RAID 1 兩顆鏡像、可壞 1 顆、容量打對折;RAID 5 至少 3 顆、用同位元、容量容錯兼顧、可壞 1 顆。 **解題說明**: - **RAID 1**:最少 2 顆,兩顆硬碟內容完全一樣(鏡像)。可壞 1 顆,壞掉的那顆資料可以從另一顆完整複製。缺點是容量利用率只有 50%(2 顆 1TB 只有 1TB 可用)。優點是最簡單、重建最快。 - **RAID 5**:最少 3 顆,資料和同位元(Parity)分散存放在所有硬碟上。可壞 1 顆,壞掉的資料可以從其他硬碟的資料 + 同位元計算出來。容量利用率高(N-1,如 4 顆 1TB 可用 3TB)。缺點是重建時間較長,大容量環境有 URE 風險。 - **選擇建議**:小規模(2 顆)→ RAID 1;中規模(3-4 顆)→ RAID 5;大容量高安全 → RAID 6 **A2.** 需要。RAID 只防硬碟故障,救不了誤刪、中毒、火災等,所以仍要做 3-2-1 備份。 **解題說明**:這是面試最愛考的「陷阱題」。回答重點: 1. RAID 只解決「硬碟實體故障」這一種風險 2. 使用者誤刪檔案 → RAID 上的資料也跟著刪了,無法還原 3. 中勒索病毒 → 加密後的壞檔會同步到鏡像/寫入條帶,RAID 上看到的也是加密過的 4. 機房火災 → 整台伺服器(含所有 RAID 硬碟)都毀了 5. RAID 控制器故障 → 可能導致整個陣列無法讀取 結論:**RAID 提升可用性(availability),備份提供可恢復性(recoverability)。兩者目的不同,缺一不可。** **A3.** RAID 0 沒有容錯,任一顆硬碟壞掉資料全毀,風險高。 **解題說明**:RAID 0 把資料條帶化分散寫入所有硬碟,讀寫速度加倍、容量全用。但正因為資料分散在所有硬碟上,任何一顆壞掉,都會導致整個陣列的資料無法讀取。而且硬碟數越多,壞掉的機率越高(N 顆硬碟的故障率是單顆的 N 倍)。RAID 0 只適合用在不怕丟的資料(暫存、快取、影片編輯暫存區)。 **A4.** - RAID 5:(N-1) × 單顆容量 = (6-1) × 2TB = **10TB** - RAID 6:(N-2) × 單顆容量 = (6-2) × 2TB = **8TB** **解題說明**: - RAID 5 損失 1 顆硬碟的容量用來存放同位元(Parity),所以可用容量 = (N-1) × 單顆 - RAID 6 損失 2 顆硬碟的容量用來存放兩組同位元,所以可用容量 = (N-2) × 單顆 - RAID 6 雖然可用容量較少,但可以同時壞 2 顆硬碟不丟資料,安全性更高 - 6 顆 2TB 做 RAID 10:可用 6TB(50% 利用率),但效能和容錯都比 RAID 5/6 好 **A5.** Hot Spare(熱備援硬碟)是一顆隨時待命的備用硬碟,安裝在伺服器中但平時不使用。當 RAID 陣列中有硬碟故障時,RAID 控制器會**自動**使用 Hot Spare 開始重建,不需要人工介入更換硬碟。 好處: 1. 大幅縮短 RAID 降級運作的時間(不需要等 IT 人員到機房換硬碟) 2. 減少「重建期間又壞一顆」的風險(尤其在非上班時間發生故障時) 3. 對於 RAID 5 特別重要,因為降級期間再壞一顆就全毀了 缺點是多用一顆硬碟但平時不提供容量,是用成本換安全。四、今日檢核
- [ ] 我能說明 RAID 0/1/5/6/10 的差別
- [ ] 我能明確說出「RAID 不等於備份」並解釋原因
- [ ] 我會計算各 RAID 級別的可用容量
- [ ] 我理解 RAID 重建的概念與風險
五、延伸閱讀
- Microsoft Learn — 儲存空間與 RAID
- Dell — RAID 配置指南
- Wikipedia — RAID 各級別詳解
- Backblaze Hard Drive Stats(硬碟故障率統計)
⬅️ 上一天:Day 4 | 🏠 本週總覽 | ➡️ 下一天:Day 6 — 實作:安裝 Linux