OpenStack Train版-16.对接Ceph存储
1.集群创建OpenStack所需的存储池和用户(Ceph Mon节点)
创建 OpenStack所需的存储池
ceph osd pool create volumes 128 ceph osd pool create images 32 ceph osd pool create vms 128
同步配置文件
cd /etc/ceph ceph-deploy --overwrite-conf admin controller compute01 compute02
创建用户并授权
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=vms, allow rx pool=images' ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
同步用户秘钥并修改属主
ceph auth get-or-create client.glance | ssh controller tee /etc/ceph/ceph.client.glance.keyring ssh controller chown glance:glance /etc/ceph/ceph.client.glance.keyring ceph auth get-or-create client.cinder | ssh controller tee /etc/ceph/ceph.client.cinder.keyring ssh controller chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring ceph auth get-or-create client.cinder | ssh compute01 tee /etc/ceph/ceph.client.cinder.keyring ssh compute01 chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring ceph auth get-or-create client.cinder | ssh compute02 tee /etc/ceph/ceph.client.cinder.keyring ssh compute02 chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
2.各计算节点使用相同的UUID增加秘钥到libvirt
生成UUID
UUID=$(uuidgen) echo $UUID 02aa5663-b0b5-453d-a0ce-1f24c61716c6
生成并同步secret.xml到所有计算节点(同步及增加秘钥部分略)
cd /etc/ceph cat > secret.xml <${UUID} EOF client.cinder secret
添加密钥到libvirt
virsh secret-define --file secret.xml
Secret 02aa5663-b0b5-453d-a0ce-1f24c61716c6 created
virsh secret-set-value --secret ${UUID} --base64 $(cat /etc/ceph/ceph.client.cinder.keyring | grep key | awk -F ' ' '{ print $3 }')
Secret value set
查看添加后的密钥key和value
virsh secret-list UUID Usage -------------------------------------------------------------------------------- 02aa5663-b0b5-453d-a0ce-1f24c61716c6 ceph client.cinder secret
查看value
virsh secret-get-value $UUID
3.配置Glance集成Ceph作为后端存储并验证(控制节点)
vim /etc/glance/glance-api.conf [DEFAULT] show_image_direct_url = True [glance_store] stores = rbd,file,http default_store = rbd filesystem_store_datadir = /var/lib/glance/images/ rbd_store_pool = images rbd_store_user = glance rbd_store_ceph_conf = /etc/ceph/ceph.conf #rbd_store_chunk_size = 8 [paste_deploy] flavor = keystone
重启glance-api服务
systemctl restart openstack-glance-api.service
4.配置Cinder集成Ceph作为后端存储并验证(控制节点和存储节点)
vim /etc/cinder/cinder.conf # 控制节点 [DEFAULT] default_volume_type = ceph
重启cinder-api和cinder-scheduler服务
systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
存储节点一般会部署到控制节点上,根据实际环境而定
vim /etc/cinder/cinder.conf # 存储节点 [DEFAULT] enabled_backends = ceph,lvm [ceph] volume_driver = cinder.volume.drivers.rbd.RBDDriver volume_backend_name = ceph rbd_pool = volumes rbd_ceph_conf = /etc/ceph/ceph.conf rbd_flatten_volume_from_snapshot = false rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 rados_connect_timeout = -1 glance_api_version = 2 rbd_user = cinder rbd_secret_uuid = 02aa5663-b0b5-453d-a0ce-1f24c61716c6 # rbd_secret_uuid的值即为配置Ceph环境保存的UUID值
重启cinder-api和cinder-volume服务
systemctl restart openstack-cinder-volume.service
5.配置Nova集成Ceph(计算节点)
vim /etc/nova/nova.conf [DEFAULT] live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED" [libvirt] virt_type = kvm inject_partition=-2 virt_type = kvm images_type = rbd images_rbd_pool = vms images_rbd_ceph_conf = /etc/ceph/ceph.conf disk_cachemodes="network=writeback" rbd_user = cinder rbd_secret_uuid = 02aa5663-b0b5-453d-a0ce-1f24c61716c6 # rbd_secret_uuid的值即为配置Ceph环境保存的UUID值
重启nova-compute服务
systemctl restart openstack-nova-compute.service