Show Table of Contents
10.4. オーバークラウドのアップグレード
重要
以下の手順のステップを試す前に 「アップグレード前の重要な注記」 の情報を一読するようにしてください。
重要
このプロセスを実行中のトラブルシューティングのステップに関しては「アップグレードのトラブルシューティング」を参照してください。
本項には、オーバークラウドのアップグレードに必要な手順を記載します。各セクションを順番に従って進み、お使いの環境に関連するセクションのみを適用します。
このプロセスでは、ステージごとに分けた手法を使用してアップグレードを行うには
openstack overcloud deploy
コマンドを複数回実行する必要があります。コマンドを実行する度に、既存の環境ファイルに、別のアップグレードの環境ファイルが追加されます。これらの新しいアップグレード環境ファイルには、以下のようなファイルがあります。 major-upgrade-pacemaker-init.yaml
: アップグレードの初期設定を行います。これには、オーバークラウドの各ノードにある Red Hat OpenStack Platform のリポジトリーの更新や、特定のノードへの特別なアップグレードスクリプトの提供などが含まれます。major-upgrade-pacemaker.yaml
: コントローラーノードをアップグレードします。major-upgrade-pacemaker-converge.yaml
: オーバークラウドのアップグレードを最終確認します。
これらのデプロイメントのコマンドの間に、さまざまなタイプのノードで
upgrade-non-controller.sh
スクリプトを実行します。このスクリプトにより、1 つのノードでパッケージが更新されます。 以下の手順を使用して、オーバークラウドをアップグレードしてください。
- アンダークラウドから
openstack overcloud deploy
を実行して、major-upgrade-pacemaker-init.yaml
の環境ファイルを追加します。ネットワークの分離やストレージなどお使いの環境に適したカスタムの環境ファイルも含めるようにしてください。重要
Red Hat OpenStack Platform 7 のカスタムの NIC テンプレートを使用している場合は、NIC テンプレートのparameters
セクションにManagementSubnetIp
パラメーターを追加してください。parameters: ManagementIpSubnet: # Only populated when including environments/network-management.yaml default: '' description: IP address/subnet on the management network type: string
以下は、openstack overcloud deploy
コマンドで、ファイルも追加した例です。$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \ -e network_env.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker-init.yaml
新しい環境ファイルの設定でオーバークラウドが更新されるまで待機します。 - director には、コントローラー以外のノードを個別にアップグレードするスクリプトが含まれます。まず、各 Swift ノードをアップグレードします。
$ nova list $ upgrade-non-controller.sh --upgrade [swift-uuid]
- コントローラーノードをアップグレードします。この際に、高可用性ツールを実行するコントローラーノードへの完全アップグレードを提供する別の環境ファイル (
major-upgrade-pacemaker.yaml
) が追加されます。この環境ファイルを使用してopenstack overcloud deploy
をもう 1 度実行します。また、ネットワークの分離やストレージなどお使いの環境に適したカスタムの環境ファイルも含めるようにしてください。$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \ -e network_env.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker.yaml
新しい環境ファイルの設定でオーバークラウドが更新されるまで待機します。重要
このステップは、コントローラーのアップグレードの際に Neutron サーバーおよび L3 エージェントを無効化します。これは、Floating IP アドレスがこのステップでは利用できないということを意味します。重要
このステップでオーバークラウドのスタックが機能しなくなった場合は、コントローラーノードの 1 つにログインして、sudo pcs cluster start
を実行してから director でもう 1 度openstack overcloud deploy
を実行します。 - 各コンピュートノードをアップグレードします。コンピュートノードをアップグレードする際には
upgrade-non-controller.sh
スクリプトも使用しますが、ダウンタイムを回避するには、コンピュートノードが新しい仮想マシンを起動したり、既存の仮想マシンを別のコンピュートノードに以降したりしないようにすることを推奨します。このプロセスに関する情報は「オーバークラウドのコンピュートノードからの仮想マシンの移行」を参照してください。移行後には、アップグレードのコマンドを実行します。$ nova list $ upgrade-non-controller.sh --upgrade [compute-uuid]
アップグレードを完了した後には、以下のコマンドでコンピュートノードをもう 1 度有効化します。$ nova list $ nova service-enable [hostname] nova-compute
- 各 Ceph Storage ノードをアップグレードします。
$ nova list $ upgrade-non-controller.sh --upgrade [ceph-uuid]
- 最終的なアップグレードを実行します。これには、別の環境ファイル (
major-upgrade-pacemaker-converge.yaml
) を使用し、このファイルを使用するには、openstack overcloud deploy
コマンドを使用します。また、ネットワークの分離やストレージなどお使いの環境に適したカスタムの環境ファイルも含めるようにしてください。以下に例を示します。$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \ -e network_env.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker-converge.yaml
新しい環境ファイルの設定でオーバークラウドが更新されるまで待機します。
これで、オーバークラウドのアップグレード手順が完了しました。
オーバークラウドを Red Hat OpenStack Platform 8 にアップグレードした後には以下の点に注意してください。
- コンピュートノードが
neutron-openvswitch-agent
の問題をレポートする可能性があります。これが発生した場合には、各コンピュートノードにログインして、このサービスを再起動します。以下のようなコマンドを実行します。$ sudo systemctl restart neutron-openvswitch-agent
- 更新プロセスを実行しても、オーバークラウド内のノードは自動的には再起動しません。必要な場合には、更新コマンドが完了した後に手動で再起動を実行してください。クラスターベースのノード (Ceph Storage ノードやコントローラーノード) を個別に再起動して、ノードがクラスターに再度参加するまで待機します。Ceph Storage ノードの場合は、
ceph health
で確認して、クラスターのステータスがHEALTH OK
であることを確認します。コントローラーノードの場合は、pcs resource
で確認して、各ノードですべてのリソースが実行されていることを確認してください。 - 状況によっては、コントローラーノードの再起動後に IPv6 環境で
Corosync
の起動に失敗する可能性があります。これは、コントローラーノードが静的な IPv6 アドレスを設定する前に Corosync が起動してしまうことが原因です。このような場合は、コントローラーノードで Corosync を手動で再起動してください。$ sudo systemctl restart corosync
- コントローラーノードにフェンシングを設定している場合には、更新プロセスによってその設定が無効になる場合があります。 更新プロセスの完了時には、コントローラーノードの 1 つで以下のコマンドを実行してフェンシングを再度有効にします。
$ sudo pcs property set stonith-enabled=true
- 次回、オーバークラウドのスタックを更新またはスケーリングする場合には (
openstack overcloud deploy
コマンドの実行)、オーバークラウドでのパッケージの更新をトリガーする ID をリセットする必要があります。空のUpdateIdentifier
パラメーターを環境ファイルに追加して、openstack overcloud deploy
コマンドの実行時にこれを指定します。以下は、このような環境ファイルのサンプルです。parameter_defaults: UpdateIdentifier:
Comments