当前位置: 首页 > news >正文

ceph scrub 参数

ceph --admin-daemon 输出的配置中,与 scrub(数据一致性检查) 相关的参数可分为 时间窗口控制并发与资源限制scrub 类型与频率错误处理与修复性能调优 5 大类。以下是每个核心参数的详细解释,结合实际场景说明其作用:

一、时间窗口控制:限制 scrub 仅在低峰期运行

这类参数决定 OSD 何时允许执行 scrub,避免在业务高峰期占用资源,对应之前代码中 scrub_time_permit 函数的校验逻辑。

参数名当前值含义与作用
osd_scrub_begin_hour0允许 scrub 的开始小时(24小时制)。当前为 0,即凌晨 0 点。
osd_scrub_end_hour0允许 scrub 的结束小时。当前为 0,且 begin=end 表示全天允许 scrub(无小时限制)。
osd_scrub_begin_week_day0允许 scrub 的开始星期(0=周日,1=周一,…,6=周六)。当前为 0(周日)。
osd_scrub_end_week_day0允许 scrub 的结束星期。当前为 0,且 begin=end 表示每天允许 scrub(无星期限制)。
osd_blocked_scrub_grace_period120因“对象锁定”(如正在写入)被阻塞的 PG,等待 scrub 的最大宽限时间(秒)。超过后跳过该 PG,避免长期阻塞。

二、并发与资源限制:控制 scrub 对系统资源的占用

这类参数限制同时执行的 scrub 数量、优先级,防止 scrub 与业务读写/数据恢复争抢 CPU、IO 资源。

参数名当前值含义与作用
osd_max_scrubs3单个 OSD 同时运行的最大 scrub 任务数。当前为 3,即 1 个 OSD 最多同时检查 3 个 PG,避免 IO 打满。
mds_max_scrub_ops_in_progress5MDS(元数据服务器)层面同时运行的最大元数据 scrub 操作数(针对 CephFS 元数据一致性),防止元数据服务过载。
osd_scrub_priority5scrub 任务的IO 优先级(1-7,1 最高,7 最低)。当前为 5(中低优先级),确保业务读写优先。
osd_requested_scrub_priority5手动触发 scrub 时的IO 优先级(与 osd_scrub_priority 作用类似,仅针对手动请求)。
osd_scrub_during_recoveryfalse是否允许在 OSD 数据恢复(recovery)期间执行 scrub。当前为 false(禁止),避免恢复+scrub 双重资源消耗导致集群卡顿。
osd_scrub_load_threshold0.5OSD 负载阈值(CPU/IO 使用率):当负载超过 50% 时,暂停 scrub,仅在负载低于阈值时恢复,保障业务性能。

三、scrub 类型与频率:控制检查深度和执行间隔

Ceph 有两种 scrub 类型:shallow scrub(轻量检查,校验元数据摘要)、deep scrub(深度检查,逐块校验数据内容)。这类参数控制两种 scrub 的执行频率和范围。

参数名当前值含义与作用
osd_scrub_min_interval86400(秒)轻量 scrub(shallow)的最小执行间隔:当前为 86400 秒 = 24 小时,即一个 PG 至少每 24 小时做一次轻量检查。
osd_scrub_max_interval604800(秒)轻量 scrub 的最大执行间隔:当前为 604800 秒 = 7 天,即一个 PG 最多不超过 7 天做一次轻量检查(实际间隔在 min~max 间随机,避免所有 PG 同时 scrub)。
osd_deep_scrub_interval604800(秒)深度 scrub(deep)的执行间隔:当前为 7 天,即一个 PG 每 7 天做一次深度数据校验(比轻量 scrub 更耗时,但更精准)。
osd_scrub_interval_randomize_ratio0.5轻量 scrub 间隔的随机化比例:当前为 50%,即实际间隔 = 基础间隔 × (1 ± 50%),避免所有 PG 在同一时间触发 scrub(如每天凌晨 0 点集中执行)。
osd_deep_scrub_randomize_ratio0.15深度 scrub 间隔的随机化比例:当前为 15%,即实际间隔 = 7 天 × (1 ± 15%),减少集中深度检查的压力。
osd_deep_scrub_keys1024深度 scrub 时,每个对象最多校验的 OMAP 键数量(OMAP 是对象的元数据键值对)。超过 1024 个键的对象,仅校验部分键,平衡精度与性能。

四、错误处理与修复:scrub 发现不一致时的行为

当 scrub 检测到数据/元数据不一致(如主从 PG 数据不匹配)时,这类参数控制是否自动修复、修复的限制条件。

参数名当前值含义与作用
osd_scrub_auto_repairfalse是否自动修复 scrub 发现的不一致错误。当前为 false(关闭),需手动介入处理(避免自动修复误删数据,适合对数据安全性要求高的场景)。
osd_scrub_auto_repair_num_errors5自动修复的最大错误数限制:即使开启 auto_repair,当一个 PG 的不一致错误超过 5 个时,也停止自动修复,避免批量错误导致更大问题。
osd_scrub_invalid_statstrue是否在 scrub 后更新 PG 的“无效统计信息”(如损坏对象数量)。当前为 true,便于通过 ceph pg stat 查看不一致状态。

五、性能调优:优化 scrub 的执行效率

这类参数控制 scrub 的执行细节,减少对业务的影响,提升检查效率。

参数名当前值含义与作用
osd_scrub_chunk_min5轻量 scrub 时,每次批量处理的最小 PG 数量:一次至少处理 5 个 PG,避免频繁切换任务。
osd_scrub_chunk_max15轻量 scrub 时,每次批量处理的最大 PG 数量:一次最多处理 15 个 PG,避免单次任务过重。
osd_shallow_scrub_chunk_min50轻量 scrub 针对“大 PG”(包含大量对象)的最小批量处理数:优化大 PG 的检查效率。
osd_shallow_scrub_chunk_max100轻量 scrub 针对“大 PG”的最大批量处理数
osd_deep_scrub_stride524288(字节)深度 scrub 时每次读取的数据块大小:当前为 512 KiB,即逐 512 KiB 块校验数据,平衡 IO 次数与单次 IO 大小。
osd_scrub_sleep0(秒)每次 scrub 操作间的休眠时间:当前为 0,即无休眠(适合 IO 性能充足的集群;若 IO 紧张,可设为 0.1~1 秒,降低 IO 突发)。
osd_scrub_extended_sleep0(秒)深度 scrub 时的额外休眠时间:当前为 0,作用与 osd_scrub_sleep 类似,仅针对深度检查。
osd_scrub_cost52428800scrub 操作的**“成本权重”**(用于 IO 调度):值越大,调度器认为 scrub 消耗的 IO 资源越多,会优先调度业务读写。
osd_scrub_event_cost4096scrub 事件(如元数据更新)的成本权重:与 osd_scrub_cost 配合,精细化控制 scrub 的 IO 优先级。

六、其他辅助参数

参数名当前值含义与作用
mon_scrub_interval86400(秒)Monitor 节点自身元数据 scrub 的间隔(24 小时):检查 Monitor 存储的集群配置、PG 映射等元数据一致性。
mon_scrub_max_keys100Monitor 元数据 scrub 时,每次处理的最大键数量:避免 Monitor 单次 scrub 负载过高。
mon_scrub_timeout300(秒)Monitor 元数据 scrub 的超时时间:超过 5 分钟未完成则中断,防止 Monitor 卡死。
mon_scrub_inject_crc_mismatch0.0测试用参数:注入 CRC 校验错误的概率(0=不注入),用于验证 scrub 的错误检测能力,生产环境禁用。

文章转载自:

http://MaqAYl3R.ndmbz.cn
http://lR9LC4rh.ndmbz.cn
http://4i3EEMev.ndmbz.cn
http://1fq8p46R.ndmbz.cn
http://5ku6LBjY.ndmbz.cn
http://GxwPmKEA.ndmbz.cn
http://qEU5piW0.ndmbz.cn
http://IWqccPpv.ndmbz.cn
http://s3JcHFbi.ndmbz.cn
http://2CwWADDa.ndmbz.cn
http://mFtl6QLC.ndmbz.cn
http://Nzrn1SFo.ndmbz.cn
http://vBr323il.ndmbz.cn
http://vesYGhaT.ndmbz.cn
http://yYv4o3CT.ndmbz.cn
http://NBxLw5gO.ndmbz.cn
http://XCEovkY2.ndmbz.cn
http://ddALzLm2.ndmbz.cn
http://rftyI7hn.ndmbz.cn
http://5GToUNZM.ndmbz.cn
http://MLTQjoog.ndmbz.cn
http://FBV26ile.ndmbz.cn
http://BfMmMLtQ.ndmbz.cn
http://HaJPw9Rn.ndmbz.cn
http://9C26BbJ3.ndmbz.cn
http://xLyuJHtC.ndmbz.cn
http://cE9mmxKp.ndmbz.cn
http://AjOF4ke1.ndmbz.cn
http://FsqvoM79.ndmbz.cn
http://uGXcd4y1.ndmbz.cn
http://www.dtcms.com/a/375506.html

相关文章:

  • JavaWeb--day1--HTMLCSS
  • 全国连锁贸易公司数字化管理软件-优德普SAP零售行业解决方案
  • C++面向对象之继承
  • AI原生编程:智能系统自动扩展术
  • Wireshark TS | 接收数据超出接收窗口
  • 第一代:嵌入式本地状态(Flink 1.x)
  • 4.1-中间件之Redis
  • Django ModelForm:快速构建数据库表单
  • 【迭代】:本地高性能c++对话系统e2e_voice
  • SSE与Websocket、Http的关系
  • 蓓韵安禧DHA展现温和配方的藻油与鱼油营养特色
  • 基于UNet的视网膜血管分割系统
  • python函数和面向对象
  • 嵌入式 - ARM(3)从基础调用到 C / 汇编互调
  • 07MySQL存储引擎与索引优化
  • 面向OS bug的TypeState分析
  • 【文献笔记】Task allocation for multi-AUV system: A review
  • 小红书批量作图软件推荐运营大管家小红书批量作图工具
  • ArrayList详解与实际应用
  • 德意志飞机公司与DLR合作完成D328 UpLift演示机地面振动测试
  • MongoDB 备份与恢复终极指南:mongodump 和 mongorestore 深度实战
  • ctfshow - web - 命令执行漏洞总结(二)
  • 基于STM32的GPS北斗定位系统
  • 2025年大陆12寸晶圆厂一览
  • VMware Workstation Pro 安装教程
  • Java Spring @Retention三种保留策略
  • 低代码平台的核心组件与功能解析:红迅低代码平台实战探秘
  • linux sudo权限
  • PM2 管理后端(设置项目自启动)
  • 中国香港服务器中常提到的双向/全程CN2是什么意思?