共计 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 行业资讯频道!