Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第4章 director ベースのアップグレードのトラブルシューティング

本項では、アンダークラウドとオーバークラウドの両シナリオで問題が発生した場合のトラブルシューティングのアドバイスを記載します。

4.1. アンダークラウドのアップグレード

アンダークラウドのアップグレードコマンド (openstack undercloud upgrade) が失敗した場合には、以下のアドバイスに従って、アップグレードの進捗の妨げとなっている問題を特定してください。

  • openstack undercloud upgrade コマンドは、実行中に進捗状況のログを出力し、.instack/install-undercloud.log に保存します。アップグレードプロセスのいずれかの時点でエラーが発生した場合には、コマンドはその時点で停止します。この情報は、アップグレードの進行を妨げている問題の特定に使用してください。
  • openstack undercloud upgrade コマンドは、Puppet を実行してアンダークラウドサービスを設定します。これにより、以下のディレクトリーで便利な Puppet のレポートが生成されます。

    • /var/lib/puppet/state/last_run_report.yaml: 最後の Puppet レポートは、アンダークラウド向けに生成されます。このファイルは、問題のある Puppet のアクションの原因を表示します。
    • /var/lib/puppet/state/last_run_summary.yaml: last_run_report.yaml ファイルのサマリー
    • /var/lib/puppet/reports: アンダークラウドの全 Puppet レポート

      この情報を使用して、アップグレードプロセスを妨げている問題を特定します。

  • エラーが発生しているサービスがあるかどうかを確認します。

    $ sudo systemctl -t service

    エラーが発生しているサービスがある場合は、対応するログを確認します。たとえば、openstack-ironic-api でエラーが発生している場合には、以下のコマンドを使用してこのサービスのログを確認します。

    $ sudo journalctl -xe -u openstack-ironic-api
    $ sudo tail -n 50 /var/log/ironic/ironic-api.log

アンダークラウドのアップグレードを妨げていた問題を修正した後に、アップグレードのコマンドを再度実行します。

$ openstack undercloud upgrade

アップグレードのコマンドをもう 1 度開始して、アンダークラウドを設定します。

4.2. オーバークラウドのアップグレード

オーバークラウドのアップグレードプロセスで障害が発生した場合には、以下のアドバイスに従ってアップグレードプロセスを妨げている問題を特定します。

  • Heat スタックの一覧を確認して、UPDATE_FAILED のステータスがあるスタックを特定します。以下のコマンドで、失敗したスタックを特定します。

    $ openstack stack failures list overcloud

    エラーの発生したスタックとそのスタックのテンプレートを表示して、スタックが失敗した原因を究明します。

    $ openstack stack show overcloud-Controller-qyoy54dyhrll-1-gtwy5bgta3np
    $ openstack stack template show overcloud-Controller-qyoy54dyhrll-1-gtwy5bgta3np
  • 全コントローラーノード上で Pacemaker が正しく実行されていることを確認します。必要な場合は、コントローラーノードにログインして、コントローラークラスターを再起動します。

    $ sudo pcs cluster start
  • 設定のログファイルでエラーがあるかどうかを確認します。各ノードの /var/run/heat-config/deployed/ ディレクトリーにはこれらのログが含まれています。これらのファイル名は日付順にリストされ、標準出力 (*-stdout.log) およびエラー出力 (*-stderr.log) に分けられています。
注記

director はアップグレードプロセスの前に一式の検証チェックを実行し、オーバークラウドが正常な状態であることを確認します。アップグレードが失敗して、再試行する場合には、これらの検証チェックを無効にする必要がある場合があります。チェックを無効にするには、オーバークラウドに含まれている環境ファイルの parameter_defaults セクションに SkipUpgradeConfigTags: [validation] を一時的に追加します。

オーバークラウドのアップグレードを妨げていた問題を修正した後には、IN_PROGRESS ステータスのリソースがないことを確認します。

$ openstack stack resource list overcloud -n5 --filter status='*IN_PROGRESS'

いずれかのリソースが IN_PROGRESS のステータスの場合には、そのプロセスが完了または失敗するまで待ちます。

アップグレードを試みて失敗したステップで openstack overcloud deploy コマンドを再度実行します。アップグレードプロセスの最初の openstack overcloud deploy コマンドの例を以下に示します。このコマンドでは major-upgrade-composable-steps.yaml を指定しています。

$ openstack overcloud deploy --templates \
  --control-scale 3 \
  --compute-scale 3 \
  -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-composable-steps.yaml \
  --ntp-server pool.ntp.org

openstack overcloud deploy は、オーバークラウドのスタックの更新を再試行します。