ESXi ホストが再起動後に VMware vSAN クラスタへの再参加に失敗する
search cancel

ESXi ホストが再起動後に VMware vSAN クラスタへの再参加に失敗する

book

Article ID: 339554

calendar_today

Updated On:

Products

VMware vSAN

Issue/Introduction

VMware vSAN ホストを再起動すると、ホストが vSAN クラスタへの再参加に失敗する場合があります。

Symptoms:
免責事項:これは英文の記事「ESXi host fails to rejoin VMware vSAN cluster following reboot (2148122)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • 特定の環境で、vSAN ホストが再起動後に vSAN クラスタに再参加できないことがある。ESXi ホストのシェルにログインしてクラスタ メンバーシップを確認すると、ホストでクラスタが有効になっていないと報告される。次のような出力が表示される。

    # esxcli vsan cluster get
    Virtual SAN Clustering is not enabled on this host


  • システム起動ログ (/var/log/boot.gz) で、vSAN ステート マシンが初期化間もなくシャットダウンしたことが明らかになる。

    2016-12-05T17:11:55.932Z cpu2:36230 opID=d848dca4)CMMDS: CMMDSLogStateTransition:1217: Transitioning(56eb3316-74f3-b796-47ac-782bcb516e1f) from Invalid to Discovery: (Reason: State machine initialization)
    <additional messaging omitted>
    2016-12-05T17:12:01.838Z cpu2:33403)CMMDS: CMMDSLogStateTransition:1217: Transitioning(56eb3316-74f3-b796-47ac-782bcb516e1f) from Agent to Invalid: (Reason: State machine deinitialization)


  • クラスタに手動で再参加しようとすると、vsantraced 障害が発生する。次のような出力が表示される。

    # esxcli vsan cluster join -u 52924056-5029-3645-ad7f-ea237d36f577
    Failed to join the host in VSAN cluster (Failed to start vsantraced (return code 2))



Environment

VMware vSAN 6.5.x
VMware vSAN 6.1.x
VMware vSAN 6.2.x
VMware vSAN 6.0.x

Cause

この問題は、vsantraces ストレージに使用するディレクトリに 2,000 を超えるファイル(正確な数は状況により異なる)がある場合に発生します。vsantraced 初期化プロセスは、ディレクトリのサイズを特定しようとし、ファイル引数リストが長すぎると、vsantraced プロセスは開始に失敗します。vsantraced 初期化障害が発生すると、vSAN クラスタへの再参加に失敗します。
この問題は、vsantraces ストレージに使用されるディレクトリに、大量の vSAN Observer パフォーマンス履歴ファイルが残っていることが原因で発生します。

Resolution

時間の経過とともに構築された大量の vSAN Observer パフォーマンス履歴ファイルの数に関連するこの問題は、ESXi 6.0、パッチ ESXi600-201611001 で解決されました。VMware Patch Downloads から入手できます。パッチのダウンロードの詳細については、「How to download patches in MyVMware (1021623)」を参照してください。

この問題がすでに発生し、ホストが vSAN クラスタへの再参加に失敗している場合は、この手順で動作を検証し、回避策を確認できます。この問題を回避するには、古いファイルを vsantraces ストレージ ディレクトリから削除する必要があります。

:すべての古い vSAN Observer ファイルが削除されると、時間を経て vSAN Observer が新しいパフォーマンス データを作成するまで、このホストの履歴パフォーマンス データはありません。これは、vSAN パフォーマンス サービスや vCenter Server でパフォーマンス データが失われた結果ではありません。

  1. 構成ファイルを調べて、現在の vsantraces ストレージの場所を特定します。
    # cat /etc/vmware/vsan/vsantraced.conf |grep ^VSANTRACED_VOLUME
    例:
    # cat /etc/vmware/vsan/vsantraced.conf |grep ^VSANTRACED_VOLUME
    VSANTRACED_VOLUME="/vmfs/volumes/Datastore1/scratch/vsantraces"

  2. 次のコマンドを実行して、ディレクトリに移動します。
    cd "<directory>"

    例:
    cd "/vmfs/volumes/Datastore1/scratch/vsantraces"

  3. 次のコマンドを実行して、ディレクトリにあるファイルの数を特定します。
    # ls |wc -l

    例:
    # ls |wc -l
    5013


    この例で、ディレクトリには 5,013 ファイルあります。この数は、少なくとも 3,000 ファイルに減らす必要があります。

  4. 次のコマンドを実行して、これらのファイルが vSAN Observer に属していることを確認します。
    # ls |grep vsanObserver|wc -l

    例:
    # ls |grep vsanObserver|wc -l
    4986


    この例で、ディレクトリには 4,986 の vSAN Observer ファイルあります。これらのうち最も古いものは削除することができます。

  5. 必要な数の vSAN Observer ファイルを別のディレクトリに移動するか、必要な数の vSAN Observer ファイルを削除します。

  • ワイルドカード拡張(* を引数に使用する)は、引数リストが長すぎると、失敗する場合があります。
  • ディレクトリ内のファイルは、2,000 までにする必要があります。2,000 未満にファイル数を減らすことをお勧めします。
  • 手順 3 を再実行して、ディレクトリ内のファイルの数を特定します。

6. ホストを再起動するか、次のコマンドを実行して、vSAN クラスタに再参加します。
# esxcli vsan cluster join -u <cluster uuid>

例:
# esxcli vsan cluster join -u 52924056-5029-3645-ad7f-ea237d36f577


Additional Information

解決策の手順 6 のコマンドのクラスタ UUID は、vSAN クラスタ内にある別のホストから取得できます。
  1. vSAN クラスタ内にある別のホストの ESXi シェルにログインします。
  2. esxcli からクラスタ情報を取得します。
    # esxcli vsan cluster get |grep "Sub-Cluster UUID"

    esxcli vsan cluster join コマンドに必要な UUID が返されます。例:
    # esxcli vsan cluster get |grep "Sub-Cluster UUID"
    Sub-Cluster UUID: 52924056-5029-3645-ad7f-ea237d36f577
ESXi host fails to rejoin VMware vSAN cluster following reboot