RAID卡定期一致性检查CC和巡逻读PR导致存储写延迟周期性变高

cover_image

现象

客户的私有云平台每周周末会在一个固定的时间(通常是上午 11点,也有可能是其他的固定时间点)收到 qbd io delay IO 或是 SLOW IO
告警,并且具有如下规律:

  • 总是在周末的某个固定时间点开始
  • 所有存储节点的 RAID 虚拟盘都受到影响
  • 只有 RAID 卡的虚拟盘受到影响,SSD 或其他不受 RAID 卡管理的盘的性能未受影响
  • IOPS 和带宽没有明显变化,但写延迟无故增大

原理

一致性校验(Consistency Check)

LSI RAID 卡有一个一致性检查(Consistency Check,以下简称 cc)机制,会对 RAID 1、5、6、10、50、60 类型的RAID 逻辑盘的镜像数据和校验数据的正确性进行校验。如果是 RAID 1,则会对镜像数据的一致性进行校验,对于 RAID5,则会对校验数据进行校验。

CC 执行计划

默认情况下,会每隔168小时(一周)执行一次,起始时间是每周六的凌晨3:00(此时间为控制器时间,对应的服务器时间是 11:00),执行方式是并行地对所有的RAID 逻辑盘进行检查。

CC 对磁盘性能的影响
影响时间

当启用 CC 后,RAID 控制器会在指定的控制器时间开始执行
CC。由于控制器时间与本地时间并不一致,甚至控制器之间的时间也有可能存在差异,因此在制定或查询具体执行时间时,需要考虑控制器时间与本地时间的差异。

CC 执行的持续时间(影响时间)不是一个固定值,取决于客户 RAID 组的大小、RAID 类型和后端磁盘数量,但一般能达到 2-10 小时

影响程度

从网上的资料可以了解 CC 和 PR 对磁盘性能的影响程度非常显著:
https://www.percona.com/blog/2008/03/05/raid-system-performance-surprises/


https://www.diskinternals.com/raid-recovery/raid-consistency-check/

https://www.gillware.com/raid-data-recovery/common-raid-performance-killers-
consistency-checks/

CC 期间,受影响的磁盘的写 I/O 延迟会达到秒级甚至10秒左右,磁盘的 util% 可以达到 60-80% 左右。

确认 I/O 写延迟增大是否确实为 CC 或 PR 导致

要确认怀疑的 I/O 性能异常是否为 CC 所导致,需要结合前面现象中列出的特点来判断,即:

  • 是否总是在<周末>的<固定时间>点开始
    supervisor 日志显示的 center 异常退出的时间点是否集中在周六周日。
    qingstor mysql 或 zookeeper 或 center 异常的时间点是否均为周六周日。

  • 是否 <所有存储节点的 RAID 虚拟盘>都受到影响

  • 是否只有< RAID 卡的虚拟盘>受到影响,而 <不受 RAID 卡管理的盘 的性能未受影响>

  • 确认问题发生期间是否正在进行 CC 或 PR

StorCLI 工具下载与安装

由于【 2023-03-06 较新的 RAID 卡(固件)不再支持 MegaCLI 导致 MegaCLI 查询 RAID 卡信息时触发 RAID 卡重置
】,生产环境禁止使用 MegaCLI,需要使用 StorCLI 替代

缓解措施

一旦启用 CC 或 PR,则其对磁盘性能的影响无法避免,目前只能考虑采取以下几种方式去缓解:

  • 调整 CC 的执行时间到业务闲时
  • 调整 CC 的执行间隔,比如从一周一次拉长到 2-3 周一次
  • 调整 CC 的执行强度,比如从默认的 30% 调整到 5-15%
  • 将 RAID 卡的 cc 校验从并行改为串行
  • 调整 PR 的执行时间到业务闲时
  • 调整 PR 的执行间隔,比如一周一次拉长到 2-3 周一次
  • 调整 PR 的比例

需要注意的是,调整 CC 或 PR 执行强度会拉长影响时间,且只能减m少 I/O 写延迟增大的频率与次数,并不能做到彻底避免。
以下 storcli 命令中,涉及到 /cx 均表示对第 X+1 个 RAID 卡进行操作,比如:/c0 为第一个 RAID 卡
调整 CC 执行方式为串行执行

storcli /c0 set cc=seq  

调整 CC 执行时间

storcli /c0 set cc starttime="yyyy/mm/dd hh"  

需要注意,仅当启用 CC 时,才可以调整 CC 执行时间,否则是无法调整的

调整 CC执行间隔

storcli /c0 set cc delay=336  

调整 CC 执行强度

storcli /c0 set ccrate=10  

调整 PR 执行间隔

storcli /c0 set pr delay=336  

调整 PR 执行时间

storcli /c0 set pr starttime="yyyy/mm/dd hh"  

调整 PR 执行强度

 storcli /c0 set prrate=10  

调整以上全部

storcli /c0 set cc=seq delay=336 starttime="2023/03/18 03"  
storcli /c0 set ccrate=10  
storcli /c0 set pr starttime="2023/03/18 03" delay=336  
storcli /c0 set prrate=10  

常用操作

查询 RAID 卡控制器时间

  storcli /c0 showtime  

查询 LD 信息

   storcli /c0/vall show  
CC 相关

查询 CC 执行计划和执行状态

storcli /c0 show  cc  

查询 LD CC 执行状态

   storcli /c0/v0 show cc  

暂停 LD CC

storcli /c0/v0 pause cc  

停止 LD CC

storcli /c0/v0 stop cc  

禁用 CC

storcli /c0 set cc=off  

继续 LD CC

storcli /c0/v0 resume cc  
PR 相关

PR 是整个 RAID 卡级别的,因此所有命令都只针对 RAID 卡,而不是 LD
查询 PR

storcli /c0 show pr  

暂停 PR

   storcli /c0 pause pr  

停止 PR

storcli /c0 stop pr  

禁用 PR

  storcli /c0 set pr=off  

继续 PR

storcli /c0 resume cc  

🔥运维干货分享

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值