首页/系统/服务器硬件与 RAID 速查/软件 RAID(md)换盘步骤
硬盘故障与更换68 条

软件 RAID(md)换盘步骤

md 阵列换盘:先确认故障盘对应关系,fail/remove 后用同容量盘 add 回去;过程完全脚本化,适合批量标准化。

md 换盘是什么

md 是 Linux 内核的软 RAID 实现,换盘流程完全在命令行完成:先确认故障盘与阵列的对应关系,把故障盘标记为失效并移出阵列,物理更换后把新盘加入,内核会自动开始重建。整个流程可以脚本化,适合批量标准化;风险点在于新盘的分区大小、超级块残留与设备名漂移,处理前都要核对。

基本信息

适用平台Linux 内核 md/raid,配合 mdadm 工具
新盘要求容量不小于原成员分区,建议同扇区格式同规格
分区要求新盘需建立与原分区大小一致的分区,或直接使用整盘设备
完成标志/proc/mdstat 中成员数恢复且不再有 recovery 或 reshape 行

标准流程

标准流程
cat /proc/mdstat                                        # 确认降级与成员状态
mdadm --detail /dev/md0 | grep -i -E "faulty|/dev/sd"    # 定位故障盘
mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1      # 摘除故障盘
# 物理更换后:
mdadm --zero-superblock /dev/sdc1                       # 清除新盘残留超级块
mdadm /dev/md0 --add /dev/sdc1                          # 加入新盘
watch -n 30 cat /proc/mdstat                            # 观察重建进度

换盘前后检查

阶段检查项目的
换盘前阵列组成与故障盘位置确认摘除对象,避免误摘健康盘
换盘前数据备份状态降级期间再坏一块将不可恢复
换盘中新盘分区与超级块避免加入失败或带入旧阵列元数据
换盘后重建进度与业务延迟确认重建正常推进且业务未受明显影响

典型使用场景

  • 单盘故障:标记失效并更换,由内核自动重建
  • 预测性故障:盘还能用但已告警,主动更换避免突发掉盘
  • 批量标准化:把流程写成脚本,统一各机房的换盘动作
  • 容量升级:借换盘机会替换为容量更大的盘,再考虑后续扩容
  • 演练验证:在测试环境跑一遍换盘流程,验证监控与告警是否闭环
新盘加入前可先 mdadm --zero-superblock 清残留标记,避免旧阵列元数据干扰。
重建速率可用 /proc/sys/dev/raid/speed_limit_min 与 speed_limit_max 控制:业务高峰压低速率,夜间调高,变更后恢复原值并记录。

常见疑问

  • 能否用整盘设备替换分区成员:可以,但同一阵列内成员表示方式应保持一致
  • 重建期间能否重启:不建议,重启会中断重建并按实现重新开始
  • 新盘容量更大是否有额外收益:仅当所有成员同步升级后才可能改变可用容量

易错点

  • 新盘分区与原分区大小不一致:md 拒绝加入或容量计算异常
  • 换盘后忘记更新 fstab 或监控里的设备路径:靠 UUID 与 by-id 更稳妥
  • 在降级状态下继续做高风险变更:再坏一块即失去数据,换盘期间应避免其他操作

数据来源与参考

  • man 8 mdadm(--fail/--remove/--add)
  • man 4 md
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌