openstack外接ceph

一、概述

在实际交付过程中,由于某些原因,可能会碰到不需要kolla部署ceph,而是集成一套已存在ceph集群的情况,这种需求也是合理的。 在这种情况下,需要调整部分kolla的配置。

二、环境准备

1. 已存在的ceph集群(关于ceph的安装部署请参考http://blog.csdn.net/dylloveyou/article/details/79054120)

2. openstack需要的pool已经创建完成,集成之后各个project的数据会保存在对应的pool中

  • cinder-volumes (Cinder-volume)
  • glance-images (Glance)
  • cinder-backups (Cinder-Backup)
  • nova-vms (Nova)

三、开启外接ceph功能

使用外接ceph意味着不需要通过kolla去部署ceph。因此需要在全局配置中关闭ceph组件。编辑 /etc/kolla/globals.yml,配置如下:

enable_ceph: “no

glance_backend_ceph: "yes"
cinder_backend_ceph: "yes"
nova_backend_ceph: "yes"

enable_ceph: "no" 和 <service>_backend_ceph:"yes" 会触发kolla的外接ceph集群的机制。

四、配置Kolla

Glance

1.为 glance-api.conf 配置RBD 后端

编辑 /etc/kolla/config/glance/glance-api.conf 文件,加入如下配置:

[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = glance-images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf

 

以上配置会被kolla自动合并到glance的配置文件中。

2.拷贝ceph集群配置文件(/etc/ceph/ceph.conf)到 /etc/kolla/config/glance/ceph.conf

cat /etc/kolla/config/glance/ceph.conf

[global]
fsid = 9c424511-ade9-45e3-be88-24d72232dd7a
mon_initial_members = ceph-node01, ceph-node02, ceph-node03
mon_host = 11.10.37.85,11.10.37.86,11.10.37.87
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

osd_journal_size = 10000
osd_pool_default_size = 2

osd_pool_default_pg_num = 512
osd_pool_default_pgp_num = 512
rbd_default_features = 3

 

3.生成ceph.client.glance.keyring文件,并保存到 /etc/kolla/config/glance 目录

在存储mon节点执行命令:

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

 

为 glance 生成 glance.keyring 文件,并将回显保存在 /etc/kolla/config/glance/ceph.client.glance.keyring

cat /etc/kolla/config/glance/ceph.client.glance.keyring
[client.glance]
    key = AQD6gVRasWreLRAAPSlTc1LPIayGjPtvuK1FCw==

Kolla会将所有名称为ceph*的文件拷贝到对应容器中的 /etc/ceph目录中。

Cinder

1. 编辑 /etc/kolla/config/cinder/cinder-volume.conf,并配置如下内容:

[DEFAULT]
enabled_backends=rbd-1

[rbd-1]
rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=cinder
backend_host=storage01
rbd_pool=cinder-volumes
volume_backend_name=rbd-1
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_secret_uuid = {{ cinder_rbd_secret_uuid}}

注: cinder_rbd_secret_uuid被定义在 /etc/kolla/passwords.yml 中,用来解决虚拟机boot from volume 的bug。

2. 编辑 /etc/kolla/config/cinder/cinder-backup.conf,并配置如下内容:

[DEFAULT]
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user=cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool=cinder-backups
backup_driver = cinder.backup.drivers.ceph
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
restore_discard_excess_bytes = true

 

3. 拷贝ceph的配置文件(/etc/ceph/ceph.conf)到 /etc/kolla/config/glance/ceph.conf

4. 生成 ceph.client.cinder.keyring 文件

在 ceph mon 节点运行:

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

为 cinder 生成 cephx keyring,将回显结果保存在 /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring 和 /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder.keyring 中

在ceph mon节点继续运行:

ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cinder-bakcups'

为 cinder-backu p生成 cephx keyring,将回显结果保存在 /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder-backup.keyring

注: cinder-backup 需要两个 keyring 去连接 cinder-volumes 和 cinder-backups pool

Nova

1. 编辑 /etc/kolla/config/nova/nova-compute.conf ,配置如下内容:

[libvirt]
images_rbd_pool=nova-vms
images_type=rbd
images_rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=nova

2. 生成 ceph.client.nova.keyring 文件

ceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=nova-vms'

拷贝ceph.conf, nova client keyring, 和cinder client keyring 到 /etc/kolla/config/nova

ls /etc/kolla/config/nova
ceph.client.cinder.keyring  ceph.client.nova.keyring  ceph.conf  nova-compute.conf

五、部署

kolla使用外接ceph,意味着没有储存节点,而默认情况下cinder-volume和cinder-backup运行在存储节点,外接ceph存储需要指定主机去运行cinder-volume和cinder-backup容器。

编辑multinode文件,修改配置如下(这里把cinder-volume和cinder-backup安装到controller节点):

[storage]
controller01

执行kolla-ansible命令,完成部署

kolla-ansible -i /home/multimode deploy
posted @ 2021-01-27 10:02  海上生明月~  阅读(374)  评论(0编辑  收藏  举报