ブログ内検索
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
検証環境構成図
シャットダウンフロー (停電時)
- 仮想マシンのシャットダウン
- ノードのレジューム
- クラスター停止
- ホスト(IPM無)をシャットダウン
- ホスト(IPM有)をシャットダウン
- UPS シャットダウン
起動フロー (復電時)
起動は手動で操作して下さい
- UPS 起動 (デフォルト設定で、UPSは自動的にPower ONになります)
- 全ホスト 起動 (手動で電源ボタンON、もしくは、管理ポートを使用したリモート操作)
- クラスター開始 (開始されていれば不要)
- ノードのレジューム
- 仮想マシンの起動
シャットダウン シーケンス
この解説では、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 スクリプトを実行するために、下記手順を踏みます
- PowerShell スクリプト(.ps1)を任意フォルダに置く
- スクリプトを実行するバッチ(.bat)ファイルを任意フォルダに置く
- バッチファイルを実行するタスクスケジューラを作成する
- タスクスケジューラを実行する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 スクリプトを実行するために、下記手順を踏みます
- PowerShell スクリプト(.ps1)を任意フォルダに置く
- スクリプトを実行するバッチ(.bat)ファイルを任意フォルダに置く
- バッチファイルを実行するタスクスケジューラを作成する
- タスクスケジューラを実行する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を提案させて頂きます。
以上、村田@ダイトロンがお届けしました。
- 関連記事
- カテゴリー