16.2 から 17.1 へのアップグレードフレームワーク
Red Hat OpenStack Platform 16.2 から 17.1 へのインプレースアップグレード
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
Jira でドキュメントのフィードバックを提供する
問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。
問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。
- 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
- Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
- Create をクリックします。
第1章 Red Hat OpenStack Platform のアップグレードフレームワークについて
アップグレード用の Red Hat OpenStack Platform (RHOSP) フレームワークは、RHOSP 環境を 1 つの長期バージョンから次の長期バージョンにアップグレードするためのワークフローです。このワークフローはインプレースのソリューションで、アップグレードは既存の環境内で実行されます。
1.1. Red Hat OpenStack Platform 17.1 における変更点の概要
以下は、Red Hat OpenStack Platform (RHOSP) 17.1 へのアップグレード時に行われる変更の概要です。
- RHOSP のアップグレードとオペレーティングシステムのアップグレードは、2 つの異なるフェーズに分かれています。RHOSP を最初にアップグレードしてから、オペレーティングシステムをアップグレードします。
- コンピュートノードの一部を RHEL 9.2 にアップグレードし、残りのコンピュートノードは RHEL 8.4 のままにすることができます。これは Multi-RHEL 環境と呼ばれます。
Red Hat Ceph Storage 5 へのアップグレードにより、
cephadm
が Red Hat Ceph Storage を管理するようになりました。Red Hat Ceph Storage の以前のバージョンは、ceph-ansible
によって管理されていました。RHOSP 17.1 へのアップグレードの完了後、Red Hat Ceph Storage ノードをバージョン 5 からバージョン 6 にアップグレードできます。アップグレードしない場合、Red Hat Ceph Storage ノードは、Red Hat Ceph Storage 5 ライフサイクルが終了するまで RHOSP 17.1 でバージョン 5 のままにすることができます。Red Hat Ceph Storage バージョン 5 からバージョン 6 にアップグレードするには、ご使用の環境に応じて次のいずれかの手順を実行します。-
director でデプロイされた Red Hat Ceph Storage 環境:
cephadm
クライアントの更新 - 外部 Red Hat Ceph Storage クラスター環境: Red Hat Ceph Storage コンテナーイメージの更新
-
director でデプロイされた Red Hat Ceph Storage 環境:
デフォルトでは、RHOSP オーバークラウドは、バージョン 16.2 および 17.1 のデフォルトの ML2 メカニズムドライバーとして Open Virtual Network (OVN) を使用します。
RHOSP 16.2 デプロイメントで OVS メカニズムドライバーを使用している場合は、OVS メカニズムドライバーを使用して 17.1 にアップグレードする必要があります。アップグレード中にメカニズムドライバーを変更しないでください。アップグレード後、OVS から OVN メカニズムドライバーに移行できます。OVN メカニズムドライバーへの移行 を参照してください。
ML2/OVN デプロイメントでは、ハードウェアオフロードポートの egress 最小帯域幅および最大帯域幅のポリシーを有効にできます。
詳細は、Red Hat OpenStack Platform ネットワークの設定 の QoS ポリシーのネットワークサービスの設定 を参照してください。
- アンダークラウドおよびオーバークラウドは、共に Red Hat Enterprise Linux 9 上で動作します。
1.2. Red Hat Enterprise Linux 9 の変更点
Red Hat OpenStack Platform (RHOSP) 17.1 は、ベースオペレーティングシステムとして Red Hat Enterprise Linux (RHEL) 9.2 を使用します。アップグレードプロセスの一環として、ノードのベースオペレーティングシステムを RHEL 9.2 にアップグレードします。
アップグレードを開始する前に、以下の情報を確認して RHEL 9 についてよく理解してください。
- システムに RSA/SHA-1 署名付きのパッケージが含まれている場合は、RHOSP 17.1 にアップグレードする前に、それらを削除するか、ベンダーに連絡して RSA/SHA-256 署名付きのパッケージを入手する必要があります。詳細は、SHA-1 deprecation in Red Hat Enterprise Linux 9 を参照してください。
- RHEL 9 の最新の変更点に関する詳細は、Red Hat Enterprise Linux 9.2 リリースノート を参照してください。
- Red Hat Enterprise Linux 8 と 9 の主な相違点は、RHEL 9 の採用における考慮事項 を参照してください。
- Red Hat Enterprise Linux 9 に関する一般的な情報は、Red Hat Enterprise Linux 9 の製品ドキュメント を参照してください。
- RHEL 8 から RHEL 9 へのアップグレードに関する詳細は、RHEL 8 から RHEL 9 へのアップグレード を参照してください。
1.3. ロングライフバージョンのアップグレードフレームワーク
Red Hat OpenStack Platform (RHOSP) の アップグレードフレームワーク を使用して、複数のオーバークラウドバージョンを経由するインプレースアップグレードパスを実施することができます。この機能は、ロングライフバージョン とされている特定の OpenStack のバージョンの使用を継続し、次のロングライフバージョンが提供された際にアップグレードする機会を提供することを目的としています。
Red Hat OpenStack Platform のアップグレードプロセスでは、ノード上の Red Hat Enterprise Linux (RHEL) のバージョンもアップグレードされます。
このガイドは、以下のバージョン間のアップグレードフレームワークを提供します。
現在のバージョン | 目的のバージョン |
---|---|
Red Hat OpenStack Platform 16.2.4 以降 | Red Hat OpenStack Platform 17.1 (最新) |
Red Hat OpenStack Platform のライフサイクルサポートに関する正確な日付けおよび詳細な情報は、Red Hat OpenStack Platform のライフサイクル を参照してください。
ロングライフリリースのアップグレードパス
アップグレードを開始する前に、可能な更新およびアップグレードのパスを把握してください。RHOSP 16.2.4 より前の環境を使用している場合は、メジャーバージョンからメジャーバージョンにアップグレードする前に、まずは既存の環境を最新のマイナーリリースに更新する必要があります。
たとえば、現在のデプロイメントが Red Hat Enterprise Linux (RHEL) 8.4 上の Red Hat OpenStack Platform (RHOSP) 16.2.1 である場合、RHOSP 17.1 にアップグレードする前に、最新の RHOSP 16.2 バージョンへのマイナー更新を実行する必要があります。
RHOSP および RHEL の現行バージョンは、/etc/rhosp-release
および /etc/redhat-release
ファイルで確認できます。
現行バージョン | 更新後のバージョン |
RHEL 8.4 / RHOSP 16.2.x | 最新の RHEL 8.4 / 最新の RHOSP 16.2 |
RHEL 9.0 / RHOSP 17.0.x | 最新の RHEL 9.0 / 最新の RHOSP 17.0 |
RHEL 9.0 / RHOSP 17.0.x | 最新の RHEL 9.2 / 最新の RHOSP 17.1 |
RHEL 9.2 / RHOSP 17.1.x | 最新の RHEL 9.2 / 最新の RHOSP 17.1 |
詳細は、Red Hat OpenStack Platform のマイナー更新の実行 を参照してください。
現行バージョン | 更新後のバージョン |
RHEL 8.4 上の RHOSP 16.2 | 最新の RHEL 9.2 / 最新の RHOSP 17.1 |
Red Hat では、お使いの環境を次のロングライフリリースにアップグレードするためのオプションを 2 つ提供しています。
- インプレースアップグレード
- 既存の環境でサービスのアップグレードを実施します。このガイドでは、主にこのオプションを中心に説明します。
- 並列移行
- 新しい RHOSP 17.1 環境を作成し、ワークロードを現在の環境から新しい環境に移行します。RHOSP の並行移行の詳細は、Red Hat Global Professional Services までお問い合わせください。
1.4. アップグレードの所要時間と影響
次の表に示された所要時間は、200 台のノードを備えたオーバークラウドと、それぞれ 17 個のオブジェクトストレージデーモン (OSD) を備えた 9 台の Ceph Storage ホストで構成されるテスト環境で記録されました。表に示された所要時間は、すべての実稼働環境に適用されるわけではありません。たとえば、ハードウェアのスペックが低い場合やブート時間が長い場合は、これらの時間に余裕を持たせてください。所要時間は、コンテナーおよびパッケージのコンテンツへのネットワーク I/O や、ホスト上のディスク I/O によっても異なります。
各タスクのアップグレードに要する時間を正確に推測するには、実稼働環境と類似したハードウェアを持つテスト環境でこれらの手順を実施してください。
所要時間 | 注記 | |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
1.5. インプレースアップグレードの計画および準備
OpenStack Platform 環境のインプレースアップグレードを実施する前に、アップグレードのプランを作成し、正常なアップグレードを妨げる可能性のある障害に対処してください。
1.5.1. Red Hat OpenStack Platform 17.1 の理解
アップグレードを実行する前に、Red Hat OpenStack Platform 17.1 をよく理解しておくことで、結果として生じる環境や、アップグレードに影響を与える可能性のあるバージョン間の変更点を理解することができます。Red Hat OpenStack Platform 17.1 の理解を深めるには、以下の推奨事項に従ってください。
アップグレードパスにわたるすべてのバージョンのリリースノートを確認し、計画が必要になる可能性のある要素を識別します。
- 新しい機能が含まれるコンポーネント
- 既知の問題
以下のリンクから、各バージョンのリリースノートを確認してください。
- Red Hat OpenStack Platform 16.2 (ソースバージョン)
- Red Hat OpenStack Platform 17.1 (ターゲットバージョン)
- バージョン 17.1 の director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドを読み、このガイドに記載されている新しい要件とプロセスについて理解を深めてください。
- 概念実証用の Red Hat OpenStack Platform 17.1 アンダークラウドとオーバークラウドをインストールします。対象のバージョンの OpenStack Platform を実際に操作して経験を積み、対象のバージョンと現在のバージョンの違いを調査します。
1.5.2. マイナーバージョンの更新要件
Red Hat OpenStack Platform (RHOSP) 16.2 から 17.1 にアップグレードするには、使用している環境で RHOSP バージョン 16.2.4 以降が実行されている必要があります。16.2.4 より前の RHOSP バージョンを使用している場合は、環境を現行リリースの最新のマイナーバージョンに更新します。たとえば、Red Hat OpenStack Platform 17.1 にアップグレードする前に、Red Hat OpenStack Platform 16.2.3 環境を 16.2 の最新バージョンに更新します。
Red Hat OpenStack Platform 16.2 のマイナーバージョン更新を実行する手順は、Red Hat OpenStack Platform の最新状態の維持 を参照してください。
1.5.3. Red Hat OpenStack Platform での Leapp アップグレードの使用
ロングライフバージョンの Red Hat OpenStack Platform のアップグレードでは、ベースオペレーティングシステムを Red Hat Enterprise Linux (RHEL) 8.4 から RHEL 9.2 へアップグレードする必要があります。アップグレードプロセスでは、Leapp ユーティリティーを使用して RHEL 9.2 へのアップグレードを実行します。ただし、Leapp アップグレードの一部は、明確に RHEL 8.4 から RHEL 9.2 にアップグレードするようにカスタマイズされています。オペレーティングシステムを RHEL 9.2 にアップグレードするには、アンダークラウドシステムのアップグレードの実行 を参照してください。
制限
アップグレードに影響を及ぼす可能性のある制限の詳細は、RHEL 8 から RHEL 9 へのアップグレード の以下のセクションを参照してください。
既知の制限がお使いの環境に影響を及ぼす場合は、Red Hat Technical Support Team にアドバイスを求めてください。
トラブルシューティング
Leapp が原因と考えられる問題のトラブルシューティングに関する詳細は、RHEL 8 から RHEL 9 へのアップグレード の トラブルシューティング を参照してください。
1.5.4. ストレージドライバーの認定
アップグレードする前に、デプロイされているストレージドライバーが Red Hat OpenStack Platform 17.1 で使用できると認定されていることを確認してください。
Red Hat OpenStack Platform 17.1 での使用が認定されたソフトウェアについては、Software certified for Red Hat OpenStack Platform 17 を参照してください。
1.5.5. サポート対象のアップグレードシナリオ
アップグレードを進める前に、ご自分のオーバークラウドがサポート対象であることを確認してください。
以下のリストに記載されていない特定のシナリオがサポート対象かどうか不明な場合は、Red Hat Technical Support Team にアドバイスを求めてください。
サポート対象のシナリオ
以下のインプレースアップグレードシナリオは、テスト済みでサポートの対象です。
- デフォルトのロール種別を使用する標準環境: Controller、Compute、および Ceph Storage OSD
- 分割 Controller コンポーザブルロール
- Ceph Storage コンポーザブルロール
- ハイパーコンバージドインフラストラクチャー: 同一ノード上の Compute サービスおよび Ceph Storage OSD サービス
- ネットワーク機能仮想化 (NFV) 技術を使用する環境: Single-root Input/Output Virtualization (SR-IOV) および Data Plane Development Kit (DPDK)
インスタンス HA が有効な環境
注記アップグレードの際には、nova ライブマイグレーションがサポートされます。ただし、インスタンス HA が開始する避難はサポートされません。Compute ノードをアップグレードする場合、ノードはクリーンにシャットダウンされ、ノード上で実行されているワークロードはインスタンス HA によって自動的に退避されません。その代わり、手動でライブマイグレーションを行う必要があります。
テクノロジープレビューのシナリオ
アップグレードフレームワークを以下の機能と併用した場合は、テクノロジープレビューとみなされます。したがって、Red Hat では全面的にはサポートしていません。以下のシナリオは概念実証の環境でのみテストし、実稼働環境へのアップグレードは行わないでください。テクノロジープレビュー機能の詳細は、対象範囲の詳細 を参照してください。
- エッジおよび分散コンピュートノード (DCN) のシナリオ
1.5.6. Red Hat Virtualization のアップグレードプロセス
コントロールプレーンを Red Hat Virtualization で実行している場合、Red Hat OpenStack Platform (RHOSP) のアップグレードプロセスには影響はありません。RHOSP のアップグレードは、環境が Red Hat Virtualization 上で実行しているかどうかに関係なく同じです。
1.5.7. アップグレードを妨げる可能性のある既知の問題
アップグレードの正常な完了に影響を及ぼす可能性のある、以下の既知の問題を確認してください。
オペレーティングシステムを RHEL 7.x から RHEL 8.x に、または RHEL 8.x から RHEL 9.x にアップグレードする場合は、--debug
オプションを指定して Leapp アップグレードを実行しないでください。システムは early console in setup code
状態のままとなり、自動的に再起動しません。この問題を回避するために、UpgradeLeappDebug
パラメーターはデフォルトで false
に設定されています。テンプレートではこの値を変更しないでください。
オーバークラウドノードをリブートした後、パーミッションの問題により、collectd-sensubility が機能しなくなります。その結果、collectd-sensubility はコンテナーの健全性のレポートを停止します。Red Hat OpenStack Platform (RHOSP) 16.2 から RHOSP 17.1 へのアップグレード中に、Leapp アップグレードの一部としてオーバークラウドノードが再起動されます。collectd-sensubility が引き続き機能することを確認するには、以下のコマンドを実行します。
sudo podman exec -it collectd setfacl -R -m u:collectd:rwx /run/podman
Pacemaker によって制御される ceph-nfs
リソースには、一部のプロセスデータを保存するためのランタイムディレクトリーが必要です。このディレクトリーは、RHOSP をインストールまたはアップグレードするときに作成されます。現在、コントローラーノードを再起動するとディレクトリーが削除され、コントローラーノードを再起動しても ceph-nfs
サービスは回復しません。すべてのコントローラーノードが再起動されると、ceph-nfs
サービスは永続的に失敗します。
以下の回避策を適用できます。
コントローラーノードを再起動する場合は、コントローラーノードにログインし、
/var/run/ceph
ディレクトリーを作成します。$ mkdir -p /var/run/ceph
再起動されたすべてのコントローラーノードでこの手順を繰り返します。
ceph-nfs-pacemaker
サービスが失敗としてマークされている場合は、ディレクトリーを作成した後、いずれかのコントローラーノードから以下のコマンドを実行します。$ pcs resource cleanup
CephPools
パラメーターが一連のプールオーバーライドを使用して定義されている場合は、RHOSP 16.2 から 17.1 へのアップグレード中にプールの作成で失敗が発生しないように、rule_name:replicated_rule
を定義に追加する必要があります。
Red Hat OpenStack Platform (RHOSP) 13 から 16.1 または 16.2 にアップグレードする場合、または RHOSP 16.2 から 17.1 にアップグレードする場合は、--answers-file answer-upgrade.yaml
ファイルに system_upgrade.yaml
ファイルを含めないでください。そのファイルに system_upgrade.yaml
ファイルが含まれていると、environments/lifecycle/upgrade-prepare.yaml
ファイルによって system_upgrade.yaml
ファイル内のパラメーターが上書きされます。この問題を回避するには、system_upgrade.yaml
ファイルを openstack overcloud upgrade prepare
コマンドに追加します。以下に例を示します。
$ openstack overcloud upgrade prepare --answers-file answer-upgrade.yaml / -r roles-data.yaml / -n networking-data.yaml / -e system_upgrade.yaml / -e upgrade_environment.yaml /
この回避策を使用すると、system_upgrade.yaml
ファイルで設定されているパラメーターによって、environments/lifecycle/upgrade-prepare.yaml
ファイルのデフォルトのパラメーターが上書きされます。
Cinder ボリューム NFS マウントがコンピュートノード上に存在する場合、RHOSP 16.2 から 17.1 へのアップグレード中に、オペレーティングシステムの RHEL 8.4 から RHEL 9.2 へのアップグレードが失敗します。回避策については、Red Hat サポート担当者にお問い合わせください。
Red Hat Ceph Storage 4 から 5 へのアップグレード中に、既知の問題により Ceph Monitor ノードがアップグレードされません。最初の Ceph Monitor ノードがバージョン 5 にアップグレードされると、他の Ceph Monitor ノードは実行を停止し、次のメッセージを報告します。
"FAILED ceph_assert(fs->mds_map.compat.compare(compat) == 0)"
Red Hat Ceph Storage ノードをアップグレードする前に、Red Hat ナレッジベースソリューション RHCS during upgrade RHCS 4 → RHCS 5 ceph-mon is failing with "FAILED ceph_assert(fs→mds_map.compat.compare(compat) == 0)" の回避策を適用してください。アップグレードが完了すると、Red Hat Ceph Storage クラスターは cephadm
によって採用されるため、この回避策は必要ありません。
アンダークラウドがインターネットに接続していない環境では、infra_image
値が定義されていないため、Red Hat OpenStack Platform 16.2 から 17.1 へのアップグレードは失敗します。overcloud_upgrade_prepare.sh
スクリプトは registry.access.redhat.com/ubi8/pause
をプルしようとしますが、エラーが発生します。
この問題を回避するには、Satellite Server に一時停止コンテナーを手動で追加します。
-
一時停止コンテナーを Satellite Server にインポートします (例:
k8s.gcr.io/pause:3.5
またはregistry.access.redhat.com/ubi8/pause
)。 /usr/share/containers/containers.conf
ファイルで、ローカル Satellite URL の一時停止コンテナーを指定します。以下に例を示します。infra_image="<LOCAL_SATELLITE_URL/pause:3.5>"
-
<LOCAL_SATELLITE_URL/pause:3.5>
を、ローカルの Satellite URL とインポートした一時停止コンテナーに置き換えます。
-
Pod を起動できることを確認します。
$ podman pod create
Red Hat OpenStack Platform (RHOSP) 16.2 から RHOSP 17.1 にアップグレードすると、暗号化された ceph-osd
が原因で、Red Hat Ceph Storage ノードの Leapp アップグレードが失敗します。Red Hat Ceph Storage ノードで Leapp アップグレードを実行する前に、Red Hat ナレッジベースソリューション (FFU 16.2→17) leapp upgrade of ceph nodes is failing encrypted partition detected を適用します。
bridge_name
変数は、RHOSP 17.1 の nic-config テンプレートでは有効ではなくなりました。RHOSP 16.2 から 17.1 にアップグレードした後、スタック更新を実行し、nic-config テンプレートに bridge_name
変数がまだ含まれていると、停止が発生します。RHOSP 17.1 にアップグレードする前に、bridge_name
変数の名前を変更する必要があります。
詳細は、Red Hat ナレッジベースソリューション bridge_name
is still present in templates during and post FFU causing further updates failure を参照してください。
director によってデプロイされた Red Hat Ceph Storage 環境に Alertmanager をデプロイした場合、Red Hat Ceph Storage バージョン 4 からバージョン 5 へのアップグレードは失敗します。Red Hat Ceph Storage ノードで cephadm
を設定するために次のコマンドを実行した後、HAProxy が再起動しないことが原因で失敗します。
$ openstack overcloud external-upgrade run \ --skip-tags ceph_ansible_remote_tmp \ --stack <stack> \ --tags cephadm_adopt 2>&1
コマンドを実行すると、Red Hat Ceph Storage クラスターのステータスは HEALTH_WARN
になります。
この問題の回避策については、Red Hat ナレッジベースソリューション HAProxy does not restart during RHOSP upgrade when RHCS is director-deployed and Alertmanager is enabled を参照してください。
Red Hat Ceph Storage 5 から 6 にアップグレードした後、次のようなヘルス警告メッセージが表示される場合があります。
[WRN] BLUESTORE_NO_PER_POOL_OMAP
このヘルス警告メッセージは、Red Hat ナレッジベースのソリューションリンク RHCS 6 - BLUESTORE_NO_PER_POOL_OMAP OSD(s) reporting legacy (not per-pool) BlueStore omap usage stats. の指示に従って消去できます。
アンダークラウドのアップグレードが失敗した場合は、アンダークラウドのアップグレードを再度実行する前に、mySQL
サービスを再起動する必要があります。mySQL
サービスの再起動に関する詳細は、Red Hat ナレッジベースソリューション Update from 16.2 to 17.1 failed on migrate existing introspection data in the undercloud を参照してください。
Red Hat OpenStack Platform 16.2 から 17.1 にアップグレードする必要がある時間は、環境内のノード数とともに増加します。アップグレードの完了にかかる時間を短縮するために、ノードを複数のロールに分割できます。詳細は、Red Hat ナレッジベースアーティクル How to split roles during upgrade from RHOSP 16.2 to RHOSP 17.1 を参照してください。
RHOSP 16.1.7 以降、DEFAULT
ボリュームタイプの削除が許可されます。ただし、DEFAULT
ボリュームタイプは cinder.conf
ファイルにハードコードされるため、Fast Forward Upgrade 時に存在する必要があります。DEFAULT
ボリュームタイプを削除した場合は、Red Hat ナレッジベースソリューションの Performing online database updates failed に記載されている回避策を実行した後に、RHOSP 16.2 から RHOSP 17.1 へのアップグレードを実行しないでください。
RHOSP 16.2 から 17.1 にアップグレードする場合、既知の問題により、システムのアップグレード中に GRUB に RHEL 8 エントリーではなく RHEL 7 エントリーが格納されます。その結果、ホストを再起動できなくなります。この問題は、RHOSP 13.0 以前を実行していた環境に影響します。
回避策: Red Hat ナレッジベースソリューション Openstack 16 to 17 FFU - During LEAPP upgrade UEFI systems do not boot due to invalid /boot/grub2/grub.cfg を参照してください。
Red Hat Enterprise Linux 8.4 から 9.2 にアップグレードする Leapp バージョンでは、すべてのパーティションに十分なディスク容量があるかどうかを検証するわけではありません。Red Hat OpenStack Platform システムのアップグレードを実施する前に、すべてのパーティションに少なくとも 3 GB のディスク容量があることを手動で確認する必要があります。これを実行しないと、ノードが再起動して緊急シェルに入る可能性があります。
1.5.8. バックアップおよび復元
Red Hat OpenStack Platform (RHOSP) 16.2 環境をアップグレードする前に、次のオプションのいずれかを使用して、アンダークラウドおよびオーバークラウドのコントロールプレーンをバックアップします。
- アップグレードを実施する前にノードをバックアップします。アップグレード前のノードのバックアップに関する詳細は、Red Hat OpenStack Platform 16.2 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 を参照してください。
- アンダークラウドのアップグレードの実行後、かつオーバークラウドのアップグレードの実行前に、アンダークラウドノードをバックアップします。アンダークラウドのバックアップに関する詳細は、Red Hat OpenStack Platform 17.1 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 の アンダークラウドノードのバックアップの作成 を参照してください。
- 使用中の環境に合ったサードパーティー製のバックアップおよび復元ツールを使用してください。認定済みのバックアップツールおよびリカバリーツールに関する詳細は、Red Hat Ecosystem Catalog を参照してください。
1.5.9. プロキシー設定
Red Hat OpenStack Platform 16.2 環境でプロキシーを使用する場合、/etc/environment
ファイル内のプロキシー設定は、オペレーティングシステムのアップグレードおよび Red Hat OpenStack Platform 17.1 のアップグレード後も存続します。
- Red Hat OpenStack Platform 16.2 のプロキシー設定に関する詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の プロキシーを使用してアンダークラウドを実行する際の考慮事項 を参照してください。
- Red Hat OpenStack Platform 17.1 のプロキシー設定に関する詳細は、director を使用した Red Hat OpenStack Platform のインストールおよび管理 の プロキシーを使用してアンダークラウドを実行する際の考慮事項 を参照してください。
1.5.10. コンピュートノードのアップグレード計画
コンピュートノードを Red Hat OpenStack Platform (RHOSP) 16.2 から RHOSP 17.1 にアップグレードした後、以下のオプションのいずれかを選択し、コンピュートホストオペレーティングシステムをアップグレードできます。
- コンピュートノードの一部を Red Hat Enterprise Linux (RHEL) 8.4 上に残し、残りを RHEL 9.2 にアップグレードします。これは Multi-RHEL 環境と呼ばれます。
- すべてのコンピュートノードを RHEL 9.2 にアップグレードし、環境のアップグレードを完了します。
- すべてのコンピュートノードを RHEL 8.4 上に保持します。RHEL 8.4 のライフサイクルが適用されます。
Multi-RHEL 環境の利点
vTPM やセキュアブートなど、RHOSP 17.1 でのみサポートされているハードウェア関連機能を利用するには、すべてのコンピュートノードを RHEL 9.2 にアップグレードする必要があります。ただし、コンピュートノードの一部またはすべてを RHEL 8.4 上に残すことが必要な場合があります。たとえば、アプリケーションを RHEL 8 用に認定した場合は、アップグレード全体をブロックすることなく、コンピュートノードを RHEL 8.4 上で実行し続けてアプリケーションをサポートできます。
コンピュートノードの一部を RHEL 9.2 にアップグレードするオプションを使用すると、アップグレードプロセスをより詳細に制御できるようになります。計画されたメンテナンス期間内で RHOSP 環境のアップグレードを優先し、オペレーティングシステムのアップグレードを別の時期に延期することができます。必要なダウンタイムが少なくなり、エンドユーザーへの影響が最小限に抑えられます。
RHOSP 17.1 から RHOSP 18.0 にアップグレードする場合は、すべてのホストを RHEL 9.2 にアップグレードする必要があります。延長ライフサイクルサポートフェーズを過ぎてもホスト上で RHEL 8.4 を実行し続ける場合は、TUS サブスクリプションを取得する必要があります。
Multi-RHEL 環境の制限事項
Multi-RHEL 環境には以下の制限が適用されます。
- RHEL 8 を実行しているコンピュートノードは、NVMe-over-TCP Cinder ボリュームを消費できません。
- RHOSP 16.2 と 17.1 では、collectd モニタリング用のソケットファイルに異なるパスを使用できません。
- ML2/OVN メカニズムドライバーと ML2/OVS メカニズムドライバーを混在させることはできません。たとえば、RHOSP 16.2 デプロイメントに ML2/OVN が含まれている場合、Multi-RHEL 環境では ML2/OVN を使用する必要があります。
- FIPS は Multi-RHEL 環境ではサポートされません。FIPS のデプロイメントは Day 1 操作です。FIPS は RHOSP 16.2 ではサポートされていません。その結果、RHOSP 16.2 から 17.1 にアップグレードすると、17.1 環境には FIPS が含まれません。
- Edge トポロジーは現在サポートされていません。
サポートされているハイパーコンバージドインフラストラクチャー環境内のすべての HCI ノードは、Red Hat OpenStack Platform コントローラーで使用されるバージョンと同じバージョンの Red Hat Enterprise Linux を使用する必要があります。同じハイパーコンバージドインフラストラクチャー環境内の HCI ノード上で複数の Red Hat Enterprise バージョンをハイブリッド状態で使用する場合は、サポート例外について Red Hat Customer Experience and Engagement チームにご相談ください。
Compute ノードのアップグレード
以下のいずれかのオプションを使用して、コンピュートノードをアップグレードします。
- コンピュートノードの Multi-RHEL アップグレードを実行するには、コンピュートノードの Multi-RHEL 環境へのアップグレード を参照してください。
- すべてのコンピュートノードを RHEL 9.2 にアップグレードするには、コンピュートノードの RHEL 9.2 へのアップグレード を参照してください。
- すべてのコンピュートノードを RHEL 8.4 上に維持する場合、追加の設定は必要ありません。
1.6. Repositories
このセクションでは、アンダークラウドおよびオーバークラウドのリポジトリーを説明します。特定の状況において、リポジトリーを有効にする必要がある場合は、このセクションを参照してください。
- Red Hat カスタマーポータルに登録する際にリポジトリーを有効にする。
- リポジトリーを有効にして Red Hat Satellite Server に同期させる。
- Red Hat Satellite Server に登録する際にリポジトリーを有効にする。
1.6.1. アンダークラウドのリポジトリー
Red Hat Enterprise Linux (RHEL) 9.2 で Red Hat OpenStack Platform (RHOSP) 17.1 を実行します。RHOSP 16.2 からアップグレードする場合、RHEL 8.4 コンピュートノードは Multi-RHEL 環境でもサポートされます。
リポジトリーを Red Hat Satellite と同期する場合は、特定バージョンの Red Hat Enterprise Linux リポジトリーを有効にすることができます。ただし、選択したバージョンに関係なく、リポジトリーは同じままです。たとえば、BaseOS リポジトリーの 9.2 バージョンを有効にすることができますが、リポジトリー名は、選択した特定のバージョンに関係なく rhel-9-for-x86_64-baseos-eus-rpms
のままになります。
ここで指定されたもの以外のリポジトリーはサポートされていません。別途推奨されない限り、以下の表に記載されている以外の製品またはリポジトリーを有効にしないでください。有効にすると、パッケージの依存関係の問題が発生する可能性があります。Extra Packages for Enterprise Linux (EPEL) を有効にしないでください。
コアリポジトリー
以下の表には、アンダークラウドをインストールするためのコアリポジトリーをまとめています。
名前 | リポジトリー | 要件の説明 |
---|---|---|
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Extended Update Support (EUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat Enterprise Linux 9 for x86_64 - High Availability (RPMs) Extended Update Support (EUS) |
| Red Hat Enterprise Linux の高可用性ツール。Controller ノードの高可用性に使用します。 |
Red Hat OpenStack Platform for RHEL 9 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー。Red Hat OpenStack Platform director のパッケージが含まれます。 |
Red Hat Fast Datapath for RHEL 9 (RPMS) |
| OpenStack Platform 用 Open vSwitch (OVS) パッケージを提供します。 |
Red Hat Enterprise Linux 8.4 for x86_64 - BaseOS (RPMs) Telecommunications Update Service (TUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 8.4 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat OpenStack Platform for RHEL 8 x86_64 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー |
1.6.2. オーバークラウドのリポジトリー
Red Hat Enterprise Linux (RHEL) 9.2 で Red Hat OpenStack Platform (RHOSP) 17.1 を実行します。RHOSP 16.2 からアップグレードする場合、RHEL 8.4 コンピュートノードは Multi-RHEL 環境でもサポートされます。
リポジトリーを Red Hat Satellite と同期する場合は、特定バージョンの Red Hat Enterprise Linux リポジトリーを有効にすることができます。ただし、選択したバージョンに関係なく、リポジトリーは同じままです。たとえば、BaseOS リポジトリーの 9.2 バージョンを有効にすることができますが、リポジトリー名は、選択した特定のバージョンに関係なく rhel-9-for-x86_64-baseos-eus-rpms
のままになります。
ここで指定されたもの以外のリポジトリーはサポートされていません。別途推奨されない限り、以下の表に記載されている以外の製品またはリポジトリーを有効にしないでください。有効にすると、パッケージの依存関係の問題が発生する可能性があります。Extra Packages for Enterprise Linux (EPEL) を有効にしないでください。
Controller ノード用リポジトリー
以下の表には、オーバークラウドの Controller ノード用コアリポジトリーをまとめています。
名前 | リポジトリー | 要件の説明 |
---|---|---|
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Extended Update Support (EUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat Enterprise Linux 9 for x86_64 - High Availability (RPMs) Extended Update Support (EUS) |
| Red Hat Enterprise Linux の高可用性ツール。 |
Red Hat OpenStack Platform for RHEL 9 x86_64 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー |
Red Hat Fast Datapath for RHEL 9 (RPMS) |
| OpenStack Platform 用 Open vSwitch (OVS) パッケージを提供します。 |
Red Hat Ceph Storage Tools 6 for RHEL 9 x86_64 (RPMs) |
| Red Hat Ceph Storage 6 for Red Hat Enterprise Linux 9 のツール |
Red Hat Enterprise Linux 8.4 for x86_64 - BaseOS (RPMs) Telecommunications Update Service (TUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 8.4 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat Enterprise Linux 8 for x86_64 - High Availability (RPMs) Telecommunications Update Service (TUS) |
| Red Hat Enterprise Linux の高可用性ツール。 |
Red Hat OpenStack Platform for RHEL 8 x86_64 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー |
Compute ノードおよび ComputeHCI ノードのリポジトリー
以下の表に、オーバークラウド内の Compute ノードおよび ComputeHCI ノードのコアリポジトリーを示します。
名前 | リポジトリー | 要件の説明 |
---|---|---|
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Extended Update Support (EUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat Enterprise Linux 9 for x86_64 - High Availability (RPMs) Extended Update Support (EUS) |
| Red Hat Enterprise Linux の高可用性ツール。 |
Red Hat OpenStack Platform for RHEL 9 x86_64 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー |
Red Hat Fast Datapath for RHEL 9 (RPMS) |
| OpenStack Platform 用 Open vSwitch (OVS) パッケージを提供します。 |
Red Hat Ceph Storage Tools 6 for RHEL 9 x86_64 (RPMs) |
| Red Hat Ceph Storage 6 for Red Hat Enterprise Linux 9 のツール |
Red Hat Enterprise Linux 8.4 for x86_64 - BaseOS (RPMs) Telecommunications Update Service (TUS) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 8.4 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat OpenStack Platform for RHEL 8 x86_64 (RPMs) |
| Red Hat OpenStack Platform のコアリポジトリー |
Ceph Storage ノード用リポジトリー
以下の表には、オーバークラウド用の Ceph Storage 関連のリポジトリーをまとめています。
名前 | リポジトリー | 要件の説明 |
---|---|---|
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) |
| x86_64 システム用ベースオペレーティングシステムのリポジトリー |
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) |
| Red Hat OpenStack Platform の依存関係が含まれます。 |
Red Hat OpenStack Platform Deployment Tools for RHEL 9 x86_64 (RPMs) |
|
director が Ceph Storage ノードを設定するのに役立つパッケージ。このリポジトリーは、スタンドアロンの Ceph Storage サブスクリプションに含まれています。OpenStack Platform と Ceph Storage サブスクリプションを組み合わせて使用する場合は、 |
Red Hat OpenStack Platform for RHEL 9 x86_64 (RPMs) |
|
director が Ceph Storage ノードを設定するのに役立つパッケージ。このリポジトリーは、Red Hat OpenStack Platform と Red Hat Ceph Storage を組み合わせたサブスクリプションに含まれています。スタンドアロンの Red Hat Ceph Storage サブスクリプションを使用する場合は、 |
Red Hat Ceph Storage Tools 6 for RHEL 9 x86_64 (RPMs) |
| Ceph Storage クラスターと通信するためのノード用のツールを提供します。 |
Red Hat Fast Datapath for RHEL 9 (RPMS) |
| OpenStack Platform 用 Open vSwitch (OVS) パッケージを提供します。Ceph Storage ノードで OVS を使用している場合は、このリポジトリーをネットワークインターフェイス設定 (NIC) テンプレートに追加します。 |
1.6.3. Red Hat Satellite Server 6 に関する考慮事項
Red Hat Satellite Server 6 を使用して Red Hat OpenStack Platform (RHOSP) 環境の RPM とコンテナーイメージをホストし、RHOSP 17.1 のアップグレード中に Satellite 6 を使用してコンテンツを配信する予定の場合は、以下の条件を満たす必要があります。
- Satellite Server は、RHOSP 16.2 RPM とコンテナーイメージをホストしている。
RHOSP 16.2 環境内のすべてのノードを Satellite Server に登録している。
たとえば、RHOSP 16.2 コンテンツビューにリンクされたアクティベーションキーを使用して、ノードを RHOSP 16.2 コンテンツに登録した場合など。
アンダークラウドがインターネットにアクセスできない分離された環境を使用している場合は、既知の問題により、Red Hat OpenStack Platform 16.2 から 17.1 へのアップグレードが失敗します。回避策については、アップグレードを妨げる可能性がある既知の問題 の BZ2259891 の既知の問題を参照してください。
RHOSP アップグレードの推奨事項
- RHOSP 16.2 アンダークラウドとオーバークラウドの両方に必要な RPM リポジトリーを有効にして同期します。これには、必要な Red Hat Enterprise Linux (RHEL) 9.2 リポジトリーが含まれます。
- RHOSP 17.1 のコンテナーイメージをホストするために、Satellite Server 上にカスタム製品を作成します。
RHOSP 17.1 アップグレード用のコンテンツビューを作成してプロモートし、コンテンツビューに次のコンテンツを含めます。
RHEL 8 のリポジトリー:
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-appstream-tus-rpms
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
rhel-8-for-x86_64-baseos-tus-rpms
Red Hat Enterprise Linux 8 for x86_64 - High Availability (RPMs)
rhel-8-for-x86_64-highavailability-tus-rpms
Red Hat Fast Datapath for RHEL 8 (RPMs)
fast-datapath-for-rhel-8-x86_64-rpms
RHEL 9 のリポジトリー:
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-appstream-eus-rpms
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
rhel-9-for-x86_64-baseos-eus-rpms
- RHEL 9.2 リポジトリーを含む、すべてのアンダークラウドおよびオーバークラウド RPM リポジトリー。RHEL リポジトリーを有効にする際の問題を回避するには、RHEL リポジトリーの正しいバージョン (9.2) が含まれていることを確認してください。
- RHOSP 17.1 コンテナーイメージ。
- アクティベーションキーを、RHOSP 17.1 アップグレード用に作成した RHOSP 17.1 コンテンツビューに関連付けます。
-
どのノードにも
katello-host-tools-fact-plugin
パッケージがインストールされていないことを確認します。Leapp のアップグレードでは、このパッケージはアップグレードされません。このパッケージを RHEL 9.2 システム上に残すと、subscription-manager
がエラーを報告します。 RHOSP 17.1 コンテナーイメージをホストするように Satellite Server を設定できます。RHOSP 16.2 から 17.1 にアップグレードするには、次のコンテナーイメージが必要です。
rhosp-rhel8
namespace でホストされるコンテナーイメージ:-
rhosp-rhel8/openstack-collectd
-
rhosp-rhel8/openstack-nova-libvirt
-
-
rhosp-rhel9
namespace でホストされるコンテナーイメージ。rhosp-rhel9
namespace のコンテナーイメージの設定については、director を使用した Red Hat OpenStack Platform のインストールと管理 の コンテナーイメージ管理用 Satellite サーバーの準備 を参照してください。
Red Hat Ceph Storage のサブスクリプションを使用し、Red Hat Ceph Storage ノード用に
overcloud-minimal
イメージを使用するように director を設定している場合、Satellite Server でコンテンツビューを作成し、以下の RHEL 9.2 リポジトリーを追加する必要があります。Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-appstream-eus-rpms
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
rhel-9-for-x86_64-baseos-eus-rpms
詳細は、Red Hat Satellite コンテンツの管理 ガイドの コンテンツのインポート と コンテンツビューの管理 を参照してください。
第2章 アンダークラウドのアップグレード
アンダークラウドを Red Hat OpenStack Platform 17.1 にアップグレードします。アンダークラウドのアップグレードでは、実行中の Red Hat OpenStack Platform 16.2 アンダークラウドを使用します。アップグレードプロセスでは、ノード上の残りのサービスをアップグレードしながら、heat スタックをファイルにエクスポートし、heat を一時的な heat に変換します。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
2.1. アンダークラウド用リポジトリーの有効化
アンダークラウドに必要なリポジトリーを有効にし、システムパッケージを最新バージョンに更新します。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 デフォルトのリポジトリーをすべて無効にしてから、必要な Red Hat Enterprise Linux (RHEL) リポジトリーを有効にします。
[stack@director ~]$ sudo subscription-manager repos --disable=* [stack@director ~]$ sudo subscription-manager repos \ --enable=rhel-8-for-x86_64-baseos-tus-rpms \ --enable=rhel-8-for-x86_64-appstream-tus-rpms \ --enable=rhel-8-for-x86_64-highavailability-tus-rpms \ --enable=openstack-17.1-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms
すべてのノードで
container-tools
モジュールのバージョンを RHEL 8 に切り替えます。[stack@director ~]$ sudo dnf -y module switch-to container-tools:rhel8
director のインストールと設定を行うためのコマンドラインツールをインストールします。
[stack@director ~]$ sudo dnf install -y python3-tripleoclient
2.2. アップグレード前の RHOSP の検証
Red Hat OpenStack Platform (RHOSP) 17.1 にアップグレードする前に、tripleo-validations
Playbook を使用してアンダークラウドとオーバークラウドを検証してください。RHOSP 16.2 では、OpenStack Workflow Service (mistral) を通じてこれらの Playbook を実行します。
前提条件
オーバークラウドノードに ping できることを確認します。
$ source ~/stackrc $ tripleo-ansible-inventory --static-yaml-inventory ~/inventory.yaml --stack <stack> --ansible_ssh_user heat-admin $ ansible -i ~/inventory.yaml all -m ping
- <stack> をスタックの名前に置き換えます。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
/var/lib/mistral/.ssh
ディレクトリーの権限を調整します。$ sudo chmod +x /var/lib/mistral/.ssh/
検証用にパッケージをインストールします。
$ sudo dnf -y update openstack-tripleo-validations python3-validations-libs validations-common
mistral からインベントリーをコピーします。
$ sudo chown stack:stack /var/lib/mistral/.ssh/tripleo-admin-rsa $ sudo cat /var/lib/mistral/<stack>/tripleo-ansible-inventory.yaml > inventory.yaml
検証を実行します。
$ validation run -i inventory.yaml --group pre-upgrade
スクリプトの出力を確認し、成功した検証と失敗した検証を確認します。
=== Running validation: "check-ftype" === Success! The validation passed for all hosts: * undercloud
2.3. コンテナーイメージの準備
アンダークラウドのインストールには、コンテナーイメージの取得先およびその保存方法を定義するための環境ファイルが必要です。コンテナーイメージの準備に使用できる環境ファイルを生成およびカスタマイズします。
アンダークラウド用に特定のコンテナーイメージバージョンを設定する必要がある場合は、イメージを特定のバージョンに固定する必要があります。詳細は、アンダークラウド用コンテナーイメージのピニング を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 オプション: 16.2
containers-prepare-parameter.yaml
ファイルをバックアップします。$ cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.orig
デフォルトのコンテナーイメージ準備ファイルを生成します。
$ openstack tripleo container image prepare default \ --local-push-destination \ --output-env-file containers-prepare-parameter.yaml
上記のコマンドでは、以下の追加オプションを使用しています。
-
--local-push-destination
: コンテナーイメージの保管場所として、アンダークラウド上のレジストリーを設定します。つまり、director は必要なイメージを Red Hat Container Catalog からプルし、それをアンダークラウド上のレジストリーにプッシュします。director はこのレジストリーをコンテナーイメージのソースとして使用します。Red Hat Container Catalog から直接プルする場合には、このオプションを省略します。 --output-env-file
: 環境ファイルの名前です。このファイルには、コンテナーイメージを準備するためのパラメーターが含まれます。ここでは、ファイル名はcontainers-prepare-parameter.yaml
です。注記アンダークラウドとオーバークラウド両方のコンテナーイメージのソースを定義するのに、同じ
containers-prepare-parameter.yaml
ファイルを使用することができます。
-
-
要件に合わせて
containers-prepare-parameter.yaml
を変更します。コンテナーイメージのパラメーターの詳細は、コンテナーイメージ準備のパラメーター を参照してください。 デプロイメントに Red Hat Ceph Storage が含まれている場合は、デプロイメントで使用する Red Hat Ceph Storage のバージョンに応じて
containers-prepare-parameter.yaml
ファイル内の Red Hat Ceph Storage コンテナーイメージパラメーターを更新します。ceph_namespace: registry.redhat.io/rhceph ceph_image: <ceph_image_file> ceph_tag: latest ceph_grafana_image: <grafana_image_file> ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest
<ceph_image_file>
は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
director でデプロイされた Red Hat Ceph Storage を使用する場合は、<
ceph_image_file
> をrhceph-5-rhel8
に置き換えます。 -
外部の Red Hat Ceph Storage を使用する場合は、<
ceph_image_file
> を、Red Hat Ceph Storage 環境が使用するのと同じ Ceph イメージに置き換えます。たとえば、Red Hat Ceph Storage 6 イメージの場合はrhceph-6-rhel9
を使用します。
-
director でデプロイされた Red Hat Ceph Storage を使用する場合は、<
<grafana_image_file>
をデプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
director でデプロイされた Red Hat Ceph Storage を使用する場合は、
rhceph-5-dashboard-rhel8
に置き換えてください。
-
外部の Red Hat Ceph Storage を使用する場合は、Red Hat Ceph Storage 環境が使用する Ceph イメージと同じ Ceph イメージに置き換え
ます。たとえば、Red Hat Ceph Storage 6 イメージの場合は、
rhceph-6-dashboard-rhel9
を使用します。
-
director でデプロイされた Red Hat Ceph Storage を使用する場合は、
2.4. コンテナーイメージタグ付けのガイドライン
Red Hat コンテナーレジストリーでは、すべての Red Hat OpenStack Platform コンテナーイメージをタグ付けするのに、特定のバージョン形式が使用されます。この形式は、version-release
のように各コンテナーのラベルのメタデータに従います。
- version
- Red Hat OpenStack Platform のメジャーおよびマイナーバージョンに対応します。これらのバージョンは、1 つまたは複数のリリースが含まれるストリームとして機能します。
- release
- バージョンストリーム内の、特定コンテナーイメージバージョンのリリースに対応します。
たとえば、Red Hat OpenStack Platform の最新バージョンが 17.1.0 で、コンテナーイメージのリリースが 5.161
の場合、コンテナーイメージのタグは 17.1.0-5.161 となります。
Red Hat コンテナーレジストリーでは、コンテナーイメージバージョンの最新リリースとリンクするメジャーおよびマイナー version
タグのセットも使用されます。たとえば、17.1 と 17.1.0 の両方が、17.1.0 コンテナーストリームの最新 release
とリンクします。17.1 の新規マイナーリリースが公開されると、17.1 タグは新規マイナーリリースストリームの最新 release
とリンクします。一方、17.1.0 タグは、引き続き 17.1.0 ストリーム内の最新の release
とリンクします。
ContainerImagePrepare
パラメーターには 2 つのサブパラメーターが含まれ、これを使用してダウンロードするコンテナーイメージを定義することができます。これらのサブパラメーターは、set
ディクショナリー内の tag
パラメーターおよび tag_from_label
パラメーターです。以下のガイドラインを使用して、tag
または tag_from_label
のどちらを使用するかを判断してください。
tag
のデフォルト値は、お使いの OpenStack Platform のメジャーバージョンです。本バージョンでは、17.1 です。これは常に最新のマイナーバージョンおよびリリースに対応します。parameter_defaults: ContainerImagePrepare: - set: ... tag: 17.1 ...
OpenStack Platform コンテナーイメージの特定マイナーバージョンに変更するには、タグをマイナーバージョンに設定します。たとえば、17.1.2 に変更するには、
tag
を 17.1.2 に設定します。parameter_defaults: ContainerImagePrepare: - set: ... tag: 17.1.2 ...
-
tag
を設定すると、インストールおよび更新時に、director は必ずtag
で設定したバージョンの最新のコンテナーイメージrelease
をダウンロードします。 tag
を設定しないと、director は最新のメジャーバージョンと共にtag_from_label
の値を使用します。parameter_defaults: ContainerImagePrepare: - set: ... # tag: 17.1 ... tag_from_label: '{version}-{release}'
tag_from_label
パラメーターは、Red Hat コンテナーレジストリーから検査する最新コンテナーイメージリリースのラベルメタデータからタグを生成します。たとえば、特定のコンテナーのラベルは、以下のversion
およびrelease
メタデータを使用します。"Labels": { "release": "5.161", "version": "17.1.0", ... }
-
tag_from_label
のデフォルト値は{version}-{release}
です。これは、各コンテナーイメージのバージョンおよびリリースのメタデータラベルに対応します。たとえば、コンテナーイメージのversion
に 17.1.0 が、release
に 5.161 が、それぞれ設定されている場合、コンテナーイメージのタグは 17.1.0-5.161 となります。 -
tag
パラメーターは、常にtag_from_label
パラメーターよりも優先されます。tag_from_label
を使用するには、コンテナー準備の設定でtag
パラメーターを省略します。 -
tag
およびtag_from_label
の主な相違点は、次のとおりです。director がtag
を使用してイメージをプルする場合は、Red Hat コンテナーレジストリーがバージョンストリーム内の最新イメージリリースとリンクするメジャーまたはマイナーバージョンのタグだけに基づきます。一方、tag_from_label
を使用する場合は、director がタグを生成して対応するイメージをプルできるように、各コンテナーイメージのメタデータの検査を行います。
2.5. プライベートレジストリーからのコンテナーイメージの取得
registry.redhat.io
レジストリーにアクセスしてイメージをプルするには、認証が必要です。registry.redhat.io
およびその他のプライベートレジストリーで認証するには、containers-prepare-parameter.yaml
ファイルに ContainerImageRegistryCredentials
および ContainerImageRegistryLogin
パラメーターを含めます。
ContainerImageRegistryCredentials
一部のコンテナーイメージレジストリーでは、イメージにアクセスするのに認証が必要です。そのような場合には、containers-prepare-parameter.yaml
環境ファイルの ContainerImageRegistryCredentials
パラメーターを使用します。ContainerImageRegistryCredentials
パラメーターは、プライベートレジストリーの URL に基づくキーのセットを使用します。それぞれのプライベートレジストリーの URL は、独自のキーと値のペアを使用して、ユーザー名 (キー) およびパスワード (値) を定義します。これにより、複数のプライベートレジストリーに対して認証情報を指定することができます。
parameter_defaults: ContainerImagePrepare: - push_destination: true set: namespace: registry.redhat.io/... ... ContainerImageRegistryCredentials: registry.redhat.io: my_username: my_password
上記の例の my_username
および my_password
を、実際の認証情報に置き換えてください。Red Hat では、個人のユーザー認証情報を使用する代わりに、レジストリーサービスアカウントを作成し、それらの認証情報を使用して registry.redhat.io
コンテンツにアクセスすることを推奨します。
複数のレジストリーの認証情報を指定するには、ContainerImageRegistryCredentials
でレジストリーごとに複数のキー/ペアの値を設定します。
parameter_defaults: ContainerImagePrepare: - push_destination: true set: namespace: registry.redhat.io/... ... - push_destination: true set: namespace: registry.internalsite.com/... ... ... ContainerImageRegistryCredentials: registry.redhat.io: myuser: 'p@55w0rd!' registry.internalsite.com: myuser2: '0th3rp@55w0rd!' '192.0.2.1:8787': myuser3: '@n0th3rp@55w0rd!'
デフォルトの ContainerImagePrepare
パラメーターは、認証が必要な registry.redhat.io
からコンテナーイメージをプルします。
詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
ContainerImageRegistryLogin
ContainerImageRegistryLogin
パラメーターを使用して、コンテナーイメージを取得するために、オーバークラウドノードシステムがリモートレジストリーにログインする必要があるかどうかを制御します。このような状況は、アンダークラウドを使用してイメージをホストする代わりに、オーバークラウドノードがイメージを直接プルする場合に発生します。
特定の設定について、push_destination
が false に設定されている、または使用されていない場合は、ContainerImageRegistryLogin
を true
に設定する必要があります。
parameter_defaults: ContainerImagePrepare: - push_destination: false set: namespace: registry.redhat.io/... ... ... ContainerImageRegistryCredentials: registry.redhat.io: myuser: 'p@55w0rd!' ContainerImageRegistryLogin: true
ただし、オーバークラウドノードに ContainerImageRegistryCredentials
で定義されたレジストリーホストへのネットワーク接続がなく、ContainerImageRegistryLogin
を true
に設定すると、ログインを試みる際にデプロイメントが失敗する可能性があります。オーバークラウドノードに ContainerImageRegistryCredentials
で定義されたレジストリーホストへのネットワーク接続がない場合、push_destination
を true
に、ContainerImageRegistryLogin
を false
に設定して、オーバークラウドノードがアンダークラウドからイメージをプルできるようにします。
parameter_defaults: ContainerImagePrepare: - push_destination: true set: namespace: registry.redhat.io/... ... ... ContainerImageRegistryCredentials: registry.redhat.io: myuser: 'p@55w0rd!' ContainerImageRegistryLogin: false
2.6. undercloud.conf ファイルの更新
Red Hat OpenStack Platform 16.2 環境の元の undercloud.conf
ファイルを引き続き使用できますが、Red Hat OpenStack Platform 17.1 との互換性を維持するにはファイルを変更する必要があります。undercloud.conf
ファイルを設定するためのパラメーターの詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の アンダークラウド設定パラメーター を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 skip_rhel_release.yaml
というファイルを作成し、SkipRhelEnforcement
パラメーターをtrue
に設定します。parameter_defaults: SkipRhelEnforcement: true
undercloud.conf
ファイルを開き、ファイルのDEFAULT
セクションに、以下のパラメーターを追加します。container_images_file = /home/stack/containers-prepare-parameter.yaml custom_env_files = /home/stack/skip_rhel_release.yaml
追加のカスタム環境ファイルを
custom_env_files
パラメーターに追加します。custom_env_files
パラメーターは、アップグレードに必要なskip_rhel_release.yaml
ファイルの場所を定義します。container_images_file
パラメーターは、director が正しい場所からアンダークラウドのコンテナーイメージをプルできるように、containers-prepare-parameter.yaml
環境ファイルの場所を定義します。注記元の
undercloud.conf
ファイルの/home/stack/custom-kerberos-params.yaml
ファイルにCertmongerKerberosRealm
パラメーターが含まれている場合は、CertmongerKerberosRealm
パラメーターをHAProxyCertificatePrincipal
パラメーターに置き換える必要があります。CertmongerKerberosRealm
パラメーターが原因で、アンダークラウドのアップグレードに失敗します。
- ファイル内の他のすべてのパラメーターが変更されていないか確認します。
- ファイルを保存します。
2.7. ネットワーク設定ファイルの変換
ネットワーク設定テンプレートに以下の機能が含まれている場合は、アンダークラウドをアップグレードする前に、NIC テンプレートを Jinja2 Ansible 形式に手動で変換する必要があります。次の関数は自動変換ではサポートされていません。
-
'get_file'
-
'get_resource'
-
'digest'
-
'repeat'
-
'resource_facade'
-
'str_replace'
-
'str_replace_strict'
-
'str_split'
-
'map_merge'
-
'map_replace'
-
'yaql'
-
'equals'
-
'if'
-
'not'
-
'and'
-
'or'
-
'filter'
-
'make_url'
-
'contains'
NIC テンプレートの手動変換の詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の NIC テンプレートの Jinja2 Ansible 形式への手動変換 を参照してください。
2.8. director のアップグレードの実施
アンダークラウド上の director をアップグレードします。
前提条件
tripleo_mysql.service
サービスが実行していることを確認します。$ systemctl status tripleo_mysql
サービスが実行されていない場合は、サービスを開始します。
$ sudo systemctl start tripleo_mysql
- ネットワーク設定テンプレートに特定の機能が含まれている場合は、NIC テンプレートを必ず手動で Jinja2 Ansible 形式に変換してください。該当する機能のリストと手動手順へのリンクについては、ネットワーク設定ファイルの変換 を参照してください。
手順
director 設定スクリプトを起動して director をアップグレードします。
$ openstack undercloud upgrade
director 設定スクリプトは、director パッケージをアップグレードし、
undercloud.conf
ファイルの設定と一致するように director サービスを設定します。このスクリプトは、完了までに数分かかります。注記director の設定スクリプトでは、次の設定に進む前に確認が求められます。この確認を省略するには、
-y
オプションを使用します。$ openstack undercloud upgrade -y
第3章 外部 Ceph デプロイメントと組み合わせたアップグレード
Red Hat OpenStack Platform (RHOSP) デプロイメントが外部にデプロイされた Red Hat Ceph Storage クラスターを使用している場合は、RHOSP のアップグレードを続行する前に Red Hat Ceph Storage クラスターをアップグレードする必要がある場合があります。
Red Hat Ceph Storage クラスターが現在、リリース 4 である場合は、次のタスクを実行します。
- Red Hat Ceph Storage クラスターをリリース 4 からリリース 5 にアップグレードします。
- RHOSP デプロイメントを Release 16.2 から Release 17.1 にアップグレードします。
- Red Hat Ceph Storage クラスターをリリース 5 からリリース 6 にアップグレードします。
Red Hat Ceph Storage クラスターが現在、リリース 5 である場合は、次のタスクを実行します。
- RHOSP デプロイメントを Release 16.2 から Release 17.1 にアップグレードします。
- Red Hat Ceph Storage クラスターをリリース 5 からリリース 6 にアップグレードします。
Red Hat Ceph Storage クラスターのアップグレードの詳細は、次のガイドを参照してください。
Red Hat Ceph Storage クラスターをアップグレードした後、ceph-ansible ceph-client
ロールから tripleo-ansible tripleo_ceph_client
ロールに移行する必要があります。
3.1. RHOSP 17.1 の Ceph クライアント設定の更新
Red Hat OpenStack Platform (RHOSP) 17.1 より前は、外部 Red Hat Ceph Storage 環境の場合、OpenStack Ceph クライアントは ceph-ansible ceph-client
ロールによって設定されていました。RHOSP 17.1 では、OpenStack Ceph クライアントは tripleo-ansible Tripleo_ceph_client
ロールによって設定されます。オーバークラウドの導入と準備の実行 でオーバークラウドのアップグレードを実行する前に、OpenStack サービスの設定に使用される tripleo-heat-templates 環境ファイルを外部 Ceph クラスターに置き換える必要があります。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
次のコマンドに
environment/ceph-ansible/ceph-ansible-external.yaml
ファイルを含めた場合は、そのファイルをenvironment/external-ceph.yaml
ファイルに置き換える必要があります。-
openstack overcloud upgrade prepare
openstack overcloud deploy
たとえば、以下のように指定したとします。
$ openstack overcloud deploy ... -e environments/ceph-ansible/ceph-ansible-external.yaml ...
以下に置き換えます。
$ openstack overcloud deploy ... -e environments/external-ceph.yaml ...
-
ceph_params.yaml
というファイルを作成し、次の内容を含めます。parameter_defaults: CephClusterFSID: <fsid> CephClientKey: <key> CephExternalMonHost: <mon ip addresses> CephSpecFqdn: <true/false> CephConfigPath: "/etc/ceph" DeployedCeph: false GrafanaPlugins: []
-
<fsid>
は、Red Hat Ceph Storage クラスターの UUID に置き換えます。 -
<key>
は、Ceph クライアントキーに置き換えます。 -
<mon ip address>
は、Ceph Mon Host IP のリストに置き換えます。 <true/false>
は、環境に応じて適切な値に置き換えます。注記Red Hat Ceph Storage デプロイメントに短縮名が含まれている場合は、
CephSpecFqdn
パラメーターを false に設定する必要があります。true に設定すると、短縮名とドメイン名の両方を使用してインベントリーが生成されるため、Red Hat Ceph Storage のアップグレードが失敗します。
-
オーバークラウドのデプロイコマンドに
ceph_params.yaml
ファイルを含めます。$ openstack overcloud deploy \ ... -e ~/environments/ceph_params.yaml \
重要RHOSP のアップグレード完了後に
ceph_params.yaml
ファイルを削除しないでください。このファイルは外部 Red Hat Ceph Storage 環境に存在する必要があります。さらに、openstack overcloud deploy
を実行するときは、-e ceph_params.yaml
を指定するなどして、常にceph_params.yaml
ファイルを含める必要があります。
次のステップ
オーバークラウドの導入と準備の手順を実行するときに作成するオーバークラウドのアップグレード準備スクリプトに ceph_params.yaml
ファイルを含めます。詳細は、オーバークラウドの導入と準備の実行 を参照してください。
第4章 オーバークラウドのアップグレードの準備
オーバークラウドのアップグレードに向けた準備を行うには、いくつかの初期手順を完了する必要があります。
4.1. オーバークラウドサービスのダウンタイムの準備
オーバークラウドのアップグレードプロセスでは、主要なポイントでメインのコントロールプレーンサービスを無効します。これらの主要なポイントに達すると、オーバークラウドサービスを使用して新規リソースを作成することはできません。オーバークラウドで実行されているワークロードは、アップグレードプロセス中もアクティブなままであるため、インスタンスはコントロールプレーンのアップグレード中も引き続き実行されます。Compute ノードのアップグレード中に、これらのワークロードは、すでにアップグレードされている Compute ノードにライブマイグレーションできます。
アップグレード中にはユーザーがオーバークラウドのサービスにアクセスできないように、メンテナンスの時間帯を計画することが重要となります。
オーバークラウドのアップグレードによる影響を受ける項目
- OpenStack Platform サービス
オーバークラウドのアップグレードによる影響を受けない項目
- アップグレード中に実行するインスタンス
- Ceph Storage OSD (インスタンス向けのバックエンドストレージ)
- Linux ネットワーク
- Open vSwitch ネットワーク
- アンダークラウド
4.2. オーバークラウドでのフェンシングの無効化
オーバークラウドをアップグレードする前に、フェンシングが無効になっていることを確認します。
オーバークラウドをアップグレードする場合、高可用性機能を維持するために、各コントローラーノードを個別にアップグレードします。フェンシングが環境にデプロイされると、オーバークラウドは特定ノードが無効であることを検出し、フェンシング操作を試みる場合があります。これにより、意図しない結果が生じる可能性があります。
オーバークラウドでフェンシングを有効にしている場合には、意図しない結果を防ぐために、アップグレード期間中フェンシングを一時的に無効にする必要があります。
Red Hat OpenStack Platform 環境のアップグレードが完了したら、オーバークラウドでフェンシングを再度有効にする必要があります。フェンシングの再有効化に関する詳細は、オーバークラウドでのフェンシングの再有効化 を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
各コントローラーノードにログインし、Pacemaker コマンドを実行してフェンシングを無効にします。
$ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false"
-
<controller_ip>
は、コントローラーノードの IP アドレスに置き換えます。コントローラーノードの IP アドレスは、/etc/hosts
または/var/lib/mistral
で確認できます。
-
-
fencing.yaml
環境ファイルで、EnableFencing
パラメーターをfalse
に設定し、アップグレードプロセス中にフェンシングが無効のままとなるようにします。
4.3. アンダークラウドノードデータベースのバックアップ
openstack undercloud backup --db-only
コマンドを使用して、アンダークラウドノード上で実行されるスタンドアロンデータベースバックアップを作成できます。データベースが破損した場合には、そのバックアップを使用してデータベースの状態を回復することもできます。アンダークラウドデータベースのバックアップに関する詳細は、Red Hat OpenStack Platform 17.1 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 の アンダークラウドノードのスタンドアロンデータベースバックアップの作成 を参照してください。
4.4. カスタム roles_data
ファイルのコンポーザブルサービスの更新
このセクションでは、新しいコンポーザブルサービスおよび非推奨のコンポーザブルサービスを説明します。
全ノード
すべてのノードで、以下のサービスが非推奨になっています。すべてのロールからこれらのサービスを削除します。
サービス | 理由 |
---|---|
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
|
|
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| Octavia を優先し、OpenStack Networking (neutron) Load Balancing as a Service は非推奨になったため。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| このサービスは削除されています。 |
|
|
| OpenDaylight はサポートされなくなったため。 |
| このサービスは非推奨となりました。 |
| メトリクスおよびモニタリングには Service Telemetry Framework (STF) が優先されるため、OpenStack Telemetry サービスは非推奨になりました。従来のテレメトリーサービスは、STF への移行を促進するために RHOSP 17.1 でのみ利用可能で、RHOSP の今後のバージョンでは削除される予定です。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| Skydive はサポートされなくなったため。 |
| Tacker はサポートされなくなったため。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
| このサービスは非推奨となりました。 |
コントローラーノード
コントローラーノードの新規サービスは以下のとおりです。Controller ロールにこれらのサービスを追加します。
サービス | 理由 |
---|---|
| イメージサービス (glance) API の内部インスタンスのサービス。位置データを管理者とそれを必要とするサービス (Block Storage サービス (cinder) やコンピュートサービス (nova) など) に提供します。 |
Compute nodes
デフォルトでは、17.1 のコンピュートノードは OS::TripleO::Services::NovaLibvirt
サービスを実行します。ただし、OS::TripleO::Services::NovaLibvirt
サービスを実行しているコンピュートノードで RHOSP アップグレードを実行すると、仮想マシンインスタンスはシャットオフされた状態として表示されます。この問題を回避するには、RHEL 8.4 上のすべてのコンピュートノードで OS::TripleO::Services::NovaLibvirtLegacy
サービスを実行し、コンテナーイメージを UBI-8 に基づいて作成する必要があります。
RHOSP のアップグレード後、コンピュートノードを RHEL 9.2 にアップグレードする場合、コンピュートノードは OS::TripleO::Services::NovaLibvirt
サービスを実行し、コンテナーイメージは UBI-9 に基づいている必要があります。そうしないと、仮想マシンインスタンスがシャットオフされているように表示されます。
コンピュートノード上のオペレーティングシステムのアップグレードに関する詳細は RHEL 9.2 への全コンピュートノードのアップグレード および コンピュートノードの Multi-RHEL 環境へのアップグレード を参照してください。
4.5. カスタムの Puppet パラメーターの確認
Puppet パラメーターのカスタマイズに ExtraConfig
インターフェイスを使用する場合には、アップグレード中に、Puppet が重複した宣言のエラーを報告する可能性があります。これは、Puppet モジュール自体によって提供されるインターフェイスの変更が原因です。
この手順では、環境ファイル内のカスタムの ExtraConfig
hieradata パラメーターを確認する方法を説明します。
環境で LDAP バックエンドを使用している場合は、オーバークラウドのアップグレードが失敗しないように、keystone_domain_specific_ldap_backend.yaml
環境ファイルから以下の非推奨のパラメーターを削除します。
-
user_allow_create
-
user_allow_update
-
user_allow_delete
-
group_allow_create
-
group_allow_update
-
group_allow_delete
これらのパラメーターの削除に関する詳細は、Red Hat ナレッジベースソリューション Overcloud upgrade to RHOSP 17.1 failed due to Keystone error when deprecated ldap related options are present in templates を参照してください。
手順
環境ファイルを選択して、
ExtraConfig
パラメーターが設定されているかどうかを確認します。$ grep ExtraConfig ~/templates/custom-config.yaml
-
このコマンドの結果に、選択したファイル内のいずれかのロールの
ExtraConfig
パラメーター (例:ControllerExtraConfig
) が表示される場合には、そのファイルの完全なパラメーター構造を確認してください。 SECTION/parameter
構文でvalue
が続くいずれかの Puppet hieradata がパラメーターに含まれている場合には、実際の Puppet クラスのパラメーターに置き換えられている可能性があります。以下に例を示します。parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
director の Puppet モジュールを確認して、パラメーターが Puppet クラス内に存在しているかどうかを確認します。以下に例を示します。
$ grep dnsmasq_local_resolv
その場合には、新規インターフェイスに変更します。
構文の変更の実例を以下に示します。
例 1:
parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
変更後
parameter_defaults: ExtraConfig: neutron::agents::dhcp::dnsmasq_local_resolv: true
例 2:
parameter_defaults: ExtraConfig: ceilometer::config::ceilometer_config: 'oslo_messaging_rabbit/rabbit_qos_prefetch_count': value: '32'
変更後
parameter_defaults: ExtraConfig: oslo::messaging::rabbit::rabbit_qos_prefetch_count: '32'
4.6. アップグレード前の最終確認
アップグレードを開始する前に、すべての準備手順の最終確認を行います。
4.6.1. アップグレードコマンドの概要
アップグレードプロセスには、プロセスの特定の段階で実行するさまざまなコマンドが含まれます。
このセクションには、各コマンドに関する情報のみが含まれています。これらのコマンドは特定の順序で実行し、オーバークラウドに固有のオプションを指定する必要があります。適切なステップでこれらのコマンドを実行するよう指示されるまで待ちます。
4.6.1.1. openstack overcloud upgrade prepare
このコマンドにより、オーバークラウドのアップグレードの初期準備の手順が実行されます。これには、アンダークラウド上の現在のオーバークラウドプランを新しい OpenStack Platform 17.1 オーバークラウドプランおよび更新された環境ファイルに置き換えることが含まれます。このコマンドは、openstack overcloud deploy
コマンドと同じように機能し、多くの同一オプションが使用されます。
openstack overcloud upgrade prepare
コマンドを実行する前に、オーバークラウドの導入を実行する必要があります。オーバークラウドの導入の詳細は、オーバークラウドの導入と準備の実行 を参照してください。
4.6.1.2. openstack overcloud upgrade run
このコマンドにより、アップグレードプロセスが実施されます。director は、新しい OpenStack Platform 17.1 オーバークラウドプランに基づいて Ansible Playbook のセットを作成し、オーバークラウド全体で Fast Forward タスクを実行します。これには、16.2 から 17.1 までの各 OpenStack Platform バージョンを通じてアップグレードプロセスを実行することが含まれます。
標準のアップグレードプロセスに加えて、このコマンドによりオーバークラウドノード上のオペレーティングシステムの Leapp アップグレードを実施することができます。--tags
オプションを使用して、これらのタスクを実行します。
Leapp のアップグレードタスクタグ
system_upgrade
-
system_upgrade_prepare
、system_upgrade_run
、およびsystem_upgrade_reboot
のタスクを組み合わせるタスク system_upgrade_prepare
- Leapp を使用したオペレーティングシステムのアップグレードに向けた準備を行うタスク
system_upgrade_run
- Leapp を実行し、オペレーティングシステムをアップグレードするタスク
system_upgrade_reboot
- システムをリブートし、オペレーティングシステムのアップグレードを完了するタスク
4.6.1.3. openstack overcloud external-upgrade run
このコマンドにより、標準のアップグレードプロセス以外のアップグレードタスクが実行されます。director は新しい OpenStack Platform 17.1 オーバークラウドプランに基づいて Ansible Playbook のセットを作成するので、--tags
オプションを使用して特定のタスクを実行します。
コンテナー管理の外部タスクタグ
container_image_prepare
- アンダークラウドレジストリーにコンテナーイメージをプルし、オーバークラウドが使用するようにイメージを準備するタスク
4.6.2. アップグレードのパラメーター
アップグレードパラメーターを使用してアップグレードプロセスの動作を変更できます。
パラメーター | 説明 |
---|---|
| アップグレードプロセスを初期化するためにすべてのオーバークラウドノード上で実行するコマンドまたはスクリプトのスニペット。たとえば、リポジトリーの切り替えなど。 |
| アップグレードプロセスに必要な共通のコマンド。操作者は通常このパラメーターを変更する必要はなく、major-upgrade-composable-steps.yaml および major-upgrade-converge.yaml 環境ファイルで設定および設定解除されます。 |
| Leapp コマンドに追加するその他のコマンドラインオプション |
|
Leapp の実行中にデバッグのアウトプットを出力します。デフォルト値は |
| 開発/テスト環境で Leapp を実行する場合は、環境変数を設定して Leapp の確認を省略します。たとえば、LEAPP_DEVEL_SKIP_RHSM=1 と設定します。 |
|
オペレーティングシステムのアップグレードに Leapp を使用します。デフォルト値は |
|
マシンがリブートしてテストコマンドに応答するのを待つ最大の時間 (秒)。デフォルト値は |
|
Leapp による OS アップグレードフェーズのタイムアウト時間 (秒単位)。デフォルト値は |
| Leapp によるアップグレード後にインストールするパッケージのリスト |
| Leapp によるアップグレード時に削除するパッケージのリスト |
4.6.3. デプロイメントに含めるカスタムファイル
デプロイメント内のオーバークラウドノードが Object Storage (swift) 専用ノードの場合は、デフォルトの roles_data.yaml
ファイルをコピーし、ObjectStorage
を編集して deprecated_server_resource_name: 'SwiftStorage'
の行を削除する必要があります。次に、--roles-file
オプションを使用して、そのファイルを openstack overcloud upgrade prepare
コマンドに渡します。
4.6.4. デプロイメントに追加する新たな環境ファイル
Red Hat OpenStack Platform (RHOSP) 17.1 へのアップグレードを円滑に行うために、通常のオーバークラウドの環境ファイルに加えて、新しい環境ファイルを追加する必要があります。
ファイル | 注記 |
---|---|
| このファイルには、アップグレードに固有のパラメーターが含まれます。このファイルは、アップグレード期間中にのみ必要です。 |
| ソースおよび準備の手順が含まれるファイルです。これは、アンダークラウドのアップグレードに使用するファイルと同じです。 |
| このファイルには、Ceph Storage がオーバーライドする必要があるパラメーターが含まれています。 |
以下のコマンドを実行する際に、環境ファイルリストの最後にこれらのファイルを追加します。
-
openstack overcloud upgrade prepare
-
openstack overcloud deploy
4.6.5. デプロイメントから削除する環境ファイル
Red Hat OpenStack Platform 16.2 に固有の環境ファイルをすべて削除します。
- Red Hat OpenStack Platform 16.2 コンテナーイメージのリスト
-
Red Hat OpenStack Platform 16.2 カスタマーポータルまたは Satellite
rhel-registration
スクリプト
以下のコマンドを実行する際に指定する環境ファイルのリストから、これらのファイルを削除します。
-
openstack overcloud upgrade prepare
-
openstack overcloud deploy
4.6.6. IPA サービスのアップグレード
環境内で TLS everywhere が有効になっている場合は、Nova Host Manager ロールにパーミッションを追加して、DNS ゾーンエントリーの作成を許可します。
前提条件
Nova Host Management パーミッションが使用中の環境に含まれているかどうかを確認する。
$ ipa privilege-show "Nova Host Management"
すでにこのパーミッションを持っている場合は、以下の手順はスキップしてください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
Nova Host Management
パーミッションを追加します。$ kinit admin $ ipa privilege-add-permission 'Nova Host Management' --permission 'System: Modify Realm Domains'
ipa_environment.yaml
という環境ファイルを作成し、以下の設定を含めます。resource_registry: OS::TripleO::Services::IpaClient: /usr/share/openstack-tripleo-heat-templates/deployment/ipa/ipaservices-baremetal-ansible.yaml parameter_defaults: IdMServer: $IPA_FQDN IdMDomain: $IPA_DOMAIN IdMInstallClientPackages: False
- 環境ファイルを保存します。
4.6.7. アップグレードのチェックリスト
以下のチェックリストを使用して、オーバークラウドをアップグレードする準備ができているかどうかを判断します。
確認項目 | 実施状況 |
---|---|
動作中のオーバークラウドを検証済みである。 | はい / いいえ |
オーバークラウドコントロールプレーンの Relax-and-Recover (ReaR) バックアップを実施済みである。詳細は、Red Hat OpenStack Platform 16.2 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 を参照してください。 | はい / いいえ |
アンダークラウドノードで実行されるデータベースのバックアップを作成済みである。詳細は、Red Hat OpenStack Platform 17.1 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 の アンダークラウドノードのバックアップの作成 を参照してください。 | はい / いいえ |
登録情報を Red Hat OpenStack Platform 17.1 リポジトリーに更新し、Ansible ベースの手法を使用するように環境ファイルを変更済みである。 | はい / いいえ |
ネットワーク設定テンプレートを更新した。 | はい / いいえ |
環境ファイルの一覧を Red Hat OpenStack Platform 17.1 用の新しい環境ファイルで更新済みである。 | はい / いいえ |
(オプション) デプロイメントに専用の Object Storage (swift) ノードが含まれている場合は、
| はい / いいえ |
古い Red Hat 登録やコンテナーイメージの場所に関するファイルなど、Red Hat OpenStack Platform 16.2 にしか該当しない古い環境ファイルを削除済みである。 | はい / いいえ |
第5章 オーバークラウドの導入と準備
環境内の各スタックでオーバークラウドの導入とアップグレードの準備を実行します。DCN 環境でオーバークラウドの導入とアップグレードの準備を実行するには、DCN 環境でのオーバークラウドの導入と準備 を参照してください。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
5.1. オーバークラウドの導入と準備の実行
オーバークラウドを導入するには、次のタスクを実行する必要があります。
- 各スタックで、ネットワークとホストのプロビジョニング設定エクスポートをオーバークラウドに導入します。
- 新しいコンテナーと追加の互換性設定を定義します。
導入後、次のタスクを実行するアップグレード準備スクリプトを実行する必要があります。
- オーバークラウドのプランを OpenStack Platform 17.1 に更新する。
- アップグレードに向けてノードを準備する。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
ロールに多数のノードが含まれている場合は、既存のロールを分割し、ロール間でノードを分割することで、RHOSP のアップグレードを高速化できます。詳細は、Red Hat ナレッジベースソリューション How to split roles during upgrade from RHOSP 16.2 to RHOSP 17.1 を参照してください。
前提条件
すべてのノードが
ACTIVE
状態にあることを確認します。$ openstack baremetal node list
いずれかのノードが
MAINTENANCE
状態にある場合は、次のコマンドを実行してlast_error
フィールドを確認し、MAINTENANCE
状態にあるノードの根本原因を特定してトラブルシューティングします。$ openstack baremetal node show <node_uuid>
-
<node_uuid>
をノードの UUID に置き換えます。
-
MAINTENANCE
の状態の設定を解除します。$ openstack baremetal node maintenance unset <node_uuid>
ノードが
MAINTENANCE
状態に戻るかどうかを確認するために 3 - 5 分待ちます。重要いずれかのノードが
MAINTENANCE
状態のままの場合、アップグレードを続行できません。ノードをMAINTENANCE
から削除できない場合は、Red Hat サポートにお問い合わせください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
アンダークラウドのアップグレード中にエクスポートされた以下のファイルに、オーバークラウドのアップグレードで想定される設定が含まれていることを確認します。
~/overcloud-deploy
ディレクトリーには以下のファイルがあります。-
tripleo-<stack>-passwords.yaml
-
tripleo-<stack>-network-data.yaml
-
tripleo-<stack>-virtual-ips.yaml
-
tripleo-<stack>-overcloud-network-environment.yaml
tripleo-<stack>-baremetal-deployment.yaml
-
このファイルの
HostnameMap
の値が現在のオーバークラウドのHostnameMap
値と一致することを確認し、必要に応じて値を修正してください。
-
このファイルの
<stack>
は、スタックの名前に置き換えます。注記ファイルがアンダークラウドのアップグレード後に生成されなかった場合は、Red Hat サポートにお問い合わせください。
警告Jinja2 のコメントの問題に対応し、アンダークラウドのアップグレード中に
convert_v1_net_data.py
やconvert_heat_nic_config_to_ansible_j2.py
などの自動変換ツールで作成された各 nic-config テンプレートから、すべての Jinja2 コメントブロックを削除する必要があります。これらのコメントブロックを削除しないと、スケールアウトノードはプロビジョニングに失敗します。または、network_config_update
がtrue
に設定されている場合、コントロールプレーンネットワークが失われる可能性があります。{{# NOTE! Custom parameter {} was hard-coded in ' 'the converted template. To parameterize use the ' '{{role.name}}ExtraGroupVars THT interface and update the ' 'template to use an ansible var. +#}}
重要マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、ファイルを各セルスタックにコピーする例を確認してください。
-
メインスタックで、
passwords.yaml
ファイルを~/overcloud-deploy/$(<stack>)
ディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
メインスタックで、
network-data.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、ネットワークをデプロイします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-network-data.yaml ~/ $ mkdir ~/overcloud_adopt $ openstack overcloud network provision --debug \ --output /home/stack/overcloud_adopt/generated-networks-deployed.yaml tripleo-<stack>-network-data.yaml
詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の オーバークラウドのプロビジョニングとデプロイ を参照してください。
メインスタックで、
virtual-ips.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、ネットワーク VIP をプロビジョニングします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-virtual-ips.yaml ~/ $ openstack overcloud network vip provision --debug \ --stack <stack> --output \ /home/stack/overcloud_adopt/generated-vip-deployed.yaml tripleo-<stack>-virtual-ips.yaml
メインスタックで、
overcloud-network-environment.yaml
ファイルを stack ユーザーのホームディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/<stack>-network-environment.yaml ~/overcloud_adopt/<stack>-network-environment.yaml
注記NetworkConfigTemplate
パラメーターが生成された.j2
ファイルを指し、overcloud-network-environment.yaml
ファイルのresource_registry
マッピングを削除していることを確認します。詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の NIC テンプレートの Jinja2 Ansible 形式への手動変換 を 参照してください。メインスタックで、
baremetal-deployment.yaml
ファイルをスタックユーザーのホームディレクトリーにコピーし、オーバークラウドノードをプロビジョニングします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-baremetal-deployment.yaml ~/ $ openstack overcloud node provision --debug --stack <stack> \ --output /home/stack/overcloud_adopt/baremetal-deployment.yaml \ tripleo-<stack>-baremetal-deployment.yaml
注記これはオーバークラウド導入の最終ステップです。オーバークラウドの導入が完了するまでに 10 分以上かかる場合は、Red Hat サポートにお問い合わせください。
コンテナーを準備するには、以下の手順を実行します。
アンダークラウドのアップグレードに使用した
containers-prepare-parameter.yaml
ファイルをバックアップします。$ cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.orig
スクリプトを実行して
containers-prepare-parameter.yaml
ファイルを更新する前に、以下の環境変数を定義します。-
NAMESPACE
: UBI9 イメージの名前空間。たとえば、NAMESPACE='"namespace":"example.redhat.com:5002",'
など。 -
EL8_NAMESPACE
: UBI8 イメージの名前空間。 -
NEUTRON_DRIVER
: 使用する OpenStack Networking (neutron) コンテナーを定義するために使用するドライバー。元のスタックのデプロイに使用したコンテナーのタイプに設定します。たとえば、OVN ベースのコンテナーを使用するには、NEUTRON_DRIVER='"neutron_driver":"ovn",'
に設定します。 EL8_TAGS
: UBI8 イメージのタグ (例:EL8_TAGS='"tag":"17.1",'
)。-
"17.1",
は、コンテンツビューで使用するタグに置き換えます。
-
EL9_TAGS
: UBI9 イメージのタグ (例:EL9_TAGS='"tag":"17.1",'
)。"17.1",
は、コンテンツビューで使用するタグに置き換えます。tag
パラメーターの詳細は、Red Hat OpenStack Platform デプロイメントのカスタマイズ の コンテナーイメージ準備のパラメーター を参照してください。
CONTROL_PLANE_ROLES
:--role
オプションを使用したコントロールプレーンロールのリスト (例:--role ControllerOpenstack, --role Database, --role Messaging, --role Networker, --role CephStorage
)。環境内のコントロールプレーンのロールのリストを表示するには、以下のコマンドを実行します。$ export STACK=<stack> \ $ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -vi compute
-
<stack>
は、スタックの名前に置き換えます。
-
COMPUTE_ROLES
:--role
オプションを使用したコンピュートロールのリスト (--Compute-1
など)。環境内のコンピュートロールのリストを表示するには、以下のコマンドを実行します。$ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -i compute
CEPH_OVERRIDE
: Red Hat Ceph Storage をデプロイした場合は、Red Hat Ceph Storage 5 コンテナーイメージを指定します。以下に例を示します。CEPH_OVERRIDE='"ceph_image":"rhceph-5-rhel8","ceph_tag":"<latest>",'
<latest>
は、最新のceph_tag
バージョン (5-499
など) に置き換えます。以下は、
containers-prepare-parameter.yaml
ファイル設定の例です。NAMESPACE='"namespace":"registry.redhat.io/rhosp-rhel9",' EL8_NAMESPACE='"namespace":"registry.redhat.io/rhosp-rhel8",' NEUTRON_DRIVER='"neutron_driver":"ovn",' EL8_TAGS='"tag":"17.1",' EL9_TAGS='"tag":"17.1",' CONTROL_PLANE_ROLES="--role Controller" COMPUTE_ROLES="--role Compute1 --role Compute2" CEPH_TAGS='"ceph_tag":"5",'
-
以下のスクリプトを実行して、
containers-prepare-parameter.yaml
ファイルを更新します。警告Red Hat Ceph Storage をデプロイした場合は、次のコマンドを実行する前に、
CEPH_OVERRIDE
環境変数が正しい値に設定されていることを確認してください。これを行わないと、Red Hat Ceph Storage のアップグレード時に問題が発生します。$ python3 /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \ ${COMPUTE_ROLES} \ ${CONTROL_PLANE_ROLES} \ --enable-multi-rhel \ --excludes collectd \ --excludes nova-libvirt \ --minor-override "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml
multi-rhel-container-image-prepare.py
スクリプトは、次のパラメーターをサポートしています。--output-env-file
-
デフォルトの
ContainerImagePrepare
値を含む環境ファイルを書き込みます。 --local-push-destination
- ローカルレジストリーへのアップロードをトリガーします。
--enable-registry-login
-
コンテナーをプルする前に、システムがリモートレジストリーへのログインを試行できるようにするフラグを有効にします。このフラグは、
--local-push-destination
が使用されておらず、ターゲットシステムにリモートレジストリーへのネットワーク接続がある場合に使用します。このフラグは、リモートレジストリーへのネットワーク接続がない可能性があるオーバークラウドには使用しないでください。 --enable-multi-rhel
- multi-rhel を有効にします。
--excludes
- 除外するサービスをリストします。
--major-override
- メジャーリリースのオーバーライドパラメーターをリストします。
--minor-override
- マイナーリリースのオーバーライドパラメーターをリストします。
--role
- ロールのリスト。
--role-file
-
role_data.yaml
ファイル。
-
Red Hat Ceph Storage をデプロイした場合は、
containers-prepare-parameter.yaml
ファイルを開いて、Red Hat Ceph Storage 5 コンテナーイメージが指定されていること、および Red Hat Ceph Storage 6 コンテナーイメージへの参照がないことを確認します。
director でデプロイされた Red Hat Ceph Storage デプロイメントがある場合は、
ceph_params.yaml
というファイルを作成し、次の内容を含めます。parameter_defaults: CephSpecFqdn: true CephConfigPath: "/etc/ceph" CephAnsibleRepo: "rhceph-5-tools-for-rhel-8-x86_64-rpms" DeployedCeph: true
重要RHOSP のアップグレード完了後に
ceph_params.yaml
ファイルを削除しないでください。このファイルは、director でデプロイされた Red Hat Ceph Storage 環境に存在する必要があります。さらに、openstack overcloud deploy
を実行するときは、-e ceph_params.yaml
を指定するなどして、常にceph_params.yaml
ファイルを含める必要があります。注記Red Hat Ceph Storage デプロイメントに短縮名が含まれている場合は、
CephSpecFqdn
パラメーターをfalse
に設定する必要があります。true
に設定すると、短縮名とドメイン名の両方を使用してインベントリーが生成され、Red Hat Ceph Storage のアップグレードが失敗します。テンプレートディレクトリーに
upgrades-environment.yaml
という環境ファイルを作成し、以下の内容を含めます。parameter_defaults: ExtraConfig: nova::workarounds::disable_compute_service_check_for_ffu: true DnsServers: ["<dns_servers>"] DockerInsecureRegistryAddress: <undercloud_FQDN> UpgradeInitCommand: | sudo subscription-manager repos --disable=* if $( grep -q 9.2 /etc/os-release ) then sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=openstack-17.1-for-rhel-9-x86_64-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms sudo subscription-manager release --set=9.2 else sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-tus-rpms --enable=rhel-8-for-x86_64-appstream-tus-rpms --enable=rhel-8-for-x86_64-highavailability-tus-rpms --enable=openstack-17.1-for-rhel-8-x86_64-rpms --enable=fast-datapath-for-rhel-8-x86_64-rpms sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms sudo subscription-manager release --set=8.4 fi if $(sudo podman ps | grep -q ceph ) then sudo dnf -y install cephadm fi
-
<dns_servers>
を、DNS サーバーの IP アドレスのコンマ区切りのリスト (["10.0.0.36", "10.0.0.37"]
など) に置き換えます。 <undercloud_FQDN>
をアンダークラウドホストの完全修飾ドメイン名 (FQDN) に置き換えます (例:"undercloud-0.ctlplane.redhat.local:8787")
。環境ファイルで設定できるアップグレードパラメーターに関する詳細は、アップグレードパラメーター を参照してください。
-
アンダークラウドで、テンプレートディレクトリーに
overcloud_upgrade_prepare.sh
というファイルを作成します。このファイルは、環境内のスタックごとに作成する必要があります。このファイルには、オーバークラウドのデプロイファイルの元の内容と、使用中の環境に関連する環境ファイルが含まれています。以下に例を示します。#!/bin/bash openstack overcloud upgrade prepare --yes \ --timeout 460 \ --templates /usr/share/openstack-tripleo-heat-templates \ --ntp-server 192.168.24.1 \ --stack <stack> \ -r /home/stack/roles_data.yaml \ -e /home/stack/templates/internal.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml \ -e /home/stack/templates/network/network-environment.yaml \ -e /home/stack/templates/inject-trust-anchor.yaml \ -e /home/stack/templates/hostnames.yml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /home/stack/templates/nodes_data.yaml \ -e /home/stack/templates/debug.yaml \ -e /home/stack/templates/firstboot.yaml \ -e /home/stack/templates/upgrades-environment.yaml \ -e /home/stack/overcloud-params.yaml \ -e /home/stack/overcloud_adopt/overcloud-network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \ -e /home/stack/skip_rhel_release.yaml \ -e ~/containers-prepare-parameter.yaml \ -e /home/stack/overcloud_adopt/baremetal-deployment.yaml \ -e /home/stack/overcloud_adopt/generated-networks-deployed.yaml \ -e /home/stack/overcloud_adopt/generated-vip-deployed.yaml
注記マルチセル環境をお使いの場合は、マルチセル環境でのオーバークラウドの導入 を参照し、セルスタックごとに
overcloud_upgrade_prepare.sh
ファイルを作成する例を確認してください。-
元の
network-environment.yaml
ファイル (/home/stack/templates/network/network-environment.yaml
) で、OS::TripleO::*::Net::SoftwareConfig
を指す resource_registry リソースをすべて削除します。 overcloud_upgrade_prepare.sh
ファイルに、環境に関連する以下のオプションを含めます。-
アップグレード固有のパラメーターを持つ環境ファイル (
upgrades-environment.yaml
) (-e
) -
新しいコンテナーイメージの場所を定義した環境ファイル (
containers-prepare-parameter.yaml
) (-e
)。多くの場合、アンダークラウドが使用する環境ファイルと同じファイルです。 -
リリースパラメーター (
-e
) を持つ環境ファイル (skip_rhel_release.yaml
)。 -
デプロイメントに関連するカスタム設定環境ファイル (
-e
) -
該当する場合は、
--roles-file
を使用してカスタムロール (roles_data
) ファイルを指定します。 -
Ceph デプロイメントの場合、Ceph パラメーター (
-e
) を持つ環境ファイル (ceph_params.yaml
)。 -
該当する場合は、IPA サービス (
-e
) を持つ環境ファイル (ipa-environment.yaml
)。 -
コンポーザブルネットワークを使用している場合は、
--network-file
を使用して (network_data
) ファイルを指定します。 オーバークラウドの導入中に生成されたファイル (
network-deployed.yaml
、vip-deployed.yaml
、baremetal-deployment.yaml
) (-e
)。これらのファイルは、オーバークラウドアップグレード準備スクリプトの最後に配置する必要があります。注記オーバークラウドのデプロイファイルや
overcloud_upgrade_prepare.sh
ファイルにnetwork-isolation.yaml
ファイルを含めないでください。ネットワークの分離はnetwork_data.yaml
ファイルで定義します。カスタムのスタック名を使用する場合は、
--stack
オプションでその名前を渡します。注記環境内のすべての RHEL 8 コンピュートノードが RHEL 9 にアップグレードされるまで、テンプレートに
nova-hw-machine-type-upgrade.yaml
ファイルを含める必要があります。このファイルを除外すると、/var/log/containers/nova
ディレクトリーのnova_compute.log
にエラーが表示されます。すべての RHEL 8 コンピュートノードを RHEL 9 にアップグレードした後、このファイルを設定から削除してスタックを更新できます。
-
アップグレード固有のパラメーターを持つ環境ファイル (
director でデプロイされた Red Hat Ceph Storage のユースケースでは、アップグレードするデプロイメントで、CephFS NFS を使用する Shared File Systems サービス (manila) を有効にしていた場合、
overcloud_upgrade_prepare.sh
スクリプトファイルの最後に追加の環境ファイルを指定する必要があります。環境ファイルは、スクリプトの前の方で指定されている別の環境ファイルをオーバーライドするため、スクリプトの最後に追加する必要があります。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
外部 Red Hat Ceph Storage のユースケースでは、アップグレードするデプロイメントで、CephFS NFS を使用する Shared File Systems サービス (manila) を有効にしていた場合、
overcloud_upgrade_prepare.sh
スクリプト内の関連する環境ファイルが tripleo ベースのceph-nfs
ロールを参照することを確認する必要があります。次の環境ファイルが存在する場合は、削除します。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
次の環境ファイルを追加します。
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
-
元の
環境内のスタックごとにアップグレード準備スクリプトを実行します。
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh $ sh /home/stack/overcloud_upgrade_prepare.sh
注記マルチセル環境をお使いの場合は、各セルスタック用に作成した
overcloud_upgrade_prepare.sh
ファイルごとにスクリプトを実行する必要があります。例については、マルチセル環境でのオーバークラウドの導入 を参照してください。- アップグレードの準備が完了するまで待ちます。
コンテナーイメージをダウンロードします。
$ openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
5.2. マルチセル環境でのオーバークラウドの導入
オーバークラウドを導入するには、アンダークラウドのアップグレード時にエクスポートした次のファイルを、スタックユーザーのホームディレクトリーにコピーする必要があります。
-
network-data.yaml
-
virtual-ips.yaml
-
baremetal-deployment.yaml
まずファイルをオーバークラウドスタックにコピーしてから、各セルスタックにコピーする必要があります。
network-data.yaml
ファイルは、オーバークラウドスタックでのみ使用できます。このファイルをオーバークラウドスタックから他のすべてのセルスタックにコピーする必要があります。
次の例では、virtual-ips.yaml
ファイルをコピーします。
オーバークラウドスタック:
$ cp ~/overcloud-deploy/<overcloud>/tripleo-<overcloud>-virtual-ips.yaml ~/ \ $ cd ~/ \ $ openstack overcloud network vip provision \ --debug --stack <overcloud> \ --output /home/stack/overcloud_adopt/generated-vip-deployed.yaml \ tripleo-<overcloud>-virtual-ips.yaml
セルスタック 1:
$ cp ~/overcloud-deploy/<stack1>/tripleo-<stack1>-virtual-ips.yaml ~/ \ $ cd ~/ \ $ openstack overcloud network vip provision \ --debug --stack <stack1> \ --output /home/stack/overcloud_adopt/generated-<stack1>-vip-deployed.yaml \ tripleo-<stack1>-virtual-ips.yaml
セルスタック 2:
$ cp ~/overcloud-deploy/<stack2>/tripleo-<stack2>-virtual-ips.yaml ~/ \ $ cd ~/ \ $ openstack overcloud network vip provision \ --debug --stack <stack2> \ --output /home/stack/overcloud_adopt/generated-<stack2>-vip-deployed.yaml \ tripleo-<stack2>-virtual-ips.yaml
アップグレードの準備
マルチセル環境のアップグレード準備手順を実行するには、次のステップが必要です。
-
各セルスタック用の
overcloud_upgrade_prepare.sh
ファイルを作成します。オーバークラウドスタックから始めます。 -
セルスタック用に作成して生成した出力ファイルを
overcloud_upgrade_prepare.sh
ファイルに含めます。各セルスタック固有の環境ファイルをovercloud_upgrade_prepare.sh
ファイルに必ず含めてください。 -
各セルスタック用の
overcloud_upgrade_prepare.sh
スクリプトを実行します。
以下に、オーバークラウドの導入時に各セルスタック用に生成した generated-vip-deployed.yaml
ファイルを追加する例を示します。
オーバークラウドスタック:
#!/bin/bash openstack overcloud upgrade prepare --yes \ ... -e /home/stack/templates/upgrades-environment.yaml \ -e /home/stack/overcloud-params.yaml \ -e/home/stack/overcloud_adopt/generated-vip-deployed.yaml \ ...
オーバークラウドスタック用の
overcloud_upgrade_prepare.sh
スクリプトを実行します。セルスタック 1:
#!/bin/bash openstack overcloud upgrade prepare --yes \ ... -e /home/stack/templates/upgrades-environment.yaml \ -e /home/stack/stack1-params.yaml \ -e/home/stack/overcloud_adopt/generated-<stack1>-vip-deployed.yaml \ ...
セルスタック 1 用の
overcloud_upgrade_prepare.sh
スクリプトを実行します。セルスタック 2:
#!/bin/bash openstack overcloud upgrade prepare --yes \ ... -e /home/stack/templates/upgrades-environment.yaml \ -e /home/stack/stack2-params.yaml \ -e/home/stack/overcloud_adopt/generated-<stack2>-vip-deployed.yaml \ ...
セルスタック 2 用の
overcloud_upgrade_prepare.sh
スクリプトを実行します。
オーバークラウドの導入と準備のプロセスの詳細は、オーバークラウドアップグレード準備の実行 を参照してください。
第6章 director でデプロイされた Ceph デプロイメントを使用したオーバークラウドのアップグレード
ハイパーコンバージドインフラストラクチャー (HCI) ノードの有無にかかわらず、ご使用の環境に director でデプロイされた Red Hat Ceph Storage デプロイメントが含まれている場合は、デプロイメントを Red Hat Ceph Storage 5 にアップグレードする必要があります。バージョン 5 へのアップグレードにより、cephadm
は、ceph-ansible
の代わりに Red Hat Ceph Storage を管理するようになりました。
6.1. ceph-ansible のインストール
director を使用して Red Hat Ceph Storage をデプロイした場合は、この手順を完了する必要があります。Red Hat Ceph Storage を Red Hat OpenStack Platform でアップグレードするには、ceph-ansible
パッケージが必要です。
手順
Ceph 5 Tools リポジトリーを有効化します。
[stack@director ~]$ sudo subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
ceph-ansible
パッケージをインストールします。[stack@director ~]$ sudo dnf install -y ceph-ansible
6.2. Red Hat Ceph Storage 5 へのアップグレード
次のノードを、Red Hat Ceph Storage バージョン 4 からバージョン 5 にアップグレードします。
- Red Hat Ceph Storage ノード
- ハイパーコンバージドインフラストラクチャー (HCI) ノード。Compute サービスと Ceph OSD サービスの組み合わせが含まれています。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
Red Hat Ceph Storage 5 は Prometheus v4.10 を使用します。Prometheus v4.10 には、Red Hat Ceph Storage ダッシュボードを有効にすると、ダッシュボードに 2 つのデータソースが設定されるという既知の問題があります。この既知の問題の詳細は、BZ#2054852 を参照してください。
Red Hat Ceph Storage 6 は Prometheus v4.12 を使用します。Prometheus v4.12 には、この既知の問題はありません。Red Hat は、Red Hat OpenStack Platform (RHOSP) 16.2 から 17.1 へのアップグレードが完了した後、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 にアップグレードすることを推奨します。Red Hat Ceph Storage バージョン 5 からバージョン 6 にアップグレードするには、ご使用の環境に応じて次のいずれかの手順を実行します。
-
director でデプロイされた Red Hat Ceph Storage 環境:
cephadm
クライアントの更新 - 外部 Red Hat Ceph Storage クラスター環境: Red Hat Ceph Storage コンテナーイメージの更新
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
ceph
タグを使用して、Red Hat Ceph Storage の外部アップグレードプロセスを実行します。$ openstack overcloud external-upgrade run \ --skip-tags "ceph_ansible_remote_tmp" \ --stack <stack> \ --tags ceph,facts 2>&1
-
<stack>
は、スタックの名前に置き換えます。 -
DCN がデプロイされたサイトでこのコマンドを実行する場合は、
--skip-tags
パラメーターに指定されたコンマ区切りの値リストに、skip-tagcleanup_cephansible
の値を追加します。
-
ceph versions
コマンドを実行して、すべての Red Hat Ceph Storage デーモンがバージョン 5 にアップグレードされたことを確認します。このコマンドは、コントローラーノードでデフォルトでホストされるceph monitor
コンテナーで使用できます。重要前の手順のコマンドは、
ceph-ansible
rolling_update.yaml
Playbook を実行して、クラスターをバージョン 4 から 5 に更新します。この手順を続行する前に、すべてのデーモンが更新されていることを確認することが重要です。次の例は、このコマンドの使用方法と出力を示しています。例に示されているように、デプロイメント内のすべてのデーモンには、パッケージバージョン
16.2.*
とキーワードpacific
が表示されます。$ sudo podman exec ceph-mon-$(hostname -f) ceph versions { "mon": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "mgr": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "osd": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 180 }, "mds": {}, "rgw": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 3 }, "overall": { "ceph version 16.2.10-248.el8cp (0edb63afd9bd3edb333364f2e0031b77e62f4896) pacific (stable)": 189 } }
注記Red Hat Ceph Storage をホストしている任意のサーバー上で
sudo podman ps | grep ceph
コマンドを実行すると、バージョン 5 のコンテナーが返されるはずです。ceph-admin
ユーザーを作成し、適切なキーリングを配布します。ANSIBLE_LOG_PATH=/home/stack/cephadm_enable_user_key.log \ ANSIBLE_HOST_KEY_CHECKING=false \ ansible-playbook -i /home/stack/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ -b -e ansible_python_interpreter=/usr/libexec/platform-python /usr/share/ansible/tripleo-playbooks/ceph-admin-user-playbook.yml \ -e tripleo_admin_user=ceph-admin \ -e distribute_private_key=true \ --limit Undercloud,ceph_mon,ceph_mgr,ceph_rgw,ceph_mds,ceph_nfs,ceph_grafana,ceph_osd
Red Hat Ceph Storage ノード上のパッケージを更新します。
$ openstack overcloud upgrade run \ --stack <stack> \ --skip-tags ceph_ansible_remote_tmp \ --tags setup_packages --limit Undercloud,ceph_mon,ceph_mgr,ceph_rgw,ceph_mds,ceph_nfs,ceph_grafana,ceph_osd \ --playbook /home/stack/overcloud-deploy/<stack>/config-download/<stack>/upgrade_steps_playbook.yaml 2>&1
DCN がデプロイされたサイトでこのコマンドを実行する場合は、
--skip-tags
パラメーターに指定されたコンマ区切りの値リストに、skip-tagcleanup_cephansible
の値を追加します。注記デフォルトでは、コンポーザブルロール機能を使用して他の場所でホストしていない限り、Ceph Monitor サービス (CephMon) はコントローラーノード上で実行します。このコマンドには
ceph_mon
タグが含まれており、Ceph Monitor サービスをホストしているノード (デフォルトではコントローラーノード) 上のパッケージも更新されます。
cephadm
を使用するように Red Hat Ceph Storage ノードを設定します。$ openstack overcloud external-upgrade run \ --skip-tags ceph_ansible_remote_tmp \ --stack <stack> \ --tags cephadm_adopt 2>&1
-
DCN がデプロイされたサイトでこのコマンドを実行する場合は、
--skip-tags
パラメーターに指定されたコンマ区切りの値リストに、skip-tagcleanup_cephansible
の値を追加します。
-
DCN がデプロイされたサイトでこのコマンドを実行する場合は、
ceph -s
コマンドを実行して、すべてのプロセスが Red Hat Ceph Storage オーケストレーターによって管理されていることを確認します。このコマンドは、コントローラーノードでデフォルトでホストされるceph monitor
コンテナーで使用できます。重要前の手順のコマンドは、
ceph-ansible
cephadm-adopt.yaml
Playbook を実行して、クラスターの今後の管理をceph-ansible
からcephadm
および Red Hat Ceph Storage オーケストレーターに移行します。この手順を続行する前に、すべてのプロセスがオーケストレータによって管理されていることを確認することが重要です。次の例は、このコマンドの使用方法と出力を示しています。この例で示されているように、
cephadm
によって管理されていないデーモンは 63 個あります。これは、ceph-ansible
cephadm-adopt.yml
Playbook の実行に問題があったことを示しています。アップグレードを続行する前に、Red Hat Ceph Storage サポートに連絡してこれらのエラーのトラブルシューティングを行ってください。導入プロセスが正常に完了すると、cephadm
によって管理されていない迷子のデーモンに関する警告は表示されなくなります。$ sudo cephadm shell -- ceph -s cluster: id: f5a40da5-6d88-4315-9bb3-6b16df51d765 health: HEALTH_WARN 63 stray daemon(s) not managed by cephadm
overcloud_upgrade_prepare.sh
ファイルを変更して、ceph-ansible
ファイルをcephadm
heat 環境ファイルに置き換えます。#!/bin/bash openstack overcloud upgrade prepare --yes \ --timeout 460 \ --templates /usr/share/openstack-tripleo-heat-templates \ --ntp-server 192.168.24.1 \ --stack <stack> \ -r /home/stack/roles_data.yaml \ -e /home/stack/templates/internal.yaml \ … -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm-rbd-only.yaml \ -e ~/containers-prepare-parameter.yaml
注記この例では、RGW がデプロイされていないため、
environments/cephadm/cephadm-rbd-only.yaml
ファイルを使用します。RGW のデプロイを計画している場合は、RHOSP 環境のアップグレードが完了した後にenvironments/cephadm/cephadm.yaml
を使用し、スタックの更新を実行します。オーバークラウドのアップグレード準備用のコマンドを実行した際に以下の環境ファイルを追加した場合は、
overcloud_upgrade_prepare.sh
ファイルを変更してこの環境ファイルを削除します。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
- ファイルを保存します。
upgrade prepare コマンドを実行します。
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh sh /home/stack/overcloud_upgrade_prepare.sh
デプロイメントに HCI ノードが含まれている場合は、コントローラーノードの
cephadm
コンテナーに一時的なhci.conf
ファイルを作成します。コントローラーノードにログインします。
$ ssh cloud-admin@<controller_ip>
-
<controller_ip>
をコントローラーノードの IP アドレスに置き換えます。
-
コントローラーノードから
cephadm
シェルを取得します。例
[cloud-admin@controller-0 ~]$ sudo cephadm shell
cephadm
シェルで、一時的なhci.conf
ファイルを作成します。例
[ceph: root@edpm-controller-0 /]# cat <<EOF > hci.conf [osd] osd_memory_target_autotune = true osd_numa_auto_affinity = true [mgr] mgr/cephadm/autotune_memory_target_ratio = 0.2 EOF …
設定を適用します。
例
[ceph: root@edpm-controller-0 /]# ceph config assimilate-conf -i hci.conf
HCI デプロイメントの設定の調整の詳細は、ハイパーコンバージドインフラストラクチャーをデプロイする の HCI の Ceph 設定オーバーライド を参照してください。
すべての HCI ノードのオペレーティングシステムを、RHEL 9 にアップグレードする必要があります。コンピュートノードと HCI ノードのアップグレードの詳細は、コンピュートノードを RHEL 9.2 にアップグレードする を参照してください。
Red Hat Ceph Storage Rados Gateway (RGW)がオブジェクトストレージに使用 される場合は、RHCS 4.x へのアップグレード後に RHCS 4.x へのアップグレード後に Ceph config overrides が設定された Ceph 設定のオーバーライドの手順を完了して、Red Hat Ceph Storage 4 の設定が Red Hat Ceph Storage 5 に完全に反映されていることを確認します。
Red Hat Ceph Storage Dashboard がインストールされている場合は、After FFU 16.2 to 17.1, Ceph Grafana dashboard failed to start due to incorrect dashboard configuration の手順を完了して、正しく設定されていることを確認します。
Red Hat Ceph Storage クラスターはバージョン 5 にアップグレードされました。これには次の意味があります。
-
今後は、Red Hat Ceph Storage の管理に
ceph-ansible
を使用しません。代わりに、Ceph Orchestrator が Red Hat Ceph Storage クラスターを管理します。Ceph Orchestrator の詳細は、Ceph オペレーションガイド を参照してください。 - 今後は、ほとんどの場合において、Red Hat Ceph Storage クラスターに変更を加えるためにスタック更新を実行する必要がなくなります。代わりに、Red Hat Ceph Storage オペレーションガイド で説明されているように、Day Two の Red Hat Ceph Storage 操作をクラスター上で直接実行できます。また、director を使用した Red Hat Ceph Storage および Red Hat OpenStack Platform のデプロイ の Ceph Storage クラスターのスケールアップ で説明されているように、Red Hat Ceph Storage クラスターノードをスケールアップまたはスケールダウンすることもできます。
- Red Hat Ceph Storage クラスターの健全性を検査します。クラスターの健全性のモニタリングに関する詳細は、director を使用した Red Hat Ceph Storage および Red Hat OpenStack Platform のデプロイ の Red Hat Ceph Storage ノードのモニタリング を参照してください。
openstack overcloud deploy
などの openstack デプロイメントコマンドに、environments/ceph-ansible/ceph-ansible.yaml
などの環境ファイルを含めないでください。デプロイメントにceph-ansible
環境ファイルが含まれている場合は、それらを以下のオプションのいずれかに置き換えます。Red Hat Ceph Storage のデプロイメント 元の ceph-ansible
ファイルCephadm
ファイルの置換Ceph RADOS ブロックデバイス (RBD) のみ
任意の
ceph-ansible
環境ファイルenvironments/cephadm/cephadm-rbd-only.yaml
RBD と Ceph Object Gateway (RGW)
任意の
ceph-ansible
環境ファイルenvironments/cephadm/cephadm.yaml
Ceph Dashboard
environments/ceph-ansible/ceph-dashboard.yaml
environments/cephadm/
内のそれぞれのファイルCeph MDS
environments/ceph-ansible/ceph-mds.yaml
environments/cephadm/
内のそれぞれのファイル
第7章 ネットワーク機能仮想化 (NFV) の準備
ネットワーク機能仮想化 (NFV) を使用する場合は、オーバークラウドのアップグレードに向けて準備タスクを完了する必要があります。
7.1. ネットワーク機能仮想化 (NFV) 用環境ファイル
典型的な NFV ベースの環境では、以下のようなサービスを有効にすることができます。
- Single-root input/output virtualization (SR-IOV)
- Data Plane Development Kit (DPDK)
Red Hat OpenStack Platform 17.1 へのアップグレードに対応するために、これらのサービスに対して特定の再設定を行う必要はありません。ただし、NFV 機能を有効にする環境ファイルは、以下の要件を満たすようにしてください。
NFV 機能を有効にするデフォルトの環境ファイルは、Red Hat OpenStack Platform 17.1
openstack-tripleo-heat-templates
コレクションのenvironments/services
ディレクトリーにあります。Red Hat OpenStack Platform 16.2 デプロイメントにopenstack-tripleo-heat-templates
からのデフォルト NFV 環境ファイルを追加している場合は、Red Hat OpenStack Platform 17.1 での該当機能の正しい環境ファイルの場所を確認してください。-
Open vSwitch (OVS) ネットワークおよび SR-IOV:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml
-
Open vSwitch (OVS) ネットワークおよび DPDK:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dpdk.yaml
-
Open vSwitch (OVS) ネットワークおよび SR-IOV:
-
Red Hat OpenStack Platform 16.2 から Red Hat OpenStack Platform 17.1 へのアップグレード中に OVS の互換性を維持するには、
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml
環境ファイルを含める必要があります。環境ファイルを指定してデプロイメントおよびアップグレードのコマンドを実行する際には、neutron-ovs.yaml
ファイルの後に NFV 関連の環境ファイルをすべて追加する必要があります。たとえば、OVS および NFV 環境ファイルを指定してopenstack overcloud upgrade prepare
を実行する場合は、以下の順序でファイルを追加します。 - OVS 用環境ファイル
- SR-IOV 用環境ファイル
DPDK 用環境ファイル
$ openstack overcloud upgrade prepare \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dpdk.yaml \ ...
NFV ワークロードには、移行に関する制約があります。アップグレード中に、OVS-DPDK コンピュートノードからのインスタンスのライブマイグレーションを行うことはできません。代替の手段として、アップグレード中に、OVS-DPDK Compute ノードからのインスタンスのコールドマイグレーションを行うことができます。
第8章 オーバークラウドのアップグレード
環境内の各スタック上のオーバークラウド全体で Red Hat OpenStack Platform コンテンツをアップグレードします。
8.1. 各スタック内のすべてのノードでの RHOSP のアップグレード
メインスタックから開始して、スタックごとにすべてのオーバークラウドノードを Red Hat OpenStack Platform (RHOSP) 17.1 にアップグレードします。
オーバークラウドノードをアップグレードする前に、Pacemaker がすべてのコントローラーで実行されていることを確認する必要があります。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
メインスタック内のすべてのノードで RHOSP をアップグレードします。
$ openstack overcloud upgrade run --yes --stack <stack> --debug --limit allovercloud,undercloud --playbook all
重要the-
limit
オプションを変更しないでください。ワークロードが破損しないように、スタックのすべてのノードを一度にアップグレードする必要があります。サポートが必要な場合は、Red Hat サポート にお問い合わせください。<stack> をノードをアップグレードするオーバークラウドスタックの名前に置き換えます。
RHOSP デプロイメント内のスタックごとにこの手順を繰り返します。
マルチセル環境をお使いの場合は、オーバークラウドスタック上の RHOSP をアップグレードする前に、セルスタック上の RHOSP をアップグレードする必要があります。
第9章 アンダークラウドのオペレーティングシステムのアップグレード
アンダークラウドオペレーティングシステムを Red Hat Enterprise Linux 8.4 から Red Hat Enterprise Linux 9.2 にアップグレードする必要があります。システムのアップグレードでは次のタスクが実行されます。
- システムのアップグレード後も、ネットワークインターフェイスの命名が一貫していることを確認します。
- Leapp を使用して RHEL をインプレースアップグレードします。
- アンダークラウドを再起動します。
9.1. アンダークラウドでの SSH root パーミッションパラメーターの設定
Leapp によるアップグレードでは、PermitRootLogin
パラメーターが /etc/ssh/sshd_config
ファイルに存在するかどうかを確認します。このパラメーターを、明示的に yes
または no
のいずれかに設定する必要があります。
セキュリティー上の理由から、アンダークラウドで root ユーザーへの SSH アクセスを無効にするには、このパラメーターを no
に設定します。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 /etc/ssh/sshd_config
ファイルにPermitRootLogin
パラメーターがあるかどうかを確認します。$ sudo grep PermitRootLogin /etc/ssh/sshd_config
/etc/ssh/sshd_config
ファイルにパラメーターがない場合は、ファイルを編集してPermitRootLogin
パラメーターを設定します。PermitRootLogin no
- ファイルを保存します。
9.2. SSH キーのサイズの検証
Red Hat Enterprise Linux (RHEL) 9.1 以降では、最小 2048 ビットの SSH キーサイズが必要です。Red Hat OpenStack Platform (RHOSP) director 上の現在の SSH キーが 2048 ビット未満の場合、オーバークラウドにアクセスできなくなる可能性があります。SSH キーが必要なビットサイズを満たしていることを確認する必要があります。
手順
SSH キーのサイズを検証します。
ssh-keygen -l -f /home/stack/overcloud-deploy/overcloud/ssh_private_key
出力例:
1024 SHA256:Xqz0Xz0/aJua6B3qRD7VsLr6n/V3zhmnGSkcFR6FlJw stack@director.example.local (RSA)
- SSH キーが 2048 ビット未満の場合は、次に進む前に、SSH キーをローテーションする必要があります。詳細は、Red Hat OpenStack Platform の強化 の OpenStack 環境での SSH キーの更新 を参照してください。
9.3. アンダークラウドシステムのアップグレードの実行
アンダークラウドオペレーティングシステムを Red Hat Enterprise Linux (RHEL) 9.2 にアップグレードします。このアップグレードの一環として、system_upgrade.yaml
という名前のファイルを作成します。このファイルを使用して、Leapp をインストールするための適切なリポジトリー、必要な Red Hat OpenStack Platform オプションおよびコンテンツを有効化します。このファイルを使用して、コントロールプレーンノードとコンピュートノードもアップグレードします。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 テンプレートディレクトリーに
system_upgrade.yaml
という名前のファイルを作成し、以下の内容を含めます。parameter_defaults: UpgradeLeappDevelSkip: "LEAPP_UNSUPPORTED=1 LEAPP_DEVEL_SKIP_CHECK_OS_RELEASE=1 LEAPP_NO_NETWORK_RENAMING=1 LEAPP_DEVEL_TARGET_RELEASE=9.2" UpgradeLeappDebug: false UpgradeLeappEnabled: true LeappActorsToRemove: ['checkifcfg','persistentnetnamesdisable','checkinstalledkernels','biosdevname'] LeappRepoInitCommand: | subscription-manager repos --disable=* subscription-manager repos --enable rhel-8-for-x86_64-baseos-tus-rpms --enable rhel-8-for-x86_64-appstream-tus-rpms --enable openstack-17.1-for-rhel-8-x86_64-rpms subscription-manager release --set=8.4 UpgradeLeappCommandOptions: "--enablerepo=rhel-9-for-x86_64-baseos-eus-rpms --enablerepo=rhel-9-for-x86_64-appstream-eus-rpms --enablerepo=rhel-9-for-x86_64-highavailability-eus-rpms --enablerepo=openstack-17.1-for-rhel-9-x86_64-rpms --enablerepo=fast-datapath-for-rhel-9-x86_64-rpms"
注記デプロイメントに Red Hat Ceph Storage ノードが含まれている場合は、
CephLeappRepoInitCommand
パラメーターを追加し、Red Hat Ceph Storage ノードのソース OS バージョンを指定する必要があります。以下に例を示します。CephLeappRepoInitCommand: ... subscription-manager release --set=8.6
LeappInitCommand
パラメーターをsystem_upgrade.yaml
ファイルに追加して、環境に適用される追加の要件を指定します。たとえば、ロールベースのオーバーライドを定義する必要がある場合は、以下のようになります。LeappInitCommand: | subscription-manager repos --disable=* subscription-manager release --unset subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=openstack-17.1-for-rhel-9-x86_64-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms leapp answer --add --section check_vdo.confirm=True dnf -y remove irb
重要RHEL 8 の ruby-irb ディレクトリーと RHEL 9 のシンボリックリンクの間の競合を避けるために、
ruby-irb
パッケージを削除する必要があります。詳細は、Red Hat ナレッジベースのソリューション leapp upgrade RHEL8 to RHEL9 fails with error "rubygem-irb-1.3.5-160.el9_0.noarch conflicts with file from package ruby-irb-2.5.9-110.module+el8.6.0+15956+aa803fc1.noarch" を参照してください。注記以前に RHOSP 13.0 以前が実行されていた場合、システムのアップグレード中に、既知の問題により、RHEL 8 エントリーではなく、GRUB に RHEL 7 エントリーが含まれます。回避策を含む詳細は、Red Hat ナレッジベースのソリューション Openstack 16 to 17 FFU - During LEAPP upgrade UEFI systems do not boot due to invalid /boot/grub2/grub.cfg を参照してください。
カーネルベースの NIC 名を使用する場合は、以下のパラメーターを
system_upgrade.yaml
ファイルに追加して、アップグレードプロセス全体にわたって NIC 名が保持されるようにします。parameter_defaults: NICsPrefixesToUdev: ['en'] ...
Leapp アップグレードを実行します。
$ openstack undercloud upgrade --yes --system-upgrade \ /home/stack/system_upgrade.yaml
注記Leapp アップグレードを再度実行する必要がある場合は、まずリポジトリーを RHEL 8 にリセットする必要があります。
アンダークラウドをリブートします。
$ sudo reboot
第10章 コントロールプレーンオペレーティングシステムのアップグレード
コントロールプレーンノード上のオペレーティングシステムをアップグレードします。アップグレードには以下のタスクが含まれます。
- システムアップグレードパラメーターを指定した overcloud upgrade prepare コマンドの実行
- オーバークラウドシステムのアップグレードを実行します。これは、Leapp を使用して RHEL をインプレースでアップグレードします。
- ノードの再起動
10.1. コントロールプレーンノードのアップグレード
環境内のコントロールプレーンノードを Red Hat Enterprise Linux 9.2 にアップグレードするには、ブートストラップノードから開始して、コントロールプレーンノードの 3 分の 1 を一度にアップグレードする必要があります。
コントロールプレーンノードをアップグレードするには、openstack overcloud upgrade run
コマンドを使用します。このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
- Leapp によるアップグレードの一部としてリブートを実施する。
システムのアップグレード中に各ノードが再起動されます。このダウンタイム中に Pacemaker クラスターと Red Hat Ceph Storage クラスターのパフォーマンスは低下しますが、停止することはありません。
この例には、コンポーザブルロールを持つ以下のノードが含まれています。
-
controller-0
-
controller-1
-
controller-2
-
database-0
-
database-1
-
database-2
-
networker-0
-
networker-1
-
networker-2
-
ceph-0
-
ceph-1
-
ceph-2
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
CONTROL_PLANE_ROLES
パラメーターを指定せずに以下のスクリプトを実行します。オーバークラウドアップグレード準備の実行 でコンテナーを準備するために使用した変数を必ず含めてください。python3 \ /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \ ${COMPUTE_ROLES} \ --enable-multi-rhel \ --excludes collectd \ --excludes nova-libvirt \ --minor-override \ "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override \ "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml
注記CONTROL_PLANE_ROLES
パラメーターは、コントロールプレーンロールのリストを定義します。このパラメーターをスクリプトから削除すると、RHEL 9.2 へのアップグレード用のコントロールプレーンロールが準備されます。CONTROL_PLANE_ROLES
パラメーターがスクリプトに含まれている場合は、コントロールプレーンのロールは RHEL 8.4 に残ります。skip_rhel_release.yaml
ファイルで、SkipRhelEnforcement
パラメーターをfalse
に設定します。parameter_defaults: SkipRhelEnforcement: false
overcloud_upgrade_prepare.sh
ファイルを更新します。$ openstack overcloud upgrade prepare --yes \ ... -e /home/stack/system_upgrade.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ -e /home/stack/skip_rhel_release.yaml \ ...
-
アップグレード固有のパラメーターを持つ
system_upgrade.yaml
ファイルを含めます (-e)。 -
コントロールプレーンロールを削除した
containers-prepare-parameter.yaml
ファイルを含めます (-e)。 -
リリースパラメーターを持つ
skip_rhel_release.yaml
ファイルを含めます (-e)。
-
アップグレード固有のパラメーターを持つ
overcloud_upgrade_prepare.sh
スクリプトを実行します。$ sh /home/stack/overcloud_upgrade_prepare.sh
システムのアップグレードに必要な新しいコンテナーまたは変更されたコンテナーを取得します。
$ openstack overcloud external-upgrade run \ --stack <stack> \ --tags container_image_prepare 2>&1
コントロールプレーンノードの最初の 3 分の 1 をアップグレードします。
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-0>,<database-0>,<messaging-0>,<networker-0>,<ceph-0>
-
<stack>
は、スタックの名前に置き換えます。 -
<controller-0>
、<database-0>
、<messaging-0>
、<networker-0>
、<ceph-0>
を独自のノード名に置き換えます。
-
アップグレードされた各ノードにログインし、各ノードのクラスターが実行されていることを確認します。
$ sudo pcs status
コントロールプレーンノードの次の 3 分の 1 をアップグレードした後、そしてコントロールプレーンノードの最後の 3 分の 1 をアップグレードした後に、この検証手順を繰り返します。
コントロールプレーンノードの次の 3 分の 1 をアップグレードします。
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-1>,<database-1>,<messaging-1>,<networker-1>,<ceph-1>
-
<controller-1>
、<database-1>
、<messaging-1>
、<networker-1>
、<ceph-1>
を独自のノード名に置き換えます。
-
コントロールプレーンノードの最後の 3 分の 1 をアップグレードします。
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-2>,<database-2>,<messaging-2>,<networker-2>,<ceph-2>
-
<controller-2>
、<database-2>
、<messaging-2>
、<networker-2>
、<ceph-2>
を独自のノード名に置き換えます。
-
STF を有効にした場合は、タグを付けずにアップグレードコマンドを実行します。オペレーティングシステムのアップグレード後にこのコマンドを実行して、すべてのノードの
collectd
コンテナーを更新します。$ openstack overcloud upgrade run --yes \ --stack <stack> \ --limit <controller-0>,<controller-1>,<controller-2>,<database-0>,<database-1>,<database-2>,<networker-0>,<networker-1>,<networker-2>,<ceph-0>,<ceph-1>,<ceph-2>
-
<controller-0>
、<controller-1>
、<controller-2>
、<database-0>
、<database-1>
、<database-2>
、<networker-0>
、<networker-1>
、<networker-2>
、<ceph-0>
、<ceph-1>
、<ceph-2>
を、独自のノード名に置き換えます。
-
第11章 コンピュートノードのオペレーティングシステムのアップグレード
すべてのコンピュートノードのオペレーティングシステムを RHEL 9.2 にアップグレードすることも、一部のコンピュートノードをアップグレードし、残りのコンピュートノードは RHEL 8.4 のままにすることもできます。
デプロイメントにハイパーコンバージドインフラストラクチャー (HCI) ノードが含まれている場合は、すべての HCI ノードを RHEL 9 にアップグレードする必要があります。RHEL 9 へのアップグレードの詳細は、コンピュートノードを RHEL 9.2 にアップグレードする を参照してください。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
前提条件
- コンピュートノードのアップグレード計画 を確認している。
11.1. アップグレードテスト用の Compute ノードの選択
オーバークラウドのアップグレードプロセスでは、次のいずれかを行うことができます。
- 1 つのロールのノードをすべてアップグレードする。
- 個々のノードを個別にアップグレードする。
オーバークラウドのアップグレードプロセスを円滑にするには、全 Compute ノードをアップグレードする前に、環境内にある個々の Compute ノードのいくつかでアップグレードをテストすると役立ちます。これにより、アップグレード中に大きな問題が発生しなくなり、ワークロードのダウンタイムを最小限に抑えることができます。
アップグレードをテストするノードを選択するにあたっては、以下の推奨事項を参考にしてください。
- アップグレードのテストには、2 台または 3 台のコンピュートノードを選択します。
- クリティカルなインスタンスが実行されていないノードを選択します。
必要に応じて、選択したテストコンピュートノードからクリティカルインスタンスを他のコンピュートノードに移行します。どの移行シナリオがサポートされているかを確認してください。
ソースコンピュートノードの RHEL バージョン 宛先コンピュートノードの RHEL バージョン サポート対象/サポート対象外 RHEL 8
RHEL 8
サポート対象
RHEL 8
RHEL 9
サポート対象
RHEL 9
RHEL 9
サポート対象
RHEL 9
RHEL 8
サポート対象外
11.2. すべてのコンピュートノードを RHEL 9.2 にアップグレードする
すべてのコンピュートノードを RHEL 9.2 にアップグレードして、最新の機能を利用し、ダウンタイムを削減します。
前提条件
- デプロイメントにハイパーコンバージドインフラストラクチャー (HCI) ノードが含まれている場合は、ホストをメンテナンスモードにして、各 HCI ノード上で Red Hat Ceph Storage クラスターを再起動できるように準備します。詳細は、Ceph オペレーションガイド の Ceph Orchestrator を使用してホストをメンテナンスモードにする を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
container-image-prepare.yaml
ファイルには、ContainerImagePrepare
パラメーターで指定されたタグのみが含まれ、MultiRhelRoleContainerImagePrepare
パラメーターが削除されていることを確認します。以下に例を示します。parameter_defaults: ContainerImagePrepare: - tag_from_label: "{version}-{release}" set: namespace: name_prefix: name_suffix: tag: rhel_containers: false neutron_driver: ovn ceph_namespace: ceph_image: ceph_tag:
-
role_data.yaml
ファイルで、OS::TripleO::Services::NovaLibvirtLegacy
サービスを、RHEL 9.2 に必要なOS::TripleO::Services::NovaLibvirt
サービスに置き換えます。 次の例に示すように、
-e
system_upgrade.yaml
引数と必要なその他の-e
環境ファイル引数をovercloud_upgrade_prepare.sh
スクリプトに含めます。$ openstack overcloud upgrade prepare --yes … -e /home/stack/system_upgrade.yaml …
-
overcloud_upgrade_prepare.sh
スクリプトを実行します。 コンピュートノード上のオペレーティングシステムを RHEL 9.2 にアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、
--limit
オプションを使用します。以下の例では、compute-0
、compute-1
、およびcompute-2
ノードをアップグレードします。$ openstack overcloud upgrade run --yes --tags system_upgrade --stack <stack> --limit compute-0,compute-1,compute-2
-
<stack>
は、スタックの名前に置き換えます。
-
コンピュートノード上のコンテナーを RHEL 9.2 にアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、
--limit
オプションを使用します。以下の例では、compute-0
、compute-1
、およびcompute-2
ノードをアップグレードします。$ openstack overcloud upgrade run --yes --stack <stack> --limit compute-0,compute-1,compute-2
11.3. コンピュートノードの Multi-RHEL 環境へのアップグレード
コンピュートノードの一部を RHEL 9.2 にアップグレードし、残りのコンピュートノードは RHEL 8.4 のままにすることができます。このアップグレードプロセスには、以下の基本的な手順が含まれます。
-
どのノードを RHEL 9.2 にアップグレードするか、そしてどのノードを RHEL 8.4 に残しておきたいかを計画します。ノードのバッチごとに作成する各ロールのロール名を選択します (例:
ComputeRHEL-9.2
およびComputeRHEL-8.4
)。 RHEL 9.2 にアップグレードするノード、または RHEL 8.4 に残しておきたいノードを保存するロールを作成します。これらのロールは、コンピュートノードを新しいロールに移動する準備ができるまで空のままにすることができます。必要な数のロールを作成し、任意の方法でロール間でノードを分割できます。以下に例を示します。
-
環境で
ComputeSRIOV
というロールが使用されており、カナリアテストを実行して RHEL 9.2 にアップグレードする必要がある場合は、新しいComputeSRIOVRHEL9
ロールを作成し、カナリアノードを新しいロールに移動できます。 -
環境で
ComputeOffload
というロールを使用しており、そのロール内のほとんどのノードを RHEL 9.2 にアップグレードするが、いくつかのノードを RHEL 8.4 に残しておきたい場合は、新しいComputeOffloadRHEL8
ロールを作成して RHEL 8.4 ノードを保存できます。その後、元のComputeOffload
ロール内のノードを選択して、RHEL 9.2 にアップグレードできます。
-
環境で
- ノードを各コンピュートロールから新しいロールに移動します。
特定のコンピュートノード上のオペレーティングシステムを RHEL 9.2 にアップグレードします。同じロールまたは複数のロールから、ノードをバッチでアップグレードできます。
注記Multi-RHEL 環境では、デプロイメントでは引き続き pc-i440fx マシンタイプを使用する必要があります。デフォルトを Q35 に更新しないでください。Q35 マシンタイプへの移行は、すべてのコンピュートノードを RHEL 9.2 にアップグレードした後に実行する、別のアップグレード後の手順です。Q35 マシンタイプの移行に関する詳細は、RHOSP 17 へのアップグレード後のホストのデフォルトマシンタイプの更新 を参照してください。
次の手順を使用して、コンピュートノードを Multi-RHEL 環境にアップグレードします。
11.3.1. Multi-RHEL コンピュートノードのロールの作成
RHEL 9.2 にアップグレードするノード、または RHEL 8.4 に留まるノードを保存する新しいロールを作成し、ノードを新しいロールに移動します。
手順
環境に関連するロールを作成します。
role_data.yaml
ファイルで、新しいロールに使用するソースのコンピュートロールをコピーします。必要な追加のロールごとにこの手順を繰り返します。コンピュートノードを新しいロールに移動する準備ができるまで、ロールは空のままにすることができます。
RHEL 8 ロールを作成している場合は、以下のようになります。
name: <ComputeRHEL8> description: | Basic Compute Node role CountDefault: 1 rhsm_enforce_multios: 8.4 ... ServicesDefault: ... - OS::TripleO::Services::NovaLibvirtLegacy
注記RHEL 8.4 に残っているノードを含むロールには、
NovaLibvirtLegacy
サービスが含まれている必要があります。-
<ComputeRHEL8>
を RHEL 8.4 ロールの名前に置き換えます。 RHEL 9 ロールを作成している場合は、以下のようになります。
name: <ComputeRHEL9> description: | Basic Compute Node role CountDefault: 1 ... ServicesDefault: ... - OS::TripleO::Services::NovaLibvirt
注記RHEL 9.2 にアップグレードされるノードを含むロールには、
NovaLibvirt
サービスが含まれている必要があります。OS::TripleO::Services::NovaLibvirtLegacy
をOS::TripleO::Services::NovaLibvirt
に置き換えます。- <ComputeRHEL9> を RHEL 9.2 ロールの名前に置き換えます。
overcloud_upgrade_prepare.sh
ファイルをcopy_role_Compute_param.sh
ファイルにコピーします。$ cp overcloud_upgrade_prepare.sh copy_role_Compute_param.sh
copy_role_Compute_param.sh
ファイルを編集して、copy_role_params.py
スクリプトを含めます。このスクリプトは、新しいロールの追加パラメーターとリソースを含む環境ファイルを生成します。以下に例を示します。/usr/share/openstack-tripleo-heat-templates/tools/copy_role_params.py --rolename-src <Compute_source_role> --rolename-dst <Compute_destination_role> \ -o <Compute_new_role_params.yaml> \ -e /home/stack/templates/internal.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml \ -e /home/stack/templates/network/network-environment.yaml \ -e /home/stack/templates/inject-trust-anchor.yaml \ -e /home/stack/templates/hostnames.yml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /home/stack/templates/nodes_data.yaml \ -e /home/stack/templates/debug.yaml \ -e /home/stack/templates/firstboot.yaml \ -e /home/stack/overcloud-params.yaml \ -e /home/stack/overcloud-deploy/overcloud/overcloud-network-environment.yaml \ -e /home/stack/overcloud_adopt/baremetal-deployment.yaml \ -e /home/stack/overcloud_adopt/generated-networks-deployed.yaml \ -e /home/stack/overcloud_adopt/generated-vip-deployed.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \ -e ~/containers-prepare-parameter.yaml
-
<Compute_source_role>
をコピーするソースのコンピュートロールの名前に置き換えます。 -
<Compute_destination_role>
を新しいロールの名前に置き換えます。 -
-o オプションを使用して、新しいロールのソースコンピュートロールのデフォルト以外の値をすべて含む出力ファイルの名前を定義します。
<Compute_new_role_params.yaml>
を出力ファイルの名前に置き換えます。
-
copy_role_Compute_param.sh
スクリプトを実行します。$ sh /home/stack/copy_role_Compute_param.sh
コンピュートノードをソースロールから新しいロールに移動します。
python3 /usr/share/openstack-tripleo-heat-templates/tools/baremetal_transition.py --baremetal-deployment /home/stack/tripleo-<stack>-baremetal-deployment.yaml --src-role <Compute_source_role> --dst-role <Compute_destination_role> <Compute-0> <Compute-1> <Compute-2>
注記このツールには、アンダークラウドのアップグレード中にエクスポートした元の
/home/stack/tripleo-<stack>-baremetal-deployment.yaml
ファイルが含まれています。このツールは、/home/stack/tripleo-<stack>-baremetal-deployment.yaml
ファイル内のソースロール定義をコピーし、名前を変更します。次に、新しく作成された宛先ロールとの競合を防ぐために、hostname_format
を変更します。続いて、ツールはノードをソースロールから宛先ロールに移動し、count
値を変更します。-
<stack>
は、スタックの名前に置き換えます。 -
<Compute_source_role>
を新しいロールに移動するノードを含むソースコンピュートロールの名前に置き換えます。 -
<Compute_destination_role>
を新しいロールの名前に置き換えます。 -
<Compute-0>
<Compute-1>
<Compute-2>
を、新しいロールに移動するノードの名前に置き換えます。
-
ノードを再プロビジョニングして、スタック内の環境ファイルを新しいロールの場所で更新します。
$ openstack overcloud node provision --stack <stack> --output /home/stack/overcloud_adopt/baremetal-deployment.yaml /home/stack/tripleo-<stack>-baremetal-deployment.yaml
注記出力された
baremetal-deployment.yaml
ファイルは、オーバークラウドの導入中にovercloud_upgrade_prepare.sh
ファイルで使用されたファイルと同じものです。RHEL 8.4 に残っているコンピュートロールを
COMPUTE_ROLES
パラメーターに含めて、次のスクリプトを実行します。たとえば、RHEL 8.4 に残っているノードを含むComputeRHEL8
というロールがある場合は、COMPUTE_ROLES = --role ComputeRHEL8
となります。python3 /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \ ${COMPUTE_ROLES} \ --enable-multi-rhel \ --excludes collectd \ --excludes nova-libvirt \ --minor-override "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml
- この手順を繰り返して追加のロールを作成し、追加のコンピュートノードをそれらの新しいロールに移動します。
11.3.2. コンピュートノードのオペレーティングシステムのアップグレード
選択したコンピュートノードのオペレーティングシステムを RHEL 9.2 にアップグレードします。異なるロールから複数のノードを同時にアップグレードできます。
前提条件
環境に必要なロールが作成されていることを確認してください。Multi-RHEL 環境のロールの作成に関する詳細は、Multi-RHEL コンピュートノードのロールの作成 を参照してください。
手順
skip_rhel_release.yaml
ファイルで、SkipRhelEnforcement
パラメーターをfalse
に設定します。parameter_defaults: SkipRhelEnforcement: false
次の例に示すように、
-e
system_upgrade.yaml
引数と必要なその他の-e
環境ファイル引数をovercloud_upgrade_prepare.sh
スクリプトに含めます。$ openstack overcloud upgrade prepare --yes \ ... -e /home/stack/system_upgrade.yaml \ -e /home/stack/<Compute_new_role_params.yaml> \ ...
-
アップグレード固有のパラメーターを持つ
system_upgrade.yaml
ファイルを含めます (-e)。 -
新しいロールに必要なパラメーターを含む環境ファイルを含めます (-e)。
<Compute_new_role_params.yaml>
を新しいロール用に作成した環境ファイルの名前に置き換えます。 - 複数のロールからノードを同時にアップグレードする場合は、作成した新しいロールごとに環境ファイルを含めます。
-
アップグレード固有のパラメーターを持つ
- オプション: インスタンスを移行します。移行計画の詳細は、コンピュートノード間の仮想マシンの移行 および 移行の準備 を参照してください。
-
overcloud_upgrade_prepare.sh
スクリプトを実行します。 特定のコンピュートノード上のオペレーティングシステムをアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、
--limit
オプションを使用します。以下の例では、computerhel9-0
、computerhel9-1
、computerhel9-2
、およびcomputesriov-42
ノードをComputeRHEL9
およびComputeSRIOV
ロールからアップグレードします。$ openstack overcloud upgrade run --yes --tags system_upgrade --stack <stack> --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
- <stack> は、スタックの名前に置き換えます。
コンピュートノード上のコンテナーを RHEL 9.2 にアップグレードします。アップグレードするノードのコンマ区切りリストを指定して、
--limit
オプションを使用します。以下の例では、computerhel9-0
、computerhel9-1
、computerhel9-2
、およびcomputesriov-42
ノードをComputeRHEL9
およびComputeSRIOV
ロールからアップグレードします。$ openstack overcloud upgrade run --yes --stack <stack> --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
第12章 アップグレード後操作の実施
オーバークラウドのアップグレードが完了したら、アップグレード後の設定を実施して、環境が完全にサポートされ、これ以降の操作を行う準備が整っている状態にする必要があります。
Red Hat OpenStack Platform 16.2 から 17.1 にアップグレードした後に追加のオーバークラウドコマンドを実行する場合は、以下の点を考慮する必要があります。
-
アップグレード後に実行するオーバークラウドコマンドには、アップグレードプロセス中に作成または更新した
YAML
ファイルを含める必要があります。たとえば、スケールアップ操作中にオーバークラウドノードをプロビジョニングするには、/home/stack/templates/overcloud-baremetal-deployed.yaml
ファイルではなく、/home/stack/tripleo-[stack]-baremetal-deploy.yaml
ファイルを使用します。 -
system_upgrade.yaml
ファイルとupgrades-environment.yaml
ファイルを除き、openstack overcloud upgrade prepare
コマンドの最後の実行に渡したすべてのオプションを含めます。
12.1. オペレーティングシステムでのアップグレード後のタスクの実行
ホスト上のオペレーティングシステムを Red Hat Enterprise Linux 9.2 にアップグレードした場合は、アップグレード後のタスクを実行する必要があります。これらのタスクの詳細は、RHEL 8 から RHEL 9 への アップグレード のアップグレード後のタスクの実行 を 参照してください。
12.2. オーバークラウドイメージのアップグレード
現在のオーバークラウドイメージを新しいバージョンに置き換える必要があります。新しいイメージにより、director は最新バージョンの Red Hat OpenStack Platform ソフトウェアを使用して、ノードのイントロスペクションとプロビジョニングを行うことができるようになります。
オーバークラウドを再デプロイする場合は、新しいバージョンのオーバークラウドイメージを使用する必要があります。オーバークラウドイメージのインストールに関する詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の オーバークラウドイメージのインストール を参照してください。
前提条件
- アンダークラウドが最新バージョンにアップグレードされていること
手順
stack
ユーザーのホーム下のimages
ディレクトリー (/home/stack/images
) から既存のイメージを削除します。$ rm -rf ~/images/*
アーカイブをデプロイメントします。
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-17.1.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-17.1.tar; do tar -xvf $i; done $ cd ~
イメージを director にインポートします。
(undercloud) [stack@director images]$ openstack overcloud image upload --image-path /home/stack/images/ --update-existing
このコマンドは次のタスクを完了します。
- イメージフォーマットを QCOW から RAW に変換します。
- イメージのアップロードに関するステータスの最新情報を提供します。
12.3. CPU ピニングパラメーターの更新
Red Hat OpenStack Platform 17.1 へのアップグレードが完了した後、CPU ピニング設定を NovaVcpuPinSet
パラメーターから以下のパラメーターに移行する必要があります。
NovaComputeCpuDedicatedSet
- 専用の (ピニングされた) CPU を設定します。
NovaComputeCpuSharedSet
- 共有の (ピニングされていない) CPU を設定します。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 Compute ノードが同時マルチスレッド (SMT) をサポートするが
hw:cpu_thread_policy=isolated
ポリシーでインスタンスを作成している場合は、以下のオプションのいずれかを実施する必要があります。hw:cpu_thread_policy
スレッドポリシーを設定しない新しいフレーバーを作成し、そのフレーバーでインスタンスのサイズを変更します。source コマンドでオーバークラウドの認証ファイルを読み込みます。
$ source ~/overcloudrc
デフォルトのスレッドポリシー
prefer
を使用してフレーバーを作成します。(overcloud) $ openstack flavor create <flavor>
注記インスタンスのサイズを変更する場合は、新しいフレーバーを使用する必要があります。現在のフレーバーを再利用することはできません。詳細は、インスタンスの作成と管理 ガイドの インスタンスのサイズ変更 を参照してください。
新しいフレーバーを使用するようにインスタンスを変換します。
(overcloud) $ openstack server resize --flavor <flavor> <server> (overcloud) $ openstack server resize confirm <server>
-
hw:cpu_thread_policy=isolated
ポリシーを使用するすべての固定インスタンスに対して、このステップを繰り返します。
Compute ノードからインスタンスを移行して、Compute ノードの SMT を無効にする。
source コマンドでオーバークラウドの認証ファイルを読み込みます。
$ source ~/overcloudrc
Compute ノードが新しい仮想マシンを受け入れるのを無効にします。
(overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable
- Compute ノードからすべてのインスタンスを移行します。インスタンスの移行の詳細は、コンピュートノード間の仮想マシンインスタンスの移行 を参照してください。
- Compute ノードをリブートし、Compute ノードの BIOS で SMT を無効にします。
- Compute ノードをブートします。
Compute ノードを再度有効にします。
(overcloud) $ openstack compute service set <hostname> nova-compute --enable
stackrc
ファイルを取得します。$ source ~/stackrc
-
NovaVcpuPinSet
パラメーターが含まれる環境ファイルを編集します。 CPU ピニングの設定を
NovaVcpuPinSet
パラメーターからNovaComputeCpuDedicatedSet
とNovaComputeCpuSharedSet
に移行します。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuDedicatedSet
に変更します。 -
これまでピニングされていないインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuSharedSet
に変更します。 -
NovaVcpuPinSet の値が設定されていない場合には、ノード上でホストするインスタンスの種別に応じて、すべての Compute ノードのコアを
NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のどちらかに割り当てる必要があります。
たとえば、以前の環境ファイルに以下のピニング設定が定義されていたとします。
parameter_defaults: ... NovaVcpuPinSet: 1,2,3,5,6,7 ...
設定をピニング設定に移行するには、
NovaComputeCpuDedicatedSet
パラメーターを設定し、NovaVcpuPinSet
パラメーターの設定を解除します。parameter_defaults: ... NovaComputeCpuDedicatedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...
設定をピニングしない設定に移行するには、
NovaComputeCpuSharedSet
パラメーターを設定し、NovaVcpuPinSet
パラメーターの設定を解除します。parameter_defaults: ... NovaComputeCpuSharedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...
重要NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のいずれかが、NovaVcpuPinSet
で定義した設定と一致するようにします。NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のいずれかの設定を変更する、またはその両方を設定するには、設定を更新する前にピニング設定の Compute ノードが 1 つのインスタンスも実行していないようにします。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
- ファイルを保存します。
デプロイメントコマンドを実行して、新しい CPU ピニングパラメーターでオーバークラウドを更新します。
(undercloud) $ openstack overcloud deploy \ --stack _STACK NAME_ \ --templates \ ... -e /home/stack/templates/<compute_environment_file>.yaml ...
12.4. RHOSP 17 へのアップグレード後のホストのデフォルトマシンタイプの更新
インスタンスのマシンタイプは、PCIe グラフィックスカードやイーサネットコントローラーなどの特定のデフォルトデバイスを提供する仮想チップセットです。クラウドユーザーは、必要な hw_machine_type
メタデータプロパティーを持つイメージを使用して、インスタンスのマシンタイプを指定できます。
クラウド管理者は、コンピュートパラメーター NovaHWMachineType
を使用して、各コンピュートノードアーキテクチャーをデフォルトのマシンタイプで設定し、そのアーキテクチャーでホストされているインスタンスに適用できます。インスタンスの起動時に hw_machine_type
イメージプロパティーが指定されていない場合は、ホストアーキテクチャーのデフォルトのマシンタイプがインスタンスに適用されます。Red Hat OpenStack Platform (RHOSP) 17 は RHEL 9 をベースにしています。pc-i440fx
QEMU マシンタイプは RHEL 9 で非推奨となったため、RHEL 9 で実行される x86_64
インスタンスのデフォルトのマシンタイプは pc
から q35
に変更されました。RHEL 9 でのこの変更に基づいて、マシンタイプ x86_64
のデフォルト値も、RHOSP 16 の pc
から RHOSP 17 の q35
に変更されました。
RHOSP 16.2 以降では、Compute サービスは、インスタンスの起動時にインスタンスのシステムメタデータ内にインスタンスのマシンタイプを記録します。これは、既存のインスタンスのマシンタイプに影響を及ぼすことなく、RHOSP デプロイメントの有効期間中に NovaHWMachineType
を変更できるようになったことを意味します。
Compute サービスは、SHELVED_OFFLOADED
状態にないインスタンスのマシンタイプを記録します。したがって、RHOSP 17 にアップグレードした後は、SHELVED_OFFLOADED
状態にあるインスタンスのマシンタイプを手動で記録し、環境または特定のセル内におけるすべてのインスタンスのマシンタイプが記録されていることを確認する必要があります。マシンタイプを使用して各インスタンスのシステムメタデータを更新した後、既存のインスタンスのマシンタイプに影響を及ぼすことなく、NovaHWMachineType
パラメーターを RHOSP 17 のデフォルト (q35
) に更新できます。
RHOSP OSP17.0 以降では、Q35 がデフォルトのマシンタイプです。Q35 マシンタイプは PCIe ポートを使用します。heat パラメーター NovaLibvirtNumPciePorts
を設定すると、PCIe ポートデバイスの数を管理できます。PCIe ポートに接続できるデバイスの数は、以前のバージョンで実行いているインスタンスよりも少なくなります。より多くのデバイスを使用する場合は、イメージ属性 hw_disk_bus=scsi
または hw_scsi_model=virtio-scsi
を使用する必要があります。詳細は、仮想ハードウェアのメタデータプロパティー を参照してください。
前提条件
- すべてのコンピュートノードを RHEL 9.2 にアップグレードします。コンピュートノードのアップグレードに関する詳細は、すべてのコンピュートノードを RHEL 9.2 にアップグレードする を参照してください。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 source コマンドで
stackrc
ファイルを読み込みます。$ source ~/stackrc
コントローラーノードに
heat-admin
ユーザーとしてログインします。(undercloud)$ metalsmith list $ ssh heat-admin@<controller_ip>
<controller_ip>
をコントローラーノードの IP アドレスに置き換えます。マシンタイプが設定されていないインスタンスのリストを取得します。
[heat-admin@<controller_ip> ~]$ sudo podman exec -i -u root nova_api \ nova-manage libvirt list_unset_machine_type
インスタンスホストのデフォルトのマシンタイプについては、
nova-hw-machine-type-upgrade.yaml
ファイルのNovaHWMachineType
パラメーターを確認します。RHOSP 16.2 のNovaHWMachineType
パラメーターのデフォルト値は次のとおりです。x86_64=pc-i440fx-rhel7.6.0,aarch64=virt-rhel7.6.0,ppc64=pseries-rhel7.6.0,ppc64le=pseries-rhel7.6.0
各インスタンスのシステムメタデータをデフォルトのインスタンスマシンタイプで更新します。
[heat-admin@<controller_ip> ~]$ sudo podman exec -i -u root nova_api \ nova-manage libvirt update_machine_type <instance_uuid> <machine_type>
-
<instance_uuid>
をインスタンスの UUID に置き換えます。 <machine_type>
をインスタンスを記録するマシンタイプに置き換えます。警告インスタンスが起動したイメージのマシンタイプ以外のマシンタイプを設定すると、既存のインスタンスが起動に失敗する可能性があります。
-
すべてのインスタンスのマシンタイプが記録されていることを確認します。
[heat-admin@<controller_ip> ~]$ sudo podman exec -i -u root nova_api \ nova-status upgrade check
このコマンドは、マシンタイプのないインスタンスが見つかった場合に警告を返します。この警告が表示された場合は、手順 4 からこの手順を繰り返します。
-
コンピュート環境ファイルの
NovaHWMachineType
のデフォルト値をx86_64=q35
に変更し、オーバークラウドをデプロイします。
検証
デフォルトのマシンタイプを持つインスタンスを作成します。
(overcloud)$ openstack server create --flavor <flavor> \ --image <image> --network <network> \ --wait defaultMachineTypeInstance
-
<flavor>
をインスタンスのフレーバーの名前または ID に置き換えます。 -
<image>
をhw_machine_type
を設定しないイメージの名前または ID に置き換えます。 -
<network>
をインスタンスの接続先となるネットワークの名前または ID に置き換えます。
-
インスタンスのマシンタイプがデフォルト値に設定されていることを確認します。
[heat-admin@<controller_ip> ~]$ sudo podman exec -i -u root nova_api \ nova-manage libvirt get_machine_type <instance_uuid>
<instance_uuid>
をインスタンスの UUID に置き換えます。マシンタイプ
x86_64=pc-i440fx
のインスタンスをハードリブートします。(overcloud)$ openstack server reboot --hard <instance_uuid>
<instance_uuid>
をインスタンスの UUID に置き換えます。インスタンスのマシンタイプが変更されていないことを確認します。
[heat-admin@<controller_ip> ~]$ sudo podman exec -i -u root nova_api \ nova-manage libvirt get_machine_type <instance_uuid>
<instance_uuid>
をインスタンスの UUID に置き換えます。
12.5. オーバークラウドでのフェンシングの再有効化
オーバークラウドをアップグレードする前に、オーバークラウドでのフェンシングの無効化 で、フェンシングを無効化しました。環境をアップグレードした後、ノードに障害が発生した場合にデータを保護するためにフェンシングを再度有効にします。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
コントローラーノードにログインし、Pacemaker コマンドを実行してフェンシングを再度有効にします。
$ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=true"
-
<controller_ip>
は、コントローラーノードの IP アドレスに置き換えます。コントローラーノードの IP アドレスは、openstack server list
コマンドで確認できます。
-
-
fencing.yaml
環境ファイルで、EnableFencing
パラメーターをtrue
に設定します。
第13章 Red Hat Ceph Storage 5 から 6 へのアップグレード
他のすべてのアップグレードタスクが完了したら、Red Hat Ceph Storage クラスターをリリース 5 から 6 にアップグレードできます。
前提条件
- Red Hat OpenStack Platform 16.2 から 17.1 へのアップグレードが完了している。
- すべてのコントローラーノードおよび Red Hat Ceph Storage ノードは、Red Hat Enterprise Linux (RHEL) 9.2 にアップグレードされています。詳細は、コントロールプレーンのオペレーティングシステムのアップグレード を 参照してください。
- HCI 環境では、すべてのコンピュートノードも RHEL 9 にアップグレードする必要があります。詳しくは、コンピュートノードのオペレーティングシステムのアップグレード を 参照してください。
- 現在の Red Hat Ceph Storage 5 クラスターが健全な状態である。
13.1. director でデプロイされた Red Hat Ceph Storage 環境
Red Hat Ceph Storage が director によって環境にデプロイされた場合は、次のタスクを実行します。
13.1.1. cephadm
クライアントの更新
Red Hat Ceph Storage クラスターをアップグレードする前に、オーバークラウドノードの cephadm
パッケージをリリース 6 に更新する必要があります。
前提条件
Red Hat Ceph Storage クラスターの健全性ステータスが HEALTH_OK
であることを確認します。コントローラーノードにログインし、コマンド sudo cephadm shell — ceph -s
を使用してクラスターの健全性を確認します。ステータスが HEALTH_OK
でない場合は、この手順を続行する前に問題を修正してください。
手順
コントローラーノードで Red Hat Ceph Storage (ツールのみ) リポジトリーを有効にするための Playbook を作成します。次の情報を含める必要があります。
- hosts: all gather_facts: false tasks: - name: Enable RHCS 6 tools repo ansible.builtin.command: | subscription-manager repos --disable=rhceph-5-tools-for-rhel-9-x86_64-rpms subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms become: true - name: Update cephadm ansible.builtin.package: name: cephadm state: latest become: true
Playbook を実行します。
ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml <playbook_file_name> --limit <controller_role>
-
<stack>
は、スタックの名前に置き換えます。 -
<playbook_file_name>
は、前の手順で作成した Playbook の名前に置き換えます。 -
<controller_role>
は、コントローラーノードに適用するロールに置き換えます。 -
--limit
オプションを使用して、コンテンツをコントローラーノードにのみ適用します。
-
- コントローラーノードにログインします。
cephadm
パッケージがリリース 6 に更新されていることを確認します。$ sudo dnf info cephadm | grep -i version
13.1.2. Red Hat Ceph Storage コンテナーイメージの更新
container-image-prepare.yaml
ファイルは、ContainerImagePrepare
パラメーターを含むファイルであり、Red Hat Ceph Storage コンテナーを定義します。このファイルは、アンダークラウドとオーバークラウドのコンテナーイメージを取得するルールを定義するために、tripleo-container-image prepare
コマンドで使用します。環境を更新する前に、このファイルを正しいイメージバージョンで更新してください。
手順
-
コンテナー準備ファイルを見つけます。このファイルのデフォルト名は、
containers-prepare-parameter.yaml
です。 - コンテナー準備ファイルを編集します。
ceph_tag
パラメーターを見つけます。現在のエントリーは次の例のようになっているはずです。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '5'
Red Hat Ceph Storage 6 の
ceph_tag
パラメーターを更新します。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '6'
containers-image-prepare.yaml
ファイルを編集し、Red Hat Ceph モニタリングスタックコンテナー関連のパラメーターを次の内容に置き換えます。ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.12 ceph_grafana_image: rhceph-6-dashboard-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.12 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.12
- ファイルを保存します。
13.1.3. container image prepare の実行
director コンテナー準備コマンドを実行して、コンテナーイメージの準備プロセスを完了します。これにより、オーバークラウド用のすべてのコンテナーイメージ設定が準備され、最新の Red Hat Ceph Storage 6 コンテナーイメージが取得されます。
Red Hat Satellite Server を使用して Red Hat OpenStack Platform (RHOSP)環境の RPM およびコンテナーイメージをホストする場合は、この手順を実行しないでください。Satellite を更新して Red Hat Ceph Storage 6 コンテナーイメージを追加し、containers-prepare-parameter.yaml
ファイルを更新して、Satellite Server でホストされているコンテナーイメージの URL を参照します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
コンテナー準備コマンドを実行します。
$ openstack tripleo container image prepare -e <container_preparation_file>
-
<container_preparation_file>
は、ファイルの名前に置き換えます。デフォルトのファイルは、containers-prepare-parameter.yaml
です。
-
新しい Red Hat Ceph Storage イメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'
新しい Red Hat Ceph Storage モニタリングスタックイメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/grafana|prometheus|alertmanager|node-exporter/ {print $2}'
13.1.4. Red Hat Ceph Storage 6 モニタリングスタックイメージを使用した Ceph Manager の設定
手順
- コントローラーノードにログインします。
Ceph Manager 設定から現在のイメージをリスト表示します。
$ sudo cephadm shell -- ceph config dump | grep image
モニタリングスタックサービスの Ceph Manager 設定を更新して、Red Hat Ceph Storage 6 イメージを使用します。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager <alertmanager_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_grafana <grafana_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_node_exporter <node_exporter_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_prometheus <prometheus_image>
-
<alertmanager_image>
を新しい alertmanager イメージに置き換えます。 -
<grafana_image>
を新しい grafana イメージに置き換えます。 -
<node_exporter_image>
を新しいノードエクスポーターイメージに置き換えます。 <prometheus_image>
を新しい Prometheus イメージに置き換えます。以下は、アラートマネージャー更新コマンドの例です。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.12
-
Red Hat Ceph Storage クラスターで新しいイメージ参照が更新されていることを確認します。
$ sudo cephadm shell -- ceph config dump | grep image
13.1.5. Orchestrator を使用した Red Hat Ceph Storage 6 へのアップグレード
cephadm
コマンドの Orchestrator 機能を使用して、Red Hat Ceph Storage 6 にアップグレードします。
前提条件
ceph-mon
サービスを実行している Monitor またはコントローラーノードで、sudo cephadm --shell ceph status
コマンドを使用して、Red Hat Ceph Storage クラスターのステータスを確認する。このコマンドは、次の 3 つの応答のいずれかを返します。-
HEALTH_OK
- クラスターは健全な状態です。クラスターのアップグレードを続行してください。 -
HEALTH_WARN
- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。 -
HEALTH_ERR
- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。
-
手順
- コントローラーノードにログインします。
Red Hat Ceph Storage 6 アップグレードガイド の cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード を使用して、クラスターを最新の Red Hat Ceph Storage バージョンにアップグレードします。
重要Red Hat OpenStack を使用してデプロイされた Red Hat Ceph Storage クラスター を director がアップグレードする場合、Red Hat Ceph Storage クラスターのアップグレード の手順 1 から 4 は必要ありません。手順のステップ 5 から開始します。
Red Hat Ceph Storage コンテナーのアップグレードが完了するまで待ちます。
注記コマンド
sudo cephadm shell — ceph orch upgrade status
を使用して、ステータスのアップグレードを監視します。
13.1.6. Red Hat Ceph Storage 5 から 6 に移行する場合の NFS Ganesha のアップグレード
Red Hat Ceph Storage をリリース 4 から 5 にアップグレードする場合、NFS Ganesha は Orchestrator によって導入されません。そのため、NFS Ganesha は director の管理下に残り、手動でリリース 6 に移動する必要があります。
Red Hat Ceph Storage 5 ベースの NFS Ganesha と Red Hat Ceph Storage 6 クラスターの併用は、アップグレード期間中にのみサポートされます。Red Hat Ceph Storage クラスターを 6 にアップグレードしたら、リリース 6 ベースのコンテナーイメージを使用するように NFS Ganesha をアップグレードする必要があります。
この手順は、CephFS NFS を使用する Shared File Systems サービス (manila) を使用している環境にのみ適用されます。この環境では、NFS Ganesha に合わせた Red Hat Ceph Storage コンテナーのアップグレードが必須です。
手順
- コントローラーノードにログインします。
ceph-nfs
サービスを調べます。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットを調べて、Red Hat Ceph Storage 5 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep -i container_image
次の内容を含む
/home/stack/ganesha_update_extravars.yaml
というファイルを作成します。tripleo_cephadm_container_image: <ceph_image_name> tripleo_cephadm_container_ns: <ceph_image_namespace> tripleo_cephadm_container_tag: <ceph_image_tag>
-
<ceph_image_name>
は、Red Hat Ceph Storage コンテナーイメージの名前に置き換えます。 -
<ceph_image_namespace>
は、Red Hat Ceph Storage コンテナーの名前空間の名前に置き換えます。 <ceph_image_tag>
は、Red Hat Ceph Storage コンテナータグの名前に置き換えます。たとえば、一般的な環境では、このファイルの内容として次の値が含まれます。
tripleo_cephadm_container_image: rhceph-6-rhel9 tripleo_cephadm_container_ns: undercloud-0.ctlplane.redhat.local:8787 tripleo_cephadm_container_tag: '6'
-
- ファイルを保存します。
ceph-update-genesha.yml
Playbook を実行します。追加のコマンドパラメーターとしてganesha_update_extravars.yaml
Playbook を指定します。ansible-playbook -i $HOME/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ceph-update-ganesha.yml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/global_vars.yaml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/cephadm/cephadm-extra-vars-heat.yml \ -e @$HOME/ganesha_update_extravars.yaml
-
<stack>
は、オーバークラウドスタックの名前に置き換えます。
-
ceph-nfs
サービスが実行されていることを確認します。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットに Red Hat Ceph Storage 6 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep rhceph
13.2. 外部 Red Hat Ceph Storage クラスター環境
Red Hat Ceph Storage クラスターが環境内の Red Hat OpenStack Platform デプロイメントの外部にある場合は、次のタスクを実行します。
13.2.1. Red Hat Ceph Storage コンテナーイメージの更新
container-image-prepare.yaml
ファイルは、ContainerImagePrepare
パラメーターを含むファイルであり、Red Hat Ceph Storage コンテナーを定義します。このファイルは、アンダークラウドとオーバークラウドのコンテナーイメージを取得するルールを定義するために、tripleo-container-image prepare
コマンドで使用します。環境を更新する前に、このファイルを正しいイメージバージョンで更新してください。
手順
-
コンテナー準備ファイルを見つけます。このファイルのデフォルト名は、
containers-prepare-parameter.yaml
です。 - コンテナー準備ファイルを編集します。
ceph_tag
パラメーターを見つけます。現在のエントリーは次の例のようになっているはずです。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '5'
Red Hat Ceph Storage 6 の
ceph_tag
パラメーターを更新します。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '6'
containers-image-prepare.yaml
ファイルを編集し、Red Hat Ceph モニタリングスタックコンテナー関連のパラメーターを次の内容に置き換えます。ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.12 ceph_grafana_image: rhceph-6-dashboard-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.12 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.12
- ファイルを保存します。
13.2.2. container image prepare の実行
director コンテナー準備コマンドを実行して、コンテナーイメージの準備プロセスを完了します。これにより、オーバークラウド用のすべてのコンテナーイメージ設定が準備され、最新の Red Hat Ceph Storage 6 コンテナーイメージが取得されます。
Red Hat Satellite Server を使用して Red Hat OpenStack Platform (RHOSP)環境の RPM およびコンテナーイメージをホストする場合は、この手順を実行しないでください。Satellite を更新して Red Hat Ceph Storage 6 コンテナーイメージを追加し、containers-prepare-parameter.yaml
ファイルを更新して、Satellite Server でホストされているコンテナーイメージの URL を参照します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
コンテナー準備コマンドを実行します。
$ openstack tripleo container image prepare -e <container_preparation_file>
-
<container_preparation_file>
は、ファイルの名前に置き換えます。デフォルトのファイルは、containers-prepare-parameter.yaml
です。
-
新しい Red Hat Ceph Storage イメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'
新しい Red Hat Ceph Storage モニタリングスタックイメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/grafana|prometheus|alertmanager|node-exporter/ {print $2}'
13.2.3. Red Hat Ceph Storage 5 から 6 に移行する場合の NFS Ganesha のアップグレード
Red Hat Ceph Storage をリリース 4 から 5 にアップグレードする場合、NFS Ganesha は Orchestrator によって導入されません。そのため、NFS Ganesha は director の管理下に残り、手動でリリース 6 に移動する必要があります。
Red Hat Ceph Storage 5 ベースの NFS Ganesha と Red Hat Ceph Storage 6 クラスターの併用は、アップグレード期間中にのみサポートされます。Red Hat Ceph Storage クラスターを 6 にアップグレードしたら、リリース 6 ベースのコンテナーイメージを使用するように NFS Ganesha をアップグレードする必要があります。
この手順は、CephFS NFS を使用する Shared File Systems サービス (manila) を使用している環境にのみ適用されます。この環境では、NFS Ganesha に合わせた Red Hat Ceph Storage コンテナーのアップグレードが必須です。
手順
- コントローラーノードにログインします。
ceph-nfs
サービスを調べます。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットを調べて、Red Hat Ceph Storage 5 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep -i container_image
次の内容を含む
/home/stack/ganesha_update_extravars.yaml
というファイルを作成します。tripleo_cephadm_container_image: <ceph_image_name> tripleo_cephadm_container_ns: <ceph_image_namespace> tripleo_cephadm_container_tag: <ceph_image_tag>
-
<ceph_image_name>
は、Red Hat Ceph Storage コンテナーイメージの名前に置き換えます。 -
<ceph_image_namespace>
は、Red Hat Ceph Storage コンテナーの名前空間の名前に置き換えます。 <ceph_image_tag>
は、Red Hat Ceph Storage コンテナータグの名前に置き換えます。たとえば、一般的な環境では、このファイルの内容として次の値が含まれます。
tripleo_cephadm_container_image: rhceph-6-rhel9 tripleo_cephadm_container_ns: undercloud-0.ctlplane.redhat.local:8787 tripleo_cephadm_container_tag: '6'
-
- ファイルを保存します。
ceph-update-genesha.yml
Playbook を実行します。追加のコマンドパラメーターとしてganesha_update_extravars.yaml
Playbook を指定します。ansible-playbook -i $HOME/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ceph-update-ganesha.yml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/global_vars.yaml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/cephadm/cephadm-extra-vars-heat.yml \ -e @$HOME/ganesha_update_extravars.yaml
-
<stack>
は、オーバークラウドスタックの名前に置き換えます。
-
ceph-nfs
サービスが実行されていることを確認します。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットに Red Hat Ceph Storage 6 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep rhceph
第14章 Red Hat Ceph Storage 5 から 6 へのアップグレード
他のすべてのアップグレードタスクが完了したら、Red Hat Ceph Storage クラスターをリリース 5 から 6 にアップグレードできます。
前提条件
- Red Hat OpenStack Platform 16.2 から 17.1 へのアップグレードが完了している。
- すべてのコントローラーノードが Red Hat Enterprise Linux 9 にアップグレードされている。HCI 環境では、すべてのコンピュートノードも RHEL 9 にアップグレードする必要があります。
- 現在の Red Hat Ceph Storage 5 クラスターが健全な状態である。
14.1. director でデプロイされた Red Hat Ceph Storage 環境
Red Hat Ceph Storage が director によって環境にデプロイされた場合は、次のタスクを実行します。
14.1.1. cephadm
クライアントの更新
Red Hat Ceph Storage クラスターをアップグレードする前に、オーバークラウドノードの cephadm
パッケージをリリース 6 に更新する必要があります。
前提条件
Red Hat Ceph Storage クラスターの健全性ステータスが HEALTH_OK
であることを確認します。コントローラーノードにログインし、コマンド sudo cephadm shell — ceph -s
を使用してクラスターの健全性を確認します。ステータスが HEALTH_OK
でない場合は、この手順を続行する前に問題を修正してください。
手順
コントローラーノードで Red Hat Ceph Storage (ツールのみ) リポジトリーを有効にするための Playbook を作成します。次の情報を含める必要があります。
- hosts: all gather_facts: false tasks: - name: Enable RHCS 7 tools repo ansible.builtin.command: | subscription-manager repos --disable=rhceph-6-tools-for-rhel-9-x86_64-rpms subscription-manager repos --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms become: true - name: Update cephadm ansible.builtin.package: name: cephadm state: latest
Playbook を実行します。
ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml <playbook_file_name> --limit <controller_role>
-
<stack>
は、スタックの名前に置き換えます。 -
<playbook_file_name>
は、前の手順で作成した Playbook の名前に置き換えます。 -
<controller_role>
は、コントローラーノードに適用するロールに置き換えます。 -
--limit
オプションを使用して、コンテンツをコントローラーノードにのみ適用します。
-
- コントローラーノードにログインします。
cephadm
パッケージがリリース 6 に更新されていることを確認します。$ sudo dnf info cephadm | grep -i version
14.1.2. Red Hat Ceph Storage コンテナーイメージの更新
container-image-prepare.yaml
ファイルは、ContainerImagePrepare
パラメーターを含むファイルであり、Red Hat Ceph Storage コンテナーを定義します。このファイルは、アンダークラウドとオーバークラウドのコンテナーイメージを取得するルールを定義するために、tripleo-container-image prepare
コマンドで使用します。環境を更新する前に、このファイルを正しいイメージバージョンで更新してください。
手順
-
コンテナー準備ファイルを見つけます。このファイルのデフォルト名は、
containers-prepare-parameter.yaml
です。 - コンテナー準備ファイルを編集します。
ceph_tag
パラメーターを見つけます。現在のエントリーは次の例のようになっているはずです。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '6'
Red Hat Ceph Storage 6 の
ceph_tag
パラメーターを更新します。ceph_namespace: registry.redhat.io ceph_image: rhceph-7-rhel9 ceph_tag: '7'
containers-image-prepare.yaml
ファイルを編集し、Red Hat Ceph モニタリングスタックコンテナー関連のパラメーターを次の内容に置き換えます。ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.15 ceph_grafana_image: grafana-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.15 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.15
- ファイルを保存します。
14.1.3. container image prepare の実行
director コンテナー準備コマンドを実行して、コンテナーイメージの準備プロセスを完了します。これにより、オーバークラウド用のすべてのコンテナーイメージ設定が準備され、最新の Red Hat Ceph Storage 6 コンテナーイメージが取得されます。
Red Hat Satellite Server を使用して Red Hat OpenStack Platform (RHOSP)環境の RPM およびコンテナーイメージをホストする場合は、この手順を実行しないでください。Satellite を更新して Red Hat Ceph Storage 7 コンテナーイメージを追加し、containers-prepare-parameter.yaml
ファイルを更新して、Satellite Server でホストされているコンテナーイメージの URL を参照します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
コンテナー準備コマンドを実行します。
$ openstack tripleo container image prepare -e <container_preparation_file>
-
<container_preparation_file>
は、ファイルの名前に置き換えます。デフォルトのファイルは、containers-prepare-parameter.yaml
です。
-
新しい Red Hat Ceph Storage イメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'
Red Hat Ceph Storage Dashboard が有効になっている場合は、新しい Red Hat モニタリングスタックイメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/grafana|prometheus|alertmanager|node-exporter/ {print $2}'
14.1.4. Red Hat Ceph Storage 6 モニタリングスタックイメージを使用した Ceph Manager の設定
手順
- コントローラーノードにログインします。
Ceph Manager 設定から現在のイメージをリスト表示します。
$ sudo cephadm shell -- ceph config dump | grep image
コマンド出力の例を以下に示します。
global basic container_image undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph:6-311 * mgr advanced mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.12 * mgr advanced mgr/cephadm/container_image_base undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph mgr advanced mgr/cephadm/container_image_grafana undercloud-0.ctlplane.redhat.local:8787/rh-osbs/grafana:latest * mgr advanced mgr/cephadm/container_image_node_exporter undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-node-exporter:v4.12 * mgr advanced mgr/cephadm/container_image_prometheus undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus:v4.12
モニタリングスタックサービスの Ceph Manager 設定を更新して、Red Hat Ceph Storage 6 イメージを使用します。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager <alertmanager_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_grafana <grafana_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_node_exporter <node_exporter_image> $ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_prometheus <prometheus_image>
-
<alertmanager_image>
を新しい alertmanager イメージに置き換えます。 -
<grafana_image>
を新しい grafana イメージに置き換えます。 -
<node_exporter_image>
を新しいノードエクスポーターイメージに置き換えます。 <prometheus_image>
を新しい Prometheus イメージに置き換えます。以下は、アラートマネージャー更新コマンドの例です。
$ sudo cephadm shell -- ceph config set mgr mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.15
-
Red Hat Ceph Storage クラスターで新しいイメージ参照が更新されていることを確認します。
$ sudo cephadm shell -- ceph config dump | grep image
14.1.5. Orchestrator を使用した Red Hat Ceph Storage 6 へのアップグレード
cephadm
コマンドの Orchestrator 機能を使用して、Red Hat Ceph Storage 6 にアップグレードします。
前提条件
ceph-mon
サービスを実行している Monitor またはコントローラーノードで、sudo cephadm --shell ceph status
コマンドを使用して、Red Hat Ceph Storage クラスターのステータスを確認する。このコマンドは、次の 3 つの応答のいずれかを返します。-
HEALTH_OK
- クラスターは健全な状態です。クラスターのアップグレードを続行してください。 -
HEALTH_WARN
- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。 -
HEALTH_ERR
- クラスターは異常です。障害となっている問題が解決されるまでは、クラスターのアップグレードを続行しないでください。トラブルシューティングのガイダンスについては、Red Hat Ceph Storage 5 トラブルシューティングガイド を参照してください。
-
手順
- コントローラーノードにログインします。
Red Hat Ceph Storage 6 アップグレードガイド の cephadm を使用した Red Hat Ceph Storage クラスターのアップグレード を使用して、クラスターを最新の Red Hat Ceph Storage バージョンにアップグレードします。
重要Red Hat OpenStack を使用してデプロイされた Red Hat Ceph Storage クラスター を director がアップグレードする場合、Red Hat Ceph Storage クラスターのアップグレード の手順 1 から 4 は必要ありません。手順のステップ 5 から開始します。
Red Hat Ceph Storage コンテナーのアップグレードが完了するまで待ちます。
注記コマンド
sudo cephadm shell — ceph orch upgrade status
を使用して、ステータスのアップグレードを監視します。
14.1.6. Red Hat Ceph Storage 5 から 6 に移行する場合の NFS Ganesha のアップグレード
Red Hat Ceph Storage をリリース 4 から 5 にアップグレードする場合、NFS Ganesha は Orchestrator によって導入されません。そのため、NFS Ganesha は director の管理下に残り、手動でリリース 6 に移動する必要があります。
Red Hat Ceph Storage 5 ベースの NFS Ganesha と Red Hat Ceph Storage 6 クラスターの併用は、アップグレード期間中にのみサポートされます。Red Hat Ceph Storage クラスターを 6 にアップグレードしたら、リリース 6 ベースのコンテナーイメージを使用するように NFS Ganesha をアップグレードする必要があります。
この手順は、CephFS NFS を使用する Shared File Systems サービス (manila) を使用している環境にのみ適用されます。この環境では、NFS Ganesha に合わせた Red Hat Ceph Storage コンテナーのアップグレードが必須です。
手順
- コントローラーノードにログインします。
ceph-nfs
サービスを調べます。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットを調べて、Red Hat Ceph Storage 5 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep -i container_image
次の内容を含む
/home/stack/ganesha_update_extravars.yaml
というファイルを作成します。tripleo_cephadm_container_image: <ceph_image_name> tripleo_cephadm_container_ns: <ceph_image_namespace> tripleo_cephadm_container_tag: <ceph_image_tag>
-
<ceph_image_name>
は、Red Hat Ceph Storage コンテナーイメージの名前に置き換えます。 -
<ceph_image_namespace>
は、Red Hat Ceph Storage コンテナーの名前空間の名前に置き換えます。 <ceph_image_tag>
は、Red Hat Ceph Storage コンテナータグの名前に置き換えます。たとえば、一般的な環境では、このファイルの内容として次の値が含まれます。
tripleo_cephadm_container_image: rhceph-7-rhel9 tripleo_cephadm_container_ns: undercloud-0.ctlplane.redhat.local:8787 tripleo_cephadm_container_tag: '7'
-
- ファイルを保存します。
ceph-update-genesha.yml
Playbook を実行します。追加のコマンドパラメーターとしてganesha_update_extravars.yaml
Playbook を指定します。ansible-playbook -i $HOME/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ceph-update-ganesha.yml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/global_vars.yaml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/cephadm/cephadm-extra-vars-heat.yml \ -e @$HOME/ganesha_update_extravars.yaml
-
<stack>
は、オーバークラウドスタックの名前に置き換えます。
-
ceph-nfs
サービスが実行されていることを確認します。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットに Red Hat Ceph Storage 6 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep rhceph
14.2. 外部 Red Hat Ceph Storage クラスター環境
Red Hat Ceph Storage クラスターが環境内の Red Hat OpenStack Platform デプロイメントの外部にある場合は、次のタスクを実行します。
14.2.1. Red Hat Ceph Storage コンテナーイメージの更新
container-image-prepare.yaml
ファイルは、ContainerImagePrepare
パラメーターを含むファイルであり、Red Hat Ceph Storage コンテナーを定義します。このファイルは、アンダークラウドとオーバークラウドのコンテナーイメージを取得するルールを定義するために、tripleo-container-image prepare
コマンドで使用します。環境を更新する前に、このファイルを正しいイメージバージョンで更新してください。
手順
-
コンテナー準備ファイルを見つけます。このファイルのデフォルト名は、
containers-prepare-parameter.yaml
です。 - コンテナー準備ファイルを編集します。
ceph_tag
パラメーターを見つけます。現在のエントリーは次の例のようになっているはずです。ceph_namespace: registry.redhat.io ceph_image: rhceph-6-rhel9 ceph_tag: '6'
Red Hat Ceph Storage 6 の
ceph_tag
パラメーターを更新します。ceph_namespace: registry.redhat.io ceph_image: rhceph-7-rhel9 ceph_tag: '7'
containers-image-prepare.yaml
ファイルを編集し、Red Hat Ceph モニタリングスタックコンテナー関連のパラメーターを次の内容に置き換えます。ceph_alertmanager_image: ose-prometheus-alertmanager ceph_alertmanager_namespace: registry.redhat.io/openshift4 ceph_alertmanager_tag: v4.15 ceph_grafana_image: grafana-rhel9 ceph_grafana_namespace: registry.redhat.io/rhceph ceph_grafana_tag: latest ceph_node_exporter_image: ose-prometheus-node-exporter ceph_node_exporter_namespace: registry.redhat.io/openshift4 ceph_node_exporter_tag: v4.15 ceph_prometheus_image: ose-prometheus ceph_prometheus_namespace: registry.redhat.io/openshift4 ceph_prometheus_tag: v4.15
- ファイルを保存します。
14.2.2. container image prepare の実行
director コンテナー準備コマンドを実行して、コンテナーイメージの準備プロセスを完了します。これにより、オーバークラウド用のすべてのコンテナーイメージ設定が準備され、最新の Red Hat Ceph Storage 6 コンテナーイメージが取得されます。
Red Hat Satellite Server を使用して Red Hat OpenStack Platform (RHOSP)環境の RPM およびコンテナーイメージをホストする場合は、この手順を実行しないでください。Satellite を更新して Red Hat Ceph Storage 7 コンテナーイメージを追加し、containers-prepare-parameter.yaml
ファイルを更新して、Satellite Server でホストされているコンテナーイメージの URL を参照します。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
コンテナー準備コマンドを実行します。
$ openstack tripleo container image prepare -e <container_preparation_file>
-
<container_preparation_file>
は、ファイルの名前に置き換えます。デフォルトのファイルは、containers-prepare-parameter.yaml
です。
-
新しい Red Hat Ceph Storage イメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'
Red Hat Ceph Storage Dashboard が有効になっている場合は、新しい Red Hat モニタリングスタックイメージがアンダークラウドレジストリーに存在することを確認します。
$ openstack tripleo container image list -f value | awk -F '//' '/grafana|prometheus|alertmanager|node-exporter/ {print $2}'
14.2.3. Red Hat Ceph Storage 5 から 6 に移行する場合の NFS Ganesha のアップグレード
Red Hat Ceph Storage をリリース 4 から 5 にアップグレードする場合、NFS Ganesha は Orchestrator によって導入されません。そのため、NFS Ganesha は director の管理下に残り、手動でリリース 6 に移動する必要があります。
Red Hat Ceph Storage 5 ベースの NFS Ganesha と Red Hat Ceph Storage 6 クラスターの併用は、アップグレード期間中にのみサポートされます。Red Hat Ceph Storage クラスターを 6 にアップグレードしたら、リリース 6 ベースのコンテナーイメージを使用するように NFS Ganesha をアップグレードする必要があります。
この手順は、CephFS NFS を使用する Shared File Systems サービス (manila) を使用している環境にのみ適用されます。この環境では、NFS Ganesha に合わせた Red Hat Ceph Storage コンテナーのアップグレードが必須です。
手順
- コントローラーノードにログインします。
ceph-nfs
サービスを調べます。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットを調べて、Red Hat Ceph Storage 5 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep -i container_image
次の内容を含む
/home/stack/ganesha_update_extravars.yaml
というファイルを作成します。tripleo_cephadm_container_image: <ceph_image_name> tripleo_cephadm_container_ns: <ceph_image_namespace> tripleo_cephadm_container_tag: <ceph_image_tag>
-
<ceph_image_name>
は、Red Hat Ceph Storage コンテナーイメージの名前に置き換えます。 -
<ceph_image_namespace>
は、Red Hat Ceph Storage コンテナーの名前空間の名前に置き換えます。 <ceph_image_tag>
は、Red Hat Ceph Storage コンテナータグの名前に置き換えます。たとえば、一般的な環境では、このファイルの内容として次の値が含まれます。
tripleo_cephadm_container_image: rhceph-7-rhel9 tripleo_cephadm_container_ns: undercloud-0.ctlplane.redhat.local:8787 tripleo_cephadm_container_tag: '7'
-
- ファイルを保存します。
ceph-update-genesha.yml
Playbook を実行します。追加のコマンドパラメーターとしてganesha_update_extravars.yaml
Playbook を指定します。ansible-playbook -i $HOME/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ceph-update-ganesha.yml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/global_vars.yaml \ -e @$HOME/overcloud-deploy/<stack>/config-download/<stack>/cephadm/cephadm-extra-vars-heat.yml \ -e @$HOME/ganesha_update_extravars.yaml
-
<stack>
は、オーバークラウドスタックの名前に置き換えます。
-
ceph-nfs
サービスが実行されていることを確認します。$ sudo pcs status | grep ceph-nfs
ceph-nfs systemd
ユニットに Red Hat Ceph Storage 6 のコンテナーイメージとタグが含まれていることを確認します。$ cat /etc/systemd/system/ceph-nfs@.service | grep rhceph