共计 2094 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章主要介绍 ceph 块存储 rbd 有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
ceph 集群搭建起来后,可以在 ceph 集群上进行块存储、对象存储以及文件系统存储。从架构上来看,在 ceph 集群的上面是 rados 协议,该协议为使用 ceph 集群的用户提供必要的支持(ceph 用户通过调用 rados 协议来使用 ceph 集群)。对于块存储来说,可以通过内核模块的方式使用 ceph 集群也可以通过用户态调用 librbd 库来使用 ceph 集群。通过内核模块方式可以充分的利用内核的 page cache 机制,而通过用户态调用 librbd 也可以使用 librbd 在用户态提供的 cache 方式提高性能。
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 模式
以上是“ceph 块存储 rbd 有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!