3.5. 配置数据平面以使用 Red Hat Ceph Storage 集群
配置数据平面以使用 Red Hat Ceph Storage 集群。
流程
创建一个
ConfigMap
,其中包含nova_compute
容器内计算服务(nova)配置文件/etc/nova/nova.conf.d/
的额外内容。此额外内容指示计算服务使用 Red Hat Ceph Storage RBD。apiVersion: v1 kind: ConfigMap metadata: name: ceph-nova data: 03-ceph-nova.conf: | 1 [libvirt] images_type=rbd images_rbd_pool=vms images_rbd_ceph_conf=/etc/ceph/ceph.conf images_rbd_glance_store_name=default_backend images_rbd_glance_copy_poll_interval=15 images_rbd_glance_copy_timeout=600 rbd_user=openstack rbd_secret_uuid=$FSID 2
创建 default
nova
服务的自定义版本,以使用新的ConfigMap
,本例中为ceph-nova
。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: nova-custom-ceph 1 spec: label: dataplane-deployment-nova-custom-ceph caCerts: combined-ca-bundle edpmServiceType: nova dataSources: - configMapRef: name: ceph-nova - secretRef: name: nova-cell1-compute-config - secretRef: name: nova-migration-ssh-key playbook: osp.edpm.nova
- 1
- 自定义服务命名为
nova-custom-ceph
。它不能命名为nova
,因为nova
是不可更改的默认服务。任何名称与默认服务名称相同的自定义服务都会在协调过程中被覆盖。
应用
ConfigMap
和自定义服务更改:$ oc create -f ceph-nova.yaml
更新
OpenStackDataPlaneNodeSet
服务列表,将nova
服务替换为新的自定义服务(本例中为nova-custom-ceph
),添加ceph-client
服务,并使用extraMounts
参数来定义对 Ceph Storage secret 的访问。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet spec: ... roles: edpm-compute: ... services: - configure-network - validate-network - install-os - configure-os - run-os - ceph-client - ovn - libvirt - nova-custom-ceph - telemetry nodeTemplate: extraMounts: - extraVolType: Ceph volumes: - name: ceph secret: secretName: ceph-conf-files mounts: - name: ceph mountPath: "/etc/ceph" readOnly: true
注意在
libvirt
和nova-custom-ceph
服务之前,必须添加ceph-client
服务。ceph-client
服务通过分发 Red Hat Ceph Storage 客户端文件将 EDPM 节点配置为 Red Hat Ceph Storage 服务器的客户端。- 保存对 services 列表的更改。
创建
OpenStackDataPlaneDeployment
CR:$ oc create -f <dataplanedeployment_cr_file>
-
将
<dataplanedeployment_cr_file
> 替换为您的文件的名称。
-
将
结果
当 nova-custom-ceph
服务 Ansible 作业运行时,作业会从 ConfigMap
复制到计算服务主机。它还将使用 virsh secretProducer
命令,以便 libvirt
服务检索由 FSID
的 cephx
secret。
作业完成后在 EDPM 节点上运行以下命令,以确认作业结果:
$ podman exec libvirt_virtsecretd virsh secret-get-value $FSID