VMware ESXi ホストの スケジュール シャットダウン

投稿者: | 2021年8月15日

社屋ビルの夜間計画停電に伴い、社内で運用している仮想化されたサーバ群と、それらを内包する VMware ESXi ホストを停電時間前に安全に シャットダウン させるための、 スケジュール シャットダウン についてまとめました。

vMAから仮想マシンをシャットダウン

社内の仮想サーバの載った複数台のVMware ESXiホスト(ver.6.5〜6.7で構成)は、vCenterサーバとvSphere Management Assistant (vMA)で管理運用されています。

図1.社内VMware vCenter構成

図1.社内VMware vCenter構成

仮想マシンの夜間のクローニングや再起動、開始や停止は全てvMAからcronにより自動運用です。もう何年も使い続けている停止スクリプトは以下のような構成で、これを複数の仮想マシン各々の役割に応じ、適切な順序と適度な間隔を開けながらシャットダウンさせることが出来ます。

実行結果ログには次のような出力が記録されます。

仮想マシンのスケジュールシャットダウンは以上です。続いてvMAを含めた全ての仮想マシンがシャットダウンした後の、ESXiホスト自身のシャットダウンの仕込みに入ります。

 

SSHサービスの有効化

VMware ESXiホストサーバは普段、セキュリティ上の理由からSSHサービスを閉じているので、まず最初にWebUIからSSHサービスを起動にします。

図2.ESXiホスト SSHサービス起動

図2.ESXiホスト SSHサービス起動

SSHが有効になっている間はWebUI上にその旨アラートが表示され続けますが、ESXiホストを再起動後、SSHサービスは再び停止状態になっているので気にする必要はありません。

図3.ESXiホスト SSH有効化を警告

図3.ESXiホスト SSH有効化を警告

ESXi ホスト シャットダウンコマンド

ESXiホストをシャットダウンするコマンドは poweroff だそうで、早速有効にしたSSHを介しESXiホストへ入って確認してみると、その実体はBusyBoxでした。

さらにESXi 6.5までのシステムは、ホストシャットダウンの前に搭載している仮想マシンやサービスを安全にシャットダウンさせるシェルスクリプトが用意されています。

ESXi 6.7にもスクリプトファイル自体は存在するものの、中身はコメントアウトの空っぽで廃止されていることが分かります。

今回、仮想マシンは全てvMAから別途スクリプトでシャットダウンさせているので、ホストシャットダウンは poweroff コマンドのみで行います。

 

ESXi ホストのcron

cron設定の記述されたcrontabファイルは、スティッキービット付きの読み取り専用になっているので、まずこれを編集可能な状態へ変更します。

viエディタでcrontabファイルに poweroff コマンドをフルパスで追加するのですが、この時に指定する時刻は世界時間UTCにする必要があります。下記例では、11+8=19時50分(香港時間:UTC+8)に作動するよう設定しています。

編集を保存したら、crontabファイルを読み取り専用に戻し、

現在動いているcronプロセスを落として、新規プロセスとして呼び出して、追加した項目を反映させます。

 

翌朝早めに出社すると、ESXiホストは全て設定した通り、正常にシャットダウンされていました。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA