Ceph levedb数据库too big处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ceph levedb数据库too big处理相关的知识,希望对你有一定的参考价值。

问题现象:
Ceph集群(filestore版本)使用一段时间,有时候会产生告警如下:

    cluster 79d9b290-3261-4607-9a16-858e78d776b5
     health HEALTH_WARN
            mon.node-1 store is getting too big! 15360 MB >= 15360 MB

主要原因:
1.一方面集群使用时间过久,mon有大量的数据更新,导致mon的数据库leveldb超过15G大小。
2.另一方面leveldb的数据存储机制本身结构化问题,当mon有大量的更新时,数据库文件确认处理的效率不高导致。
解决途径:
node节点的leveldb数据库过大,超过默认的15G大小所致。可以采用数据库压缩的方法进行压缩,并同时修改该数据大小为20G(根据以往的经验,压缩只能暂时的解决告警,为了长远考虑,调整数据库总的可用空间大小)。
操作步骤
以node-1节点数据库too big为例:

  1. 切换mon节点(node-1),执行ceph –s 查看当前告警如下:
    mon.node-1 store is getting too big!
  2. 查看当前集群的容量大小,进行记录。
    du -sh /var/lib/ceph/mon/ceph-node-1/
  3. 执行数据库压缩命令操作,该步骤会会费一段时间,等待执行完毕即可。
    ceph tell mon.node-1 compact
  4. 再次执行步骤2,查看mon下的数据量大小,进行记录。
  5. 执行以下调整命令(确保node-1节点容量足够)。
    ceph tell mon.node-1 injectargs "--mon-data-size-warn 21474836480"
  6. 查看配置生效,切换node-1节点,执行:
    ceph daemon ???/var/run/ceph/ceph-mon.node-1.asok config show | grep mon_data_size_warn
  7. 添加node-1配置文件/etc/ceph/ceph.conf,保证即使node-1 mon重启依然生效。在global下边添加:
    mon_data_size_warn = 21474836480
  8. 重新执行ceph –s 进行检查,告警消失,变更完成。

以上是关于Ceph levedb数据库too big处理的主要内容,如果未能解决你的问题,请参考以下文章

ratchetphp/Pawl 连接关闭 (1009 - ) FRAME::CLOSE_TOO_BIG = 1009

Ceph: too many PGs per OSD

ceph故障:too many PGs per OSD

levedb编译和使用

大数据集,使用 unstack() 时收到“Unstacked DataFrame is too big,导致 int32 溢出”

CEPH -S集群报错TOO MANY PGS PER OSD