付録A セルフホストエンジンのデプロイメントのトラブルシューティング

セルフホストエンジンがすでにデプロイされているかどうかを確認するには、hosted-engine --check-deployed を実行します。セルフホストエンジンがデプロイされていない場合にだけ、エラーが表示されます。

A.1. Manager 用仮想マシンのトラブルシューティング

hosted-engine --vm-status を実行して Manager 用仮想マシンのステータスを確認します。

注記

Manager 用仮想マシンに加えた変更がステータスコマンドの出力に反映されるには、20 秒ほどかかります。

出力の Engine status ごとに、問題を特定または解決するためのアドバイスを以下に示します。

Engine status: "health": "good", "vm": "up", "detail": "up"

  1. Manager 用仮想マシンが通常通りに稼働中の場合には、以下のような出力が表示されます。

    --== Host 1 status ==--
    
    Status up-to-date              : True
    Hostname                       : hypervisor.example.com
    Host ID                        : 1
    Engine status                  : {"health": "good", "vm": "up", "detail": "up"}
    Score                          : 3400
    stopped                        : False
    Local maintenance              : False
    crc32                          : 99e57eba
    Host timestamp                 : 248542
  2. 出力は正常だが Manager に接続することができない場合は、ネットワーク接続を確認してください。

Engine status: "reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "up"

  1. healthbadvmup の場合、HA サービスは Manager 用仮想マシンを再起動して Manager の復旧を試みます。数分で復旧しない場合は、コマンドラインからグローバルメンテナンスモードを有効にして、ホストを HA サービスの管理対象外にします。

    # hosted-engine --set-maintenance --mode=global
  2. コンソールに接続します。プロンプトが表示されたら、オペレーティングシステムの root パスワードを入力します。コンソールのオプションについての詳しい説明は、「How to access Hosted Engine VM console from RHEV-H host?」を参照してください。

    # hosted-engine --console
  3. Manager 用仮想マシンにログインして、オペレーティングシステムが動作していることを確認します。
  4. ovirt-engine サービスのステータスを確認します。

    # systemctl status -l ovirt-engine
    # journalctl -u ovirt-engine
  5. ログ /var/log/messages/var/log/ovirt-engine/engine.log、および /var/log/ovirt-engine/server.log を確認します。
  6. 問題を解決したら、セルフホストエンジンノードのいずれかから、手動で Manager 用仮想マシンを再起動します。

    # hosted-engine --vm-shutdown
    # hosted-engine --vm-start
    注記

    セルフホストエンジンノードがグローバルメンテナンスモードにある場合は、Manager 用仮想マシンを手動で再起動する必要があります。コマンドラインから reboot コマンドを送信して Manager 用仮想マシンを再起動しようとしても、設計上 Manager 用仮想マシンは電源オフのままです。

  7. Manager 用仮想マシンで ovirt-engine サービスが稼働中であることを確認します。

     # systemctl status ovirt-engine.service
  8. Manager 用仮想マシンが稼働中であることを確認した後には、コンソールセッションを終了して、メンテナンスモードを無効にし、HA サービスを再び有効にします。

    # hosted-engine --set-maintenance --mode=none

Engine status: "vm": "down", "health": "bad", "detail": "unknown", "reason": "vm not running on this host"

  1. 環境内に複数のホストがある場合は、現在別のホストが Manager 用仮想マシンの再起動を試みていないことを確認します。
  2. グローバルメンテナンスモードにないことを確認します。
  3. /var/log/ovirt-hosted-engine-ha/agent.logovirt-ha-agent のログを確認します。
  4. セルフホストエンジンノードのいずれかから、手動で Manager 用仮想マシンの再起動を試みます。

    # hosted-engine --vm-shutdown
    # hosted-engine --vm-start

Engine status: "vm": "unknown", "health": "unknown", "detail": "unknown", "reason": "failed to getVmStats"

このステータスは、ovirt-ha-agent が VDSM から仮想マシンの詳細を取得できなかったことを意味しています。

  1. /var/log/vdsm/vdsm.log で VDSM のログを確認します。
  2. /var/log/ovirt-hosted-engine-ha/agent.logovirt-ha-agent のログを確認します。

Engine status: セルフホストエンジンの設定が共有ストレージから取得されていない

ステータスが The hosted engine configuration has not been retrieved from shared storage. Please ensure that ovirt-ha-agent is running and the storage server is reachable と表示される場合は、ovirt-ha-agent サービスもしくはストレージ (またはその両方) に問題があります。

  1. ホストの ovirt-ha-agent のステータスを確認します。

    # systemctl status -l ovirt-ha-agent
    # journalctl -u ovirt-ha-agent
  2. ovirt-ha-agent が停止状態の場合は、再起動します。

    # systemctl start ovirt-ha-agent
  3. /var/log/ovirt-hosted-engine-ha/agent.logovirt-ha-agent のログを確認します。
  4. 共有ストレージに ping を送信できることを確認します。
  5. 共有ストレージがマウントされているかどうかを確認します。

その他のトラブルシューティング用コマンド

重要

以下のコマンドのいずれかを実行してセルフホストエンジン環境のトラブルシューティングを行う必要がある場合には、Red Hat サポートまでご連絡ください。

  • hosted-engine --reinitialize-lockspace: このコマンドは、sanlock ロックスペースが壊れている場合に使用します。sanlock ロックスペースを再初期化する前に、グローバルメンテナンスモードが有効で Manager 用仮想マシンが停止していることを確認してください。
  • hosted-engine --clean-metadata: ホストのエージェントのメタデータをグローバルステータスデータベースから削除します。これにより、他のホストではすべて、このホストについての情報はなくなります。ターゲットのホストが停止状態でグローバルメンテナンスモードが有効であることを確認してください。
  • hosted-engine --check-liveliness: このコマンドは、ovirt-engine サービスの liveliness ページを確認します。また、Web ブラウザーで https://engine-fqdn/ovirt-engine/services/health/ に接続して確認することもできます。
  • hosted-engine --connect-storage: このコマンドは、ホストと Manager 用仮想マシンに必要な全ストレージ接続の準備をするように VDSM に指示します。これは通常、セルフホストエンジンのデプロイ中にバックエンドで実行します。このコマンドを実行してストレージの問題のトラブルシューティングを行う必要がある場合には、グローバルメンテナンスモードを必ず有効にしてください。

A.2. 失敗したセルフホストエンジンのデプロイメントのクリーンアップ

セルフホストエンジンのデプロイが中断された場合には、その後のデプロイメントは失敗して、エラーメッセージが表示されます。このエラーはデプロイメントが失敗した段階によって異なります。

エラーメッセージが表示された場合には、デプロイメントホストでクリーンアップスクリプトを実行して、失敗したデプロイメントをクリーンアップすることができます。ただし、ベースのオペレーティングシステムを再インストールして、デプロイメントを最初からやり直すのが最良の手段です。

注記

クリーンアップスクリプトには、以下の制約があります。

  • スクリプトの実行中にネットワークの接続が中断すると、スクリプトによる管理ブリッジの削除や作業用ネットワーク設定の再作成に失敗する場合がある。
  • スクリプトでは、失敗したデプロイメント中に使用された共有ストレージデバイスをクリーンアップすることができない。以降のデプロイメントで再使用するには、共有ストレージデバイスをクリーンアップする必要があります。

手順

  1. /usr/sbin/ovirt-hosted-engine-cleanup を実行して y を選択し、失敗したセルフホストエンジンのデプロイメントで残された項目を削除します。

    # /usr/sbin/ovirt-hosted-engine-cleanup
    This will de-configure the host to run ovirt-hosted-engine-setup from scratch.
    Caution, this operation should be used with care.
    Are you sure you want to proceed? [y/n]
  2. 同じ共有ストレージデバイスに再インストールするか、異なる共有ストレージデバイスを選択するかを定義します。

    • 同じストレージドメインにインストール環境をデプロイする場合には、NFS、Gluster、PosixFS サーバーまたはローカルストレージドメインの適切なディレクトリーで以下のコマンドを実行し、そのストレージドメインをクリーンアップします。

      # rm -rf storage_location/*
    • iSCSI またはファイバーチャネルプロトコル (FCP) のストレージの場合には、「How to Clean Up a Failed Self-hosted Engine Deployment?」でストレージのクリーンアップ方法を参照してください。
    • または、別の共有ストレージデバイスを選択します。
  3. セルフホストエンジンを再デプロイします。