ceph的数据存储之路(9) -----object的attr和omap操做

这里有一个ceph的原则,就是全部存储的无论是块设备、对象存储、文件存储最后都转化成了底层的对象object,这个object包含3个元素dataxattromapdata是保存对象的数据,xattr是保存对象的扩展属性,每一个对象文件均可以设置文件的属性,这个属性是一个key/value值对,可是受到文件系统的限制,key/value对的个数和每一个value的大小都进行了限制。若是要设置的对象的key/value不能存储在文件的扩展属性中,还存在另一种方式保存omapomap其实是保存到了key/vaule  值对的数据库levelDB中,在这里value的值限制要比xattr中好的多。算法

    一开始不太明白 key/value是作什么的?在ceph中起到什么做用? 这里要说明的是这些key/value是保存对象的元数据相关信息,这些元数据相关信息是能够单首创建和设置的,等于对象存储的扩展,支持属性的值对存储。这个做用就是提供给ceph内部使用,暂时用处不大。数据库

 

1、块存储设备元数据管理spa

对于块存储,在存储的过程当中主要是块的相关信息。块的元数据信息管理,建立一个块设备后会建立一个默认的rbd的元数据文件。对象

 

0001:这里首先建立一个块设备,该块设备的大小为100M扩展

0002:使用命令查询这个rbd的详细信息。object

0008:这里会有一个叫作rbd1.rbd的对象,他不是用来存储数据的,并且用来保存元数据信息。真实的元数据信息不会保存在这个文件中,而是保存在这个文件的xattr或者omap中。meta

0010:这里有个叫作rbd_directory的对象,该对象中会保存全部建立的块设备名字。map

 

2、对象存储的元数据管理im

对象存储存在数据

0001:列出当前pool中存储的对象。在对象存储中仍是封装一层叫作bucket,由bucket隔离object对象。

0006:查看一个objectone对象的状态信息,包含名字、建立时间、size

0008:本身建立一个objectone对象的属性,该属性keyownervaluexyj

0009:查询一个objectone对象的全部属性,发现这时只有刚刚建立的owner

0011:查询objectone对象的owner属性值,这里能够显示出刚刚设置的xyj

 

3、文件系统cephfs

这里cephfs就很少说了,由于目前广大群众都说cephfs在生产环境中存在一些问题。cephfs 有一个叫作mds的节点,该节点负责管理namespace,可是数据块的映射则交给了crush算法,cephfs的元数据一样会以对象的方式存储在rados中,有一个叫作meta的文件夹中。一样这些顶层的对象,能够经过key/value存储来自文件系统设置的属性集。

相关文章
相关标签/搜索