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上的方法一样,不再说了。
ceph中查看一个rbd的image的真实存储位置的更多相关文章
- .NET中查看一个强命名程序集(*****.dll)的PublicKeyToken的方法
使用命令行工具SDK Command Prompt,键入:SN -T C:\*****.dll (dll文件所在的路径) 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有 ...
- C0302 将一个代码块中的内容保存在文件中, 查看一个rpm包是否可以安装
#!/bin/bash # 这个脚本是用来描述和确认是否可以安装一个rpm包 # 在一个文件中保存输出 SUCCESS=0 E_NOARGS=65 if [ -z "$1" ] t ...
- Idea中查看一个类的所有资料及其层级关系
在Idea中直接Ctrl + t 查看类的子类是可以看到,但是他没有那种层级顺序! 我们可以在类中点击顶部菜单Navigate -----> Type Hierarchy
- 如何在Android Studio中查看一个类的继承关系呢?
在面板顶部的工具栏中,找到Navigate,然后在下拉列表中,找到“Type Hierarchy”(快捷键 Ctrl+H),点击.即可在面板右侧出现该类的Hierarchy层级图.
- mysql中查看一个字段中,有几个逗号
利用replace.length的内置函数
- idea中查看一个类的调用用和被调用用关系
- mysql数据库中,查看某个数据库下的表的存储类型都有哪些
需求描述: 在备份数据库的时候,使用mysqldump进行数据库的备份,如果库中仅仅有innodb存储引擎, 那么使用--single-transaction就可以,如果还有其他的存储引擎类型就要使用 ...
- eclipse查看一个方法被谁调用的快捷键
我们知道,在idea中是可以通过[ctrl+鼠标左键单击]去跳到方法调用方去的,但是在eclipse中却是不行的. 三种快捷键方式 这里列出在eclipse中查看一个方法被谁调用的三种方式(快捷键). ...
- Linux查看软件安装路径,和文件的位置
查看软件是否安装:rpm -qa|grep xx 列出软件安装包安装的文件:rpm -ql 直接使用rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置 通过find去查找 ...
随机推荐
- JS-基础2
JS基本语法 1.学习javascript的目的? A.增强网页的动态效果. B.改变网页中的元素(能够直接对网页中的元素进行操作). C.加强同后台的数据交互.页面的数据验证. 2.JS在web ...
- Java中的构造方法总结
Java中的构造方法总结 时间: 2013-11-05 08:49 来源: 未知 作者: 站长部落 点击: 1752 次 今天写代码突然发现Java的构造方法也有不少说法呢,闲来无事,总结一下: ...
- java传递是引用的拷贝,既不是引用本身,更不是对象
java传递是引用的拷贝,既不是引用本身,更不是对象 2008-09-16 04:27:56| 分类: Java SE|举报|字号 订阅 下载LOFTER客户端 1. 简单类型是按值 ...
- [Z] 一些关于http服务器架构设计的资料
开始关注这块儿,先从最基础最简单的入手.这里放一些我看过的觉得可以收藏的资料,主要是网页或博客,经典书籍之类有时间再看吧: 风格之争:Coroutine模型 vs 非阻塞/异步IO(callback)
- t讯src的一点小秘密
1.腾讯网首页发表评论未做限制 风险url:http://coral.qq.com/2774166934 使用burp的intruder模块生成payload 未做任何限制导致可批量提交大量的评论…… ...
- Linux实战教学笔记33:lvs+keepalived集群架构服务
一,LVS功能详解 1.1 LVS(Linux Virtual Server)介绍 LVS是Linux Virtual Server 的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服 ...
- inputStream输入流转为String对象(将String对象转为inputStream输入流)
不得不说org.apache.commons包下有很多实用的工具类. org.apache.commons.io.IOUtils; 要将inputStream输入流转为String对象,只需使用org ...
- Hibernate中Session与本地线程绑定
------------------siwuxie095 Hibernate 中 Session 与本地线程绑定 1.Session 类似于 JDBC 的连接 Connection 2.Session ...
- selenium+python—实现基本自动化测试
安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium I ...
- 为什么ajax发GET请求就成功,POST请求则报错?
为什么ajax发GET请求就成功,POST请求则报错? (1)首先说明的是请求的URL是一个静态资源,比如一个json文件.(2)现在现象是发GET请求就成功,POST请求则报错.(3)最新发现:就算 ...