第7章 アップグレード後のステップの実行
このプロセスでは、主要なアップグレードプロセスが完了した後の最終のステップを実行します。これには、Fast Forward Upgrade プロセスが終了後のイメージの変更、追加の設定ステップ、考慮事項などが含まれます。
7.1. アンダークラウドの検証
アンダークラウドの機能を確認する手順を以下に示します。
手順
アンダークラウドのアクセス情報を読み込みます。
$ source ~/stackrc
エラーが発生している Systemd サービスがあるかどうかを確認します。
(undercloud) $ sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker'
アンダークラウドの空き領域を確認します。
(undercloud) $ df -h
アンダークラウド上に NTP をインストールしている場合にはクロックが同期されていることを確認します。
(undercloud) $ sudo ntpstat
アンダークラウドのネットワークサービスを確認します。
(undercloud) $ openstack network agent list
全エージェントが
Aliveで、それらの状態がUPである必要があります。アンダークラウドの Compute サービスを確認します。
(undercloud) $ openstack compute service list
全エージェントのステータスが
enabledで、状態がupである必要があります。
関連情報
- OpenStack Orchestration (heat) のデータベースで削除済みとマークされている stack のエントリーを完全削除する方法は https://access.redhat.com/solutions/2215131 のソリューションに記載されています。
7.2. コンテナー化されたオーバークラウドの検証
コンテナー化されたオーバークラウドの機能を確認する手順を以下に示します。
手順
アンダークラウドのアクセス情報を読み込みます。
$ source ~/stackrc
ベアメタルノードのステータスを確認します。
(undercloud) $ openstack baremetal node list
全ノードの電源状態が有効で (
on)、かつメンテナンスモードがfalseである必要があります。エラーが発生している Systemd サービスがあるかどうかを確認します。
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
エラーが発生しているコンテナー化されたサービスがあるかどうかを確認します。
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; done
全サービスへの HAProxy 接続をチェックします。コントロールプレーンの仮想 IP アドレスと
haproxy.statsサービスの認証情報を取得します。(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'
以下の cURL 要求でそれらの情報を使用します。
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | awk -F',' '{ print $1" "$2" "$18 }'<PASSWORD>と<IP ADDRESS>は、haproxy.statsサービスからのそれぞれの情報に置き換えます。その結果表示される一覧には、各ノード上の OpenStack Platform サービスとそれらの接続ステータスが表示されます。オーバークラウドデータベースのレプリケーションの正常性をチェックします。
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; done
RabbitMQ クラスターの正常性を確認します。
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; done
Pacemaker リソースの正常性を確認します。
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
以下の点を確認します。
-
全クラスターノードが
onlineであること -
いずれのクラスターノード上でも
stoppedのリソースがないこと -
pacemaker で
failedのアクションがないこと
-
全クラスターノードが
各オーバークラウドノードでディスク領域を確認します。
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
オーバークラウドの Ceph Storage クラスターの正常性を確認します。以下のコマンドを使用すると、コントローラーノード上で
cephツールが実行されて、クラスターをチェックします。(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
Ceph Storage OSD に空き領域があるかどうかを確認します。以下のコマンドを使用すると、コントローラーノード上で
cephツールが実行され、空き領域をチェックします。(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
オーバークラウドノードでクロックが同期されていることを確認します。
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
オーバークラウドのアクセス情報を読み込みます。
(undercloud) $ source ~/overcloudrc
オーバークラウドのネットワークサービスを確認します。
(overcloud) $ openstack network agent list
全エージェントが
Aliveで、それらの状態がUPである必要があります。オーバークラウドの Compute サービスを確認します。
(overcloud) $ openstack compute service list
全エージェントのステータスが
enabledで、状態がupである必要があります。オーバークラウドのボリュームサービスを確認します。
(overcloud) $ openstack volume service list
全エージェントのステータスが
enabledで、状態がupである必要があります。
関連情報
- 「How can I verify my OpenStack environment is deployed with Red Hat recommended configurations?」の記事を参照してください。この記事には、Red Hat OpenStack Platform 環境をチェックして、Red Hat の推奨値に合わせて調整する方法が記載されています。
7.3. オーバークラウドイメージのアップグレード
現在のオーバークラウドイメージを新しいバージョンに置き換える必要があります。新しいイメージにより、director は最新バージョンの OpenStack Platform ソフトウェアを使用してノードのイントロスペクションとプロビジョニングを行うことができるようになります。
前提条件
- アンダークラウドが最新バージョンにアップグレードされていること
手順
stackユーザーのimagesディレクトリー (/home/stack/images) から既存のイメージを削除します。$ rm -rf ~/images/*
アーカイブを展開します。
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-13.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-13.0.tar; do tar -xvf $i; done $ cd ~
director に最新のイメージをインポートします。
$ openstack overcloud image upload --update-existing --image-path /home/stack/images/
ノードが新しいイメージを使用するように設定します。
$ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
新規イメージが存在することを確認します。
$ openstack image list $ ls -l /httpboot
オーバークラウドノードをデプロイする際には、オーバークラウドイメージのバージョンが、その Heat テンプレートバージョンに対応していることを確認してください。たとえば、OpenStack Platform 13 の Heat テンプレートには、OpenStack Platform 13 のイメージのみを使用してください。
7.4. デプロイメントのテスト
オーバークラウドはアップグレードされましたが、今後のデプロイメント操作が正常に実行されるようにするには、テストデプロイメントを実行することを推奨します。
手順
stackrcファイルを読み込みます。$ source ~/stackrc
オーバークラウドに関連する全環境ファイルを指定してデプロイのコマンドを実行します。
$ openstack overcloud deploy \ --templates \ -e <ENVIRONMENT FILE>以下のオプションの中で、お使いの環境に適切なオプションを追加します。
-
-eを使用してカスタム設定環境ファイル -
該当する場合には、
--roles-fileを使用する、カスタムロール (roles_data) のファイル
-
- デプロイメントが完了するまで待ちます。
7.5. 結果
これで Fast Forward Upgrade のプロセスが完全に終了しました。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.