アップグレードガイド
Red Hat Ceph Storage Cluster のアップグレード
概要
第1章 cephadm
を使用した Red Hat Ceph Storage クラスターのアップグレード
ストレージ管理者は、cephadm
Orchestrator を使用して Red Hat Ceph Storage 5 以降をアップグレードできます。
Red Hat Ceph Storage 4 から Red Hat Ceph Storage 6 への直接のアップグレードはサポートされていません。
自動アップグレードプロセスには、Ceph のベストプラクティスに従います。以下に例を示します。
- アップグレードの順序は、Ceph Manager、Ceph Monitor、その他のデーモンとなります。
- 各デーモンは、Ceph がクラスターが引き続き使用可能であることを示した後にのみ再起動します。
ストレージクラスターのヘルスステータスは、アップグレード中に HEALTH_WARNING
に切り換わる可能性が高くなります。アップグレードが完了したら、ヘルスステータスは HEALTH_OK に戻るはずです。
マルチサイトが設定された Red Hat Ceph Storage 6 クラスターがある場合は、オブジェクトを災害復旧 (DR) サイトにレプリケートするときに、暗号化されたオブジェクトのデータ破損の問題が発生するため、最新バージョンの 6.1.z1 にアップグレードしないでください。
アップグレードに成功したら、メッセージを取得しません。ceph versions
コマンドおよび ceph orch ps
コマンドを実行して、新しいイメージ ID およびストレージクラスターのバージョンを確認します。
Ceph iSCSI ゲートウェイは、Red Hat Ceph Storage 6 から削除されます。したがって、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 にアップグレードする前に、iSCSI LUN を管理する必要があります。
Red Hat Ceph Storage クラスターを RHCS 5 から RHCS 6 にアップグレードすると、iSCSI を介してエクスポートされた RBD イメージが保持されるため、データが失われることはありません。ただし、アップグレードによってすべての iSCSI ターゲットがなくなるため、データに一時的にアクセスできなくなります。データを復元するには、rbd device map
コマンドを使用してそのような RBD イメージをマップするか、rbd export
コマンドを使用してそれらをファイルにエクスポートします。
1.1. RHCS と podman
バージョン間の互換性に関する考慮事項
Podman
および Red Hat Ceph Storage には、ライフサイクル終了の異なる戦略があり、互換性のあるバージョンを見つけるのが難しい場合があります。
Red Hat は、Red Hat Ceph Storage に対応する Red Hat Enterprise Linux バージョンに同梱されている podman
バージョンを使用することを推奨しています。詳細は、ナレッジベースの記事 Red Hat Ceph Storage: Supported configurations を参照してください。その他のサポートについては、Red Hat Ceph Storage トラブルシューティングガイドの Red Hat サポートへのサービスの問い合わせ セクションを参照してください。
以下の表は、Red Hat Ceph Storage 6 と podman
のバージョン間の互換性を示しています。
Ceph | Podman | |||||
---|---|---|---|---|---|---|
1.9 | 2.0 | 2.1 | 2.2 | 3.0 | >3.0 | |
Red Hat Ceph Storage 6 | false | true | true | false | true | true |
Red Hat Ceph Storage 5 以降で Podman を使用するには、2.0.0 以降のバージョンの Podman を使用する必要があります。
1.2. Red Hat Ceph Storage クラスターのアップグレード
Red Hat Ceph Storage 5.0 クラスターをアップグレードするには、ceph orch upgrade
コマンドを使用できます。
前提条件
- Red Hat Ceph Storage クラスター 5 が実行している。
-
Ansible-core
が AppStream にバンドルされている Red Hat Enterprise Linux 9.0 以降。 - すべてのノードへの root レベルのアクセス。
-
ストレージクラスター内のすべてのノードへの sudo アクセスおよびパスワードなしの
ssh
アクセスのある Ansible ユーザー。 - ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。
Red Hat Ceph Storage 5 には、ストレージクラスターのデーモンのいずれかが RHCS の複数のバージョンを実行していることを検出した場合に、DAEMON_OLD_VERSION 警告を返すヘルスチェック関数も含まれています。この警告は、デーモンが mon_warn_older_version_delay
オプションで設定された時間値を超えて Red Hat Ceph Storage の複数のバージョンを実行し続けるとトリガーされます。デフォルトでは、mon_warn_older_version_delay
オプションは 1 週間に設定されます。この設定により、ほとんどのアップグレードは、警告を誤って表示することなく続行できます。アップグレードプロセスが長期間一時停止していた場合は、健全性の警告をミュートできます。
ceph health mute DAEMON_OLD_VERSION --sticky
アップグレードが完了したら、健全性の警告のミュートを解除します。
ceph health unmute DAEMON_OLD_VERSION
手順
Ansible 管理ノードで Ceph Ansible リポジトリーを有効にします。
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
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
ストレージクラスターのブートストラップされたホストで
upgrade_ceph_packages
パラメーターをtrue
に設定して、プリフライト Playbook を実行します。構文
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
例
[ceph-admin@admin cephadm-ansible]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
このパッケージは、すべてのノードで
cephadm
をアップグレードします。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-6-rhel9: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-6-rhel9:latest
注記段階的アップグレードを実行するには、Performing a staggered upgrade を参照してください。
アップグレード中は、進捗バーが
ceph status
出力に表示されます。例
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (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
1.3. 非接続環境での Red Hat Ceph Storage クラスターのアップグレード
--image
タグを使用すると、非接続環境でストレージクラスターをアップグレードできます。
Red Hat Ceph Storage 5 クラスターをアップグレードするには、ceph orch upgrade
コマンドを使用できます。
Red Hat Enterprise Linux 9 以降では、cephadm-ansible
Playbook はサポートされません。
前提条件
- Red Hat Ceph Storage クラスター 5 が実行している。
-
Ansible-core
が AppStream にバンドルされている Red Hat Enterprise Linux 9.0 以降。 - すべてのノードへの root レベルのアクセス。
-
ストレージクラスター内のすべてのノードへの sudo アクセスおよびパスワードなしの
ssh
アクセスのある Ansible ユーザー。 - ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
- ノードを CDN に登録して、サブスクリプションを割り当てている。
- 非接続環境でカスタマーコンテナーイメージを確認し、必要に応じて設定を変更している。詳細は、Red Hat Ceph Storage インストールガイド の 非接続インストールのカスタムコンテナーイメージの設定変更 セクションを参照してください。
デフォルトでは、モニタリングスタックコンポーネントは、プライマリー Ceph イメージに基づいてデプロイされます。ストレージクラスターの切断された環境では、最新の利用可能な監視スタックコンポーネントイメージを使用する必要があります。
モニタリングスタックコンポーネント | イメージの詳細 |
---|---|
Prometheus | registry.redhat.io/openshift4/ose-prometheus:v4.12 |
Grafana | registry.redhat.io/rhceph-6-dashboard-rhel9:latest |
Node-exporter | registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 |
AlertManager | registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12 |
HAProxy | registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest |
keepalived | registry.redhat.io/rhceph/keepalived-rhel9:latest |
SNMP ゲートウェイ | registry.redhat.io/rhceph/snmp-notifier-rhel9:latest |
手順
Ansible 管理ノードで Ceph Ansible リポジトリーを有効にします。
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
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@node0 ~]# cephadm shell
すべてのホストがオンラインになり、ストレージクラスターが健全であることを確認します。
例
[ceph: root@node0 /]# 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@node0 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
ストレージクラスターをアップグレードします。
構文
ceph orch upgrade start IMAGE_NAME
例
[ceph: root@node0 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
アップグレード中は、進捗バーが
ceph status
出力に表示されます。例
[ceph: root@node0 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]
Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。
例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph versions [ceph: root@node0 /]# 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 インストールガイド の Red Hat Ceph Storage ノードの CDN への登録およびサブスクリプションの割り当て セクションを参照してください。
- Red Hat Ceph Storage インストールガイド の 非接続インストールのプライベートレジストリーの設定 セクションを参照してください。
第2章 ホストオペレーティングシステムを RHEL 8 から RHEL 9 にアップグレードする
Leapp ユーティリティーを使用して、Red Hat Ceph Storage ホストオペレーティングシステムを Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 にアップグレードできます。
前提条件
- 実行中の Red Hat Ceph Storage 5 クラスターがあること。
コンテナー化された Ceph デーモンのサポートされている組み合わせは次のとおりです。詳細は、Red Hat Ceph Storage インストールガイド の コロケーションの仕組みとその利点 セクションを参照してください。
-
Ceph Metadata Server (
ceph-mds
)、Ceph OSD (ceph-osd
)、および Ceph Object Gateway (radosgw
) -
Ceph Monitor (
ceph-mon
) または Ceph Manager (ceph-mgr
)、Ceph OSD (ceph-osd
)、および Ceph Object Gateway (radosgw
) -
Ceph Monitor (
ceph-mon
)、Ceph Manager (ceph-mgr
)、Ceph OSD (ceph-osd
)、および Ceph Object Gateway (radosgw
)
手順
- サービスを使用して Red Hat Ceph Storage 5 を Red Hat Enterprise Linux 8 にデプロイします。
クラスターに 2 つの管理ノードが含まれていることを確認します。これにより、1 つの 管理 ノード (_admin
ラベル付き) でホストのアップグレードを実行している間、2 番目の管理ノードをクラスターの管理に使用できます。
完全な手順は、Red Hat Ceph Storage インストールガイド の Red Hat Ceph Storage インストール と、操作ガイド の サービス仕様を使用した Ceph デーモンのデプロイ を参照してください。
Ceph OSD で
noout
フラグを設定します。例
[ceph: root@host01 /]# ceph osd set noout
Leapp ユーティリティーを使用して、一度に 1 ノードずつホストのアップグレードを実行します。
Leapp を使用してホストのアップグレードを実行する前に、それぞれのノードのメンテナンスモードを設定します。
構文
ceph orch host maintenance enter HOST
例
ceph orch host maintenance enter host01
--enablerepo
パラメーターを指定して leapp コマンドを実行するときに、ceph ツールリポジトリーを手動で有効にします。例
leapp upgrade --enablerepo rhceph-5-tools-for-rhel-9-x86_64-rpms
Red Hat Customer Portal の Red Hat Enterprise Linux 製品ドキュメント内の RHEL 8 から RHEL 9 へのアップグレード を参照してください。
重要Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 へのインプレースアップグレードを実行した後、
logrotate.timer
サービスを手動で有効にして起動する必要があります。# systemctl start logrotate.timer # systemctl enable logrotate.timer
Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。
例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph orch ps
- Red Hat Ceph Storage アップグレードガイド の Red Hat Ceph Storage クラスターのアップグレード 手順に従って、Red Hat Ceph Storage 5.3 から Red Hat Ceph Storage 7 へのアップグレードを続行します。
第3章 RHEL 8 から RHEL 9 へのアップグレードを伴う RHCS 5 から RHCS 6 へのアップグレード
Red Hat Ceph Storage 4 から Red Hat Ceph Storage 6 へのアップグレードこのアップグレードには、Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 へのアップグレードが含まれます。
最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。
前提条件
- Red Hat Enterprise Linux 8.4 を実行している Red Hat Ceph Storage 4 クラスター。
-
管理ノードからの Ceph バイナリー (
/usr/sbin/cephadm
)、ceph.pub (/etc/ceph
)、および Ceph クラスターの公開 SSH キーのバックアップ。
手順
- クラスターのすべてのホストで Red Hat Enterprise Linux のバージョンをアップグレードします。詳細な手順については、RHEL 8 から RHEL 9 へのホストオペレーティングシステムのアップグレードを 参照してください。
- Red Hat Enterprise Linux のアップグレード後、Red Hat Ceph Storage ノードを CDN に登録し、必要なリポジトリーを追加します。詳細な手順については、CDN への Red Hat Ceph Storage ノードの登録とサブスクリプションのアタッチ を参照してください。
- Red Hat Ceph Storage を更新します。詳細な手順については、cephadm を使用した Red Hat Ceph Storage クラスターのアップグレードを 参照してください。
第4章 ストレッチモードを有効にした RHEL 8 から RHEL 9 へのアップグレードを伴う RHCS 5 から RHCS 6 へのアップグレード
ストレッチモードを有効にすることで、Red Hat Enterprise Linux 8 から Red Hat Enterprise Linux 9 への Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 へのアップグレードを実行できます。
最新バージョンの Red Hat Ceph Storage 6.1 にアップグレードする前に、最新バージョンの Red Hat Ceph Storage 5.3.z5 にアップグレードしてください。
前提条件
- 必要なホストがあり、ストレッチモードを有効にして実行しているデーモンのる Red Hat Enterprise Linux 8 の Red Hat Ceph Storage 5。
-
管理ノードからの Ceph バイナリー (
/usr/sbin/cephadm
)、ceph.pub (/etc/ceph
)、および Ceph クラスターの公開 SSH キーのバックアップ。
.Arbiter モニターをホストからドレインまたは削除することはできません。そのため、arbiter mon を別の tie-breaker ノードに再プロビジョニングしてから、タイブレーカーを新しいモニターに交換する で説明されているように、ホストからドレインまたは削除する必要があります。
手順
Cephadm シェルにログインします。
例
[ceph: root@host01 /]# cephadm shell
管理ノードが再プロビジョニングされるときにクラスターを管理するには、クラスター内の 2 番目のノードに管理者としてラベルを付けます。
構文
ceph orch host label add HOSTNAME admin
例
[ceph: root@host01 /]# ceph orch host label add host02 admin
noout
フラグを設定します。例
[ceph: root@host01 /]# ceph osd set noout
ホストからすべてのデーモンをドレインします。
構文
ceph orch host drain HOSTNAME --force
例
[ceph: root@host01 /]# ceph orch host drain host02 --force
_no_schedule
ラベルは、デプロイメントをブロックするホストに自動的に適用されます。ストレージクラスターからすべてのデーモンが削除されているかどうかを確認します。
構文
ceph orch ps HOSTNAME
例
[ceph: root@host01 /]# ceph orch ps host02
OSD の削除のステータスを確認します。
例
[ceph: root@host01 /]# ceph orch osd rm status
OSD に配置グループ (PG) が残っていない場合、OSD は廃止され、ストレージクラスターから削除されます。
デバイスを消去して、ドレインされているホストに OSD が存在する場合、ホストが再度追加されたときに、そのホストを使用して OSD を再デプロイメントできるようにします。
構文
ceph orch device zap HOSTNAME DISK [--force]
例
[ceph: root@host01 /]# ceph orch device zap ceph-host02 /dev/vdb [--force] zap successful for /dev/vdb on ceph-host02
クラスターからホストを削除します。
構文
ceph orch host rm HOSTNAME --force
例
[ceph: root@host01 /]# ceph orch host rm host02 --force
- RHEL 8 から RHEL 9 へのアップグレード の説明に従って、RHEL 8 から RHEL 9 に それぞれのホストを再プロビジョニングします。
--limit
オプションを指定して、プリフライト Playbook を実行します。構文
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --limit NEWHOST_NAME
例
[ceph: root@host01 /]# ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin={storage-product}" --limit host02
プリフライト Playbook は、新しいホストに
podman
、lvm2
、chronyd
、およびcephadm
をインストールします。インストールが完了すると、cephadm
は/usr/sbin/
ディレクトリーに配置されます。クラスターの SSH 公開鍵をフォルダーにデプロイメントします。
構文
ceph cephadm get-pub-key ~/PATH
例
[ceph: root@host01 /]# ceph cephadm get-pub-key ~/ceph.pub
Ceph クラスターの公開 SSH キーを再プロビジョニングされたノードにコピーします。
構文
ssh-copy-id -f -i ~/PATH root@HOST_NAME_2
例
[ceph: root@host01 /]# ssh-copy-id -f -i ~/ceph.pub root@host02
オプション: 削除されたホストにモニターデーモンがある場合は、クラスターにホストを追加する前に、デプロイメントをモニターするために
--unmanaged
フラグを追加してください。構文
ceph orch apply mon PLACEMENT --unmanaged
ホストをクラスターに再度追加し、以前に存在したラベルを追加します。
構文
ceph orch host add HOSTNAME IP_ADDRESS --labels=LABELS
オプション: 削除されたホストに元々デプロイされていたモニターデーモンがあった場合は、タイブレーカーを新しいモニターに交換する で説明されているように、ロケーション属性を使用してモニターデーモンを手動で追加し直す必要があります。
構文
ceph mon add HOSTNAME IP LOCATION
例
[ceph: root@host01 /]# ceph mon add ceph-host02 10.0.211.62 datacenter=DC2
構文
ceph orch daemon add mon HOSTNAME
例
[ceph: root@host01 /]# ceph orch daemon add mon ceph-host02
再プロビジョニングされたホストのデーモンが同じ ceph バージョンで正常に実行されていることを確認します。
構文
ceph orch ps
モニターデーモンの配置を
managed
に戻します。注記このステップは 1 つずつ実行する必要があります。
構文
ceph orch apply mon PLACEMENT
- すべてのホストに対して上記の手順を繰り返します。
- 同じアプローチに従って管理ノードを再プロビジョニングし、2 番目の管理ノードを使用してクラスターを管理します。
- バックアップファイルをノードに再度追加します。
-
.2 番目の管理ノードを使用して、クラスターに管理ノードを再び追加します。
mon
デプロイメントをunmanaged
に設定します。 - タイブレーカーを新しいモニターに置き換える に従って、古い arbiter mon を再度追加し、前に作成した一時的な mon を削除します。
noout
フラグの設定を解除します。構文
ceph osd unset noout
- Ceph のバージョンとクラスターのステータスを確認して、Red Hat Enterprise Linux のアップグレード後に、すべてのデーモンが期待どおりに動作していることを確認します。
- RHEL OS が正常にアップグレードされたので、cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード に従って、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 へのアップグレードを実行します。
第5章 段階的なアップグレード
ストレージ管理者は、Red Hat Ceph Storage コンポーネントを一度にすべてではなく段階的にアップグレードできます。Red Hat Ceph Storage 5.2 以降、ceph orch upgrade
コマンドでオプションを指定して、1 つの upgrade コマンドでアップグレードするデーモンを制限することが可能になりました
段階的アップグレードをサポートしていないバージョンからアップグレードする場合は、最初に Ceph Manager (ceph-mgr
) デーモンを手動でアップグレードする必要があります。以前のリリースからの段階的なアップグレードの実行に関する詳細は、以前のリリースからの段階的なアップグレードの実行 を参照してください。
Ceph iSCSI ゲートウェイは、Red Hat Ceph Storage 6 から削除されます。したがって、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 にアップグレードする前に、iSCSI LUN を管理する必要があります。
Red Hat Ceph Storage クラスターを RHCS 5 から RHCS 6 にアップグレードすると、iSCSI を介してエクスポートされた RBD イメージが保持されるため、データが失われることはありません。ただし、アップグレードによってすべての iSCSI ターゲットがなくなるため、データに一時的にアクセスできなくなります。データを復元するには、rbd device map
コマンドを使用してそのような RBD イメージをマップするか、rbd export
コマンドを使用してそれらをファイルにエクスポートします。
5.1. 段階的なアップグレードのオプション
Red Hat Ceph Storage 5.2 以降、ceph orch upgrade
コマンドは、クラスターコンポーネントを段階的にアップグレードするためのいくつかのオプションをサポートしています。段階的なアップグレードのオプションは、以下の通りです。
-
--daemon_types:
--daemon_types
オプションは、デーモンタイプのコンマ区切りのリストを取り、それらのタイプのデーモンのみをアップグレードします。このオプションの有効なデーモンタイプには、mgr
、mon
、crash
、osd
、mds
、rgw
、rbd-mirror
、cephfs-mirror
、およびnfs
が含まれます。 -
--services:
--services
オプションは--daemon-types
と相互に排他的であり、一度に 1 つのタイプのサービスのみを取り、それらのサービスに属するデーモンのみをアップグレードします。たとえば、OSD サービスと RGW サービスを同時に提供することはできません。 -
--hosts:
--hosts
オプションを--daemon_types
、--services
と組み合わせるか、単独で使用することができます。--hosts
オプションパラメーターは、オーケストレーター CLI 配置仕様のコマンドラインオプションと同じ形式に従います。 -
--limit:
--limit
オプションはゼロより大きい整数を取り、cephadm
がアップグレードするデーモンの数に数値制限を提供します。--limit
オプションを--daemon_types
、--services
、または--hosts
と組み合わせることができます。たとえば、制限を3
に設定してhost01
上のタイプosd
のデーモンをアップグレードするように指定した場合、cephadm
は host01 上の最大 3 つの OSD デーモンをアップグレードします。
5.1.1. 段階的なアップグレードの実行
ストレージ管理者は、ceph orch upgrade
オプションを使用して、1 つの upgrade コマンドでアップグレードされるデーモンを制限できます。
Cephadm は、段階的なアップグレードシナリオに引き続き存在するデーモンのアップグレードの順序を厳密に適用します。現在のアップグレードの順序は次のとおりです。
- Ceph Manager ノード
- Ceph Monitor ノード
- Ceph-crash デーモン
- Ceph OSD ノード
- Ceph Metadata Server (MDS) ノード
- Ceph Object Gateway (RGW) ノード
- Ceph RBD-mirror ノード
- CephFS ミラーノード
- Ceph NFS ノード
デーモンを順不同でアップグレードするパラメーターを指定すると、upgrade コマンドはブロックし、続行する前にどのデーモンをアップグレードする必要があるかを通知します。
例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --hosts host02 Error EINVAL: Cannot start upgrade. Daemons with types earlier in upgrade order than daemons on given host need upgrading. Please first upgrade mon.ceph-host01
規定されているインスタンスの再起動の順番はありません。Red Hat では、プライマリーイメージで、プールを参照するインスタンスを再起動して、その後にミラーリングされたプールを参照するインスタンスを再起動することを推奨します。
前提条件
- クラスターで Red Hat Ceph Storage 5.2 以降が実行している。
- すべてのノードへの root レベルのアクセス。
- ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
手順
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-6-rhel9:latest
注記イメージ名は、Red Hat Enterprise Linux 8 と Red Hat Enterprise Linux 9 の両方に適用されます。
ストレージクラスターをアップグレードします。
特定のホストで特定のデーモンタイプをアップグレードするには、次の手順を実行します。
構文
ceph orch upgrade start --image IMAGE_NAME --daemon-types DAEMON_TYPE1,DAEMON_TYPE2 --hosts HOST1,HOST2
例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --daemon-types mgr,mon --hosts host02,host03
特定のサービスを指定し、アップグレードするデーモンの数を制限するには、以下を実行します。
構文
ceph orch upgrade start --image IMAGE_NAME --services SERVICE1,SERVICE2 --limit LIMIT_NUMBER
例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --services rgw.example1,rgw1.example2 --limit 2
注記段階的なアップグレードのシナリオでは、制限パラメーターを使用する場合、Prometheus および
node-exporter
を含むモニタリングスタックデーモンは、Ceph Manager デーモンのアップグレード後に更新されます。制限パラメーターの結果として、Ceph Manager のアップグレードが完了するまでに時間がかかります。モニタリングスタックデーモンのバージョンは、Ceph リリース間で変更されない場合があり、その場合、それらは再デプロイされるだけになります。注記制限パラメーターを含む upgrade コマンドは、アップグレードを開始する前にオプションを検証します。これには、新しいコンテナーイメージのプルが必要になる場合があります。その結果、制限パラメーターを指定すると、
upgrade start
コマンドが戻るまでに時間がかかる場合があります。
引き続きアップグレードが必要なデーモンを確認するには、
ceph orch upgrade check
またはceph versions
コマンドを実行します。例
[ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
段階的なアップグレードを完了するには、残りのすべてのサービスのアップグレードを確認します。
構文
ceph orch upgrade start --image IMAGE_NAME
例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
検証
Ceph クラスターの新しい IMAGE_ID および VERSION を確認します。
例
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps
アップグレードが完了したら、
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
5.1.2. 以前のリリースからの段階的なアップグレードの実行
Red Hat Ceph Storage 5.2 以降では、必要な引数を指定すると、ストレージクラスター上で段階的なアップグレードを実行できます。段階的アップグレードをサポートしていないバージョンからアップグレードする場合は、最初に Ceph Manager (ceph-mgr
) デーモンを手動でアップグレードする必要があります。Ceph Manager デーモンをアップグレードしたら、制限パラメーターを渡して段階的なアップグレードを完了できます。
この手順を試みる前に、少なくとも 2 つの実行中の Ceph Manager デーモンがあることを確認してください。
前提条件
- クラスターで Red Hat Ceph Storage 5.0 以降が実行している。
- ストレージクラスターの 2 つ以上の Ceph Manager ノード (アクティブなノード 1 つとスタンバイ 1 つ)。
手順
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-6-rhel9: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 をアップグレードしたら、制限パラメーターを指定して、残りの段階的アップグレードを完了できます。
関連情報
- 段階的なアップグレードの実行と段階的なアップグレードオプションの詳細は、段階的なアップグレードの実行 を参照してください。
第6章 ストレージクラスターのアップグレードの監視および管理
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
第7章 アップグレードのエラーメッセージのトラブルシューティング
以下の表に、cephadm
アップグレードエラーメッセージの一部を示します。何らかの理由で cephadm
のアップグレードが失敗すると、エラーメッセージがストレージクラスターのヘルスステータスに表示されます。
エラーメッセージ | 説明 |
---|---|
UPGRADE_NO_STANDBY_MGR | 続行するには、Ceph にアクティブマネージャーデーモンとスタンバイマネージャーデーモンの両方が必要ですが、現在スタンバイはありません。 |
UPGRADE_FAILED_PULL | Ceph は、ターゲットバージョンのコンテナーイメージをプルできませんでした。これは、存在しないバージョンまたはコンテナーイメージ (例: 1.2.3) を指定する場合や、コンテナーレジストリーがクラスター内の 1 つ以上のホストから到達できない場合に発生する可能性があります。 |