ビル計画停電に伴うVMware ESXi仮想化サーバ設備やQNAP NASのシャットダウンと始動の自動化

公開

数年に一度、休日中にやってくる職場ビルの計画停電に備え、 VMware ESXi ホスト群や 仮想マシン 、QNAP NAS の停電前 シャットダウン と復電後の 始動 が無人でも行えるよう、数年後の自分へ向けての作業記録です。

電力裝置定期檢測

ビル管理会社から休日夜間の計画停電の通知を受けた際、以前にもあったなと思って調べてみると、香港では商業ビルの5年毎の定期検査証明書WR2更新が義務付けられているのだそう。

休日出勤することなくVMware ESXiハイパーバイザ群とそこへ内包される仮想マシン、QNAP NASを停電前に自動シャットダウンさせ、復電後に自動始動させるに当たり、どうせまたいつか必要になるならと、未来の自分用に手順をまとめるのがこの記事の主旨です。

現在運用している物理サーバは次の4つ。

  • IBM    x3650M3 (IMM)  VMware ESXi 6.7.0U1
  • Lenovo x3650M5 (IMM2) VMware ESXi 6.7.0U1
  • Lenovo x3650M5 (IMM2) VMware ESXi 6.7.0U1
  • QNAP   TVS-EC880      QTS 5.15.2679

いずれも中に仮想マシンをはらんでいるので、停電前に仮想マシンのシャットダウンを済ませてから安全に物理サーバを落とす要領。復電後は物理サーバを始動させれば、その中の仮想マシンは順次自動起動するようになっているはず。

 

VMware ESXi 内仮想マシンのシャットダウン

3機のESXiホストはvCenterの管理下にあるので、普段よりvMA (vSphere Management Appliance) のcronに仮想マシンのクローニングバックアップや、シャットダウン、始動を制御していました。

今回利用するVMシャットダウン用のバッチファイルは以下の通り。

cron実行時に標準出力をログファイルに書き出すようにしていて、それをEメールで定期送信されるところまでは既に構築済み。仮想マシン1つ分のシャットダウンログはこんな感じ。

vCenterサーバやvMAも仮想マシンなので、他の仮想マシンを全て落としたら、vCenterサーバを上述のバッチで落とし、最後にvMA自身を shutdown -h now で落とします。

cronで指定できるのは日時までで年は指定できないので、月日時刻で記述したエントリは来年の同じ月日時刻にも実行されます(当たり前)。使い終わったエントリは消すかコメントアウトを忘れずに(前科あり)。

 

VMware ESXi ホスト自身のシャットダウン

ESXiハイパーバイザにcronが隠されていることを最近知ったので、今回初めて利用してみます。ESXiホストのSSHを有効にしてターミナルアクセス。既にシステムが内部的に利用しているエントリがありました。

ここで気を付けなければならいことは、UTCで設定する必要があるということ。例えば香港時間 21:30 に実行したければ、同日の 13:30UTC となります。

そして、ESXiホストをシャットダウンするコマンドは、 poweroff で良さそう

先ほどのcronファイルの終わりに次のエントリを追加し、必ず :wq! で強制書き込み終了させます。

最後に以下の要領でcronプロセスを再起動して反映させます。

以上を3機のESXiホスト全てに設定。復電後の起動後、ログを確認すると確かに時間どおりにシャットダウンしてくれました。

ESXiホストに隠されているcron機能には1つ難点があり、今回のように後から書き加えたエントリは、ホスト再起動後消えてしまいます。これを永続的に使いたい場合のテクニックについては、また別の機会に検証したいと思います。

 

VMware ESXi ホストの自動始動

IBM / Lenovoサーバに備わっている管理機能 IMM ( Integrated Management Module )を使ったサーバ始動には、日付時刻を指定することもできるので、この機能を復電後のESXiホスト始動に使います。

IMMへログイン後、時刻同期を確認して狂いがないか確認します。x3650M5搭載のIMM-IIでは、 IMM Management の中にある IMM Properties ページにあります。

図01.IMM-II 日付時刻設定

図01.IMM-II 日付時刻設定

x3650M3に搭載されている初代IMMでは、 IMM ControlSystem Settings で確認できます(こちらはがっつり時計が遅れていました)。

図02.IMM 日付時刻設定

図02.IMM 日付時刻設定

続いて、サーバの電源を操作する機能は、IMM-IIでは Server Management 内の Server Power Actions に集約されています。

図03.IMM-II Server Management

図03.IMM-II Server Management

日時を指定して一度きりの電源オンを行なうには、 Power On Server at Specified Date and Time のアクションをクリックし、日時をセットします。

図04.IMM-II Power on at specified date time

図04.IMM-II Power on at specified date time

初代IMMではTasks内のPower/Restartページにある、Power On Server at Specified Timeをクリックしてサーバを始動させたい日時を入力します。

図05.IMM Server Power Restart Control

図05.IMM Server Power Restart Control

図06.IMM Power on at specified time

図06.IMM Power on at specified time

 

実は今回、停電が長引いたようで、IMMでセットした時刻はまだ絶賛停電中。結局リモートで各機のIMMのへアクセスして、即時電源オンを実行することに。復電予定時刻からもう少し余裕を持って始動するよう、設定しておけば良かったのかも知れません。

図07.IMM Event Log

図07.IMM Event Log

QNAP NAS TVS-EC880の自動シャットダウンと始動

QNAPのXeon搭載NAS TVS-EC880(関連記事はこちら)のVirtualization Station上には、Linuxベースの仮想マシンが終日稼働しています(Nextcloud構築記事はこちら)。

仮想マシンのシャットダウンは自身のcronに記述するとして、復電後の起動は、仮想マシンの自動起動設定が有効になっていることを確認しておきます。

図08.Virtualization Station 仮想マシン情報

図08.Virtualization Station 仮想マシン情報

 

続いて、QNAP NASの電源スケジュール設定は ControlPanel を開き、 システム電源電源スケジュール で、シャットダウンの他に始動も設定可能です。

図09.QNAP 電源スケジュール

図09.QNAP 電源スケジュール

スケジュール通りに始動しなかった場合に備え、隣りの 電源復旧 タブで復電後即NASを始動するよう設定、さらにWOL ( Wake-on-LAN )も有効にしました。

図10.QNAP 電源復旧とWOL

図10.QNAP 電源復旧とWOL

 

こちらも結果的に遅れた復電後、電源復旧自動オンの設定が機能していました。

図11.QNAP イベントログ

図11.QNAP イベントログ

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA