RAID 级别与计算68 条

Patrol Read 巡检读

Patrol Read 是控制器在空闲时逐块扫描成员盘、发现并隔离坏道的后台任务:它把媒体错误提前暴露出来,降低重建时撞坏块的概率。

Patrol Read 巡检读

Patrol Read 是控制器在相对空闲时逐块扫描成员盘的后台任务,目的是发现并触发坏块重映射,把媒体错误在盘还健康的时候暴露出来。它和一致性检查(CC)不同:巡检读只检查盘的可读性、不比对校验,因此开销小、可以更频繁地跑;一致性检查会校验数据与校验的一致性,开销更大。两者的共同价值是把风险从「重建时才发现」提前到「日常就能看见」。

基本信息

作用主动扫描媒体错误并触发坏块重映射,不读校验
与 CC 的区别CC 校验数据与校验的一致性,开销更大、频率更低
调度可按周期与间隔计划自动运行,也可手动启动
影响扫描期间有额外读负载,业务高峰可暂停或降低速率
适用前提阵列处于 Optimal 状态,降级时优先恢复冗余

手动启动与查看(megacli)

手动启动与查看(megacli)
M=/opt/MegaRAID/MegaCli/MegaCli64
$M -AdpPR -Start -a0            # 手动启动巡检读
$M -AdpPR -Info -a0             # 查看配置与进度
$M -AdpPR -Stop -a0             # 停止巡检读
$M -AdpPR -SetDelay 168 -a0     # 设置巡检间隔(小时,示例值)
# storcli 环境:storcli /c0 show patrolread

巡检读与一致性检查

维度Patrol Read一致性检查(CC)
检查对象盘的介质可读性与坏块数据块与校验块是否一致
是否读校验否是
开销较低,可高频运行较高,需按周期安排
发现写洞不能可以发现不一致
典型频率每周或每月每季度或每半年

调度建议

  • 按业务低谷设定运行窗口,避免与备份、跑批撞车
  • 开启自动周期运行,并验证它确实按期执行过
  • 发现坏块后记录位置与时间,纳入盘的劣化趋势
  • 降级运行期间先恢复冗余,再考虑巡检
长期不跑 Patrol Read 的阵列,媒体错误只能在重建或随机读时暴露,风险被发现得更晚,处理余地也更小。

易错点

  • 把巡检读当性能杀手直接禁用:坏块积累到重建时才爆发,代价远高于日常扫描
  • 与一致性检查混淆:巡检读查介质错误,一致性检查校验数据与校验的一致性,作用不能互相替代
  • 在降级阵列上跑巡检:先把冗余恢复,再考虑额外读取负载
  • 只在人工登录时手动跑:没有周期任务等于没有巡检,坏块永远不会被提前发现
  • 发现坏块不记录:无法判断是同盘的偶发还是持续劣化,换盘决策缺少依据

数据来源与参考

  • Broadcom MegaRAID 用户指南(Patrol Read)
  • megacli 命令参考
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌