3.6. 配置数据平面以使用 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>: | [libvirt] images_type=rbd images_rbd_pool=vms images_rbd_ceph_conf=/etc/ceph/ceph.conf images_rbd_glance_store_name=<backend_name> images_rbd_glance_copy_poll_interval=15 images_rbd_glance_copy_timeout=600 rbd_user=openstack rbd_secret_uuid=<$FSID>-
将
<03-ceph-nova.conf> 替换为您的文件名。此文件名必须遵循 swig-<name>-nova.conf的命名约定。文件由 Compute 服务按字母顺序评估。以01开头的文件名将在以02开头的文件名之前由 Compute 服务评估。当同一配置选项在多个文件中发生时,最后一个配置选项读取成功。 -
将
<backend_name> 替换为OpenStackControlPlaneCR 的glance模板中指定的后端名称。 -
将
<$FSID> 替换为实际的 FSID,如 获取 Ceph FSID 部分所述。FSID本身不需要被视为 secret。
-
将
创建 default
nova服务的自定义版本,以使用新的ConfigMap,本例中为ceph-nova。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: nova-custom-ceph spec: 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-
自定义服务命名为
nova-custom-ceph。它不能命名为nova,因为nova是不可更改的默认服务。任何名称与默认服务名称相同的自定义服务都会在协调过程中被覆盖。
-
自定义服务命名为
应用
ConfigMap和自定义服务更改:$ oc create -f ceph-nova.yaml在
OpenStackDataPlaneNodeSetCR 中,添加ceph-client服务并将默认nova服务替换为新的自定义服务来更新服务列表,如nova-custom-ceph。添加extraMounts参数,以定义对 Ceph Storage secret 的访问。Example:
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet spec: ... services: - redhat - bootstrap - download-cache - configure-network - validate-network - install-os - configure-os - ssh-known-hosts - run-os - reboot-os - install-certs - ceph-client - ovn - neutron-metadata - 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-
您必须在服务列表中的
ovn、libvirt和nova-custom-ceph服务前面添加ceph-client服务。ceph-client服务通过分发 Red Hat Ceph Storage 客户端文件将 data plane 节点配置为 Red Hat Ceph Storage 服务器的客户端。 这个示例可能无法列出环境中的所有服务。您可以运行以下命令来验证环境中的服务列表:
$ oc get -n openstack crd/openstackdataplanenodesets.dataplane.openstack.org -o yaml |yq -r '.spec.versions.[].schema.openAPIV3Schema.properties.spec.properties.services.default如需更多信息,请参阅 Data plane 服务。
-
您必须在服务列表中的
- 保存对 services 列表的更改。
创建
OpenStackDataPlaneDeploymentCR:$ oc create -f <dataplanedeployment_cr_file>将
<dataplanedeployment_cr_file> 替换为您的文件的名称。nova-custom-ceph服务的 Ansible 作业会将覆盖从ConfigMap复制到计算服务主机。Ansible 作业也使用virsh secret channel命令,以便libvirt服务检索由FSID的cephxsecret。
验证
在
nova_compute容器之外运行以下命令,以确认 Ansible 作业的结果:$ sudo virsh secret-get-value $FSID