我正在使用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。这仅用于测试。
答案 0 :(得分:1)
你可以通过rados -p $ pool list检查对象是否真的被删除了, 我知道cephfs,当你删除一个文件时,它会在mds标记时返回ok 它在本地内存中删除,然后通过向相关的osd发送删除消息进行实际删除。 也许radosgw使用相同的设计来加速删除