【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

相关推荐
一名路过的小码农17 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
墨水\\4 天前
分布式----Ceph应用(下)
分布式·ceph
大G哥5 天前
基于K8S1.28.2实验rook部署ceph
java·ceph·云原生·容器·kubernetes
石兴稳6 天前
Ceph PG(归置组)的状态说明
ceph
石兴稳6 天前
Ceph层次架构分析
ceph
活老鬼6 天前
Ceph分布式存储
linux·运维·服务器·分布式·ceph
石兴稳8 天前
Ceph client 写入osd 数据的两种方式librbd 和kernel rbd
linux·ceph
石兴稳8 天前
Ceph的pool有两种类型
ceph
运维小文8 天前
ceph的集群管理
ceph·对象存储·存储·ceph集群管理·ceph节点管理
石兴稳9 天前
iSCSI 和SCSI的概述
ceph