创建一个rbd
[root@mytest ~]# rbd create test1 --size 4000 |
查看rbd信息
[root@mytest ~]# rbd info test1 |
可以看出是没写入真实数据的[root@mytest ~]# ceph df|grep rbd
rbd 0 133 0 30627M 2
查询rbd池里面的对象信息
[root@mytest ~]# rados ls -p rbd |
查看下这两个对象的内容[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 |
格式化rbd设备
[root@mytest ~]# mkfs.xfs /dev/rbd/rbd/test1 |
查看当前的rbd池里面的对象信息
[root@mytest mnt]# rados -p rbd ls |
可以看到格式化过程中写入了一些对象信息,这些应该是存储文件系统信息的,写入的对象,数据的写入的前缀是rb.0.fa6c.6b8b4567
查看对象数据在哪里
[root@mytest 0.1_head]# ceph osd map rbd rb.0.fa6c.6b8b4567.0000000001f0 |
可以查看到数据是在节点1的pg 0.1 里面
去节点一上查看
[root@mytest 0.1_head]# ll /var/lib/ceph/osd/ceph-1/current/0.1_head/ |
可以看到这个对象
上面的步骤实现的是:
- 查看一个rbd image
- 查看这个image 里面的包含的对象
- 查看这个 rbd image的对象在哪个具体的磁盘上
无法实现的是查询文件系统之上的某个文件在哪里,这个在cephfs 文件系统接口中是有的