SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

Dell PowerVault ME5 で構成された Hyper-V 環境をオムロンUPSで電源管理

仮想化
2025.03.24

こんにちは。SB C&Sで仮想化製品の技術支援を担当している真砂です。

先日、Dell PowerVault ME5(以降ME5) と Hyper-Vを用いた3Tier仮想化基盤の構築方法について、ご紹介をさせていただきました。
※以前の記事はこちら
Dell PowerVault ME5 と Hyper-V で構築する 3Tier 仮想化基盤

本記事では前回構築した環境に対し、オムロン製UPSを用いて各種電源管理を実施する方法をご紹介いたします。
なお、本記事作成時に利用している検証環境は前回使用した環境とIPアドレスなどが一部異なりますが、基本的な設計部分に違いはありません。

ME5 で構成された Hyper-V 環境の停止・起動順序について

はじめに、本環境の停止・起動順序について整理します。

本環境では仮想マシンの保存領域にME5が利用されているため、Hyper-Vが稼働している状態でME5が停止してしまうと仮想マシンが停止してしまいます。

それらを考慮したうえで、停止・起動順序は以下のようになります。
_2025-03-18_18-35-14_.png

特筆して注意する点はありませんが、ME5を停止時は最後に停止、起動時は最初に起動させる必要があります。

手動停止の手順

まずは手動でHyper-V環境を停止する手順を説明します。

手順①:仮想マシンのシャットダウン

はじめにHyper-V上の仮想マシンを停止します。
対象の仮想マシンを右クリックし、表示されたメニューから「シャットダウン」を選択します。
_2025-03-12_17-18-59_.png
※上記画面ではフェールオーバークラスターマネージャーから仮想マシンの操作を行っております。
 各種仮想マシンの操作はHyper-VマネージャーやWindows Admin Centerからも操作が可能です。

また、仮想マシンをHyper-Vホストシャットダウン時、自動的にシャットダウンする設定が可能です。
該当の仮想マシンを右クリックし、メニューから「設定」を選択します。

「自動停止アクション」という項目にて「ゲストオペレーティングシステムをシャットダウンする」を設定することで、Hyper-Vホストに対してシャットダウンが実行された際に該当の仮想マシンをシャットダウンした後にホストを停止させることができます。
_2025-03-12_17-21-23_.png

手順②:Hyper-Vホストのシャットダウン

仮想マシンの停止後、Hyper-Vホストの停止を行います。

シャットダウン方法は通常にWindows Serverと同じため、Hyper-Vホスト専用の操作は特にありません。
_2025-03-17_10-54-12_.png

手順③:ME5のシャットダウン

Hyper-Vホスト停止後にME5の停止を行います。

ME5の管理画面からシャットダウンを行います。
ME5の管理画面へログイン後、左側のメニューから「メンテナンス - ハードウェア」をクリックし、プルダウンメニューから「システムの再起動/シャットダウン」を選択します。
_2025-03-14_12-26-26_.png

ME5はストレージコントローラーと管理機能が別れて制御可能となっており、システムの停止を行う際はストレージコントローラー(SC)を停止します。
_2025-03-17_10-59-14_.png

停止処理は以上になります。

手動起動の手順

手順①:Hyper-Vホスト、およびME5の起動

電源復旧後、それぞれの筐体にて電源を投入します。

なお、起動に関してはHyper-Vホスト(PowerEdgeサーバー)、およびME5は電源復旧時に自動起動を行うことが可能です。
※電源入力時に自動起動させるには、IPMIや管理画面から設定を必要とする場合があります。

手順②:仮想マシンの起動

Hyper-Vホスト、およびME5起動後にHyper-Vホスト上の仮想マシンを起動します。
停止時と同様にフェールオーバークラスタマネージャーから操作を行います。

起動させる仮想マシンを右クリックし、表示されたメニューから「開始」を選択することで仮想マシンが起動します。
_2025-03-17_11-10-08_.png

なお、こちらも停止時と同様にHyper-Vホストが起動したタイミングで仮想マシンごとに自動起動させることができます。
対象の仮想マシンを右クリックし、「設定」を選択します。

「自動開始アクション」という項目にて「常にこの仮想マシンを自動的に起動する」を設定することで、Hyper-Vホストが起動したタイミングで該当の仮想マシンを起動することができます。
また、「起動待ち時間」に任意の秒数を指定することでデータベースとアプリケーションのような、起動順序が重要な仮想マシンを調整することが可能です。
_2025-03-14_15-12-34_.png

以上が手動でME5およびHyper-V環境の停止・起動方法の手順となります。

なお、上記の手順を踏まず停電などによって予期せず電源供給が停止された場合、仮想マシンおよびHyper-VホストやME5が強制終了されることにより電源復旧後もシステムを正常に稼働できない障害に発展する可能性があります。
そのため、一般的にこのような仮想化システムはUPSを導入し、停電時はUPSの予備電源から電源供給を行っている間に正しく停止させる必要がありますが、停止させる際はHyper-VホストやME5に対して各種スクリプトを発行し自動実行させる必要があり、ある程度のスキルが必要になります。

オムロン製UPSを活用した停止・起動方法

オムロン製UPSは停電発生時、このような各種停止・起動処理をGUIからの操作のみで設定することが可能になるため、スキルを必要とせず各種処理の自動化が実現できます。

オムロン製UPSによる電源管理の仕組み

はじめに、オムロン製UPSがどのように各種機器の制御を行うのか仕組みを簡単に説明します。

先ほど停止・起動手順の自動化について紹介した際、スクリプトを発行する必要があると説明しましたが、一般的にスクリプトを発行するにはUPS以外にも電源管理サーバーを必要とします。

ただし、オムロン製UPSはUPS本体にネットワークカード(SC22)を搭載することができます。
SC22により本来必要な物理の電源管理サーバーを用意することなくスクリプトの発行が行える機能を持っているため、わざわざ電源管理用に物理サーバーを用意する必要がありません。
さらに、仮想化基盤の制御に必要な各種スクリプトは本環境で必要となる各種スクリプトはデフォルトで登録されているため、スクリプトを自作する必要なくGUI上から必要なものを選択することが可能です。

それではオムロン製UPSを利用した仮想化システムの停止・起動の自動化方法について紹介しますが、SC22は事前に管理画面をログインができる状態で用意したものを利用します。

SC22の管理画面にログイン後、左側のメニューから「UPS管理 - スクリプト&スケジュール」を選択すると、スクリプト登録が画面が表示されます。

こちらに対して各種コンポーネントを制御するスクリプトの登録を行います。
_2025-03-17_11-21-57_.png

1.仮想マシンのシャットダウン

はじめにHyper-V上の仮想マシンをシャットダウンするスクリプトを登録します。
停止スクリプトは各Hyper-Vホストに対して行うため、[IPアドレス]列と[ログインID]列、[パスワード]列にはそれぞれHyper-Vホストの情報を入力し、[プロトコル]列は「SSH」を指定します。
※複数台のHyper-Vホストが存在する場合は、それぞれのホストに対して設定を行う必要があります。
_2025-03-17_11-45-10_.png

画面を右にスクロールするとスクリプトに関する項目が確認できます。
Hyper-V上の仮想マシンを停止するスクリプトは[スクリプトNo.]列の「スクリプト 20」に登録されています。
合わせて、スクリプトが実行されるタイミングを[スクリプト待機時間(秒)]で指定します。
_2025-03-17_11-48-21_1.png

なお、「スクリプト 20」はHyper-Vホスト上のすべての仮想マシンを停止するスクリプトになっています。

特定の仮想マシンを指定して停止させる場合はスクリプトの一部を編集する必要がありますが、「スクリプト 20」の内容を直接書き換えてしまうと他のスケジュールで同様のスクリプトを指定していた箇所についても変更が加わってしまいます。
そのため、スクリプトの内容を編集する場合は「スクリプト 23」(バージョンの違いより変更の可能性あり)以降に用意されている空白状態にスクリプトを利用します。

まずは[スクリプト内容]列の「表示」ボタンを押下し、「スクリプト 20」の内容をコピーします。
その後、「スクリプト 23」以降の空白状態のスクリプトへ先ほどコピーした内容をペーストし、必要に応じてスクリプトへ以下の編集を行います。

・変更前
snd=Get-VM | Where-Object {$_.Name -like "*"} | Stop-VM -Force -AsJob

・変更後
snd=Get-VM | Where-Object {$_.Name -like "仮想マシン名"} | Stop-VM -Force -AsJob

_2025-03-17_11-52-18_1.png
個別に停止させる仮想マシンが複数存在する場合は、「スクリプト 23」以降に仮想マシン名の箇所を変更した内容を登録し、対応してください。
(複数登録を行う場合も各Hyper-Vホストに対してスクリプトを登録し、必要に応じて[スクリプト待機時間(秒)]を指定します。)
少し手間に感じるかもしれませんが、変更箇所は最後の行にあるこちらの内容を変更するだけのため、特にスキルを必要とするわけではありません。

2.Hyper-Vホストのシャットダウン

Hyper-Vホスト上の全仮想マシンを停止後、Hyper-Vホスト自身をシャットダウンします。
先ほどと同様にスクリプト登録画面にて、Hyper-Vホストの各種IPアドレスなどの情報を指定します。

Hyper-Vホストの停止については、通常のWindows Serverと同様の手順になるため[スクリプトNo.]列を「スクリプト 1」に指定します。
なお、考慮事項として直前に実行された仮想マシン停止処理が完了した後にHyper-Vホストを停止する必要があるため、[スクリプト待機時間 (秒)]列に仮想マシンが停止されるまでの待機時間を指定します。
_2025-03-17_12-07-14_.png
※仮想マシンが停止するまでの待機時間は、環境に合わせて適切な値を指定してください。

3.ME5のシャットダウン

最後にME5のシャットダウンを行います。

こちらも同様にスクリプト登録画面にて、ME5の各種IPアドレスなどの情報を指定します。
なお、ME5の管理画面はコントローラーごとにIPアドレスを持つことができるため、スクリプトの登録に関しても各コントローラーのIPアドレスを指定しておきます。
_2025-03-17_12-27-11_.png

ME5のシャットダウンは「スクリプト 6」で事前に登録されているため、それぞれ設定を変更します。
なお、ME5をシャットダウンする前にHyper-Vホストが停止している必要があるため、[スクリプト待機時間 (秒)]列にHyper-Vホストが停止されるまでの待機時間を指定します。
_2025-03-17_12-27-51_.png
※Hyper-Vホストが停止するまでの待機時間は、環境に合わせて適切な値を指定してください。

4.ME5およびHyper-Vホスト、仮想マシンの起動

ME5およびHyper-Vホストの起動はUPSから制御を行うのではなく、電源復電後に自動的に行われるようME5およびPowerEdgeにて事前に設定を行います。
iDRAC9が搭載されたPowerEdgeサーバーの場合、「BIOS設定 - System Security - TPM Advanced Settings」内に存在する「AC Power Recovery」をOnにする必要があります。
_2025-03-17_13-20-13_.png
※バージョンの違いにより、設定方法が異なる可能性があります。

なお、本検証で使用したME5については復電後、自動的にストレージとして利用できる状態まで正常に起動できました。

5.Hyper-V上の仮想マシン起動

最後にHyper-V上の仮想マシンを起動します。

Hyper-V上の仮想マシン起動方法は手順[手順②:仮想マシンの起動]にて説明した、仮想マシンの自動開始アクションを利用することでUPS側から制御を行うことなく起動および順序の調整が可能となるため、シンプルな運用が行えると考えています。

なお、運用上の理由によりHyper-Vからの起動制御を行えない場合はUPSからスクリプトを発行することで対応が可能です。

Hyper-Vホスト上の仮想マシン起動には「スクリプト 21」に登録されているスクリプトを利用することで実現できます。
このスクリプトを、各Hyper-Vホストに対して実行されるように登録を行います。

なお、「スクリプト 21」ではHyper-Vホスト上のすべての仮想マシンを起動させるため、特定の仮想マシンごとに起動を調整する場合は[1.仮想マシンのシャットダウン]で紹介した手順と同様に「スクリプト 21」の内容を「スクリプト 23」以降の空白状態のスクリプトへ先ほどコピーした内容をペーストし、必要に応じてスクリプトへ以下の編集を行います。

・変更前
snd=Get-VM | Where-Object {$_.state -like "*"} | Start-VM

・変更後
snd=Get-VM | Where-Object {$_.name -like "仮想マシン名"} | Start-VM_2025-03-17_13-22-28_1.png

こちらも停止時と同様に各ハイパーバイザーに対してスクリプトが実行されるように登録を行い、[スクリプト待機時間(秒)]には直前のHyper-VホストおよびME5の起動が完了した後に実行されるように登録を行います。

以上でオムロンUPSを用いた起動・停止の自動化について紹介しました。

Hyper-VだけではなくME5も合わせてUPS側でスクリプトを用意してくれているため、電源管理の自動化を行う上で特別な知識が必要なく対応できることをご理解いただけたと思います。
また、Hyper-Vの導入を検討されている環境では比較的小規模な場合が多く、電源管理用の物理サーバーを用意する必要ない点も選定のポイントになるのではないでしょうか。

他のおすすめサイトはこちら