19.2. 外部の Ceph デプロイメントと組み合わせたコントローラーノードのアップグレード
外部の Ceph デプロイメントと共にアップグレードする場合は、以下の手順を完了する必要があります。
すべてのコントローラーノードを OpenStack Platform 16.1 にアップグレードする場合は、ブートストラップコントローラーノードからアップグレードを始める必要があります。
ブートストラップコントローラーノードのアップグレードプロセス中、新しい Pacemaker クラスターが作成され、新しい Red Hat OpenStack 16.1 コンテナーがノードで起動します。一方、残りのコントローラーノードは Red Hat OpenStack 13 で稼働を続けます。
ブートストラップノードをアップグレードしたら、Pacemaker サービスが含まれるその他のノードをアップグレードし、ブートストラップノードで起動した新しい Pacemaker クラスターに各ノードが参加するようにしなければなりません。詳細は、オーバークラウドノードのアップグレードワークフロー を参照してください。
以下の例では、コントローラーノードの名前はデフォルトの overcloud-controller-NODEID 命名規則を使用して名前を付けています。これには、以下の 3 つのコントローラーノードが含まれます。
-
overcloud-controller-0 -
overcloud-controller-1 -
overcloud-controller-2
これらの値は、該当する実際のノード名に置き換てください。
デフォルトのスタック名 (overcloud) を使用していない場合は、--stack STACK NAME オプションでスタック名を設定します。STACK NAME は実際のスタック名に置き換えます。
手順
stackrcファイルを取得します。$ source ~/stackrcアンダークラウドノードで以下のコマンドを実行し、ブートストラップコントローラーノードを特定します。
$ tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]ブートストラップ Controller ノードをアップグレードします。
system_upgradeタグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-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.yamlPlaybook だけを実行します。$ 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このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。
重要このコマンドの処理が完了すると、コントロールプレーンがアクティブになります。再び標準的なオーバークラウド操作を実施することができます。
アップグレード後に新しい Pacemaker クラスターが起動していること、および galera、rabbit、haproxy、redis 等のコントロールプレーンサービスが実行中であることを確認します。
$ sudo pcs status
次のコントローラーノードをアップグレードします。
古いクラスターが実行されなくなったことを確認します。
$ sudo pcs statusクラスターが実行されていない場合、以下のようなエラーが表示されます。
Error: cluster is not currently running on this node次のコントローラーノードで、
system_upgradeタグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
- Leapp によるアップグレードの一部としてリブートを実施する。
タグを指定せずにアップグレードコマンドを実行します。
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。このノードに加えて、前のステップでアップグレードしたブートストラップノードを
--limitオプションに含めます。
最後のコントローラーノードをアップグレードします。
古いクラスターが実行されなくなったことを確認します。
$ sudo pcs statusクラスターが実行されていない場合、以下のようなエラーが表示されます。
Error: cluster is not currently running on this nodesystem_upgradeタグを指定してアップグレードコマンドを実行します。$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2このコマンドにより、以下のアクションが行われます。
- Leapp によるオペレーティングシステムのアップグレードを実施する。
- Leapp によるアップグレードの一部としてリブートを実施する。
タグを指定せずにアップグレードコマンドを実行します。
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2このコマンドにより、Red Hat OpenStack Platform のアップグレードが実施されます。
--limitオプションにすべてのコントローラーノードを含めます。