5.3. Configuring the DCN data plane
Configure the data plane to integrate with your Red Hat Ceph Storage backend. This configuration enables data plane nodes to access Ceph for persistent storage operations.
Prerequisites
- Complete the procedures in Integrating Red Hat Ceph Storage.
Procedure
-
Edit the
OpenStackDataPlaneNodeSetCR. To make the
cephxkey and configuration file available for the Compute service (nova), use theextraMountsparameter.The following is an example of using the
extraMountsparameter for this purpose:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet spec: ... nodeTemplate: extraMounts: - extraVolType: Ceph volumes: - name: ceph secret: secretName: ceph-conf-files mounts: - name: ceph mountPath: "/etc/ceph" readOnly: trueCreate a
ConfigMapto add required configuration details to the Compute service (nova). Create a file calledceph-nova-az0.yamland add contents similar to the following. You must add the Image service (glance) endpoint for the local availability zone, as well as set thecross_az_attachparameter to false:apiVersion: v1 kind: ConfigMap metadata: name: ceph-nova-az0 namespace: openstack data: 03-ceph-nova.conf: [libvirt] images_type = rbd images_rbd_pool = vms images_rbd_ceph_conf = /etc/ceph/az0.conf images_rbd_glance_store_name = az0 images_rbd_glance_copy_poll_interval = 15 images_rbd_glance_copy_timeout = 600 rbd_user = openstack rbd_secret_uuid = 9cfb3a03-3f91-516a-881e-a675f67c30ea hw_disk_discard = unmap volume_use_multipath = False [glance] endpoint_override = http://glance-az0-internal.openstack.svc:9292 valid_interfaces = internal [cinder] cross_az_attach = False catalog_info = volumev3:cinderv3:internalURLCreate the
ConfigMap:oc create -f ceph-nova-az0.yamlCreate a custom Compute (nova) service to use the ConfigMap. Create a file called
nova-custom-az0.yamland add contents similar to the following. You must add the name of theConfigMapthat you just created under thedataSourcesfield:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: nova-custom-ceph-az0 spec: addCertMounts: false caCerts: combined-ca-bundle dataSources: - configMapRef: name: ceph-nova-az0 - secretRef: name: nova-cell1-compute-config - secretRef: name: nova-migration-ssh-key edpmServiceType: nova playbook: osp.edpm.nova tlsCerts: default: contents: - dnsnames - ips edpmRoleServiceName: nova issuer: osp-rootca-issuer-internal networks: - ctlplaneCreate the custom service:
oc create -f nova-custom-ceph-az0.yaml참고You must create a unique
ConfigMapand custom Compute service for each availability zone. Append the availability zone to the end of these file names as shown in the previous steps.-
Locate the
serviceslist in the CR. Edit the
serviceslist to restore all of the services removed in Configuring the data plane node networks. Restoring the fullserviceslist allows the remaining jobs to be run that complete the configuration of the HCI environment.The following is an example of a full
serviceslist with the additional services in bold:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet spec: ... services: - bootstrap - configure-network - validate-network - install-os - ceph-hci-pre - configure-os - ssh-known-hosts - run-os - reboot-os - install-certs - ceph-client - ovn - neutron-metadata - libvirt - nova-custom-ceph-az0참고In addition to restoring the default service list, the
ceph-clientservice is added after therun-osservice. Theceph-clientservice configures EDPM nodes as clients of a Red Hat Ceph Storage server. This service distributes the files necessary for the clients to connect to the Red Hat Ceph Storage server. Theceph-hci-preservice is only needed when you deploy HCI.Optional: You can assign compute nodes to Compute service (nova) cells the same as you can in any other environment. Replace the
novaservice in yourOpenStackDataPlaneNodeSetCR with your customnovaservice:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: openstack-cell2 spec: services: - download-cache - bootstrap - configure-network - validate-network - install-os - configure-os - ssh-known-hosts - run-os - ovn - libvirt - *nova-cell-custom*For more information, see Connecting an OpenStackDataPlaneNodeSetSR to a Compute cell.
참고If you are using cells, then the
neutron-metadataservice is unique per cell and defined separately. For exampleneutron-metadata-cell1:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: labels: app.kubernetes.io/instance: neutron-metadata-cell1 app.kubernetes.io/name: openstackdataplaneservice app.kubernetes.io/part-of: openstack-operator name: neutron-metadata-cell1 ...The
nova-custom-cephservice is unique for each availability zone and defined separately. For example,nova-custom-ceph-az0:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: labels: app.kubernetes.io/instance: nova-custom-ceph-az0 app.kubernetes.io/name: openstackdataplaneservice app.kubernetes.io/part-of: openstack-operator name: nova-custom-ceph-az0 namespace: openstackOptional: If you are deploying Red Hat Ceph Storage (RHCS) as a hyperconverged solution, complete the following steps:
Create a
ConfigMapto set thereserved_host_memory_mbparameter to a value appropriate for your configuration:The following is an example of a ConfigMap used for this purpose:
apiVersion: v1 kind: ConfigMap metadata: name: reserved-memory-nova data: 04-reserved-memory-nova.conf: | [DEFAULT] reserved_host_memory_mb=75000참고The value for the
reserved_host_memory_mbparameter may be set so that the Compute service scheduler does not give memory to a virtual machine that a Ceph OSD on the same server needs. The example reserves 5 GB per OSD for 10 OSDs per host in addition to the default reserved memory for the hypervisor. In an IOPS-optimized cluster, you can improve performance by reserving more memory for each OSD. The 5 GB number is provided as a starting point which can be further tuned if necessary.Edit the
OpenStackDataPlaneService/nova-custom-ceph-azfile. Addreserved-memory-novato theconfigMapslist in theOpenStackDataPlaneServiceCR calledceph-nova-az0that you created earlier:kind: OpenStackDataPlaneService <...> spec: configMaps: - ceph-nova - reserved-memory-nova
Apply the CR changes.
$ oc apply -f <dataplane_cr_file>Replace
<dataplane_cr_file>with the name of your file.참고Ansible does not configure or validate the networks until the
OpenStackDataPlaneDeploymentCRD is created.
-
Create an
OpenStackDataPlaneDeploymentCRD, as described in Creating the data plane in the Deploying Red Hat OpenStack Services on OpenShift guide, which has theOpenStackDataPlaneNodeSetCRD file defined above to have Ansible configure the services on the data plane nodes.