glance对接ceph
glance对接ceph
glance镜像默认是存储在本地的,如果glance节点挂掉的话,镜像也就不存在了,因此现在将镜像存储到ceph集群上,即使glance节点挂掉了,其他节点对接一下ceph,镜像也是存在的
1、对接ceph
1、创建存储池
ceph osd pool create images
ceph osd pool application enable images rbd
rbd pool init -p images
2、创建用户
ceph auth get-or-create client.glance mon "profile rbd" osd "profile rbd pool=images" -o ceph.client.glance.keyring
3、下发ceph文件
将ceph.conf和glance用户密钥发送到控制节点/etc/kolla/config
scp 192.168.50.30:/etc/ceph/ceph.conf .
scp 192.168.50.30:/root/ceph.client.glance.keyring .
注意一个坑,在管理主机上打开这2个文件,将里面的缩进给删除,或者将缩进改为空格键,不然会报错,因为等会升级glance是使用ansible读取配置,yaml是不允许tab键的
(kolla) [root@openstack01 glance]# cat ceph.conf
# minimal ceph.conf for cb954088-3d73-11f1-ba9d-000c2903217e
[global]
fsid = cb954088-3d73-11f1-ba9d-000c2903217e
mon_host = [v2:192.168.50.30:3300/0,v1:192.168.50.30:6789/0]
(kolla) [root@openstack01 glance]# cat ceph.client.glance.keyring
[client.glance]
key = AQBXY+dp0T+GLRAASCqrYKl8zimEZQ2pRPnwYA==
4、修改globals文件
[root@openstack01 kolla]# vim globals.yml
ceph_glance_user: "glance"
ceph_glance_keyring: "client.{{ ceph_glance_user }}.keyring"
ceph_glance_pool_name: "images"
glance_backend_ceph: "yes"
glance_backend_file: "no"
这里的keyring不要在前边加上ceph.因为等会执行的时候ansible会自动给带上,写上了反而报错
将globals文件改为这样就可以了,然后我们执行升级glance
5、更新glance配置
[root@openstack01 kolla]# source /root/.venv/kolla/bin/activate
(kolla) [root@openstack01 ~]# kolla-ansible -i multinode -t glance upgrade
3、上传镜像到ceph
(kolla) [root@openstack01 ~]# openstack image create --disk-format qcow2 --container-format bare --public --file ./cirros-0.5.1-x86_64-disk.img ceph_test_image
(kolla) [root@openstack01 ~]# openstack image list
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| f6d86987-16cb-47d6-930b-b5e3a2c42f1e | ceph_test_image | active |
+--------------------------------------+-----------------+--------+
# rbd存储池有这个镜像
[root@ceph01 ceph]# rbd ls -p images
f6d86987-16cb-47d6-930b-b5e3a2c42f1e

浙公网安备 33010602011771号