ceph满盘导致业务停止后的终极补救措施

发布时间 2023-04-25 10:07:43作者: XU-NING

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:

  1. 登录osd.0所在磁盘目录cd /var/lib/ceph/osd/ceph-0
  2. 登录pg所在目录cd current
  3. 然后查找该镜像文件所在的目录,并替换“\”,输出到文件new.txt中: find . -type f -name *12d85b57e857* > ./a.txt

sed 's/\\/\\\\/g' a.txt > new.txt

  1. 删除new.txt中的所有文件 while read line;do rm ${line};done < new.txt