1、首先查看一个pool中的image的指纹信息,目的是该image的所有的object文件都是以这个指纹命名的。比如我这里创建了一个pool zhangyipool,该pool下有一个image zhangyi image : $rados -p zhangyipool ls rbd_directory rbd_header.8c316b8b4567 rbd_id.zhangyiimage 这里8c316b8b4567就是这个image的指纹。所有这个image相关的object 4M对象都会以这个指纹命名来当文件存放在filestore后端文件系统上,比如XFS文件系统上。
2、查看这个pool下该image所有对象信息 $rados -p zhangyipool ls |grep 8c316b8b4567 rbd_data.8c316b8b4567.00000000000000a0 rbd_data.8c316b8b4567.0000000000000000 rbd_data.8c316b8b4567.0000000000000431 rbd_data.8c316b8b4567.000000000000042c rbd_data.8c316b8b4567.0000000000000424 rbd_data.8c316b8b4567.0000000000000433 rbd_data.8c316b8b4567.0000000000000430 如这里都是以指纹8c316b8b4567对应的4M文件。
3、比如我们这里以rbd_data.8c316b8b4567.0000000000000430这个4M对象文件为例来查找这个文件的位置。首先找到这个文件对应的pg和OSD集合。 $ceph osd map zhangyipool rbd_data.8c316b8b4567.0000000000000430 osdmap e181 pool ‘zhangyipool’ (2) object ‘rbd_data.8c316b8b4567.0000000000000430’ -> pg 2.13fe02d6 (2.2d6) -> up ([180,118,212], p180) acting ([180,118,212], p180) 从而指导这个对象对应的pg是2.2d6,osd集合是[180,118,212],其中osd.180是主OSD。
3、在查看这个主OSD在那台OSD节点上,比如查看180主OSD在那台节点上。此时需要执行ceph osd tree查看整个map,从而得到该OSD归属那个节点 $ceph osd tree
172 1.62379 osd.172 up 1.00000 1.00000 180 1.62379 osd.180 up 1.00000 1.00000 189 1.62379 osd.189 up 1.00000 1.00000 201 1.62379 osd.201 up 1.00000 1.00000 4、从而得到OSD.180是在主机名:host zhangyi01上,因此这里需要登录着台机器.ssh zhangyi01.然后查看OSD目录: $sudo ls -l /var/lib/ceph/osd total 0 drwxr-xr-x 3 ceph ceph 228 May 3 15:47 ceph-165 drwxr-xr-x 3 ceph ceph 228 May 3 15:47 ceph-172 drwxr-xr-x 3 ceph ceph 228 May 3 15:47 ceph-180 drwxr-xr-x 3 ceph ceph 228 May 3 15:47 ceph-189 drwxr-xr-x 3 ceph ceph 228 May 3 15:47 ceph-201
5、发现ceph-180目录。该目录下存放和这个OSD所对应的pg,因此也存放这个这些pg对应的image的对象文件。在current目录下查看上面pg id对应的文件: $sudo ls -l /var/lib/ceph/osd/ceph-180/current |grep 2.2d6 drwxr-xr-x 2 ceph ceph 95 May 3 23:34 2.2d6_head drwxr-xr-x 2 ceph ceph 6 May 3 23:01 2.2d6_TEMP
6、在/var/lib/ceph/osd/ceph-180/current/2.2d6_head目录下存放着文件rbd\udata.8c316b8b4567.0000000000000430__head_13FE02D6__2即是4M的object对象rbd_data.8c316b8b4567.0000000000000430的文件 $sudo ls -lh /var/lib/ceph/osd/ceph-180/current/2.2d6_head total 4.0M -rw-r–r– 1 ceph ceph 0 May 3 23:01 __head_000002D6__2 -rw-r–r– 1 ceph ceph 4.0M May 3 23:34 rbd\udata.8c316b8b4567.0000000000000430__head_13FE02D6__2