rbd的数据在哪里
创建一个rbd
[root@mytest ~]# rbd create test1 --size 4000
查看rbd信息
[root@mytest ~]# rbd info test1
rbd image 'test1':
size 4000 MB in 1000 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.fa6c.6b8b4567
format: 1
可以看出是没写入真实数据的
[root@mytest ~]# ceph df|grep rbd
rbd 0 133 0 30627M 2
查询rbd池里面的对象信息
[root@mytest ~]# rados ls -p rbd
test1.rbd
rbd_directory
查看下这两个对象的内容
[root@mytest ~]#rados -p rbd get test1.rbd test1rbd.txt
[root@mytest ~]# echo -e `cat test1rbd.txt`
<<< Rados Block Device Image >>> rb.0.fa6c.6b8b4567RBD001.005
这个是记录的rbd镜像的信息
[root@mytest ~]# rados -p rbd get rbd_directory rbddirectory.txt
[root@mytest ~]# echo -e `cat rbddirectory.txt`
test1
这个是记录的rbd的目录信息
rbd映射到本地
[root@mytest ~]# rbd map test1
/dev/rbd0
格式化rbd设备
[root@mytest ~]# mkfs.xfs /dev/rbd/rbd/test1
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/rbd/rbd/test1 isize=256 agcount=9, agsize=126976 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1024000, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
查看当前的rbd池里面的对象信息
[root@mytest mnt]# rados -p rbd ls
rb.0.fa6c.6b8b4567.0000000001f0
rb.0.fa6c.6b8b4567.0000000001f1
rb.0.fa6c.6b8b4567.000000000174
test1.rbd
rb.0.fa6c.6b8b4567.0000000002e8
rb.0.fa6c.6b8b4567.0000000001f2
rbd_directory
rb.0.fa6c.6b8b4567.0000000000f8
rb.0.fa6c.6b8b4567.0000000003e0
rb.0.fa6c.6b8b4567.000000000000
rb.0.fa6c.6b8b4567.00000000007c
rb.0.fa6c.6b8b4567.0000000003e7
rb.0.fa6c.6b8b4567.00000000026c
rb.0.fa6c.6b8b4567.000000000001
rb.0.fa6c.6b8b4567.000000000364
可以看到格式化过程中写入了一些对象信息,这些应该是存储文件系统信息的,写入的对象,数据的写入的前缀是rb.0.fa6c.6b8b4567
查看对象数据在哪里
[root@mytest 0.1_head]# ceph osd map rbd rb.0.fa6c.6b8b4567.0000000001f0
osdmap e78 pool 'rbd' (0) object 'rb.0.fa6c.6b8b4567.0000000001f0' -> pg 0.1cdfe181 (0.1) -> up ([1], p1) acting ([1], p1)
可以查看到数据是在节点1的pg 0.1 里面
去节点一上查看
[root@mytest 0.1_head]# ll /var/lib/ceph/osd/ceph-1/current/0.1_head/
total 4100
-rw-r--r-- 1 root root 0 Aug 10 14:02 __head_00000001__0
-rw-r--r-- 1 root root 4194304 Aug 23 12:36 rb.0.fa6c.6b8b4567.0000000001f0__head_1CDFE181__0
可以看到这个对象
上面的步骤实现的是:
- 查看一个rbd image
- 查看这个image 里面的包含的对象
- 查看这个 rbd image的对象在哪个具体的磁盘上
无法实现的是查询文件系统之上的某个文件在哪里,这个在cephfs 文件系统接口中是有的
rbd的数据在哪里的更多相关文章
- 重构克隆rbd的数据
前言 之前写过一篇重构rbd的元数据的文章,讲的是如果rbd的元数据丢失了,数据还在的时候怎么恢复相关的元数据,但是实际使用的场景是,集群可能崩溃了,数据还在,osd无法拉起来,数据又很重要,需要把数 ...
- 7. Ceph 高级篇 - RBD块设备回收站、快照、克隆
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485298&idx=1&sn=b83fda07 ...
- Ceph 存储集群 - 存储池
目录 一.存储池介绍 二.存储池命令 1. 列出存储池 2. 创建存储池 3. 设置存储池配额 4. 删除存储池 5. 重命名存储池 6. 查看存储池统计信息 7. 生成存储池快照 8. 删除存储池快 ...
- Redis搭建(六):Redis持久化配置
一.介绍 Redis的持久化有2种方式: Rdb快照 Aof日志 1. Rdb快照的配置选项 save 900 1 // 900内,有1条写入,则产生快照 save 300 1000 // 如果300 ...
- Ceph源码解析:读写流程
转载注明出处,整理也是需要功夫的,http://www.cnblogs.com/chenxianpao/p/5572859.html 一.OSD模块简介 1.1 消息封装:在OSD上发送和接收信息. ...
- openstack cinder-backup流程与源码分析
在现在的云计算大数据环境下,备份容灾已经变成了一个炙手可热的话题,今天,和大家一起分享一下openstack是怎么做灾备的. [首先介绍快照] snapshot可以为volume创建快照,快照中保存了 ...
- ceph rbd双挂载导致ext4文件系统inode链接数据污染
转载自:https://my.oschina.net/xueyi28/blog/1596003 ###故障现象 /data/rbd1/dir1/a/file1 /data/rbd1/dir2/a/fi ...
- 修改rbd指定位置的数据
标签(空格分隔): ceph,ceph实验 --- 我们通过查看index为0x01的小4M文件,得知了file2.txt这个文件内容在这个4M内保存的位置为0x9000,因为0x01前面还有一个4M ...
- 7.4 k8s结合ceph rbd、cephfs实现数据的持久化和共享
1.在ceph集群中创建rbd存储池.镜像及普通用户 1.1.存储池接镜像配置 创建存储池 root@u20-deploy:~# ceph osd pool create rbd-test-pool1 ...
随机推荐
- OpenCV计算机视觉学习(5)——形态学处理(腐蚀膨胀,开闭运算,礼帽黑帽,边缘检测)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 形态 ...
- 分布式锁结合SpringCache
1.高并发缓存失效问题: 缓存穿透: 指查询一个一定不存在的数据,由于缓存不命中导致去查询数据库,但数据库也无此记录,我们没有将此次查询的null写入缓存,导致这个不存在的数据每次请求都要到存储层进行 ...
- swoole一键协程
swoole4.x后支持一键协程 加上后,开启一键协程化后,MySQL.Redis.Curl 等操作会变成异步 IO //此行代码后,文件操作,sleep,Mysqli,PDO,streams等都变成 ...
- docker的常用操作之三:网络配置
一, docker安装后容器使用哪些网络类型? 在宿主机执行如下命令: [root@localhost liuhongdi]# docker network ls NETWORK ID NAME DR ...
- nginx安全:配置allow/deny控制ip访问(ngx_http_access_module)
一,nginx中allow/deny指令的用途 1, Nginx的deny和allow指令是由ngx_http_access_module模块提供, Nginx安装默认内置了该模块 2, nginx访 ...
- centos8平台使用rpm管理软件包
一,什么是rpm rpm是redhat package manager redhat的软件包管理器 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/a ...
- lerna管理前端模块实践
最近在工作中使用了 lerna 进行前端包的管理,效率提升了很多.所以打算总结一下最近几个月使用 lerna 的一些心得.有那些不足的地方,请包涵. 该篇文章主要包括在使用 lerna 的一些注意事项 ...
- 【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
问题情形 通过VS部署Cloud Service时,需要在开始任务时候安装或配置其他任务,如安装及配置ARR. 执行步骤 1) 下载 requestRouter_amd64.msi 和 webfarm ...
- 【计算几何 05】Pick定理
什么是Pick定理(皮克定理) 来自wiki的介绍: 给定顶点座标均是整点(或正方形格子点)的简单多边形,皮克定理说明了其面积 \(A\)和内部格点数目 \(i\) .边上格点数目 \(b\) 的关系 ...
- 面试不再慌,看完这篇保证让你写HashMap跟玩一样
今天这篇文章给大家讲讲hashmap,这个号称是所有Java工程师都会的数据结构.为什么说是所有Java工程师都会呢,因为很简单,他们不会这个找不到工作.几乎所有面试都会问,基本上已经成了标配了. 在 ...