RAID 级别与计算68 条

阵列健康监控指标

把阵列健康纳入监控要盯四类信号:阵列状态、盘状态与 SMART、后台任务进度、缓存/电池状态;阈值化并接入告警才能形成闭环。

阵列健康要监控什么

把阵列健康纳入监控至少要覆盖四类信号:阵列与逻辑盘状态、物理盘状态与 SMART 属性、后台任务(重建与一致性巡检)进度、缓存与电池状态。硬件 RAID 下操作系统看不到盘级细节,所以监控必须走卡的官方工具;把这些信号阈值化、接入告警、并明确值班认领人,才算形成闭环。

监控项与采集方式

指标告警条件示例采集命令
阵列状态非 Optimal,或出现 Degradedstorcli /c0/vall show
盘状态Failed / Offline / Rebuildstorcli /c0/eall/sall show
SMART重映射扇区增长、预测性故障触发smartctl -H 或 -A
一致性巡检超期未执行storcli /c0/v0 show cc
缓存保护电池或电容 Failed / Learnstorcli /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 文本:内核日志格式随版本变化,脚本很容易在升级后失效。

易错点

  • 只监控系统盘或只看操作系统视图:硬件 RAID 下操作系统看不到盘级异常,故障发现严重滞后
  • 告警只发不闭环:值班无人认领,降级阵列长期带病运行,等到第二块盘故障就是事故
  • 没有阈值分级:所有异常都同样紧急,真实风险被噪音淹没
  • 不采集趋势:没有历史数据,就无法判断错误计数是偶发还是劣化
  • 把计划内的重建与巡检当故障处理:白白消耗值班精力,还可能误中断正常运维动作
  • 巡检脚本只在人工登录时跑:没有定时任务与告警链路,等于没有监控
  • 更换阵列卡或固件后沿用旧脚本:输出字段可能变化,告警会静默失效

数据来源与参考

  • storcli 命令参考
  • smartmontools 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌