第17章 Red Hat Ceph Storage 5 から 6 へのアップグレード
他のすべてのアップグレードタスクが完了したら、Red Hat Ceph Storage クラスターをリリース 5 から 6 にアップグレードできます。
前提条件
- Red Hat OpenStack Platform 16.2 から 17.1 へのアップグレードが完了している。
- すべてのコントローラーノードが Red Hat Enterprise Linux 9 にアップグレードされている。HCI 環境では、すべてのコンピュートノードも RHEL 9 にアップグレードする必要があります。
- 現在の Red Hat Ceph Storage 5 クラスターが健全な状態である。
17.1. director でデプロイされた Red Hat Ceph Storage 環境 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage が director によって環境にデプロイされた場合は、次のタスクを実行します。
17.1.1. cephadm クライアントの更新 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターをアップグレードする前に、オーバークラウドノードの cephadm パッケージをリリース 6 に更新する必要があります。
前提条件
コントローラーノードにログインし、Red Hat Ceph Storage クラスターの健全性ステータスが
HEALTH_OKであることを確認します。$ sudo cephadm shell -- ceph -sステータスが
HEALTH_OKでない場合は、この手順を続行する前に問題を修正してください。Red Hat Ceph Storage 6 のトラブルシューティングの詳細は、トラブル シューティングガイド を参照してください。
手順
コントローラーノードで Red Hat Ceph Storage (ツールのみ) リポジトリーを有効にするための Playbook を作成します。次の情報を含める必要があります。
- hosts: all gather_facts: false tasks: - name: Enable RHCS 7 tools repo ansible.builtin.command: | subscription-manager repos --disable=rhceph-6-tools-for-rhel-9-x86_64-rpms --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms become: true - name: Update cephadm ansible.builtin.package: name: cephadm state: latest become: truePlaybook を実行します。
ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml <playbook_file_name> --limit <controller_role>-
<stack>は、スタックの名前に置き換えます。 -
<playbook_file_name>は、前の手順で作成した Playbook の名前に置き換えます。 -
<controller_role>は、コントローラーノードに適用するロールに置き換えます。 -
--limitオプションを使用して、コンテンツをコントローラーノードにのみ適用します。
-
- コントローラーノードにログインします。
cephadmパッケージがリリース 6 に更新されていることを確認します。$ sudo dnf info cephadm | grep -i version
17.1.2. Red Hat Ceph Storage コンテナーイメージの更新 リンクのコピーリンクがクリップボードにコピーされました!
container-image-prepare.yaml ファイルは、ContainerImagePrepare パラメーターを含むファイルであり、Red Hat Ceph Storage コンテナーを定義します。このファイルは、アンダークラウドとオーバークラウドのコンテナーイメージを取得するルールを定義するために、tripleo-container-image prepare コマンドで使用します。環境を更新する前に、このファイルを正しいイメージバージョンで更新してください。
手順
-
コンテナー準備ファイルを見つけます。このファイルのデフォルト名は、
containers-prepare-parameter.yamlです。 - コンテナー準備ファイルを編集します。
ceph_tagパラメーターを見つけます。現在のエントリーは次の例のようになっているはずです。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '6'Red Hat Ceph Storage 6 の
ceph_tagパラメーターを更新します。ceph_namespace: registry.redhat.io ceph_image: rhceph-7-rhel9 ceph_tag: '7'containers-image-prepare.yamlファイルを編集し、Red Hat Ceph モニタリングスタックコンテナー関連のパラメーターを次の内容に置き換えます。ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.15 ceph_grafana_image: grafana-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.15 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.15- ファイルを保存します。
17.1.3. container image prepare の実行 リンクのコピーリンクがクリップボードにコピーされました!
director コンテナー準備コマンドを実行して、コンテナーイメージの準備プロセスを完了します。これにより、オーバークラウド用のすべてのコンテナーイメージ設定が準備され、最新の Red Hat Ceph Storage 6 コンテナーイメージが取得されます。
Red Hat Satellite Server を使用して Red Hat OpenStack Platform (RHOSP)環境の RPM およびコンテナーイメージをホストする場合は、この手順を実行しないでください。Satellite を更新して Red Hat Ceph Storage 7 コンテナーイメージを追加し、containers-prepare-parameter.yaml ファイルを更新して、Satellite Server でホストされているコンテナーイメージの URL を参照します。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。$ source ~/stackrcコンテナー準備コマンドを実行します。
$ openstack tripleo container image prepare -e <container_preparation_file>-
<container_preparation_file>は、ファイルの名前に置き換えます。デフォルトのファイルは、containers-prepare-parameter.yamlです。
-
新しい Red Hat Ceph Storage イメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'Red Hat Ceph Storage Dashboard が有効になっている場合は、新しい Red Hat モニタリングスタックイメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/dashboard|grafana|prometheus|alertmanager|node-exporter/ {print $2}'
17.1.4. Red Hat Ceph Storage 6 モニタリングスタックイメージを使用した Ceph Manager の設定 リンクのコピーリンクがクリップボードにコピーされました!
手順
- コントローラーノードにログインします。
Ceph Manager 設定から現在のイメージをリスト表示します。
$ sudo cephadm shell -- ceph config dump | grep imageコマンド出力の例を以下に示します。
global basic container_image undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph:6-311 * mgr advanced mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.12 * mgr advanced mgr/cephadm/container_image_base undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph mgr advanced mgr/cephadm/container_image_grafana undercloud-0.ctlplane.redhat.local:8787/rh-osbs/grafana:latest * mgr advanced mgr/cephadm/container_image_node_exporter undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-node-exporter:v4.12 * mgr advanced mgr/cephadm/container_image_prometheus undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus:v4.12モニタリングスタックサービスの Ceph Manager 設定を更新して、Red Hat Ceph Storage 6 イメージを使用します。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager <alertmanager_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_grafana <grafana_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_node_exporter <node_exporter_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_prometheus <prometheus_image>-
<alertmanager_image>を新しい alertmanager イメージに置き換えます。 -
<grafana_image>を新しい grafana イメージに置き換えます。 -
<node_exporter_image>を新しいノードエクスポーターイメージに置き換えます。 <prometheus_image>を新しい Prometheus イメージに置き換えます。以下は、アラートマネージャー更新コマンドの例です。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.15
-
Red Hat Ceph Storage クラスターで新しいイメージ参照が更新されていることを確認します。
$ sudo cephadm shell -- ceph config dump | grep image
17.1.5. Orchestrator を使用した Red Hat Ceph Storage 6 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
cephadm コマンドの Orchestrator 機能を使用して、Red Hat Ceph Storage 6 にアップグレードします。
前提条件
ceph-monサービスを実行している Monitor または Controller ノードで、Red Hat Ceph Storage クラスターのステータスを確認します。$ sudo cephadm shell -- ceph statusこのコマンドは、次の 3 つの応答のいずれかを返します。
-
HEALTH_OK- クラスターは健全な状態です。クラスターのアップグレードを続行してください。 -
HEALTH_WARN- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。 -
HEALTH_ERR- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。
-
手順
- コントローラーノードにログインします。
Red Hat Ceph Storage 6 アップグレードガイド の cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード を使用して、クラスターを最新の Red Hat Ceph Storage バージョンにアップグレードします。
重要Red Hat OpenStack を使用してデプロイされた Red Hat Ceph Storage クラスター を director がアップグレードする場合、Red Hat Ceph Storage クラスターのアップグレード の手順 1 から 4 は必要ありません。手順のステップ 5 から開始します。
Red Hat Ceph Storage コンテナーのアップグレードが完了するまで待ちます。次のコマンドを使用して、アップグレードのステータスを監視します。
$ sudo cephadm shell -- ceph orch upgrade status
17.1.6. Red Hat Ceph Storage 5 から 6 に移行する場合の NFS Ganesha のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage をリリース 4 から 5 にアップグレードする場合、NFS Ganesha は Orchestrator によって導入されません。そのため、NFS Ganesha は director の管理下に残り、手動でリリース 6 に移動する必要があります。
Red Hat Ceph Storage 5 ベースの NFS Ganesha と Red Hat Ceph Storage 6 クラスターの併用は、アップグレード期間中にのみサポートされます。Red Hat Ceph Storage クラスターを 6 にアップグレードしたら、リリース 6 ベースのコンテナーイメージを使用するように NFS Ganesha をアップグレードする必要があります。
この手順は、CephFS NFS を使用する Shared File Systems サービス (manila) を使用している環境にのみ適用されます。この環境では、NFS Ganesha に合わせた Red Hat Ceph Storage コンテナーのアップグレードが必須です。
手順
- コントローラーノードにログインします。
ceph-nfsサービスを調べます。$ sudo pcs status | grep ceph-nfsceph-nfs systemdユニットを調べて、Red Hat Ceph Storage 5 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep -i container_image次の内容を含む
/home/stack/ganesha_update_extravars.yamlというファイルを作成します。tripleo_cephadm_container_image: <ceph_image_name> tripleo_cephadm_container_ns: <ceph_image_namespace> tripleo_cephadm_container_tag: <ceph_image_tag>-
<ceph_image_name>は、Red Hat Ceph Storage コンテナーイメージの名前に置き換えます。 -
<ceph_image_namespace>は、Red Hat Ceph Storage コンテナーの名前空間の名前に置き換えます。 <ceph_image_tag>は、Red Hat Ceph Storage コンテナータグの名前に置き換えます。たとえば、一般的な環境では、このファイルの内容として次の値が含まれます。
tripleo_cephadm_container_image: rhceph-7-rhel9 tripleo_cephadm_container_ns: undercloud-0.ctlplane.redhat.local:8787 tripleo_cephadm_container_tag: '7'
-
- ファイルを保存します。
ceph-update-genesha.ymlPlaybook を実行します。追加のコマンドパラメーターとしてganesha_update_extravars.yamlPlaybook を指定します。ansible-playbook -i $HOME/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ceph-update-ganesha.yml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/global_vars.yaml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/cephadm/cephadm-extra-vars-heat.yml \ -e @$HOME/ganesha_update_extravars.yaml-
<stack>は、オーバークラウドスタックの名前に置き換えます。
-
ceph-nfsサービスが実行されていることを確認します。$ sudo pcs status | grep ceph-nfsceph-nfs systemdユニットに Red Hat Ceph Storage 6 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep rhceph