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处理

上一篇:CentOS服务器下JavaEE环境搭建指南(远程桌面+JDK+Tomcat+MySQL)


下一篇:解决数据库未打开,仅允许在固定表/视图中查询的问题