3.5.5 RAID监控、故障处理与重建

3.5.5 RAID监控、故障处理与重建#

RAID在生产环境中需持续监控与标准化处置流程,避免单盘故障扩大为阵列失效。本节给出监控告警、故障定位、降级运行、重建、校验与演练的完整操作示例。

原理草图:监控与重建流程#

文章图片

监控与告警(含安装与配置示例)#

  • 软件RAID(mdadm)
  • 安装与版本确认:
    ```bash
    # Debian/Ubuntu
    sudo apt-get update && sudo apt-get install -y mdadm
    mdadm --version

    RHEL/CentOS#

    sudo yum install -y mdadm
    mdadm --version
    - 状态查看:bash
    cat /proc/mdstat
    mdadm --detail /dev/md0
    **命令说明**:`/proc/mdstat`展示阵列概要;`--detail`列出成员盘、事件计数、重建进度等。 - 邮件告警配置(示例):bash

    /etc/mdadm.conf#

    MAILADDR ops@example.com
    PROGRAM /usr/sbin/raid-monitor
    bash

    启动监控#

    sudo systemctl enable --now mdmonitor
    **预期效果**:阵列降级时触发邮件通知。 - **SMART监控** - 安装:bash

    Debian/Ubuntu#

    sudo apt-get install -y smartmontools

    RHEL/CentOS#

    sudo yum install -y smartmontools
    - 关键字段检查:bash
    smartctl -a /dev/sdb | egrep "Reallocated|Pending|UDMA_CRC"
    **命令说明**:关注坏道重映射、待处理扇区、链路错误。 - **硬件RAID(以MegaRAID为例)** - 工具安装与查看:bash

    storcli示例(需厂商提供包)#

    storcli /c0 show
    storcli /c0 /eall /sall show
    `` **说明**:/c0为控制器0;/e/s`枚举磁盘。

故障识别与定位(示例)#

# 阵列概要,U_ 表示缺盘
cat /proc/mdstat

# 详细信息,映射成员盘
mdadm --detail /dev/md0

# 内核日志定位I/O错误
dmesg | egrep -i "md0|I/O|error|reset"

排错要点
- U_/_U表示降级运行;
- mdadm --detailState : faulty为故障盘;
- 日志中出现I/O errorlink reset提示硬件或线缆问题。

标准故障处理流程(完整演练)#

# 1) 标记故障盘
sudo mdadm /dev/md0 --fail /dev/sdb
# 2) 移除故障盘
sudo mdadm /dev/md0 --remove /dev/sdb
# 3) 替换新盘(热插拔或更换后识别为 /dev/sdb)
lsblk

# 4) 加入新盘并触发重建
sudo mdadm /dev/md0 --add /dev/sdb

# 5) 监控重建进度
watch -n 5 cat /proc/mdstat

预期效果/proc/mdstat显示[>....................]重建进度,完成后状态恢复为UU

重建性能调优与业务保护#

# 限制重建速度下限/上限
echo 50000  | sudo tee /proc/sys/dev/raid/speed_limit_min
echo 200000 | sudo tee /proc/sys/dev/raid/speed_limit_max

命令说明:单位为KB/s;高峰期降低上限以减少业务I/O冲击。

热备盘配置(示例)#

# 添加热备盘
sudo mdadm /dev/md0 --add /dev/sdc
# 查看热备盘状态
mdadm --detail /dev/md0 | egrep -i "spare|sdc"

预期效果:成员列表中出现spare标记,故障时自动接管。

一致性校验与修复(定期巡检)#

# 发起一致性检查
echo check | sudo tee /sys/block/md0/md/sync_action
# 查看校验进度
watch -n 10 cat /proc/mdstat

# 发现不一致时修复
echo repair | sudo tee /sys/block/md0/md/sync_action

说明:建议在低峰期执行,月度或季度频率。

常见故障与排错思路#

  • 重建失败:检查新盘是否有坏道、容量是否足够、线缆/背板是否松动。
  • 频繁掉盘:排查电源、背板、控制器固件,必要时更换同批次磁盘。
  • RAID5双盘故障:阵列不可用,必须走备份恢复流程。

练习(动手验证)#

  1. 创建测试RAID1(两块虚拟盘),模拟故障并重建。
  2. 手动调节speed_limit_max观察重建速度变化。
  3. 配置mdadm邮件告警并触发一次--fail验证通知流程。

运维最佳实践#

  • RAID不是备份,必须并行备份策略;
  • 变更与更换流程标准化,保留日志与工单记录;
  • 监控告警与值班联动(邮件/IM/短信)。