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

时间:2016-10-15 22:14:12

标签: 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基本上会锁定(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的新手,可能是错的。

我有一个mon和3个OSD。这仅用于测试。

1 个答案:

答案 0 :(得分:1)

你可以通过rados -p $ pool list检查对象是否真的被删除了, 我知道cephfs,当你删除一个文件时,它会在mds标记时返回ok 它在本地内存中删除,然后通过向相关的osd发送删除消息进行实际删除。 也许radosgw使用相同的设计来加速删除