存储池、归置组和 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
- 描述
一个存储池的默认归置组数量,默认值即是
mkpool
的pg_num
参数。- 类型
32-bit Integer
- 默认值
8
osd pool default pgp num
- 描述
一个存储池里,为归置使用的归置组数量,默认值等同于
mkpool
的pgp_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