OpenStack集成Ceph
OpenStack有3个组件可以使用Ceph:1. Glance:Glance可以把镜像存储在Ceph上;
2. Cinder:Cinder负责管理volume,把volume挂载给instance使用或者直接从volume启动instance。集成Ceph后可以让Cinder在Ceph上创建volume;
3. Nova:在OpenStack Havana版本开始,Nova可以直接把instance的disk存放在Ceph上。
下面记录了如何把这些组件改造为使用Ceph。
环境介绍:
OpenStack Queens版本,1台控制节点controller,1台计算节点compute;
操作系统:CentOS 7.5
Ceph版本12.2.4,luminous
第一步,创建存储池
在Ceph集群上总共创建3个存储池,分别给Glance,Cinder和Nova使用,
# ceph osd pool create images 192 #Glance的存储池
# ceph osd pool create volumes 192 #Cinder的存储池
# ceph osd pool create vms 192 #Nova的存储池
第二步,配置OpenStack的Ceph客户端
1. 拷贝ceph.conf
把Ceph的配置文件/etc/ceph/ceph.conf拷贝到2台OpenStack节点上,控制节点和计算节点都需要,因为他们都要跟Ceph通信。
2. 安装软件包
在控制节点安装python-rbd和ceph软件包:
# yum install -y python-rbd ceph
在计算节点安装ceph:
# yum install -y ceph
如果不安装ceph,OpenStack在使用Ceph时会报找不到ceph命令。
3. 配置cephx认证
#创建client.cinder用户给Cinder和Nova使用,cinder用户有存储池volumes、vms和images的所有权限
# 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'
#创建client.glance用户给Glance使用,glance用户有存储池images的所有权限
# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
生成2个用户的密钥文件,
# ceph auth get-or-create client.cinder > /etc/ceph/ceph.client.cinder.keyring
# ceph auth get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring
然后把/etc/ceph/ceph.client.cinder.keyring和/etc/ceph/ceph.client.glance.keyring拷到controller的/etc/ceph下,并且修改文件权限:
# chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
# chown glance:glance /etc/ceph/ceph.client.glance.keyring
把/etc/ceph/ceph.client.cinder.keyring拷到compute的/etc/ceph下,并且修改文件权限:
# chown nova:nova /etc/ceph/ceph.client.cinder.keyring
4. 配置compute节点的libvirt
在ceph上获取client.cinder的key
# ceph auth get-key client.cinder > client.cinder.key
把client.cinder.key拷到compute节点的/etc/ceph下,在compute节点上执行以下步骤:
# cat > secret.xml
页:
[1]