20.2. コントロールプレーンノードのアップグレード
環境内のコントロールプレーンノードを OpenStack Platform 16.1 にアップグレードするには、ブートストラップノードから始めてコントロールプレーンノードの 1/3 を一度にアップグレードする必要があります。
ブートストラップコントローラーノードのアップグレードプロセス中、新しい Pacemaker クラスターが作成され、新しい Red Hat OpenStack 16.1 コンテナーがノードで起動します。一方、残りのコントローラーノードは Red Hat OpenStack 13 で稼働を続けます。
以下の例では、コントロールプレーンノードの名前はデフォルトの overcloud-ROLE-NODEID
の命名規則を使用して名前を付けています。これには、コンポーザブルロールによる以下のノード種別が含まれます。
-
overcloud-controller-0
-
overcloud-controller-1
-
overcloud-controller-2
-
overcloud-database-0
-
overcloud-database-1
-
overcloud-database-2
-
overcloud-networker-0
-
overcloud-networker-1
-
overcloud-networker-2
-
overcloud-ceph-0
-
overcloud-ceph-1
-
overcloud-ceph-2
これらの値は、該当する実際のノード名に置き換てください。
コントロールプレーンノードの最初の 1/3 を設定する overcloud-controller-0
、overcloud-database-0
、overcloud-networker-0
および overcloud-ceph-0
ブートストラップノードをアップグレードした後に、Pacemaker サービスが含まれる追加の各 1/3 のノードのアップグレードを行い、各ノードがブートストラップノードで起動した新規 Pacemaker クラスターに参加するようにする必要があります。したがって、overcloud-controller-2
、overcloud-database-2
、overcloud-networker-2
および overcloud-ceph-2
の前に、overcloud-controller-1
、overcloud-database-1
、overcloud-networker-1
および overcloud-ceph-1
をアップグレードする必要があります。
デフォルトのスタック名 (overcloud
) を使用していない場合は、--stack STACK NAME
オプションでスタック名を設定します。STACK NAME
は実際のスタック名に置き換えます。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。$ source ~/stackrc
アンダークラウドノードで以下のコマンドを実行し、ブートストラップコントローラーノードを特定します。
$ tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]
overcloud-controller-0
、overcloud-database-0
、overcloud-networker-0
、およびovercloud-ceph-0
コントロールプレーンノードをアップグレードします。ceph_systemd
タグを指定して外部アップグレードコマンドを実行します。$ openstack overcloud external-upgrade run --stack <stack_name> --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-0,overcloud-database-0,overcloud-networker-0,overcloud-ceph-0
<stack_name>
は、実際のスタック名に置き換えます。このコマンドにより、以下のアクションが行われます。
- Podman 管理を使用するために、Ceph Storage コンテナーを制御する systemd ユニットを変更する。
-
ceph_ansible_limit
変数を使用して、アクションを選択したノードに制限する。
このステップは、
leapp
によるアップグレードに向けて Ceph Storage サービスを準備するための予備的な処置です。system_upgrade
タグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-0 & $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-database-0 & $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-networker-0 & $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-ceph-0 &
このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
Leapp によるアップグレードの一部としてリブートを実施する。
重要次のコマンドにより、コントロールプレーンで機能停止が生じます。これ以降の数ステップを実施している間は、標準的なオーバークラウド操作を行うことはできません。
system_upgrade_transfer_data
タグを指定して外部アップグレードコマンドを実行します。$ openstack overcloud external-upgrade run --stack STACK NAME --tags system_upgrade_transfer_data
このコマンドにより、最新バージョンのデータベースが既存のノードからブートストラップノードにコピーされます。
nova_hybrid_state
タグを指定してアップグレードコマンドを実行し、upgrade_steps_playbook.yaml
Playbook だけを実行します。$ openstack overcloud upgrade run --stack STACK NAME --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all
このコマンドにより、コンピュートノード上の一時的な 16.1 コンテナーが起動します。これにより、後のステップでコンピュートノードをアップグレードする際に、ワークロードの移行が円滑に行われます。
タグを指定せずにアップグレードコマンドを実行します。
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-database-0,overcloud-networker-0,overcloud-ceph-0 --playbook all
このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。
重要このコマンドの処理が完了すると、コントロールプレーンがアクティブになります。再び標準的なオーバークラウド操作を実施することができます。
(オプション) ブートストラップコントローラーノードにおいて、アップグレード後に新しい Pacemaker クラスターが起動していること、および galera、rabbit、haproxy、redis 等のコントロールプレーンサービスが実行中であることを確認します。
$ sudo pcs status
overcloud-controller-1
、overcloud-database-1
、overcloud-networker-1
、およびovercloud-ceph-1
コントロールプレーンノードをアップグレードします。overcloud-controller-1
ノードにログインし、古いクラスターが実行されなくなったことを確認します。$ sudo pcs status
クラスターが実行されていない場合、以下のようなエラーが表示されます。
Error: cluster is not currently running on this node
ceph_systemd
タグを指定して外部アップグレードコマンドを実行します。$ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-1,overcloud-database-1,overcloud-networker-1,overcloud-ceph-1
このコマンドにより、以下の操作が行われます。
- Podman 管理を使用するために、Ceph Storage コンテナーを制御する systemd ユニットを変更する。
-
ceph_ansible_limit
変数を使用して、アクションを選択したノードに制限する。
このステップは、
leapp
によるアップグレードに向けて Ceph Storage サービスを準備するための予備的な処置です。system_upgrade
タグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1,overcloud-database-1,overcloud-networker-1,overcloud-ceph-1
このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
- Leapp によるアップグレードの一部としてリブートを実施する。
タグを指定せずにアップグレードコマンドを実行します。
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-database-0,overcloud-database-1,overcloud-networker-0,overcloud-networker-1,overcloud-ceph-0,overcloud-ceph-1
このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。このノードに加えて、前のステップでアップグレードしたブートストラップノードを
--limit
オプションに含めます。
overcloud-controller-2
、overcloud-database-2
、overcloud-networker-2
、およびovercloud-ceph-2
コントロールプレーンノードをアップグレードします。overcloud-controller-2
ノードにログインし、古いクラスターが実行されなくなったことを確認します。$ sudo pcs status
クラスターが実行されていない場合、以下のようなエラーが表示されます。
Error: cluster is not currently running on this node
ceph_systemd
タグを指定して外部アップグレードコマンドを実行します。$ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-2,overcloud-database-2,overcloud-networker-2,overcloud-ceph-2
このコマンドにより、以下の操作が行われます。
- Podman 管理を使用するために、Ceph Storage コンテナーを制御する systemd ユニットを変更する。
-
ceph_ansible_limit
変数を使用して、アクションを選択したノードに制限する。
このステップは、
leapp
によるアップグレードに向けて Ceph Storage サービスを準備するための予備的な処置です。system_upgrade
タグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2,overcloud-database-2,overcloud-networker-2,overcloud-ceph-2
このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
- Leapp によるアップグレードの一部としてリブートを実施する。
タグを指定せずにアップグレードコマンドを実行します。
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2,overcloud-database-0,overcloud-database-1,overcloud-database-2,overcloud-networker-0,overcloud-networker-1,overcloud-networker-2,overcloud-ceph-0,overcloud-ceph-1,overcloud-ceph-2
このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。
--limit
オプションにすべてのコントロールプレーンノードを含めます。