附录 I. Ceph 刮除选项
Ceph 通过清理放置组来确保数据完整性。以下是您可以调整的 Ceph 清理选项,以增加或减少刮除操作。
您可以使用 ceph config set global CONFIGURATION_OPTION VALUE
命令设置这些配置选项。
- mds_max_scrub_ops_in_progress
- 描述
-
并行执行的最大清理操作数量。您可以使用
ceph config set mds_max_scrub_ops_in_progress VALUE
命令设置这个值。 - 类型
- 整数
- 默认
- 5
- osd_max_scrubs
- 描述
- Ceph OSD 守护进程的同步清理操作的最大数量。
- 类型
- 整数
- 默认
- 1
- osd_scrub_begin_hour
- 描述
-
清理开始的特定小时。和
osd_scrub_end_hour
一起,您可以定义一个可发生清理的时间窗。使用osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
以允许清理整个一天。 - 类型
- 整数
- 默认
- 0
- 允许的范围
-
[0, 23]
- osd_scrub_end_hour
- 描述
-
清理结束的特定小时。与
osd_scrub_begin_hour
一起,您可以定义一个时间窗,在其中执行清理。使用osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
允许在整个一天进行清理。 - 类型
- 整数
- 默认
- 0
- 允许的范围
-
[0, 23]
- osd_scrub_begin_week_day
- 描述
-
清理开始的具体日期。0 = Sunday, 1 = Monday 等.除了 "osd_scrub_end_week_day" 外,您可以定义一个可发生清理的时间窗。使用
osd_scrub_begin_week_day = 0
和osd_scrub_end_week_day = 0
以允许对整个星期的清理。 - 类型
- 整数
- 默认
- 0
- 允许的范围
-
[0, 6]
- osd_scrub_end_week_day
- 描述
-
这将定义清理结束的日期。0 = Sunday, 1 = Monday 等.与
osd_scrub_begin_week_day
一起,它们定义了一个时间窗,其中执行清理。使用osd_scrub_begin_week_day = 0
和osd_scrub_end_week_day = 0
以允许对整个星期的清理。 - 类型
- 整数
- 默认
- 0
- 允许的范围
-
[0, 6]
- osd_scrub_during_recovery
- 描述
-
在恢复期间允许清理。把它设置为
false
可禁用调度新的清理和深度清理,同时存在活跃的恢复。已在运行的刮除会继续,对降低忙碌存储集群上的负载很有用。 - 类型
- 布尔值
- 默认
- false
- osd_scrub_load_threshold
- 描述
- 规范化最大负载。当系统负载(由 getloadavg()/在线 CPU 的数量指定)的数量高于这一定义的数量时,刮除不会发生。
- 类型
- 浮点值
- 默认
- 0.5
- osd_scrub_min_interval
- 描述
- 当 Ceph 存储集群负载较低时,清理 Ceph OSD 守护进程的最小间隔(以秒为单位)。
- 类型
- 浮点值
- 默认
- 1 天
- osd_scrub_max_interval
- 描述
- 清理 Ceph OSD 守护进程时的最大间隔,以秒为单位。
- 类型
- 浮点值
- 默认
- 7 天
- osd_scrub_chunk_min
- 描述
- 在单个操作期间,要刮除的对象存储块的最小数量。Ceph 块在清理期间写入单个块。
- type
- 整数
- 默认
- 5
- osd_scrub_chunk_max
- 描述
- 在单个操作期间,要刮除的对象存储块的最大数量。
- type
- 整数
- 默认
- 25
- osd_scrub_sleep
- 描述
- 在刮除下一块组前需要经过的睡眠时间。增加这个值会减慢刮除的整体速率,因此客户端操作受到的影响较低。
- type
- 浮点值
- 默认
- 0.0
- osd_scrub_extended_sleep
- 描述
- 在清理超时或秒内注入延迟的时间。
- type
- 浮点值
- 默认
- 0.0
- osd_scrub_backoff_ratio
- 描述
- 调度清理的 backoff 比率。这是不调度清理的百分比,66% 表示 1 不再使用 3 ticks 调度清理。
- type
- 浮点值
- 默认
- 0.66
- osd_deep_scrub_interval
- 描述
-
深度
清理的间隔,请完全读取所有数据。osd_scrub_load_threshold
不会影响此设置。 - type
- 浮点值
- 默认
- 7 天
- osd_debug_deep_scrub_sleep
- 描述
- 在深度清理 IO 期间注入昂贵的睡眠状态,以便更轻松地降低抢占。
- type
- 浮点值
- 默认
- 0
- osd_scrub_interval_randomize_ratio
- 描述
-
在为放置组调度下一个清理作业时,添加一个随机延迟到
osd_scrub_min_interval
。延迟是一个随机值,小于osd_scrub_min_interval
*osd_scrub_interval_randomized_ratio
。默认设置会在允许的时间窗口[1, 1.5]
*osd_scrub_min_interval
中分配清理。 - type
- 浮点值
- 默认
- 0.5
- osd_deep_scrub_stride
- 描述
- 在进行深度清理时读取大小。
- type
- size
- 默认
- 512 KB
- osd_scrub_auto_repair_num_errors
- 描述
- 如果发现多个错误,则不会进行自动修复。
- type
- 整数
- 默认
- 5
- osd_scrub_auto_repair
- 描述
-
当清理或深度清理错误时,将其设置为
true
可启用自动放置组(PG)修复。但是,如果发现的错误数量超过了osd_scrub_auto_repair_errors
,则不允许进行修复。此选项用于定期清理,不适用于 operator 启动的清理。 - type
- 布尔值
- 默认
- false
- osd_scrub_max_preemptions
- 描述
- 在阻止客户端 IO 完成清理前,设置因为客户端操作而需要抢占深度清理的最大次数。
- type
- 整数
- 默认
- 5
- osd_deep_scrub_keys
- 描述
- 在深度清理期间从对象读取的密钥数量。
- type
- 整数
- 默认
- 1024