第 2 章 集成 Red Hat Ceph Storage
您可以在 OpenShift (RHOSO)上配置 Red Hat OpenStack Services,以便与外部 Red Hat Ceph Storage 集群集成。此配置将以下服务连接到 Red Hat Ceph Storage 集群:
- Block Storage 服务 (cinder)
- Image 服务 (glance)
- Object Storage 服务 (swift)
- 计算服务(nova)
- 共享文件系统服务(manila)
要将 Red Hat Ceph Storage 配置为 RHOSO 存储的后端,请完成以下任务:
- 验证 Red Hat Ceph Storage 是否已部署,并且所有必需的服务都在运行。
- 在 Red Hat Ceph Storage 集群中创建 Red Hat Ceph Storage 池。
- 在 Red Hat Ceph Storage 集群中创建 Red Hat Ceph Storage secret,以提供 Red Hat Ceph Storage 集群的 RHOSO 服务访问权限。
- 获取 Ceph 文件系统标识符。
- 配置 OpenStackControlPlane CR,以使用 Red Hat Ceph Storage 集群作为后端。
- 配置 OpenStackDataPlane CR,以使用 Red Hat Ceph Storage 集群作为后端。
先决条件
- 访问 Red Hat Ceph Storage 集群。
- RHOSO control plane 安装在一个可正常工作的 RHOSO 集群中。
2.1. 创建 Red Hat Ceph Storage 池
在 Red Hat Ceph Storage 集群服务器上为每个使用集群的 RHOSO 服务创建池。
流程
为 Compute 服务(vms)、块存储服务(volumes)和镜像服务(images)创建池:
$ for P in vms volumes images; do cephadm shell -- ceph osd pool create $P; cephadm shell -- ceph osd pool application enable $P rbd; done
注意在创建池时,设置适当的放置组(PG)号,如 Red Hat Ceph Storage 策略指南中的 放置组 中所述。
可选:如果在 control plane 中启用了共享文件系统服务(manila),则创建
cephfs
卷。这会自动启用 CephFS 元数据服务(MDS),并在 Ceph 集群中创建必要的数据和元数据池:$ cephadm shell -- ceph fs volume create cephfs
可选:在 Red Hat Ceph Storage 集群上部署 NFS 服务,以便将 CephFS 与 NFS 搭配使用:
$ cephadm shell -- ceph nfs cluster create cephfs \ --ingress --virtual-ip=<vip> \ --ingress-mode=haproxy-protocol
将
<vip
> 替换为分配给 NFS 服务的 IP 地址。NFS 服务应当隔离在一个可与所有 Red Hat OpenStack 用户共享的网络中。有关自定义 NFS 服务的更多信息,请参阅 NFS 集群和导出管理。重要当您为共享文件系统服务部署 NFS 服务时,请不要选择要公开 NFS 的自定义端口。仅支持 2049 的默认 NFS 端口。您必须启用 Red Hat Ceph Storage
ingress
服务,并将ingress-mode
设置为haproxy-protocol
。否则,您不能将基于 IP 的访问规则与共享文件系统服务一起使用。对于生产环境中的安全性,红帽不推荐在共享上提供对0.0.0.0/0
的访问,以将其挂载到客户端机器上。
为 RHOSO 创建 cephx 密钥以访问池:
$ cephadm shell -- \ ceph auth add client.openstack \ mgr 'allow *' \ mon 'allow r' \ osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rwx pool=volumes, allow rwx pool=images'
重要如果 control plane 中启用了共享文件系统服务,请将
osd
caps 替换为以下内容:OSD 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rwx pool=volumes, allow rwx pool=images, allow rwx pool=cephfs.cephfs.data'
导出 cephx 密钥:
$ cephadm shell -- ceph auth get client.openstack > /etc/ceph/ceph.client.openstack.keyring
导出配置文件:
$ cephadm shell -- ceph config generate-minimal-conf > /etc/ceph/ceph.conf