Chapter 1. Upgrade a Red Hat Ceph Storage cluster using cephadm As a storage administrator, you can use the cephadm Orchestrator to Red Hat Ceph Storage 7 with the ceph orch upgrade command. Note Upgrading directly from Red Hat Ceph Storage 5 to Red Hat Ceph Storage 7 is supported. The automated upgrade process follows Ceph best practices. For example: The upgrade order starts with Ceph Managers, Ceph Monitors, then other daemons. Each daemon is restarted only after Ceph indicates that the cluster will remain available. The storage cluster health status is likely to switch to HEALTH_WARNING during the upgrade. When the upgrade is complete, the health status should switch back to HEALTH_OK. Note You do not get a message once the upgrade is successful. Run ceph versions and ceph orch ps commands to verify the new image ID and the version of the storage cluster. 1.1. Compatibility considerations between RHCS and podman versions podman and Red Hat Ceph Storage have different end-of-life strategies that might make it challenging to find compatible versions. Red Hat recommends to use the podman version shipped with the corresponding Red Hat Enterprise Linux version for Red Hat Ceph Storage. See the Red Hat Ceph Storage: Supported configurations knowledge base article for more details. See the Contacting Red Hat support for service section in the Red Hat Ceph Storage Troubleshooting Guide for additional assistance. The following table shows version compatibility between Red Hat Ceph Storage 7 and versions of podman . Ceph Podman 1.9 2.0 2.1 2.2 3.0 >3.0 Red Hat Ceph Storage 7 false true true false true true Warning You must use a version of Podman that is 2.0.0 or higher. 1.2. Upgrading the Red Hat Ceph Storage cluster You can use ceph orch upgrade command for upgrading a Red Hat Ceph Storage cluster. Prerequisites Latest version of running Red Hat Ceph Storage cluster. Root-level access to all the nodes. Ansible user with sudo and passwordless ssh access to all nodes in the storage cluster. At least two Ceph Manager nodes in the storage cluster: one active and one standby. Note Red Hat Ceph Storage 5 also includes a health check function that returns a DAEMON_OLD_VERSION warning if it detects that any of the daemons in the storage cluster are running multiple versions of Red Hat Ceph Storage. The warning is triggered when the daemons continue to run multiple versions of Red Hat Ceph Storage beyond the time value set in the mon_warn_older_version_delay option. By default, the mon_warn_older_version_delay option is set to 1 week. This setting allows most upgrades to proceed without falsely seeing the warning. If the upgrade process is paused for an extended time period, you can mute the health warning: After the upgrade has finished, unmute the health warning: Procedure Enable the Ceph Ansible repositories on the Ansible administration node: Red Hat Enterprise Linux 9 Update the cephadm and cephadm-ansible package: Example Navigate to the /usr/share/cephadm-ansible/ directory: Example Run the preflight playbook with the upgrade_ceph_packages parameter set to true on the bootstrapped host in the storage cluster: Syntax Example This package upgrades cephadm on all the nodes. Log into the cephadm shell: Example Ensure all the hosts are online and that the storage cluster is healthy: Example Set the OSD noout , noscrub , and nodeep-scrub flags to prevent OSDs from getting marked out during upgrade and to avoid unnecessary load on the cluster: Example Check service versions and the available target containers: Syntax Example Note The image name is applicable for both Red Hat Enterprise Linux 8 and Red Hat Enterprise Linux 9. Upgrade the storage cluster: Syntax Example Note To perform a staggered upgrade, see Performing a staggered upgrade . While the upgrade is underway, a progress bar appears in the ceph status output. Example Verify the new IMAGE_ID and VERSION of the Ceph cluster: Example Note If you are not using the cephadm-ansible playbooks, after upgrading your Ceph cluster, you must upgrade the ceph-common package and client libraries on your client nodes. Example Verify you have the latest version: Example When the upgrade is complete, unset the noout , noscrub , and nodeep-scrub flags: Example 1.3. Upgrading the Red Hat Ceph Storage cluster in a disconnected environment You can upgrade the storage cluster in a disconnected environment by using the --image tag. You can use ceph orch upgrade command for upgrading a Red Hat Ceph Storage cluster. Prerequisites Latest version of running Red Hat Ceph Storage cluster. Root-level access to all the nodes. Ansible user with sudo and passwordless ssh access to all nodes in the storage cluster. At least two Ceph Manager nodes in the storage cluster: one active and one standby. Register the nodes to CDN and attach subscriptions. Check for the customer container images in a disconnected environment and change the configuration, if required. See the Changing configurations of custom container images for disconnected installations section in the Red Hat Ceph Storage Installation Guide for more details. By default, the monitoring stack components are deployed based on the primary Ceph image. For disconnected environment of the storage cluster, you have to use the latest available monitoring stack component images. Table 1.1. Custom image details for monitoring stack Monitoring stack component Image details for Red Hat Ceph Storage 7.0 Image details for Red Hat Ceph Storage 7.1 Prometheus registry.redhat.io/openshift4/ose-prometheus:v4.12 registry.redhat.io/openshift4/ose-prometheus:v4.15 Grafana registry.redhat.io/rhceph/grafana-rhel9:latest registry.redhat.io/rhceph/grafana-rhel9:latest Node-exporter registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.15 AlertManager registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12 registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.15 HAProxy registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest Keepalived registry.redhat.io/rhceph/keepalived-rhel9:latest registry.redhat.io/rhceph/keepalived-rhel9:latest SNMP Gateway registry.redhat.io/rhceph/snmp-notifier-rhel9:latest registry.redhat.io/rhceph/snmp-notifier-rhel9:latest Loki registry.redhat.io/openshift-logging/logging-loki-rhel8:v2.6.1 registry.redhat.io/openshift-logging/logging-loki-rhel8:v2.6.1 Promtail registry.redhat.io/rhceph/rhceph-promtail-rhel9:v2.4.0 registry.redhat.io/rhceph/rhceph-promtail-rhel9:v2.4.0 Find the latest available supported container images on the Red Hat Ecosystem Catalog . Procedure Enable the Ceph Ansible repositories on the Ansible administration node: Red Hat Enterprise Linux 9 Update the cephadm and cephadm-ansible package. Example Navigate to the /usr/share/cephadm-ansible/ directory: Example Run the preflight playbook with the upgrade_ceph_packages parameter set to true and the ceph_origin parameter set to custom on the bootstrapped host in the storage cluster: Syntax Example This package upgrades cephadm on all the nodes. Log into the cephadm shell: Example Ensure all the hosts are online and that the storage cluster is healthy: Example Set the OSD noout , noscrub , and nodeep-scrub flags to prevent OSDs from getting marked out during upgrade and to avoid unnecessary load on the cluster: Example Check service versions and the available target containers: Syntax Example Upgrade the storage cluster: Syntax Example While the upgrade is underway, a progress bar appears in the ceph status output. Example Verify the new IMAGE_ID and VERSION of the Ceph cluster: Example When the upgrade is complete, unset the noout , noscrub , and nodeep-scrub flags: Example Additional Resources See the Registering Red Hat Ceph Storage nodes to the CDN and attaching subscriptions section in the Red Hat Ceph Storage Installation Guide . See the Configuring a private registry for a disconnected installation section in the Red Hat Ceph Storage Installation Guide .

Commands:
ceph health mute DAEMON_OLD_VERSION --sticky
ceph health unmute DAEMON_OLD_VERSION
subscription-manager repos --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms
dnf update cephadm dnf update cephadm-ansible
cd /usr/share/cephadm-ansible
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
[ceph-admin@admin cephadm-ansible]USD ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
cephadm shell
ceph -s
ceph osd set noout ceph osd set noscrub ceph osd set nodeep-scrub
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check registry.redhat.io/rhceph/rhceph-7-rhel9:latest
ceph orch upgrade start IMAGE_NAME
ceph orch upgrade start registry.redhat.io/rhceph/rhceph-7-rhel9:latest
ceph status [...] progress: Upgrade to 18.2.0-128.el9cp (1s) [............................]
ceph versions ceph orch ps
[root@client01 ~] dnf update ceph-common
[root@client01 ~] ceph --version
ceph osd unset noout ceph osd unset noscrub ceph osd unset nodeep-scrub
subscription-manager repos --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms
dnf update cephadm dnf update cephadm-ansible
cd /usr/share/cephadm-ansible
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"
[ceph-admin@admin ~]USD ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"
cephadm shell
ceph -s
ceph osd set noout ceph osd set noscrub ceph osd set nodeep-scrub
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check LOCAL_NODE_FQDN :5000/rhceph/rhceph-7-rhel9
ceph orch upgrade start IMAGE_NAME
ceph orch upgrade start LOCAL_NODE_FQDN :5000/rhceph/rhceph-7-rhel9
ceph status [...] progress: Upgrade to 18.2.0-128.el9cp (1s) [............................]
ceph version ceph versions ceph orch ps
ceph osd unset noout ceph osd unset noscrub ceph osd unset nodeep-scrub