3.6. 指定目标池大小
新创建的池消耗少量集群容量,并出现在需要少量的 PG 的系统中。然而,在大多数情形中,集群管理员知道哪些池预期消耗了大多数系统容量。如果您向 Red Hat Ceph Storage 提供此信息,称为 目标大小
,此类池可以从开始使用更合适的 PG 数量(pg_num
)。这种方法可防止 pg_num
中的后续更改,以及进行这些调整时移动数据相关的开销。
您可以使用以下方法指定池的目标大小
:
3.6.1. 使用池的绝对大小指定目标大小
流程
使用池绝对
大小(以字节为单位)设置目标大小
:ceph osd pool set pool-name target_size_bytes value
例如,要指示
mypool
应该消耗 100T 的空间:$ ceph osd pool set mypool target_size_bytes 100T
您还可以通过将可选的 --target-size-bytes <bytes>
参数添加到 ceph osd pool create
命令中,来设置池创建的目标大小。
3.6.2. 使用集群容量指定目标大小
流程
使用集群容量总数来设置
目标大小
:语法
ceph osd pool set pool-name target_size_ratio ratio
例如:
[ceph: root@host01 /]# ceph osd pool set mypool target_size_ratio 1.0
告诉系统,池
mypool
期望消耗 1.0,相对于其他设置了target_size_ratio
的池。如果mypool
是集群中唯一的池,这意味着预期使用总容量的 100%。如果有一个target_size_ratio
为 1.0 的第二个池,则两个池都应该使用 50% 的集群容量。
您还可以通过将可选的 --target-size-ratio <ratio>
参数添加到 ceph osd pool create
命令,在创建时设置池的目标大小。
如果您指定了无法达到的目标大小值,例如:大于总集群的容量,或者设置比例的总和大于 1.0,集群会引发 POOL_TARGET_SIZE_RATIO_OVERCOMMITTED
或 POOL_TARGET_SIZE_BYTES_OVERCOMMITTED
健康警告。
如果您同时为池指定 target_size_ratio
和 target_size_bytes
,集群仅考虑比例,并引发 POOL_HAS_TARGET_SIZE_BYTES_AND_RATIO
健康警告。