美文网首页Cephceph
调整ceph的pg数(pg_num, pgp_num)

调整ceph的pg数(pg_num, pgp_num)

作者: think_lonely | 来源:发表于2017-09-12 11:10 被阅读215次

调整ceph的pg数

PG全称是placement groups,它是ceph的逻辑存储单元。在数据存储到cesh时,先打散成一系列对象,再结合基于对象名的哈希操作、复制级别、PG数量,产生目标PG号。根据复制级别的不同,每个PG在不同的OSD上进行复制和分发。可以把PG想象成存储了多个对象的逻辑容器,这个容器映射到多个具体的OSD。PG存在的意义是提高ceph存储系统的性能和扩展性。

如果没有PG,就难以管理和跟踪数以亿计的对象,它们分布在数百个OSD上。对ceph来说,管理PG比直接管理每个对象要简单得多。每个PG需要消耗一定的系统资源包括CPU、内存等。集群的PG数量应该被精确计算得出。通常来说,增加PG的数量可以减少OSD的负载,但是这个增加应该有计划进行。一个推荐配置是每OSD对应50-100个PG。如果数据规模增大,在集群扩容的同时PG数量也需要调整。CRUSH会管理PG的重新分配。

每个pool应该分配多少个PG,与OSD的数量、复制份数、pool数量有关,有个计算公式在:

http://ceph.com/pgcalc/

《learning ceph》这本书里的计算公式也差不多:

Total PGs = ((Total_number_of_OSD * 100) / max_replication_count) / pool_count

结算的结果往上取靠近2的N次方的值。比如总共OSD数量是160,复制份数3,pool数量也是3,那么按上述公式计算出的结果是1777.7。取跟它接近的2的N次方是2048,那么每个pool分配的PG数量就是2048。

在更改pool的PG数量时,需同时更改PGP的数量。PGP是为了管理placement而存在的专门的PG,它和PG的数量应该保持一致。如果你增加pool的pg_num,就需要同时增加pgp_num,保持它们大小一致,这样集群才能正常rebalancing。下面介绍如何修改pg_num和pgp_num。

(1)检查rbd这个pool里已存在的PG和PGP数量:

$ ceph osd pool get rbd pg_num

pg_num: 128

$ ceph osd pool get rbd pgp_num

pgp_num: 128

(2)检查pool的复制size,执行如下命令:

$ ceph osd dump |grep size|grep rbd

pool 2 'rbd' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 45 flags hashpspool stripe_width 0

(3)使用上述公式,根据OSD数量、复制size、pool的数量,计算出新的PG数量,假设是256.

(4)变更rbd的pg_num和pgp_num为256:

$ ceph osd pool set rbd pg_num 256

$ ceph osd pool set rbd pgp_num 256

(5)如果有其他pool,同步调整它们的pg_num和pgp_num,以使负载更加均衡

相关文章

  • ceph 优化和注意事项

    调整 pg_num 和 pgp_num ceph -s 确保集群状态健康 pg_num 只能调大,不能调小 每次按...

  • ceph pgp_num 未能更新的问题

    由于ceph 17 ceph-adm的池和集群自动平衡有问题,导致pg_num 和 pgp_num未自动调整。所以...

  • 调整ceph的pg数(pg_num, pgp_num)

    调整ceph的pg数 PG全称是placement groups,它是ceph的逻辑存储单元。在数据存储到cesh...

  • non-power-of-two pg_num

    问题 当 pg_num 不是 2 的幂会进行告警 解决: 在 /etc/ceph/ceph.conf中添加mon_...

  • PG数量的预估

    PG数量的设置牵扯到数据分布的均匀性问题。 预设Ceph集群中的PG数至关重要,公式如下: (**结果必须舍入到最...

  • 分布式存储Ceph之PG状态详解

    1. PG介绍 继上次分享的《Ceph介绍及原理架构分享》,这次主要来分享Ceph中的PG各种状态详解,PG是最复...

  • Ceph出现pg状态不一致

    Ceph出现pg状态不一致 看看详情, pg 3.d4 状态不一致 恢复pg 过一会Ceph集群状态正常

  • k8s分布式存储-Ceph

    Ceph架构介绍 Ceph核心概念 RADOS Librados Crush Pool PG Object Poo...

  • ceph - pg 常见状态

    说明 pg ( placement group ) 是数据存储的重要单位在使用 ceph 的时候, pg 会经常发...

  • PGP与PG的关系

    PGP是PG的逻辑承载体,是CRUSH算法不可缺少的部分 在Ceph集群里,增加PG数量,PG到OSD的映射关系就...

网友评论

    本文标题:调整ceph的pg数(pg_num, pgp_num)

    本文链接:https://www.haomeiwen.com/subject/lwqcsxtx.html