組み込みツールを使用して vSAN クラスタ内のすべてのホストを同時に再起動する
search cancel

組み込みツールを使用して vSAN クラスタ内のすべてのホストを同時に再起動する

book

Article ID: 321436

calendar_today

Updated On: 07-30-2024

Products

VMware vSAN

Issue/Introduction

Symptoms:

この記事では、vSAN クラスタ内のすべてのホストで同時再起動 / シャットダウンを安全に実行する方法についての情報を提供します。6.7 Update 3 以降の ESXi では、組み込みツールを使用してナレッジベースの記事「vSAN -- Maintenance -- Simultaneous Host Reboots / Cluster Full Shutdown -- Risk for Data Unavailability」に記述されている問題を回避できます。

:このソリューションは、6.7 Update 3 以降の健全な vSAN クラスタにすべてのホストがある場合にのみ適用されます。

Environment

VMware vSAN 7.0.x
VMware vSAN 6.7.x

Resolution

ホストのクラスタ レベルの再起動プロセスを開始する前に、次の手順を実行します。

  1. [vSAN 健全性] チェック ボックスをオンにして、クラスタが健全な状態であることを確認します。
  2. HA を無効にして、クラスタでホストが失敗として登録されるのを防ぎます。
  3. vSAN クラスタで実行されているクラスタ内のすべての仮想マシンをパワーオフします (vCenter Server がクラスタで実行されていない場合)。vCenter Server が vSAN クラスタでホストされている場合、vCenter Server 仮想マシンをパワーオフしないでください。
  4. vSphere 7.0 U1 以降の場合は、vCLS の Retreat モードを有効にします。「vSphere Cluster Services (vCLS) in vSphere 7.0 Update 1 and newer versions」を参照してください。 
  5. vCenter Server が vSAN クラスタでホストされている場合、vCenter Server 仮想マシンをパワーオフします。vSphere Client は使用できなくなります。
  6. クラスタ内のすべてのホストで 'esxcfg-advcfg -s 1 /VSAN/IgnoreClusterMemberListUpdates' コマンドを実行します。 
  7. クラスタ内のホストのうち 1 台(Witness(監視)ホストを除く)にログインします。
  8. クラスタ内の 1 台のホストでのみ次のコマンドを実行します(複数のホストで同時に実行すると、競合状態が原因で予期しない結果が発生する可能性があります)
    python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare

  9. コマンドが返され、「クラスタの準備が完了しました」が出力されるまで待機します。

    注:
    • この手順でエラーが発生した場合は、エラー メッセージに基づいて問題を解決し、手順 #3 を再試行してください。
    • クラスタ内に非健全 / 切断されたホストがある場合は、そのホストをリカバリ / 削除してから再試行してください。
    • この手順の後、クラスタは完全にパーティション分割されます。これは予期される動作です。
  10. 「No action(データの移行なし)」モードを使用して、すべてのホストをメンテナンス モードにします。
  11. 再起動 / シャットダウンします。
  12. すべてのホストが再起動 / シャットダウンから戻ったら、すべてのホストのメンテナンス モードを終了します。
    ホストが起動に失敗した場合は、そのホストを手動でリカバリするか、不良なホストを vSAN クラスタ外に移動してください。
  13. クラスタ内のホストのうち 1 台(Witness(監視)ホストを除く)にログインします。
  14. クラスタ内の 1 台のホストでのみ次のコマンドを実行します(複数のホストで同時に実行すると、競合状態が原因で予期しない結果が発生する可能性があります)
    python /usr/lib/vmware/vsan/bin/reboot_helper.py recover
  15. コマンドが返され、「クラスタの再起動 / パワーオンが正常に完了しました」が出力されるまで待機します。
  16. クラスタ内のすべてのホストで esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates コマンドを実行します。
  17. vSphere 7.0 U1 以降の場合、vCenter Server が vSAN クラスタ内でホストされている場合は、vCenter Server VM がパワーアップして実行されるのを待ちます。 vCLS Retreat モードを無効にするには 「vSphere Cluster Services (vCLS) in vSphere 7.0 Update 1 and newer versions」 を参照してください。
  18. HA を再び有効にしてください。

注:
クラスタ内に非健康 / 切断されたホストがある場合は、そのホストをリカバリするか、vSAN クラスタから削除します。vSAN 健全性で使用可能なすべてのホストが緑色で表示されてからのみ、上記のコマンドを再試行します。

環境に 3 ノード クラスタがある場合、reboot_helper.py recover コマンドは 1 台のホストに障害がある状況では動作しません。
この場合、管理者は次の手順を実行します。
1.unicastagent リストから障害ホスト情報を一時的に削除します
2.reboot_helper.py recover の実行後にそのホストを追加します。

以下に、そのホストを削除してクラスタに追加するコマンドを示します。(次のコマンドに精通していない、または不慣れな場合は実行せず、VMware GSS vSAN チームにチケットを発行してサポートを受けてください)
#esxcli vsan cluster unicastagent remove -a <IP Address> -t node -u <NodeUuid>
#esxcli vsan cluster unicastagent add -t node -u <NodeUuid> -U true -a <IP Address> -p 12321

ESXi の IPv6 設定が有効になっていない場合、次のエラーが出力される場合があります。 reboot_helper.py の実行時にログが記録されます。
これは想定されるメッセージであり、このエラーは動作に影響しません。
 ERROR:root:Error to run _getIPRouteListFromEsxCLI

Additional Information