zoukankan      html  css  js  c++  java
  • 调整ceph的pg数(pg_num, pgp_num)

    https://www.jianshu.com/p/ae96ee24ef6c

    调整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,以使负载更加均衡



    作者:think_lonely
    链接:https://www.jianshu.com/p/ae96ee24ef6c
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    解决mongodb设备mongod命令不是内部或外部的命令
    Zoj 3545 Rescue the Rabbit(ac自己主动机+dp)
    中国云计算网站的第六次会议
    MYSQL,innodb_buffer_pool_size内存分配
    SharePoint综合Excel数据与Excel Web Access Web部分
    在小发现SQL字符串比较是不是他们的大写和小写敏感
    代码质量初步
    软件开发:速度 vs 质量
    UI概念体系要素
    模式与方法论
  • 原文地址:https://www.cnblogs.com/wangmo/p/11760773.html
Copyright © 2011-2022 走看看