1. 程式人生 > >怎麼檢視ceph image的物件存放在叢集中那個目錄下?

怎麼檢視ceph image的物件存放在叢集中那個目錄下?

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