アップグレードガイド
Red Hat Ceph Storage Cluster のアップグレード
概要
第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-ansible
の dmcrypt
を無効にします。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 Guide の Viewing 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
コマンドを実行し、ftype
が 1
になっていることを確認します。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 Guide の Contacting 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
のバージョン間の互換性を示しています。
Ceph | Podman | ||||
---|---|---|---|---|---|
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-ansible
の dmcrypt
を無効にします。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 リポジトリーが有効になっている。
手順
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
Ansible を更新します。
例:
[root@admin ceph-ansible]# dnf update ansible ceph-ansible
アップグレードするストレージクラスターに、
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'
ストレージクラスターが Cockpit を使用して最初にインストールされている場合は、
/usr/share/ceph-ansible
ディレクトリーに、Cockpit が作成したインベントリーファイルへのシンボリックリンクを/usr/share/ansible-runner-service/inventory/hosts
に作成します。/usr/share/ceph-ansible
ディレクトリーに移動します。# cd /usr/share/ceph-ansible
シンボリックリンクを作成します。
# ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
ceph-ansible
を使用してクラスターをアップグレードするには、hosts
インベントリーファイルのシンボリックリンクをetc/ansible/hosts
ディレクトリーに作成します。# ln -s /etc/ansible/hosts hosts
ストレージクラスターが元々 Cockpit を使用してインストールされた場合は、コックピットで生成された SSH キーを Ansible ユーザーの
~/.ssh
ディレクトリーにコピーします。鍵をコピーします。
構文
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
キーファイルに適切な所有者、グループ、およびパーミッションを設定します。
構文
# 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
関連情報
- What are the Red Hat Ceph Storage Releases?
- FileStore から BlueStore への変換に関する詳細は、BlueStore を参照してください。
1.4. ホスト OS アップグレード前のファイルのバックアップ
ホスト OS をアップグレードする場合のみ、本セクションの手順を実行します。ホスト OS をアップグレードしない場合は、本セクションを省略します。
Playbook を実行すると ceph.conf
ファイルがオーバーライドされるため、アップグレード手順を実行する前に、ストレージクラスター用にカスタマイズしたファイルのバックアップコピーを作成する必要があります。これにはキーリングファイルや設定用の yml
ファイルが含まれます。
前提条件
- Red Hat Ceph Storage 4 クラスターが実行されている。
- 有効なカスタマーサブスクリプション。
- Ansible 管理ノードへの root レベルのアクセス。
- Ansible アプリケーションで使用する Ansible ユーザーアカウント。
- Red Hat Ceph Storage Tools および Ansible リポジトリーが有効になっている。
手順
-
/etc/ceph
フォルダーと/var/lib/ceph
フォルダーのバックアップコピーを作成します。 -
ceph.client.admin.keyring
ファイルのバックアップコピーを作成します。 -
各ノードから
ceph.conf
ファイルのバックアップコピーを作成します。 -
各ノードの
/etc/ganesha/
フォルダーのバックアップコピーを作成します。 -
ストレージクラスターで 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 ユーザーアカウント。
手順
-
マルチサイト設定を実行している場合は、
rgw_multisite: false
をall.yml
に設定します。 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
注記この値は、ローカルレジストリーとカスタムイメージ名を使用する場合によって異なります。
任意手順: ベアメタルストレージクラスターのコマンドラインインターフェイスを使用して設定された双方向 RBD ミラーリングの場合、クラスターは RBD ミラーリングを移行しません。このような設定では、コンテナー化されていないストレージクラスターをコンテナー化されたデプロイメントに移行する前に、以下の手順を実行します。
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
/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 *"
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
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
rbd-mirror ノードを
/etc/ansible/hosts
ファイルに追加します。例:
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
コンテナー化されていないデーモンを使用している場合は、それらをコンテナー化された形式に変換します。
構文
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
Playbook が正常に完了したら、
all.yml
ファイルのrgw_multisite: true
の値を編集し、containerized_deployment
の値がtrue
となるようにします。注記ceph-iscsi
、libtcmu
、および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 リポジトリーが有効になっている。
手順
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 にアップグレードしてください。
手順
monitor サービスを停止します。
構文
systemctl stop ceph-mon@MONITOR_ID
MONITOR_ID を、Monitor ノードの ID 番号に置き換えます。
Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 リポジトリーを無効にします。
tools リポジトリーを無効にします。
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
mon リポジトリーを無効にします。
# subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpms
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
leapp
ユーティリティーをインストールします。- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
-
leapp
のアップグレード前のチェックを行います。Assessing upgradability from the command line を参照してください。 Red Hat Enterprise Linux 8.6 にアップグレードした後に、Ceph-Ansible パッケージをインストールし、Ansible Playbook を実行します。
Ceph-Ansible をインストールすると、すべての Ceph パッケージがインストールされます。
[root@admin ~]# dnf install ceph-ansible
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
Red Hat Enterprise Linux 9.x にアップグレードした後、
podman-auth.json
ファイルを他のノードから/etc/ceph/`
のアップグレードされたノードにコピーし、各サービスを再起動します。# systemctl restart _SERVICE NAME_
-
/etc/ssh/sshd_config
にPermitRootLogin yes
を設定します。 OpenSSH SSH デーモンを再起動します。
# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
# modprobe -r iscsi
- ノードを再起動します。
Red Hat Ceph Storage 5 向けのリポジトリーを有効にします。
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
-
アップグレードされていない、またはそれらのファイルをすでに復元しているノードから、
ceph-client-admin.keyring
ファイルおよびceph.conf
ファイルを復元します。 Ceph Monitor サービスを再起動します。
例:
[root@host01 ~]# systemctl restart ceph-mon@host01.service [root@host01 ~]# systemctl status ceph-mon@host01.service
モニターおよびマネージャーサービスがバックアップされ、モニターがクォーラムであることを確認します。
構文
ceph -s
services: の mon: 行で、ノードが クォーラム外 ではなく クォーラム にリストされていることを確認します。
例:
# ceph -s mon: 3 daemons, quorum node0,node1,node2 (age 2h) mgr: node0(active, since 2h), standbys: node1, node2
- すべてのアップグレードが完了するまで、すべての監視ノードで上記の手順を繰り返します。
関連情報
- 詳細は、ホストオペレーティングシステムの更新 を参照してください。
- 詳細は、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 を参照してください。
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 に移行されている必要がある。
手順
-
BlueStore に移行されていない FileStore OSD がある場合は、
filestore-to-bluestore
Playbook を実行します。OSD を FileStore から BlueStore に変換する方法については、BlueStore を参照してください。 OSD の
noout
フラグを設定して、移行中に OSD がダウンとマークされないようにします。構文
ceph osd set noout
クラスター上で不要な負荷を回避するには、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
ノード上のすべての OSD プロセスを正常にシャットダウンします。
構文
systemctl stop ceph-osd.target
Red Hat Ceph Storage 4 を使用している場合は、Red Hat Ceph Storage 4 リポジトリーを無効にします。
tools リポジトリーを無効にします。
構文
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
osd リポジトリーを無効にします。
構文
subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms
-
leapp
ユーティリティーをインストールします。Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。 -
leapp
のアップグレード前のチェックを行います。Assessing upgradability from the command line を参照してください。 -
/etc/ssh/sshd_config
にPermitRootLogin yes
を設定します。 OpenSSH SSH デーモンを再起動します。
構文
systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
構文
modprobe -r iscsi
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 に従って、アップグレードを実行します。
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
-
ceph.conf
ファイルを復元します。 noout
、nobackfill
、norecover
、norebalance
、noscrub
、および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
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)
- この手順は、すべての OSD ノードですべてアップグレードされるまで繰り返します。
関連情報
- OSD を FileStore から BlueStore に変換するための詳細は、BlueStore を参照してください。
-
leapp
ユーティリティーの詳細は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。 - docker の podman への変換に関する詳細は、ホストオペレーティングシステムの更新 を参照してください。
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 のインストールソースにアクセスできる。
手順
Ceph Object Gateway サービスを停止します。
構文
# systemctl stop ceph-radosgw.target
Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
leapp
ユーティリティーをインストールします。- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
leapp
のアップグレード前のチェックを行います。- Red Hat Enterprise Linux 8 の場合は、Assessing upgradability from the command line を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Assessing upgradability from the command line を参照してください。
-
/etc/ssh/sshd_config
にPermitRootLogin yes
を設定します。 バケットが作成されているか、
num_shards = 0
である場合は、Red Hat Ceph Storage 5.3 へのアップグレードを計画する前に、バケットを手動でリシャーディングします。警告bucket_index_max_shards
が0
の場合に以前のリリースから Red Hat Ceph Storage 5.3 にアップグレードすると、Ceph Object Gateway バケットのメタデータが失われ、バケットにアクセスしようとしたときにバケットが使用できなくなる可能性があります。そのため、bucket_index_max_shards
が11
シャードに設定されていることを確認してください。そうでない場合は、ゾーングループレベルでこの設定を変更します。構文
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME
例:
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
OpenSSH SSH デーモンを再起動します。
# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
# modprobe -r iscsi
- Performing the upgrade from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 に従ってアップグレードを実行します。
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
-
ceph-client-admin.keyring
およびceph.conf
ファイルを復元します。 デーモンが有効であることを確認します。
構文
ceph -s
services: の rgw: 行を表示して、RGW デーモンがアクティブであることを確認します。
例:
rgw: 1 daemon active (node4.rgw0)
- すべてがアップグレードされるまで、すべての Ceph ObjectGateway ノードで上記の手順を繰り返します。
関連情報
-
leapp
ユーティリティーの詳細は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。 -
leapp
ユーティリティーの詳細は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
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 レベルのアクセス。
手順
アクティブな MDS ランクを 1 にします。
構文
ceph fs set FILE_SYSTEM_NAME max_mds 1
例:
[root@mds ~]# ceph fs set fs1 max_mds 1
クラスターがすべての MDS ランクを停止するのを待ちます。すべての MDS が停止したら、ランク 0 だけがアクティブになるはずです。残りはスタンバイモードにしておきます。ファイルシステムの状態を確認します。
[root@mds ~]# ceph status
systemctl
を使用して、スタンバイしているすべての MDS をオフラインにします。[root@mds ~]# systemctl stop ceph-mds.target
MDS が 1 つだけオンラインになっており、ファイルシステムのランクが 0 であることを確認します。
[ceph: root@host01 /]# ceph status
Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
leapp
ユーティリティーをインストールします。- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
leapp
のアップグレード前のチェックを行います。- Red Hat Enterprise Linux 8 の場合は、Assessing upgradability from the command line を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Assessing upgradability from the command line を参照してください。
-
etc/ssh/sshd_config
を編集し、PermitRootLogin
をyes
に設定します。 OpenSSH SSH デーモンを再起動します。
[root@mds ~]# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
[root@mds ~]# modprobe -r iscsi
アップグレードを実行します。
- Red Hat Enterprise Linux 8 の場合は、Performing the upgrade from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Performing the upgrade from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
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
-
ceph-client-admin.keyring
およびceph.conf
ファイルを復元します。 デーモンが有効であることを確認します。
[root@mds ~]# ceph -s
- スタンバイ中のデーモンについても同じプロセスを実行します。
スタンバイ中のすべての MDS の再起動が完了したら、クラスターの
max_mds
の値を以前の値に戻します。構文
ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE
例
[root@mds ~]# ceph fs set fs1 max_mds 5
関連情報
-
leapp
ユーティリティーの詳細は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
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 のインストールソースにアクセスできる。
手順
Red Hat Ceph Storage 4 ツールリポジトリーを無効にします。
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
leapp
ユーティリティーをインストールします。- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
leapp
のアップグレード前のチェックを行います。- Red Hat Enterprise Linux 8 の場合は、Assessing upgradability from the command line を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Assessing upgradability from the command line を参照してください。
-
/etc/ssh/sshd_config
にPermitRootLogin yes
を設定します。 OpenSSH SSH デーモンを再起動します。
# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
# modprobe -r iscsi
アップグレードを実行します。
- Red Hat Enterprise Linux 8 の場合は、Performing the upgrade from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Performing the upgrade from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
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 のインストールソースにアクセスできる。
手順
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
leapp
ユーティリティーをインストールします。- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
leapp
のアップグレード前のチェックを行います。- Red Hat Enterprise Linux 8 の場合は、Assessing upgradability from the command line を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Assessing upgradability from the command line を参照してください。
-
etc/ssh/sshd_config
を編集し、PermitRootLogin
をyes
に設定します。 OpenSSH SSH デーモンを再起動します。
[root@mds ~]# systemctl restart sshd.service
Linux カーネルから iSCSI モジュールを削除します。
[root@mds ~]# modprobe -r iscsi
アップグレードを実行します。
- Red Hat Enterprise Linux 8 の場合は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
- Red Hat Enterprise Linux 9 の場合は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。
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
-
ceph-client-admin.keyring
およびceph.conf
ファイルを復元します。
関連情報
- 詳細は、ホストオペレーティングシステムの更新 を参照してください。
- 詳細は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。
1.7. バックアップファイルの復元
ストレージクラスターの各ノードでホスト OS アップグレードを完了した後、アップグレードしたノードが保存された設定を使用するように、前の手順でバックアップしたすべてのファイルを復元します。
そのホストの OS アップグレードプロセスが完了した後に、ストレージクラスターの各ホストでこのプロセスを繰り返します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
- ホスト OS がホストをアップグレードする前にバックアップしたファイルを復元します。
-
ceph.client.admin.keyring
やceph.conf
ファイルなどを含む、/etc/ceph
フォルダーおよびその内容をすべてのホストに復元します。 -
各ノードに
/etc/ganesha/
フォルダーを復元します。 オペレーティングシステムのアップグレード後に、バックアップされた各ファイルの所有権が変更していないことを確認します。ファイルの所有者は
ceph
である必要があります。ファイル所有者がroot
に変更された場合は、各ファイルで以下のコマンドを使用し、所有者をceph
に戻します。例:
[root@admin]# chown ceph: ceph.client.rbd-mirror.node1.keyring
-
Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードし、ストレージクラスターに RBD ミラーリングが定義されている場合は、バックアップコピーから
/etc/ceph
フォルダーを復元します。 -
前のステップでバックアップした
group_vars/rbdmirrors.yml
ファイルを復元します。 すべてのノード上のフォルダーの所有権を変更します。
例:
[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
ディレクトリーに存在する必要がある。
手順
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
Ansible 管理ノードで、
ansible
およびceph-ansible
パッケージの最新バージョンがインストールされていることを確認します。構文
dnf update ansible ceph-ansible
/usr/share/ceph-ansible
ディレクトリーに移動します。例:
[root@admin ~]# cd /usr/share/ceph-ansible
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
-
Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合は、
group_vars/all.yml
ファイルを編集し、Red Hat Ceph Storage 5 の詳細を追加します。 上記の 2 つの手順を実行したら、以前の
yaml
ファイルから新しいyaml
ファイルに設定をコピーします。これらの設定パラメーターの値は Red Hat Ceph Storage 5 用であるため、ceph_rhcs_version
、ceph_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 コンテナーイメージがデフォルト値に設定されていることを確認します。
group_vars/osds.yml
ファイルを編集します。以下のオプションを追加して設定します。構文
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30
group_vars/all.yml
ファイルを開き、古いall.yml
ファイルから以下の値が存在することを確認します。fetch_directory
オプションは、古いall.yml
ファイルと同じ値で設定されます。構文
fetch_directory: FULL_DIRECTORY_PATH
FULL_DIRECTORY_PATH を、Ansible ユーザーのホームディレクトリーなどの書き込み可能な場所に置き換えます。
アップグレードするクラスターに Ceph Object Gateway ノードが含まれている場合には、
radosgw_interface
オプションを追加します。radosgw_interface: INTERFACE
INTERFACE を、Ceph Object Gateway ノードがリッスンするインターフェイスに置き換えます。
現在の設定に SSL 証明書が設定されている場合は、以下を編集します。
構文
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443
upgrade_ceph_packages
オプションをコメント解除して、True
に設定します。構文
upgrade_ceph_packages: True
ストレージクラスターでノードごとに複数の Ceph Object Gateway インスタンスがある場合、
radosgw_num_instances
設定をコメント解除して、クラスターのノードごとのインスタンス数に設定します。構文
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE
例:
radosgw_num_instances : 2
-
ストレージクラスターに Ceph Object Gateway マルチサイトが定義されている場合は、
all.yml
のマルチサイト設定を確認し、古いall.yml
ファイルと同じ値が含まれていることを確認します。
バケットが作成されているか、
num_shards = 0
である場合は、Red Hat Ceph Storage 5.3 へのアップグレードを計画する前に、バケットを手動でリシャーディングします。警告bucket_index_max_shards
が0
の場合に以前のリリースから Red Hat Ceph Storage 5.3 にアップグレードすると、Ceph Object Gateway バケットのメタデータが失われ、バケットにアクセスしようとしたときにバケットが使用できなくなる可能性があります。そのため、bucket_index_max_shards
が11
シャードに設定されていることを確認してください。そうでない場合は、ゾーングループレベルでこの設定を変更します。構文
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME
例:
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
-
Ansible 管理ノードで
ansible-user
としてログインします。 --extra-vars
オプションを使用してinfrastructure-playbooks/rolling_update.yml
Playbook を更新し、health_osd_check_retries
とhealth_osd_check_delay
の値をそれぞれ50
と30
に変更します。例:
[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 インベントリーファイルのデフォルトの場所です。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 オプションを使用することはサポートされていません。- Ansible Playbook のログ出力をチェックして、アップグレードのステータスを確認します。
検証
実行中のすべてのコンテナーをリスト表示します。
例:
[root@mon ~]# podman ps
クラスターの健全性状態を確認します。MONITOR_ID は、前のステップで見つかった Ceph Monitor コンテナーの名前に置き換えます。
構文
podman exec ceph-mon-MONITOR_ID ceph -s
例:
[root@mon ~]# podman exec ceph-mon-mon01 ceph -s
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 レベルのアクセス。
手順
-
ceph-ansible
ノードにログインし、/usr/share/ceph-ansible
ディレクトリーに移動します。 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
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
最小の compat client パラメーターを
luminous
に設定します。例:
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous
以下のコマンドを実行して、アプリケーションが NFS-Ganesha プールで実行されるようにします。POOL_NAME は
nfs-ganesha
で、APPLICATION_NAME はcephfs
、rbd
、rgw
などの有効にするアプリケーションの名前です。構文
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
アップグレード後に Grafana を削除します。
Cephadm シェルにログインします。
例:
[root@host01 ~]# cephadm shell
ストレージクラスター内の Grafana の名前を取得します。
例:
[ceph: root@host01 /]# ceph orch ps --daemon_type grafana
Grafana を削除します。
構文
ceph orch daemon rm GRAFANA_DAEMON_NAME
例:
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'
数分待って、最新のログを確認します。
例:
[ceph: root@host01 /]# ceph log last cephadm
cephadm
は、Grafana サービスとデーモンを再デプロイします。
関連情報
-
leapp
を使用して Red Hat Enterprise Linux 7 を Red Hat Enterprise Linux 8 にアップグレードする方法は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。 -
leapp
を使用して Red Hat Enterprise Linux 8 を Red Hat Enterprise Linux 9 にアップグレードする方法の詳細は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。 - FileStore から BlueStore への変換に関する詳細は、BlueStore を参照してください。
- ストレージピアの詳細は、Viewing information about peers を参照してください。
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) またはサービスアカウント。
手順
ansible
および古いceph-ansible
パッケージをアンインストールします。構文
dnf remove ansible ceph-ansible
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
cephadm-ansible
パッケージをインストールします。これにより、ansible-core
が依存関係としてインストールされます。構文
dnf install cephadm-ansible
関連情報
- プリフライト Playbook の実行
- ホストの追加
- Monitor サービスの追加
- Manager サービスの追加
- OSD の追加
- クライアントおよびサービスの設定に関する詳細は、Red Hat Ceph Storage Operations Guide を参照してください。
-
cephadm-ansible
Playbook の詳細は、cephadm-ansible Playbooks を参照してください。
第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 Guide の Viewing 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
コマンドを実行し、ftype
が 1
になっていることを確認します。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 Guide の Contacting 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
のバージョン間の互換性を示しています。
Ceph | Podman | ||||
---|---|---|---|---|---|
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-ansible
の dmcrypt
を無効にします。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 リポジトリーが有効になっている。
手順
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
Ansible を更新します。
例:
[root@admin ceph-ansible]# dnf update ansible ceph-ansible
アップグレードするストレージクラスターに、
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'
ストレージクラスターが Cockpit を使用して最初にインストールされている場合は、
/usr/share/ceph-ansible
ディレクトリーに、Cockpit が作成したインベントリーファイルへのシンボリックリンクを/usr/share/ansible-runner-service/inventory/hosts
に作成します。/usr/share/ceph-ansible
ディレクトリーに移動します。# cd /usr/share/ceph-ansible
シンボリックリンクを作成します。
# ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
ceph-ansible
を使用してクラスターをアップグレードするには、hosts
インベントリーファイルのシンボリックリンクをetc/ansible/hosts
ディレクトリーに作成します。# ln -s /etc/ansible/hosts hosts
ストレージクラスターが元々 Cockpit を使用してインストールされた場合は、コックピットで生成された SSH キーを Ansible ユーザーの
~/.ssh
ディレクトリーにコピーします。鍵をコピーします。
構文
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
キーファイルに適切な所有者、グループ、およびパーミッションを設定します。
構文
# 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
関連情報
- What are the Red Hat Ceph Storage Releases?
- FileStore から BlueStore への変換に関する詳細は、BlueStore を参照してください。
2.4. ホスト OS アップグレード前のファイルのバックアップ
ホスト OS をアップグレードする場合のみ、本セクションの手順を実行します。ホスト OS をアップグレードしない場合は、本セクションを省略します。
Playbook を実行すると ceph.conf
ファイルがオーバーライドされるため、アップグレード手順を実行する前に、ストレージクラスター用にカスタマイズしたファイルのバックアップコピーを作成する必要があります。これにはキーリングファイルや設定用の yml
ファイルが含まれます。
前提条件
- Red Hat Ceph Storage 4 クラスターが実行されている。
- 有効なカスタマーサブスクリプション。
- Ansible 管理ノードへの root レベルのアクセス。
- Ansible アプリケーションで使用する Ansible ユーザーアカウント。
- Red Hat Ceph Storage Tools および Ansible リポジトリーが有効になっている。
手順
-
/etc/ceph
フォルダーと/var/lib/ceph
フォルダーのバックアップコピーを作成します。 -
ceph.client.admin.keyring
ファイルのバックアップコピーを作成します。 -
各ノードから
ceph.conf
ファイルのバックアップコピーを作成します。 -
各ノードの
/etc/ganesha/
フォルダーのバックアップコピーを作成します。 -
ストレージクラスターで 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 ユーザーアカウント。
手順
-
マルチサイト設定を実行している場合は、
rgw_multisite: false
をall.yml
に設定します。 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
注記この値は、ローカルレジストリーとカスタムイメージ名を使用する場合によって異なります。
任意手順: ベアメタルストレージクラスターのコマンドラインインターフェイスを使用して設定された双方向 RBD ミラーリングの場合、クラスターは RBD ミラーリングを移行しません。このような設定では、コンテナー化されていないストレージクラスターをコンテナー化されたデプロイメントに移行する前に、以下の手順を実行します。
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
/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 *"
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
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
rbd-mirror ノードを
/etc/ansible/hosts
ファイルに追加します。例:
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
コンテナー化されていないデーモンを使用している場合は、それらをコンテナー化された形式に変換します。
構文
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
Playbook が正常に完了したら、
all.yml
ファイルのrgw_multisite: true
の値を編集し、containerized_deployment
の値がtrue
となるようにします。注記ceph-iscsi
、libtcmu
、および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
ディレクトリーに存在する必要がある。
手順
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
Ansible 管理ノードで、
ansible
およびceph-ansible
パッケージの最新バージョンがインストールされていることを確認します。構文
dnf update ansible ceph-ansible
/usr/share/ceph-ansible
ディレクトリーに移動します。例:
[root@admin ~]# cd /usr/share/ceph-ansible
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
-
Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードする場合は、
group_vars/all.yml
ファイルを編集し、Red Hat Ceph Storage 5 の詳細を追加します。 上記の 2 つの手順を実行したら、以前の
yaml
ファイルから新しいyaml
ファイルに設定をコピーします。これらの設定パラメーターの値は Red Hat Ceph Storage 5 用であるため、ceph_rhcs_version
、ceph_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 コンテナーイメージがデフォルト値に設定されていることを確認します。
group_vars/osds.yml
ファイルを編集します。以下のオプションを追加して設定します。構文
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30
group_vars/all.yml
ファイルを開き、古いall.yml
ファイルから以下の値が存在することを確認します。fetch_directory
オプションは、古いall.yml
ファイルと同じ値で設定されます。構文
fetch_directory: FULL_DIRECTORY_PATH
FULL_DIRECTORY_PATH を、Ansible ユーザーのホームディレクトリーなどの書き込み可能な場所に置き換えます。
アップグレードするクラスターに Ceph Object Gateway ノードが含まれている場合には、
radosgw_interface
オプションを追加します。radosgw_interface: INTERFACE
INTERFACE を、Ceph Object Gateway ノードがリッスンするインターフェイスに置き換えます。
現在の設定に SSL 証明書が設定されている場合は、以下を編集します。
構文
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443
upgrade_ceph_packages
オプションをコメント解除して、True
に設定します。構文
upgrade_ceph_packages: True
ストレージクラスターでノードごとに複数の Ceph Object Gateway インスタンスがある場合、
radosgw_num_instances
設定をコメント解除して、クラスターのノードごとのインスタンス数に設定します。構文
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE
例:
radosgw_num_instances : 2
-
ストレージクラスターに Ceph Object Gateway マルチサイトが定義されている場合は、
all.yml
のマルチサイト設定を確認し、古いall.yml
ファイルと同じ値が含まれていることを確認します。
バケットが作成されているか、
num_shards = 0
である場合は、Red Hat Ceph Storage 5.3 へのアップグレードを計画する前に、バケットを手動でリシャーディングします。警告bucket_index_max_shards
が0
の場合に以前のリリースから Red Hat Ceph Storage 5.3 にアップグレードすると、Ceph Object Gateway バケットのメタデータが失われ、バケットにアクセスしようとしたときにバケットが使用できなくなる可能性があります。そのため、bucket_index_max_shards
が11
シャードに設定されていることを確認してください。そうでない場合は、ゾーングループレベルでこの設定を変更します。構文
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME
例:
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
-
Ansible 管理ノードで
ansible-user
としてログインします。 --extra-vars
オプションを使用してinfrastructure-playbooks/rolling_update.yml
Playbook を更新し、health_osd_check_retries
とhealth_osd_check_delay
の値をそれぞれ50
と30
に変更します。例:
[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 インベントリーファイルのデフォルトの場所です。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 オプションを使用することはサポートされていません。- Ansible Playbook のログ出力をチェックして、アップグレードのステータスを確認します。
検証
実行中のすべてのコンテナーをリスト表示します。
例:
[root@mon ~]# podman ps
クラスターの健全性状態を確認します。MONITOR_ID は、前のステップで見つかった Ceph Monitor コンテナーの名前に置き換えます。
構文
podman exec ceph-mon-MONITOR_ID ceph -s
例:
[root@mon ~]# podman exec ceph-mon-mon01 ceph -s
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 レベルのアクセス。
手順
-
ceph-ansible
ノードにログインし、/usr/share/ceph-ansible
ディレクトリーに移動します。 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
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
最小の compat client パラメーターを
luminous
に設定します。例:
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous
以下のコマンドを実行して、アプリケーションが NFS-Ganesha プールで実行されるようにします。POOL_NAME は
nfs-ganesha
で、APPLICATION_NAME はcephfs
、rbd
、rgw
などの有効にするアプリケーションの名前です。構文
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
アップグレード後に Grafana を削除します。
Cephadm シェルにログインします。
例:
[root@host01 ~]# cephadm shell
ストレージクラスター内の Grafana の名前を取得します。
例:
[ceph: root@host01 /]# ceph orch ps --daemon_type grafana
Grafana を削除します。
構文
ceph orch daemon rm GRAFANA_DAEMON_NAME
例:
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'
数分待って、最新のログを確認します。
例:
[ceph: root@host01 /]# ceph log last cephadm
cephadm
は、Grafana サービスとデーモンを再デプロイします。
関連情報
-
leapp
を使用して Red Hat Enterprise Linux 7 を Red Hat Enterprise Linux 8 にアップグレードする方法は、Upgrading from Red Hat Enterprise Linux 7 to Red Hat Enterprise Linux 8 を参照してください。 -
leapp
を使用して Red Hat Enterprise Linux 8 を Red Hat Enterprise Linux 9 にアップグレードする方法の詳細は、Upgrading from Red Hat Enterprise Linux 8 to Red Hat Enterprise Linux 9 を参照してください。 - FileStore から BlueStore への変換に関する詳細は、BlueStore を参照してください。
- ストレージピアの詳細は、Viewing information about peers を参照してください。
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) またはサービスアカウント。
手順
ansible
および古いceph-ansible
パッケージをアンインストールします。構文
dnf remove ansible ceph-ansible
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
cephadm-ansible
パッケージをインストールします。これにより、ansible-core
が依存関係としてインストールされます。構文
dnf install cephadm-ansible
関連情報
- プリフライト Playbook の実行
- ホストの追加
- Monitor サービスの追加
- Manager サービスの追加
- OSD の追加
- クライアントおよびサービスの設定に関する詳細は、Red Hat Ceph Storage Operations Guide を参照してください。
-
cephadm-ansible
Playbook の詳細は、cephadm-ansible Playbooks を参照してください。
第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
手順
cephadm
およびcephadm-ansible
パッケージを更新します。例:
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible
/usr/share/cephadm-ansible
ディレクトリーに移動します。例:
[root@admin ~]# cd /usr/share/cephadm-ansible
バケットが作成されているか、
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
ストレージクラスターのブートストラップされたホストで
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
をアップグレードします。cephadm
シェルにログインします。例:
[root@host01 ~]# cephadm shell
すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。
例:
[ceph: root@host01 /]# ceph -s
OSD の
noout
、noscrub
、および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
サービスのバージョンと利用可能なターゲットコンテナーを確認します。
構文
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 の両方に適用されます。
ストレージクラスターをアップグレードします。
構文
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) [............................]
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
アップグレードが完了したら、
noout
、noscrub
、および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 イメージに基づいてデプロイされます。ストレージクラスターの切断された環境では、最新の利用可能な監視スタックコンポーネントイメージを使用する必要があります。
モニタリングスタックコンポーネント | 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 |
手順
cephadm
およびcephadm-ansible
パッケージを更新します。例:
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible
ストレージクラスター内のブートストラップされたホストで、
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
をアップグレードします。cephadm
シェルにログインします。例:
[root@host01 ~]# cephadm shell
すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。
例:
[ceph: root@host01 /]# ceph -s
OSD の
noout
、noscrub
、および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
サービスのバージョンと利用可能なターゲットコンテナーを確認します。
構文
ceph orch upgrade check IMAGE_NAME
例:
[ceph: root@host01 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8
ストレージクラスターをアップグレードします。
構文
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) [............................]
Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。
例:
[ceph: root@host01 /]# ceph version [ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps
アップグレードが完了したら、
noout
、noscrub
、およびnodeep-scrub
フラグの設定を解除します。例:
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
関連情報
- Red Hat Ceph Storage Installation Guideの Registering Red Hat Ceph Storage nodes to the CDN and attaching subscriptions セクションを参照してください。
- Red Hat Ceph Storage インストールガイドの 非接続インストールのプライベートレジストリーの設定 セクションを参照してください。
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
オプションは、デーモンタイプのコンマ区切りのリストを取り、それらのタイプのデーモンのみをアップグレードします。このオプションの有効なデーモンタイプには、mgr
、mon
、crash
、osd
、mds
、rgw
、rbd-mirror
、cephfs-mirror
、iscsi
、および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 つ)。
手順
cephadm
シェルにログインします。例:
[root@host01 ~]# cephadm shell
すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。
例:
[ceph: root@host01 /]# ceph -s
OSD の
noout
、noscrub
、および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
サービスのバージョンと利用可能なターゲットコンテナーを確認します。
構文
ceph orch upgrade check IMAGE_NAME
例:
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-5-rhel8:latest
ストレージクラスターをアップグレードします。
特定のホストで特定のデーモンタイプをアップグレードするには、次の手順を実行します。
構文
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
特定のサービスを指定し、アップグレードするデーモンの数を制限するには、以下を実行します。
構文
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
コマンドが戻るまでに時間がかかる場合があります。
引き続きアップグレードが必要なデーモンを確認するには、
ceph orch upgrade check
またはceph versions
コマンドを実行します。例:
[ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest
段階的なアップグレードを完了するには、残りのすべてのサービスのアップグレードを確認します。
構文
ceph orch upgrade start --image IMAGE_NAME
例:
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest
アップグレードが完了したら、
noout
、noscrub
、および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
関連情報
-
cephadm
を使用した Red Hat Ceph Storage クラスターのアップグレードに関する詳細は、Upgrade a Red Hat Ceph Storage cluster using cephadm を参照してください。
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 つ)。
手順
Cephadm シェルにログインします。
例:
[root@host01 ~]# cephadm shell
どの 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
各スタンバイ 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
アップグレードされたスタンバイ Ceph Manager にフェイルオーバーします。
例:
[ceph: root@host01 /]# ceph mgr fail
スタンバイ 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
アクティブな 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" }
- ステップ 2 から 6 を繰り返して、残りの Ceph Manager を新しいバージョンにアップグレードします。
すべての Ceph Manager が新しいバージョンにアップグレードされていることを確認します。
例:
[ceph: root@host01 /]# ceph mgr versions { "ceph version 16.2.8-12.el8cp (600e227816517e2da53d85f2fab3cd40a7483372) pacific (stable)": 2 }
- すべての 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 つ)。
- 開始されるストレージクラスターのアップグレード。
手順
アップグレードが進行中であるかどうか、およびクラスターのアップグレードするバージョンを確認します。
例:
[ceph: root@node0 /]# ceph orch upgrade status
注記アップグレードに成功したら、メッセージを取得しません。
ceph versions
コマンドおよびceph orch ps
コマンドを実行して、新しいイメージ ID およびストレージクラスターのバージョンを確認します。任意: アップグレードプロセスを一時停止します。
例:
[ceph: root@node0 /]# ceph orch upgrade pause
任意: 一時停止したアップグレードプロセスを再開します。
例:
[ceph: root@node0 /]# ceph orch upgrade resume
任意: アップグレードプロセスを停止します。
例:
[ceph: root@node0 /]# ceph orch upgrade stop
3.5. アップグレードのエラーメッセージのトラブルシューティング
以下の表に、cephadm
アップグレードエラーメッセージの一部を示します。何らかの理由で cephadm
のアップグレードが失敗すると、エラーメッセージがストレージクラスターのヘルスステータスに表示されます。
エラーメッセージ | 説明 |
---|---|
UPGRADE_NO_STANDBY_MGR | 続行するには、Ceph にアクティブマネージャーデーモンとスタンバイマネージャーデーモンの両方が必要ですが、現在スタンバイはありません。 |
UPGRADE_FAILED_PULL | Ceph は、ターゲットバージョンのコンテナーイメージをプルできませんでした。これは、存在しないバージョンまたはコンテナーイメージ (例: 1.2.3) を指定する場合や、コンテナーレジストリーがクラスター内の 1 つ以上のホストから到達できない場合に発生する可能性があります。 |