テクニカルFAQ

質問

PowerChute Network Shutdown v3.0.1を使用したVMware HA環境における仮想マシンのシャットダウン方法

このページでは、PowerChute Network Shutdown v3.0.1を用い、VMware HAクラスター環境において仮想マシンを安全にシャットダウンする方法について説明しています。

* VMware HAクラスタ環境で使用する場合はPowerChute Network Shutdown v3.1を使用することを推奨します。

VMware HAクラスタ環境では、仮想マシンの起動/シャットダウン機能は無効になっています。このため、UPSに重大な問題が発生した場合、PowerChuteがESXiホストをシャットダウンしようとしても、動作している仮想マシンは正しくシャットダウンできません。

このページでは、HA環境にある仮想マシンおよびESXiホストをシャットダウン/起動するために使用するサンプルスクリプトを提供します。

サンプルスクリプトはこちらからダウンロードしてください。

注意事項:

  • スクリプトを本番環境で使用する前に必ず試験を行ってください。
  • スクリプトはサンプルですので、お客様環境に合わせ変更する必要があります。Schneider Electricでは上記WEBで説明しているスクリプト実行手順についての質問、問題についてはお答えしますが、スクリプトに含まれるコマンドについてはサポートできませんので、ご了承ください。また、お客様個別のスクリプトのご提供もいたしかねます。
  • スクリプトを使用するには、PowerCLIを使用します。PowerCLIはVMware社のプロダクトサポートには含まれませんので、別途サポート契約が必要です。
  • PCNS v3.0.1以外のバージョンには対応しません。
  • VMwareの設定についてのご質問は、弊社ではご回答致しかねますことを予めご了承ください。

HAクラスタの仮想マシンおよびESXiホストをシャットダウンする:
1. PS_HASHUTDOWN.zipをPowerChuteをインストールしたマシン上のフォルダにコピーします。この場合、Windows vCenter Serverのマシンや、vCenterと別のWindowsマシンを使用することが可能です。
2. VMware vSphere PowerCLIをwww.vmware.com/go/powercli からインストールします。
3. PS_HASHUTDOWN.zipを展開します。
4. "hashutdown.bat"ファイルをテキストエディタで開き、 "powershell.exe" および"vim.psc1"へのパスが正しいことを確認してください。“C:\PS_HASHUTDOWN\hashutdown.ps1”のパスを、Step 3でファイルを展開したフォルダに変更します。これらのパスは、マシンの設定によっては異なる場合があります。(Windowsのエディションがx86かx64など)
 

5. hastartup.bat を開き、前のステップと同様にパスを変更します。
6. hashutdown.ps1をテキストエディタで開き、以下の変数を変更します。
a. $server = vCenter ServerのIPアドレス
b. $protocol = https – httpsはvCenter Server接続のデフォルトオプションのため、通常変更する必要はありません。
c. $username = vCenter ServerのAdministrator権限を持つユーザアカウント名
d. $password = 上記のユーザアカウントのパスワード
e. $cluster = シャットダウンするESXiホストが含まれるクラスターの名称
f. スクリプトは、ハードオフ・コマンドを発行するために、仮想マシンを安全にシャットダウンする前にデフォルトで2分待機します。この待機時間を変更するには、33行目のStart-Sleep "120"の数字を変更します。
g. スクリプトの最後の行は、vCenter Serverマシンをリモートからシャットダウンするコマンドを発行します。これは、PowreChuteがvCenter Serverのマシンと異なるマシン上で実行している場合に使用します。PowerChuteがvCenter Server と同じマシン上で実行している場合は、このコマンドを実行する必要はありません。その場合、この行の先頭に「#」と追加することによって、この行をコメントにすることができます。
注: リモートからのシャットダウン・コマンドを実行するには、リモートマシン上で“winrm quickconfig”を実行する必要があります。また、このスクリプトでは、Active Directoryドメインのadminアカウントは vCenter Server 用に設定されていると想定しています。$username変数で指定されているアカウントは、リモートマシンにシャットダウン・コマンドを発行するユーザアカウントと同じアカウントです。
 

7. テキストエディタでhastartup.ps1を開き、上記のようにvCenter Serverの詳細情報を記入します。
8. PowerChuteのユーザインタフェースで、Configure Shutdownページを開きます。
9. hashutdown.batの絶対パスを“Run this command file”に入力します。
10. “The command file needs this much time to complete”にコマンド実行時間を秒で記入します。
    注: この値は、仮想マシンがシャットダウンし、その後ESXiホストとvCenter Serverマシンがシャットダウンするために必要な時間を入力する必要があります。

シャットダウンは次の手順で行われます。
1. UPSがオンバッテリ運転になります。
2. オンバッテリ・イベントが起きると、シャットダウン遅延時間が経過した後、hashutdown.batが実行され、hashutdown.ps1コマンドが呼び出されます。
3. powershell script はクラスターに含まれるそれぞれの仮想マシン上のゲストOSのシャットダウンを試みます。ここで、各仮想マシンにはVMware toolがインストールされている必要があります。インストールされていない場合はPower Off コマンドが実行されます。シャットダウンされた仮想マシンの記録はvmlist.csvというファイルに保存されます。このファイルは、UPSとESXiホストがオンラインに復帰する際、シャットダウンされた仮想マシンをPowerChuteが再起動する際に用いられます。
4. 2分後、スクリプトは、クラスター内にまだ電源が入っている仮想マシンが残っていないか確認し、ある場合は電源オフコマンドを実行します。これは、ESXiがメンテナンス・モードに入るために必要な手順です。
5. スクリプトは、クラスター内のESXiホストをメンテナンス・モードにするコマンドを実行します。
6. ESXiホストがシャットダウンします。
7. スクリプトがvCenter Server machineをリモートからシャットダウンします。
8. Run Command File delay 時間が経過すると、PowerChuteは自分自身のマシンをシャットダウンします。
9. シャットダウン後UPSをオフするオプションが選択されている場合は、PowerChuteはUPSを停止します。クリティカルイベントが解消された場合に、PowerChuteが仮想マシンをオンにするためには、UPSはオフにしておく必要があります。この場合、入力パワーがUPSに復帰するとUPSから電源供給されているサーバが起動します。
   注: この設定はサーバのBIOSオプションで有効にしておく必要があります。

HAクラスタの仮想マシンの起動
1. PowerChute がインストールされているマシンが起動する時、hastartup.bat ファイルを実行し、シャットダウン時にオフにしてあった仮想マシンを起動するように設定できます。
2. この設定を行うには、C:\Program Files\APC\PowerChute\group1\pcnsconfig.ini をテキストエディタで開き、[Events] セクションにある以下の行を編集する必要があります。:
event_MonitoringStarted_enableCommandFile = true
event_MonitoringStarted_commandFilePath = C:\PS_HASHUTDOWN\hastartup.bat
event_MonitoringStarted_commandFileDelay = 0
event_MonitoringStarted_commandFileDuration = 0

スタートアップは次の手順で行われます。
1. PowerChute マシンがオンになり、UPSの監視を開始します。
2. hastartupスクリプトが実行されます。
3. スクリプトは、vCenter Server マシンにネットワーク経由で接続するまで待機し、vCenter Serverサービスが起動し、実行していることを確認します。
4. ESXi ホストをメンテナンスモードから解除し、先ほどシャットダウンされた仮想マシン(vmlist.csvのリストにある仮想マシン)をオンにするコマンドが実行されます。
5. 仮想マシンが起動すると、vmlist.csv ファイルから削除されます。こうすることで、PowerChuteサービスが再起動するたびに仮想マシンを起動しようとすることが避けられます。

 
これは役に立ちましたか?
私たちは情報を改善するために何ができるのでしょうか?