Ceph s3铲斗空间未释放



我一直在用s3 测试Ceph

我的测试ENV是一个3节点,每个数据盘10GB,所以是30GB其设定为复制3次。所以我有"15290 MB"的可用空间。

我让S3存储桶工作,并一直在上传文件,并填满了存储空间,试图删除所述文件,但磁盘仍然显示为完整的

cluster 4ab8d087-1802-4c10-8c8c-23339cbeded8
health HEALTH_ERR
3 full osd(s)
full flag(s) set
monmap e1: 3 mons at {ceph-1=xxx.xxx.xxx.3:6789/0,ceph-2=xxx.xxx.xxx.4:6789/0,ceph-3=xxx.xxx.xxx.5:6789/0}
election epoch 30, quorum 0,1,2 ceph-1,ceph-2,ceph-3
osdmap e119: 3 osds: 3 up, 3 in
flags full,sortbitwise,require_jewel_osds
pgmap v2224: 164 pgs, 13 pools, 4860 MB data, 1483 objects
14715 MB used, 575 MB / 15290 MB avail
164 active+clean

我不知道如何取回磁盘空间?

有人能就我做错了什么或错过了提出建议吗

我从ceph开始,遇到了同样的问题。

  1. 尝试运行垃圾收集器

列出将删除的

radosgw-admin gc list --include-all

然后运行

radosgw-admin gc process
  1. 如果它不起作用(就像我的大部分数据一样)

找到包含数据的存储桶:

ceph df

通常您的S3数据进入默认池default.rgw.buckets.data

从每个对象中清除它/!\您将丢失所有数据/!\

rados purge default.rgw.buckets.data --yes-i-really-really-mean-it   

我不知道为什么ceph现在没有清除这些数据(仍在学习…)。

感谢Julien提供的信息

的第1步和第2步是正确的

当你运行时

radosgw管理员gc列表-包括所有

您可以看到类似的示例

[{"tag":"17925483-8ff6-4aaf-9db2-1eafeccd0454.94098.295\u0000","时间":"2017-10-27 13:51:58.0.493358s","对象":[{"pool":"default.gw.buckets.data","oid":"17925483-8ff6-4aaf-9db2-1eafeccd0454.24248.3__multipart_certs/boot2docker.iso.2~UQ4MH7uZgQyEd3nDZ9hFJr8TkvldwTp.1","键":","实例":"},{"pool":"default.gw.buckets.data","oid":"17925483-8ff6-4aaf-9db2-1eafeccd0454.24248.3__shadow_certs/boot2docker.iso.2~UQ4MH7uZgQyEd3nDZ9hFJr8TkvldwTp.1_1","键":","实例":"}。。。。

如果您注意到时间

2017-10-27 13:51:58.493358s

运行时

radosgw管理gc进程

它只会清除/删除比指定时间旧的零件

例如,我可以一遍又一遍地运行"radosgw-admin-gc进程",但文件直到"2017-10-27 13:51:58.0.493358s"之后才会被删除

但你也是正确的

rados清除默认值.rgw.buckets.data--是-所有-所有-

同样适用于

您可以使用列出GC(垃圾收集)要处理的所有桶

radosgw-admin gc list --include-all

然后您可以检查GC是否将在指定时间后运行。您可以手动运行:

radosgw-admin gc process --include-all

它将启动垃圾收集过程--包括所有";将处理所有条目,包括未过期的条目。

然后您可以使用检查清理进度

watch -c "ceph -s"

或者简单地用";ceph-s";所有应该删除的bucket都不见了。有关GC设置的文档,您可以在此处找到:

https://docs.ceph.com/en/quincy/radosgw/config-ref/#garbage-收集设置

最新更新