アップグレードガイド

Red Hat Ceph Storage 6

Red Hat Ceph Storage Cluster のアップグレード

Red Hat Ceph Storage Documentation Team

概要

このドキュメントでは、AMD64 および Intel 64 アーキテクチャーで Red Hat Enterprise Linux を実行している Red Hat Ceph Storage クラスターをアップグレードする手順を説明します。
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード

ストレージ管理者は、cephadm Orchestrator を使用して Red Hat Ceph Storage 5 以降をアップグレードできます。

注記

Red Hat Ceph Storage 4 から Red Hat Ceph Storage 6 への直接のアップグレードはサポートされていません。

自動アップグレードプロセスには、Ceph のベストプラクティスに従います。以下に例を示します。

  • アップグレードの順序は、Ceph Manager、Ceph Monitor、その他のデーモンとなります。
  • 各デーモンは、Ceph がクラスターが引き続き使用可能であることを示した後にのみ再起動します。

ストレージクラスターのヘルスステータスは、アップグレード中に HEALTH_WARNING に切り換わる可能性が高くなります。アップグレードが完了したら、ヘルスステータスは HEALTH_OK に戻るはずです。

警告

マルチサイトが設定された Red Hat Ceph Storage 6 クラスターがある場合は、オブジェクトを災害復旧 (DR) サイトにレプリケートするときに、暗号化されたオブジェクトのデータ破損の問題が発生するため、最新バージョンの 6.1.z1 にアップグレードしないでください。

注記

アップグレードに成功したら、メッセージを取得しません。ceph versions コマンドおよび ceph orch ps コマンドを実行して、新しいイメージ ID およびストレージクラスターのバージョンを確認します。

警告

Ceph iSCSI ゲートウェイは、Red Hat Ceph Storage 6 から削除されます。したがって、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 にアップグレードする前に、iSCSI LUN を管理する必要があります。

Red Hat Ceph Storage クラスターを RHCS 5 から RHCS 6 にアップグレードすると、iSCSI を介してエクスポートされた RBD イメージが保持されるため、データが失われることはありません。ただし、アップグレードによってすべての iSCSI ターゲットがなくなるため、データに一時的にアクセスできなくなります。データを復元するには、rbd device map コマンドを使用してそのような RBD イメージをマップするか、rbd export コマンドを使用してそれらをファイルにエクスポートします。

1.1. RHCS と podman バージョン間の互換性に関する考慮事項

Podman および Red Hat Ceph Storage には、ライフサイクル終了の異なる戦略があり、互換性のあるバージョンを見つけるのが難しい場合があります。

Red Hat は、Red Hat Ceph Storage に対応する Red Hat Enterprise Linux バージョンに同梱されている podman バージョンを使用することを推奨しています。詳細は、ナレッジベースの記事 Red Hat Ceph Storage: Supported configurations を参照してください。その他のサポートについては、Red Hat Ceph Storage トラブルシューティングガイドRed Hat サポートへのサービスの問い合わせ セクションを参照してください。

以下の表は、Red Hat Ceph Storage 6 と podman のバージョン間の互換性を示しています。

CephPodman     
 

1.9

2.0

2.1

2.2

3.0

>3.0

Red Hat Ceph Storage 6

false

true

true

false

true

true

警告

Red Hat Ceph Storage 5 以降で Podman を使用するには、2.0.0 以降のバージョンの Podman を使用する必要があります。

1.2. Red Hat Ceph Storage クラスターのアップグレード

Red Hat Ceph Storage 5.0 クラスターをアップグレードするには、ceph orch upgrade コマンドを使用できます。

前提条件

  • Red Hat Ceph Storage クラスター 5 が実行している。
  • Ansible-core が AppStream にバンドルされている Red Hat Enterprise Linux 9.0 以降。
  • すべてのノードへの root レベルのアクセス。
  • ストレージクラスター内のすべてのノードへの sudo アクセスおよびパスワードなしの ssh アクセスのある Ansible ユーザー。
  • ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
重要

最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。

注記

Red Hat Ceph Storage 5 には、ストレージクラスターのデーモンのいずれかが RHCS の複数のバージョンを実行していることを検出した場合に、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

手順

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

    Red Hat Enterprise Linux 9

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

  2. cephadm および cephadm-ansible パッケージを更新します。

    例:

    [root@admin ~]# dnf update cephadm
    [root@admin ~]# dnf update cephadm-ansible

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

    例:

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

  4. ストレージクラスターのブートストラップされたホストで upgrade_ceph_packages パラメーターを true に設定して、プリフライト Playbook を実行します。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"

    例:

    [ceph-admin@admin cephadm-ansible]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"

    このパッケージは、すべてのノードで cephadm をアップグレードします。

  5. cephadm シェルにログインします。

    例:

    [root@host01 ~]# cephadm shell

  6. すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。

    例:

    [ceph: root@host01 /]# ceph -s

  7. OSD の nooutnoscrub、および nodeep-scrub フラグを設定して、アップグレード中に OSD がマークアウトされないようにし、クラスターへの不要な負荷を回避します。

    例:

    [ceph: root@host01 /]# ceph osd set noout
    [ceph: root@host01 /]# ceph osd set noscrub
    [ceph: root@host01 /]# ceph osd set nodeep-scrub

  8. サービスのバージョンと利用可能なターゲットコンテナーを確認します。

    構文

    ceph orch upgrade check IMAGE_NAME

    例:

    [ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest

    注記

    イメージ名は、Red Hat Enterprise Linux 8 と Red Hat Enterprise Linux 9 の両方に適用されます。

  9. ストレージクラスターをアップグレードします。

    構文

    ceph orch upgrade start IMAGE_NAME

    例:

    [ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-6-rhel9:latest

    注記

    段階的アップグレードを実行するには、Performing a staggered upgrade を参照してください。

    アップグレード中は、進捗バーが ceph status 出力に表示されます。

    例:

    [ceph: root@host01 /]# ceph status
    [...]
    progress:
        Upgrade to 17.2.6-70.el9cp (1s)
          [............................]

  10. Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。

    例:

    [ceph: root@host01 /]# ceph versions
    [ceph: root@host01 /]# ceph orch ps

    注記

    cephadm-ansible Playbook を使用していない場合は、Ceph クラスターをアップグレードした後、クライアントノードの ceph-common パッケージとクライアントライブラリーをアップグレードする必要があります。

    例:

    [root@client01 ~] dnf update ceph-common

    最新バージョンを使用していることを確認します。

    例:

    [root@client01 ~] ceph --version

  11. アップグレードが完了したら、nooutnoscrub、および nodeep-scrub フラグの設定を解除します。

    例:

    [ceph: root@host01 /]# ceph osd unset noout
    [ceph: root@host01 /]# ceph osd unset noscrub
    [ceph: root@host01 /]# ceph osd unset nodeep-scrub

1.3. 非接続環境での Red Hat Ceph Storage クラスターのアップグレード

--image タグを使用すると、非接続環境でストレージクラスターをアップグレードできます。

Red Hat Ceph Storage 5 クラスターをアップグレードするには、ceph orch upgrade コマンドを使用できます。

重要

Red Hat Enterprise Linux 9 以降では、cephadm-ansible Playbook はサポートされません。

前提条件

  • Red Hat Ceph Storage クラスター 5 が実行している。
  • Ansible-core が AppStream にバンドルされている Red Hat Enterprise Linux 9.0 以降。
  • すべてのノードへの root レベルのアクセス。
  • ストレージクラスター内のすべてのノードへの sudo アクセスおよびパスワードなしの ssh アクセスのある Ansible ユーザー。
  • ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
  • ノードを CDN に登録して、サブスクリプションを割り当てている。
  • 非接続環境でカスタマーコンテナーイメージを確認し、必要に応じて設定を変更している。詳細は、Red Hat Ceph Storage インストールガイド非接続インストールのカスタムコンテナーイメージの設定変更 セクションを参照してください。

デフォルトでは、モニタリングスタックコンポーネントは、プライマリー Ceph イメージに基づいてデプロイされます。ストレージクラスターの切断された環境では、最新の利用可能な監視スタックコンポーネントイメージを使用する必要があります。

表1.1 スタックを監視するためのカスタムイメージの詳細

モニタリングスタックコンポーネントイメージの詳細

Prometheus

registry.redhat.io/openshift4/ose-prometheus:v4.12

Grafana

registry.redhat.io/rhceph-6-dashboard-rhel9:latest

Node-exporter

registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12

AlertManager

registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12

HAProxy

registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest

keepalived

registry.redhat.io/rhceph/keepalived-rhel9:latest

SNMP ゲートウェイ

registry.redhat.io/rhceph/snmp-notifier-rhel9:latest

手順

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

    Red Hat Enterprise Linux 9

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

  2. cephadm および cephadm-ansible パッケージを更新します。

    例:

    [root@admin ~]# dnf update cephadm
    [root@admin ~]# dnf update cephadm-ansible

  3. ストレージクラスター内のブートストラップされたホストで、upgrade_ceph_packages パラメーターを true に設定し、ceph_origin パラメーターを custom に設定してプリフライト Playbook を実行します。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"

    例:

    [ceph-admin@admin ~]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"

    このパッケージは、すべてのノードで cephadm をアップグレードします。

  4. cephadm シェルにログインします。

    例:

    [root@node0 ~]# cephadm shell

  5. すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。

    例:

    [ceph: root@node0 /]# ceph -s

  6. OSD の nooutnoscrub、および nodeep-scrub フラグを設定して、アップグレード中に OSD がマークアウトされないようにし、クラスターへの不要な負荷を回避します。

    例:

    [ceph: root@host01 /]# ceph osd set noout
    [ceph: root@host01 /]# ceph osd set noscrub
    [ceph: root@host01 /]# ceph osd set nodeep-scrub

  7. サービスのバージョンと利用可能なターゲットコンテナーを確認します。

    構文

    ceph orch upgrade check IMAGE_NAME

    例:

    [ceph: root@node0 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9

  8. ストレージクラスターをアップグレードします。

    構文

    ceph orch upgrade start IMAGE_NAME

    例:

    [ceph: root@node0 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9

    アップグレード中は、進捗バーが ceph status 出力に表示されます。

    例:

    [ceph: root@node0 /]# ceph status
    [...]
    progress:
        Upgrade to 17.2.6-70.el9cp (1s)
          [............................]

  9. Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。

    例:

    [ceph: root@node0 /]# ceph version
    [ceph: root@node0 /]# ceph versions
    [ceph: root@node0 /]# ceph orch ps

  10. アップグレードが完了したら、nooutnoscrub、および nodeep-scrub フラグの設定を解除します。

    例:

    [ceph: root@host01 /]# ceph osd unset noout
    [ceph: root@host01 /]# ceph osd unset noscrub
    [ceph: root@host01 /]# ceph osd unset nodeep-scrub

関連情報

第2章 ホストオペレーティングシステムを RHEL 8 から RHEL 9 にアップグレードする

Leapp ユーティリティーを使用して、Red Hat Ceph Storage ホストオペレーティングシステムを Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 にアップグレードできます。

前提条件

  • 実行中の Red Hat Ceph Storage 5 クラスターがあること。

コンテナー化された Ceph デーモンのサポートされている組み合わせは次のとおりです。詳細は、Red Hat Ceph Storage インストールガイドコロケーションの仕組みとその利点 セクションを参照してください。

  • Ceph Metadata Server (ceph-mds)、Ceph OSD (ceph-osd)、および Ceph Object Gateway (radosgw)
  • Ceph Monitor (ceph-mon) または Ceph Manager (ceph-mgr)、Ceph OSD (ceph-osd)、および Ceph Object Gateway (radosgw)
  • Ceph Monitor (ceph-mon)、Ceph Manager (ceph-mgr)、Ceph OSD (ceph-osd)、および Ceph Object Gateway (radosgw)

手順

  1. サービスを使用して Red Hat Ceph Storage 5 を Red Hat Enterprise Linux 8 にデプロイします。
注記

クラスターに 2 つの管理ノードが含まれていることを確認します。これにより、1 つの 管理 ノード (_admin ラベル付き) でホストのアップグレードを実行している間、2 番目の管理ノードをクラスターの管理に使用できます。

完全な手順は、Red Hat Ceph Storage インストールガイドRed Hat Ceph Storage インストール と、操作ガイドサービス仕様を使用した Ceph デーモンのデプロイ を参照してください。

  1. Ceph OSD で noout フラグを設定します。

    例:

    [ceph: root@host01 /]# ceph osd set noout

  2. Leapp ユーティリティーを使用して、一度に 1 ノードずつホストのアップグレードを実行します。

    1. Leapp を使用してホストのアップグレードを実行する前に、それぞれのノードのメンテナンスモードを設定します。

      構文

      ceph orch host maintenance enter HOST

      例:

      ceph orch host maintenance enter host01

    2. --enablerepo パラメーターを指定して leapp コマンドを実行するときに、ceph ツールリポジトリーを手動で有効にします。

      例:

      leapp upgrade --enablerepo rhceph-5-tools-for-rhel-9-x86_64-rpms

    3. Red Hat Customer Portal の Red Hat Enterprise Linux 製品ドキュメント内の RHEL 8 から RHEL 9 へのアップグレード を参照してください。
  3. Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。

    例:

    [ceph: root@node0 /]# ceph version
    [ceph: root@node0 /]# ceph orch ps

  4. Red Hat Ceph Storage アップグレードガイドRed Hat Ceph Storage クラスターのアップグレード 手順に従って、Red Hat Ceph Storage 5.3 から Red Hat Ceph Storage 7 へのアップグレードを続行します。

第3章 RHEL 8 から RHEL 9 へのアップグレードを伴う RHCS 5 から RHCS 6 へのアップグレード

Red Hat Ceph Storage 4 から Red Hat Ceph Storage 6 へのアップグレードこのアップグレードには、Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 へのアップグレードが含まれます。

重要

最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。

前提条件

  • Red Hat Enterprise Linux 8.4 を実行している Red Hat Ceph Storage 4 クラスター。
  • 管理ノードからの Ceph バイナリー (/usr/sbin/cephadm)、ceph.pub (/etc/ceph)、および Ceph クラスターの公開 SSH キーのバックアップ。

手順

  1. クラスターのすべてのホストで Red Hat Enterprise Linux のバージョンをアップグレードします。詳細な手順については、RHEL 8 から RHEL 9 へのホストオペレーティングシステムのアップグレードを 参照してください。
  2. Red Hat Enterprise Linux のアップグレード後、Red Hat Ceph Storage ノードを CDN に登録し、必要なリポジトリーを追加します。詳細な手順については、CDN への Red Hat Ceph Storage ノードの登録とサブスクリプションのアタッチ を参照してください。
  3. Red Hat Ceph Storage を更新します。詳細な手順については、cephadm を使用した Red Hat Ceph Storage クラスターのアップグレードを 参照してください。

第4章 ストレッチモードを有効にした RHEL 8 から RHEL 9 へのアップグレードを伴う RHCS 5 から RHCS 6 へのアップグレード

ストレッチモードを有効にすることで、Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 への Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 へのアップグレードを実行できます。

重要

最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。

前提条件

  • 必要なホストがあり、ストレッチモードを有効にして実行しているデーモンのる Red Hat Enterprise Linux 8 の Red Hat Ceph Storage 5。
  • 管理ノードからの Ceph バイナリー (/usr/sbin/cephadm)、ceph.pub (/etc/ceph)、および Ceph クラスターの公開 SSH キーのバックアップ。
注記

.Arbiter モニターをホストからドレインまたは削除することはできません。そのため、arbiter mon を別の tie-breaker ノードに再プロビジョニングしてから、タイブレーカーを新しいモニターに交換する で説明されているように、ホストからドレインまたは削除する必要があります。

手順

  1. Cephadm シェルにログインします。

    例:

    [ceph: root@host01 /]# cephadm shell

  2. 管理ノードが再プロビジョニングされるときにクラスターを管理するには、クラスター内の 2 番目のノードに管理者としてラベルを付けます。

    構文

    ceph orch host label add HOSTNAME admin

    例:

    [ceph: root@host01 /]# ceph orch host label add host02 admin

  3. noout フラグを設定します。

    例:

    [ceph: root@host01 /]# ceph osd set noout

  4. ホストからすべてのデーモンをドレインします。

    構文

    ceph orch host drain HOSTNAME --force

    例:

    [ceph: root@host01 /]# ceph orch host drain host02 --force

    _no_schedule ラベルは、デプロイメントをブロックするホストに自動的に適用されます。

  5. ストレージクラスターからすべてのデーモンが削除されているかどうかを確認します。

    構文

    ceph orch ps HOSTNAME

    例:

    [ceph: root@host01 /]# ceph orch ps host02

  6. OSD の削除のステータスを確認します。

    例:

    [ceph: root@host01 /]# ceph orch osd rm status

    OSD に配置グループ (PG) が残っていない場合、OSD は廃止され、ストレージクラスターから削除されます。

  7. デバイスを消去して、ドレインされているホストに OSD が存在する場合、ホストが再度追加されたときに、そのホストを使用して OSD を再デプロイメントできるようにします。

    構文

    ceph orch device zap HOSTNAME DISK [--force]

    例:

    [ceph: root@host01 /]# ceph orch device zap ceph-host02 /dev/vdb [--force]
    
    zap successful for /dev/vdb on ceph-host02

  8. クラスターからホストを削除します。

    構文

    ceph orch host rm HOSTNAME --force

    例:

    [ceph: root@host01 /]# ceph orch host rm host02 --force

  9. RHEL 8 から RHEL 9 へのアップグレード の説明に従って、RHEL 8 から RHEL 9 に それぞれのホストを再プロビジョニングします。
  10. --limit オプションを指定して、プリフライト Playbook を実行します。

    構文

    ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --limit NEWHOST_NAME

    例:

    [ceph: root@host01 /]# ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin={storage-product}" --limit host02

    プリフライト Playbook は、新しいホストに podmanlvm2chronyd、および cephadm をインストールします。インストールが完了すると、cephadm/usr/sbin/ ディレクトリーに配置されます。

  11. クラスターの SSH 公開鍵をフォルダーにデプロイメントします。

    構文

    ceph cephadm get-pub-key ~/PATH

    例:

    [ceph: root@host01 /]# ceph cephadm get-pub-key ~/ceph.pub

  12. Ceph クラスターの公開 SSH キーを再プロビジョニングされたノードにコピーします。

    構文

    ssh-copy-id -f -i ~/PATH root@HOST_NAME_2

    例:

    [ceph: root@host01 /]# ssh-copy-id -f -i ~/ceph.pub root@host02

    1. オプション: 削除されたホストにモニターデーモンがある場合は、クラスターにホストを追加する前に、デプロイメントをモニターするために --unmanaged フラグを追加してください。

      構文

      ceph orch apply mon PLACEMENT --unmanaged

  13. ホストをクラスターに再度追加し、以前に存在したラベルを追加します。

    構文

    ceph orch host add HOSTNAME IP_ADDRESS --labels=LABELS

    1. オプション: 削除されたホストに元々デプロイされていたモニターデーモンがあった場合は、タイブレーカーを新しいモニターに交換する で説明されているように、ロケーション属性を使用してモニターデーモンを手動で追加し直す必要があります。

      構文

      ceph mon add HOSTNAME IP LOCATION

      例:

      [ceph: root@host01 /]# ceph mon add ceph-host02 10.0.211.62 datacenter=DC2

      構文

      ceph orch daemon add mon HOSTNAME

      例:

      [ceph: root@host01 /]# ceph orch daemon add mon ceph-host02

  14. 再プロビジョニングされたホストのデーモンが同じ ceph バージョンで正常に実行されていることを確認します。

    構文

    ceph orch ps

  15. モニターデーモンの配置を managed に戻します。

    注記

    このステップは 1 つずつ実行する必要があります。

    構文

    ceph orch apply mon PLACEMENT

  16. すべてのホストに対して上記の手順を繰り返します。
  17. 同じアプローチに従って管理ノードを再プロビジョニングし、2 番目の管理ノードを使用してクラスターを管理します。
  18. バックアップファイルをノードに再度追加します。
  19. .2 番目の管理ノードを使用して、クラスターに管理ノードを再び追加します。mon デプロイメントを unmanaged に設定します。
  20. タイブレーカーを新しいモニターに置き換える に従って、古い arbiter mon を再度追加し、前に作成した一時的な mon を削除します。
  21. noout フラグの設定を解除します。

    構文

    ceph osd unset noout

  22. Ceph のバージョンとクラスターのステータスを確認して、Red Hat Enterprise Linux のアップグレード後に、すべてのデーモンが期待どおりに動作していることを確認します。
  23. RHEL OS が正常にアップグレードされたので、cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード に従って、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 へのアップグレードを実行します。

第5章 段階的なアップグレード

ストレージ管理者は、Red Hat Ceph Storage コンポーネントを一度にすべてではなく段階的にアップグレードできます。Red Hat Ceph Storage 5.2 以降、ceph orch upgrade コマンドでオプションを指定して、1 つの upgrade コマンドでアップグレードするデーモンを制限することが可能になりました

注記

段階的アップグレードをサポートしていないバージョンからアップグレードする場合は、最初に Ceph Manager (ceph-mgr) デーモンを手動でアップグレードする必要があります。以前のリリースからの段階的なアップグレードの実行に関する詳細は、以前のリリースからの段階的なアップグレードの実行 を参照してください。

警告

Ceph iSCSI ゲートウェイは、Red Hat Ceph Storage 6 から削除されます。したがって、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 にアップグレードする前に、iSCSI LUN を管理する必要があります。

Red Hat Ceph Storage クラスターを RHCS 5 から RHCS 6 にアップグレードすると、iSCSI を介してエクスポートされた RBD イメージが保持されるため、データが失われることはありません。ただし、アップグレードによってすべての iSCSI ターゲットがなくなるため、データに一時的にアクセスできなくなります。データを復元するには、rbd device map コマンドを使用してそのような RBD イメージをマップするか、rbd export コマンドを使用してそれらをファイルにエクスポートします。

5.1. 段階的なアップグレードのオプション

Red Hat Ceph Storage 5.2 以降、ceph orch upgrade コマンドは、クラスターコンポーネントを段階的にアップグレードするためのいくつかのオプションをサポートしています。段階的なアップグレードのオプションは、以下の通りです。

  • --daemon_types: --daemon_types オプションは、デーモンタイプのコンマ区切りのリストを取り、それらのタイプのデーモンのみをアップグレードします。このオプションの有効なデーモンタイプには、mgrmoncrashosdmdsrgwrbd-mirrorcephfs-mirror、および nfs が含まれます。
  • --services: --services オプションは --daemon-types と相互に排他的であり、一度に 1 つのタイプのサービスのみを取り、それらのサービスに属するデーモンのみをアップグレードします。たとえば、OSD サービスと RGW サービスを同時に提供することはできません。
  • --hosts: --hosts オプションを --daemon_types--services と組み合わせるか、単独で使用することができます。--hosts オプションパラメーターは、オーケストレーター CLI 配置仕様のコマンドラインオプションと同じ形式に従います。
  • --limit: --limit オプションはゼロより大きい整数を取り、cephadm がアップグレードするデーモンの数に数値制限を提供します。--limit オプションを --daemon_types--services、または --hosts と組み合わせることができます。たとえば、制限を 3 に設定して host01 上のタイプ osd のデーモンをアップグレードするように指定した場合、cephadm は host01 上の最大 3 つの OSD デーモンをアップグレードします。

5.1.1. 段階的なアップグレードの実行

ストレージ管理者は、ceph orch upgrade オプションを使用して、1 つの upgrade コマンドでアップグレードされるデーモンを制限できます。

Cephadm は、段階的なアップグレードシナリオに引き続き存在するデーモンのアップグレードの順序を厳密に適用します。現在のアップグレードの順序は次のとおりです。

  1. Ceph Manager ノード
  2. Ceph Monitor ノード
  3. Ceph-crash デーモン
  4. Ceph OSD ノード
  5. Ceph Metadata Server (MDS) ノード
  6. Ceph Object Gateway (RGW) ノード
  7. Ceph RBD-mirror ノード
  8. CephFS ミラーノード
  9. Ceph NFS ノード
注記

デーモンを順不同でアップグレードするパラメーターを指定すると、upgrade コマンドはブロックし、続行する前にどのデーモンをアップグレードする必要があるかを通知します。

例:

[ceph: root@host01 /]# ceph orch upgrade start --image  registry.redhat.io/rhceph/rhceph-6-rhel9:latest --hosts host02

Error EINVAL: Cannot start upgrade. Daemons with types earlier in upgrade order than daemons on given host need upgrading.
Please first upgrade mon.ceph-host01

注記

規定されているインスタンスの再起動の順番はありません。Red Hat では、プライマリーイメージで、プールを参照するインスタンスを再起動して、その後にミラーリングされたプールを参照するインスタンスを再起動することを推奨します。

前提条件

  • クラスターで Red Hat Ceph Storage 5.2 以降が実行している。
  • すべてのノードへの root レベルのアクセス。
  • ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。

手順

  1. cephadm シェルにログインします。

    例:

    [root@host01 ~]# cephadm shell

  2. すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。

    例:

    [ceph: root@host01 /]# ceph -s

  3. OSD の nooutnoscrub、および nodeep-scrub フラグを設定して、アップグレード中に OSD がマークアウトされないようにし、クラスターへの不要な負荷を回避します。

    例:

    [ceph: root@host01 /]# ceph osd set noout
    [ceph: root@host01 /]# ceph osd set noscrub
    [ceph: root@host01 /]# ceph osd set nodeep-scrub

  4. サービスのバージョンと利用可能なターゲットコンテナーを確認します。

    構文

    ceph orch upgrade check IMAGE_NAME

    例:

    [ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest

    注記

    イメージ名は、Red Hat Enterprise Linux 8 と Red Hat Enterprise Linux 9 の両方に適用されます。

  5. ストレージクラスターをアップグレードします。

    1. 特定のホストで特定のデーモンタイプをアップグレードするには、次の手順を実行します。

      構文

      ceph orch upgrade start --image IMAGE_NAME --daemon-types DAEMON_TYPE1,DAEMON_TYPE2 --hosts HOST1,HOST2

      例:

      [ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --daemon-types mgr,mon --hosts host02,host03

    2. 特定のサービスを指定し、アップグレードするデーモンの数を制限するには、以下を実行します。

      構文

      ceph orch upgrade start --image IMAGE_NAME --services SERVICE1,SERVICE2 --limit LIMIT_NUMBER

      例:

      [ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --services rgw.example1,rgw1.example2 --limit 2

      注記

      段階的なアップグレードのシナリオでは、制限パラメーターを使用する場合、Prometheus および node-exporter を含むモニタリングスタックデーモンは、Ceph Manager デーモンのアップグレード後に更新されます。制限パラメーターの結果として、Ceph Manager のアップグレードが完了するまでに時間がかかります。モニタリングスタックデーモンのバージョンは、Ceph リリース間で変更されない場合があり、その場合、それらは再デプロイされるだけになります。

      注記

      制限パラメーターを含む upgrade コマンドは、アップグレードを開始する前にオプションを検証します。これには、新しいコンテナーイメージのプルが必要になる場合があります。その結果、制限パラメーターを指定すると、upgrade start コマンドが戻るまでに時間がかかる場合があります。

  6. 引き続きアップグレードが必要なデーモンを確認するには、ceph orch upgrade check または ceph versions コマンドを実行します。

    例:

    [ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest

  7. 段階的なアップグレードを完了するには、残りのすべてのサービスのアップグレードを確認します。

    構文

    ceph orch upgrade start --image IMAGE_NAME

    [ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest

検証

  • Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。

    例:

    [ceph: root@host01 /]# ceph versions
    [ceph: root@host01 /]# ceph orch ps

    1. アップグレードが完了したら、nooutnoscrub、および nodeep-scrub フラグの設定を解除します。

      例:

      [ceph: root@host01 /]# ceph osd unset noout
      [ceph: root@host01 /]# ceph osd unset noscrub
      [ceph: root@host01 /]# ceph osd unset nodeep-scrub

5.1.2. 以前のリリースからの段階的なアップグレードの実行

Red Hat Ceph Storage 5.2 以降では、必要な引数を指定すると、ストレージクラスター上で段階的なアップグレードを実行できます。段階的アップグレードをサポートしていないバージョンからアップグレードする場合は、最初に Ceph Manager (ceph-mgr) デーモンを手動でアップグレードする必要があります。Ceph Manager デーモンをアップグレードしたら、制限パラメーターを渡して段階的なアップグレードを完了できます。

重要

この手順を試みる前に、少なくとも 2 つの実行中の Ceph Manager デーモンがあることを確認してください。

前提条件

  • クラスターで Red Hat Ceph Storage 5.0 以降が実行している。
  • ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。

手順

  1. Cephadm シェルにログインします。

    例:

    [root@host01 ~]# cephadm shell

  2. どの Ceph Manager がアクティブで、どれがスタンバイかを判別します。

    例:

    [ceph: root@host01 /]# ceph -s
      cluster:
        id:     266ee7a8-2a05-11eb-b846-5254002d4916
        health: HEALTH_OK
    
    
      services:
        mon: 2 daemons, quorum host01,host02 (age 92s)
        mgr: host01.ndtpjh(active, since 16h), standbys: host02.pzgrhz

  3. 各スタンバイ Ceph Manager デーモンを手動でアップグレードします。

    構文

    ceph orch daemon redeploy mgr.ceph-HOST.MANAGER_ID --image IMAGE_ID

    例:

    [ceph: root@host01 /]# ceph orch daemon redeploy mgr.ceph-host02.pzgrhz --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest

  4. アップグレードされたスタンバイ Ceph Manager にフェイルオーバーします。

    例:

    [ceph: root@host01 /]# ceph mgr fail

  5. スタンバイ Ceph Manager が現在アクティブであることを確認します。

    例:

    [ceph: root@host01 /]# ceph -s
      cluster:
        id:     266ee7a8-2a05-11eb-b846-5254002d4916
        health: HEALTH_OK
    
    
      services:
        mon: 2 daemons, quorum host01,host02 (age 1h)
        mgr: host02.pzgrhz(active, since 25s), standbys: host01.ndtpjh

  6. アクティブな Ceph Manager が新しいバージョンにアップグレードされていることを確認します。

    構文

    ceph tell mgr.ceph-HOST.MANAGER_ID version

    例:

    [ceph: root@host01 /]# ceph tell mgr.host02.pzgrhz version
    {
        "version": "16.2.8-12.el8cp",
        "release": "pacific",
        "release_type": "stable"
    }

  7. ステップ 2 から 6 を繰り返して、残りの Ceph Manager を新しいバージョンにアップグレードします。
  8. すべての Ceph Manager が新しいバージョンにアップグレードされていることを確認します。

    例:

    [ceph: root@host01 /]# ceph mgr versions
    {
        "ceph version 16.2.8-12.el8cp (600e227816517e2da53d85f2fab3cd40a7483372) pacific (stable)": 2
    }

  9. すべての Ceph Manager をアップグレードしたら、制限パラメーターを指定して、残りの段階的アップグレードを完了できます。

関連情報

第6章 ストレージクラスターのアップグレードの監視および管理

ceph orch upgrade start コマンドを実行して Red Hat Ceph Storage クラスターをアップグレードした後、状態を確認し、アップグレードプロセスを一時停止、再開、または停止できます。アップグレード中にクラスターの健全性が HEALTH_WARNING に変わります。クラスターのホストがオフラインの場合、アップグレードは一時停止されます。

注記

デーモンタイプを 1 つずつアップグレードする必要があります。デーモンをアップグレードすることができない場合は、アップグレードが一時停止されます。

前提条件

  • Red Hat Ceph Storage クラスター 5 が実行している。
  • すべてのノードへの root レベルのアクセス。
  • ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
  • 開始されるストレージクラスターのアップグレード。

手順

  1. アップグレードが進行中であるかどうか、およびクラスターのアップグレードするバージョンを確認します。

    例:

    [ceph: root@node0 /]# ceph orch upgrade status

    注記

    アップグレードに成功したら、メッセージを取得しません。ceph versions コマンドおよび ceph orch ps コマンドを実行して、新しいイメージ ID およびストレージクラスターのバージョンを確認します。

  2. 任意: アップグレードプロセスを一時停止します。

    例:

    [ceph: root@node0 /]# ceph orch upgrade pause

  3. 任意: 一時停止したアップグレードプロセスを再開します。

    例:

    [ceph: root@node0 /]# ceph orch upgrade resume

  4. 任意: アップグレードプロセスを停止します。

    例:

    [ceph: root@node0 /]# ceph orch upgrade stop

第7章 アップグレードのエラーメッセージのトラブルシューティング

以下の表に、cephadm アップグレードエラーメッセージの一部を示します。何らかの理由で cephadm のアップグレードが失敗すると、エラーメッセージがストレージクラスターのヘルスステータスに表示されます。

エラーメッセージ説明

UPGRADE_NO_STANDBY_MGR

続行するには、Ceph にアクティブマネージャーデーモンとスタンバイマネージャーデーモンの両方が必要ですが、現在スタンバイはありません。

UPGRADE_FAILED_PULL

Ceph は、ターゲットバージョンのコンテナーイメージをプルできませんでした。これは、存在しないバージョンまたはコンテナーイメージ (例: 1.2.3) を指定する場合や、コンテナーレジストリーがクラスター内の 1 つ以上のホストから到達できない場合に発生する可能性があります。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.