ceph的数据存储之路(9) -----object的attr和omap操作
这里有一个 ceph 的原则,就是所有存储的不管是块设备、对象存储、文件存储最后都转化成了底层的对象 object ,这个 object 包含 3 个元素 data , xattr , omap 。 data 是保存对象的数据, xattr 是保存对象的扩展属性,每个对象文件都可以设置文件的属性,这个属性是一个 key/value 值对,但是受到文件系统的限制, key/value 对的个数和每个 value 的大小都进行了限制。如果要设置的对象的 key/value 不能存储在文件的扩展属性中,还存在另外一种方式保存 omap , omap 实际上是保存到了 key/vaule 值对的数据库 levelDB 中,在这里 value 的值限制要比 xattr 中好的多。 一开始不太明白 key/value 是做什么的?在 ceph 中起到什么作用? 这里要说明的是这些 key/value 是保存对象的元数据相关信息,这些元数据相关信息是可以单独创建和设置的,等于对象存储的扩展,支持属性的值对存储。这个作用就是提供给 ceph 内部使用,暂时用处不大。 一、块存储设备元数据管理 对于块存储,在存储的过程中主要是块的相关信息。块的元数据信息管理,创建一个块设备后会创建一个默认的 rbd 的元数据文件。 0001 :这里首先创建一个块设备,该块设备的大小为 100M 。 0002