4.3. 创建池

在创建池之前,请参阅《红帽 Ceph 存储 4 配置 指南》中的池、PG 和 CRUSH 配置 参考 一章。

注意

在红帽 Ceph 存储 3 及更高版本中,系统管理员必须明确使池能够从 Ceph 客户端接收 I/O 操作。详情请参阅 启用应用程序。如果无法启用池,则会导致 HEALTH_WARN 状态

最好在 Ceph 配置文件中调整 PG 数量的默认值,因为默认值不必满足您的需要。例如:

osd pool default pg num = 100
osd pool default pgp num = 100

要创建复制池,请执行:

ceph osd pool create <pool-name> <pg-num> <pgp-num> [replicated] \
         [crush-rule-name] [expected-num-objects]

要创建纠删代码池,请执行:

ceph osd pool create <pool-name> <pg-num> <pgp-num> erasure \
         [erasure-code-profile] [crush-rule-name] [expected-num-objects]

其中:

pool-name
描述
池的名称。它必须是唯一的。
类型
字符串
必填
可以。如果未指定,它将设置为 Ceph 配置文件中列出的值或默认值。
默认
Ceph
pg_num
描述
池的 PG 总数。有关计算适当编号的详细信息 请参阅 每个池计算器的 PG 和 Ceph 放置组(PG )。默认值为 8 不适用于大多数系统。
类型
整数
必填
默认
8
pgp_num
描述
用于放置的 PG 的总数。这个值必须等于放置组总数,但放置组分割场景除外。
类型
整数
必填
可以。如果没有指定,它将设置为 Ceph 配置文件中列出的值或默认值。
默认
8
复制或纠删
描述
池类型,可以通过保留多个对象副本或 纠删 来从丢失的 OSD 中恢复,也可以被 复制 以获取一种通用的 RAID5 功能。复制池需要更多原始存储,但实施所有 Ceph 操作。纠删代码池需要较少的原始存储,但仅实施可用操作的子集。
类型
字符串
必填
默认
复制
crush-rule-name
描述
池的 crush 规则的名称。规则 MUST 存在。对于复制池,其名称是由 osd_pool_default_crush_rule 配置设置指定的规则。对于纠删代码池,如果另外指定默认纠删代码 profile 或 {pool-name},则名称为 erasure- code。如果规则尚不存在,Ceph 会以隐式方式创建此规则,其名称为指定的名称。
类型
字符串
必填
默认
erasure-code 用于纠删代码池。对于复制池,它使用 Ceph 配置中的 osd_pool_default_crush_rule 变量的值。
expected-num-objects
描述
池的预期对象数量。通过将此值与负 filestore_merge_threshold 变量一起设置,Ceph 在创建池时分割 PG,以避免延迟影响,从而执行运行时目录分割。
类型
整数
必填
默认
0,在创建池时没有分割
erasure-code-profile
描述
仅用于纠删代码池。使用纠删代码 profile。它必须是现有 profile,如 Ceph 配置文件中的 osd erasure-code-profile set 变量所定义。如需更多信息,请参阅 Erasure Code Profiles 部分。
类型
字符串
必填

创建池时,将 PG 数量设置为合理的值(例如 100)。也请考虑每个 OSD 的 PG 总数。放置组的计算成本很高,因此当有多个 PG 的池(例如,每个 PG 拥有 50 个池)时,性能会降低。递减返回的点取决于 OSD 主机的电源。

如需有关为您的 池计算适当数量的 PG 的详细信息,请参阅每个池的 PG 部分 和 Ceph 放置组(PG )。