VxRailのAPIを使ってクラスターシャットダウン & iDRAC パワーオン

この投稿はvExperts Advent Calendar 2019における19日目の投稿です。
adventar.org

はじめに

Dell EMC VxRail(以下、VxRail)でサポートするREST APIを使い、VxRailのシャットダウンを行います。

最後にはおまけで、iDRACからのパワーオンも行っています。

経緯

以前までVxRailのシステム停止は、VxRailを管理するコンポーネント「VxRail Manager」の管理画面(GUI)もしくは「vSphere Client内のVxRailプラグインメニュー」からの停止のみサポートしていたため、外部からのシステム停止を行う際はVMware vSANのナレッジを基に各自で工夫したシャットダウンプロセスを用いてVxRailを停止していました。
f:id:hmlab:20191219202243p:plain

VxRail 4.7の初期リリース後、VxRail ManagerへのREST API機能が次第に実装/公開され、現在ではバージョン4.7台だけでなく、4.5台でも4.5.3xxからサポートされています。
これにより、社内の運用管理システムやUPSと連携して容易にVxRailを停止することが可能になりました。
今回はそのVxRail API シャットダウンを実際に行ってみたいと思います。

環境情報

  • VxRail
    • VxRail バージョン 4.7.212
    • VxRail Manager 4.7.212-14215560
    • VMware ESXi 6.7 EP10 GA build 13981272
    • VMware vCSA 6.7 Update 2c GA build 14070457
    • VMware vSAN 6.7 EP10
    • SRS-VE 3.24.00.04
  • 管理コンソール
    • Cent OS 7 minimal

やること

やることはとてもシンプルです。
大きく分けて2つのことを実施します。
f:id:hmlab:20191219175845p:plain
管理コンソールとVxRail ManagerおよびvCSA間でネットワークの疎通性があることが大前提です。

前提プロセス:ゲストVM シャットダウン

まず、ゲストVMのシャットダウンを行います。
VxRailのシステムコンポーネントを除く、すべてのゲストVMをシャットダウンします。

  • VxRailシステムコンポーネントとは…
    • 本投稿ではVxRailのセットアップや、セットアップ後にVxRail Managerによりデプロイされたコンポネートのことを指しています。これに該当しない仮想マシンはすべてクラスターシャットダウン前に停止しておく必要があります。
    • vCenter ServerやvRealize Log Insight、SRSはセットアップによりデプロイされるケースとそうでないケース(非システムコンポーネント)があるため、事前に停止しておくVMとそうでないVMに注意します。
    • VxRail Manager Marketplaceでデプロイされたインスタンスもまた非システムコンポーネント(多分)のため、ゲストVMという扱いで事前に停止します。
▼今回、検証したVxRailのシステムコンポーネント
コンポーネント 仮想マシン
VxRail Manager VxRail Manager
vCSA VMware vCenter Server Appliance
vCSA(PSC) VMware vCenter Server Platform Services Controller
SRS ESRS_VE.x86_64

ゲストVMシャットダウンスクリプトについては、VMware PowerCLIやWindows PowerShellによる実装の他、最近ではvCenter ServerもREST APIに対応しているようです。ゲストVMの停止順序等、各社のお作法に併せてご実施ください。

システム停止:VxRail API シャットダウン

すべてのゲストVM停止後、VxRail ManagerのAPIに対しクラスターシャットダウンを指示します。

管理コンソールから以下のコマンドを実行します。

  • VxRail Manager認証情報を設定

※変数の値はVxRail環境に併せて適宜変更が必要です
gist.github.com

gist.github.com

vSphere Clientで状況を確認するとシステムコンポーネント群のシャットダウンが始まったことが確認できます。
f:id:hmlab:20191219203145p:plain
この後、vCSAの停止によりvSphere Clientへのアクセスができなくなり、すべてのESXiホストが停止したことを確認しました。

以上でVxRailのクラスターシャットダウンは完了です。

おまけ{システム開始:iDRAC パワーオン}

VxRailの遠隔によるパワーオンは、iDRACを使って行うことができます。
VxRailの場合、電源投入後10数分前後でシステムコンポーネントのサービスが自動で起動しますので、あとはゲストVMをお作法に則って起動していけば完了です。(もちろん、スクリプトを使った自動化も可能です)

今回、iDRACに対しては管理コンソールからSSHログインしまして、RACADMコマンドを実行しています。
(現時点では、ほぼ最新のiDRAC 9 Ver3.36.36.36のAPI Guideを見てもRESTでのパワーオンに対応していない模様)
f:id:hmlab:20191219204654p:plain

事前準備
  • SSHキー設定
    • セキュリティおよびプロセスの簡略化を考慮しまして、SSHキーを使ったログインを行います。
    • 事前に秘密鍵/公開鍵の生成およびすべてのホストのiDRACにおいて、公開鍵を設定したユーザーの準備が必要です。
  • iDRACのIPアドレス指定
    • idrac_list.txt を作成します。
    • idrac_list.txt 内に起動するiDRACのIPアドレスを指定します。1つ1つ改行で区切ります。

※iDRACのIPはVxRail環境に併せて適宜変更が必要です
gist.github.com

※変数の値は実行環境に併せて適宜変更が必要です
gist.github.com

システム開始:iDRAC パワーオン
  • 実行

[root@localhost ~]# ./idrac_power_on.sh idrac_list.txt

以上でiDRACのパワーオンは完了です。