RAID卡一致性检查 概念解读
相关原理解释
- PR(Patrol Read):硬盘巡读功能,针对阵列卡下组建RAID 的HDD 盘(SSD 默认是关闭的)。RAID 卡下发verify 指令给硬盘,硬盘FW 对物理介质进行检查是否有坏块,并反馈检查结果给RAID卡。而硬盘本身存在background 功能,对全盘所有Block 进行读取校验,如果有异常区域会进行 修复或者标记,功能类似阵列卡的PR。可以替代阵列卡的PR 功能,关闭PR 不影响数据坏块校验;
- CC(Consistency Check):冗余逻辑盘的数据一致性校验功能,定期对逻辑盘的数据区与备份 区进行一致性校验,当检测到异常时,通过不同的RAID 机制进行数据的恢复。但如果正常的IO 读 写检测到数据不一致问题,也会触发RAID 数据一致性的校验修复,关闭CC 不影响数据一致性的校验修复。
- 在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