RBD特性解析

特性一览表

RBD支持的特性,及具体BIT值的计算如下

特性一览表

RBD支持的特性,及具体BIT值的计算如下

属性 功能 BIT码
属性 功能 BIT码
layering 支持分层 1
striping 支持条带化 v2 2
exclusive-lock 支持独占锁 4
object-map 支持对象映射(依赖 exclusive-lock ) 8
fast-diff 快速计算差异(依赖 object-map ) 16
deep-flatten 支持快照扁平化操作 32
journaling 支持记录 IO 操作(依赖独占锁) 64

详细说明:

  • layering

image的克隆操作。可以对image创建快照并保护,然后从快照克隆出新的image出来,父子image之间采用COW技术,共享对象数据。

  • striping v2

条带化对象数据,类似raid 0,可改善顺序读写场景较多情况下的性能。

  • exclusive lock

保护image数据一致性,对image做修改时,需要持有此锁。这个可以看做是一个分布式锁,在开启的时候,确保只有一个客户端在访问image,否则锁的竞争会导致io急剧下降。 主要应用场景是qemu live-migration。

  • object map

此特性依赖于exclusive lock。因为image的对象分配是thin-provisioning,此特性开启的时候,会记录image所有对象的一个位图,用以标记对象是否真的存在,在一些场景下可以加速io。

  • fast diff

此特性依赖于object map和exlcusive lock。快速比较image的snapshot之间的差异。

  • deep-flatten

layering特性使得克隆image的时候,父子image之间采用COW,他们之间的对象文件存在依赖关系,flatten操作的目的是解除父子image的依赖关系,但是子image的快照并没有解除依赖,deep-flatten特性使得快照的依赖也解除。

  • journaling

依赖于exclusive lock。将image的所有修改操作进行日志化,并且复制到另外一个集群(mirror),可以做到块存储的异地灾备。这个特性在部署的时候需要新部署一个daemon进程,目前还在试验阶段,不过这个特性很重要,可以做跨集群/机房容灾。

创建image的时候,jewel默认开启的特性包括: layering/exlcusive lock/object map/fast diff/deep flatten

results matching ""

    No results matching ""