FAQの参照

PowerChute Network Shutdown v4.3によるHyperFlex のシャットダウン

公開日: 27 2月 2020

このページでは、PowerChute Network Shutdown v4.3のシャットダウンコマンドファイル機能により実行されるスクリプトを使用して、電源障害時にHyperFlex Clusterを正常にシャットダウンする方法について説明します。HyperFlex環境サポートされるPowerChute Network Shutdown v4.3とUPSの構成についてはこちらを参照ください。
PowerChuteのデプロイには2つの方法があります。 物理Windows管理サーバにインストールし、PowerShellスクリプトを使用する方法、または、HXストレージクラスタ外のESXi管理ホストにVMとしてデプロイできるPowerChute仮想アプライアンスを使用する方法があります。
いずれの場合も、PowerChuteのVM優先度付け機能を使用して、ユーザーVMとクラスターサービスがシャットダウンされる前にHyperFlexストレージコントローラVMをシャットダウンしないようにします。

 [対象バージョン]
PowerChute Network Shutdown v4.3 for Virtualization

 [対象システム]
Cisco HyperFlex システム、HyperFlex Edge

[シャットダウンおよびスタートアップの動作概要]
本ページの内容でセットアップした場合、停電時、PowerChuteは以下の順でコンポーネントのシャットダウンを行います。
 1. ユーザーVM(PCNSの標準機能:優先度シャットダウンにて実施)
 2. vCenterVM(同上)
 3. ストレージクラスタ(PowerChuteからスクリプトを実行させることにより実施)
 4. ストレージコントローラVM(同上)
 5. ESXi ホスト(PowerChuteの標準機能にて実施)
 6. セカンダリFI(PowerChuteからスクリプトを実行させ、Switched PDUのOutletオフディレイ機能と連動させることにより実施)
 7. プライマリFI(同上)

復電時は、以下の順でコンポーネントの起動を行います。
 1. プライマリFI(Switched PDUのOutletオンディレイ機能と連動させることにより実施)
 2. セカンダリFI(同上)
 3. ESXi ホスト(同上)
 4. ストレージコントローラVM(PowerChuteからスクリプトを実行させることにより実施)
 5. ストレージクラスタ(同上)
 6. vCenterVM(同上)
 7. ユーザーVM(PowerChuteの標準機能:優先度シャットダウンにて実施)

[設定について]
スクリプトの編集方法とセットアップ方法について、本ページは以下の構成になっています。
-------------------
① 準備~スクリプトの編集
  - PowerChuteを外部の物理Windows管理サーバにインストールする構成
  - HXストレージクラスタ外の管理ESXiホストにPowerChute仮想アプライアンスをデプロイする構成
   ESXiホストに接続するための共有SSHキーのセットアップ
② PowerChuteのセットアップ
③ ファブリックコネクタのパワーオフ(HyperFlex システムズのみ)
④ シャットダウン後のスタートアップ
 - スタートアップ用PowerShellスクリプト
 - スタートアップ用PowerChute仮想アプライアンスLinuxシェルスクリプト
-------------------

① 準備~スクリプトの編集

PowerChuteを外部の物理Windows管理サーバにインストールする構成

PowerChuteを外部の物理Windows管理サーバにインストールする構成では、本ドキュメントに添付されているサンプルPowerShellスクリプト(shutdown_cluster_win.ps1)を使用して、HyperFlex(HX)ストレージクラスタのシャットダウンを行います。

環境に合わせて、ファイルで以下の変数を編集します。
$cluster_ip = "<HyperFlex Cluster IP address>"
$username = "<HyperFlex Local Admin user>"
$password = "<HyperFlex Password>"
$esxuser = "<ESXi host username>"
$esxpwd = "<ESXi host password>"
$cluster_stop_duration = <Time in seconds for Cluster Stop command to complete>
$RETRY_COUNT=1 <Do not modify this value>
$RETRY_LIMIT=5 <Number of times PowerChute should wait/re-try if the cluster shutdown takes longer than than cluster stop duration>
$RETRY_INTERVAL=60 <Time in seconds to wait between re-tries>
$HXHosts = "192.168.1.221","192.168.1.222","192.168.1.223" <IP address of each ESXi Host in the HyperFlex cluster>
ShutdownHX.cmd file – enter the path to the powershell script in this file e.g.
cmd.exe /C powershell.exe ;  C:\Users\apc\Downloads\4.3_Shutdown_Scripts_HyperFlex\shutdown_cluster_win.ps1

NOTE:
1. Powershell 5.1を使用します–Windows Management Framework 5.1を介してインストールすることができます。
2. Set-ExecutionPolicy RemoteSignedを実行して、Powershell実行ポリシーを変更し、コマンドスクリプトを実行できるようにします。
3. このスクリプトはVMware PowerCliを使用してESXiホストに接続し、コントローラVMの電源をオフにします。 powershell 5.1では、コマンドInstall-Module -Name VMware.PowerCliを実行してインストールできます。

HXストレージクラスタ外の管理ESXiホストにPowerChute仮想アプライアンスをデプロイする構成

本ページに添付されているシェルスクリプト(shutdown_hyperflex.sh)で以下の変数を編集します。
USER=<HyperFlex local admin user>
PASSWORD=<HyperFlex password>
ESXUSER=<ESXi user>
CLUSTER_IP="192.168.1.241"     (HXクラスターのIPアドレス)
HOST_IP[1]="192.168.1.221"     (ESXiホストのIPアドレス)
HOST_IP[2]="192.168.1.222"     (ESXiホストのIPアドレス)
HOST_IP[3]="192.168.1.223"     (ESXiホストのIPアドレス)
HOST_IP[4]=
NUM_CVMS=3 
SHUTDOWN_TIME=240
RETRY_COUNT=1
RETRY_LIMIT=5
RETRY_INTERVAL=60

SCPを使用して、スクリプトをPowerChute 仮想アプライアンス上のフォルダーにコピーします。 コマンドchmod + x shutdown_hyperflex.shを使用して、スクリプトの実行権限を追加します。

ESXiホストに接続するための共有SSHキーのセットアップ

以下に、ストレージコントローラVMをシャットダウンするために、パスワードプロンプトなしでスクリプトがESXiホストに接続できるようにする共有SSHキーを作成するための必要な手順の概要を示します。
1. puttyなどのツールを使用してSSHでPowerChute 仮想アプライアンスに接続するか、VMware Web Consoleを使用します。
2. yumを使用して以下をインストールします。
 a.yum install epel-release(jqツールのため必要)
 b.yum install jq(jqツールはHyperFlex Rest APIからのjson応答を解析するために使用されます)
3. 次のコマンドを使用して、SSHキーペア(vim-cmdを使用してコントローラVMをパワーオフするためにESXiホストに接続するために使用)を生成します:
   ssh-keygen -t rsa -b 4096

プロンプトが表示されたら、パスフレーズを空白のままにします。 これにより、PowerChute 仮想マシンの.sshディレクトリに2つのファイルid_rsaとid_rsa.pubが作成されます。

 
4.各ESXiホストに接続し、次のコマンドを実行して、各ホストへのSSH接続のキーペアを設定します。

 a.mkdir -p /etc/ssh/keys-<username>
 b.echo "ssh-rsa AAAAB3..." > /etc/ssh/keys-<username>/authorized_keys (This is the public key contained in file /root/.ssh/id_rsa.pub file that was created in step 3)
 c.chmod 700 -R /etc/ssh/keys-<username> && chmod 600 /etc/ssh/keys-<username>/authorized_keys
 d.chown -R <username> /etc/ssh/keys-<username>

5.上記の行をESXiホストの「/etc/rc.local.d/local.sh」ファイルの「exit 0」の前に追加します– これは、再起動後、keys- <username>ディレクトリとauthorized_keysファイルがESXiホストで保持されるようにするために必要です。

6.コマンド「/sbin/auto-backup.sh」を実行します。


 
7.コマンドssh -i /root/.ssh/id_rsa <username> @ <esxi_host_ip_address>を実行して、各ホストに接続できることを確認します。



 
8.ESXiホストごとに手順4〜7を繰り返します。 注:ESXiホストでルートアカウントを使用している場合、/ etc / ssh / keys-root / authorized_keysはすでに各ホストに適用されているため、このファイルに公開鍵(id_rsa.pub)を追加するだけで済みます。

② PowerChuteのセットアップ

PowerChuteをインストール後、 「vCenterで管理されるホスト」および「シングル」または「冗長UPS」構成でPowerChuteを構成します。vCenter Serverの認証情報を追加する場合、電源障害が発生した際にvCenter Serverが利用できないときは、保護されている各ESXiホストに存在する共有ユーザーアカウントを使用する必要があります。
インストールと構成が完了すると、「VM優先度付け」ページを開きます。
VM優先度付けを有効にする-ユーザーVMを優先グループに追加し、すべてのホストのストレージコントローラVMを優先度の最も低いグループ(通常はグループ2)に追加します。


 コントローラVMを持つグループのVMシャットダウン所要時間を0秒に設定します。 これにより、VMのシャットダウン手順中にPowerChuteがコントローラVMをシャットダウンしないようにします。
 

次に、HXストレージクラスタサービスのシャットダウンのスクリプトを実行するようにPowerChuteの設定を行い、ESXiホストをシャットダウンする前にストレージコントローラVMの電源をオフするようにします。
[シャットダウン設定]ページを開き、[コマンドファイルの実行]セクションを開きます。 cmdファイル(Powershellスクリプトを使用するWindowsの場合)またはシェルスクリプトファイル(PowerChute 仮想マシンの場合)へのフルパスと所要時間を入力します。

 

所要時間の値は、スクリプトがストレージクラスタとコントローラVMをシャットダウンし、各ホストをメンテナンスモードにした後に正常にシャットダウンするまでの合計時間です。
また、[仮想化設定]ページで[遅延メンテナンスモード]オプションを有効にすることをお勧めします。 

③ ファブリックコネクタのパワーオフ

以下に示すように、ファブリックインターコネクトがAPC Switched Rack PDUに接続されていることを前提としています。

 
PDUでSSHコンソールアクセスを有効にします。

 
PowerChuteでは、SSHアクションを構成し、CLIコンソールコマンドを送信して、PDUの各コンセントを順番にオフにします。

 

SSHコマンドファイルは、PDUで実行するCLIコマンドを含むPowerChuteマシン(この場合はPowerChute仮想アプライアンス)上のテキストファイルです。

olOff 2(olOff <pdu_outlet_number>)
ファブリックインターコネクトAの場合、これはolOff 1です。

PowerChuteは仮想マシンとしてデプロイされるため、「SSHアクションの実行」の値は「ホストのシャットダウン前」を実行するように設定されます。 PowerChuteが物理Windows管理サーバにインストールされている場合、「ホストシャットダウン後に実行」を選択することも可能です。

ESXiホストの後にファブリックインターコネクトをパワーオフする必要がある場合は、物理Windows管理サーバにPowerChuteをインストールする必要があります。
SSHアクションは順番に実行されるため、ファブリックインターコネクトBに電力を供給しているPDUコンセントの電源がオフになり、15秒後(SSHアクション期間)ファブリックインターコネクトAは、PDUコンセントがオフになるとシャットダウンします。

アクションは、[SSHアクション]ページで追加された順序で実行されます。
 
 




注:PowerChuteは、設定された期間内にアクションが完了しなかったことを報告します。アクションは実行されますが、PDUはクエリ可能な終了コードを返さないため、タイムアウトが報告されます。
 

注:ここでは、ここでの優先度は、両方を同時にではなく、各ファブリックインターコネクトを順番にパワーオフすることであると想定しています。 プライマリとセカンダリを追跡しません。

④ シャットダウン後のスタートアップ

コンセントグループを備えたSwitch Rack PDUまたはUPSを使用して、ファブリックインターコネクトとHXノードの電源をオンする順序を制御できます。
WindowsインストールのPowerChuteの場合、CiscoIMC-PowerTool 1.4.2を使用して、電源が復旧した際にPowerChuteマシンが起動し、CIMCを介してESXiノードの電源をオンにします。PowerChute仮想アプライアンスの場合、ESXiホストの1つでVMとして実行されるため、CIMCはホストの起動に使用されません。 このシナリオでは、停電後にHXノードを起動して電源を復旧するようにBIOSが構成されています。

スタートアップ用PowerShellスクリプト

本ページに添付されているファイル(start_cluster_win.ps1)を使用します。
CiscoIMC-PowerTool 1.4.2がインストールされている必要があり、次の変数を変更します。

$username = "<cluster_username>"
$password = "<cluster password>"
$cluster_start_duration = 300     (クラスター起動するまでの時間/秒)
$cvm_start_duration = 120    (CVMが起動するまでの時間/秒)
$HXHosts = "hx-1.scvmmgal.net","hx-2.scvmmgal.net"     (HXノードのリスト)
$vsphere_user = "<ESXi admin user>"  (このユーザーアカウントはESXi上に登録されている必要があります。)
$vsphere_password = "<ESXi admin user password>"
$exit_maintenance_duration = 30      (ホストのメンテナンスモードが解除されるまでの時間/秒)
$cimc_user = "<CIMC User>"
$cimc_pwd = "<CIMC_Password>" | ConvertTo-SecureString -AsPlainText -Force
$CIMC_IPS = "10.216.252.247","10.216.252.248"
$exit_maintenance_duration = 30     (各ホストのメンテナンスモードが解除されるまでの時間/秒)
$cimc_user = "admin"
$cimc_pwd = "APCapc@123" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($cimc_user,$cimc_pwd)
$poweron_duration = 420     (ホストが起動してからメンテナンスモードを解除するまで待機する時間)
$vcsa_vm = "HX-VCSA-INT"     (構成により、vCenterとESXiのホスト名の不一致により、VCSAの再起動に問題が発生する場合があります。これを回避するには、VCSA VM名をここに追加します)
$vcsa_start_duration = 120
Import-Module "<PATH to CiscoIMC PowerTool>\CiscoImcPS.psd1"

Powershellスクリプトを実行するためにstart_hs.cmdコマンドファイルを使用します。

cmd.exe /c powershell ; c:\HyperFlex_Scripts\start_cluster_win.ps1

スクリプトファイルをダウンロードした場所に一致するようにパスを変更します。
PowerChuteの起動後にコマンドファイルを実行するには、PowerChuteがインストールされているgroup1フォルダーのpcnsconfig.iniファイルで次の値を設定します。

[Events]
event_MonitoringStarted_enableCommandFile = true
event_MonitoringStarted_commandFilePath = C:\HyperFlex_Scripts\start_hs.cmd
event_MonitoringStarted_commandFileDelay = 60

スタートアップ用PowerChute仮想アプライアンスLinuxシェルスクリプト

本ページに添付されているLinux用シェルスクリプト(start_hyperflex.sh)を使用して、ホストのメンテナンスモードを解除し、CVMの電源を入れた後、HyperFlexクラスターサービスとVCSA VMを起動します。
スクリプトを実行させるためは、PowerChuteがインストールされているgroup1フォルダーのpcnsconfig.iniファイルで次の値を設定します。

[Events]
event_MonitoringStarted_enableCommandFile = true
event_MonitoringStarted_commandFilePath = /root/start_hyperflex.sh
event_MonitoringStarted_commandFileDelay = 60

シェルスクリプトで次の変数を変更します。

USER=admin     (HXクラスターのローカルadmin名)
PASSWORD=APCapc@123     (HXクラスターのローカルadminのパスワード)
CLUSTER_IP="10.216.252.251"
HOST_IP[1]=10.216.252.252
HOST_IP[2]=10.216.252.253
HOST_IP[3]=
HOST_IP[4]=
NUM_CVMS=2     (クラスター内のCVM 数)
CLUSTER_START_TIME=300      (ユーザーVMをパワーオンする前にクラスターが起動する時間/秒)
CVM_START_TIME=120       (クラスターサービスを開始する前にCVMをパワーオンする時間/秒)

ユーザーVMを起動する前にコントローラVMとクラスターサービスが起動するのに十分な時間を確保するためには、以下の設定値を変更します。

[HostConfigSettings]
VMware_connect_timeout = 10
VMware_read_timeout = 15
vm_prioritization_enabled = true
delay_after_exit_maintenance_mode = 300

更新日 2020年2月27日

これは役に立ちましたか?

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

目的の情報が見つかりませんか?

カスタマーチームにお問い合わせいただき、テクニカルサポート情報、クレームへの対応、その他のサポートを受けることができます。