巡检读是什么
Patrol Read(巡检读)是 RAID 控制器按周期自动扫描成员盘扇区的后台任务,目的是在阵列还健康时把潜在坏道读出来,并借助冗余把数据搬到好扇区。它平时只读不写业务数据,对在线业务的影响远小于重建,是坏道发现被提前到重建之前的关键手段。MegaCli 用 -AdpPR 系列参数查看、启停与设置周期。
基本信息
| 主要参数 | -AdpPR -Info / -Start / -Stop / -SetDelay |
|---|---|
| SetDelay 单位 | 小时,表示两次自动巡检之间的间隔 |
| 常见取值 | 168 表示每周一次,24 表示每天一次 |
| 权限要求 | root |
| 适用控制器 | MegaRAID 系列(老卡 MegaCli,新卡 storcli 同名参数略有差异) |
典型使用场景
- 新盘上架后立即跑一轮,提前暴露运输或生产缺陷
- 上线交付前做全盘巡检,保证初始状态干净
- 按周或按天的计划任务,尽早发现渐进性坏道
- 长期运行的老阵列做一次健康基线扫描
- 扩容、迁移等重大操作前确认没有隐藏坏道
查看、启停与调度
查看、启停与调度
/opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Info -a0 # 查看巡检读当前设置与进度
/opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Start -a0 # 立即开始一轮巡检
/opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -Stop -a0 # 中止当前巡检(例如遇上业务高峰)
/opt/MegaRAID/MegaCli/MegaCli64 -AdpPR -SetDelay 168 -a0 # 设置自动巡检间隔为 168 小时,即每周一次
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -a0 | grep -iE "media error|other error|predictive failure" # 巡检后核对错误计数与预测性故障标记新盘上架后跑一轮巡检读,可以提前暴露运输或生产缺陷,是验收流程里的常见动作。
巡检读、一致性检查与重建共用磁盘队列:排期要错开,并给重建留出余量,否则巡检会把重建拖到超时。
RAID0 阵列上巡检读只能发现坏道,无法借助冗余修复:读到坏块就意味着数据丢失,此时巡检结果应当直接当作迁移数据的触发信号。