I don't think we expose this as an API as such.  If you wanted to do
it from within the ceph source you'd use OSDMap::object_locator_to_pg
and OSDMap::pg_to_acting_osds (see how Client::get_file_extent_osds
does it).

We do expose a special case of this in the libcephfs API
(ceph_get_file_extent_osds), where one can query the OSDs for a file
extent (but not arbitrary object names).  I guess that is kind of a
precedent for adding it to librados, although it does kind of break
the abstraction a bit.

John

On Tue, Dec 2, 2014 at 5:54 AM, 申凌轩 <[email protected]> wrote:
> Hi everyone,
> In my application I need to know which osd contain the object.
> And I know how to get that information through shell command: ceph osd map
> [objectname] -p [poolname]
> But I CAN'T find the exactly API (C, C ++) to do this job.
> Does anyone have an idea ?
>
> Many THX
>
>
>
> _______________________________________________
> ceph-users mailing list
> [email protected]
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to