ceph中查看一个rbd的image的真实存储位置
生活随笔
收集整理的這篇文章主要介紹了
ceph中查看一个rbd的image的真实存储位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、新建一個image存儲
rbd create hzb-mysql --size 20482、查看hzb-mysql的所有對象
一個rbd image實際上包含了多個對象(默認情況下是image_size/4M)
[root@cc ~]# rbd info hzb-mysql rbd image 'hzb-mysql':size 2048 MB in 512 objectsorder 22 (4096 kB objects)block_name_prefix: rb.0.11895f.6b8b4567format: 1 [root@cc ~]#查看真實使用空間:
rbd diff hzb-mysql | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'上面的紅色加粗部分就是該image的指紋,如果image是以?--image-format 2創建的,則上面的紅色部分顯示為:?rbd_data.1979a96b8b4567這樣的形式。下面利用該指紋可以查出該image的所有對象:
[root@cc ~]# rados -p rbd ls | grep rb.0.11895f.6b8b4567 rb.0.11895f.6b8b4567.000000000006 rb.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 rbd rb.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:49 rb.0.11895f.6b8b4567.000000000006__head_E1382280__2下面的藍色加粗的這個文件就是rb.0.11895f.6b8b4567.000000000006這個object的真實位置,同理,我們可以找出第2步當中的所有object的真實位置。
osd0上的跟osd3上的方法一樣,不再說了。
轉載于:https://www.cnblogs.com/boshen-hzb/p/6709238.html
總結
以上是生活随笔為你收集整理的ceph中查看一个rbd的image的真实存储位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7重装系统后设置Python2.7
- 下一篇: 爱,除了看怎么说,还要看怎么做 !