Ceph根据rados对象名称确定PG

Ceph根据rados对象名称确定PG

在 Ceph 中,该命令rados --pgid <pgid> ls允许您列出存储在特定放置组中的所有 rados 对象。我的问题是:是否有执行相反操作的命令?那么,给定特定的 rados 对象名称,是否可以确定该对象存储在哪个放置组中?我在rados 手册页

有多种来源表明该公式是pgid = hash(object_name)%pg_num,所以如果它是准确的,我想我正在寻找一个可以进行该计算的命令行工具。

我知道我可以列出所有 pg 的内容直到找到我需要的对象,但这样做效率很低,如果可能的话我想避免这样做。

答案1

这似乎得到了您正在寻找的信息:

host1:~ # ceph osd map <pool> <object>

例如:

host1:~ # ceph osd map cephfs_data 1000000058e.00000002 
osdmap e1683 pool 'cephfs_data' (35) object '1000000058e.00000002' -> pg 35.5c9f6800 (35.0) -> up ([14,15,1], p14) acting ([14,15,1], p14)

相关内容