ceph中查看一个rbd的image的真实存储位置
2017-04-14 15:48
316 查看
1、新建一个image存储
2、查看hzb-mysql的所有对象
一个rbd image实际上包含了多个对象(默认情况下是image_size/4M)
查看真实使用空间:
上面的红色加粗部分就是该image的指纹,如果image是以 --image-format 2创建的,则上面的红色部分显示为: rbd_data.1979a96b8b4567这样的形式。下面利用该指纹可以查出该image的所有对象:
从上面的查询结果中可以看出,一个image对象是由上面的object组成的,他们每一个的存储位置可能都不一样。我们以第一行的紫色object来查询它的真实存储位置。
3、查看object所在的PG和OSD
这代表在pool rbd中的 rb.0.11895f.6b8b4567.000000000006 这个对象位于2.0这个pg中,并且位于osd3和osd0上(两个副本)。
4、进入机器osd3上,进入下面目录
下面的蓝色加粗的这个文件就是rb.0.11895f.6b8b4567.000000000006这个object的真实位置,同理,我们可以找出第2步当中的所有object的真实位置。
osd0上的跟osd3上的方法一样,不再说了。
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.6b8b4567 format: 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上的方法一样,不再说了。
相关文章推荐
- ceph中如何查找一个对象或者rbd image 的实际存储位置
- 查看ceph rbd的真实占用空间
- ceph 查看osd 物理存储位置
- Sql Server 查看所有存储过程或视图的位置及内容
- 查看某一个shell脚本在什么位置 显示当前操作系统的名称
- Sql Server 查看所有存储过程或视图的位置及内容
- VC和ultraedit代码查看时,去到后一个代码位置和返回前个代码位置的键名
- 给SQL补充一个查看表结构的存储过程
- (转)获取android手机内部存储空间和外部存储空间的参数 && 如何决定一个apk的安装位置
- Lync Server 查看和删除已经发布的中央管理存储位置
- openstack 组件volume,image后端存储使用ceph
- 怎么样查看一个数据库存放在哪个位置
- 一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed
- Sql Server 查看所有存储过程或视图的位置及内容
- Lync Server 查看和删除已经发布的中央管理存储位置
- Sql Server 查看所有存储过程或视图的位置及内容
- 发布一个存储过程定义查看的小工具
- 同一位置(同一个ImageView)显示不同的图片--level-list (转)
- 多设置一个存储位置
- 在数组中寻找某个特定整型值的存储位置,并还回一个指向该位置的指针