1.9. アップグレードプロセス


ストレージ管理者は、Ansible Playbook を使用して Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。Ansible Playbook rolling_update.yml は、Red Hat Ceph Storage のデプロイメントのアップグレードを実行します。ceph-ansible は、Ceph ノードを以下の順序でアップグレードします。

  • Ceph Monitor
  • Ceph Manager
  • Ceph OSD ノード
  • MDS ノード
  • Ceph Object Gateway (RGW) ノード
  • Ceph RBD-mirror ノード
  • Ceph NFS ノード
  • すべての Ceph iSCSI ゲートウェイノード
  • Ceph クライアントノード
  • Ceph-crash デーモン
  • すべてのノードでの node-exporter
  • Ceph Dashboard
重要

ストレージクラスターが Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードされると、Grafana UI に 2 つのダッシュボードが表示されます。これは、Red Hat Ceph Storage 4 の Prometheus のポートが 9092 で、Red Hat Ceph Storage 5 のポートが 9095 であるためです。grafana は削除できます。cephadm はサービスとデーモンを再デプロイし、Grafana UI 上の古いダッシュボードを削除します。

注記

Red Hat Ceph Storage 5 は、コンテナー化されたデプロイメントのみをサポートします。

Ceph-ansible は現在 Red Hat Ceph Storage 5 ではサポートされません。つまり、ストレージクラスターを Red Hat Ceph Storage 5 に移行したら、cephadm を使用して後続の更新を実行する必要があります。

重要

単一レルムおよび複数レルムを使用してマルチサイト Ceph Object Gateway をデプロイするには、all.yml ファイルを編集してください。詳細は、Red Hat Ceph Storage 4 インストールガイドの マルチサイト Ceph Object Gateway の設定 を参照してください。

注記

Red Hat Ceph Storage 5 には、ストレージクラスターのデーモンのいずれかが Red Hat Ceph Storage の複数のバージョンを実行していることを検出した場合に、DAEMON_OLD_VERSION 警告を返すヘルスチェック関数も含まれています。この警告は、デーモンが mon_warn_older_version_delay オプションで設定された時間値を超えて Red Hat Ceph Storage の複数のバージョンを実行し続けるとトリガーされます。デフォルトでは、mon_warn_older_version_delay オプションは 1 週間に設定されます。この設定により、ほとんどのアップグレードは、警告を誤って表示することなく続行できます。アップグレードプロセスが長期間一時停止していた場合は、健全性の警告をミュートできます。

ceph health mute DAEMON_OLD_VERSION --sticky

アップグレードが完了したら、健全性の警告のミュートを解除します。

ceph health unmute DAEMON_OLD_VERSION

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • ストレージクラスター内のすべてのホストへの root レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Red Hat Ceph Storage 5 で利用可能な Ansible および ceph-ansible の最新バージョン。
  • Ansible アプリケーションで使用する ansible ユーザーアカウント。
  • ストレージクラスターのノードが、Red Hat Enterprise Linux 8.4 EUS 以降にアップグレードされている。
重要

Ansible インベントリーファイルは ceph-ansible ディレクトリーに存在する必要がある。

手順

  1. Ansible 管理ノードで Ceph および Ansible リポジトリーを有効にします。

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  2. Ansible 管理ノードで、ansible および ceph-ansible パッケージの最新バージョンがインストールされていることを確認します。

    構文

    dnf update ansible ceph-ansible

  3. /usr/share/ceph-ansible ディレクトリーに移動します。

    例:

    [root@admin ~]# cd /usr/share/ceph-ansible

  4. Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合は、group_vars/osds.yml.sample ファイルおよび group_vars/clients.yml.sample ファイルのコピーを作成し、その名前を group_vars/osds.yml および group_vars/clients.yml に変更します。

    例:

    [root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml
    [root@admin ceph-ansible]# cp group_vars/mdss.yml.sample group_vars/mdss.yml
    [root@admin ceph-ansible]# cp group_vars/rgws.yml.sample group_vars/rgws.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.yml

  5. Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合は、group_vars/all.yml ファイルを編集し、Red Hat Ceph Storage 5 の詳細を追加します。
  6. 上記の 2 つの手順を実行したら、以前の yaml ファイルから新しい yaml ファイルに設定をコピーします。これらの設定パラメーターの値は Red Hat Ceph Storage 5 用であるため、 ceph_rhcs_versionceph_docker_image、および grafana_container_image の値は変更しないでください。これにより、クラスターに関連するすべての設定が現在の yaml ファイルに存在するようになります。

    例:

    fetch_directory: ~/ceph-ansible-keys
    monitor_interface: eth0
    public_network: 192.168.0.0/24
    ceph_docker_registry_auth: true
    ceph_docker_registry_username: SERVICE_ACCOUNT_USER_NAME
    ceph_docker_registry_password: TOKEN
    dashboard_admin_user: DASHBOARD_ADMIN_USERNAME
    dashboard_admin_password: DASHBOARD_ADMIN_PASSWORD
    grafana_admin_user: GRAFANA_ADMIN_USER
    grafana_admin_password: GRAFANA_ADMIN_PASSWORD
    radosgw_interface: eth0
    ceph_docker_image: "rhceph/rhceph-5-rhel8"
    ceph_docker_image_tag: "latest"
    ceph_docker_registry: "registry.redhat.io"
    node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6
    grafana_container_image: registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:5
    prometheus_container_image: registry.redhat.io/openshift4/ose-prometheus:v4.6
    alertmanager_container_image: registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6

    注記

    Red Hat Ceph Storage 5 コンテナーイメージがデフォルト値に設定されていることを確認します。

  7. group_vars/osds.yml ファイルを編集します。以下のオプションを追加して設定します。

    構文

    nb_retry_wait_osd_up: 50
    delay_wait_osd_up: 30

  8. group_vars/all.yml ファイルを開き、古い all.yml ファイルから以下の値が存在することを確認します。

    1. fetch_directory オプションは、古い all.yml ファイルと同じ値で設定されます。

      構文

      fetch_directory: FULL_DIRECTORY_PATH

      FULL_DIRECTORY_PATH を、Ansible ユーザーのホームディレクトリーなどの書き込み可能な場所に置き換えます。

    2. アップグレードするクラスターに Ceph Object Gateway ノードが含まれている場合には、radosgw_interface オプションを追加します。

      radosgw_interface: INTERFACE

      INTERFACE を、Ceph Object Gateway ノードがリッスンするインターフェイスに置き換えます。

    3. 現在の設定に SSL 証明書が設定されている場合は、以下を編集します。

      構文

      radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME
      radosgw_frontend_port: 443

    4. upgrade_ceph_packages オプションをコメント解除して、True に設定します。

      構文

      upgrade_ceph_packages: True

    5. ストレージクラスターでノードごとに複数の Ceph Object Gateway インスタンスがある場合、radosgw_num_instances 設定をコメント解除して、クラスターのノードごとのインスタンス数に設定します。

      構文

      radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE

      例:

      radosgw_num_instances : 2

    6. ストレージクラスターに Ceph Object Gateway マルチサイトが定義されている場合は、all.yml のマルチサイト設定を確認し、古い all.yml ファイルと同じ値が含まれていることを確認します。
  9. バケットが作成されているか、num_shards = 0 である場合は、Red Hat Ceph Storage 5.3 へのアップグレードを計画する前に、バケットを手動でリシャーディングします。

    警告

    bucket_index_max_shards0 の場合に以前のリリースから Red Hat Ceph Storage 5.3 にアップグレードすると、Ceph Object Gateway バケットのメタデータが失われ、バケットにアクセスしようとしたときにバケットが使用できなくなる可能性があります。そのため、bucket_index_max_shards11 シャードに設定されていることを確認してください。そうでない場合は、ゾーングループレベルでこの設定を変更します。

    構文

    radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME

    例:

    [ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket

  10. Ansible 管理ノードで ansible-user としてログインします。
  11. --extra-vars オプションを使用して infrastructure-playbooks/rolling_update.yml Playbook を更新し、health_osd_check_retrieshealth_osd_check_delay の値をそれぞれ 5030 に変更します。

    例:

    [root@admin ceph-ansible]# ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"

    各 OSD ノードでは、これらの値により、ceph-ansible はストレージクラスターの健全性を 30 秒ごとに最大 50 回チェックします。つまり、ceph-ansible は OSD ごとに最大 25 分待機します。

    ストレージクラスターの使用済みのストレージ容量に基づいて、health_osd_check_retries オプションの値を上下に調整します。たとえば、436 TB のうち、ストレージ容量の 50% にあたる 218 TB を使用している場合は、health_osd_check_retries オプションを 50 に設定します。

    /etc/ansible/hosts は、Ansible インベントリーファイルのデフォルトの場所です。

  12. Rolling_update.yml Playbook を実行して、ストレージクラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 に変換します。

    構文

    ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILE

    -vvvv オプションは、アップグレードプロセスの詳細ログを収集します。

    例:

    [ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hosts

    重要

    rolling_update.yml Playbook で --limit Ansible オプションを使用することはサポートされていません。

  13. Ansible Playbook のログ出力をチェックして、アップグレードのステータスを確認します。

検証

  1. 実行中のすべてのコンテナーをリスト表示します。

    例:

    [root@mon ~]# podman ps

  2. クラスターの健全性状態を確認します。MONITOR_ID は、前のステップで見つかった Ceph Monitor コンテナーの名前に置き換えます。

    構文

    podman exec ceph-mon-MONITOR_ID ceph -s

    例:

    [root@mon ~]# podman exec ceph-mon-mon01 ceph -s

  3. Ceph クラスターのデーモンのバージョンを確認し、すべてのデーモンのアップグレードを確認します。MONITOR_ID は、前のステップで見つかった Ceph Monitor コンテナーの名前に置き換えます。

    構文

    podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versions

    例:

    [root@mon ~]# podman exec ceph-mon-mon01 ceph --cluster ceph versions

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.