处理 1 pool(s) have non-power-of-two pn_num 的问题

在ceph 集群中建立一个新的pool后,出现”1 pool(s) have non-power-of-two pg_num”。

通过命令建立了一个名为 first_pool 的存储池后,执行 ceph -s 命令可以看到如下的警告:

bash
health: HEALTH_WARN
1 pool(s) have non-power-of-two pg_num

1
2
3
4
5
6
7

**原因是: 建立 pool 时,指定的 pg_num 不是 2 的幂会触发这个告警**

通过命令

```bash
ceph osd pool ls detail | grep first_pool

可以观察到 first_pool 的 pg_num 是 10。因此会报上述的警告。 使用 set 命令改变 pg_num 的值

1
ceph osd pool set first_pool pg_num 32

pgp_num 通常设置为与pg_num 相同。

1
ceph osd pool set first_pool pgp_num 32

命令执行后会有一个准备调整的过程,需要一些时间

再查看集群的状态,转为正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cluster:
id: 6c0d548f-5da2-46a5-b289-f1cd16a31aa2
health: HEALTH_OK

services:
mon: 1 daemons, quorum ceph-01 (age 20m)
mgr: ceph-01(active, since 20m)
osd: 3 osds: 3 up (since 20m), 3 in (since 15h)

data:
pools: 1 pools, 128 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 27 GiB / 30 GiB avail
pgs: 128 active+clean

本文标题:处理 1 pool(s) have non-power-of-two pn_num 的问题

文章作者:Morning Star

发布时间:2022年12月09日 - 21:12

最后更新:2022年12月09日 - 21:12

原始链接:https://www.mls-tech.info/ceph/ceph-1-pool-have-non-power-of-two-pg_num/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。