我一直用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
我不知道如何恢复磁盘空间?
任何人都可以建议我做错了什么或错过了
答案 0 :(得分:1)
我从ceph开始并遇到同样的问题。
列出将要删除的内容
radosgw-admin gc list --include-all
然后运行它
radosgw-admin gc process
找到包含您数据的存储桶:
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
也适用