4.3. 创建池
在创建池前,请参阅 配置指南 以了解更多详情。
最好为放置组数量调整默认值,因为默认值不必适合您的需要:
示例
[ceph: root@host01 /]# ceph config set global osd_pool_default_pg_num 250 [ceph: root@host01 /]# ceph config set global osd_pool_default_pgp_num 250
创建复制池:
语法
ceph osd pool create POOL_NAME PG_NUM PGP_NUM [replicated] \ [CRUSH_RULE_NAME] [EXPECTED_NUMBER_OBJECTS]
创建纠删代码池:
语法
ceph osd pool create POOL_NAME PG_NUM PGP_NUM erasure \ [ERASURE_CODE_PROFILE] [CRUSH_RULE_NAME] [EXPECTED_NUMBER_OBJECTS]
创建批量池:
语法
ceph osd pool create POOL_NAME [--bulk]
其中:
- POOL_NAME
- 描述
- 池的名称。它必须是唯一的。
- 类型
- 字符串
- 必填
- 是。如果没有指定,则会设置为默认值。
- 默认
-
ceph
- PG_NUM
- 描述
-
池的放置组总数。有关计算合适的数字的详细信息,请参阅每个池计算器的放置组 部分和 Ceph Placement Groups (PG)计算器。默认值
8
不适用于大多数系统。 - 类型
- 整数
- 必填
- 是
- 默认
-
8
- PGP_NUM
- 描述
- 用于放置的放置组总数。这个值必须等于放置组总数,但放置组分割场景除外。
- 类型
- 整数
- 必填
- 是。如果没有指定,则设置为默认值。
- 默认
-
8
复制或纠删代码
- 描述
-
池类型可以通过保留对象的多个副本来获取通用的 RAID5 功能,
从而
从丢失的 OSD 中恢复。复制池需要更多原始存储,但实施所有 Ceph 操作。纠删代码池需要较少的原始存储,但仅实现可用操作的一个子集。
- 类型
- 字符串
- 必填
- 否
- 默认
-
复制
- CRUSH_RULE_NAME
- 描述
-
池的 CRUSH 规则的名称。规则 必须存在。对于复制池,name 是
osd_pool_default_crush_rule
配置设置指定的规则。对于纠删代码池,如果您指定了默认的纠删代码 profile 或POOL_NAME
,则名称为erasure-code
。如果规则尚不存在,Ceph 会隐式创建具有指定名称的规则。 - 类型
- 字符串
- 必填
- 否
- 默认
-
对纠删代码池使用
erasure-code
。对于复制池,它使用 Ceph 配置中的osd_pool_default_crush_rule
变量的值。
- EXPECTED_NUMBER_OBJECTS
- 描述
- 池的预期对象数量。Ceph 在创建池时分割放置组,以避免对运行时目录分割造成延迟。
- 类型
- 整数
- 必填
- 否
- 默认
-
0
,创建池时不进行分割。
- ERASURE_CODE_PROFILE
- 描述
-
仅针对纠删代码池。使用纠删代码 profile。它必须是 Ceph 配置文件中
osd erasure-code-profile set
变量定义的现有配置集。如需更多信息,请参阅 Erasure Code Profiles 部分。 - 类型
- 字符串
- 必填
- 否
当您创建池时,将放置组数量设置为合理的值,例如 100
。考虑每个 OSD 的放置组总数。放置组的计算代价比较高,因此当您有很多放置组的池时,性能会降低,例如 50 个池,每个放置组有 100 个放置组。减弱的返回点取决于 OSD 主机的电源。
其它资源
有关 计算池 的适当放置组的详细信息,请参阅 每个池计算器的放置组部分和 Ceph 放置组(PG)。