对部分集群从 V12 升级到 V14 之后,就迎来了 Nautilus 版本的一个重要特性,就是 pg 的自动扩展。运维 Ceph 集群的朋友应该会感受到,如果经常扩容,上了 OSD 之后,又还需要去计算一遍 pg 的个数,然后再设置一次,还是比较麻烦的,而且公式本身比较简单,为什么不能让 pg 打到阈值之后自动分裂扩展呢?在 Nautilus 版本,就提供了这么一个模块工具,开启之后,就可以以 pool 为粒度的 pg 自动扩展。
下面我们看一下效果,可以看到由于升级到 Nautilus 之后,PG 的默认数量调整成32了,所以升级之后马上就会有这个 Warning,表示之前的 Pool 的 PG 跟32相比,多数原来在 V12 设置为 8 的一些 Pool 绝对就会说少了,所以下面做个试验,把其中一个 Pool 设置成 pg auto scale。
ceph osd pool autoscale-status
ceph osd pool set default.rgw.buckets.index pg_autoscale_mode on
开启之后会发现,该 Pool 的 AUTOSCALE 的地方从 warn 变成了 on,意思是即将把 PG 拆成32了。
最后看一下结果,这里是需要等待一小段时间让 PG 做完扩展的,default.rgw.buckets.index
确实被设置成32个 PG 了。