{}

シュナイダーエレクトリックのブランド

FAQを参照する

PowerChute Network Shutdown for Virtualization v4.3 HyperFlexのシャットダウン

このページでは、PowerChute Network Shutdown v4.3のシャットダウンコマンドファイル機能により
実行されるスクリプトを使用して、電源障害時にHyperFlex Clusterを正常にシャットダウンする方法について説明します。

【対象バージョン】
PowerChute Network Shutdown for Virtualization v4.3

* v4.3のサポートは終了させていただきました


【対象システム】
・ Cisco HyperFlex システム
・ HyperFlex Edge


【概要】
PowerChuteのデプロイには2つの方法があります。
物理Windows管理サーバーにインストールし、PowerShellスクリプトを使用する方法、または、HXストレージクラスタ外の
ESXi管理ホストにVMとしてデプロイできるPowerChute仮想アプライアンスを使用する方法があります。
いずれの場合も、PowerChuteのVM優先度付け機能を使用して、ユーザーVMとクラスターサービスが
シャットダウンされる前にHyperFlexストレージコントローラVMをシャットダウンしないようにします。

HyperFlex環境サポートされるPowerChute Network Shutdown v4.3とUPSの構成については以下リンク先を参照ください。
PowerChute Network Shutdown for Virtualization v4.3 HyperFlexの対応について



【シャットダウンおよびスタートアップの動作概要】
本ページの内容でセットアップした場合、停電時に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が作成されます。

01


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」を実行します。

02

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

03


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) に追加します。

04


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

05

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


06


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


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

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

07


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

08


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

09

10

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アクション]ページで追加された順序で実行されます。

11

12


13

14

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

15

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


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

コンセントグループを備えた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日

APC 日本

詳細を見る
詳細を見る