ceph rbd与openstack如何结合使用

76次阅读
没有评论

共计 3171 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要为大家展示了“ceph rbd 与 openstack 如何结合使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“ceph rbd 与 openstack 如何结合使用”这篇文章吧。

openstack 通过 libvirt 调用 qemu 来启动具体的虚拟机,qemu 通过 librbd 这个库与 librados 通信,而 librados 是 ceph 集群的统一 API 库,这样一来 openstack 就与 ceph rbd 联系起来了。

需要在 ceph 端进行的操作如下:

1、为 ceph client 创建一系列可用的 pools。

  根据 ceph client 的需求及其分类,为 client 创建一系列的 pools。创建 pools 需要根据当前集群中 OSDs 的数量合理的分配 PGs 数量以及对象复制的个数。

 #ceph osd pool create volumes 128  创建一个名字为 volumes 的 pool 且该 pool 中的 PGs 数量为 128;

 #ceph osd pool create images 128

 #ceph osd pool create vms 128

2、为 ceph client 创建一系列用户及其使用集群的权限。

 ceph client 不同的用户对集群有不同的使用要求,因此需要根据 client 用户的实际需求为其设置访问集群的权限。

 #ceph auth get-or-create client.cinder mon allow r osd allow class-read object_prefix rbd_children, allow rwx pool=volumes allow rwx pool=images allow rwx pool=vms

 #ceph auth get-or-create client.glance mon allow r osd allow class-read object_prefix rbd_children, allow rwx pool=images

3、将 ceph 配置文件及其 ceph client 用户信息分别上传给所需的 client 节点。

 openstack 可以通过 glance、cinder 以及 nova 使用 ceph,因此需要将 ceph 配置文件以及 ceph client 的权限文件上传给 glance、cinder 以及 nova 节点。其中 ceph 配置文件的位置位于 client 节点的 /etc/ceph/ceph.conf 下,ceph client 的权限文件位于 client 节点的 /etc/ceph 目录下,对于 glance 节点权限文件位于 /etc/ceph/ceph.client.glance.keyring,对于 cinder 节点权限文件位于 /etc/ceph/ceph.client.cinder.keyring,对于 nova 节点权限文件位于 /etc/ceph/ceph.client.cinder.keyring(nova 节点使用 cinder 用户来访问 ceph 集群);

  除了 client 普通用户使用的 keyring 外,还需要将 ceph 集群上的 ceph.client.admin.keyring 也上传到所有 client 节点的 /etc/ceph/ 目录下;

4、glance 节点的配置。

  对于 glance 节点需要修改 glance 节点的配置文件,使得 glance 节点可以使用 ceph。glance 节点的配置文件位于 /etc/glance/glance-api.conf。在该文件中需要添加如下信息:

[glance_store]

default_store = rbd

store = rbd

rbd_store_ceph_conf = /etc/ceph/ceph.conf

rbd_store_user = glance

rbd_store_pool = images

rbd_store_chunk_size = 8

另外,为了支持 copy-on-write clone images 功能,需要在配置文件的 default 节处添加如下信息:

[default]

show_image_direct_url = True

另外,为了不让 glance 使用本地 cache,需要在配置文件的 paste_deploy 节处设置如下信息:

[paste_deploy]

flavor = keystone

5、cinder 节点配置。

  对于 cinder 节点需要修改 cinder 节点的配置文件,使得 cinder 节点可以使用 ceph。cinder 节点的配置文件位于 /etc/cinder/cinder.conf。在该文件中需要添加如下信息:

#cinder volume

volume_driver = cinder.volume.drivers.RBDDriver

rbd_pool = volumes

rbd_user = cinder

rbd_secret_uuid = {uuid}

rbd_ceph_conf = /etc/ceph/ceph.conf

rbd_flatten_volume_from_snapshot = True

rbd_max_clone_depth = 5

rbd_store_chunk_size = 4

rados_connect_timeout = -1

glance_api_version = 2

设置了 rbd_user 和 rbd_secret_uuid,则允许 nova 使用通过 cinder 使用 ceph。

6、nova 节点配置。

 1)需要获取到 client.cinder 的 key 值。该值可以在 ceph 集群中的任何节点通过如下命令获得且上传到 nova 节点: 

 #ceph auth get-key client.cinder | ssh {nova-ip} tee ceph.client.cinder.key

 2)需要在 nova 节点上使用 uuidgen 命令生成一个随机数:

 #uuidgen

 3)在 nova 节点上为 libvirt 使用 ceph,创建 secret.xml 文件以及将该文件以及随机数添加到 libvirt 中,具体操作如下:

 #cat secret.xml EOF

secret ephemeral= no private= no

  uuid {uuid} /uuid

  usage type= ceph

  name client.cinder secret /name

  /usage

/secret

EOF

 #virsh secret-define –file secret.xml

 #virsh secret-set-value –secret {uuid} –base64 $(cat secret.xml)   

 4)配置 nova 节点的配置文件,使之可以使用 ceph 集群。nova 节点的配置文件位于 /etc/nova/ 目录下的 nova.conf 和 nova-compute.conf 这两个配置文件。这里我们修改 nova-compute.conf 这个配置文件,在该文件中添加如下内容:

[libvirt]

images_type = rbd

images_rbd_pool = vms

images_rbd_ceph_conf = /etc/ceph/ceph.conf

rbd_user = cinder

rbd_secret_uuid = {uuid}

disk_cachemodes = network=writeback

7、重新启动 glance、cinder 以及 nova 节点上对应的服务。

 #service glance-control api restart

 #service cinder-volume restart

 #service nova-compute restart

以上是“ceph rbd 与 openstack 如何结合使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3171字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)