ceph集群搭建起来后,可以在ceph集群上进行块存储、对象存储以及文件系统存储。从架构上来看,在ceph集群的上面是rados协议,该协议为使用ceph集群的用户提供必要的支持(ceph用户通过调用rados协议来使用ceph集群)。对于块存储来说,可以通过内核模块的方式使用ceph集群也可以通过用户态调用librbd库来使用ceph集群。通过内核模块方式可以充分的利用内核的page cache机制,而通过用户态调用librbd也可以使用librbd在用户态提供的cache方式提高性能。下图是ceph rbd的整体框架图。
1、快照相关。
1)创建快照。
#rbd snap create {pool-name}/{image-name}@{snap-name}
一般来说都是基于一个已有的image来创建快照,创建出来的快照是只读的;
2)查看已有的快照。
#rbd snap ls {pool-name}/{image-name}
查看在已有的image上存在的快照情况;
3)快照roolback。
#rbd snap roolback {pool-name}/{image-name}@{snap-name}
将快照里的内容回写到image中去;
4)删除快照。
#rbd snap rm {pool-name}/{image-name}@{snap-name}
删除指定image上的指定名称的快照;
5)删除image上所有的快照。
#rbd snap purge {pool-name}/{image-name}
2、分层相关。
ceph中的分层技术指的是在一个只读且受保护的快照上clone出一个新的image且该image是写时复制的。clone出一个新的image后,该image与那个只读snap之间是child-parent关系。
1)保护一个快照。
#rbd snap protect {pool-name}/{image-name}@{snap-name}
2)clone一个受保护的快照。
#rbd clone {pool-name}/{image-name}@{snap-name} {newpool-name}/{newimage-name}
clone出一个受保护的image后,就可以按照普通的image来使用这个clone后的image
3)解除一个受保护的快照。
#rbd snap unprotect {pool-name}/{image-name}@{snap-name}
只有解除了快照的保护才能真正的删除该快照,否则快照无法被删除
4)查看快照被clone的情况。
#rbd children {pool-name}/{image-name}@{snap-name}
此命令可以看到基于该snap-name clone出来的image信息
5)去分层技术。
基于某个快照clone出来的image与那个快照之间是一种child-parent关系(可以认为是一种分层关系)。而去分层技术指的是将parent中的内容完全的复制到child中去,从而使得child和parent在去分层后变得没有任何关系。
#rbd flatten {pool-name}/{image-name}
3、rbd cache相关。
rbd cache指的是在用户态环境下通过使用librbd库来访问ceph集群时在client端使用cache技术来提高client端访问ceph集群的性能。对于以内核模块的方式访问ceph集群时使用的是linux内核中的page cache技术进行缓存而不是rbd cache技术。
rbd cache需要在ceph client端的ceph配置文件中配置相应的属性来启用rbd cache。ceph client端的ceph配置文件位于/etc/ceph/ceph.conf,在该文件中需要添加client节点且在client节点出添加具体的配置项。rbd cache配置项具体内容如下:
rbd cache = true|false 是否启用rbd cache
rbd cache size = rbd cache大小
rbd cache max dirty = 在writeback模式下cache的最大bytes数,默认是24MB。当该值为0时,表示使用writethrough模式
rbd cache target dirty = 在writeback模式下cache向ceph集群写入的bytes阀值,默认16MB。注意该值一定要小于rbd cache max dirty值
rbd cache max dirty age = cache中脏数据存在的最大秒数
rbd cache writethrough until flush = true|false 在内核触发flush cache到ceph集群前rbd cache一直是writethrough模式,直到flush后rbd cache变成writeback模式
来源:oschina
链接:https://my.oschina.net/u/206258/blog/541997