问题现象
Ceph集群状态变为HEALTH_WARN, ceph health detail
输出 mon low disk space; store is getting too big
原因分析
主要是因为mon rocksdb的SSTS file占用了很多空间。SST是Sorted String Table的缩写,主要用于索引和存储key/value键值对。
处理过程
1、找到mon对应的ID
使用 ceph mon dump
命令可以查看到mon的ID信息,如下输出信息中,node1对应的ID是0
$ ceph mon dump
dumped monmap epoch 4
epoch 4
fsid 9a0ef35c-691a-4c3c-b242-c5a57e43e08a
last_changed 2018-07-20 12:01:29.580779
created 2018-07-20 11:57:44.542507
0: 192.168.1.10:6789/0 mon.node1
1: 192.168.1.11:6789/0 mon.node2
2: 192.168.1.12:6789/0 mon.node3
2、执行压缩
通过ceph tell mon.{id} compact
进行压缩,如对node1进行压缩,可以执行:
$ ceph tell mon.0 compact
compact之后,会有一个mons自动重新启动,所以操作只能一个一个来,确定集群状态正常后再执行下一个
3、修改配置文件,并重启mon进程
确认在ceph.conf的global中是否有配置如下内容:
mon_compact_on_start = true
4、重启mon进程
结果验证
通过ceph -s
或ceph health detail
确认集群状态为HEALTH_OK