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
邮件通知)和定期数据备份。