zoukankan      html  css  js  c++  java
  • ceph中查看一个rbd的image的真实存储位置

    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.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上的方法一样,不再说了。

  • 相关阅读:
    MS面试归来:)
    准备出发到成都
    线程的同步机制(zz)
    Windows Vista(zz)
    这几天上海热晕了
    微软官方:Vista硬件要求指南(zz)
    有趣的递归缩写(Recursive acronym)
    《三国志》生僻人名读法集(zz)
    Git bash常用命令
    各大输入法分类词库内部格式的简单比较
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/6709238.html
Copyright © 2011-2022 走看看