线上环境ceph对象存储的bucket有大概180多万个对象,都是小文件,总体bucket不算太大,100G左右。经过测试,用rclone挂载以后打开挂载的目录会使集群的IO或者iops太高,害怕集群不稳定,所以换个方法删除,尽量在不影响线上集群使用的情况下删除这些对象。由于小文件数量太多,目录结构也太多,我看了大概有十几级目录,用s3cmd ls bucket的时候也出现超时,稍后重试的现象。但是把rgw的日志级别调整到20/20以后,出现下列日志:cls_bucket_list_ordered 把所有的对象列出来,这是测试环境的日志。生产环境中由于s3cmd ls bucket的时候退出,会产生一部分这样的日志,每次大概10几万吧,所以就用命令过滤删除。
前期删除的具体步骤如下:
一.获取bucket的日志:
1.调高日志级别
ceph daemon /run/ceph/ceph-client.rgw.xxx.asok config set debug_rgw 20/20
2.在对象存储服务执行以下命令:
s3cmd ls s3://bucket/lalala/
3.观察内存和cpu以及集群状态
4.观察监控图,如果剩余的CPU和内存空间下降厉害,随时停止ls bucket的命令,如果没有明显回升,立刻停止对象存储
systemctl stop ceph-radosgw.target
systemctl start ceph-rados