ceph满盘导致业务停止后的终极补救措施
现象:磁盘满,osd异常
此时ceph集群停止业务,且不能执行 rbd rm glance/***** 命令删除任何文件。
解决办法:
方法一:调高ceph的满盘比例,比如原值0.95为满盘,现在修改为0.98修改所有ceph节点 /etc/ceph/ceph.conf
添加
mon osd full ratio = 0.98
mon osd nearfull ratio = 0.80
然后重启所有ceph节点即可
/etc/init.d/ceph -a restart
如果方法一无法解决,则使用方法二。
方法二:通过到磁盘上直接删除文件腾出空间,删除的文件属于镜像文件,所以不影响用户的业务:
操作步骤:
1:获取nova池中所有文件:
2:遍历nova池中所有文件:
非常重要:只有所有nova 文件的 parent里面都没有出现过的glance 镜像才可以删除
3:遍历完毕,假如下图红框中的3个镜像文件没有在所有nova的parent中出现过,则可以删除
3:以删除07d588c5-8a5d-450a-8baa-65f0ce563df3为例 rbd info glance/07d588c5-8a5d-450a-8baa-65f0ce563df3 获取prefix
4:
直接登录磁盘满所在机器,假设为osd.0
5:
- 登录osd.0所在磁盘目录cd /var/lib/ceph/osd/ceph-0
- 登录pg所在目录cd current
- 然后查找该镜像文件所在的目录,并替换“\”,输出到文件new.txt中: find . -type f -name *12d85b57e857* > ./a.txt
sed 's/\\/\\\\/g' a.txt > new.txt
- 删除new.txt中的所有文件 while read line;do rm ${line};done < new.txt