第13章 コントロールプレーンオペレーティングシステムのアップグレード
コントロールプレーンノード上のオペレーティングシステムをアップグレードします。アップグレードには以下のタスクが含まれます。
- システムアップグレードパラメーターを指定した overcloud upgrade prepare コマンドの実行
- オーバークラウドシステムのアップグレードを実行します。これは、Leapp を使用して RHEL をインプレースでアップグレードします。
- ノードの再起動
Red Hat Ceph Storage を使用している場合は、Leapp アップグレードを実行する前に、ceph-common パッケージがコントロールプレーンノードに存在するかどうかを確認します。ceph-common パッケージがノードに存在する場合は、RHEL 8 から RHEL 9 への RHCS 5 ホストのアップグレード で説明されている予防措置を取ると、ceph-common パッケージが削除されます。Leapp によるアップグレード後にコントロールプレーンノードの再起動後に Red Hat Ceph Storage サービスが再起動するようにするには、サービスの開始に失敗します。
13.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
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
前提条件
環境に Red Hat Ceph Storage ノードが含まれている場合は、ノードにバージョンロックがあるかどうかを確認します。各 Red Hat Ceph Storage ノードで以下のコマンドを実行する必要があります。
$ yum versionlock listリストされているバージョンロックをすべて消去します。
$ yum versionlock clear
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。$ source ~/stackrcCONTROL_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: falseovercloud_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 <undercloud>,<controller-0>,<controller-1>,<controller-2>,<database-0>,<database-1>,<database-2>,<networker-0>,<networker-1>,<networker-2>,<ceph-0>,<ceph-1>,<ceph-2>-
<
undercloud> , <controller-0> , <controller-1> , <controller-2> , <database-0> , <database-1> , <database-2> , <networker-0> , <networker-1> , <> , <networker-2ceph-0> , <ceph-1> , <ceph-2> , <ceph-2> を独自のノード名に置き換えます。
-
<