Adding community for further help on this. On Tue, Feb 23, 2016 at 10:57 PM, Vickey Singh <vickey.singh22...@gmail.com> wrote:
> > > On Tue, Feb 23, 2016 at 9:53 PM, Gregory Farnum <gfar...@redhat.com> > wrote: > >> >> >> On Tuesday, February 23, 2016, Vickey Singh <vickey.singh22...@gmail.com> >> wrote: >> >>> Thanks Greg, >>> >>> Do you mean ceph osd map command is not displaying accurate information ? >>> >>> I guess, either of these things are happening with my cluster >>> - ceph osd map is not printing true information >>> - Object to PG mapping is not correct ( one object is mapped to multiple >>> PG's ) >>> >>> This is happening for several objects , but the cluster is Healthy. >>> >> >> No, you're looking for the map command to do something it was not >> designed for. If you want to see if an object exists, you will need to use >> a RADOS client to fetch the object and see if it's there. "map" is a >> mapping command: given an object name, which PG/OSD does CRUSH map that >> name to? >> > > well your 6th sense is amazing :) > > This is exactly i want to achieve , i wan to see my PG/OSD mapping for > objects. ( basically i have changed my crush hierarchy , now i want to > verify that no 2 objects should go to a single host / chassis / rack ) so > to verify them i was using ceph osd map command. > > Is there a smarter way to achieve this ? > > > > > >> >> >>> >>> Need expert suggestion. >>> >>> >>> On Tue, Feb 23, 2016 at 7:20 PM, Gregory Farnum <gfar...@redhat.com> >>> wrote: >>> >>>> This is not a bug. The map command just says which PG/OSD an object >>>> maps to; it does not go out and query the osd to see if there actually is >>>> such an object. >>>> -Greg >>>> >>>> >>>> On Tuesday, February 23, 2016, Vickey Singh < >>>> vickey.singh22...@gmail.com> wrote: >>>> >>>>> Hello Guys >>>>> >>>>> I am getting wired output from osd map. The object does not exists on >>>>> pool but osd map still shows its PG and OSD on which its stored. >>>>> >>>>> So i have rbd device coming from pool 'gold' , this image has an >>>>> object 'rb.0.10f61.238e1f29.000000002ac5' >>>>> >>>>> The below commands verifies this >>>>> >>>>> *[root@ceph-node1 ~]# rados -p gold ls | grep -i >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> *rb.0.10f61.238e1f29.000000002ac5* >>>>> *[root@ceph-node1 ~]#* >>>>> >>>>> This object lives on pool gold and OSD 38,0,20 , which is correct >>>>> >>>>> *[root@ceph-node1 ~]# ceph osd map gold >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> *osdmap e1357 pool 'gold' (1) object >>>>> 'rb.0.10f61.238e1f29.000000002ac5' -> pg 1.11692600 (1.0) -> up >>>>> ([38,0,20], >>>>> p38) acting ([38,0,20], p38)* >>>>> *[root@ceph-node1 ~]#* >>>>> >>>>> >>>>> Since i don't have object 'rb.0.10f61.238e1f29.000000002ac5' in data >>>>> and rbd pools , rados ls will not list it. Which is expected. >>>>> >>>>> *[root@ceph-node1 ~]# rados -p data ls | grep -i >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> *[root@ceph-node1 ~]# rados -p rbd ls | grep -i >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> >>>>> >>>>> But , how come the object is showing in osd map of pool data and rbd. >>>>> >>>>> *[root@ceph-node1 ~]# ceph osd map data >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> *osdmap e1357 pool 'data' (2) object >>>>> 'rb.0.10f61.238e1f29.000000002ac5' -> pg 2.11692600 (2.0) -> up >>>>> ([3,51,29], >>>>> p3) acting ([3,51,29], p3)* >>>>> *[root@ceph-node1 ~]#* >>>>> >>>>> *[root@ceph-node1 ~]# ceph osd map rbd >>>>> rb.0.10f61.238e1f29.000000002ac5* >>>>> *osdmap e1357 pool 'rbd' (0) object 'rb.0.10f61.238e1f29.000000002ac5' >>>>> -> pg 0.11692600 (0.0) -> up ([41,20,3], p41) acting ([41,20,3], p41)* >>>>> *[root@ceph-node1 ~]#* >>>>> >>>>> >>>>> In ceph, object is unique and belongs to only one pool. So why does it >>>>> shows up in all pool's osd map. >>>>> >>>>> Is this some kind of BUG in Ceph >>>>> >>>>> Ceph Hammer 0.94.5 >>>>> CentOS 7.2 >>>>> >>>> >>> >
_______________________________________________ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com