第4章 Bare Metal Provisioning のトラブルシューティング
以下の項には、Bare Metal Provisioning の設定における問題を診断するのに役立つ可能性のある情報と手順を記載します。
Bare Metal Provisioning はイントロスペクションで openstack-ironic-api、openstack-ironic-conductor、openstack-ironic-inspector、openstack-ironic-inspector-dnsmasq の 4 つのサービスを使用します。大半の OpenStack コンポーネントのログは、/var/log ディレクトリーで確認することができます。
4.1. PXE ブートのエラー
Permission Denied エラー
Bare Metal Provisioning ノードのコンソールで「Permission Denied」エラーが表示された場合には、以下に示したように、適切な SELinux の内容を /httpboot と /tftpboot のディレクトリーに必ず適用してください。
# semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?" # semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?"
/pxelinux.cfg/XX-XX-XX-XX-XX-XX でのブートプロセスのフリーズ
以下の図に示したように、ノードのコンソールで、IP アドレスは取得されているように表示されており、プロセスが停止している場合:
これは、ironic.conf ファイルで誤った PXE ブートテンプレートを使用している可能性があることを示しています。
# grep ^pxe_config_template ironic.conf pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
デフォルトのテンプレートは pxe_config.template なので、これを ipxe_config.template に変更するための i を忘れがちです。
4.2. ベアメタルノードの起動後のログインエラーのトラブルシュート
設定ステップで設定した root パスワードを使用して、ノードのコンソールのログインプロンプトでログインを試みてもログインできない場合には、デプロイしたイメージでブートしていないことを意味します。deploy-kernel/deploy-ramdisk イメージにスタックしてしまって、システムが正しいイメージを取得していない可能性があります。
この問題を修正するには、Compute または Bare Metal Provisioning ノードの /httpboot/pxelinux.cfg/MAC_ADDRESS にある PXE ブートの設定ファイルをチェックして、このファイルにリストされている全 IP アドレスがベアメタルプロビジョニングネットワークの IP アドレスに対応していることを確認してください。
Bare Metal Provisinoning ノードが認識している唯一のネットワークはベアメタルプロビジョニングネットワークです。エンドポイントの 1 つがこのネットワーク上にない場合には、そのエンドポイントはブートプロセスの一環として Bare Metal Provisioning ノードに到達することはできません。
たとえば、ファイルのカーネルの行は以下のようになります。
kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=pxe_ssh boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
上記の例の kernel 行の値 | 対応する情報 |
|---|---|
|
http://192.168.200.2:8088 |
|
|
5a6cdbe3-2c90-4a90-b3c6-85b449b30512 |
|
|
deploy_kernel |
これは、 |
|
http://192.168.200.2:6385 |
|
|
pxe_ssh |
このノードの Bare Metal Provisioning サービスが使用している IPMI ドライバー |
|
deploy_ramdisk |
これは、 |
これらの値のいずれかが /httpboot/pxelinux.cfg/MAC_ADDRESS と ironic.conf ファイル間で一致していない場合には、ironic.conf ファイルを更新して Bare Metal Provisioning サービスを再起動してから Bare Metal Provisioning ノードを再デプロイする必要があります。
4.3. Bare Metal Provisioning サービスが正しいホスト名を取得しない場合のトラブルシューティング
Bare Metal Provisioning システムが正しいホスト名を取得しない場合は、cloud-init でエラーが発生していることを意味します。この問題を修正するには、Bare Metal Provisioning のサブネットを OpenStack Networking サービス内のルーターに接続します。meta-data エージェントへの要求はこれで正しくルーティングされるようになるはずです。
4.4. Bare Metal Provisioning コマンドの実行時に OpenStack Identity サービスの認証情報が無効な場合のトラブルシューティング
Identity サービスへの認証で問題がある場合には、ironic.conf ファイルの identity_uri パラメーターをチェックして、 keystone AdminURL から /v2.0 が削除されていることを確認してください。たとえば、identity_uri は http://IP:PORT に設定する必要があります。
4.5. ハードウェア登録のトラブルシューティング
ハードウェア登録での問題は、ノードの登録情報が誤っていることが原因となっている場合があります。プロパティー名と値が正しく入力されていることを確認してください。プロパティー名が誤っていたり、タイプエラーがある場合でも、ノードの情報には正常に追加されますが、無視されます。
ノードの情報を更新します。以下の例では、登録するノードのメモリー使用量を 2 GB に更新します。
# ironic node-update NODE_UUID replace properties/memory_mb=20484.6. No Valid Host エラーのトラブルシューティング
Compute のスケジューラーがインスタンスを起動するのに適切な Bare Metal Provisioning ノードを見つけられない場合には、NoValidHost エラーが /var/log/nova/nova-conductor.log に表示されるか、起動に失敗した直後に Dashboard に表示されます。これは、通常 Compute が想定するリソースと、Bare Metal Provisioning ノードが提供するリソースが一致しないことが原因です。
利用可能なハイパーバイザーのリソースを確認します。
# nova hypervisor-stats
このコマンドで返されるリソースは、Bare Metal Provisioning が提供するリソースと一致する必要があります。
Compute がBare Metal Provisioning ノードをハイパーバイザーとして認識していることを確認します。
# nova hypervisor-list
ノードは UUID で識別され、一覧に表示されるはずです。
Bare Metal Provisioning ノードの詳細を確認します。
# ironic node-list # ironic node-show NODE_UUIDノードの詳細が、Compute によって返された情報と一致することを確認します。
選択したフレーバーが Bare Metal Provisioning ノードで利用可能なリソースを超えていないことを確認します。
nova flavor-show FLAVOR_NAMEironic node-list の出力をチェックして、Bare Metal Provisioning ノードがメンテナンスモードに入っていないことを確認します。必要な場合はメンテナンスモードを解除します。
# ironic node-set-maintenance NODE_UUID offironic node-list の出力をチェックして、Bare Metal Provisioning ノードが
availableの状態であることを確認します。必要な場合にはavailableに切り替えます。# ironic node-set-provision-state NODE_UUID provide
4.7. ハードウェアイントロスペクションのトラブルシューティング
ハードウェアイントロスペクションは、available のプロビジョニング状態の Bare Metal Provisioning ノードで失敗する場合があります。
全ノードのプロビジョニング状態を確認します。
# ironic node-list
イントロスペクションを開始する前に、ノードを
availableからmanageableに切り替えます。# ironic node-set-provision-state NODE_UUID manage

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.