RAID卡一致性检查 概念解读

相关原理解释

  1. PR(Patrol Read):硬盘巡读功能,针对阵列卡下组建RAID 的HDD 盘(SSD 默认是关闭的)。RAID 卡下发verify 指令给硬盘,硬盘FW 对物理介质进行检查是否有坏块,并反馈检查结果给RAID卡。而硬盘本身存在background 功能,对全盘所有Block 进行读取校验,如果有异常区域会进行 修复或者标记,功能类似阵列卡的PR。可以替代阵列卡的PR 功能,关闭PR 不影响数据坏块校验;
  2. CC(Consistency Check):冗余逻辑盘的数据一致性校验功能,定期对逻辑盘的数据区与备份 区进行一致性校验,当检测到异常时,通过不同的RAID 机制进行数据的恢复。但如果正常的IO 读 写检测到数据不一致问题,也会触发RAID 数据一致性的校验修复,关闭CC 不影响数据一致性的校验修复。
  3. 在IO时延要求高的场景下(常见有分布式存储、分布式数据库),当LSI阵列卡在执行PR或者CC时,会出现硬盘IO时延增大导致业务受影响的情况。

 

我个人疑惑点在于:PR会自动校验数据,CC也会进行校验数据,那为什么会分成两个概念呢

解释

PR和CC确实都和"检查数据"有关,但它们检查的对象和目的完全不同。我用生活中的例子帮你理解:

1. PR(硬盘巡读)——检查硬盘的"身体健康"

  • 就像体检医生:PR是定期检查硬盘的物理健康,看看硬盘的"皮肤"(物理盘面)有没有坏点、划痕、老化等问题。
  • 检查对象:单个硬盘本身(比如检查你的心脏、肝脏是否健康)
  • 作用:防止硬盘突然暴毙。比如发现某个区域有坏块,就提前标记出来,把数据搬到安全区域。

2. CC(一致性校验)——检查数据的"家庭关系"

  • 就像户口普查员:CC是检查RAID家庭成员(多个硬盘)之间的数据是否一致,比如RAID1镜像的两个硬盘内容是否完全相同。
  • 检查对象:多个硬盘之间的数据关系(比如检查夫妻两人的户口信息是否一致)
  • 作用:防止数据出现"家庭矛盾"。比如发现主硬盘和备份硬盘的数据不一致,就用正确的数据覆盖错误的部分。

举个具体例子(RAID1镜像为例):

  • PR发现硬盘A有个坏块 ➜ 标记这个坏块不再使用
  • CC发现硬盘A和硬盘B在某个位置的数据不同 ➜ 用正确的数据覆盖错误的一方

关键区别总结

PR CC
检查对象 单个硬盘的物理健康 多个硬盘之间的数据关系
好比 体检 核对账本
主要目的 防止硬盘物理损坏 防止数据逻辑错误
影响范围 单块硬盘 整个RAID阵列

关闭后的区别

  • 关PR:硬盘自己还有后台体检(类似手机自动清理垃圾),风险不大
  • 关CC:就像不核对账本,平时存取钱(正常IO)时发现问题还能修复,但可能错过隐藏的问题

这两个功能就像汽车的"定期保养"(PR)和"四轮定位检查"(CC),虽然都检查车,但关注点完全不同。

阅读剩余
THE END
诺言博客