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去查找 ...
随机推荐
- [转]第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
目录: 1.gradle的概念 2.gradle配置jar包,和libs文件夹导入jar包的区别 3.签名打包: (1)Studio (2)命令行 (3)gradle wrapper的原理 4.Bui ...
- 【UVa】1606 Amphiphilic Carbon Molecules(计算几何)
题目 题目 分析 跟着lrj学的,理解了,然而不是很熟,还是发上来供以后复习 代码 #include <bits/stdc++.h> using namespace std; ; stru ...
- 给iOS开发新手送点福利,简述UILabel的属性和用法
UILabel属性 1.text:设置标签显示文本. label.text = @"我是Label"; 2.attributedText:设置标签属性文本. NSString *t ...
- SQL Server Management Studio (SSMS)
最新的SQLServer数据库已经不集成SQL Server Management Studio需要单独下载安装. https://docs.microsoft.com/zh-cn/sql/ssms/ ...
- Centos如何设置IP地址,LINUX怎么修改IP地址
对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面小编以centos系统为例,给大家演示如何给centos设置IP地址,如何修改linux 系统IP地址? 步骤阅 ...
- 改变checkbox的背景颜色
input:checked{-webkit-appearance:none;background-color: #f4a100;}
- Julia - 整数型
所有的基础数据类型通过灵活用户可扩展的类型提升系统 ,不需显式类型转换,就可以互相运算 整数的默认类型,取决于系统是 32 位还是 64 位 julia> typeof(1) # 32 位系统 ...
- 关于微信支付URL未注册其中的坑THINKPHP5
1 微信支付是区分大小写的 TP有的URL 会默认转换 http://ams.###.com/index/Pay/wechat/order_number/ 会被解析 http://ams.###.co ...
- C# 接口(Interface)
接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 口定义了属性.方法和事件,这些都是接 ...
- [转] C#中out和ref之间的区别
gskcc 的原文地址 C#中out和ref之间的区别 首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个 ...