Ceph的RADOS中哪个参数可以决定对象大小
Which parameter can determine the object size in RADOS of Ceph
在存储文件时,Ceph会将文件分成若干个对象,除了最后一个对象外,大部分对象大小相同(文件大小可能不是对象大小的倍数)。
我从Ceph官网了解到,对象大小不是固定的,可以通过某个参数来决定,那么决定对象大小的参数是多少?
Ceph 文件系统建立在 RADOS 对象存储系统之上。也就是说,文件中的字节存储在一个或多个对象中。文件中的字节映射到对象的方式称为条带化策略。例如,在固定 1 MB 对象的条带策略中,文件中偏移量 [0, 2**20)
的字节可能存储在 object.0 中,第二兆字节 [2**20, 2**21)
存储在 object.1 中,依此类推在。还有其他方法可以将线性字节流映射到对象。这里有更多信息:
http://ceph.com/docs/master/cephfs/file-layouts/
并且您可以在使用 libcephfs 时以编程方式更改条带化策略:
https://github.com/ceph/ceph/blob/master/src/include/cephfs/libcephfs.h#L738
注意这里,这个映射意味着一个固定的对象大小。但是,RADOS 本身对对象大小没有任何限制(可配置的最大大小除外)。因此,如果您使用 RADOS 对象 API 来存储数据,则没有固定大小。
在存储文件时,Ceph会将文件分成若干个对象,除了最后一个对象外,大部分对象大小相同(文件大小可能不是对象大小的倍数)。
我从Ceph官网了解到,对象大小不是固定的,可以通过某个参数来决定,那么决定对象大小的参数是多少?
Ceph 文件系统建立在 RADOS 对象存储系统之上。也就是说,文件中的字节存储在一个或多个对象中。文件中的字节映射到对象的方式称为条带化策略。例如,在固定 1 MB 对象的条带策略中,文件中偏移量 [0, 2**20)
的字节可能存储在 object.0 中,第二兆字节 [2**20, 2**21)
存储在 object.1 中,依此类推在。还有其他方法可以将线性字节流映射到对象。这里有更多信息:
http://ceph.com/docs/master/cephfs/file-layouts/
并且您可以在使用 libcephfs 时以编程方式更改条带化策略:
https://github.com/ceph/ceph/blob/master/src/include/cephfs/libcephfs.h#L738
注意这里,这个映射意味着一个固定的对象大小。但是,RADOS 本身对对象大小没有任何限制(可配置的最大大小除外)。因此,如果您使用 RADOS 对象 API 来存储数据,则没有固定大小。