我正在使用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
它应该帮助你。