第8章 アップグレード後のステップの実行

以下のステップでは、主要なアップグレードプロセスが完了した後の最終ステップを実行します。これには、Fast Forward Upgrade プロセス終了後のイメージの変更、追加の設定ステップ、考慮事項などが含まれます。

8.1. アンダークラウドの検証

アンダークラウドの機能を確認するステップを以下に示します。

手順

  1. アンダークラウドのアクセス情報を読み込みます。

    $ source ~/stackrc
  2. エラーが発生している Systemd サービスがあるかどうかを確認します。

    (undercloud) $ sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker'
  3. アンダークラウドの空き領域を確認します。

    (undercloud) $ df -h

    「アンダークラウドの要件」を元に、十分な空き容量があるかどうかを判断します。

  4. アンダークラウド上に NTP をインストールしている場合には、クロックが同期されていることを確認します。

    (undercloud) $ sudo ntpstat
  5. アンダークラウドのネットワークサービスを確認します。

    (undercloud) $ openstack network agent list

    全エージェントが Aliveで、それらの状態が UP である必要があります。

  6. アンダークラウドの Compute サービスを確認します。

    (undercloud) $ openstack compute service list

    全エージェントのステータスが enabled で、状態が up である必要があります。

関連情報

8.2. コンテナー化されたオーバークラウドの検証

コンテナー化されたオーバークラウドの機能を確認するステップを以下に示します。

手順

  1. アンダークラウドのアクセス情報を読み込みます。

    $ source ~/stackrc
  2. ベアメタルノードのステータスを確認します。

    (undercloud) $ openstack baremetal node list

    全ノードの電源状態が有効で (on)、かつメンテナンスモードが false である必要があります。

  3. エラーが発生している 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
  4. エラーが発生しているコンテナー化されたサービスがあるかどうかを確認します。

    (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
  5. 全サービスへの 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)" | cut -d, -f 1,2,18,37,57 | column -s, -t

    <PASSWORD><IP ADDRESS> の情報を、haproxy.stats サービスからの実際の情報に置き換えます。その結果表示される一覧には、各ノード上の OpenStack Platform サービスとそれらの接続ステータスが表示されます。

    注記

    ノードが Redis サービスを実行している場合、1 つのノードだけがそのサービスを ON のステータスで表示します。これは、Redis がアクティブ/パッシブのサービスであり、同時に複数のノードでは実行されないためです。

  6. オーバークラウドデータベースのレプリケーションの正常性を確認します。

    (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
  7. 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
  8. 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 のアクションがないこと
  9. 各オーバークラウドノードでディスク領域を確認します。

    (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
  10. オーバークラウドの 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"
  11. 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"
  12. オーバークラウドノードでクロックが同期されていることを確認します。

    (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
  13. オーバークラウドのアクセス情報を読み込みます。

    (undercloud) $ source ~/overcloudrc
  14. オーバークラウドのネットワークサービスを確認します。

    (overcloud) $ openstack network agent list

    全エージェントが Aliveで、それらの状態が UP である必要があります。

  15. オーバークラウドの Compute サービスを確認します。

    (overcloud) $ openstack compute service list

    全エージェントのステータスが enabled で、状態が up である必要があります。

  16. オーバークラウドのボリュームサービスを確認します。

    (overcloud) $ openstack volume service list

    全エージェントのステータスが enabled で、状態が up である必要があります。

関連情報

8.3. オーバークラウドイメージのアップグレード

現在のオーバークラウドイメージを新しいバージョンに置き換える必要があります。新しいイメージにより、director は最新バージョンの OpenStack Platform ソフトウェアを使用してノードのイントロスペクションとプロビジョニングを行うことができるようになります。

前提条件

  • アンダークラウドが最新バージョンにアップグレードされていること

手順

  1. アンダークラウドのアクセス情報を読み込みます。

    $ source ~/stackrc
  2. stack ユーザーの images ディレクトリー (/home/stack/images) から既存のイメージを削除します。

    $ rm -rf ~/images/*
  3. アーカイブを展開します。

    $ 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 ~
  4. director に最新のイメージをインポートします。

    $ openstack overcloud image upload --update-existing --image-path /home/stack/images/
  5. ノードが新しいイメージを使用するように設定します。

    $ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
  6. 新規イメージが存在することを確認します。

    $ openstack image list
    $ ls -l /httpboot
重要

オーバークラウドノードをデプロイする際には、オーバークラウドイメージのバージョンが、その Heat テンプレートバージョンに対応していることを確認してください。たとえば、OpenStack Platform 13 の Heat テンプレートには、OpenStack Platform 13 のイメージのみを使用してください。

重要

新しい overcloud-full イメージは、古い overcloud-full イメージを置き換えます。古いイメージに変更を加えた場合、特に今後新規ノードをデプロイする場合には、新しいイメージで変更を繰り返す必要があります。

8.4. デプロイメントのテスト

オーバークラウドはアップグレードされましたが、今後のデプロイメント操作が正常に実行されるようにするには、テストデプロイメントを実行することを推奨します。

手順

  1. source コマンドで stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. お使いのオーバークラウドに関連する全環境ファイルを指定して、デプロイのコマンドを実行します。

    $ openstack overcloud deploy \
        --templates \
        -e <ENVIRONMENT FILE>

    以下のオプションの中で、お使いの環境に適切なオプションを追加します。

    • -e を使用したカスタム設定環境ファイル。
    • 該当する場合は、--roles-file でカスタムロール (roles_data) ファイルを指定します。
  3. デプロイメントが完了するまで待ちます。

8.5. 結果

これで Fast Forward Upgrade のプロセスが完了しました。