附录 G. Object Storage Daemon (OSD) 配置选项
以下是部署期间可以设置的 Ceph Object Storage Daemon(OSD)配置选项。
您可以使用 ceph config set osd CONFIGURATION_OPTION VALUE
命令设置这些配置选项。
- osd_uuid
- 描述
- Ceph OSD 的通用唯一识别符(UUID)。
- 类型
- UUID
- 默认
- UUID。
- 备注
-
osd uuid
应用到单个 Ceph OSD。fsid
应用到整个集群。
- osd_data
- 描述
OSD 数据路径。在部署 Ceph 时,您必须创建该目录。在此挂载点上挂载 OSD 数据的驱动器。
IMPORTANT: Red Hat does not recommend changing the default.
- 类型
- 字符串
- 默认
-
/var/lib/ceph/osd/$cluster-$id
- osd_max_write_size
- 描述
- 以 MB 为单位的最大写入大小。
- 类型
- 32 位整数
- 默认
-
90
- osd_client_message_size_cap
- 描述
- 内存中允许的最大客户端数据消息。
- 类型
- 64 位 Unsigned 整数
- 默认
-
500MB 默认。
500*1024L*1024L
- osd_class_dir
- 描述
- RADOS 类插件的类路径。
- 类型
- 字符串
- 默认
-
$libdir/rados-classes
- osd_max_scrubs
- 描述
- Ceph OSD 同步清理操作的最大数量。
- 类型
- 32 位整数
- 默认
-
1
- osd_scrub_thread_timeout
- 描述
- 刮除线程超时前需要经过的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
60
- osd_scrub_finalize_thread_timeout
- 描述
- 刮除完成线程超时前需要经过的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
60*10
- osd_scrub_begin_hour
- 描述
-
这会将清理操作限制为在一天的这个小时或之后进行。使用
osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
以允许清理整个一天。与osd_scrub_end_hour
一起,它们定义了一个时间窗,在其中执行清理。但是,无论时间窗是否允许,只要放置组的清理间隔超过osd_scrub_max_interval
,就会执行清理。 - 类型
- 整数
- 默认
-
0
- 允许的范围
-
[0,23]
- osd_scrub_end_hour
- 描述
-
这会将清理限制为比此问题更早的小时。使用
osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
允许在整个一天进行清理。与osd_scrub_begin_hour
一起,它们定义了一个时间窗,在其中执行清理。但是,无论时间窗是否允许,只要放置组的清理间隔超过osd_scrub_max_interval
,就会执行清理。 - 类型
- 整数
- 默认
-
0
- 允许的范围
-
[0,23]
- osd_scrub_load_threshold
- 描述
-
最大负载。当系统负载(由
getloadavg()
功能定义)超过这个数值时,Ceph 不会进行刮除。默认为0.5
。 - 类型
- 浮点值
- 默认
-
0.5
- osd_scrub_min_interval
- 描述
- 当 Red Hat Ceph Storage 集群负载较低时,清理 Ceph OSD 的最小间隔(以秒为单位)。
- 类型
- 浮点值
- 默认
-
每天一次。
60*60*24
- osd_scrub_max_interval
- 描述
- 清理 Ceph OSD 所需负载时的最长时间(以秒为单位)。
- 类型
- 浮点值
- 默认
-
每周一次。
7*60*60*24
- osd_scrub_interval_randomize_ratio
- 描述
-
使用这个比率,在
osd scrub min interval
和osd scrub max interval
间随机化调度的刮除。 - 类型
- 浮点值
- 默认
-
0.5
.
- mon_warn_not_scrubbed
- 描述
-
osd_scrub_interval
后的秒数,以警告任何未清理的 PG。 - 类型
- 整数
- 默认
-
0
(无警告)。
- osd_scrub_chunk_min
- 描述
-
对象存储被分区为以哈希界限结尾的块。对于块清理,Ceph 每次清理对象的一个块,且会阻止对这个块的写入。
osd scrub chunk min
设置表示要清理的最小块数量。 - 类型
- 32 位整数
- 默认
-
5
- osd_scrub_chunk_max
- 描述
- 清理的最大块数量。
- 类型
- 32 位整数
- 默认
-
25
- osd_scrub_sleep
- 描述
- 深度清理操作之间休眠的时间。
- 类型
- 浮点值
- 默认
-
0
(或关闭)。
- osd_scrub_during_recovery
- 描述
- 允许在恢复期间进行清理。
- 类型
- Bool
- 默认
-
false
- osd_scrub_invalid_stats
- 描述
- 强制执行额外的清理,以修复标记为无效统计数据。
- 类型
- Bool
- 默认
-
true
- osd_scrub_priority
- 描述
- 控制清理操作与客户端 I/O 的队列优先级。
- 类型
- Unsigned 32 位整数
- 默认
-
5
- osd_requested_scrub_priority
- 描述
-
在工作队列中为用户请求清理设置的优先级。如果这个值要小于
osd_client_op_priority
,可以在清理阻止客户端操作时将其提高到osd_client_op_priority
的值。 - 类型
- Unsigned 32 位整数
- 默认
-
120
- osd_scrub_cost
- 描述
- 以 MB 为单位清理操作的成本,用于队列调度目的。
- 类型
- Unsigned 32 位整数
- 默认
-
52428800
- osd_deep_scrub_interval
- 描述
-
深度清理的时间间隔,即完全读取所有数据。
osd scrub load threshold
参数不会影响此设置。 - 类型
- 浮点值
- 默认
-
每周一次。
60*60*24*7
- osd_deep_scrub_stride
- 描述
- 在进行深度清理时读取大小。
- 类型
- 32 位整数
- 默认
-
512 KB.
524288
- mon_warn_not_deep_scrubbed
- 描述
-
osd_deep_scrub_interval
后的秒数,以警告任何未清理的 PG。 - 类型
- 整数
- 默认
-
0
(无警告)
- osd_deep_scrub_randomize_ratio
- 描述
-
清理的速率会随机变得深度清理(即使
osd_deep_scrub_interval
已通过)。 - 类型
- 浮点值
- 默认
-
0.15
或 15%
- osd_deep_scrub_update_digest_min_age
- 描述
- 在清理更新整个对象摘要前,旧对象需要有多少秒。
- 类型
- 整数
- 默认
-
7200
(120 小时)
- osd_deep_scrub_large_omap_object_key_threshold
- 描述
- 当您遇到多个 OMAP 密钥的对象时,会发出警告。
- 类型
- 整数
- 默认
-
200000
- osd_deep_scrub_large_omap_object_value_sum_threshold
- 描述
- 当您遇到多个 OMAP 键字节超过这个对象时,会发出警告。
- 类型
- 整数
- 默认
-
1 G
- osd_op_num_shards
- 描述
- 客户端操作的分片数量。
- 类型
- 32 位整数
- 默认
-
0
- osd_op_num_threads_per_shard
- 描述
- 客户端操作的每个分片的线程数量。
- 类型
- 32 位整数
- 默认
-
0
- osd_op_num_shards_hdd
- 描述
- HDD 操作的分片数量。
- 类型
- 32 位整数
- 默认
-
5
- osd_op_num_threads_per_shard_hdd
- 描述
- 每个分片用于 HDD 操作的线程数量。
- 类型
- 32 位整数
- 默认
-
1
- osd_op_num_shards_ssd
- 描述
- SSD 操作的分片数量。
- 类型
- 32 位整数
- 默认
-
8
- osd_op_num_threads_per_shard_ssd
- 描述
- 用于 SSD 操作的每个分片的线程数量。
- 类型
- 32 位整数
- 默认
-
2
- osd_client_op_priority
- 描述
-
为客户端操作设置的优先级。它相对于
osd recovery op priority
。 - 类型
- 32 位整数
- 默认
-
63
- 有效范围
- 1-63
- osd_recovery_op_priority
- 描述
-
恢复操作设置的优先级。它相对于
osd client op priority
。 - 类型
- 32 位整数
- 默认
-
3
- 有效范围
- 1-63
- osd_op_thread_timeout
- 描述
- Ceph OSD 操作线程超时(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
15
- osd_op_complaint_time
- 描述
- 在经过指定秒数后,某个操作会变得令人满意。
- 类型
- 浮点值
- 默认
-
30
- osd_disk_threads
- 描述
- 用于执行后台磁盘密集型 OSD 操作的磁盘线程数量,如清理和 snap 修剪。
- 类型
- 32 位整数
- 默认
-
1
- osd_op_history_size
- 描述
- 要跟踪的最大完成操作数。
- 类型
- 32-bit Unsigned 整数
- 默认
-
20
- osd_op_history_duration
- 描述
- 要跟踪的最旧的已完成操作。
- 类型
- 32-bit Unsigned 整数
- 默认
-
600
- osd_op_log_threshold
- 描述
- 一次显示多少个操作日志。
- 类型
- 32 位整数
- 默认
-
5
- osd_op_timeout
- 描述
- 运行 OSD 操作超时的时间(以秒为单位)。
- 类型
- 整数
- 默认
-
0
重要
不要设置 osd op timeout
选项,除非您的客户端可以处理后果。例如,在虚拟机中运行的客户端设置此参数可能会导致数据崩溃,因为虚拟机将此超时解释为硬件故障。
- osd_max_backfills
- 描述
- 允许从一个 OSD 或单个 OSD 允许的最大回填操作数。
- 类型
- 64-bit Unsigned 整数
- 默认
-
1
- osd_backfill_scan_min
- 描述
- 每次回填扫描的最小对象数量。
- 类型
- 32 位整数
- 默认
-
64
- osd_backfill_scan_max
- 描述
- 每次回填扫描的最大对象数量。
- 类型
- 32 位整数
- 默认
-
512
- osd_backfill_full_ratio
- 描述
- 当 Ceph OSD 的全满比率超过这个值时,拒绝接受回填请求。
- 类型
- 浮点值
- 默认
-
0.85
- osd_backfill_retry_interval
- 描述
- 在重试回填请求前等待的秒数。
- 类型
- 双
- 默认
-
30.000000
- osd_map_dedup
- 描述
- 启用删除 OSD map 中的重复项。
- 类型
- 布尔值
- 默认
-
true
- osd_map_cache_size
- 描述
- 以 MB 为单位的 OSD map 缓存的大小。
- 类型
- 32 位整数
- 默认
-
50
- osd_map_cache_bl_size
- 描述
- OSD 守护进程中的内存中 OSD map 缓存的大小。
- 类型
- 32 位整数
- 默认
-
50
- osd_map_cache_bl_inc_size
- 描述
- 内存中 OSD 映射缓存在 OSD 守护进程中递增的大小。
- 类型
- 32 位整数
- 默认
-
100
- osd_map_message_max
- 描述
- 每个 MOSDMap 消息允许的最大映射条目。
- 类型
- 32 位整数
- 默认
-
40
- osd_snap_trim_thread_timeout
- 描述
- 在超时 snap trim 线程前的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
60*60*1
- osd_pg_max_concurrent_snap_trims
- 描述
- 并行 snap 修剪/PG 的最大数量。这将控制每个 PG 要一次修剪的对象数量。
- 类型
- 32 位整数
- 默认
-
2
- osd_snap_trim_sleep
- 描述
- 在 PG 发布的每个修剪操作之间插入一个 sleep。
- 类型
- 32 位整数
- 默认
-
0
- osd_max_trimming_pgs
- 描述
- 修剪 PG 的最大数量
- 类型
- 32 位整数
- 默认
-
2
- osd_backlog_thread_timeout
- 描述
- backlog 线程超时前需要经过的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
60*60*1
- osd_default_notify_timeout
- 描述
- OSD 默认通知超时(以秒为单位)。
- 类型
- 32 位整数(Unsigned)
- 默认
-
30
- osd_check_for_log_corruption
- 描述
- 检查日志文件是否存在损坏。计算的代价可能会比较高。
- 类型
- 布尔值
- 默认
-
false
- osd_remove_thread_timeout
- 描述
- 在超时删除 OSD 线程前的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
60*60
- osd_command_thread_timeout
- 描述
- 命令线程超时前需要经过的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
10*60
- osd_command_max_records
- 描述
- 限制丢失对象的数量。
- 类型
- 32 位整数
- 默认
-
256
- osd_auto_upgrade_tmap
- 描述
-
在旧对象为
omap
使用tmap
。 - 类型
- 布尔值
- 默认
-
true
- osd_tmapput_sets_users_tmap
- 描述
-
仅使用
tmap
进行调试。 - 类型
- 布尔值
- 默认
-
false
- osd_preserve_trimmed_log
- 描述
- 保留会修剪的日志文件,但会占用更多磁盘空间。
- 类型
- 布尔值
- 默认
-
false
- osd_recovery_delay_start
- 描述
- 在对等点完成后,开始恢复对象前,Ceph 延迟指定的秒数。
- 类型
- 浮点值
- 默认
-
0
- osd_recovery_max_active
- 描述
- 一次每个 OSD 活跃的恢复请求数。更多请求会加快恢复速度,但请求会增加集群中的负载。
- 类型
- 32 位整数
- 默认
-
0
- osd_recovery_max_chunk
- 描述
- 要推送的数据恢复块的最大大小。
- 类型
- 64 位 Unsigned 整数
- 默认
-
8388608
- osd_recovery_threads
- 描述
- 恢复数据的线程数量。
- 类型
- 32 位整数
- 默认
-
1
- osd_recovery_thread_timeout
- 描述
- 超时恢复线程前的最大时间(以秒为单位)。
- 类型
- 32 位整数
- 默认
-
30
- osd_recover_clone_overlap
- 描述
-
在恢复期间保留克隆重叠。应始终设为
true
。 - 类型
- 布尔值
- 默认
-
true
- rados_osd_op_timeout
- 描述
- RADOS 在从 RADOS 操作返回错误之前等待来自 OSD 的响应的秒数。值为 0 表示没有限制。
- 类型
- 双
- 默认
- 0