【ceph】ceph关于清洗数据scrub的参数分析

 本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

 【ceph】ceph关于清洗数据scrub的参数分析

"osd_scrub_auto_repair": "true":表示在数据清洗过程中自动修复错误。
"osd_scrub_auto_repair_num_errors": "5":表示在数据清洗过程中,当错误数量达到 5 个时,自动触发修复操作。
"osd_scrub_backoff_ratio": "0.660000":表示在数据清洗期间发生错误时,下一次清洗的延迟比例为 0.66。
"osd_scrub_begin_hour": "0":表示每天数据清洗的开始小时数为 0,即午夜。
"osd_scrub_begin_week_day": "0":表示数据清洗开始的星期几为 0,即星期日。
"osd_scrub_chunk_max": "1":表示数据清洗过程中同时处理的最大数据块数为 1。
"osd_scrub_chunk_min": "1":表示数据清洗过程中同时处理的最小数据块数为 1。
"osd_scrub_cost": "52428800":表示数据清洗的成本为 52428800。
"osd_scrub_during_recovery": "false":表示在恢复过程中是否进行数据清洗,默认为不进行。
"osd_scrub_end_hour": "24":表示每天数据清洗的结束小时数为 24,即午夜。
"osd_scrub_end_week_day": "7":表示数据清洗结束的星期几为 7,即星期六。
"osd_scrub_interval_randomize_ratio": "1.000000":表示数据清洗的时间间隔不引入随机性。
"osd_scrub_invalid_stats": "true":表示在数据清洗期间是否统计无效的状态,默认为统计。
"osd_scrub_load_threshold": "10.000000":表示数据清洗的负载阈值为 10。
"osd_scrub_max_interval": "2592000.000000":表示数据清洗的最大时间间隔为 2592000 秒,即 30 天。
"osd_scrub_max_preemptions": "5":表示在数据清洗过程中最大的抢占次数为 5。
"osd_scrub_min_interval": "0.000000":表示数据清洗的最小时间间隔为 0 秒。
"osd_scrub_priority": "5":表示数据清洗的优先级为 5。
"osd_scrub_sleep": "1.000000":表示在数据清洗过程中每个数据块之间的休眠时间为 1 秒。

mds_max_scrub_ops_in_progress: 同时进行的最大 MDS(元数据服务器)数据校验任务数,默认为 5。
mon_scrub_inject_crc_mismatch: 用于模拟 CRC 不匹配的概率,默认为 0.000000,表示不模拟。
mon_scrub_inject_missing_keys: 用于模拟丢失密钥的概率,默认为 0.000000,表示不模拟。
mon_scrub_interval: MDS 数据校验的间隔时间,默认为 86400 秒(1 天)。
mon_scrub_max_keys: MDS 数据校验时每个 OSD 的最大密钥数,默认为 100。
mon_scrub_timeout: MDS 数据校验的超时时间,默认为 300 秒。
osd_deep_scrub_interval: OSD 深度数据校验的间隔时间,默认为 604800 秒(7 天)。
osd_deep_scrub_keys: OSD 深度数据校验时每个 OSD 的最大密钥数,默认为 1024。
osd_max_scrubs: 同时进行的最大 OSD 数据校验任务数,默认为 10。


osd_max_scrubs 是 Ceph 配置参数之一,用于限制每个 OSD(对象存储设备)节点同时进行的最大数据校验次数。

在 Ceph 集群中,数据校验是通过定期对存储在 OSD 上的数据进行校验和修复来确保数据的完整性和一致性。osd_max_scrubs 参数用于控制同时进行的数据校验任务的数量,以避免过多的校验任务对系统性能产生负面影响。

默认情况下,osd_max_scrubs 的值为 1,表示每个 OSD 节点同一时间只能执行一个数据校验任务。您可以根据集群的规模和性能需求调整此值。

具体情况优化具体需求,一般优化化下面几个:

osd_scrub_max_interval

osd_deep_scrub_interval

osd_scrub_load_threshold

osd_scrub_chunk_max # 针对小文件多,可以调整大

osd_max_scrubs # 建议不要超过10

osd_scrub_sleep

一般 osd_scrub_sleep 配合 osd_scrub_chunk_min 和 osd_scrub_chunk_max 同时根据自己集群状态需求去配置。

一般生产打开scrub的话,都会调小 osd_scrub_chunk_min/max 把sleep相应调大1-3s

你可能感兴趣的:(ceph,ceph)