軟體 RAID 以成本低、彈性高成為中小企業存儲首選。本文以四顆硬碟 (/dev/sda~sdd) 為例,完整演示 RAID 5 建立、配置開機自動掛載、檔案系統格式化、故障模擬與熱移除/新增硬碟全流程。
| 等級 | 特點 | 缺點 |
|---|---|---|
| RAID 0 | 速度最快 | 無容錯,一顆壞全掛 |
| RAID 1 | 鏡像,完全容錯 | 成本高,容量利用率 50% |
| RAID 5 | 分散式奇偶校驗,兼顧速度/容錯/容量 | 寫入有運算開銷,重建壓力大 |
| RAID 0+1 | 速度快+完全容錯 | 成本極高,需 4 顆以上 |
四顆 1GB 虛擬硬碟 (/dev/sda~/dev/sdd),各建立一個主分區 (sd[a-d]1,類型 83 Linux)。
# fdisk /dev/sda
Command (m for help): n → p → 1 → Enter → Enter → w
# 其餘三顆同理
# fdisk -l 確認分區
mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[a-d]1
# 輸出:mdadm: array /dev/md0 started.
mdadm --detail /dev/md0
關鍵輸出:
Raid Level : raid5Array Size : 2088192 (2039.25 MiB) (3 顆有效容量)Raid Devices : 3, Total Devices : 4State : cleansda1/sdb1/sdc1 為 active sync,sdd1 為 spare/etc/mdadm.conf)# 產生初始配置
mdadm --detail --scan > /etc/mdadm.conf
# 手動修正格式 (DEVICES 行前置)
vi /etc/mdadm.conf
# 正確內容:
DEVICES /dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a
mkfs.ext3 /dev/md0
mkdir /mdadm
mount /dev/md0 /mdadm
cp /etc/services /mdadm/ # 測試讀寫
mdadm /dev/md0 --fail /dev/sdc1
cat /proc/mdstat
# 顯示 sdc1 標記 (F),陣列仍 [UUU] 正常運作
mdadm /dev/md0 --remove /dev/sdc1
cat /proc/mdstat
# 顯示僅剩 sda1/sdb1/sdd1,sdd1 自動升為 active sync
mdadm /dev/md0 --add /dev/sdc1
cat /proc/mdstat
# 顯示 sdc1 變為 spare,陣列背景重建中
mdadm --detail /dev/md0 與 cat /proc/mdstat 監控狀態,並設定郵件告警 (MAILADDR 在 mdadm.conf)。