Eaton UPS(イートン 無停電電源装置) テクニカルブログ

Nutanix Prism Central 連携

このレポートは、IPM 1.54で検証したレポートになります。これより新しいIPM 1.60の検証レポートがあります。リンク先の記事をご一読願います。

Nutanix Prism Central connectorがEaton 電源管理ソフトウェア IPM 1.54で追加されました。
このコネクターを使用すると、停電時にNutanixの仮想マシンをGUIでシャットダウン管理する事ができます。

※IPM 1.62以降、Gold Licenseが必須となりました。

検証結果

  • ハイパーバイザは、Nutanix AHV(Acropolis Hypervisor)のみ対応
  • IPM Silver License 必須
  • 仮想マシンのシャットダウン可能
  • グループ化により、時間差をつけてシャットダウン可能

※Nutanix Prism Central コネクターは、VMware ESXiおよびMicrosoft Hyper-Vは非対応です。

検証環境

・Nutanix Community Edition
・Windows 7 Pro (64bit)
・Eaton 9PX6K UPS

Nutanixは9PX6Kから電源供給。仮想マシンは3つ。
Windowsは別系統から電源供給。IPM 1.54をインストール済み。シルバーライセンス適用済み。

nutanix_connector_verification_environment

Prism ダッシュボード

nutanix_prism_central_dashboard

仮想マシンのシャットダウン設定

Nutanix Prism Central コネクターを追加する

必須条件:

  • Java Runtime Environment(JRE) 8 最新版がインストールされていること。
  • IPM シルバーライセンス以上の適用。

[設定] > [インフラストラクチャーコネクター] > [コネクターの追加]をクリックします。

ipm_nutanix_connector_add01

リストの中から[Nutanix Prism Central / Cluster]を選択します。

ipm_nutanix_connector_add02

Nutanix Prism Central / Clusterの情報を全部入力して[保存]します。

ipm_nutanix_connector_add03

コネクターが作成されて、接続状態が緑色アイコンになります。

ipm_nutanix_connector_add04

[設定] > [自動検出]をクリックすると、ノードリストに仮想マシン3台が追加されました。

※パワーオフの仮想マシンはステータスが赤アイコンになります。

ipm_nutanix_display

Nutanix 仮想マシン シャットダウン ポリシーを作成する

UPSが60秒間バッテリー稼働した時に、仮想マシン2台(win-7,win-9)をシャットダウンするポリシーを作成します。

[管理] > [構成ポリシー] > [新しいポリシーを作成]をクリックします。

ipm_nutanix_vm_shutdown_policy01

構成ポリシーネームは、任意の名前を入力します。例として「Nutanix VM shutdown policy」としています。

次に、ターゲットノードの編集ボタンをクリックします。

ipm_nutanix_vm_shutdown_policy02

「利用できるノードリスト」の中から、対象の仮想マシン2台を「>>」ボタンを使用して、「ターゲットノード」に移動します。

ipm_nutanix_vm_shutdown_policy03

クラスリストの編集ボタンをクリックします。

ipm_nutanix_vm_shutdown_policy04

Runtime threshold settings と パワーソース の2か所にチェックを入れます。

ipm_nutanix_vm_shutdown_policy05

Runtime threshold settingsのタイマーに「60s」を設定します。 ※シャットダウンタイマー

パワーソースのパワーソースに「9PX6K」を設定します。 ※電源供給元UPS

ipm_nutanix_vm_shutdown_policy06

ポリシーが1つ作成されました。

ipm_nutanix_vm_shutdown_policy07

Nutanix 仮想マシン シャットダウン アクションを作成する

続いて、アクションを作成します。
「作成したポリシーが条件を満たした時に、どのようなアクションを起こしたいのか」を設定します。
ここでは、仮想マシンをシャットダウンするアクションを作成します。

[設定] > [アクション/イベント] > [新しいアクションの作成]をクリックします。

ipm_nutanix_vm_shutdown_action01

アクション名は、任意の名前を入力します。例として「Nutanix VM shutdown action」としています。

次に、イベントリストの編集ボタンをクリックします。

ipm_nutanix_vm_shutdown_action02

「シャットダウン基準に到達」にチェックを入れてOKをクリックします。

ipm_nutanix_vm_shutdown_action03

イベントソースの編集ボタンをクリックします。

ipm_nutanix_vm_shutdown_action04

作成したポリシー「Nutanix VM shutdown policy」を選択します。

ipm_nutanix_vm_shutdown_action05

アクションタイプは、リストの中から「仮想マシンの電源操作」を選択します。

ipm_nutanix_vm_shutdown_action06

パワーコマンドの編集アイコンをクリックします。

ipm_nutanix_vm_shutdown_action07

「ゲストのシャットダウン」を選択します。

ipm_nutanix_vm_shutdown_action08

仮想マシンターゲットの編集アイコンをクリックします。

ipm_nutanix_vm_shutdown_action09

作成したポリシー「Nutanix VM shutdown policy」を選択します。

ipm_nutanix_vm_shutdown_action10

シャットダウンゲストタイムアウトは、変更しません。

保存します。

ipm_nutanix_vm_shutdown_action11

アクションが1つ作成されました。

ipm_nutanix_vm_shutdown_action12

Nutanix 仮想マシン シャットダウン 動作検証

UPSをバッテリー稼働させて、60秒後に仮想マシン2台がシャットダウンするか確認しました。

イベント通知

ipm_nutanix_vm_shutdown_test01

ノードリストのステータス

ipm_nutanix_vm_shutdown_test02

PrismのVMステータス

ipm_nutanix_vm_shutdown_test03

正常にシャットダウンする事が確認できました。

クラスタ停止、CVMシャットダウン、AHVシャットダウン 設定

Nutanix AHV シャットダウン フロー

「クラスタ停止 ⇒ CVMシャットダウン ⇒ AHVシャットダウン」をコマンドで実行する設定をします。

1. クラスタ停止

 CVMのいずれかにSSHで接続して、 echo Y | cluster stop を実行。

2. 全CVMシャットダウン

 各CVMにSSHで接続して、 sudo shutdown -h now を実行。

3. 全AHVシャットダウン

 各AHVにSSHで接続して、 shutdown -h now を実行。

上記1~3のスクリプトをTeraTermで作成しました。

Nutanix AHV シャットダウン サンプルスクリプト

このスクリプトは、サンプルです。
ダイトロンは、スクリプトを実行する手順については回答しますが、このサンプルスクリプトを含むスクリプトに関する回答、動作保証、動作検証は致しかねます。ご了承ください。

TeraTerm サンプル.ttl

3種のttlファイルをc:\scripts\ に保存します。

【1. クラスタ停止】

nutanix_cluster_stop.ttl

;; CVM1にSSH接続
;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.5' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; CVM1にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 
    end 
endif

;; クラスター停止
sendln 'echo Y | cluster stop'

;; クラスター停止の待機時間(秒)
pause 120

;; SSH切断
sendln 'exit'

【2. CVMシャットダウン】

nutanix_cvm1_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.5' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; CVM1にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM1シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
sendln 'exit'

nutanix_cvm2_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.6' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; CVM2にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM2シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
sendln 'exit'

nutanix_cvm3_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.7' 
USERNAME = 'nutanix' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; CVM3にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '$'
if result = 0 then 
    disconnect 0
    end 
endif

;; CVM3シャットダウン
sendln 'sudo shutdown -h now'

;; SSH切断
sendln 'exit'

【3. AHVシャットダウン】

nutanix_ahv1_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.2' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; AHV1にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV1シャットダウン
sendln 'shutdown -h now'

;; SSH切断
sendln 'exit'

nutanix_ahv2_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.3' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; AHV2にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV2シャットダウン
sendln 'shutdown -h now'

;; SSH切断
sendln 'exit'

nutanix_ahv3_shutdown.ttl

;; ########## 初期設定 ########## 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '192.168.10.4' 
USERNAME = 'root' 
PASSWORD = 'nutanix/4u' 
;; ############################## 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; AHV3にSSH接続
connect COMMAND

;;接続出来ない場合はマクロ終了
if result <> 2 then
    end 
endif

;; 5秒以内にプロンプトが表示されないとマクロ終了
timeout = 5
wait '#'
if result = 0 then 
    disconnect 0
    end 
endif

;; AHV3シャットダウン
sendln 'shutdown -h now'

;; SSH切断
sendln 'exit'

Nutanix シャットダウン サンプル.bat

ttlを実行して、最後に自分自身(Windows)がシャットダウンするbatファイルのサンプルです。Windowsをシャットダウンさせなくて良い場合は、最後の1行は削除すること。

nutanix_ahv_shutdown.bat

"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_cluster_stop.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_cvm1_shutdown.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_cvm2_shutdown.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_cvm3_shutdown.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_ahv1_shutdown.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_ahv2_shutdown.ttl"
"C:\Program Files (x86)\teraterm\ttpmacro.exe" /I /V "C:\scripts\nutanix_ahv3_shutdown.ttl"
shutdown /s /f /t 0

batファイルを実行するタスクを作成する

タスク スケジューラを起動します。

タスク スケジューラ ライブラリを右クリックして、タスクの作成を選択します。

【全般】タブ

タスクの名前は、「nutanix_shutdown」とします。
「ユーザーがログオンしているかどうかにかかわらず実行する」を選択します。
「最上位の特権で実行する」にチェックを入れます。

◆重要◆ 構成は、必ず「Windows Server 2003、XP、2000」を選択します。

【トリガー】タブ

何もしません。

【操作】タブ

新規をクリックします。

参照を押して、C:\scripts\nutanix_ahv_shutdown.bat を選択します。

【条件】タブ

「コンピュータをAC電源で使用している場合のみタスクを開始する」のチェックを外します。

【設定】タブ

何もしません。

右下の「OK」を押すと、batを実行するタスクが作成されます。このタスクはトリガーが無いため、通常は動作しません。

タスクを実行するIPMの設定

一定時間バッテリー運転した時に、作成したタスクをIPMが実行する設定を行います。

[設定] > [シャットダウン] > [シャットダウン構成の編集]のシャットダウンのタイプを「スクリプト」に変更します。

シャットダウンスクリプトは、 schtasks.exe /run /tn “nutanix_shutdown” と入力します。

※パスが通っていない場合は、c:\windows\system32\schtasks.exe ~と絶対パスから入力します。

おわりに

「仮想マシンのシャットダウン」は、IPMのGUIで実行します。
その後の「クラスタ停止」→「CVMシャットダウン」→「AHVシャットダウン」は、IPMでスクリプトをキックします。

Nutanixの電源保護は、Eaton 9PX UPSと電源管理ソフトウェア IPMを提案させて頂きます。

ページの先頭へ