16.2 から 17.1 へのアップグレードフレームワーク
Red Hat OpenStack Platform 16.2 から 17.1 へのインプレースアップグレード
OpenStack Documentation Team
rhos-docs@redhat.com
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
Jira でのドキュメントフィードバックの提供
Create Issue フォームを使用して、ドキュメントに関するフィードバックを提供します。Jira 問題は Red Hat OpenStack Platform Jira プロジェクトに作成され、フィードバックの進捗を追跡できます。
- Jira にログインしていることを確認してください。Jira アカウントをお持ちでない場合は、フィードバックを送信するアカウントを作成します。
- 以下のリンクをクリックして、 Create Issue ページを開きます。
- 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
によって管理されていました。Red Hat Ceph Storage ノードは、Red Hat Ceph Storage 5 ライフサイクルが終了するまで RHOSP 17.1 でバージョン 5 のままにできます。 デフォルトでは、RHOSP オーバークラウドは、バージョン 16.2 および 17.1 のデフォルトの ML2 メカニズムドライバーとして Open Virtual Network (OVN) を使用します。
RHOSP 16.2 デプロイメントで OVS メカニズムドライバーを使用している場合は、OVS メカニズムドライバーを使用して 17.1.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 17.1 は、ベースオペレーティングシステムとして Red Hat Enterprise Linux (RHEL) 9.2 を使用します。アップグレードプロセスの一環として、ノードのベースオペレーティングシステムを RHEL 9.2 にアップグレードします。
アップグレードを開始する前に、以下の情報を確認して RHEL 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
ファイルで確認できます。
表1.1 バージョンの更新パス
現行バージョン | 更新後のバージョン |
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 のマイナー更新の実行 を参照してください。
表1.2 バージョンのアップグレードパス
現行バージョン | 更新後のバージョン |
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.3 インプレースアップグレードの期間と影響
所要時間 | 注記 | |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
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 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 が開始する避難はサポートされません。コンピュートノードをアップグレードする場合、ノードはクリーンにシャットダウンされ、ノード上で実行されているワークロードはインスタンス HA によって自動的に退避されません。その代わり、手動でライブマイグレーションを行う必要があります。
テクノロジープレビューのシナリオ
アップグレードフレームワークを以下の機能と併用した場合は、テクノロジープレビューとみなされます。したがって、Red Hat では全面的にはサポートしていません。以下のシナリオは概念実証の環境でのみテストし、実稼働環境へのアップグレードは行わないでください。テクノロジープレビュー機能についての詳細は、対象範囲の詳細 を参照してください。
- エッジおよび分散コンピュートノード (DCN) のシナリオ
1.5.5. 外部の Ceph デプロイメントと組み合わせたアップグレードに関する考慮事項
Red Hat Ceph Storage システムを個別にデプロイしてから、director を使用して OpenStack をデプロイおよび設定した場合は、Red Hat OpenStack Platform (RHOSP) デプロイメントをバージョン 16.2 からバージョン 17.1 にアップグレードする前に、Red Hat Ceph Storage クラスターをバージョン 4 からバージョン 5 へアップグレードする必要があります。Red Hat Ceph Storage クラスターをアップグレードした後も、Red Hat OpenStack Platform 16 は引き続き動作し、ストレージクラスターと互換性があります。詳細は、Red Hat Ceph Storage 5 アップグレードガイドの Red Hat Ceph Storage クラスターのアップグレード を参照してください。
1.5.6. アップグレードを妨げる可能性のある既知の問題
アップグレードの正常な完了に影響を及ぼす可能性のある、以下の既知の問題を確認してください。
オペレーティングシステムを 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
以下のデプロイメントは、Multi-RHEL 環境ではサポートされていません。
- ShiftOnStack
- DirectorOperator
すべてのコンピュートホストを RHEL 9.2 にアップグレードするか、すべてのコンピュートホストを RHEL 8.4 で実行し続ける必要があります。
分散コンピュートノード (DCN) デプロイメントでは、Multi-RHEL 環境も、RHOSP 16.2 から RHOSP 17.1 へのアップグレードもサポートされていません。
Pacemaker によって制御される ceph-nfs
リソースには、一部のプロセスデータを保存するためのランタイムディレクトリーが必要です。このディレクトリーは、RHOSP をインストールまたはアップグレードするときに作成されます。現在、コントローラーノードを再起動するとディレクトリーが削除され、コントローラーノードを再起動しても ceph-nfs
サービスは回復しません。すべてのコントローラーノードが再起動されると、ceph-nfs
サービスは永続的に失敗します。
以下の回避策を適用できます。
コントローラーノードを再起動する場合は、コントローラーノードにログインし、
/var/run/ceph
ディレクトリーを作成します。$ mkdir -p /var/run/ceph
再起動されたすべてのコントローラーノードでこの手順を繰り返します。
ceph-nfs-pacemaker
サービスが失敗としてマークされている場合は、ディレクトリーを作成した後、いずれかのコントローラーノードから以下のコマンドを実行します。$ pcs resource cleanup
コンピュートノードを RHEL 8.4 から RHEL 9.2 にアップグレードした後も、nova_virtlogd
コンテナーイメージは引き続き実行されます。このコンテナーイメージは、Red Hat Universal Base Image (UBI) 8 コンテナーを使用します。さらに、UBI 9 コンテナーを使用する、nova_virtlogd_wrapper
という別のコンテナーイメージが作成されます。アップグレード後は、すべてのコンテナーイメージで UBI 9 コンテナーを使用する必要があります。ただし、nova_virtlogd
コンテナーイメージは環境に影響を及ぼしません。今後の RHOSP リリースで修正が行われる予定です。
アップグレード Playbook に podman レジストリーログインタスクが含まれていないため、registry.redhat.io
からイメージをプルすると、16.2 から 17.1 への RHOSP アップグレードが失敗します。ホットフィックスについては、Red Hat サポート担当者にお問い合わせください。今後の RHOSP リリースで修正が行われる予定です。
ノードに GlanceApi
NFS マウントがあり、RHOSP を 16.2 から 17.1 にアップグレードする場合、NFS マウントはオペレーティングシステムのアップグレード前に削除され、その後復元されません。ノードに Cinder-Volume
または Nova-Compute
NFS マウントがある場合、それらは削除されず、オペレーティングシステムのアップグレードは実行されません。Red Hat エンジニアリングチームは現在、この問題を調査しています。
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-fileanswer-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
ファイルのデフォルトのパラメーターが上書きされます。
RHOSP 16.2 から 17.1 へのアップグレード中に、Cinder ボリュームの NFS マウントがコンピュートノードに存在する場合に、オペレーティングシステムが RHEL 8.4 から RHEL 9.2 へのアップグレードに失敗します。回避策については、Red Hat サポート担当者にお問い合わせください。
1.5.7. バックアップと復元
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.8. プロキシー設定
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 17.1 のプロキシー設定に関する詳細は、director を使用した Red Hat OpenStack Platform のインストールおよび管理 の プロキシーを使用してアンダークラウドを実行する際の考慮事項 を参照してください。
1.5.9. コンピュートノードのアップグレード計画
コンピュートノードを 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 チームにご相談ください。
コンピュートノードのアップグレード
以下のいずれかのオプションを使用して、コンピュートノードをアップグレードします。
- コンピュートノードの Multi-RHEL アップグレードを実行するには、コンピュートノードの Multi-RHEL 環境へのアップグレード を参照してください。
- すべてのコンピュートノードを RHEL 9.2 にアップグレードするには、コンピュートノードの RHEL 9.2 へのアップグレード を参照してください。
- すべてのコンピュートノードを RHEL 8.4 上に維持する場合、追加の設定は必要ありません。
1.6. リポジトリー
本項では、アンダークラウドおよびオーバークラウドのリポジトリーについて説明します。特定の状況において、リポジトリーを有効にする必要がある場合は、本項を参照してください。
- 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 の高可用性ツール。コントローラーノードの高可用性に使用します。 |
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) を有効にしないでください。
コントローラーノード用リポジトリー
以下の表には、オーバークラウドのコントローラーノード用コアリポジトリーをまとめています。
名前 | リポジトリー | 要件の説明 |
---|---|---|
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 コンテンツに登録した場合など。
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-eus-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 を設定できます。詳細は、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 を実行します。
手順
-
アンダークラウドホストに
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
- <stack> をスタックの名前に置き換えます。
検証を実行します。
$ 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 のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-rhel8
-
Red Hat Ceph Storage 6:
rhceph-6-rhel9
-
Red Hat Ceph Storage 5:
<grafana_image_file>
をデプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。-
Red Hat Ceph Storage 5:
rhceph-5-dashboard-rhel8
-
Red Hat Ceph Storage 6:
rhceph-6-dashboard-rhel9
-
Red Hat Ceph Storage 5:
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 のインストールと管理 の director の設定パラメーター を参照してください。
手順
-
アンダークラウドホストに
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
環境ファイルの場所を定義します。
- ファイル内の他のすべてのパラメーターが変更されていないか確認します。
- ファイルを保存します。
2.7. director のアップグレードの実施
アンダークラウド上の director をアップグレードします。
前提条件
tripleo_mysql
サービスが実行していることを確認します。$ systemctl status tripleo_mysql
サービスが実行していない場合は、サービスを起動します。
$ sudo systemctl start tripleo_mysql
手順
director 設定スクリプトを起動して director をアップグレードします。
$ openstack undercloud upgrade
director 設定スクリプトは、director パッケージをアップグレードし、
undercloud.conf
ファイルの設定と一致するように director サービスを設定します。このスクリプトは、完了までに数分かかります。注記director の設定スクリプトでは、次の設定に進む前に確認が求められます。この確認を省略するには、
-y
オプションを使用します。$ openstack undercloud upgrade -y
第3章 オーバークラウドのアップグレードの準備
オーバークラウドのアップグレードに向けた準備を行うには、いくつかの初期手順を完了する必要があります。
3.1. オーバークラウドサービスのダウンタイムの準備
オーバークラウドのアップグレードプロセスでは、主要なポイントでメインのコントロールプレーンサービスを無効します。これらの主要なポイントに達すると、オーバークラウドサービスを使用して新規リソースを作成することはできません。オーバークラウドで実行されているワークロードは、アップグレードプロセス中もアクティブなままであるため、インスタンスはコントロールプレーンのアップグレード中も引き続き実行されます。コンピュートノードのアップグレード中に、これらのワークロードは、すでにアップグレードされているコンピュートノードにライブマイグレーションできます。
アップグレード中にはユーザーがオーバークラウドのサービスにアクセスできないように、メンテナンスの時間帯を計画することが重要となります。
オーバークラウドのアップグレードによる影響を受ける項目
- OpenStack Platform サービス
オーバークラウドのアップグレードによる影響を受けない項目
- アップグレード中に実行するインスタンス
- Ceph Storage OSD (インスタンス向けのバックエンドストレージ)
- Linux ネットワーク
- Open vSwitch ネットワーク
- アンダークラウド
3.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 アドレスは、metalsmith list
コマンドで確認できます。
-
-
fencing.yaml
環境ファイルで、EnableFencing
パラメーターをfalse
に設定し、アップグレードプロセス中にフェンシングが無効のままとなるようにします。
3.3. アンダークラウドノードデータベースのバックアップ
openstack undercloud backup --db-only
コマンドを使用して、アンダークラウドノード上で実行されるスタンドアロンデータベースバックアップを作成できます。データベースが破損した場合には、そのバックアップを使用してデータベースの状態を回復することもできます。アンダークラウドデータベースのバックアップに関する詳細は、Red Hat OpenStack Platform 17.1 アンダークラウドおよびコントロールプレーンノードのバックアップと復元 の アンダークラウドノードのスタンドアロンデータベースバックアップの作成 を参照してください。
3.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 ノードは OS::TripleO::Services::NovaLibvirt
サービスを実行します。ただし、RHOSP のアップグレード後も Compute ノードの一部を Red Hat Enterprise Linux (RHEL) 8.4 上に維持する予定の場合は、OS::TripleO::Services::NovaLibvirt
サービスを OS::TripleO::Services::NovaLibvirtLegacy
に置き換えます。
RHOSP のアップグレード後に Compute ノードのいずれかを RHEL 8.4 から RHEL 9.2 にアップグレードする予定がある場合は、アップグレードするノード上でサービスを OS::TripleO::Services::NovaLibvirt
サービスに戻す必要があります。
Compute ノード上のオペレーティングシステムのアップグレードについて、詳細は すべての Compute ノードを RHEL 9.2 にアップグレードする および Compute ノードを Multi-RHEL 環境にアップグレードする を参照してください。
3.5. ネットワーク設定ファイルの変換
ネットワーク設定テンプレートに以下の機能が含まれている場合は、オーバークラウドをアップグレードする前に、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 テンプレートの手動変換に関する詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 の NIC テンプレートの Jinja2 Ansible 形式への手動変換 を参照してください。
3.6. カスタムの Puppet パラメーターの確認
Puppet パラメーターのカスタマイズに ExtraConfig
インターフェイスを使用する場合には、アップグレード中に、Puppet が重複した宣言のエラーを報告する可能性があります。これは、Puppet モジュール自体によって提供されるインターフェイスの変更が原因です。
この手順では、環境ファイル内のカスタムの ExtraConfig
hieradata パラメーターを確認する方法を説明します。
手順
環境ファイルを選択して、
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'
3.7. アップグレード前の最終確認
アップグレードを開始する前に、すべての準備手順の最終確認を行います。
3.7.1. アップグレードコマンドの概要
アップグレードプロセスには、プロセスの特定の段階で実行するさまざまなコマンドが含まれます。
本セクションでは、それぞれのコマンドについてのみ説明します。これらのコマンドは特定の順序で実行し、オーバークラウドに固有のオプションを指定する必要があります。適切なステップでこれらのコマンドを実行するよう指示されるまで待ちます。
3.7.1.1. openstack overcloud upgrade prepare
このコマンドにより、オーバークラウドのアップグレードの初期準備の手順が実行されます。これには、アンダークラウド上の現在のオーバークラウドプランを新しい OpenStack Platform 17.1 オーバークラウドプランおよび更新された環境ファイルに置き換えることが含まれます。このコマンドは、openstack overcloud deploy
コマンドと同じように機能し、多くの同一オプションが使用されます。
openstack overcloud upgrade prepare
コマンドを実行する前に、オーバークラウドの導入を実行する必要があります。オーバークラウドの導入について、詳細は オーバークラウドの導入と準備の実行 を参照してください。
3.7.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
- システムをリブートし、オペレーティングシステムのアップグレードを完了するタスク
3.7.1.3. openstack overcloud external-upgrade run
このコマンドにより、標準のアップグレードプロセス以外のアップグレードタスクが実行されます。director は新しい OpenStack Platform 17.1 オーバークラウドプランに基づいて Ansible Playbook のセットを作成するので、--tags
オプションを使用して特定のタスクを実行します。
コンテナー管理の外部タスクタグ
container_image_prepare
- アンダークラウドレジストリーにコンテナーイメージをプルし、オーバークラウドが使用するようにイメージを準備するタスク
3.7.2. アップグレードのパラメーター
アップグレードパラメーターを使用してアップグレードプロセスの動作を変更できます。
パラメーター | 説明 |
---|---|
| アップグレードプロセスを初期化するためにすべてのオーバークラウドノード上で実行するコマンドまたはスクリプトのスニペット。たとえば、リポジトリーの切り替えなど。 |
| アップグレードプロセスに必要な共通のコマンド。操作者は通常このパラメーターを変更する必要はなく、major-upgrade-composable-steps.yaml および major-upgrade-converge.yaml 環境ファイルで設定および設定解除されます。 |
| Leapp コマンドに追加するその他のコマンドラインオプション |
|
Leapp の実行中にデバッグのアウトプットを出力します。デフォルト値は |
| 開発/テスト環境で Leapp を実行する場合は、環境変数を設定して Leapp の確認を省略します。たとえば、LEAPP_DEVEL_SKIP_RHSM=1 と設定します。 |
|
オペレーティングシステムのアップグレードに Leapp を使用します。デフォルト値は |
|
マシンがリブートしてテストコマンドに応答するのを待つ最大の時間 (秒)。デフォルト値は |
|
Leapp による OS アップグレードフェーズのタイムアウト時間 (秒単位)。デフォルト値は |
| Leapp によるアップグレード後にインストールするパッケージのリスト |
| Leapp によるアップグレード時に削除するパッケージのリスト |
3.7.3. デプロイメントに含めるカスタムファイル
デプロイメント内のオーバークラウドノードが Object Storage (swift) 専用ノードの場合は、デフォルトの roles_data.yaml
ファイルをコピーし、ObjectStorage
を編集して deprecated_server_resource_name: 'SwiftStorage'の行を削除する必要があります
。次に、--roles-file
オプションを使用して、そのファイルを openstack overcloud upgrade prepare
コマンドに渡します。
3.7.4. デプロイメントに追加する新たな環境ファイル
Red Hat OpenStack Platform (RHOSP) 17.1 へのアップグレードを円滑に行うために、通常のオーバークラウドの環境ファイルに加えて、新しい環境ファイルを追加する必要があります。
File | 備考 |
---|---|
| このファイルには、アップグレードに固有のパラメーターが含まれます。このファイルは、アップグレード期間中にのみ必要です。 |
| ソースおよび準備の手順が含まれるファイルです。これは、アンダークラウドのアップグレードに使用するファイルと同じです。 |
| このファイルには、Ceph Storage がオーバーライドする必要があるパラメーターが含まれています。 |
以下のコマンドを実行する際に、環境ファイルリストの最後にこれらのファイルを追加します。
-
openstack overcloud upgrade prepare
-
openstack overcloud deploy
3.7.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
3.7.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
- 環境ファイルを保存します。
3.7.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 にしか該当しない古い環境ファイルを削除済みである。 | はい / いいえ |
第4章 オーバークラウドの導入と準備の実行
オーバークラウドを導入するには、次のタスクを実行する必要があります。
- 各スタックで、ネットワークとホストのプロビジョニング設定エクスポートをオーバークラウドに導入します。
- 新しいコンテナーと追加の互換性設定を定義します。
導入後、openstack overcloud upgrade prepare
コマンドを実行する必要があります。このコマンドは次のタスクを実行します。
- オーバークラウドのプランを OpenStack Platform 17.1 に更新する。
- アップグレードに向けてノードを準備する。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
アンダークラウドのアップグレード中にエクスポートされた以下のファイルに、オーバークラウドのアップグレードで想定される設定が含まれていることを確認します。
~/overcloud-deploy
ディレクトリーには以下のファイルがあります。-
tripleo-<stack>-passwords.yaml
-
tripleo-<stack>-network-data.yaml
-
tripleo-<stack>-virtual-ips.yaml
tripleo-<stack>-baremetal-deployment.yaml
注記これらのファイルがアンダークラウドのアップグレード後に生成されなかった場合は、Red Hat サポートにお問い合わせください。
-
メインスタックで、
passwords.yaml
ファイルを~/overcloud-deploy/$(<stack>)
ディレクトリーにコピーします。環境内の各スタックでこの手順を繰り返します。$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
-
<stack>
をスタックの名前に置き換えます。
-
メインスタックで、
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
メインスタックで、
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":"rhel_8_rhosp17.1",'
) -
EL9_TAGS
: UBI9 イメージのタグ (例:EL9_TAGS='"tag":"rhel_9_rhosp17.1",'
) 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_TAGS
: Red Hat Ceph Storage をデプロイした場合は、Red Hat Ceph Storage 5 コンテナーイメージを指定します。たとえば、"ceph_tag":"5-404"
など。
-
以下のスクリプトを実行して、
containers-prepare-parameter.yaml
ファイルを更新します。$ 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_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml
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/false>
-
外部の Ceph デプロイメントを使用している場合は、<
true/
に置き換えます。外部の Ceph デプロイメントのアップグレードに関する詳細は、外部 Ceph デプロイメントを 使用したアップグレードに関する考慮事項 を参照してください。false
> を false director でデプロイされた Ceph デプロイメントを使用している場合は、<
true/false> を
true
に置き換えます。オーバークラウドの導入と準備の手順が完了したら、director でデプロイされた Ceph デプロイメントを Red Hat Ceph Storage バージョン 4 からバージョン 5 にアップグレードします。詳細は、Red Hat Ceph Storage 5 へのアップグレード を 参照してください。注記Red Hat Ceph Storage デプロイメントに短縮名が含まれている場合は、
CephSpecFqdn
パラメーターをfalse
に設定する必要があります。true
に設定すると、短縮名とドメイン名の両方を使用してインベントリーが生成され、Red Hat Ceph Storage のアップグレードが失敗します。
-
外部の Ceph デプロイメントを使用している場合は、<
テンプレートディレクトリーに
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-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 /home/stack/skip_rhel_release.yaml \ -e ~/containers-prepare-parameter.yaml
-
元の
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
)。多くの場合、アンダークラウドが使用する環境ファイルと同じファイルです。 -
リリースパラメーターを持つ環境ファイル (
skip_rhel_release.yaml
) (-e)。 -
デプロイメントに関連するカスタム設定環境ファイル (
-e
) -
該当する場合は、
--roles-file
でカスタムロール (roles_data
) ファイルを指定します。 -
Ceph デプロイメントの場合、Ceph パラメーターを持つ環境ファイル (
ceph_params.yaml
) (-e)。 -
オーバークラウドの導入中に生成されたファイル (
network-deployed.yaml
、vip-deployed.yaml
、baremetal-deployment.yaml
) (-e)。 -
該当する場合、環境ファイル (
ipa-environment.yaml
) と IPA サービス (-e)。 -
ネットワーク分離またはコンポーザブルネットワークを使用している場合には、
--network-file
を使用して(network_data
)ファイルを指定します。 カスタムのスタック名を使用する場合は、
--stack
オプションでその名前を渡します。注記環境内のすべての RHEL 8 コンピュートノードが RHEL 9 にアップグレードされるまで、テンプレートに
nova-hw-machine-type-upgrade.yaml
ファイルを含める必要があります。このファイルを除外すると、/var/log/containers/nova
ディレクトリーのnova_compute.log
にエラーが表示されます。すべての RHEL 8 コンピュートノードを RHEL 9 にアップグレードした後、このファイルを設定から削除してスタックを更新できます。
-
アップグレード固有のパラメーターを持つ環境ファイル (
アップグレードするデプロイメントで NFS を介して CephFS を使用する Shared File Systems サービス (manila) を有効にした場合は、
overcloud_upgrade_prepare.sh
スクリプトファイルの最後に追加の環境ファイルを指定する必要があります。環境ファイルは、スクリプトの前の方で指定されている別の環境ファイルをオーバーライドするため、スクリプトの最後に追加する必要があります。-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
-
元の
環境内のスタックごとにアップグレード準備のコマンドを実行します。
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh $ sh /home/stack/overcloud_upgrade_prepare.sh
- アップグレードの準備が完了するまで待ちます。
コンテナーイメージをダウンロードします。
$ openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
第5章 director でデプロイされた Ceph デプロイメントを使用したオーバークラウドのアップグレード
ご使用の環境に、ハイパーコンバージドインフラストラクチャー(HCI)ノードの有無にかかわらず、director でデプロイされた Red Hat Ceph Storage デプロイメントが含まれている場合は、デプロイメントを Red Hat Ceph Storage 5 にアップグレードする必要があります。バージョン 5 へのアップグレードにより、cephadm
は、ceph-ansible
の代わりに Red Hat Ceph Storage を管理するようになりました。
5.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 update -y ceph-ansible
5.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 を使用しますが、これには次の既知の問題があります。Red Hat Ceph Storage ダッシュボードを有効にしている場合、ダッシュボード上に 2 つのデータソースが設定されます。この既知の問題に関する詳細は、BZ#2054852 を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
ceph
タグを使用して、Red Hat Ceph Storage の外部アップグレードプロセスを実行します。$ openstack overcloud external-upgrade run \ --skip-tags "ceph_health,opendev-validation, ceph_ansible_remote_tmp" \ --stack <stack> \ --tags ceph,facts 2>&1
-
<stack>
をスタックの名前に置き換えます。
-
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 ceph_osd,ceph_mon,Undercloud
Red Hat Ceph Storage ノード上のパッケージを更新します。
$ openstack overcloud upgrade run \ --stack <stack> \ --skip-tags ceph_health,opendev-validation,ceph_ansible_remote_tmp \ --tags setup_packages --limit ceph_osd,ceph_mon,Undercloud \ --playbook /home/stack/overcloud-deploy/<stack>/config-download/<stack>/upgrade_steps_playbook.yaml 2>&1
注記Ceph Monitor サービス (CephMon) はコントローラーノード上で実行されます。このコマンドには
ceph_mon
タグが含まれており、これはコントローラーノード上のパッケージも更新します。cephadm
を使用するように Red Hat Ceph Storage ノードを設定します。$ openstack overcloud external-upgrade run \ --skip-tags ceph_health,opendev-validation,ceph_ansible_remote_tmp \ --stack <stack> \ --tags cephadm_adopt 2>&1
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 にアップグレードする必要があります。Compute および HCI ノードのアップグレードに関する詳細は、コンピュートノードの RHEL 9.2 へのアップグレード を参照してください。
Red Hat Ceph Storage クラスターはバージョン 5 にアップグレードされました。これには次の意味があります。
-
今後は、Red Hat Ceph Storage の管理に
ceph-ansible
を使用しません。代わりに、Ceph Orchestrator が Red Hat Ceph Storage クラスターを管理します。Ceph Orchestrator の詳細は、Red Hat Ceph Storage オペレーションガイド を参照してください。 - 今後は、ほとんどの場合において、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/
内のそれぞれのファイル
第6章 ネットワーク機能仮想化 (NFV) の準備
ネットワーク機能仮想化 (NFV) を使用する場合は、オーバークラウドのアップグレードに向けて準備タスクを完了する必要があります。
6.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 コンピュートノードからのインスタンスのコールドマイグレーションを行うことができます。
第7章 オーバークラウドのアップグレード
環境内の各スタック上のオーバークラウド全体で Red Hat OpenStack Platform コンテンツをアップグレードします。
7.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
<stack> をノードをアップグレードするオーバークラウドスタックの名前に置き換えます。
RHOSP デプロイメント内のスタックごとにこの手順を繰り返します。
第8章 アンダークラウドのオペレーティングシステムのアップグレード
アンダークラウドオペレーティングシステムを Red Hat Enterprise Linux 8.4 から Red Hat Enterprise Linux 9.2 にアップグレードする必要があります。システムのアップグレードでは次のタスクが実行されます。
- システムのアップグレード後も、ネットワークインターフェイスの命名が一貫していることを確認します。
- Leapp を使用して RHEL をインプレースアップグレードします。
- アンダークラウドを再起動します。
8.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
- ファイルを保存します。
8.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 ~/.ssh/id_rsa.pub
出力例:
1024 SHA256:Xqz0Xz0/aJua6B3qRD7VsLr6n/V3zhmnGSkcFR6FlJw stack@director.example.local (RSA)
SSH キーが 2048 ビット未満の場合は、続行する前に
ssh_key_rotation.yaml
Ansible Playbook を使用して SSH キーを置き換えます。ansible-playbook \ -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml \ /usr/share/ansible/tripleo-playbooks/ssh_key_rotation.yaml \ --extra-vars "keep_old_key_authorized_keys=<true|false> \ backup_folder_path=</path/to/backup_folder>"
-
<stack>
をオーバークラウドスタックの名前に置き換えます。 -
バックアップのニーズに基づいて
<true|false>
を置き換えます。この変数を含めない場合、デフォルト値はtrue
になります。 -
</path/to/backup_folder>
をバックアップパスに置き換えます。この変数を含めない場合、デフォルト値は/home/{{ ansible_user_id }}/backup_keys/{{ ansible_date_time.epoch }}
になります。
-
8.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: | sudo subscription-manager repos --disable=* 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 leapp answer --add --section check_vdo.confirm=True dnf -y remove irb
カーネルベースの 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
第9章 コントロールプレーンオペレーティングシステムのアップグレード
コントロールプレーンノード上のオペレーティングシステムをアップグレードします。アップグレードには以下のタスクが含まれます。
- システムアップグレードパラメーターを指定した overcloud upgrade prepare コマンドの実行
- オーバークラウドシステムのアップグレードを実行します。これは、Leapp を使用して RHEL をインプレースでアップグレードします。
- ノードの再起動
9.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_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override \ "{${EL9_TAGS}${NAMESPACE}${CEPH_TAGS}${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
> を独自のノード名に置き換えます。
-
<
第10章 コンピュートノードのオペレーティングシステムのアップグレード
すべてのコンピュートノードのオペレーティングシステムを RHEL 9.2 にアップグレードすることも、一部のコンピュートノードをアップグレードし、残りのコンピュートノードは RHEL 8.4 のままにすることもできます。
デプロイメントにハイパーコンバージドインフラストラクチャー(HCI)ノードが含まれている場合は、すべての HCI ノードを RHEL 9 にアップグレードする必要があります。RHEL 9 へのアップグレードの詳細は、コンピュートノードの RHEL 9.2 へのアップグレード を 参照してください。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
前提条件
- コンピュートノードのアップグレード計画 を確認している。
10.1. アップグレードテスト用のコンピュートノードの選択
オーバークラウドのアップグレードプロセスでは、次のいずれかを行うことができます。
- 1 つのロールのノードをすべてアップグレードする。
- 個々のノードを個別にアップグレードする。
オーバークラウドのアップグレードプロセスを円滑にするには、全コンピュートノードをアップグレードする前に、環境内にある個々のコンピュートノードのいくつかでアップグレードをテストすると役立ちます。これにより、アップグレード中に大きな問題が発生しなくなり、ワークロードのダウンタイムを最小限に抑えることができます。
アップグレードをテストするノードを選択するにあたっては、以下の推奨事項を参考にしてください。
- アップグレードのテストには、2 台または 3 台のコンピュートノードを選択します。
- クリティカルなインスタンスが実行されていないノードを選択します。
必要に応じて、選択したテストコンピュートノードからクリティカルインスタンスを他のコンピュートノードに移行します。どの移行シナリオがサポートされているかを確認してください。
ソースコンピュートノードの RHEL バージョン 宛先コンピュートノードの RHEL バージョン サポート対象/サポート対象外 RHEL 8
RHEL 8
サポート対象
RHEL 8
RHEL 9
サポート対象
RHEL 9
RHEL 9
サポート対象
RHEL 9
RHEL 8
サポート対象外
10.2. すべてのコンピュートノードを RHEL 9.2 にアップグレードする
すべてのコンピュートノードを RHEL 9.2 にアップグレードして、最新の機能を利用し、ダウンタイムを削減します。
前提条件
- デプロイメントにハイパーコンバージドインフラストラクチャー(HCI)ノードが含まれている場合は、ホストをメンテナンスモードにして、リブート用に各 HCI ノードに Red Hat Ceph Storage クラスターを準備します。詳細は、The Ceph Operations Guide の Placing hosts in the maintenance mode using the 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
10.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 環境にアップグレードします。
10.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_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" --major-override "{${EL9_TAGS}${NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file /home/stack/containers-prepare-parameter.yaml
- この手順を繰り返して追加のロールを作成し、追加のコンピュートノードをそれらの新しいロールに移動します。
10.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
第11章 アップグレード後操作の実施
オーバークラウドのアップグレードが完了したら、アップグレード後の設定を実施して、環境が完全にサポートされ、これ以降の操作を行う準備が整っている状態にする必要があります。
11.1. オーバークラウドイメージのアップグレード
現在のオーバークラウドイメージを新しいバージョンに置き換える必要があります。新しいイメージにより、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 ~
11.2. CPU ピニングパラメーターの更新
Red Hat OpenStack Platform 17.1 へのアップグレードが完了した後、CPU ピニング設定を NovaVcpuPinSet
パラメーターから以下のパラメーターに移行する必要があります。
NovaComputeCpuDedicatedSet
- 専用の (ピニングされた) CPU を設定します。
NovaComputeCpuSharedSet
- 共有の (ピニングされていない) CPU を設定します。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 コンピュートノードが同時マルチスレッド (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
ポリシーを使用するすべての固定インスタンスに対して、このステップを繰り返します。
コンピュートノードからインスタンスを移行して、コンピュートノードの SMT を無効にする。
source コマンドでオーバークラウドの認証ファイルを読み込みます。
$ source ~/overcloudrc
コンピュートノードが新しい仮想マシンを受け入れるのを無効にします。
(overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable
- コンピュートノードからすべてのインスタンスを移行します。インスタンスの移行に関する詳細は、コンピュートノード間の仮想マシンインスタンスの移行 を参照してください。
- コンピュートノードをリブートし、コンピュートノードの BIOS で SMT を無効にします。
- コンピュートノードをブートします。
コンピュートノードを再度有効にします。
(overcloud) $ openstack compute service set <hostname> nova-compute --enable
stackrc
ファイルを取得します。$ source ~/stackrc
-
NovaVcpuPinSet
パラメーターが含まれる環境ファイルを編集します。 CPU ピニングの設定を
NovaVcpuPinSet
パラメーターからNovaComputeCpuDedicatedSet
とNovaComputeCpuSharedSet
に移行します。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuDedicatedSet
に変更します。 -
これまでピニングされていないインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuSharedSet
に変更します。 -
NovaVcpuPinSet の値が設定されていない場合には、ノード上でホストするインスタンスの種別に応じて、すべてのコンピュートノードのコアを
NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のどちらかに割り当てる必要があります。
たとえば、以前の環境ファイルに以下のピニング設定が定義されていたとします。
parameter_defaults: ... NovaVcpuPinSet: 1,2,3,5,6,7 ...
設定をピニング設定に移行するには、NovaCompute
CpuDedicatedSet
パラメーターを設定し、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
のいずれかの設定を変更する、またはその両方を設定するには、設定を更新する前にピニング設定のコンピュートノードが 1 つのインスタンスも実行していないようにします。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
- ファイルを保存します。
デプロイメントコマンドを実行して、新しい CPU ピニングパラメーターでオーバークラウドを更新します。
(undercloud) $ openstack overcloud deploy \ --stack _STACK NAME_ \ --templates \ ... -e /home/stack/templates/<compute_environment_file>.yaml ...
11.3. 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
) に更新できます。
前提条件
- すべてのコンピュートノードを 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 に置き換えます。
11.4. オーバークラウドでのフェンシングの再有効化
オーバークラウドをアップグレードする前に、オーバークラウドでのフェンシングの無効化 で、フェンシングを無効化しました。環境をアップグレードした後、ノードに障害が発生した場合にデータを保護するためにフェンシングを再度有効にします。
手順
-
アンダークラウドホストに
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
に設定します。