Linux RAID1 創建與配置實戰指南(mdadm)
一、RAID1 核心價值與實戰目標
RAID1(磁盤鏡像) 通過數據冗余提供高可靠性:
- 當單塊硬盤損壞時,數據不丟失
- 支持快速陣列重建
- 讀寫性能略低于單盤(鏡像寫入開銷)
本文實戰目標:
? 使用 mdadm
在 Linux 創建 RAID1
? 提供環境兼容方案(如工具缺失時的替代方案)
? 實現開機自動掛載與狀態驗證
示例環境:
- 系統:CentOS 7 / Ubuntu(通用方案)
- 數據盤:
/dev/sda
+/dev/sdc
- RAID設備:
/dev/md126
- 掛載點:
/data/raid1
- 文件系統:ext4
二、前置準備
安裝 mdadm
按發行版選擇命令:# Debian/Ubuntu apt update && apt install mdadm -y# CentOS/RHEL yum install mdadm -y
驗證安裝:
mdadm --version
磁盤檢查與清理
關鍵步驟:清除舊分區表/RAID信息,避免沖突# 查看磁盤列表 lsblk
清理舊分區(二選一):
# 方案A(推薦):使用 sgdisk sgdisk --zap-all /dev/sda# 方案B(無 sgdisk 時):使用 dd dd if=/dev/zero of=/dev/sda bs=512 count=2048
清除文件系統簽名:
wipefs -a /dev/sda建議同樣對 sdc 也執行 wipefs,防止遺留。
檢查舊 RAID 陣列
若存在舊陣列,先嘗試組裝:mdadm --assemble --scan cat /proc/mdstat # 檢查陣列狀態
?? 無輸出表示無舊陣列,可跳過此步
三、創建 RAID1 陣列
初始化陣列(兼容性方案)
# 創建陣列(預留一個磁盤位置) mdadm --create /dev/md126 --level=1 --raid-devices=2 /dev/sdc missing
missing
:為/dev/sda
預留位置,后續手動添加
? 若設備名沖突(如已有
/dev/md126
):mdadm --stop /dev/md126 mdadm --remove /dev/md126
添加第二塊磁盤
mdadm --add /dev/md126 /dev/sda
監控重建進度
watch cat /proc/mdstat # 實時查看狀態
- 等待狀態變為
[UU]
(表示雙盤正常):md126 : active raid1 sda[2] sdc[0]3907015680 blocks [2/2] [UU]
- 等待狀態變為
四、文件系統與掛載
格式化 RAID 設備
mkfs.ext4 /dev/md126
掛載到文件系統
mkdir -p /data/raid1 mount /dev/md126 /data/raid1
驗證掛載
df -h /data/raid1
預期輸出:
Filesystem Size Used Avail Use% Mounted on /dev/md126 3.6T 89M 3.4T 1% /data/raid1
五、開機自動掛載配置
保存 RAID 配置
# Debian/Ubuntu mdadm --detail --scan >> /etc/mdadm/mdadm.conf# CentOS/RHEL mdadm --detail --scan >> /etc/mdadm.conf
配置 /etc/fstab
- 獲取設備 UUID:
blkid /dev/md126
預期輸出: /dev/md126: UUID="d8e3eb19-2b2f-41f5-b8b0-05bbb1f01aee" TYPE="ext4"
- 編輯
/etc/fstab
:UUID=d8e3eb19-2b2f-41f5-b8b0-05bbb1f01aee /data/raid1 ext4 defaults 0 0
- 獲取設備 UUID:
測試自動掛載
umount /data/raid1 mount -a df -h /data/raid1 # 檢查是否成功掛載
六、檢查與驗證
查看陣列健康狀態
mdadm --detail /dev/md126
關鍵指標:
Raid Level : raid1 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 [UU] # 雙盤正常
故障模擬測試
- 狀態
[_U]
→ 單盤故障 - 狀態
[__]
→ 陣列崩潰
- 狀態
關鍵驗證操作:
# 重啟測試 reboot df -h | grep raid1 # 重啟后檢查掛載# 讀寫測試 touch /data/raid1/testfile ls -l /data/raid1 rm -f /data/raid1/testfile
七、最佳實踐與注意事項
? 定期維護:
cat /proc/mdstat # 每月檢查陣列狀態
mdadm --monitor --scan # 啟用后臺監控
? 關鍵認知:
- RAID1 ≠ 備份!仍需獨立備份方案
- 更換故障盤后需手動觸發重建
- 避免使用同一批次硬盤(降低同時故障風險)
? 常見錯誤:
- 未清理舊分區導致陣列沖突
- 忘記保存配置到
/etc/mdadm.conf
- 直接拔盤未標記為
failed
最終配置摘要:
項目 | 值 |
---|---|
RAID 設備 | /dev/md126 |
RAID 類型 | RAID1 |
UUID | d8e3eb19-2b2f-41f5-b8b0-05bbb1f01aee |
文件系統 | ext4 |
掛載點 | /data/raid1 |
陣列狀態 | 健康 [UU] |
可用空間 | ≈3.4 TB |
通過本指南,您已構建高可靠的磁盤鏡像系統。下一步建議:配置監控告警(如
mdadm
郵件通知)和定期數據備份。