テクニカルFAQ

質問

PowerChute Network Shutdownで、 vSANクラスターに含まれるESXiホストがメンテナンスモードに移行せずシャットダウンする

このページでは、PowerChute Network Shutdownで、 vSANクラスターに含まれるESXiホストがメンテナンスモードに移行せずシャットダウンする問題の説明と、その回避策について説明しています。
PowerChute Network ShutdownのVMware vSAN対応については、こちら(FA53879)のページも参照してください。

注意事項
※ スクリプトはサンプルですので、お客様環境に合わせ変更する必要があります。
※ シュナイダーエレクトリックは、PowerChuteでスクリプトを実行するための手順についての質問、問題についてはお答えしますが、スクリプトの内容についてのお問い合わせへの回答、動作検証、動作保証、お客様個別のスクリプトのご提供はいたしかねますので、ご了承ください。
※ スクリプトを本番環境で使用する前に必ず試験を行ってください。
※ スクリプト実行には、オープンソースソフトウェアのTera Termを使用します。Tera Termについての質問は開発元にご確認ください。

【対象バージョン】
PowerChute Network Shutdown for Virtualization v4.2
※ 本構成では、PowerChuteはクラスター外のマシンにインストールするため、PowerChute Network Shutdown for Virtualizationに含まれるWindows用のインストーラーファイルを使用してください。

【問題の概要】
PowerChute Network Shutdownが、vSANクラスターに含まれるESXiホストをシャットダウンする際、ホストのうち1台がメンテナンスモードに移行せずシャットダウンする。
この際、イベントログに以下のイベントが記録されます。
 
ホスト<ESXi ホストのIP Address/FQDN>でメンテナンスモードに入ることができませんでした。

【対象環境】
VMware ESXi バージョン6.x以降

【回避策】
本問題を回避するためには、シャットダウン実行時にホストのメンテナンスモード移行を行うコマンドを実行してください。
このページでは、サンプルのスクリプトの提供と、スクリプト実行時の注意事項について説明します。

【本スクリプト使用時の構成】
本ページで説明するスクリプトは以下の構成で使用しています。
  • vSANクラスターに含まれる3台のVMware ESXi 6.5ホスト (うち1台がウィットネスサーバー)
  • vSANのVM設定は“FTT = 1”
  • 全てのサーバーは1台のUPSによって保護される
  • vSANクラスター外の物理マシン(Windows)
※ PowerChuteは外部の物理マシン(Windows)にインストールします。
※ vCenter Serverのインストール先は物理マシンとクラスター内のホスト上のいずれでも動作可能です。
※ PowerChute Network Shutdown for Virtualizationの機能により、ホストシャットダウンを実行します。その際、スクリプトによりあらかじめホストをメンテナンスモードに移行させ、PowerChuteがホストシャットダウンを実行します。
※ 外部の物理マシン(Windows)はPowerChuteによりシャットダウンします。

【スクリプトファイルについて】
サンプルスクリプトは本ページに添付していますので、ダウンロードしてください。
スクリプトは、以下の2つのファイルから構成されています。

(1) vSAN_shutdown.bat
PowerChuteにシャットダウン時のコマンドファイルとして設定するスクリプトです。以下(2)のマクロを呼び出します。

(2) vSAN_shutdown_macro.ttl
ホストシャットダウン前に、設定ESXiホストをメンテナンスモードに移行します。

【スクリプト実行前の設定について】
1. “vSAN_shutdown.bat”に記載されているファイルパスを変更します。”ttpmacro.exe”と”vSAN_shutdown_macro.ttl”を実行環境に合わせて絶対パスで指定してください。

2. 実行環境に合わせて、vSAN_shutdown_macro.ttlに含まれる以下のパラメーターを変更します。
パラメーター サンプルの値 説明
Num= 3 クラスターに含まれるESXiホストの数
ESXi_HOST_IP[n]= 192.168.0.212
(n=1の場合)
n’台目のESXiホストのIP Address
ホストの台数だけ登録します
UserName = root ESXiホストにログインする際のユーザー名
Password = root ESXiホストにログインする際のパスワード

【設定方法】
  1. PowerChute Network Shutdownを、クラスター外部のWindowsマシンにインストールします。
  2. PowerChuteをインストールしたマシンに、Tera Termマクロ機能をインストールします。
  3. スクリプトファイルを、PowerChuteのインストールフォルダに保存します。 (例: C:\Program Files\APC\PowerChute\group1 on Windows). 
  4. PowerChuteのコマンド実行設定で、“vSAN_Shutdown.bat” を設定します。

【PowerChuteの設定について】
  • PowerChuteはVirtualization版を使用してください。   Virtualization版に含まれるWindows用のインストーラーファイルを使用してください。 詳細はこちらを参照してください。
  • インストール時、「VMwareサポートの設定」画面にて、「VMwareサポートを有効にする」を選択してください。    
  • PowerChuteの「シャットダウンの設定」メニュー「コマンド実行」セクションに呼び出し用のバッチファイル(vSAN_shutdown.bat)を設定し、所要時間を設定してください。
※コマンド実行時間の目安として、1台のESXi ホストに対して5~10秒程度の遅延時間を設けてください(検証時は3台のESXi ホストを使用し、30秒を設定)

注意1: vCenter Web Clientのタスクコンソールのイベント上に、ESXiホストのシャットダウンが開始された後に、メンテナンスモードの移行が完了したように見えることがタイミングによってありますが、動作上問題はありません。
注意2: vCenter Serverがクラスター外の物理マシンにインストールされている環境では、シャットダウン中にPowerChuteのイベントログにメンテナンスモードの移行が失敗したメッセージが出力されることがありますが、本スクリプトによって再度メンテナンスモードの移行を実行するため、動作上問題はありません。

PowerChuteとNMCの各パラメーターの内容については、こちらをご参照ください。

【スクリプト使用時のシャットダウンシーケンスについて】
本スクリプトおよび設定によるシャットダウンシーケンスは以下の通りです。
  1. PowerChuteが、UPSがバッテリー運転になったことを示す信号を受信します。
  2. バッテリー運転イベントのシャットダウン開始遅延時間が経過すると、PowerChuteはシャットダウンシーケンスを開始し、UPSに対し電源オフコマンドを送信します。
  3. PowerChuteがVMのシャットダウンを開始します。
  4. vCenter Serverがクラスター上にある場合、PowerChuteがvCenter Server VMのシャットダウンを開始します。
  5. PowerChuteが"vSAN_shutdown.bat"を実行します。
  6. "vSAN_shutdown.bat"より、"vSAN_shutdown_macro.ttl"が実行されます。
  7. "vSAN_shutdown_macro.ttl"により、vSANクラスター上のホストに対し、メンテナンスモードタスクを実行します。
  8. PowerChuteがVMwareホストをシャットダウンします。
  9. PowerChuteが自分自身の稼動するWindows OSをシャットダウンします。
  10. あらかじめ指定した時間が経過した後、UPSの出力が停止します。
これは役に立ちましたか?
私たちは情報を改善するために何ができるのでしょうか?