9.3. Upgrading to Red Hat Ceph Storage 5
Upgrade the following nodes from Red Hat Ceph Storage version 4 to version 5:
- Red Hat Ceph Storage nodes
- Hyperconverged infrastructure (HCI) nodes, which contain combined Compute and Ceph OSD services
For information about the duration and impact of this upgrade procedure, see Upgrade duration and impact.
Red Hat Ceph Storage 5 uses Prometheus v4.10, which has the following known issue: If you enable Red Hat Ceph Storage dashboard, two data sources are configured on the dashboard. For more information about this known issue, see BZ#2054852.
Red Hat Ceph Storage 6 uses Prometheus v4.12, which does not include this known issue. Red Hat recommends upgrading from Red Hat Ceph Storage 5 to Red Hat Ceph Storage 6 after the upgrade from Red Hat OpenStack Platform (RHOSP) 16.2 to 17.1 is complete. To upgrade from Red Hat Ceph Storage version 5 to version 6, begin with one of the following procedures for your environment:
-
Director-deployed Red Hat Ceph Storage environments: Updating the
cephadmclient - External Red Hat Ceph Storage cluster environments: Updating the Red Hat Ceph Storage container image
Back up your Red Hat Ceph Storage configuration file, for example, /etc/ceph/ceph.conf, in case the file is deleted during the upgrade. For more information about this issue, see BZ#2267114.
Procedure
-
Log in to the undercloud host as the
stackuser. Source the
stackrcundercloud credentials file:$ source ~/stackrcRun the Red Hat Ceph Storage external upgrade process with the
cephtag:$ openstack overcloud external-upgrade run \ --skip-tags "ceph_ansible_remote_tmp" \ --stack <stack> \ --tags ceph,facts 2>&1-
Replace
<stack>with the name of your stack. -
If you are running this command at a DCN deployed site, add the value skip-tag
cleanup_cephansibleto the provided comma-separated list of values for the--skip-tagsparameter.
-
Replace
Run the
ceph versionscommand to confirm all Red Hat Ceph Storage daemons have been upgraded to version 5. This command is available in theceph monitorcontainer that is hosted by default on the Controller node.重要The command in the previous step runs the
ceph-ansiblerolling_update.yamlplaybook to update the cluster from version 4 to 5. It is important to confirm all daemons have been updated before proceeding with this procedure.The following example demonstrates the use and output of this command. As demonstrated in the example, all daemons in your deployment should show a package version of
16.2.*and the keywordpacific.$ sudo podman exec ceph-mon-$(hostname -f) ceph versions { "mon": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "mgr": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "osd": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 180 }, "mds": {}, "rgw": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "overall": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 189 } }注記The output of the command
sudo podman ps | grep cephon any server hosting Red Hat Ceph Storage should return a version 5 container.Create the
ceph-adminuser and distribute the appropriate keyrings:ANSIBLE_LOG_PATH=/home/stack/cephadm_enable_user_key.log \ ANSIBLE_HOST_KEY_CHECKING=false \ ansible-playbook -i /home/stack/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ -b -e ansible_python_interpreter=/usr/libexec/platform-python /usr/share/ansible/tripleo-playbooks/ceph-admin-user-playbook.yml \ -e tripleo_admin_user=ceph-admin \ -e distribute_private_key=true \ --limit Undercloud,ceph_mon,ceph_mgr,ceph_rgw,ceph_mds,ceph_nfs,ceph_grafana,ceph_osdUpdate the packages on the Red Hat Ceph Storage nodes:
$ openstack overcloud upgrade run \ --stack <stack> \ --skip-tags ceph_ansible_remote_tmp \ --tags setup_packages --limit Undercloud,ceph_mon,ceph_mgr,ceph_rgw,ceph_mds,ceph_nfs,ceph_grafana,ceph_osd \ --playbook /home/stack/overcloud-deploy/<stack>/config-download/<stack>/upgrade_steps_playbook.yaml 2>&1If you are running this command at a DCN deployed site, add the value skip-tag
cleanup_cephansibleto the provided comma-separated list of values for the--skip-tagsparameter.注記By default, the Ceph Monitor service (CephMon) runs on the Controller nodes unless you have used the composable roles feature to host them elsewhere. This command includes the
ceph_montag, which also updates the packages on the nodes hosting the Ceph Monitor service (the Controller nodes by default).
Configure the Red Hat Ceph Storage nodes to use
cephadm:$ openstack overcloud external-upgrade run \ --skip-tags ceph_ansible_remote_tmp \ --stack <stack> \ --tags cephadm_adopt 2>&1If you are running this command at a DCN deployed site, add the value skip-tag
cleanup_cephansibleto the provided comma-separated list of values for the--skip-tagsparameter.注記The adoption of
cephadmcan cause downtime in the RGW and Alertmanager services. For more information about these issues, see Restarting Red Hat Ceph Storage 5 services.
Run the
ceph -scommand to confirm all processes are now managed by Red Hat Ceph Storage orchestrator. This command is available in theceph monitorcontainer that is hosted by default on the Controller node.重要The command in the previous step runs the
ceph-ansiblecephadm-adopt.yamlplaybook to move future management of the cluster fromceph-ansibletocephadmand the Red Hat Ceph Storage orchestrator. It is important to confirm all processes are now managed by the orcestrator before proceeding with this procedure.The following example demonstrates the use and output of this command. As demonstrated in this example, there are 63 daemons that are not managed by
cephadm. This indicates there was a problem with the running of theceph-ansiblecephadm-adopt.ymlplaybook. Contact Red Hat Ceph Storage support to troubleshoot these errors before proceeding with the upgrade. When the adoption process has been completed successfully, there should not be any warning about stray daemons not managed bycephadm.$ sudo cephadm shell -- ceph -s cluster: id: f5a40da5-6d88-4315-9bb3-6b16df51d765 health: HEALTH_WARN 63 stray daemon(s) not managed by cephadmModify the
overcloud_upgrade_prepare.shfile to replace theceph-ansiblefile with acephadmheat environment file:重要Do not include
ceph-ansibleenvironment or deployment files, for example,environments/ceph-ansible/ceph-ansible.yamlordeployment/ceph-ansible/ceph-grafana.yaml, in openstack deployment commands such asopenstack overcloud upgrade prepareandopenstack overcloud deploy. For more information about replacingceph-ansibleenvironment and deployment files withcephadmfiles, see Implications of upgrading to Red Hat Ceph Storage 5.#!/bin/bash openstack overcloud upgrade prepare --yes \ --timeout 460 \ --templates /usr/share/openstack-tripleo-heat-templates \ --ntp-server 192.168.24.1 \ --stack <stack> \ -r /home/stack/roles_data.yaml \ -e /home/stack/templates/internal.yaml \ … -e <cephadm-file> \ -e ~/containers-prepare-parameter.yamlwhere:
- <cephadm-file>
-
If you deployed RGW in a previous RHOSP version, or if you plan to deploy RGW, use
environments/cephadm/cephadm.yaml. -
If you plan to deploy RBD, use
environments/cephadm/cephadm-rbd-only.yaml.
-
If you deployed RGW in a previous RHOSP version, or if you plan to deploy RGW, use
Modify the
overcloud_upgrade_prepare.shfile to remove the following environment file if you added it earlier when you ran the overcloud upgrade preparation:-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml- Save the file.
Run the upgrade preparation command:
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh sh /home/stack/overcloud_upgrade_prepare.shIf your deployment includes HCI nodes, create a temporary
hci.conffile in acephadmcontainer of a Controller node:Log in to a Controller node:
$ ssh cloud-admin@<controller_ip>-
Replace
<controller_ip>with the IP address of the Controller node.
-
Replace
Retrieve a
cephadmshell from the Controller node:Example
[cloud-admin@controller-0 ~]$ sudo cephadm shellIn the
cephadmshell, create a temporaryhci.conffile:Example
[ceph: root@edpm-controller-0 /]# cat <<EOF > hci.conf [osd] osd_memory_target_autotune = true osd_numa_auto_affinity = true [mgr] mgr/cephadm/autotune_memory_target_ratio = 0.2 EOF …Apply the configuration:
Example
[ceph: root@edpm-controller-0 /]# ceph config assimilate-conf -i hci.confFor more information about adjusting the configuration of your HCI deployment, see Ceph configuration overrides for HCI in Deploying a hyperconverged infrastructure.
You must upgrade the operating system on all HCI nodes to RHEL 9. For more information on upgrading Compute and HCI nodes, see Upgrading Compute nodes to RHEL 9.2.
If Red Hat Ceph Storage Rados Gateway (RGW) is used for object storage, complete the steps in Ceph config overrides set for the RGWs on the RHCS 4.x does not get reflected after the Upgrade to RHCS 5.x to ensure your Red Hat Ceph Storage 4 configuration is reflected completely in Red Hat Ceph Storage 5.
If the Red Hat Ceph Storage Dashboard is installed, complete the steps in After FFU 16.2 to 17.1, Ceph Grafana dashboard failed to start due to incorrect dashboard configuration to ensure it is properly configured.