解决too many PGs per OSD的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/scaleqiao/article/details/50804425
当一个集群中创建的pg个数过多时(创建的pool过多或者pool指定的pg过多),Mon就会报出如下警告:
$ ceph -s
    cluster 27d39faa-48ae-4356-a8e3-19d5b81e179e
     <span style="color:#ff6666;">health HEALTH_WARN
            too many PGs per OSD (1296 > max 300)</span>
     monmap e2: 3 mons at {server-61.102.test.ustack.in=10.0.102.61:6789/0,server-62.102.test.ustack.in=10.0.102.62:6789/0,server-63.102.test.ustack.in=10.0.102.63:6789/0}
            election epoch 24, quorum 0,1,2 server-61.102.test.ustack.in,server-62.102.test.ustack.in,server-63.102.test.ustack.in
     osdmap e119: 6 osds: 6 up, 6 in
      pgmap v30251: 2592 pgs, 14 pools, 5068 MB data, 381 objects
            15503 MB used, 2757 GB / 2772 GB avail
                2592 active+clean
  client io 0 B/s rd, 5923 B/s wr, 1 op/s

这个可以不予理会,但对于有洁癖的码农来说,不是HEALTH_OK就会很不爽。解决这个问题可以通过添加更多的OSD、删除不用的pool或者调整Ceph的参数:
$ ceph tell 'mon.*' injectargs "--mon_pg_warn_max_per_osd 0"
使用tell命令修改的配置只是临时的,只要服务一重启,配置就会回到解放前,从ceph.conf 中读取配置。所以长久之计是把这个配置加到Ceph Mon节点的配置文件里,然后重启Mon服务。

展开阅读全文

没有更多推荐了,返回首页