Eaton UPS(イートン 無停電電源装置) テクニカルブログ

【IPM】 シャットダウン for Azure Stack HCI by IPM 1.67

Azure Stack HCIとUPSのシャットダウン連携

Azure Stack HCI 2ノード構成のシャットダウン検証をIPM 1.67 + Network-M2で実施しました。

【重要】新ライセンス販売のお知らせ

2020年9月、IPMの新ライセンス(Optimize License)を販売しました。
テクニカルブログ内の文章および画像の旧ライセンス(Silver License、Gold License)は、全てOptimize Licenseに置き換えてお読み下さい。よろしくお願い致します。

検証結果

  • 仮想マシンのシャットダウンは、PowerShell スクリプト
  • クラスター停止は、PowerShell スクリプト
  • Azure Stack HCIホストのシャットダウンは、IPMの機能[ホストをシャットダウン]
  • 起動は手動操作

前提条件

  • Eaton IPM Silver License以上が必要
  • 最後にシャットダウンしたいAzure Stack HCIホストのローカルディスクにIPMをインストールすること

検証環境

Azure Stack HCI 2node

  • Windows Server 2019 Datacenter x2
  • Virtual Machine x3

Virtual Machine

  • LXCA x1
  • Windows Server x2

Eaton UPS

  • 9PX1500RT + 9PXEBM48RT + Network-M2 x1

Eaton Software

  • Intelligent Power Manager 1.67 + Silver License

検証環境構成図

シャットダウンフロー (停電時)

  1. 仮想マシンのシャットダウン
  2. ノードのレジューム
  3. クラスター停止
  4. ホスト(IPM無)をシャットダウン
  5. ホスト(IPM有)をシャットダウン
  6. UPS シャットダウン

起動フロー (復電時)

起動は手動で操作して下さい

  1. UPS 起動 (デフォルト設定で、UPSは自動的にPower ONになります)
  2. 全ホスト 起動 (手動で電源ボタンON、もしくは、管理ポートを使用したリモート操作)
  3. クラスター開始 (開始されていれば不要)
  4. ノードのレジューム
  5. 仮想マシンの起動

シャットダウン シーケンス

この解説では、1分間のバッテリー運転でシャットダウンシーケンス開始。シャットダウンシーケンスが開始してから8分間後にUPSシャットダウン開始としています。停電から1分以内に復電した場合、何もアクションしません。
シャットダウンシーケンス中にシステム全体をシャットダウンするように、各アクションを開始するように設定します。

1分経過:VM Group 1 シャットダウン開始
2分経過:VM Group 2 シャットダウン開始
3分経過:ALL VM シャットダウンスクリプト実行
4分経過:Cluster Stop スクリプト実行
6分経過:Host 2 シャットダウン開始
7分経過:Host 1 シャットダウン開始
9分経過:UPS シャットダウン開始

※ VM Group 1,2を作成して、仮想マシンを所属させていますが、仮想マシンが別のホストに移行するとGroupから外れてしまいます。IPMの機能[仮想マシンのグループシャットダウン]は、ベストエフォートとご理解願います。

※ テストのため、タイマーを短くしています。本番環境では、十分な時間を確保してください。

検証環境のシャットダウン設定

ここから、実際の設定手順を解説します。
簡易な箇所・繰り返しのオペレーションになる箇所は、手順を省略させて頂きます。

最後にシャットダウンしたいAzure Stack HCIホストのローカルディスクにIPMインストール・設定をおこないます。

UPS 1台 設定

Network-M2ページの[設定手順]を参照して、IPアドレス設定~復電時の出力制御までの設定を実施してください。

[1分間バッテリー運転した時] または [バッテリー運転可能時間が10分を下回った時]にシャットダウンシーケンス開始の設定例

[シャットダウンシーケンスが開始してから8分後]にUPSシャットダウンの設定例

Open JDK 1.8 インストール

IPMをインストールする前に、Open JDK 1.8 をインストールします。
IPMのあとにOpen JDK 1.8 をインストールした場合、IPMのサービスを「停止」→「開始」します。

インストール手順はこのブログで確認できます。

Eaton IPM 1.67 for Windows インストール

上のブログに記載があるため、インストール手順は省略します。

シルバーライセンス取得

シルバーライセンスにアップグレードするには、「プロダクトキー」が必要となります。
弊社から届いた「プロモーションコード」をご準備の上、下記URLの手順に従って「プロダクトキー」を入手して下さい。※プロダクトキーをライセンスキーと呼ぶ事もあります。

シルバーライセンス、ゴールドライセンスのプロダクトキー取得手順

初期設定

ログイン

ログイン:admin、パスワード:adminでログインします。

更新設定の編集

設定 > システム > 更新設定の編集

間隔:[指定なし]に変更して保存します

モジュール設定の編集

設定 > システム > モジュール設定の編集

[シャットダウン]、[インフラストラクチャーコネクター]、[冗長性]にチェックを入れて保存します

ライセンス適用

設定 > システム > システム情報の編集

キーを入力して保存します

コネクター追加

コマンドプロンプト

コマンドプロンプトで、枠内のコマンドを実行してください

1. WinRMサービスを有効にします

winrm quickconfig

2. WinRMサービスAllowUnencryptedを「true」にします

winrm set winrm/config/service @{AllowUnencrypted="true"}

3. WinRMサービスBasic認証を「true」にします

winrm set winrm/config/service/auth @{Basic="true"}

インフラストラクチャーコネクター

設定 > インフラストラクチャーコネクター > コネクターの追加

プルダウンの中から、Microsoft Hyper-V / Server を選択します

IPアドレス、ユーザー名、パスワードを入力して保存します

Hyper-Vコネクターが追加されました

※ コネクターは、Azure Stack HCIホスト台数分追加すること

ノードリストの確認

ノードリスト

設定 > 自動検出

※ UPSのアクセスが[×]になっている場合、下記を実施してください

UPSを選択して、ノードアクセスパラメーターの設定

Network-M2にログインするユーザー名とパスワードを入力して保存します

※ IPMにログインするパスワードを変更している場合、IPMのノードアクセスパラメーターも再設定して、アクセス[×]を無くします

[構成ポリシー]と[イベントルール]と[アクション]の作成手順

リンク先をご覧ください

[構成ポリシー]、[イベントルール]、[アクション]の作成手順は、こちらのテクニカルブログにて解説しております。

ここから先は、完成版の画像のみを掲載しています。作成手順をよく読みながら設定を行ってください。

パワーソース設定

設定 > シャットダウン > パワーソースを編集

パワーソースは設定しません。

シャットダウンの構成

設定 > シャットダウン > シャットダウン構成の編集

パワーソースが無いため、特に設定する必要はありませんが、意図しないシャットダウンが発生しないためにも「シャットダウンのタイプ」を[スクリプト]に変更しておくことを推奨します。

シャットダウンタイマー(秒): 0 (なし)
シャットダウン継続期間(秒): 120
シャットダウンのタイプ  : スクリプト
シャットダウンスクリプト : 空白 (なし)

VM Group 1 作成

構成ポリシー

管理 > 構成ポリシー

グループに所属させたい仮想マシンをターゲットノードに追加します。クラスリストは空欄にします。

※ Groupに所属させた後に、仮想マシンが別のホストに移行すると、Groupから外れてしまいます。改めてGroupに所属させる必要があります。

VM Group 2 作成

構成ポリシー

管理 > 構成ポリシー

グループに所属させたい仮想マシンをターゲットノードに追加します。クラスリストは空欄にします。

※ Groupに所属させた後に、仮想マシンが別のホストに移行すると、Groupから外れてしまいます。改めてGroupに所属させる必要があります。

UPS 1分間バッテリー運転で、IPMがシャットダウン基準に到達

シャットダウン

設定 > シャットダウン > パワーソースを編集

パワーソース:UPS
負荷セグメント:マスター出力
ログイン:Network-M2のアカウント
パスワード:Network-M2のパスワード

設定 > シャットダウン > シャットダウン構成の編集

シャットダウンタイマー:60秒
シャットダウン継続期間:480秒
シャットダウンのタイプ:スクリプト
シャットダウンスクリプト:空白

※ スクリプトで空白にしているため、シャットダウン基準に到達しても何も実行しません。

イベント連鎖 60秒x7回

イベントルール

設定 > アクション/イベント > イベントルールの編集

IPMがシャットダウン基準に到達した時に、イベントが発生するようにルールを作成します。

※ ソースは、Hyper-Vホストのアイコンではなく、デスクトップPCのアイコンを選択すること。デスクトップPCのアイコンを選択しないと、イベントが発生しません。

IPMがシャットダウン基準に到達した時にイベントを発生させる (1分後イベント)

上記イベントの60秒後にイベントを発生させる (2分後イベント)

上記イベントの60秒後にイベントを発生させる (3分後イベント)

上記イベントの60秒後にイベントを発生させる (4分後イベント)

上記イベントの60秒後にイベントを発生させる (5分後イベント)

上記イベントの60秒後にイベントを発生させる (6分後イベント)

上記イベントの60秒後にイベントを発生させる (7分後イベント)

イベント連鎖 動作確認

ここでUPSの入力電源ケーブルを抜いて、イベント連鎖の動作確認を実施しておく事を推奨しています。IPMはアクションしませんが、UPSはシャットダウンしてしまうため、負荷機器を何も接続しない状態での動作確認をお願いします。

VM Group 1 シャットダウン設定

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:VM Group 1 Shutdown Action)
イベントリスト:作成したイベントを選択(ここでは、1分後イベント)
イベントソース:任意のソース
アクションタイプ:仮想マシンの電源操作

パワーコマンド:ゲストのシャットダウン
仮想マシンターゲット:Node 1 VM Group
シャットダウンゲストタイムアウト:60 (シャットダウン実行後、指定した秒数後にパワーオフを実行します。シャットダウン実行後にフリーズ等でシャットダウンしなかった時のためのソリューションです。使用しない場合は0にします。)

VM Group 2 シャットダウン設定

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:VM Group 2 Shutdown Action)
イベントリスト:作成したイベントを選択(ここでは、2分後イベント)
イベントソース:任意のソース
アクションタイプ:仮想マシンの電源操作

パワーコマンド:ゲストのシャットダウン
仮想マシンターゲット:Node 2 VM Group
シャットダウンゲストタイムアウト:60

ALL VM シャットダウン設定

PowerShell スクリプトを実行するために、下記手順を踏みます

  1. PowerShell スクリプト(.ps1)を任意フォルダに置く
  2. スクリプトを実行するバッチ(.bat)ファイルを任意フォルダに置く
  3. バッチファイルを実行するタスクスケジューラを作成する
  4. タスクスケジューラを実行するIPMアクションを作成する

PowerShell スクリプト

C:\scripts\vm_shutdown.ps1

※ Node1, Node2の部分は、環境に合わせて編集すること

Get-VM -ComputerName Node1 | Stop-VM -Force -AsJob
Start-Sleep 10
Get-VM -ComputerName Node2 | Stop-VM -Force -AsJob
Start-Sleep 10

バッチファイル

C:\scripts\vm_shutdown.bat

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-process powershell.exe C:\scripts\vm_shutdown.ps1 -Verb runas"

タスクスケジューラ

[全般]

名前:任意 (例:vm_shutdown)
ユーザーがログオンしているかどうかにかかわらず実行する:選択
最上位の特権で実行する:チェック
構成:Windows Server 2003, XP, 2000 ←重要!必ず選択すること

[トリガー]

変更なし

[操作]

プログラムの開始:C:\scripts\vm_shutdown.bat

[条件]

コンピューターをAC電源で使用している場合のみタスクを開始する:チェックを外す

[設定]

変更なし

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:All VM Shutdown Action)
イベントリスト:作成したイベントを選択(ここでは、3分後イベント)
イベントソース:任意のソース
アクションタイプ:コマンド

コマンド:

schtasks.exe /run /tn "vm_shutdown"

再トリガ可能:はい

クラスター停止 設定

PowerShell スクリプトを実行するために、下記手順を踏みます

  1. PowerShell スクリプト(.ps1)を任意フォルダに置く
  2. スクリプトを実行するバッチ(.bat)ファイルを任意フォルダに置く
  3. バッチファイルを実行するタスクスケジューラを作成する
  4. タスクスケジューラを実行するIPMアクションを作成する

PowerShell スクリプト

C:\scripts\cluster_stop.ps1

※ Node1, Node2の部分は、環境に合わせて編集すること

Resume-ClusterNode Node1
Start-Sleep -s 10
Resume-ClusterNode Node2
Start-Sleep -s 10

stop-cluster -Force
Start-Sleep -s 10

バッチファイル

C:\scripts\cluster_stop.bat

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-process powershell.exe C:\scripts\cluster_stop.ps1 -Verb runas"

タスクスケジューラ

[全般]

名前:任意 (例:cluster_stop)
ユーザーがログオンしているかどうかにかかわらず実行する:選択
最上位の特権で実行する:チェック
構成:Windows Server 2003, XP, 2000 ←重要!必ず選択すること

[トリガー]

変更なし

[操作]

プログラムの開始:C:\scripts\cluster_stop.bat

[条件]

コンピューターをAC電源で使用している場合のみタスクを開始する:チェックを外す

[設定]

変更なし

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:Cluster Stop Action)
イベントリスト:作成したイベントを選択(ここでは、4分後イベント)
イベントソース:任意のソース
アクションタイプ:コマンド

コマンド:

schtasks.exe /run /tn "cluster_stop"

再トリガ可能:はい

Host 2 シャットダウン設定

IPMがインストールされていないホストをシャットダウンします

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:Node 2 Host Shutdown Action)
イベントリスト:作成したイベントを選択(ここでは、6分後イベント)
イベントソース:任意のソース
アクションタイプ:ホストの電源動作

ホストの電源コマンド:ホストをシャットダウン
ターゲットホスト:ホスト2を選択
タイムアウト:120

Host 1 シャットダウン設定

最後に、IPMがインストールされているホストをシャットダウンします

アクション

設定 > アクション/イベント > 新しいアクションの作成

アクション名:任意 (例:Nod 1 Host Shutdown Action)
イベントリスト:作成したイベントを選択(ここでは、7分後イベント)
イベントソース:任意のソース
アクションタイプ:ホストの電源動作

ホストの電源コマンド:ホストをシャットダウン
ターゲットホスト:ホスト1を選択
タイムアウト:120

シャットダウンテスト

UPSのバッテリーランタイムが十分に確保されている事を確認してから、UPSの入力電源ケーブルを抜いてシャットダウンテストを実施します。

おわりに

Eaton IPM 1.67 は、Microsoft Azure Stack HCI にシャットダウン対応しています。

IT機器の電源保護は、Eaton UPSとEaton IPMを提案させて頂きます。

以上、村田@ダイトロンがお届けしました。

ページの先頭へ