存储池、归置组和 CRUSH 配置参考

当你创建存储池并给它设置归置组数量时,如果你没指定 Ceph 就用默认值。我们建议更改某些默认值,特别是存储池的副本数和默认归置组数量,可以在运行 pool 命令的时候设置这些值。你也可以把配置写入 Ceph 配置文件的 [global] 段来覆盖默认值。

[global]

	# By default, Ceph makes 3 replicas of objects. If you want to make four
	# copies of an object the default value--a primary copy and three replica
	# copies--reset the default values as shown in 'osd pool default size'.
	# If you want to allow Ceph to write a lesser number of copies in a degraded
	# state, set 'osd pool default min size' to a number less than the
	# 'osd pool default size' value.

	osd pool default size = 3  # Write an object 3 times.
	osd pool default min size = 2 # Allow writing two copies in a degraded state.

	# Ensure you have a realistic number of placement groups. We recommend
	# approximately 100 per OSD. E.g., total number of OSDs multiplied by 100
	# divided by the number of replicas (i.e., osd pool default size). So for
	# 10 OSDs and osd pool default size = 4, we'd recommend approximately
	# (100 * 10) / 4 = 250.

	osd pool default pg num = 250
	osd pool default pgp num = 250

mon max pool pg num

描述

每个存储的最大归置组数量。

类型

Integer

默认值

65536

mon pg create interval

描述

在同一个 OSD 里创建 PG 的间隔秒数。

类型

Float

默认值

30.0

mon pg stuck threshold

描述

多长时间无响应的 PG 才认为它卡住了。

类型

32-bit Integer

默认值

300

mon pg min inactive

描述

如果处于不活跃状态的 PG 数量超过 mon_pg_stuck_threshold 选项配置的值,就向集群日志发出一个 HEALTH_ERR 。负数表示禁用,永远别进入 ERR 状态。

类型

Integer

默认值

1

mon pg warn min per osd

描述

如果每个 OSD 上的 PG 数量平均值低于此数值,就向集群日志发出一个 HEALTH_WARN 。负数禁用此功能。

类型

Integer

默认值

30

mon pg warn max per osd

描述

如果每个 OSD 上的 PG 数量平均值超过此数值,就向集群日志发出一个 HEALTH_WARN 。负数禁用此功能。

类型

Integer

默认值

300

mon pg warn min objects

描述

集群内的对象总数小于此数值时不发出警告。

类型

Integer

默认值

1000

mon pg warn min pool objects

描述

存储池内对象数小于此数值时,不发出有关此存储池的警告。

类型

Integer

默认值

1000

mon pg check down all threshold

描述

倒下的 OSD 百分比阈值,超过此值我们会检查所有 PG ,看有没有掉队的。

类型

Float

默认值

0.5

mon pg warn max object skew

描述

如果某一个存储池的平均对象数大于全部存储池的 mon pg warn max object skew 倍,就向集群日志发出一个 HEALTH_WARN 。负数禁用此功能。

类型

Float

默认值

10

mon delta reset interval

描述

多少秒没活动我们就把 pg 增量重置为 0 。我们会跟踪各存储池已用空间的增量,借此,我们可以更容易地理解恢复进度或者缓存层的性能;但是,如果没收到某个存储池的活动情况报告,我们会简单粗暴地重置与它相关的增量历史。

类型

Integer

默认值

10

mon osd max op age

描述

最大操作时长(最好设置为 2 的幂),一个请求被阻塞的时间超过此值就会发出 HEALTH_WARN 告警。

类型

Float

默认值

32.0

osd pg bits

描述

每个 OSD 的归置组位数。

类型

32-bit Integer

默认值

6

osd pgp bits

描述

每个 OSD 为 PGP 留的位数。

类型

32-bit Integer

默认值

6

osd crush chooseleaf type

描述

在一个 CRUSH 规则内用于 chooseleaf 的桶类型。用序列号而不是名字。

类型

32-bit Integer

默认值

1 ,通常一台主机包含一或多个 OSD 。

osd crush initial weight

描述

新加入 crushmap 的 OSD 应该分配的初始 CRUSH 权重。

类型

Double

默认值

TB 计算的新增 OSD 的容量。默认情况下,给新增 OSD 分配的 CRUSH 权重是其以 TB 为单位的容量数值,详情见调整桶条目的权重

osd pool default crush rule

描述

创建多副本存储池时用哪个默认 CRUSH 规则。

类型

8-bit Integer

默认值

-1 ,也就是说,“选用数字 ID 最小的规则”。这样,没有规则 0 时也能成功创建存储池。

osd pool erasure code stripe unit

描述

设置纠删码存储池内对象条带的默认尺寸,单位为字节。每个尺寸为 S 的对象都将存储为单个数据块为 stripe unit 字节的 N 个条带,每个尺寸为 N * stripe unit 字节的条带将分别独立地编码、解码。此选项可被纠删码配置中的 stripe_unit 选项覆盖。

类型

Unsigned 32-bit Integer

默认值

4096

osd pool default size

描述

设置一存储池的对象副本数,默认值等同于 ceph osd pool set {pool-name} size {size}

类型

32-bit Integer

默认值

3

osd pool default min size

描述

设置存储池中已写副本的最小数量,以向客户端确认写操作。如果未达到配置的最小值, Ceph 就不会向客户端反馈已写确认。此选项可确保降级( degraded )模式下的最小副本数。

类型

32-bit Integer

默认值

0 ,意思是没有最小值。如果为 0 ,最小值是 size - (size / 2)

osd pool default pg num

描述

一个存储池的默认归置组数量,默认值即是 mkpoolpg_num 参数。

类型

32-bit Integer

默认值

8

osd pool default pgp num

描述

一个存储池里,为归置使用的归置组数量,默认值等同于 mkpoolpgp_num 参数。当前 PG 和 PGP 应该相同。

类型

32-bit Integer

默认值

8

osd pool default flags

描述

新存储池的默认标志。

类型

32-bit Integer

默认值

0

osd max pgls

描述

将列出的最大归置组数量,一客户端请求量大时会影响 OSD 。

类型

Unsigned 64-bit Integer

默认值

1024

Note

默认值应该没问题。

osd min pg log entries

描述

清理日志文件的时候保留的归置组日志量。

类型

32-bit Int Unsigned

默认值

1000

osd default data pool replay window

描述

一 OSD 等待客户端重播请求的时间,秒。

类型

32-bit Integer

默认值

45

osd max pg per osd hard ratio

描述

集群内每个 OSD 上的 PG 数量的最大占比,超过后 OSD 就会拒绝新建 PG 。如果一个 OSD 所托管的 PG 超过 osd max pg per osd hard ratio * mon max pg per osd ,它就会停止创建新 PG 。

类型

Float

默认值

2

osd recovery priority

描述

工作队列里恢复的优先级。

类型

Integer

默认值

5

osd recovery op priority

描述

如果存储池没有理会,给恢复操作的默认优先级。

类型

Integer

默认值

3