RAID 5 阵列降级修复指南
一、诊断问题
1. 查看 RAID 状态
1 |
cat /proc/mdstat |
关键输出解析:
–
1 |
[4/3] [_UUU] |
:4块硬盘设计,3块在线,1块缺失
–
1 |
recovery |
:表示正在自动重建(若无此状态需手动修复)
2. 确认缺失硬盘
1 |
lsblk |
操作说明:
查找未加入RAID的硬盘(如
1 |
/dev/sda |
)
二、修复步骤
1. 清理无效RAID配置
1 2 |
mdadm --stop /dev/mdXXX # 替换为目标阵列名(如 md126) mdadm --zero-superblock /dev/sdX # 清除目标硬盘元数据 |
2. 重新分区并设置类型
1 |
fdisk /dev/sda |
交互操作流程:
1 |
d → 删除现有分区(若有) |
1 |
n → 创建新分区(默认全盘) |
1 |
t → 设置分区类型为 fd (Linux RAID) |
1 |
w → 保存并退出 |
3. 重建RAID阵列
1 |
mdadm --manage /dev/md125 --add /dev/sda1 |
4. 监控重建进度
1 |
watch cat /proc/mdstat # 实时刷新重建进度 |
正常状态示例:
1 |
[4/4] [UUUU] |
(所有硬盘在线)
三、预防措施
1. 固化RAID配置
1 2 |
mdadm --detail --scan >> /etc/mdadm/mdadm.conf # 生成配置文件 update-initramfs -u # 更新启动镜像 |
2. 使用UUID替代设备名
操作说明:
1. 通过
1 |
blkid |
获取硬盘UUID
2. 在
1 |
/etc/mdadm/mdadm.conf |
中替换为:
1 |
ARRAY /dev/md125 UUID=xxxxxxxx:yyyyyyyy:zzzzzzzz:aaaaaaa |
3. 处理启动延迟
1 2 |
nano /etc/default/grub # 添加 rootdelay=30 update-grub # 更新GRUB配置 |
4. 设置监控告警
1 |
echo 'MAILADDR your-email@example.com' >> /etc/mdadm/mdadm.conf |
四、验证与测试
1. 重启验证
1 2 3 |
reboot cat /proc/mdstat mdadm --detail /dev/md125 |
2. 定期维护命令
1 |
smartctl -a /dev/sda # 检查硬盘健康状态 |
定时检查配置:
1 2 |
crontab -e 0 0 * * * /usr/share/mdadm/checkarray --cron --all --quiet |
五、操作总结
步骤 | 命令/操作 | 目的 | ||
---|---|---|---|---|
诊断状态 |
|
确认RAID状态和缺失硬盘 | ||
清除旧配置 |
|
移除无效RAID信息 | ||
修复分区 |
|
准备硬盘加入RAID | ||
加入RAID |
|
触发数据重建 | ||
固化配置 | 更新配置文件和启动镜像 | 确保系统自动加载RAID |
注意事项
- ⚠️ 数据备份:重建前建议备份关键数据(RAID5仅支持单盘容错)
- ⚠️ 硬盘健康:定期检查SMART状态,及时更换故障盘
- ⚠️ 日志监控:通过
1dmesg | grep md
发表回复