Ceph s3存储空间无法释放

时间:2017-10-20 09:57:01

标签: amazon-s3 storage ceph

我一直用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

我不知道如何恢复磁盘空间?

任何人都可以建议我做错了什么或错过了

2 个答案:

答案 0 :(得分:1)

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

  1. 尝试运行垃圾收集器
  2. 列出将要删除的内容

    radosgw-admin gc list --include-all
    

    然后运行它

    radosgw-admin gc process
    
    1. 如果它不起作用(就像我的大部分数据一样)
    2. 找到包含您数据的存储桶:

      ceph df
      

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

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

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

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

答案 1 :(得分:0)

感谢Julien关于此信息

你正确的步骤1和2

当你跑

  

radosgw-admin gc list --include-all

你看到像

这样的例子
  

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

如果你注意到时间

  

2017-10-27 13:51:58.0.493358s

运行时

  

radosgw-admin gc process

它只会清除/删除比时间更早的部分

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

但你也是对的

  

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

也适用