アップグレードガイド


Red Hat Ceph Storage 5

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章 RHCS 4 から RHCS 5 への Red Hat Ceph Storage クラスターのアップグレード

ストレージ管理者は、Red Hat Ceph Storage クラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードできます。アップグレードプロセスには、以下のタスクが含まれます。

  • ストレージクラスターが Red Hat Enterprise Linux 7 を実行している場合は、ストレージクラスターのホスト OS バージョンを Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードします。
  • ノードがまだ Red Hat Enterprise Linux 7 を実行している場合には、Ceph Ansible 管理ノードでホストの OS バージョンを Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードします。
  • Ansible Playbook を使用して Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。
注記

Red Hat Enterprise Linux 7.9 上の Red Hat Ceph Storage 4.3 から Red Hat Enterprise Linux 9 上の Red Hat Ceph Storage 5.2 にアップグレードする場合は、最初にホスト OS を Red Hat Enterprise Linux 7.9 から Red Hat Enterprise Linux 8.x にアップグレードし、Red Hat Ceph Storage をアップグレードしてから、Red Hat Enterprise Linux 9.x にアップグレードします。

重要

Red Hat CephStorage 4 クラスターがすでに Red Hat Enterprise Linux 8 を実行している場合は、Upgrading a Red Hat Ceph Storage running Red Hat Enterprise Linux 8 from RHCS4 to RHCS 5 を参照してください。

重要

leapp は、暗号化された OSD または暗号化されたパーティションを持つ OSD のアップグレードをサポートしていません。OSD が暗号化され、ホスト OS をアップグレードする場合は、OS をアップグレードする前に ceph-ansibledmcrypt を無効にします。leapp の使用に関する詳細は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 および Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。

重要

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

重要

Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合には、bluestore_fsck_quick_fix_on_mount パラメーターを true に設定したり、ceph-bluestore-tool --path PATH_TO_OSD --command quick-fix|repair コマンドを実行したりしないでください。OMAP キーが不適切にフォーマットされデータ破損が発生する可能性があるためです。

警告

Ceph Object Gateway ストレージクラスター (シングルサイトまたはマルチサイト) 上の Red Hat Ceph Storage 5.0 から Red Hat Ceph Storage 5.2 へのアップグレードはサポートされていますが、ストレージクラスターをアップグレードする前に、ceph config set mgr mgr/cephadm/no_five_one_rgw true --force オプションを設定する必要があります。

Ceph Object Gateway ストレージクラスター (シングルサイトまたはマルチサイト) 上の Red Hat Ceph Storage 5.1 から Red Hat Ceph Storage 5.2 へのアップグレードは、既知の問題によりサポートされていません。詳細は、ナレッジベースの記事 Support Restrictions for upgrades for RADOS Gateway (RGW) on Red Hat Red Hat Ceph Storage 5.2 を参照してください。

注記

Red Hat Ceph Storage 5.0z4 へのアップグレードを計画している場合は、ナレッジベースの記事 How to upgrade from Red Hat Ceph Storage 4.2z4 to 5.0z4 に従ってアップグレード手順を実行してください。

重要

Red Hat Ceph Storage では、オプション bluefs_buffered_io はデフォルトで True に設定されます。このオプションは、場合によって BlueFS でバッファー読み取りができるようにし、カーネルページキャッシュが RocksDB ブロック読み取りのような読み取りの二次キャッシュとして機能できるようにします。たとえば、 OMAP の反復時にすべてのブロックを保持ほど、RocksDB のブロックキャッシュが十分にない場合には、ディスクの代わりにページキャッシュから読み出すことが可能な場合があります。これにより、osd_memory_target が小さすぎてブロックキャッシュのすべてのエントリーを保持できない場合に、パフォーマンスが劇的に向上します。現在、bluefs_buffered_io を有効にし、システムレベルの swap を無効にすると、パフォーマンスの低下を防ぐことができます。

bluefs_buffered_io の現在の設定の表示の詳細については、Red Hat Ceph Storage Administration GuideViewing the bluefs_buffered_io setting セクションを参照してください。

注記

クラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする時に、すべてのクライアントノードで ceph-common パッケージをアップグレードする必要があります。ceph-common パッケージをアップグレードするには、他のデーモンのアップグレード後にすべてのクライアントで yum update ceph-common コマンドを実行します。

Red Hat Ceph Storage 5 は、コンテナー化されたデーモンのみをサポートします。コンテナーされていないストレージクラスターはサポートされません。コンテナー化されていないストレージクラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合、アップグレードプロセスには、コンテナー化されたデプロイメントへの変換が含まれます。

1.1. 前提条件

  • Red Hat Ceph Storage 4 クラスターが実行されている。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。
重要

Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph File System (CephFS) Metadata Server (MDS) ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。基盤となる XFS ファイルシステムが ftype=1 でフォーマットされているか、d_type をサポートしている。xfs_info /var コマンドを実行し、ftype1 になっていることを確認します。ftype の値が 1 でない場合は、新しいディスクをアタッチするか、ボリュームを作成します。この新しいデバイスの上に、新しい XFS ファイルシステムを作成し、/var/lib/containers にマウントします。

Red Hat Enterprise Linux 8 以降、mkfs.xfs はデフォルトで ftype=1 を有効にします。

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

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

Ceph アップグレードプロセスの一環として Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードする予定がある場合は、podman のバージョンが Red Hat Ceph Storage 5 と互換性があることを確認してください。

Red Hat は、Red Hat Ceph Storage 5 に対応する Red Hat Enterprise Linux バージョンに同梱されている podman バージョンを使用することを推奨しています。詳細は、ナレッジベースの記事 Red Hat Ceph Storage: Supported configurations を参照してください。その他のサポートについては、Red Hat Ceph Storage Troubleshooting GuideContacting Red Hat support for service セクションを参照してください。

重要

Red Hat Ceph Storage 5.0 は、バージョン 2.2.1 を除き、podman バージョン 2.0.0 以降と互換性があります。バージョン 2.2.1 は、Red Hat Ceph Storage 5.0 と互換性がありません。

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

CephPodman    
 

1.9

2.0

2.1

2.2

3.0

5.0 (Pacific)

false

true

true

false

true

1.3. アップグレードの準備

ストレージ管理者は、Ceph Storage クラスターを Red Hat Ceph Storage 5 にアップグレードできます。ただし、ストレージクラスターの一部のコンポーネントは、アップグレードを行う前に特定のソフトウェアバージョンを実行している必要があります。以下は、Red Hat Ceph Storage 5 にアップグレードする前にストレージクラスターにインストールする必要のある最小のソフトウェアバージョンを示しています。

  • Red Hat Ceph Storage 4.3 以降
  • Ansible 2.9
  • Ceph-ansible には、最新バージョンの Red Hat Ceph Storage が同梱されている
  • Red Hat Enterprise Linux 8.4 EUS 以降
  • FileStore OSD が BlueStore に移行されている必要がある。OSD を FileStore から BlueStore に変換する方法については、BlueStore を参照してください。

Red Hat Ceph Storage 4.3 よりも前のバージョンから直接アップグレードする方法はありません。Red Hat Ceph Storage 3 からアップグレードする場合は、まず Red Hat Ceph Storage 4.3 以降にアップグレードしてから Red Hat Ceph Storage 5 にアップグレードする必要があります。

重要

Red Hat Ceph Storage 5 の最新バージョンにのみアップグレードできます。たとえば、バージョン 5.1 が利用可能な場合、4 から 5.0 にアップグレードすることはできません。5.1 に直接アップグレードする必要があります。

重要

Red Hat Enterprise Linux-8.7 (またはそれ以降) への Red Hat Ceph Storage-4.3.z1 の新規デプロイメント、または Red Hat Enterprise Linux-8.7 (またはそれ以降) のホスト OS を使用した Red Hat Ceph Storage-4.3.z1 から 5.X へのアップグレードは、TASK [ceph-mgr : wait for all mgr to be up] で失敗します。Red Hat Enterprise Linux 8.7 でリリースされた podman は、SELinux のラベル再設定に関する動作が変更されました。このため、起動順序によっては、一部の Ceph コンテナーが必要なファイルにアクセスできず、起動に失敗することがあります。

回避策については、ナレッジベースの RHCS 4.3 installation fails while executing the command `ceph mgr dump` を参照してください。

ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードするには、クラスターで Red Hat Ceph Storage 4.3 以降を実行することを推奨しています。ナレッジベースの記事 What are the Red Hat Ceph Storage Releases? を参照してください。この記事には、Ceph パッケージと ceph-ansible の最新バージョンへのダウンロードリンクが含まれています。

アップグレードプロセスでは、Ansible Playbook を使用して、Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。Red Hat Ceph Storage 4 ストレージクラスターがコンテナー化されていないクラスターである場合、アップグレードプロセスには、クラスターをコンテナー化バージョンに変換するステップが含まれます。Red Hat Ceph Storage 5 は、コンテナー化されていないクラスターでは実行されません。

ミラーリングまたはマルチサイト設定がある場合は、一度に 1 つのクラスターをアップグレードします。別のクラスターをアップグレードする前に、アップグレードした各クラスターが適切に実行されていることを確認します。

重要

leapp は、暗号化された OSD または暗号化されたパーティションを持つ OSD のアップグレードをサポートしていません。OSD が暗号化され、ホスト OS をアップグレードする場合は、OS をアップグレードする前に ceph-ansibledmcrypt を無効にします。leapp の使用方法は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。

重要

この手順の最初 3 つのステップは、ストレージクラスターが最新バージョンの RRed Hat Ceph Storage 4 をまだ実行していない場合に のみ 実行してください。Red Hat Ceph Storage 4 の最新バージョンは 4.3 以降である必要があります。

前提条件

  • Red Hat Ceph Storage 4 クラスターが実行されている。
  • ストレージクラスター内すべてのノードへの sudo レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。

手順

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

    例:

    [root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms

  2. Ansible を更新します。

    例:

    [root@admin ceph-ansible]# dnf update ansible ceph-ansible

  3. アップグレードするストレージクラスターに、exclusive-lock 機能を使用する Ceph Block Device イメージが含まれる場合は、すべての Ceph Block Device ユーザーにクライアントの拒否リストを作成するパーミッションがあるようにしてください。

    構文

    ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'

  4. ストレージクラスターが Cockpit を使用して最初にインストールされている場合は、/usr/share/ceph-ansible ディレクトリーに、Cockpit が作成したインベントリーファイルへのシンボリックリンクを /usr/share/ansible-runner-service/inventory/hosts に作成します。

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

      # cd /usr/share/ceph-ansible
    2. シンボリックリンクを作成します。

      # ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
  5. ceph-ansible を使用してクラスターをアップグレードするには、hosts インベントリーファイルのシンボリックリンクを etc/ansible/hosts ディレクトリーに作成します。

    # ln -s /etc/ansible/hosts hosts
  6. ストレージクラスターが元々 Cockpit を使用してインストールされた場合は、コックピットで生成された SSH キーを Ansible ユーザーの ~/.ssh ディレクトリーにコピーします。

    1. 鍵をコピーします。

      構文

      cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa

      ANSIBLE_USERNAME を Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は admin です。

      例:

      # cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub
      # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa

    2. キーファイルに適切な所有者、グループ、およびパーミッションを設定します。

      構文

      # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa
      # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa

      ANSIBLE_USERNAME を、Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は admin です。

      例:

      # chown admin:admin /home/admin/.ssh/id_rsa.pub
      # chown admin:admin /home/admin/.ssh/id_rsa
      # chmod 644 /home/admin/.ssh/id_rsa.pub
      # chmod 600 /home/admin/.ssh/id_rsa

関連情報

1.4. ホスト OS アップグレード前のファイルのバックアップ

注記

ホスト OS をアップグレードする場合のみ、本セクションの手順を実行します。ホスト OS をアップグレードしない場合は、本セクションを省略します。

Playbook を実行すると ceph.conf ファイルがオーバーライドされるため、アップグレード手順を実行する前に、ストレージクラスター用にカスタマイズしたファイルのバックアップコピーを作成する必要があります。これにはキーリングファイルや設定用の yml ファイルが含まれます。

前提条件

  • Red Hat Ceph Storage 4 クラスターが実行されている。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage Tools および Ansible リポジトリーが有効になっている。

手順

  1. /etc/ceph フォルダーと /var/lib/ceph フォルダーのバックアップコピーを作成します。
  2. ceph.client.admin.keyring ファイルのバックアップコピーを作成します。
  3. 各ノードから ceph.conf ファイルのバックアップコピーを作成します。
  4. 各ノードの /etc/ganesha/ フォルダーのバックアップコピーを作成します。
  5. ストレージクラスターで RBD ミラーリングが定義されている場合には、/etc/ceph フォルダーおよび group_vars/rbdmirrors.yml ファイルのバックアップコピーを作成します。

1.5. コンテナー化されたデプロイメントへの変換

この手順は、コンテナー化されていないクラスターに必要です。ストレージクラスターがコンテナー化されていないクラスターである場合、この手順により、クラスターがコンテナー化されたバージョンに変換されます。

Red Hat Ceph Storage 5 はコンテナーベースのデプロイメントだけをサポートします。RHCS 5.x にアップグレードする前に、クラスターをコンテナー化する必要があります。

Red Hat Ceph Storage 4 ストレージクラスターがすでにコンテナー化されている場合は、本セクションを飛ばして次に進んでください。

重要

この手順により、デーモンが停止され、再起動されます。この手順の実行中に Playbook の実行が停止された場合は、再起動する前に必ずクラスターの状態を分析してください。

前提条件

  • コンテナー化されていない Red Hat Ceph Storage 4 クラスターが実行されている。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。

手順

  1. マルチサイト設定を実行している場合は、rgw_multisite: falseall.yml に設定します。
  2. group_vars/all.yml に、設定パラメーターに以下のデフォルト値があることを確認します。

    ceph_docker_image_tag: "latest"
    ceph_docker_registry: "registry.redhat.io"
    ceph_docker_image: rhceph/rhceph-4-rhel8
    containerized_deployment: true
    注記

    この値は、ローカルレジストリーとカスタムイメージ名を使用する場合によって異なります。

  3. 任意手順: ベアメタルストレージクラスターのコマンドラインインターフェイスを使用して設定された双方向 RBD ミラーリングの場合、クラスターは RBD ミラーリングを移行しません。このような設定では、コンテナー化されていないストレージクラスターをコンテナー化されたデプロイメントに移行する前に、以下の手順を実行します。

    1. Ceph クライアントノードでユーザーを作成します。

      構文

      ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring

      [root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring

    2. /etc/ceph ディレクトリーの auth ファイルでユーザー名を変更します。

      [client.rbd-mirror.rbd-client-site-a]
          key = AQCbKbVg+E7POBAA7COSZCodvOrg2LWIFc9+3g==
          caps mds = "allow *"
          caps mgr = "allow *"
          caps mon = "allow *"
          caps osd = "allow *"

    3. auth ファイルをインポートして、関連するパーミッションを追加します。

      構文

      ceph auth import -i PATH_TO_KEYRING

      [root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring

    4. RBD ミラーノードのサービス名を確認します。

      [root@rbd-client-site-a ~]# systemctl list-units --all
      
      systemctl stop ceph-rbd-mirror@rbd-client-site-a.service
      systemctl disable ceph-rbd-mirror@rbd-client-site-a.service
      systemctl reset-failed ceph-rbd-mirror@rbd-client-site-a.service
      systemctl start ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
      systemctl enable ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
      systemctl status ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service

    5. rbd-mirror ノードを /etc/ansible/hosts ファイルに追加します。

      例:

      [rbdmirrors]
      ceph.client.rbd-mirror.rbd-client-site-a

  4. コンテナー化されていないデーモンを使用している場合は、それらをコンテナー化された形式に変換します。

    構文

    ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml

    -vvvv オプションは、変換プロセスの詳細ログを収集します。

    例:

    [ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml

  5. Playbook が正常に完了したら、all.yml ファイルの rgw_multisite: true の値を編集し、containerized_deployment の値が true となるようにします。

    注記

    ceph-iscsilibtcmu、および tcmu-runner パッケージを管理ノードから必ず削除してください。

1.6. ホストオペレーティングシステムの更新

Red Hat Ceph Storage 5 は、Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0、および 9.1 でサポートされます。

この手順により、ストレージクラスターのノードに Red Hat Ceph Storage 5 および RedHat Enterprise Linux 8 をインストールできます。ストレージクラスターで Red Hat Enterprise Linux 8 をすでに実行している場合は、この手順を省略してください。

最新バージョンの Red Hat Enterprise Linux および Red Hat Ceph Storage を実行するには、クラスター内のすべてのノードを手動でアップグレードする必要があります。

前提条件

  • Red Hat Ceph Storage 4 ストレージクラスターが実行されている。
  • ストレージクラスター内すべてのノードへの sudo レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。

手順

  1. docker-to-podman Playbook を使用して、docker を podman に変換します。

    例:

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

1.6.1. Ceph Monitor ノードとそのオペレーティングシステムを手動でアップグレード

システム管理者は、Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph Monitor ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

一度に 1 つのモニターノードのみで手順を実施します。クラスターアクセスの問題を防ぐには、次のノードに進むに、現在のアップグレードされた Monitor ノードが通常の操作に戻っていることを確認してください。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • 各ノード で Red Hat Enterprise Linux 7.9 が実行されている。
  • ノードは Red Hat Ceph Storage バージョン 4.3 以降を使用している。
  • インストールソースへのアクセスが、Red Hat Enterprise Linux 8.4 EUS 以降で利用できる。
重要

Red Hat Enterprise Linux 7.9 上の Red Hat Ceph Storage 4.3 から Red Hat Enterprise Linux 9 上の Red Hat Ceph Storage 5 にアップグレードする場合は、最初にホスト OS を Red Hat Enterprise Linux 7.9 から Red Hat Enterprise Linux 8.x にアップグレードし、Red Hat Ceph Storage をアップグレードしてから、Red Hat Enterprise Linux 9.x にアップグレードしてください。

手順

  1. monitor サービスを停止します。

    構文

    systemctl stop ceph-mon@MONITOR_ID

    MONITOR_ID を、Monitor ノードの ID 番号に置き換えます。

  2. Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 リポジトリーを無効にします。

    1. tools リポジトリーを無効にします。

      # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
    2. mon リポジトリーを無効にします。

      # subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpms
  3. jumpp ユーティリティーを使用してストレージクラスターをアップグレードすると、Ceph パッケージの多くが削除されます。アップグレードする前に、Ceph パッケージを書き留めます。

    例:

    [root@host01 ~]# rpm -qa | grep ceph
    
    python-ceph-argparse-14.2.22-128.el7cp.x86_64
    ceph-selinux-14.2.22-128.el7cp.x86_64
    python-cephfs-14.2.22-128.el7cp.x86_64
    ceph-base-14.2.22-128.el7cp.x86_64
    ceph-mon-14.2.22-128.el7cp.x86_64
    ceph-mgr-diskprediction-local-14.2.22-128.el7cp.noarch
    ceph-ansible-4.0.70.18-1.el7cp.noarch
    libcephfs2-14.2.22-128.el7cp.x86_64
    ceph-common-14.2.22-128.el7cp.x86_64
    ceph-osd-14.2.22-128.el7cp.x86_64
    ceph-mgr-14.2.22-128.el7cp.x86_64

  4. leapp ユーティリティーをインストールします。

  5. leapp のアップグレード前のチェックを行います。Assessing upgradability from the command line を参照してください。
  6. Red Hat Enterprise Linux 8.6 にアップグレードした後に、Ceph-Ansible パッケージをインストールし、Ansible Playbook を実行します。

    1. Ceph-Ansible をインストールすると、すべての Ceph パッケージがインストールされます。

      [root@admin ~]# dnf install ceph-ansible
    2. ansible ユーザーとして、アップグレードされたすべてのノードで Ansible Playbook を実行します。

      • ベアメタルデプロイメント

        [user@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
      • コンテナーデプロイメント

        [ansible@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site-container.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
  7. Red Hat Enterprise Linux 9.x にアップグレードした後、podman-auth.json ファイルを他のノードから /etc/ceph/` のアップグレードされたノードにコピーし、各サービスを再起動します。

    # systemctl restart _SERVICE NAME_
  8. /etc/ssh/sshd_configPermitRootLogin yes を設定します。
  9. OpenSSH SSH デーモンを再起動します。

    # systemctl restart sshd.service
  10. Linux カーネルから iSCSI モジュールを削除します。

    # modprobe -r iscsi
  11. ノードを再起動します。
  12. Red Hat Ceph Storage 5 向けのリポジトリーを有効にします。

    1. tools リポジトリーを有効にします。

      Red Hat Enterprise Linux 8

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

      Red Hat Enterprise Linux 9

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

  13. アップグレードされていない、またはそれらのファイルをすでに復元しているノードから、ceph-client-admin.keyring ファイルおよび ceph.conf ファイルを復元します。
  14. Ceph Monitor サービスを再起動します。

    例:

    [root@host01 ~]# systemctl restart ceph-mon@host01.service
    [root@host01 ~]# systemctl status ceph-mon@host01.service

  15. モニターおよびマネージャーサービスがバックアップされ、モニターがクォーラムであることを確認します。

    構文

    ceph -s

    services:mon: 行で、ノードが クォーラム外 ではなく クォーラム にリストされていることを確認します。

    例:

    # ceph -s
    mon: 3 daemons, quorum node0,node1,node2 (age 2h)
    mgr: node0(active, since 2h), standbys: node1, node2

  16. すべてのアップグレードが完了するまで、すべての監視ノードで上記の手順を繰り返します。

関連情報

1.6.2. OSD ノードのアップグレード

システム管理者は、Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph OSD ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

Ceph クラスターの OSD ノードごとにこの手順を実行しますが、通常は 1 度に 1 つの OSD ノードに対してのみ実行します。最大 1 つの障害ドメインに相当する OSD ノードを並行して実行できます。たとえば、ラックごとのレプリケーションが使用されている場合は、ラックの OSD ノード全体を並行してアップグレードできます。データアクセスの問題を防ぐには、次の OSD に進むに、現在の OSD ノードの OSD が通常の動作に戻り、すべてのクラスター PG が active+clean 状態であるようにしてください。

重要

Red Hat Enterprise Linux 7.9 上の Red Hat Ceph Storage 4.3 から Red Hat Enterprise Linux 9 上の Red Hat Ceph Storage 5.2 にアップグレードする場合は、最初にホスト OS を Red Hat Enterprise Linux 7.9 から Red Hat Enterprise Linux 8.x にアップグレードし、Red Hat Ceph Storage をアップグレードしてから、Red Hat Enterprise Linux 9.x にアップグレードします。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • 各ノード で Red Hat Enterprise Linux 7.9 が実行されている。
  • ノードは Red Hat Ceph Storage バージョン 4.3 以降を使用している。
  • Red Hat Enterprise Linux 8.4 EUS 以降のインストールソースへアクセスできる。
  • FileStore OSD が BlueStore に移行されている必要がある。

手順

  1. BlueStore に移行されていない FileStore OSD がある場合は、filestore-to-bluestore Playbook を実行します。OSD を FileStore から BlueStore に変換する方法については、BlueStore を参照してください。
  2. OSD の noout フラグを設定して、移行中に OSD がダウンとマークされないようにします。

    構文

    ceph osd set noout

  3. クラスター上で不要な負荷を回避するには、OSD nobackfill フラグ、norecover フラグ、norrebalance フラグ、noscrub フラグ、および nodeep-scrub フラグを設定し、ノードが移行のためにダウンした場合にデータの再起動を回避します。

    構文

    ceph osd set nobackfill
    ceph osd set norecover
    ceph osd set norebalance
    ceph osd set noscrub
    ceph osd set nodeep-scrub

  4. ノード上のすべての OSD プロセスを正常にシャットダウンします。

    構文

    systemctl stop ceph-osd.target

  5. Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 リポジトリーを無効にします。

    1. tools リポジトリーを無効にします。

      構文

      subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms

    2. osd リポジトリーを無効にします。

      構文

      subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms

  6. leapp ユーティリティーをインストールします。Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
  7. leapp のアップグレード前のチェックを行います。Assessing upgradability from the command line を参照してください。
  8. /etc/ssh/sshd_configPermitRootLogin yes を設定します。
  9. OpenSSH SSH デーモンを再起動します。

    構文

    systemctl restart sshd.service

  10. Linux カーネルから iSCSI モジュールを削除します。

    構文

    modprobe -r iscsi

  11. Performing the upgrade from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 および Performing the upgrade from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 に従って、アップグレードを実行します。

    1. tools リポジトリーを有効にします。

      Red Hat Enterprise Linux 8

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

      Red Hat Enterprise Linux 9

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

  12. ceph.conf ファイルを復元します。
  13. nooutnobackfillnorecovernorebalancenoscrub、および nodeep-scrub フラグの設定を解除します。

    構文

    ceph osd unset noout
    ceph osd unset nobackfill
    ceph osd unset norecover
    ceph osd unset norebalance
    ceph osd unset noscrub
    ceph osd unset nodeep-scrub

  14. OSD が up および in になっていること、ならびに、active+clean 状態にあることを確認します。

    構文

    ceph -s

    services: サービス下の osd: 行で、すべての OSD が up および in であることを確認します。

    例:

    # ceph -s
    osd: 3 osds: 3 up (since 8s), 3 in (since 3M)

  15. この手順は、すべての OSD ノードですべてアップグレードされるまで繰り返します。

関連情報

1.6.3. Ceph Object Gateway ノードのアップグレード

システム管理者は、Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph Object Gateway (RGW) ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

Ceph クラスターの RGW ノードごとにこの手順を実行しますが、1 度に 1 つの RGW ノードに対してのみ実行します。クライアントアクセスの問題を防ぐには、次のノードのアップグレードに進む前に、現在のアップグレードされた RGW が通常の操作に戻っていることを確認してください。

注記

アップグレード時に、radosgw-admin ツールと Ceph Object Gateway ストレージクラスターが同じバージョンであることを確認します。ストレージクラスターをアップグレードする場合、radosgw-admin ツールを同時にアップグレードすることが非常に重要です。一致しないバージョンの使用はサポートされていません

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • 各ノード で Red Hat Enterprise Linux 7.9 が実行されている。
  • ノードは Red Hat Ceph Storage バージョン 4.3 以降を使用している。
  • Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0、および 9.1 のインストールソースにアクセスできる。

手順

  1. Ceph Object Gateway サービスを停止します。

    構文

    # systemctl stop ceph-radosgw.target

  2. Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。

    # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  3. leapp ユーティリティーをインストールします。

  4. leapp のアップグレード前のチェックを行います。

  5. /etc/ssh/sshd_configPermitRootLogin yes を設定します。
  6. バケットが作成されているか、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

  7. OpenSSH SSH デーモンを再起動します。

    # systemctl restart sshd.service
  8. Linux カーネルから iSCSI モジュールを削除します。

    # modprobe -r iscsi
  9. Performing the upgrade from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 に従ってアップグレードを実行します。
  10. tools リポジトリーを有効にします。

    Red Hat Enterprise Linux 8

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

    Red Hat Enterprise Linux 9

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

  11. ceph-client-admin.keyring および ceph.conf ファイルを復元します。
  12. デーモンが有効であることを確認します。

    構文

    ceph -s

    services:rgw: 行を表示して、RGW デーモンがアクティブであることを確認します。

    例:

    rgw: 1 daemon active (node4.rgw0)

  13. すべてがアップグレードされるまで、すべての Ceph ObjectGateway ノードで上記の手順を繰り返します。

関連情報

1.6.4. CephFS Metadata Server ノードのアップグレード

ストレージ管理者として、Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph File System (CephFS) Metadata Server (MDS) ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

ストレージクラスターをアップグレードする前に、アクティブな MDS ランクの数を減らし、ファイルシステムごとに 1 つにします。これにより、複数の MDS 間でバージョンの競合が発生しなくなります。また、アップグレードを行う前に、すべてのスタンバイノードをオフラインにしてください。

これは、MDS クラスターにはバージョニングやファイルシステムフラグが組み込まれていないためです。これらの機能がないと、複数の MDS が異なるバージョンの MDS ソフトウェアを使用して通信することになり、アサーションやその他の不具合が発生する可能性があります。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • 各ノード で Red Hat Enterprise Linux 7.9 が実行されている。
  • ノードは Red Hat Ceph Storage バージョン 4.3 以降を使用している。
  • Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0、および 9.1 のインストールソースにアクセスできる。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

  1. アクティブな MDS ランクを 1 にします。

    構文

    ceph fs set FILE_SYSTEM_NAME max_mds 1

    例:

    [root@mds ~]# ceph fs set fs1 max_mds 1

  2. クラスターがすべての MDS ランクを停止するのを待ちます。すべての MDS が停止したら、ランク 0 だけがアクティブになるはずです。残りはスタンバイモードにしておきます。ファイルシステムの状態を確認します。

    [root@mds ~]# ceph status
  3. systemctl を使用して、スタンバイしているすべての MDS をオフラインにします。

    [root@mds ~]# systemctl stop ceph-mds.target
  4. MDS が 1 つだけオンラインになっており、ファイルシステムのランクが 0 であることを確認します。

    [ceph: root@host01 /]# ceph status
  5. Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。

    [root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  6. leapp ユーティリティーをインストールします。

  7. leapp のアップグレード前のチェックを行います。

  8. etc/ssh/sshd_config を編集し、PermitRootLoginyes に設定します。
  9. OpenSSH SSH デーモンを再起動します。

    [root@mds ~]# systemctl restart sshd.service
  10. Linux カーネルから iSCSI モジュールを削除します。

    [root@mds ~]# modprobe -r iscsi
  11. アップグレードを実行します。

  12. tools リポジトリーを有効にします。

    Red Hat Enterprise Linux 8

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

    Red Hat Enterprise Linux 9

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

  13. ceph-client-admin.keyring および ceph.conf ファイルを復元します。
  14. デーモンが有効であることを確認します。

    [root@mds ~]# ceph -s
  15. スタンバイ中のデーモンについても同じプロセスを実行します。
  16. スタンバイ中のすべての MDS の再起動が完了したら、クラスターの max_mds の値を以前の値に戻します。

    構文

    ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE

    [root@mds ~]# ceph fs set fs1 max_mds 5

関連情報

1.6.5. Ceph Dashboard ノードとそのオペレーティングシステムを手動でアップグレード

システム管理者は、Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph Dashboard ソフトウェアを同時に新しいメジャーリリースにアップグレードできます。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • ノードで Red Hat Enterprise Linux 7.9 を実行している。
  • ノードで Red Hat Ceph Storage バージョン 4.3 以降が実行されている。
  • Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0、または 9.1 のインストールソースにアクセスできる。

手順

  1. Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。

    # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  2. leapp ユーティリティーをインストールします。

  3. leapp のアップグレード前のチェックを行います。

  4. /etc/ssh/sshd_configPermitRootLogin yes を設定します。
  5. OpenSSH SSH デーモンを再起動します。

    # systemctl restart sshd.service
  6. Linux カーネルから iSCSI モジュールを削除します。

    # modprobe -r iscsi
  7. アップグレードを実行します。

  8. Red Hat Ceph Storage 5 のツールリポジトリーを有効にします。

    Red Hat Enterprise Linux 8

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

    Red Hat Enterprise Linux 9

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

関連情報

1.6.6. Ceph Ansible ノードの手動でのアップグレードと再設定

Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph Ansible ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。

重要

Ceph Ansible ノードでホスト OS をアップグレードする前に、group_vars および hosts ファイルをバックアップします。Ceph Ansible ノードを再設定する前に作成したバックアップを使用します。

前提条件

  • Red Hat Ceph Storage クラスターが実行されている。
  • ノードで Red Hat Enterprise Linux 7.9 を実行している。
  • ノードが Red Hat Ceph Storage バージョン 4.2z2 以降を実行している。
  • Red Hat Enterprise Linux 8.4 EUS または Red Hat Enterprise Linux 8.5 のインストールソースにアクセスできる。

手順

  1. Red Hat Enterprise Linux 8 の Red Hat Ceph Storage 4 のツールリポジトリーを無効にします。

    [root@ansible ~]# subscription-manager repos --disable=rhceph-4-tools-for-rhel-8-x86_64-rpms
    [root@ansible ~]# subscription-manager repos --disable=ansible-2.9-for-rhel-8-x86_64-rpms
  2. leapp ユーティリティーをインストールします。

  3. leapp のアップグレード前のチェックを行います。

  4. etc/ssh/sshd_config を編集し、PermitRootLoginyes に設定します。
  5. OpenSSH SSH デーモンを再起動します。

    [root@mds ~]# systemctl restart sshd.service
  6. Linux カーネルから iSCSI モジュールを削除します。

    [root@mds ~]# modprobe -r iscsi
  7. アップグレードを実行します。

  8. Red Hat Ceph Storage 5 のツールリポジトリーを有効にします。

    Red Hat Enterprise Linux 8

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

    Red Hat Enterprise Linux 9

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

  9. ceph-client-admin.keyring および ceph.conf ファイルを復元します。

関連情報

1.7. バックアップファイルの復元

ストレージクラスターの各ノードでホスト OS アップグレードを完了した後、アップグレードしたノードが保存された設定を使用するように、前の手順でバックアップしたすべてのファイルを復元します。

そのホストの OS アップグレードプロセスが完了した後に、ストレージクラスターの各ホストでこのプロセスを繰り返します。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

  1. ホスト OS がホストをアップグレードする前にバックアップしたファイルを復元します。
  2. ceph.client.admin.keyringceph.conf ファイルなどを含む、/etc/ceph フォルダーおよびその内容をすべてのホストに復元します。
  3. 各ノードに /etc/ganesha/ フォルダーを復元します。
  4. オペレーティングシステムのアップグレード後に、バックアップされた各ファイルの所有権が変更していないことを確認します。ファイルの所有者は ceph である必要があります。ファイル所有者が root に変更された場合は、各ファイルで以下のコマンドを使用し、所有者を ceph に戻します。

    例:

    [root@admin]# chown ceph: ceph.client.rbd-mirror.node1.keyring

  5. Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードし、ストレージクラスターに RBD ミラーリングが定義されている場合は、バックアップコピーから /etc/ceph フォルダーを復元します。
  6. 前のステップでバックアップした group_vars/rbdmirrors.yml ファイルを復元します。
  7. すべてのノード上のフォルダーの所有権を変更します。

    例:

    [root@admin]# chown -R /etc/ceph
    [root@admin]# chown -R /var/log/ceph
    [root@admin]# chown -R /var/lib/ceph

1.8. RHCS アップグレード前のファイルのバックアップ

rolling_update.yml Playbook を実行して Red Hat Ceph Storage 4 を Red Hat Ceph Storage 5 にアップグレードする前に、すべての yml ファイルのバックアップコピーを作成します。

前提条件

  • Red Hat Ceph Storage 4 クラスターで RHCS 4.3 以降が実行されている。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。

手順

  • すべての yml ファイルのバックアップコピーを作成します。

    例:

    [root@admin ceph-ansible]# cp group_vars/all.yml group_vars/all_old.yml
    [root@admin ceph-ansible]# cp group_vars/osds.yml group_vars/osds_old.yml
    [root@admin ceph-ansible]# cp group_vars/mdss.yml group_vars/mdss_old.yml
    [root@admin ceph-ansible]# cp group_vars/rgws.yml group_vars/rgws_old.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml group_vars/clients_old.yml

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

1.10. cephadm を使用したストレージクラスターの変換

ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードしたら、cephadm-adopt Playbook を実行し、cephadm を実行するようにストレージクラスターデーモンを変換します。

cephadm-adopt Playbook は、Ceph サービスを採用し、すべての cephadm 依存関係をインストールして、cephadm Orchestrator バックエンドを有効にし、すべてのホストで ssh キーを生成および設定して、ホストを Orchestrator 設定に追加します。

注記

cephadm-adopt Playbook の実行後に、ceph-ansible パッケージを削除します。クラスターデーモンは ceph-ansible で機能しなくなります。cephadm を使用してクラスターデーモンを管理する必要があります。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

  1. ceph-ansible ノードにログインし、/usr/share/ceph-ansible ディレクトリーに移動します。
  2. all.yml ファイルを編集します。

    構文

    ceph_origin: custom/rhcs
    ceph_custom_repositories:
      - name: NAME
        state: present
        description: DESCRIPTION
        gpgcheck: 'no'
        baseurl: BASE_URL
        file: FILE_NAME
        priority: '2'
        enabled: 1

    例:

    ceph_origin: custom
    ceph_custom_repositories:
      - name: ceph_custom
        state: present
        description: Ceph custom repo
        gpgcheck: 'no'
        baseurl: https://example.ceph.redhat.com
        file: cephbuild
        priority: '2'
        enabled: 1
      - name: ceph_custom_1
        state: present
        description: Ceph custom repo 1
        gpgcheck: 'no'
        baseurl: https://example.ceph.redhat.com
        file: cephbuild_1
        priority: '2'
        enabled: 1

  3. cephadm-adopt Playbook を実行します。

    構文

    ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILE

    例:

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

  4. 最小の compat client パラメーターを luminous に設定します。

    例:

    [ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous

  5. 以下のコマンドを実行して、アプリケーションが NFS-Ganesha プールで実行されるようにします。POOL_NAMEnfs-ganesha で、APPLICATION_NAMEcephfsrbdrgw などの有効にするアプリケーションの名前です。

    構文

    ceph osd pool application enable POOL_NAME APPLICATION_NAME

    例:

    [ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgw

    重要

    Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 へのストレージクラスターの移行後に、cephadm-adopt Playbook が rbd-mirroring を起動しません。

    この問題を回避するには、ピアを手動で追加します。

    構文

    rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAME

    例:

    [ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-b

  6. アップグレード後に Grafana を削除します。

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

      例:

      [root@host01 ~]# cephadm shell

    2. ストレージクラスター内の Grafana の名前を取得します。

      例:

      [ceph: root@host01 /]# ceph orch ps --daemon_type grafana

    3. Grafana を削除します。

      構文

      ceph orch daemon rm GRAFANA_DAEMON_NAME

      例:

      [ceph: root@host01 /]# ceph orch daemon rm grafana.host01
      
      Removed grafana.host01 from host 'host01'

    4. 数分待って、最新のログを確認します。

      例:

      [ceph: root@host01 /]# ceph log last cephadm

      cephadm は、Grafana サービスとデーモンを再デプロイします。

関連情報

1.11. アップグレードされたストレージクラスターへの cephadm-ansible のインストール

cephadm-ansible は、cephadm で対応していないワークフローを単純化する Ansible Playbook のコレクションです。インストール後に、Playbook は /usr/share/cephadm-ansible/ にあります。

注記

アップグレードしたストレージクラスターに新規ノードまたは新規クライアントを追加する前に、Playbook cephadm-preflight.yml を実行します。

前提条件

  • Ansible 管理ノードへの root レベルのアクセス。
  • 適切なエンタイトルメントを持つ有効な Red Hat サブスクリプション。
  • Red Hat Registry にアクセスするためのアクティブな Red Hat Network (RHN) またはサービスアカウント。

手順

  1. ansible および古い ceph-ansible パッケージをアンインストールします。

    構文

    dnf remove ansible ceph-ansible

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

    Red Hat Enterprise Linux 8

    [root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpms

  3. cephadm-ansible パッケージをインストールします。これにより、ansible-core が依存関係としてインストールされます。

    構文

    dnf install cephadm-ansible

関連情報

第2章 Red Hat Enterprise Linux 8 を実行している Red Hat Ceph Storage クラスターを RHCS 4 から RHCS 5 にアップグレードする

ストレージ管理者は、Red Hat Enterprise Linux 8 を実行している Red Hat Ceph Storage クラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードできます。アップグレードプロセスには、以下のタスクが含まれます。

  • Ansible Playbook を使用して Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。
重要

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

重要

Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合には、bluestore_fsck_quick_fix_on_mount パラメーターを true に設定したり、ceph-bluestore-tool --path PATH_TO_OSD --command quick-fix|repair コマンドを実行したりしないでください。OMAP キーが不適切にフォーマットされデータ破損が発生する可能性があるためです。

警告

Ceph Object Gateway ストレージクラスター (シングルサイトまたはマルチサイト) 上の Red Hat Ceph Storage 5.0 から Red Hat Ceph Storage 5.2 へのアップグレードはサポートされていますが、ストレージクラスターをアップグレードする前に、ceph config set mgr mgr/cephadm/no_five_one_rgw true --force オプションを設定する必要があります。

Ceph Object Gateway ストレージクラスター (シングルサイトまたはマルチサイト) 上の Red Hat Ceph Storage 5.1 から Red Hat Ceph Storage 5.2 へのアップグレードは、既知の問題によりサポートされていません。詳細は、ナレッジベースの記事 Support Restrictions for upgrades for RADOS Gateway (RGW) on Red Hat Red Hat Ceph Storage 5.2 を参照してください。

注記

Red Hat Ceph Storage 5.0z4 へのアップグレードを計画している場合は、ナレッジベースの記事 How to upgrade from Red Hat Ceph Storage 4.2z4 to 5.0z4 に従ってアップグレード手順を実行してください。

重要

Red Hat Ceph Storage では、オプション bluefs_buffered_io はデフォルトで True に設定されます。このオプションは、場合によって BlueFS でバッファー読み取りができるようにし、カーネルページキャッシュが RocksDB ブロック読み取りのような読み取りの二次キャッシュとして機能できるようにします。たとえば、 OMAP の反復時にすべてのブロックを保持ほど、RocksDB のブロックキャッシュが十分にない場合には、ディスクの代わりにページキャッシュから読み出すことが可能な場合があります。これにより、osd_memory_target が小さすぎてブロックキャッシュのすべてのエントリーを保持できない場合に、パフォーマンスが劇的に向上します。現在、bluefs_buffered_io を有効にし、システムレベルの swap を無効にすると、パフォーマンスの低下を防ぐことができます。

bluefs_buffered_io の現在の設定の表示の詳細については、Red Hat Ceph Storage Administration GuideViewing the bluefs_buffered_io setting セクションを参照してください。

Red Hat Ceph Storage 5 は、コンテナー化されたデーモンのみをサポートします。コンテナーされていないストレージクラスターはサポートされません。コンテナー化されていないストレージクラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合、アップグレードプロセスには、コンテナー化されたデプロイメントへの変換が含まれます。

2.1. 前提条件

  • Red Hat Ceph Storage 4 クラスターが、Red Hat Enterprise Linux 8.4 以降を実行している。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。
重要

Red Hat Ceph Storage クラスターノードおよび Red Hat Enterprise Linux オペレーティングシステム上の Ceph File System (CephFS) Metadata Server (MDS) ソフトウェアを、同時に新しいメジャーリリースに手動でアップグレードできます。基盤となる XFS ファイルシステムが ftype=1 でフォーマットされているか、d_type をサポートしている。xfs_info /var コマンドを実行し、ftype1 になっていることを確認します。ftype の値が 1 でない場合は、新しいディスクをアタッチするか、ボリュームを作成します。この新しいデバイスの上に、新しい XFS ファイルシステムを作成し、/var/lib/containers にマウントします。

Red Hat Enterprise Linux 8 以降、mkfs.xfs はデフォルトで ftype=1 を有効にします。

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

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

Ceph アップグレードプロセスの一環として Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードする予定がある場合は、podman のバージョンが Red Hat Ceph Storage 5 と互換性があることを確認してください。

Red Hat は、Red Hat Ceph Storage 5 に対応する Red Hat Enterprise Linux バージョンに同梱されている podman バージョンを使用することを推奨しています。詳細は、ナレッジベースの記事 Red Hat Ceph Storage: Supported configurations を参照してください。その他のサポートについては、Red Hat Ceph Storage Troubleshooting GuideContacting Red Hat support for service セクションを参照してください。

重要

Red Hat Ceph Storage 5.0 は、バージョン 2.2.1 を除き、podman バージョン 2.0.0 以降と互換性があります。バージョン 2.2.1 は、Red Hat Ceph Storage 5.0 と互換性がありません。

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

CephPodman    
 

1.9

2.0

2.1

2.2

3.0

5.0 (Pacific)

false

true

true

false

true

2.3. アップグレードの準備

ストレージ管理者は、Ceph Storage クラスターを Red Hat Ceph Storage 5 にアップグレードできます。ただし、ストレージクラスターの一部のコンポーネントは、アップグレードを行う前に特定のソフトウェアバージョンを実行している必要があります。以下は、Red Hat Ceph Storage 5 にアップグレードする前にストレージクラスターにインストールする必要のある最小のソフトウェアバージョンを示しています。

  • Red Hat Ceph Storage 4.3 以降
  • Ansible 2.9
  • Ceph-ansible には、最新バージョンの Red Hat Ceph Storage が同梱されている
  • Red Hat Enterprise Linux 8.4 EUS 以降
  • FileStore OSD が BlueStore に移行されている必要がある。OSD を FileStore から BlueStore に変換する方法については、BlueStore を参照してください。

Red Hat Ceph Storage 4.3 よりも前のバージョンから直接アップグレードする方法はありません。Red Hat Ceph Storage 3 からアップグレードする場合は、まず Red Hat Ceph Storage 4.3 以降にアップグレードしてから Red Hat Ceph Storage 5 にアップグレードする必要があります。

重要

Red Hat Ceph Storage 5 の最新バージョンにのみアップグレードできます。たとえば、バージョン 5.1 が利用可能な場合、4 から 5.0 にアップグレードすることはできません。5.1 に直接アップグレードする必要があります。

重要

Red Hat Enterprise Linux-8.7 (またはそれ以降) への Red Hat Ceph Storage-4.3.z1 の新規デプロイメント、または Red Hat Enterprise Linux-8.7 (またはそれ以降) のホスト OS を使用した Red Hat Ceph Storage-4.3.z1 から 5.X へのアップグレードは、TASK [ceph-mgr : wait for all mgr to be up] で失敗します。Red Hat Enterprise Linux 8.7 でリリースされた podman は、SELinux のラベル再設定に関する動作が変更されました。このため、起動順序によっては、一部の Ceph コンテナーが必要なファイルにアクセスできず、起動に失敗することがあります。

回避策については、ナレッジベースの RHCS 4.3 installation fails while executing the command `ceph mgr dump` を参照してください。

ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードするには、クラスターで Red Hat Ceph Storage 4.3 以降を実行することを推奨しています。ナレッジベースの記事 What are the Red Hat Ceph Storage Releases? を参照してください。この記事には、Ceph パッケージと ceph-ansible の最新バージョンへのダウンロードリンクが含まれています。

アップグレードプロセスでは、Ansible Playbook を使用して、Red Hat Ceph Storage 4 ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードします。Red Hat Ceph Storage 4 ストレージクラスターがコンテナー化されていないクラスターである場合、アップグレードプロセスには、クラスターをコンテナー化バージョンに変換するステップが含まれます。Red Hat Ceph Storage 5 は、コンテナー化されていないクラスターでは実行されません。

ミラーリングまたはマルチサイト設定がある場合は、一度に 1 つのクラスターをアップグレードします。別のクラスターをアップグレードする前に、アップグレードした各クラスターが適切に実行されていることを確認します。

重要

leapp は、暗号化された OSD または暗号化されたパーティションを持つ OSD のアップグレードをサポートしていません。OSD が暗号化され、ホスト OS をアップグレードする場合は、OS をアップグレードする前に ceph-ansibledmcrypt を無効にします。leapp の使用方法は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。

重要

この手順の最初 3 つのステップは、ストレージクラスターが最新バージョンの RRed Hat Ceph Storage 4 をまだ実行していない場合に のみ 実行してください。Red Hat Ceph Storage 4 の最新バージョンは 4.3 以降である必要があります。

前提条件

  • Red Hat Ceph Storage 4 クラスターが実行されている。
  • ストレージクラスター内すべてのノードへの sudo レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage ツールおよび Ansible リポジトリーが有効になっている。

手順

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

    例:

    [root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms

  2. Ansible を更新します。

    例:

    [root@admin ceph-ansible]# dnf update ansible ceph-ansible

  3. アップグレードするストレージクラスターに、exclusive-lock 機能を使用する Ceph Block Device イメージが含まれる場合は、すべての Ceph Block Device ユーザーにクライアントの拒否リストを作成するパーミッションがあるようにしてください。

    構文

    ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'

  4. ストレージクラスターが Cockpit を使用して最初にインストールされている場合は、/usr/share/ceph-ansible ディレクトリーに、Cockpit が作成したインベントリーファイルへのシンボリックリンクを /usr/share/ansible-runner-service/inventory/hosts に作成します。

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

      # cd /usr/share/ceph-ansible
    2. シンボリックリンクを作成します。

      # ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
  5. ceph-ansible を使用してクラスターをアップグレードするには、hosts インベントリーファイルのシンボリックリンクを etc/ansible/hosts ディレクトリーに作成します。

    # ln -s /etc/ansible/hosts hosts
  6. ストレージクラスターが元々 Cockpit を使用してインストールされた場合は、コックピットで生成された SSH キーを Ansible ユーザーの ~/.ssh ディレクトリーにコピーします。

    1. 鍵をコピーします。

      構文

      cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa

      ANSIBLE_USERNAME を Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は admin です。

      例:

      # cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub
      # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa

    2. キーファイルに適切な所有者、グループ、およびパーミッションを設定します。

      構文

      # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa
      # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub
      # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa

      ANSIBLE_USERNAME を、Ansible のユーザー名に置き換えます。通常のデフォルトのユーザー名は admin です。

      例:

      # chown admin:admin /home/admin/.ssh/id_rsa.pub
      # chown admin:admin /home/admin/.ssh/id_rsa
      # chmod 644 /home/admin/.ssh/id_rsa.pub
      # chmod 600 /home/admin/.ssh/id_rsa

関連情報

2.4. ホスト OS アップグレード前のファイルのバックアップ

注記

ホスト OS をアップグレードする場合のみ、本セクションの手順を実行します。ホスト OS をアップグレードしない場合は、本セクションを省略します。

Playbook を実行すると ceph.conf ファイルがオーバーライドされるため、アップグレード手順を実行する前に、ストレージクラスター用にカスタマイズしたファイルのバックアップコピーを作成する必要があります。これにはキーリングファイルや設定用の yml ファイルが含まれます。

前提条件

  • Red Hat Ceph Storage 4 クラスターが実行されている。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。
  • Red Hat Ceph Storage Tools および Ansible リポジトリーが有効になっている。

手順

  1. /etc/ceph フォルダーと /var/lib/ceph フォルダーのバックアップコピーを作成します。
  2. ceph.client.admin.keyring ファイルのバックアップコピーを作成します。
  3. 各ノードから ceph.conf ファイルのバックアップコピーを作成します。
  4. 各ノードの /etc/ganesha/ フォルダーのバックアップコピーを作成します。
  5. ストレージクラスターで RBD ミラーリングが定義されている場合には、/etc/ceph フォルダーおよび group_vars/rbdmirrors.yml ファイルのバックアップコピーを作成します。

2.5. コンテナー化されたデプロイメントへの変換

この手順は、コンテナー化されていないクラスターに必要です。ストレージクラスターがコンテナー化されていないクラスターである場合、この手順により、クラスターがコンテナー化されたバージョンに変換されます。

Red Hat Ceph Storage 5 はコンテナーベースのデプロイメントだけをサポートします。RHCS 5.x にアップグレードする前に、クラスターをコンテナー化する必要があります。

Red Hat Ceph Storage 4 ストレージクラスターがすでにコンテナー化されている場合は、本セクションを飛ばして次に進んでください。

重要

この手順により、デーモンが停止され、再起動されます。この手順の実行中に Playbook の実行が停止された場合は、再起動する前に必ずクラスターの状態を分析してください。

前提条件

  • コンテナー化されていない Red Hat Ceph Storage 4 クラスターが実行されている。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。
  • 有効なカスタマーサブスクリプション。
  • Ansible 管理ノードへの root レベルのアクセス。
  • Ansible アプリケーションで使用する Ansible ユーザーアカウント。

手順

  1. マルチサイト設定を実行している場合は、rgw_multisite: falseall.yml に設定します。
  2. group_vars/all.yml に、設定パラメーターに以下のデフォルト値があることを確認します。

    ceph_docker_image_tag: "latest"
    ceph_docker_registry: "registry.redhat.io"
    ceph_docker_image: rhceph/rhceph-4-rhel8
    containerized_deployment: true
    注記

    この値は、ローカルレジストリーとカスタムイメージ名を使用する場合によって異なります。

  3. 任意手順: ベアメタルストレージクラスターのコマンドラインインターフェイスを使用して設定された双方向 RBD ミラーリングの場合、クラスターは RBD ミラーリングを移行しません。このような設定では、コンテナー化されていないストレージクラスターをコンテナー化されたデプロイメントに移行する前に、以下の手順を実行します。

    1. Ceph クライアントノードでユーザーを作成します。

      構文

      ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring

      [root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring

    2. /etc/ceph ディレクトリーの auth ファイルでユーザー名を変更します。

      [client.rbd-mirror.rbd-client-site-a]
          key = AQCbKbVg+E7POBAA7COSZCodvOrg2LWIFc9+3g==
          caps mds = "allow *"
          caps mgr = "allow *"
          caps mon = "allow *"
          caps osd = "allow *"

    3. auth ファイルをインポートして、関連するパーミッションを追加します。

      構文

      ceph auth import -i PATH_TO_KEYRING

      [root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring

    4. RBD ミラーノードのサービス名を確認します。

      [root@rbd-client-site-a ~]# systemctl list-units --all
      
      systemctl stop ceph-rbd-mirror@rbd-client-site-a.service
      systemctl disable ceph-rbd-mirror@rbd-client-site-a.service
      systemctl reset-failed ceph-rbd-mirror@rbd-client-site-a.service
      systemctl start ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
      systemctl enable ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
      systemctl status ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service

    5. rbd-mirror ノードを /etc/ansible/hosts ファイルに追加します。

      例:

      [rbdmirrors]
      ceph.client.rbd-mirror.rbd-client-site-a

  4. コンテナー化されていないデーモンを使用している場合は、それらをコンテナー化された形式に変換します。

    構文

    ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml

    -vvvv オプションは、変換プロセスの詳細ログを収集します。

    例:

    [ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml

  5. Playbook が正常に完了したら、all.yml ファイルの rgw_multisite: true の値を編集し、containerized_deployment の値が true となるようにします。

    注記

    ceph-iscsilibtcmu、および tcmu-runner パッケージを管理ノードから必ず削除してください。

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

ストレージ管理者は、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

2.7. cephadm を使用したストレージクラスターの変換

ストレージクラスターを Red Hat Ceph Storage 5 にアップグレードしたら、cephadm-adopt Playbook を実行し、cephadm を実行するようにストレージクラスターデーモンを変換します。

cephadm-adopt Playbook は、Ceph サービスを採用し、すべての cephadm 依存関係をインストールして、cephadm Orchestrator バックエンドを有効にし、すべてのホストで ssh キーを生成および設定して、ホストを Orchestrator 設定に追加します。

注記

cephadm-adopt Playbook の実行後に、ceph-ansible パッケージを削除します。クラスターデーモンは ceph-ansible で機能しなくなります。cephadm を使用してクラスターデーモンを管理する必要があります。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ストレージクラスター内のすべてのノードへの root レベルのアクセス。

手順

  1. ceph-ansible ノードにログインし、/usr/share/ceph-ansible ディレクトリーに移動します。
  2. all.yml ファイルを編集します。

    構文

    ceph_origin: custom/rhcs
    ceph_custom_repositories:
      - name: NAME
        state: present
        description: DESCRIPTION
        gpgcheck: 'no'
        baseurl: BASE_URL
        file: FILE_NAME
        priority: '2'
        enabled: 1

    例:

    ceph_origin: custom
    ceph_custom_repositories:
      - name: ceph_custom
        state: present
        description: Ceph custom repo
        gpgcheck: 'no'
        baseurl: https://example.ceph.redhat.com
        file: cephbuild
        priority: '2'
        enabled: 1
      - name: ceph_custom_1
        state: present
        description: Ceph custom repo 1
        gpgcheck: 'no'
        baseurl: https://example.ceph.redhat.com
        file: cephbuild_1
        priority: '2'
        enabled: 1

  3. cephadm-adopt Playbook を実行します。

    構文

    ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILE

    例:

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

  4. 最小の compat client パラメーターを luminous に設定します。

    例:

    [ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous

  5. 以下のコマンドを実行して、アプリケーションが NFS-Ganesha プールで実行されるようにします。POOL_NAMEnfs-ganesha で、APPLICATION_NAMEcephfsrbdrgw などの有効にするアプリケーションの名前です。

    構文

    ceph osd pool application enable POOL_NAME APPLICATION_NAME

    例:

    [ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgw

    重要

    Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 へのストレージクラスターの移行後に、cephadm-adopt Playbook が rbd-mirroring を起動しません。

    この問題を回避するには、ピアを手動で追加します。

    構文

    rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAME

    例:

    [ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-b

  6. アップグレード後に Grafana を削除します。

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

      例:

      [root@host01 ~]# cephadm shell

    2. ストレージクラスター内の Grafana の名前を取得します。

      例:

      [ceph: root@host01 /]# ceph orch ps --daemon_type grafana

    3. Grafana を削除します。

      構文

      ceph orch daemon rm GRAFANA_DAEMON_NAME

      例:

      [ceph: root@host01 /]# ceph orch daemon rm grafana.host01
      
      Removed grafana.host01 from host 'host01'

    4. 数分待って、最新のログを確認します。

      例:

      [ceph: root@host01 /]# ceph log last cephadm

      cephadm は、Grafana サービスとデーモンを再デプロイします。

関連情報

2.8. アップグレードされたストレージクラスターへの cephadm-ansible のインストール

cephadm-ansible は、cephadm で対応していないワークフローを単純化する Ansible Playbook のコレクションです。インストール後に、Playbook は /usr/share/cephadm-ansible/ にあります。

注記

アップグレードしたストレージクラスターに新規ノードまたは新規クライアントを追加する前に、Playbook cephadm-preflight.yml を実行します。

前提条件

  • Ansible 管理ノードへの root レベルのアクセス。
  • 適切なエンタイトルメントを持つ有効な Red Hat サブスクリプション。
  • Red Hat Registry にアクセスするためのアクティブな Red Hat Network (RHN) またはサービスアカウント。

手順

  1. ansible および古い ceph-ansible パッケージをアンインストールします。

    構文

    dnf remove ansible ceph-ansible

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

    Red Hat Enterprise Linux 8

    [root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpms

  3. cephadm-ansible パッケージをインストールします。これにより、ansible-core が依存関係としてインストールされます。

    構文

    dnf install cephadm-ansible

関連情報

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

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

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

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

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

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

警告

Ceph Object Gateway ストレージクラスター (シングルサイトまたはマルチサイト) 上の Red Hat Ceph Storage 5.2 へのアップグレードはサポートされていますが、ストレージクラスターをアップグレードする前に、ceph config set mgr mgr/cephadm/no_five_one_rgw true --force オプションを設定する必要があります。

詳細は、ナレッジベースの記事 Support Restrictions for upgrades for RADOS Gateway (RGW) on Red Hat Red Hat Ceph Storage 5.2 および Red Hat Ceph Storage 5.2 リリースノートの Known issues セクションを参照してください。

注記

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

重要

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

注記

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

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

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

前提条件

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

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. cephadm および cephadm-ansible パッケージを更新します。

    例:

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

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

    例:

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

  3. バケットが作成されているか、num_shards = 0 である場合は、Red Hat Ceph Storage 5.3 へのアップグレードを計画する前に、バケットを手動でリシャーディングします。

    構文

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

    例:

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

  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 cephdm-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-5-rhel8: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-5-rhel8:latest

    注記

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

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

    例:

    [ceph: root@host01 /]# ceph status
    [...]
    progress:
        Upgrade to 16.2.0-146.el8cp (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

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

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

表3.1 スタックを監視するためのカスタムイメージの詳細
モニタリングスタックコンポーネントRed Hat Ceph Storage のバージョンイメージの詳細

Prometheus

Red Hat Ceph Storage 5.0 および 5.1

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

 

Red Hat Ceph Storage 5.2 以降

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

Grafana

Red Hat Ceph Storage 5 のすべてのバージョン

registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:latest

Node-exporter

Red Hat Ceph Storage 5.0

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

 

Red Hat Ceph Storage 5.0z1 および 5.1

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

 

Red Hat Ceph Storage 5.2 以降

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

AlertManager

Red Hat Ceph Storage 5.0

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

 

Red Hat Ceph Storage 5.0z1 および 5.1

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

 

Red Hat Ceph Storage 5.2 以降

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

HAProxy

Red Hat Ceph Storage 5.1 以降

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

keepalived

Red Hat Ceph Storage 5.1 以降

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

SNMP ゲートウェイ

Red Hat Ceph Storage 5.0 以降

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

手順

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

    例:

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

  2. ストレージクラスター内のブートストラップされたホストで、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 をアップグレードします。

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

    例:

    [root@host01 ~]# cephadm shell

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

    例:

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

  5. 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

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

    構文

    ceph orch upgrade check IMAGE_NAME

    例:

    [ceph: root@host01 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8

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

    構文

    ceph orch upgrade start IMAGE_NAME

    例:

    [ceph: root@host01 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8

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

    例:

    [ceph: root@host01 /]# ceph status
    [...]
    progress:
        Upgrade to 16.2.0-115.el8cp (1s)
          [............................]

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

    例:

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

  9. アップグレードが完了したら、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

関連情報

3.3. 段階的なアップグレード

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

注記

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

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

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

  • --daemon_types: --daemon_types オプションは、デーモンタイプのコンマ区切りのリストを取り、それらのタイプのデーモンのみをアップグレードします。このオプションの有効なデーモンタイプには、mgrmoncrashosdmdsrgwrbd-mirrorcephfs-mirroriscsi、および 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 デーモンをアップグレードします。

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

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

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

  • Ceph Manager ノード
  • Ceph Monitor ノード
  • Ceph-crash デーモン
  • Ceph OSD ノード
  • Ceph Metadata Server (MDS) ノード
  • Ceph Object Gateway (RGW) ノード
  • Ceph RBD-mirror ノード
  • CephFS ミラーノード
  • すべての Ceph iSCSI ゲートウェイノード
  • Ceph NFS ノード
注記

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

例:

[ceph: root@host01 /]# ceph orch upgrade start --image  registry.redhat.io/rhceph/rhceph-5-rhel8: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
NOTE: Enforced upgrade order is: mgr -> mon -> crash -> osd -> mds -> rgw -> rbd-mirror -> cephfs-mirror -> iscsi -> nfs

前提条件

  • クラスターで 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-5-rhel8:latest

  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-5-rhel8: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-5-rhel8: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-5-rhel8:latest

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

    構文

    ceph orch upgrade start --image IMAGE_NAME

    例:

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

  8. アップグレードが完了したら、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

検証

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

    例:

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

関連情報

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

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-5-rhel8: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 をアップグレードしたら、制限パラメーターを指定して、残りの段階的アップグレードを完了できます。

関連情報

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

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

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

以下の表に、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.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.