網站伺服器 RAID 1 vs RAID 10 怎麼選?Ubuntu Server、Docker 與 MySQL 資料庫效能完整比較

在 Ubuntu Server 中,RAID 主要用來提升「資料安全性」與「I/O 效能」。 本篇會用實務角度帶你理解 mdadm 軟體 RAID 的建置方式、RAID 1 / RAID 10 差異, 以及 MySQL 與 Docker 為什麼會被磁碟 I/O 影響。 Docker 在現代雲端與容器化架構中扮演重要角色,如果你還不熟悉基本概念, 可以先參考 Docker 是什麼?新手完整入門教學。 同時也會補充硬體 RAID 卡差異與故障後的完整恢復流程。

RAID 基本觀念(RAID 1 vs RAID 10)

RAID 1 是「鏡像」,資料會同時寫入兩顆硬碟,優點是資料安全性高,但寫入效能不會明顯提升。 RAID 10 則是「鏡像 + 條帶化」,能同時分散 I/O 負載,因此在資料庫與容器化環境中,通常能提供更好的整體效能與延遲表現。 在理解不同系統架構(例如虛擬化與容器化)的差異時,也可以進一步延伸參考 Docker vs VM vs Kubernetes 差異比較, 幫助你更完整理解不同運行環境對效能與資源分配的影響。

項目RAID 1RAID 10
結構MirrorMirror + Stripe
效能一般高(可擴展 IOPS)
適合網站 / 檔案MySQL / Docker / 高流量
容錯1 顆多組 mirror 容錯

IOPS 與 MySQL / Docker 效能影響

IOPS(每秒磁碟 I/O 次數)是影響網站速度的關鍵。 MySQL 在處理查詢、交易時會大量讀寫磁碟, Docker 則會產生 log、layer 寫入與 container filesystem I/O。

當 IOPS 不足時,你會看到: – 網站變慢 – MySQL query latency 上升 – Docker container 卡頓

RAID 10 可以透過多顆磁碟「同時處理 I/O」,因此比 RAID 1 更適合高負載環境。

mdadm 建置 RAID 實務(完整流程)

Step 1:確認磁碟


lsblk
# 查看目前系統磁碟,確認 /dev/sdb /dev/sdc 是否存在

Step 2:安裝 mdadm


sudo apt update
sudo apt install mdadm -y
# 安裝 Linux 軟體 RAID 管理工具

Step 3:建立 RAID 1


sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# RAID 1:兩顆硬碟鏡像

Step 4:建立 RAID 10


sudo mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# RAID 10:至少 4 顆硬碟(mirror + stripe)

Step 5:檢查 RAID 狀態


cat /proc/mdstat
# 查看同步 / degraded 狀態

Step 6:格式化與掛載


mkfs.ext4 /dev/md0
mkdir -p /data
mount /dev/md0 /data
# 格式化並掛載使用

Ubuntu Server、Docker 與 MySQL 效能完整比較

在實務上,Ubuntu Server 本身不會產生大量 I/O, 真正影響效能的是「跑在上面的服務」,例如 Docker 與 MySQL。 因此 RAID 的設計必須以服務特性來決定,而不是只看系統層。

項目 Ubuntu Server(系統層) Docker Container MySQL 資料庫
IO 類型 中低(log / system) 中高(layer / log / file write) 極高(random read/write)
IO 模式 偏 sequential 混合型 IO 大量 random IO
RAID 1 表現 穩定但延遲一般 可能出現 IO bottleneck TPS 容易受限
RAID 10 表現 更穩定、延遲下降 明顯改善寫入與 log 延遲 TPS 明顯提升、延遲降低
效能瓶頸 較少 container density 高時 IO 卡住 最容易受磁碟影響

結論很簡單:

  • 只有 Ubuntu Server → RAID 1 通常夠用
  • 有 Docker → 建議 RAID 10
  • 有 MySQL → 幾乎一定 RAID 10

原因是 MySQL 與 Docker 都屬於「高 random I/O workload」,磁碟 IOPS 才是真正瓶頸,而不是 CPU。

mdadm vs 硬體 RAID 卡

mdadm 是軟體 RAID,由 Linux + CPU 處理。 硬體 RAID 則由 RAID 卡控制器處理,不占 CPU,但成本高。

比較項目mdadm硬體 RAID
成本
效能依 CPU(現代足夠)穩定高效
可移植性高(Linux 可直接讀)低(依賴卡)
維護指令操作BIOS / 工具

RAID 故障診斷與完整重建流程

當 RAID 壞掉時的標準流程:

1️⃣ 先確認 RAID 是否降級


cat /proc/mdstat
# 如果看到 [U_] 或 [_U] 代表 degraded

2️⃣ 查看詳細狀態


mdadm --detail /dev/md0
# 確認哪一顆 disk 掛掉

3️⃣ 移除故障碟(如果系統仍識別)


mdadm --remove /dev/md0 /dev/sdb
# 移除壞掉硬碟

4️⃣ 更換新硬碟後加入 RAID


mdadm --add /dev/md0 /dev/sdb
# 將新硬碟加入 RAID

5️⃣ 觀察重建進度


watch cat /proc/mdstat
# 即時觀看 rebuild 進度

重點: RAID 不會自動修好,一定要「加入新硬碟 → rebuild」

延伸閱讀

FAQ

RAID 1 和 RAID 10 差在哪?

RAID 1 是鏡像,RAID 10 是鏡像+條帶化,因此 RAID 10 IOPS 更高。

mdadm 是什麼?

Linux 軟體 RAID 工具,用 CPU 管理磁碟陣列。

RAID 壞掉資料會消失嗎?

不會立即消失,但如果沒有 rebuild,第二顆也壞就會遺失。

MySQL 為什麼受 RAID 影響?

因為 MySQL 高度依賴 random I/O,磁碟效能直接影響 query latency。