UPS Virtual Report
SC22で実現するWSFC環境の自動停止と自動起動
こんにちは。オムロン ソーシアルソリューションズのSE高田と申します。
この記事は、Windows Server Failover Cluster(以下WSFCと記載)環境において、オムロンUPSに装着できるネットワークカード「SC22」を使用し、停電発生時のWSFC環境の自動停止および、電源復旧時の自動起動を実現するための設定方法について記載しています。
※2025年4月現在の情報です。
どんな人向け?
- WSFC環境の停止、起動の自動化を担当されている。
- 停電時にUPSと連携してWSFC環境を自動で停止したい。
- 復電時にUPSと連携してWSFC環境を自動で起動したい。
構成図

・Hyper-Vホスト 台数:2台、OS:Windows Server 2022 Standard ※1
・AD兼DNSホスト 台数:1台、OS:Windows Server 2022 Standard ※1
・外部ストレージ 台数:1台
・UPS 型式:※2、台数:1台
・NWカード 型式:SC22、ファームウェア:1.21、1.31
※1. OSはWindows Server 2025 StandardおよびDatacenterも検証済み ※2. UPSの型式は記載しておりません。NWカード(SC22)を挿すことができるUPS及び、UPSに接続する機器の消費電力を確認してUPSをご選定ください。
停止・起動の流れ
この記事で記載している設定値をSC22に設定すると、下図のような動作になります。
《停止》
入力電源異常を検知すると、以下の順序でSC22からWSFC環境を停止します。

※①、②、③の時間をSC22の設定で調整することができます。
《起動》
復電後は、以下の順序でSC22からWSFC環境を起動します。

※1. 起動時間は復電後にSC22が起動するまでのおおよその目安になります。 ※2. ①の時間をSC22の設定で調整することができます。
設定方法
それでは、実際に前述した図の流れで自動停止、自動起動ができるようにSC22の設定をしてみましょう。
※1. SC22のIPアドレスなど初期設定については以下URLのセットアップガイドを参照してください。
・SC22 取扱説明書(セットアップガイド)
https://socialsolution.omron.com/jp/ja/products_service/ups/support/download/ups/sc22/sc22.html
※2. 前提条件としてSC22はSSHで対象のサーバーに接続し、スクリプトを実行します。そのためHyper-Vホストおよび、AD兼DNSホストにOpenSSHサーバーのインストールが必要です。
※3. 外部ストレージについては、以下のURLに記載の機器に対応しています。
・仮想プラットフォーム対応状況
https://socialsolution.omron.com/jp/ja/products_service/ups/virtualization/verified.html
シャットダウン設定
UPS管理>UPS設定>『シャットダウン設定』から①、②、③を設定します。

《設定項目説明》
①入力電源異常が発生したときの UPS の動作を設定します。
②UPS
が停止するまでの時間(秒)を設定します。本構成全体がシャットダウンを完了するまでに必要な時間を考慮して設定してください。設定可能な範囲は『0』~『1800』です。
③UPS が停電により停止した後、復電時に自動で起動『する』か『しない』かを選択します。
《設定値》
シャットダウン動作 | 待機時間(秒) |
---|---|
クライアントシャットダウン/UPS停止 | 60 |
UPS出力停止時間 | |
---|---|
出力コンセントA(秒) | 900 |
出力コンセントB(秒) | 900 |
出力コンセントC(秒) | 900 |
入力電源復電時のUPS再起動 |
---|
する |
スクリプトシャットダウン
UPS管理>スクリプト&スケジュール>『スクリプトシャットダウン』から①、②、③を設定します。

《設定項目説明》
①スクリプトを実行する対象機器の接続情報(IP アドレス、ログインユーザ ID、パスワード)を設定します。
②接続に使用するプロトコルを選択します。選択可能なプロトコルは『Telnet』と『SSH』です。
③スクリプトの実行条件を選択します。停電時にスクリプトを実行させたい場合は『シャットダウン』を、
復電時にスクリプトを実行させたい場合は『入力電源復電』を選択します。
UPS管理>スクリプト&スケジュール>『スクリプトシャットダウン』画面を右スクロールし、
④、⑤を設定します。

《設定項目説明》
④スクリプトが実行されるまでの待機時間を設定します。ただし、前項の『シャットダウン設定』で設定した『UPS 出力停止時間』を超える値は設定できません。
⑤スクリプト実行対象機器で実行するスクリプトを設定します。プリセットのスクリプトを使用するか、
新規にスクリプトを作成してください。
※スクリプトはNo.順に実行されるわけではありません。実行のタイミングは、④で設定した
『スクリプト待機時間(秒)』に依存します。
《設定値》
No. | IPアドレス/ホスト名 | プロトコル | 条件 | スクリプト 待機時間 |
スクリプト No. |
スクリプト内容 |
---|---|---|---|---|---|---|
1 | Hyper-Vホスト#1 ※1 | SSH | シャットダウン | 0 | スクリプト20 | All_VM_Stop on Hyper-V |
2 | Hyper-Vホスト#2 ※1 | SSH | シャットダウン | 0 | スクリプト20 | All_VM_Stop on Hyper-V |
3 | Hyper-Vホスト#1 | SSH | シャットダウン | 120 | スクリプト22 | Hyper-V Cluster stop |
4 | Hyper-Vホスト#1 | SSH | シャットダウン | 360 | スクリプト1 | Windows |
5 | Hyper-Vホスト#2 | SSH | シャットダウン | 360 | スクリプト1 | Windows |
6 | AD兼DNSホスト | SSH | シャットダウン | 480 | スクリプト1 | Windows |
7 | 外部ストレージ | SSH | シャットダウン | 600 | ※2 | ※3 |
8 | AD兼DNSホスト(IPMI) | SSH | 入力電源復電 | 600 | ※4 | ※5 |
9 | Hyper-Vホスト#1(IPMI) | SSH | 入力電源復電 | 720 | ※4 | ※5 |
10 | Hyper-Vホスト#2(IPMI) | SSH | 入力電源復電 | 720 | ※4 | ※5 |
11 | Hyper-Vホスト#1 ※1 | SSH | 入力電源復電 | 900 | スクリプト21 | All_VM_Start on Hyper-V |
12 | Hyper-Vホスト#2 ※1 | SSH | 入力電源復電 | 900 | スクリプト21 | All_VM_Start on Hyper-V |
※1. No.1、No.2、No.11、No.12については、仮想マシンがどちらのホストに存在するか不明なため、
2台のホストそれぞれに同じスクリプトを登録します。
※2. ストレージメーカーやストレージ機器によって使用するスクリプトが異なります。
後述の『外部ストレージ停止』のスクリプトを参照し、ご利用のストレージに対応したプリセットのスクリプトNo.を選択してください。
※3. Dell Unity XT 380を使用する場合は、プリセットが用意されていないため、※2はスクリプトNo.23以降を選択し、任意のスクリプト名を記載してください。
『表示』をクリックして空白欄にDell Unity XT 380のスクリプトをコピー&ペーストしてください。
※4. IPMI経由のサーバー起動スクリプトについてもプリセットは用意されていないため、スクリプトNo.23以降を選択し、新規にスクリプトを作成してください。
※5. サーバーメーカーによって使用するスクリプトが異なります。
任意のスクリプト名を記載し、『表示』をクリックして空白欄に後述の『IPMI経由のサーバー起動』のスクリプトをコピー&ペーストしてください。
参考情報
外部ストレージ停止
メーカー型式 | バージョン | プリセット有無 | スクリプト内容 |
---|---|---|---|
NetApp FAS2650A |
ONTAP 9.x | プリセット有 スクリプト No.5 |
rcv=login
as: snd=$u1 rcv=Password: snd=$p1 rcv=> snd=system node halt–node * -inhibit-takeover true –skip-lifmigration-before-shutdown true rcv={y|n}: snd=y rcv={y|n}: snd=y |
Dell PowerVault ME5012 |
ME5.1.1.0.5 | プリセット有 スクリプト No.6 |
rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=# snd=shutdown both rcv=(y/n) snd=y |
HPE MSA 1060 2060 2062 |
IN110P001 IN110P002 |
プリセット有 スクリプト No.7 |
rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=# snd=shutdown both rcv=(y/n) snd=y |
Dell Unity XT 380 |
5.3.0.0.5.120 | プリセット無し |
rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=# snd=svc_shutdown --system-halt rcv=action: snd=yes |
IPMI経由のサーバー起動
メーカー 管理モジュール名称 |
バージョン | プリセット有無 | スクリプト内容 |
---|---|---|---|
HPE iLO |
2.55 | プリセット無し | rcv=login: snd=$u1 rcv=Password snd=$p1 rcv=> snd=power on |
Dell iDrac |
6.00.30.15 | プリセット無し | rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=> snd=racadm serveraction powerup |
Lenovo XCC |
8.82 | プリセット無し | rcv=login: snd=$u1 rcv=Password snd=$p1 rcv=> snd=power on |
Cisco CIMC |
4.2(3b) | プリセット無し | rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=# snd=scope chassis rcv=# snd=power on rcv=[y|N] snd=y |
富士通 iRMC |
1.19S | プリセット無し | rcv=login: snd=$u1 rcv=Password: snd=$p1 rcv=quit: snd=2 rcv=quit: snd=4 rcv=(yes/no)? snd=yes rcv='no': snd=yes rcv=continue snd=q |
仮想マシンを指定して順番に停止
下の図のような構成で、WEBサーバー⇒APサーバー⇒DBサーバーの順で仮想マシンを停止させたい
場合は、以下の停止スクリプトを参照し、停止対象の仮想マシン名を”仮想マシン名”に記載して、
新規にスクリプトを作成してください。

・停止
rcv=login:
snd=$u1
rcv=password:
snd=$p1
rcv=C:
snd=powershell
rcv=>
snd=Get-VM | Where-Object {$_.Name -like "仮想マシン名"} | Stop-VM -Force -Asjob
※1.
WEB01、WEB02、WEB03を同時に停止させたい場合は、”仮想マシン名”に”WEB*”と入力することで
名前がWEBという文字列で始まる仮想マシンを前方一致で停止することができます。
また、仮想マシン名の一部にWEBという文字列が含まれている場合は”*WEB*”と入力することで、
WEBという文字列を含む仮想マシンを部分一致で停止することができます。
実際にWEBサーバー⇒APサーバー⇒DBサーバーと順番にシャットダウンスクリプトが実行されるように設定してみます。
下図のようにスクリプトNo.23にWEB、No.24にAP、No.25にDBサーバー停止のスクリプトを登録し、各『スクリプト内容』には任意のスクリプト名を記載します。
『スクリプト待機時間(秒)』はWEBサーバーの停止スクリプト実行から30秒後にAPサーバー、
60秒後にDBサーバーが停止するように設定します。

スクリプトの最後の行が以下のようになります。
WEB stop
snd=Get-VM | Where-Object {$_.Name -like "WEB*"} | Stop-VM -Force -Asjob
AP stop
snd=Get-VM | Where-Object {$_.Name -like "AP*"} | Stop-VM -Force -Asjob
DB stop
snd=Get-VM | Where-Object {$_.Name -like "DB*"} | Stop-VM -Force -Asjob
仮想マシンを指定して順番に起動
仮想マシンの起動については『仮想マシンを指定して順番に停止』でご紹介した内容と同様です。
以下のスクリプトをコピーし、No.23以降にペーストして設定してください。
・起動
rcv=login:
snd=$u1
rcv=password:
snd=$p1
rcv=C:
snd=powershell
rcv=>
snd=Get-VM | Where-Object {$_.Name -like "仮想マシン名"} | Start-VM
スクリプトの最後の行が以下のようになります。
WEB start
snd=Get-VM | Where-Object {$_.Name -like "WEB*"} | Start-VM
AP start
snd=Get-VM | Where-Object {$_.Name -like "AP*"} | Start-VM
DB start
snd=Get-VM | Where-Object {$_.Name -like "DB*"} | Start-VM
以上、SC22を使用してWSFC環境の自動停止と自動起動の設定方法についてご紹介しました。 WSFC環境の自動停止および自動起動はうまくできましたでしょうか。
本記事を参考にしても動作がうまくいかない場合は、以下ページからお問い合せください。
https://socialsolution.omron.com/jp/ja/products_service/ups/virtualization/support_contact.html