1、新建乙個image儲存
rbd create hzb-mysql --size 2048
2、檢視hzb-mysql的所有物件
乙個rbd image實際上包含了多個物件(預設情況下是image_size/4m)
[root@cc ~]# rbd info hzb-mysqlrbd 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.000000000003rb.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.000000000006osdmap 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可能被客戶端占用,如果該客戶端出現了異常那麼就會出現無法刪...