Ceph概念之条带

RDB镜像会被条带化到很多个对象上。之后,数据被Ceph分布式对象存储(RADOS)。因此,对于镜像的读写请求将会跨越集群的很多节点。这样可以避免当一个镜像变的繁忙时,单个节点将会出现性能瓶颈。

条带化可以通过三个参数进行控制:

order 对象的大小,对象的大小通过一个2的幂的值指定,也即定义为2^[order]个字节,默认值为22,也即4MB

stripe_unit 条带单元,表示数据的操作对象移动到下一个对象之前,在同一个对象中所操作(读或者写)的连续数据的大小

strip_count 条带数量,当写入数据到[strip_count]个对象之后,将会重新返回第一个对象写另外一个条带,一直到对象达到其最大值(由order定义的值)。之后,将移动到另外一个strip_count数量的对象组。

如图所示,为三者的关系示意图。

ceph-c-stripe

默认情况下,strip_unit与对象大小相同,stripe_count为1。如果有定义不同的stripe_unit的需求,需要Ceph集群系统支持STRIPINGV2特性(该特性在v0.53中被支持),并且镜像为第二种格式(format 2)。

也就是说,默认情况下块设备存储数据(顺序写)是一个对象一个对象来的,也即存满一个之后,再存下一个。

如果引用本站的原创文章,请注明原文链接:,本站保留追究责任的权利!

发表评论