11.3. オーバークラウドの作成のトラブルシューティング
デプロイメントが失敗する可能性のあるレイヤーは 3 つあります。
- Orchestration (Heat および Nova サービス)
- Bare Metal Provisioning (Ironic サービス)
- デプロイメント後の設定 (Puppet)
オーバークラウドのデプロイメントがこれらのレベルで失敗した場合には、OpenStack クライアントおよびサービスログファイルを使用して、失敗したデプロイメントの診断を行います。
11.3.1. オーケストレーション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
多くの場合は、オーバークラウドの作成に失敗した後に、Heat により失敗したオーバークラウドスタックが表示されます。
$ heat stack-list
+-----------------------+------------+--------------------+----------------------+
| id | stack_name | stack_status | creation_time |
+-----------------------+------------+--------------------+----------------------+
| 7e88af95-535c-4a55... | overcloud | CREATE_FAILED | 2015-04-06T17:57:16Z |
+-----------------------+------------+--------------------+----------------------+
スタック一覧が空の場合には、初期の Heat 設定に問題があることが分かります。Heat テンプレートと設定オプションをチェックし、さらに
openstack overcloud deploy を実行後のエラーメッセージを確認してください。
11.3.2. Bare Metal Provisioning リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ironic をチェックして、全登録ノードと現在の状態を表示します。
$ ironic 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 に設定されている
- Provision State が
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の場合には、このノードの Bare Metal Provisioning は失敗しています。ベアメタルノードの詳細を確認してください。$ ironic node-show [NODE UUID]エラーの説明が含まれるlast_errorフィールドがないか確認します。エラーメッセージは曖昧なため、ログを使用して解明します。$ sudo journalctl -u openstack-ironic-conductor -u openstack-ironic-api wait timeout errorが表示されており、Power State がpower onの場合には、問題のあるノードの仮想コンソールに接続して、出力を確認します。
11.3.3. デプロイメント後の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
設定ステージでは多くのことが発生する可能性があります。たとえば、設定に問題があるために、特定の Puppet モジュールの完了に失敗する可能性があります。本項では、これらの問題を診断するプロセスを説明します。
手順11.4 デプロイメント後の設定の問題の診断
- オーバークラウドスタックからのリソースをすべて表示して、どのスタックに問題があるのかを確認します。
$ heat resource-list overcloudこのコマンドでは、全リソースとその状態の表が表示されるため、CREATE_FAILEDの状態のリソースを探します。 - 問題のあるリソースを表示します。
$ heat resource-show overcloud [FAILED RESOURCE]resource_status_reasonのフィールドの情報で診断に役立つ可能性のあるものを確認します。 novaコマンドを使用して、オーバークラウドノードの IP アドレスを表示します。$ nova listデプロイされたノードの 1 つにheat-adminユーザーとしてログインします。たとえば、スタックのリソース一覧から、コントローラーノード上にエラーが発生していることが判明した場合には、コントローラーノードにログインします。heat-adminユーザーには、sudo アクセスが設定されています。$ ssh heat-admin@192.0.2.14os-collect-configログを確認して、考えられる失敗の原因をチェックします。$ sudo journalctl -u os-collect-config- 場合によっては、Nova によるノードへのデプロイメントが完全に失敗する可能性があります。このような場合にはオーバークラウドのロール種別の 1 つの
OS::Heat::ResourceGroupが失敗していることが示されるため、novaを使用して問題を確認します。$ nova list $ nova show [SERVER ID]最もよく表示されるエラーは、No valid host was foundのエラーメッセージです。このエラーのトラブルシューティングについては、「"No Valid Host Found" エラーのトラブルシューティング」を参照してください。その他の場合は、以下のログファイルを参照してトラブルシューティングを実施してください。/var/log/nova/*/var/log/heat/*/var/log/ironic/*
- システムのハードウェアおよび設定に関する情報を収集する SOS ツールセットを使用します。この情報は、診断目的とデバッグに使用します。SOS は通常、技術者や開発者のサポートに使用され、アンダークラウドでもオーバークラウドでも便利です。以下のコマンドで
sosパッケージをインストールします。$ sudo yum install sosレポートを生成します。$ sudo sosreport --all-logs
コントローラーノードのデプロイ後のプロセスは、6 つの主なステップで構成されます。以下のステップが含まれます。
|
ステップ
|
説明
|
|---|---|
ControllerLoadBalancerDeployment_Step1
|
Pacemaker、RabbitMQ、Memcached、Redis、および Galera を含むロードバランシング用のソフトウェアの初期設定
|
ControllerServicesBaseDeployment_Step2
|
Pacemaker の設定、HAProxy、MongoDB、Galera、Ceph Monitor、OpenStack Platform の各種サービス用のデータベースの初期化を含む、クラスターの初期設定
|
ControllerRingbuilderDeployment_Step3
|
OpenStack Object Storage (
swift) 用のリングファイルの初期構築
|
ControllerOvercloudServicesDeployment_Step4
|
全 OpenStack Platform サービスの設定 (
nova、neutron、cinder、sahara、ceilometer、heat、horizon、aodh、gnocchi)。
|
ControllerOvercloudServicesDeployment_Step5
|
サービス起動順序やサービス起動パラメーターを決定するための制約事項を含む、Pacemaker でのサービスの起動設定値の設定
|
ControllerOvercloudServicesDeployment_Step6
|
オーバークラウドの設定の最終段階
|