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

  • 相关阅读:
    表操作之数据类型——日期类型
    cocos2dx tableView 的使用
    lua中的循环
    lua中 后端发过来的 按位表示值,在前端中需要处理的函数
    lua 打印表方法
    近况
    lua开发
    4)数据结构和算法学习_链表
    3)数据结构和算法学习_链表
    使用VsCode断点调试TS
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/6709238.html
Copyright © 2011-2022 走看看