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

【DITPM】DITPM on Windows Server Hyper-Vのシャットダウン

Windows ServerのHyper-V上にDITPMを仮想マシンとして稼働させた時、DITPM仮想マシンとホストのWindows Serverをシャットダウンする手順を解説します。

はじめに

DITPMの基本設定(IP設定、ライセンス適用、UPS検出など)は完了している前提で話が進みます。予めご了承ください。

単にWindows Hyper-Vをシャットダウンするだけなら、WindowsにIPPをインストールして、仮想マシンをHyper-Vの機能でシャットダウンさせることができます。
https://www.eaton-daitron.jp/techblog/5691.html

VMware環境を外部からシャットダウンしたい等の要件があり、DITPMの機能を利用する場合は、このブログの手順に従ってシャットダウンの設定を行ってください。

構成

Server

  • Windows Server 2025 x1 (Hyper-V、OpenSSH サーバー、PowerShell)
  • Eaton DITPM-LW 7.3.0 (VM) x1

UPS

  • Eaton 9PX1500RT UPS x1
  • Eaton Network-M3 2.2.0 x1

シャットダウンの概要

1.UPSのシャットダウンは、Network-M3で設定します。
 (本ブログでは、停電が60秒継続したらシャットダウンシーケンス開始。その300秒後にUPSをシャットダウンする設定)

2.DITPM仮想マシンのシャットダウンは、Hyper-Vの機能で設定します。

3.Windowsのシャットダウンは、Windows内にシャットダウンスクリプトを配置し、DITPMがWindowsにSSH接続してそのスクリプトを実行することで実現します。

※各タイマーはご使用の要件・環境に合わせて変更してください。本ブログはテスト環境のため短く設定しています。

UPSのシャットダウン設定

UPSのシャットダウンは、Network-M3で設定します。
最初に、シャットダウンシーケンスを開始する条件を設定します。
※Group 1と2は設定しません。無効のままにします。

保護 > 停電時のシャットダウン

OUTPUTを有効化します。
バッテリーが次の時間使用中の場合はシーケンスを開始する:有効 値=60秒

次に、シャットダウンシーケンスが開始したら、300秒後にUPSをシャットダウンする設定をします。

保護 > エージェントはシーケンスをシャットダウンします

OUTPUTのOSシャットダウン時間(秒)のローカルに、300を入力します。

これで、停電(バッテリー運転)が60秒継続したら、その300秒後にUPSをシャットダウンする設定になりました。

仮想マシンのシャットダウン設定

仮想マシンのシャットダウン(DITPMを含む)は、WindowsのHyper-V マネジャーで設定します。

<Hyper-V マネージャー>

仮想マシンの状態が「オフ」である必要があります。起動中であれば、シャットダウンします。

仮想マシンを右クリックして[設定]を押します。

「自動停止アクション」と「自動開始アクション」を設定します。

自動停止アクションは[ゲストOSをシャットダウンする]を選択します。

自動開始アクションは[常にこの仮想マシンを自動的に起動する]を選択します。

Windows シャットダウン設定

ホストであるWindowsのシャットダウンは、Windowsのローカルディスク(Cドライブ)にシャットダウンコマンドを記述したPowerShellスクリプトを配置して実現します。

シャットダウンコマンドは1行です。

shutdown /s /f /t 60

本ブログでは、C:\scripts\ShutdownWin.ps1 としてPowerShellスクリプトを配置しました。
※ このスクリプトをPowerShellで実行したら、仮想マシンおよびWindowsがシャットダウンすることを確認しておきます。

OpenSSH サーバーの有効化

DITPM仮想マシンがホストのWindowsにSSH接続できるように、OpenSSH サーバー機能を有効化します。

詳しくは、マイクロソフトの手順をご確認ください。
https://learn.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse

管理者として PowerShell を開き、次のコマンドレットを実行します。

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

SSH接続確認

WindowsのOpenSSH サーバーを有効化したら、実際にDITPM仮想マシンからWindowsへSSH接続できることを確認します。
具体的には、DITPMのコンソール画面からコマンド(CLI)でWindowsへSSH接続してみます。

DITPMのコンソールにログインします。(アカウントはvdc、パスワードはMonit@r#1)

コマンドでWindowsにSSH接続します。

ssh -l {Windowsの管理者アカウント} {WindowsのIPアドレス}

key fingerprintを聞かれたら、yesを入力してエンター。

Passwordを聞かれたら、Windowsの管理者アカウントのパスワードを入力してログインします。

DITPM仮想マシンからホストのWindowsへSSHで接続しました。

下記コマンドでWindowsのローカルディスクに配置したPowerShellスクリプトを実行します。

powershell -ExecutionPolicy Bypass -command C:\scripts\ShutdownWin.ps1

これで、DITPM仮想マシンからWindowsにSSH接続してWindows内のシャットダウンスクリプトを実行。シャットダウン命令を受けたWindowsは、DITPM仮想マシンをシャットダウンした後に、シャットダウンします。

オートメーション設定 (自動化設定)

オートメーションは、IPM2で実装されDITPMに継承された機能です。
トリガーとなる条件が満たされた時に、アクションが実行されます。

自動化 > ITオートメーション に移動したら、右上の[新規]を押します。

名前は任意です。読んで分かりやすい名前が良いでしょう。

次に、「トリガー」を設定します。ここで設定した条件を満たした時に、下のアクションが実行されます。

[電源問題]を選択します。

[AC power outage on UPS]を選択して次へ。

パワーソースにするUPSを選択して送信します。

[選択したUPSがAC停電した時]を条件とするトリガーができました。

続いて、「アクション」を設定します。

UPSの停電を検知しても、すぐにアクションを実行されたくありません。
一定時間(ここでは60秒)待っても停電したままだったらアクションを実行してもらいたいです。
このような時は、実行したいアクションより前に[タイマー]と[復旧]を挿入します。

[タイマー]を選択します。

待機時間(秒)に60を入力して[送信]を押します。

アクションの1番目に待機時間(いわゆるシャットダウンタイマー)が追加されました。

[復旧]を選択します。

待機時間経過後にトリガーの条件が今も有効かどうかのチェックを行います。
無効だった場合(UPSが停電から回復している場合)、これ以降のアクションに進ませたくありません。オートメーション(自動化)を終了するように設定します。

【重要】ここを続行に設定すると、UPSがオンラインに戻っていてもこの後のアクションを実行してしまいます。

[現在の自動化を終了します]を選択し送信します。

アクションの2番目に「トリガー条件を改めて確認し、満たしていなかったら自動化を終了する」アクションが追加されました。

※[タイマー]と[復旧]は、基本的にアクションの先頭に追加します。このあとに、DITPMに実行させたいアクションを複数並べていきます。このブログでは、次にDITPMとホストのWindowsをシャットダウンさせていますが、この間にVMwareのシャットダウンやNutanixのシャットダウンなどのアクションを挟むことでサードパーティー製品をシャットダウン管理可能です。

[SSH]を選択します。

タイトル:任意
住所(アドレス):WindowsのIPアドレス
ポート:22
ユーザー名:Windowsの管理者
パスワード:上記ユーザーのパスワード

コマンド:DITPMコンソールで実行確認したコマンドを貼り付けます。

powershell -ExecutionPolicy Bypass -command C:\scripts\ShutdownWin.ps1

タイムアウト(期限切れ):任意

※アクションを実行した時に、何かしらの原因でエラーが返ってきた時のためにタイムアウト値を設定します。設定した時間(秒)が経過すると、アクションエラーと判断してこのアクションから抜け出します。

アクションエラー時:
・次のアクションへ進める場合:現在の自動化を継続します
・オートメーションを中止する場合:現在の自動化を終了します

テストssh接続の「テスト」を押します。

画面上部に[SSH接続成功]とポップしたら、SSH接続できています。

[送信]を押します。

これで、UPSが60秒間バッテリー運転したら、DITPMがWindowsにSSH接続してスクリプトを実行する設定ができました。
右上の[送信]を押します。

作成したオートメーションが有効になっていることを確認します。

シャットダウンテスト

UPSの入力電源ケーブルを抜いてシャットダウンテストを実施します。

DITPMオートメーションが実行されて、DITPM仮想マシン → Windowsの順でシャットダウンしました。

おわりに

XとYouTubeでEaton UPSの情報を配信しております。よろしくお願い致します。

X : https://twitter.com/eaton_daitron

YouTube : https://www.youtube.com/user/EatonDaito

ページの先頭へ