Red Hat Training

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

15.4. オーバークラウドの作成に関するトラブルシューティング

デプロイメントが失敗する可能性のあるレイヤーは 3 つあります。

  • オーケストレーション (Heat および Nova サービス)
  • ベアメタルプロビジョニング (Ironic サービス)
  • デプロイメント後の設定 (Puppet)

オーバークラウドのデプロイメントがこれらのレベルのいずれかで失敗した場合には、OpenStack クライアントおよびサービスログファイルを使用して、失敗したデプロイメントの診断を行います。以下のコマンドを実行して、エラーの詳細を表示することもできます。

$ openstack stack failures list <OVERCLOUD_NAME> --long

<OVERCLOUD_NAME> を実際のオーバークラウドの名前に置き換えてください。

注記

最初のオーバークラウドの作成に失敗した場合は、openstack stack delete overcloud コマンドを使用して部分的にデプロイされたオーバークラウドを削除し、再試行できます。これらの最初のオーバークラウドの作成が失敗した場合にのみ、このコマンドを実行してください。このコマンドは、完全にデプロイされて稼働中のオーバークラウドでは実行しないでください。そうしないと、オーバークラウド全体が削除されます。

15.4.1. デプロイメントコマンド履歴へのアクセス

director のデプロイメントコマンドおよび引数の履歴を把握することは、トラブルシューティングおよびサポートに役立ちます。/home/stack/.tripleo/history で、これらの情報を確認することができます。

15.4.2. オーケストレーション

多くの場合は、オーバークラウドの作成に失敗した後に、Heat により失敗したオーバークラウドスタックが表示されます。

$ source ~/stackrc
(undercloud) $ openstack stack list --nested --property status=FAILED
+-----------------------+------------+--------------------+----------------------+
| id                    | stack_name | stack_status       | creation_time        |
+-----------------------+------------+--------------------+----------------------+
| 7e88af95-535c-4a55... | overcloud  | CREATE_FAILED      | 2015-04-06T17:57:16Z |
+-----------------------+------------+--------------------+----------------------+

スタック一覧が空の場合には、初期の Heat 設定に問題があることが分かります。Heat テンプレートと設定オプションをチェックし、さらに openstack overcloud deploy を実行後のエラーメッセージを確認してください。

15.4.3. ベアメタルプロビジョニング

ironic をチェックして、全登録ノードと現在の状態を表示します。

$ source ~/stackrc
(undercloud) $ openstack baremetal node list

+----------+------+---------------+-------------+-----------------+-------------+
| UUID     | Name | Instance UUID | Power State | Provision State | Maintenance |
+----------+------+---------------+-------------+-----------------+-------------+
| f1e261...| None | None          | power off   | available       | False       |
| f0b8c1...| None | None          | power off   | available       | False       |
+----------+------+---------------+-------------+-----------------+-------------+

プロビジョニングプロセスでよく発生する問題を以下に示します。

  • 結果の表の Provision State および Maintenance の列を確認します。以下の点をチェックしてください。

    • 表にノードが表示されない、または必要なノード数よりも少ない
    • Maintenance が True に設定されている
    • プロビジョニングの状態が manageable に設定されている。これにより、登録または検出プロセスに問題があることが分かります。たとえば、Maintenance が True に自動的に設定された場合は通常、ノードの電源管理の認証情報が間違っています。
  • Provision State が available の場合には、ベアメタルのデプロイメントが開始される前に問題が発生しています。
  • Provision State が active で、Power State が power on の場合、ベアメタルのデプロイメントは正常に完了しています。これは、デプロイメント後の設定ステップで問題が発生したことを意味します。
  • ノードの Provision State が wait call-back の場合には、このノードではまだ Bare Metal Provisioning プロセスが完了していません。このステータスが変わるまで待ってください。ステータスが変わらない場合には、問題のあるノードの仮想コンソールに接続して、出力を確認します。
  • Provision State が error または deploy failed の場合には、このノードでのベアメタルプロビジョニングは失敗しています。ベアメタルノードの詳細を確認してください。

    (undercloud) $ openstack baremetal node show [NODE UUID]

    エラーの説明が含まれる last_error フィールドがないか確認します。エラーメッセージが曖昧な場合、ログを使用して明確にすることができます。

    (undercloud) $ sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-api
  • wait timeout error が表示されており、Power State が power on の場合には、問題のあるノードの仮想コンソールに接続して、出力を確認します。

15.4.4. デプロイメント後の設定

設定ステージでは多くの事象が発生する可能性があります。たとえば、設定に問題があるために、特定の Puppet モジュールの完了に失敗する可能性があります。本項では、これらの問題を診断するプロセスを説明します。

オーバークラウドスタックからのリソースをすべて表示して、どのスタックに問題があるのかを確認します。

$ source ~/stackrc
(undercloud) $ openstack stack resource list overcloud --filter status=FAILED

このコマンドにより、問題のあるリソースの全リストが表示されます。

問題のあるリソースを表示します。

(undercloud) $ openstack stack resource show overcloud [FAILED RESOURCE]

resource_status_reason フィールドで、診断に役立つ可能性のある情報がないか確認します。

nova コマンドを使用して、オーバークラウドノードの IP アドレスを表示します。

(undercloud) $ openstack server list

デプロイされたノードの 1 つに heat-admin ユーザーとしてログインします。たとえば、スタックのリソース一覧から、コントローラーノード上にエラーが発生していることが判明した場合には、コントローラーノードにログインします。heat-admin ユーザーには、sudo アクセスが設定されています。

(undercloud) $ ssh heat-admin@192.168.24.14

os-collect-config ログを確認して、考えられる失敗の原因をチェックします。

[heat-admin@overcloud-controller-0 ~]$ sudo journalctl -u os-collect-config

場合によっては、Nova によるノードのデプロイメントが完全に失敗する可能性があります。このような場合には、オーバークラウドのロール種別の 1 つの OS::Heat::ResourceGroup が失敗しているはずです。その際には、nova を使用して問題を確認します。

(undercloud) $ openstack server list
(undercloud) $ openstack server show [SERVER ID]

最もよく表示されるエラーは、No valid host was found のエラーメッセージです。このエラーのトラブルシューティングについては、「"No Valid Host Found" エラーのトラブルシューティング」を参照してください。その他の場合は、以下のログファイルを参照してトラブルシューティングを実施してください。

  • /var/log/nova/*
  • /var/log/heat/*
  • /var/log/ironic/*

コントローラーノードのデプロイ後のプロセスは、5 つの主なステップで設定されます。そのステップは以下のとおりです。

表15.1 コントローラーノードの設定ステップ

ステップ

説明

ControllerDeployment_Step1

Pacemaker、RabbitMQ、Memcached、Redis、および Galera を含むロードバランシング用のソフトウェアの初期設定

ControllerDeployment_Step2

Pacemaker の設定、HAProxy、MongoDB、Galera、Ceph Monitor、OpenStack Platform の各種サービス用のデータベースの初期化を含む、クラスターの初期設定

ControllerDeployment_Step3

OpenStack Object Storage (swift) の初期リング構築。OpenStack Platform の全サービス (novaneutroncindersaharaceilometerheathorizonaodhgnocchi) の設定

ControllerDeployment_Step4

サービス起動順序やサービス起動パラメーターを決定するための制約事項を含む、Pacemaker でのサービスの起動設定値の設定

ControllerDeployment_Step5

OpenStack Identity (keystone) のプロジェクト、ロール、およびユーザーの初期設定