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 つの主なステップで設定されます。そのステップは以下のとおりです。
ステップ | 説明 |
| Pacemaker、RabbitMQ、Memcached、Redis、および Galera を含むロードバランシング用のソフトウェアの初期設定 |
| Pacemaker の設定、HAProxy、MongoDB、Galera、Ceph Monitor、OpenStack Platform の各種サービス用のデータベースの初期化を含む、クラスターの初期設定 |
|
OpenStack Object Storage ( |
| サービス起動順序やサービス起動パラメーターを決定するための制約事項を含む、Pacemaker でのサービスの起動設定値の設定 |
|
OpenStack Identity ( |