1、新建一个image存储

  1. rbd create hzb-mysql --size 2048

2、查看hzb-mysql的所有对象

一个rbd image实际上包含了多个对象(默认情况下是image_size/4M)

  1. [root@cc ~]# rbd info hzb-mysql
  2. rbd image 'hzb-mysql':
  3. size 2048 MB in 512 objects
  4. order 22 (4096 kB objects)
  5. block_name_prefix: rb.0.11895f.6b8b4567
  6. format: 1
  7. [root@cc ~]#

查看真实使用空间:

  1. rbd diff hzb-mysql | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'

上面的红色加粗部分就是该image的指纹,如果image是以 --image-format 2创建的,则上面的红色部分显示为: rbd_data.1979a96b8b4567这样的形式。下面利用该指纹可以查出该image的所有对象:

  1. [root@cc ~]# rados -p rbd ls | grep rb.0.11895f.6b8b4567
  2. rb.0.11895f.6b8b4567.000000000006
  3. rb.0.11895f.6b8b4567.000000000003
  4. rb.0.11895f.6b8b4567.000000000012
  5. rb.0.11895f.6b8b4567.00000000013b
  6. rb.0.11895f.6b8b4567.000000000001
  7. rb.0.11895f.6b8b4567.00000000003f
  8. rb.0.11895f.6b8b4567.000000000002
  9. rb.0.11895f.6b8b4567.0000000001f8
  10. rb.0.11895f.6b8b4567.000000000017
  11. rb.0.11895f.6b8b4567.00000000001a
  12. rb.0.11895f.6b8b4567.000000000008
  13. rb.0.11895f.6b8b4567.0000000000bd
  14. rb.0.11895f.6b8b4567.000000000010
  15. rb.0.11895f.6b8b4567.00000000000c
  16. rb.0.11895f.6b8b4567.000000000016
  17. rb.0.11895f.6b8b4567.000000000040
  18. rb.0.11895f.6b8b4567.0000000001b9
  19. rb.0.11895f.6b8b4567.000000000019
  20. rb.0.11895f.6b8b4567.000000000000
  21. rb.0.11895f.6b8b4567.000000000007
  22. rb.0.11895f.6b8b4567.00000000000e
  23. rb.0.11895f.6b8b4567.000000000011
  24. rb.0.11895f.6b8b4567.00000000000a
  25. rb.0.11895f.6b8b4567.0000000001ff
  26. rb.0.11895f.6b8b4567.000000000018
  27. rb.0.11895f.6b8b4567.000000000009
  28. rb.0.11895f.6b8b4567.0000000000fc
  29. rb.0.11895f.6b8b4567.000000000004
  30. rb.0.11895f.6b8b4567.00000000007e
  31. rb.0.11895f.6b8b4567.000000000014
  32. rb.0.11895f.6b8b4567.00000000000d
  33. rb.0.11895f.6b8b4567.00000000000b
  34. rb.0.11895f.6b8b4567.00000000001e
  35. rb.0.11895f.6b8b4567.0000000000fe
  36. rb.0.11895f.6b8b4567.00000000017a
  37. rb.0.11895f.6b8b4567.00000000000f
  38. rb.0.11895f.6b8b4567.0000000000fd
  39. rb.0.11895f.6b8b4567.00000000001c
  40. rb.0.11895f.6b8b4567.00000000001d
  41. rb.0.11895f.6b8b4567.00000000001f
  42. rb.0.11895f.6b8b4567.000000000005
  43. rb.0.11895f.6b8b4567.000000000015
  44. rb.0.11895f.6b8b4567.00000000001b

从上面的查询结果中可以看出,一个image对象是由上面的object组成的,他们每一个的存储位置可能都不一样。我们以第一行的紫色object来查询它的真实存储位置。

3、查看object所在的PG和OSD

  1. [root@cc ~]# ceph osd map rbd rb.0.11895f.6b8b4567.000000000006
  2. osdmap e65 pool 'rbd' (2) object 'rb.0.11895f.6b8b4567.000000000006' -> pg 2.e1382280 (2.0) -> up ([3,0], p3) acting ([3,0], p3)
  3. [root@cc ~]#

这代表在pool rbd中的 rb.0.11895f.6b8b4567.000000000006 这个对象位于2.0这个pg中,并且位于osd3和osd0上(两个副本)。

4、进入机器osd3上,进入下面目录

  1. [root@nc3 2.0_head]# cd /var/lib/ceph/osd/ceph-3/current/2.0_head
  2. [root@nc3 2.0_head]# ll
  3. total 8196
  4. -rw-r--r-- 1 root root 0 Mar 28 18:52 __head_00000000__2
  5. -rw-r--r-- 1 root root 4194304 Apr 14 14:49 rb.0.11895f.6b8b4567.000000000003__head_7494AE80__2
  6. -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的真实存储位置的更多相关文章

  1. .NET中查看一个强命名程序集(*****.dll)的PublicKeyToken的方法

    使用命令行工具SDK Command Prompt,键入:SN -T C:\*****.dll  (dll文件所在的路径) 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有 ...

  2. C0302 将一个代码块中的内容保存在文件中, 查看一个rpm包是否可以安装

    #!/bin/bash # 这个脚本是用来描述和确认是否可以安装一个rpm包 # 在一个文件中保存输出 SUCCESS=0 E_NOARGS=65 if [ -z "$1" ] t ...

  3. Idea中查看一个类的所有资料及其层级关系

    在Idea中直接Ctrl + t 查看类的子类是可以看到,但是他没有那种层级顺序! 我们可以在类中点击顶部菜单Navigate -----> Type Hierarchy

  4. 如何在Android Studio中查看一个类的继承关系呢?

    在面板顶部的工具栏中,找到Navigate,然后在下拉列表中,找到“Type Hierarchy”(快捷键 Ctrl+H),点击.即可在面板右侧出现该类的Hierarchy层级图.

  5. mysql中查看一个字段中,有几个逗号

    利用replace.length的内置函数

  6. idea中查看一个类的调用用和被调用用关系

  7. mysql数据库中,查看某个数据库下的表的存储类型都有哪些

    需求描述: 在备份数据库的时候,使用mysqldump进行数据库的备份,如果库中仅仅有innodb存储引擎, 那么使用--single-transaction就可以,如果还有其他的存储引擎类型就要使用 ...

  8. eclipse查看一个方法被谁调用的快捷键

    我们知道,在idea中是可以通过[ctrl+鼠标左键单击]去跳到方法调用方去的,但是在eclipse中却是不行的. 三种快捷键方式 这里列出在eclipse中查看一个方法被谁调用的三种方式(快捷键). ...

  9. Linux查看软件安装路径,和文件的位置

    查看软件是否安装:rpm -qa|grep xx 列出软件安装包安装的文件:rpm -ql 直接使用rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置 通过find去查找 ...

随机推荐

  1. jQuery笔记——插件

    验证插件 验证插件(validate.js),是一款验证常规表单数据合法性的插件.使用它,极大的解 放了在表单上繁杂的验证过程,并且错误提示显示的完善也增加了用户体验 插件都可以在JQueryUI 的 ...

  2. 【BZOJ】3670: [Noi2014]动物园(KMP)

    题目 传送门:QWQ 分析 像求next一样求num. 第二次求next时加上不超过一半的条件. 时间复杂度: $ \huge O ( n ) $ 代码 // luogu-judger-enable- ...

  3. java 字符串排序

    http://bbs.csdn.net/topics/280032929 大可不需要那样复杂了!(一)如果要排序的为字符串,如:String sortStr = "ACDFE";  ...

  4. 堆、栈、free

    转自:http://codeup.org/archives/212 http://bbs.bccn.net/thread-82212-1-1.html http://www.cppblog.com/o ...

  5. sqlldr加载 数据文件的字段超出最大长度

    SQLLOAD数据的时候,建表给的字段给够了,建表已经给到VHARCHAR2(1024)了,实际数据是VHARCHAR2(256).加载报错"数据文件的字段超出最大长度"查了半天, ...

  6. Tkinter Toplevel

       Tkinter Toplevel:顶层部件的工作,直接由窗口管理器管理的窗口.他们不必在它们上面的父widget   顶层部件的工作,直接由窗口管理器管理的窗口.他们不必在它们上面的父widge ...

  7. leetcode341

    数据结构设计类题目,参考网上的代码: /** * // This is the interface that allows for creating nested lists. * // You sh ...

  8. qrcode——js生成二维码

    1.引入 qrcode.min.js(点击下载demo) 2.html: <div id="qrcode"></div> js: var qrcode = ...

  9. 【转】arm和x86的区别

    来自: https://blog.csdn.net/u012513972/article/details/78349192/ 信不信,随便逮住一个人问他知不知道CPU,我想他的答案一定会是肯定的,但是 ...

  10. keepalived + nginx实现高可用

    1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker. ...