ceph中檢視乙個rbd的image的真實儲存位置

2021-09-07 10:33:05 字數 3525 閱讀 5501

1、新建乙個image儲存

rbd create hzb-mysql --size 2048

2、檢視hzb-mysql的所有物件

乙個rbd image實際上包含了多個物件(預設情況下是image_size/4m)

[root@cc ~]# rbd info hzb-mysql

rbd image 'hzb-mysql':

size 2048 mb in 512 objects

order 22 (4096 kb objects)

block_name_prefix:rb.0.11895f.6b8b4567format: 1

[root@cc ~]#

檢視真實使用空間:

rbd diffhzb-mysql| awk '

end

'

上面的紅色加粗部分就是該image的指紋,如果image是以 --image-format 2建立的,則上面的紅色部分顯示為: rbd_data.1979a96b8b4567這樣的形式。下面利用該指紋可以查出該image的所有物件:

[root@cc ~]# rados -p rbd ls | grep rb.0.11895f.6b8b4567rb.0.11895f.6b8b4567.000000000006rb.0.11895f.6b8b4567.000000000003

rb.0.11895f.6b8b4567.000000000012

rb.0.11895f.6b8b4567.00000000013b

rb.0.11895f.6b8b4567.000000000001

rb.0.11895f.6b8b4567.00000000003f

rb.0.11895f.6b8b4567.000000000002

rb.0.11895f.6b8b4567.0000000001f8

rb.0.11895f.6b8b4567.000000000017

rb.0.11895f.6b8b4567.00000000001a

rb.0.11895f.6b8b4567.000000000008

rb.0.11895f.6b8b4567.0000000000bd

rb.0.11895f.6b8b4567.000000000010

rb.0.11895f.6b8b4567.00000000000c

rb.0.11895f.6b8b4567.000000000016

rb.0.11895f.6b8b4567.000000000040

rb.0.11895f.6b8b4567.0000000001b9

rb.0.11895f.6b8b4567.000000000019

rb.0.11895f.6b8b4567.000000000000

rb.0.11895f.6b8b4567.000000000007

rb.0.11895f.6b8b4567.00000000000e

rb.0.11895f.6b8b4567.000000000011

rb.0.11895f.6b8b4567.00000000000a

rb.0.11895f.6b8b4567.0000000001ff

rb.0.11895f.6b8b4567.000000000018

rb.0.11895f.6b8b4567.000000000009

rb.0.11895f.6b8b4567.0000000000fc

rb.0.11895f.6b8b4567.000000000004

rb.0.11895f.6b8b4567.00000000007e

rb.0.11895f.6b8b4567.000000000014

rb.0.11895f.6b8b4567.00000000000d

rb.0.11895f.6b8b4567.00000000000b

rb.0.11895f.6b8b4567.00000000001e

rb.0.11895f.6b8b4567.0000000000fe

rb.0.11895f.6b8b4567.00000000017a

rb.0.11895f.6b8b4567.00000000000f

rb.0.11895f.6b8b4567.0000000000fd

rb.0.11895f.6b8b4567.00000000001c

rb.0.11895f.6b8b4567.00000000001d

rb.0.11895f.6b8b4567.00000000001f

rb.0.11895f.6b8b4567.000000000005

rb.0.11895f.6b8b4567.000000000015

rb.0.11895f.6b8b4567.00000000001b

從上面的查詢結果中可以看出,乙個image物件是由上面的object組成的,他們每乙個的儲存位置可能都不一樣。我們以第一行的紫色object來查詢它的真實儲存位置。

3、檢視object所在的pg和osd

[root@cc ~]# ceph osd map rbdrb.0.11895f.6b8b4567.000000000006

osdmap e65 pool 'rbd' (2) object 'rb.0.11895f.6b8b4567.000000000006' -> pg 2.e1382280 (2.0) -> up ([3,0], p3) acting ([3,0], p3)

[root@cc ~]#

這代表在pool rbd中的rb.0.11895f.6b8b4567.000000000006這個物件位於2.0這個pg中,並且位於osd3和osd0上(兩個副本)。

4、進入機器osd3上,進入下面目錄

[root@nc3 2.0_head]# cd /var/lib/ceph/osd/ceph-3/current/2.0_head

[root@nc3 2.0_head]# ll

total 8196

-rw-r--r-- 1 root root 0 mar 28 18:52 __head_00000000__2

-rw-r--r-- 1 root root 4194304 apr 14 14:49 rb.0.11895f.6b8b4567.000000000003__head_7494ae80__2

-rw-r--r-- 1 root root 4194304 apr 14 14:49rb.0.11895f.6b8b4567.000000000006__head_e1382280__2

下面的藍色加粗的這個檔案就是rb.0.11895f.6b8b4567.000000000006這個object的真實位置,同理,我們可以找出第2步當中的所有object的真實位置。

osd0上的跟osd3上的方法一樣,不再說了。

RBD 匯出乙個image

rbd 匯出乙個image。do export librbd image image,const char path image.stat info,sizeof info open path,o wronly o creat o excl,0644 new aioexportcontext thr...

Ceph 如何檢視rbd對映的裝置被哪個客戶端使用

一 場景說明 ceph的運維過程中,管理員有時候會遇到ceph的rbd裝置,通過對映的方式給客戶端進行使用,但是過段時間後,在服務端,你想知道到底某個pool的img被哪個客戶端占用著。另外一種情況,比如想刪除某個image,但那個image可能被客戶端占用,如果該客戶端出現了異常那麼就會出現無法刪...

Ceph 如何檢視rbd對映的裝置被哪個客戶端使用

一 場景說明 ceph的運維過程中,管理員有時候會遇到ceph的rbd裝置,通過對映的方式給客戶端進行使用,但是過段時間後,在服務端,你想知道到底某個pool的img被哪個客戶端占用著。另外一種情況,比如想刪除某個image,但那個image可能被客戶端占用,如果該客戶端出現了異常那麼就會出現無法刪...