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