在Ceph中删除文件不会释放空间

我正在使用Ceph,通过radosgw上传许多文件。 之后,我想删除这些文件。 我正在尝试在Python中这样做:

bucket = conn.get_bucket(BUCKET) for key in bucket.list(): bucket.delete_key(key) 

之后,我使用bucket.list()列出存储桶中的文件,这表示存储桶现在是空的,就像我打算的那样。

但是,当我在星期一运行ceph df时,它显示OSD仍然具有很高的利用率(例如%RAW USED 90.91 )。 如果我继续写(认为状态数据还没有赶上状态),Ceph基本上locking了(100%利用率)。

这是怎么回事?

注:我确实有这些突出的ceph status

  health HEALTH_WARN 3 near full osd(s) too many PGs per OSD (2168 > max 300) pool default.rgw.buckets.data has many more objects per pg than average (too few pgs?) 

从我在网上收集的信息来看,这不会引起我的特殊问题。 但我对Ceph是新手,可能是错的。

我有一个星期一和三个OSD。 这只是为了testing。

更新:空间似乎被收回,非常缓慢。 一小时左右后,利用率下降到63%。

您可以使用Ceph pg计算工具 。 它会帮助你计算你的集群的正确数量的pgs。 我的意见是,这正是导致你的问题。 你可以看到你总共只有256个pg。 只需重新创build游泳池( !小心:这个游戏可以把你所有的数据都存储在这个游泳池里! ):

 ceph osd pool delete {your-pool-name} {your-pool-name} --yes-i-really-really-mean-it ceph osd pool create {your-pool-name} 256 256 

它应该帮助你。