Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 6. Upgrading an overcloud with director-deployed Ceph deployments
If your environment includes director-deployed Red Hat Ceph Storage deployments with or without hyperconverged infrastructure (HCI) nodes, you must upgrade your deployments to Red Hat Ceph Storage 5. With an upgrade to version 5, cephadm
now manages Red Hat Ceph Storage instead of ceph-ansible
.
6.1. Installing ceph-ansible
If you deployed Red Hat Ceph Storage using director, you must complete this procedure. The ceph-ansible
package is required to upgrade Red Hat Ceph Storage with Red Hat OpenStack Platform.
Procedure
Enable the Ceph 5 Tools repository:
[stack@director ~]$ sudo subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Determine if
ceph-ansible
is installed:[stack@director ~]$ sudo rpm -q ceph-ansible
Install or update the
ceph-ansible
package.If
ceph-ansible
is not installed, install theceph-ansible
package:[stack@director ~]$ sudo dnf install -y ceph-ansible
If
ceph-ansible
is installed, update theceph-ansible
package to the latest version:[stack@director ~]$ sudo dnf update -y ceph-ansible
6.2. 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
cephadm
client - External Red Hat Ceph Storage cluster environments: Updating the Red Hat Ceph Storage container image
Procedure
-
Log in to the undercloud host as the
stack
user. Source the
stackrc
undercloud credentials file:$ source ~/stackrc
Run the Red Hat Ceph Storage external upgrade process with the
ceph
tag:$ 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_cephansible
to the provided comma-separated list of values for the--skip-tags
parameter.
-
Replace
Run the
ceph versions
command to confirm all Red Hat Ceph Storage daemons have been upgraded to version 5. This command is available in theceph monitor
container that is hosted by default on the Controller node.ImportantThe command in the previous step runs the
ceph-ansible
rolling_update.yaml
playbook 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 } }
NoteThe output of the command
sudo podman ps | grep ceph
on any server hosting Red Hat Ceph Storage should return a version 5 container.Create the
ceph-admin
user 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_osd
Update 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>&1
If you are running this command at a DCN deployed site, add the value skip-tag
cleanup_cephansible
to the provided comma-separated list of values for the--skip-tags
parameter.NoteBy 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_mon
tag, 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>&1
-
If you are running this command at a DCN deployed site, add the value skip-tag
cleanup_cephansible
to the provided comma-separated list of values for the--skip-tags
parameter.
-
If you are running this command at a DCN deployed site, add the value skip-tag
Run the
ceph -s
command to confirm all processes are now managed by Red Hat Ceph Storage orchestrator. This command is available in theceph monitor
container that is hosted by default on the Controller node.ImportantThe command in the previous step runs the
ceph-ansible
cephadm-adopt.yaml
playbook to move future management of the cluster fromceph-ansible
tocephadm
and 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-ansible
cephadm-adopt.yml
playbook. 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 cephadm
Modify the
overcloud_upgrade_prepare.sh
file to replace theceph-ansible
file with acephadm
heat environment file.#!/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 /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm-rbd-only.yaml \ -e ~/containers-prepare-parameter.yaml
NoteThis example uses the
environments/cephadm/cephadm-rbd-only.yaml
file because RGW is not deployed. If you plan to deploy RGW, useenvironments/cephadm/cephadm.yaml
after you finish upgrading your RHOSP environment, and then run a stack update.Modify the
overcloud_upgrade_prepare.sh
file 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.sh
If your deployment includes HCI nodes, create a temporary
hci.conf
file in acephadm
container 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
cephadm
shell from the Controller node:Example
[cloud-admin@controller-0 ~]$ sudo cephadm shell
In the
cephadm
shell, create a temporaryhci.conf
file: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.conf
For 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.
The Red Hat Ceph Storage cluster is now upgraded to version 5. This has the following implications:
-
You no longer use
ceph-ansible
to manage Red Hat Ceph Storage. Instead, the Ceph Orchestrator manages the Red Hat Ceph Storage cluster. For more information about the Ceph Orchestrator, see The Ceph Operations Guide. - You no longer need to perform stack updates to make changes to the Red Hat Ceph Storage cluster in most cases. Instead, you can run day two Red Hat Ceph Storage operations directly on the cluster as described in The Ceph Operations Guide. You can also scale Red Hat Ceph Storage cluster nodes up or down as described in Scaling the Ceph Storage cluster in Deploying Red Hat Ceph Storage and Red Hat OpenStack Platform together with director.
- Inspect the Red Hat Ceph Storage cluster’s health. For more information about monitoring your cluster’s health, see Monitoring Red Hat Ceph Storage nodes in Deploying Red Hat Ceph Storage and Red Hat OpenStack Platform together with director.
Do not include environment files, such as
environments/ceph-ansible/ceph-ansible.yaml
, in openstack deployment commands such asopenstack overcloud deploy
. If your deployment includesceph-ansible
environment files, replace them with one of the following options:Red Hat Ceph Storage deployment Original ceph-ansible
fileCephadm
file replacementCeph RADOS Block Device (RBD) only
Any
ceph-ansible
environment fileenvironments/cephadm/cephadm-rbd-only.yaml
RBD and the Ceph Object Gateway (RGW)
Any
ceph-ansible
environment fileenvironments/cephadm/cephadm.yaml
Ceph Dashboard
environments/ceph-ansible/ceph-dashboard.yaml
Respective file in
environments/cephadm/
Ceph MDS
environments/ceph-ansible/ceph-mds.yaml
Respective file in
environments/cephadm/