阵列健康要监控什么
把阵列健康纳入监控至少要覆盖四类信号:阵列与逻辑盘状态、物理盘状态与 SMART 属性、后台任务(重建与一致性巡检)进度、缓存与电池状态。硬件 RAID 下操作系统看不到盘级细节,所以监控必须走卡的官方工具;把这些信号阈值化、接入告警、并明确值班认领人,才算形成闭环。
监控项与采集方式
| 指标 | 告警条件示例 | 采集命令 |
|---|---|---|
| 阵列状态 | 非 Optimal,或出现 Degraded | storcli /c0/vall show |
| 盘状态 | Failed / Offline / Rebuild | storcli /c0/eall/sall show |
| SMART | 重映射扇区增长、预测性故障触发 | smartctl -H 或 -A |
| 一致性巡检 | 超期未执行 | storcli /c0/v0 show cc |
| 缓存保护 | 电池或电容 Failed / Learn | storcli /c0/bbu show 或 /c0/cv show |
| 错误计数 | Media Error 或 Other Error 增长 | storcli /c0/eall/sall show |
基础巡检脚本骨架
基础巡检脚本骨架
# 逻辑盘异常检测
storcli /c0/vall show | grep -Ei "degrad|offline|failed" && echo ALERT
# 物理盘异常检测
storcli /c0/eall/sall show | grep -Ei "Offln|Failed|Rbld" && echo ALERT
# SMART 体检
for d in /dev/sd?; do smartctl -H $d | grep -q PASSED || echo "$d SMART ALERT"; done
# 保护模块状态
storcli /c0/bbu show all | grep -iE "state|failed"
# 采集结果带时间戳落盘,形成趋势采集频率建议
| 状态类 | 每 5 分钟一次,异常立即告警 |
|---|---|
| SMART 与错误计数 | 每天或每周一次,看趋势 |
| 一致性巡检 | 按季度安排并验证是否执行过 |
| 缓存保护 | 每天一次,含 Learn Cycle 状态 |
从监控到闭环
- 每条告警明确业务影响等级与处理时限,避免所有告警同级
- 值班认领机制要写清,降级阵列不允许长期挂着无人处理
- 重建与巡检期间降低告警噪音,避免把计划内动作当故障
- 每月回顾一次告警与处置记录,把重复出现的问题升级为整改项
监控命令要用卡的官方工具输出解析,不要解析 dmesg 文本:内核日志格式随版本变化,脚本很容易在升级后失效。