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

C&S ENGINEER VOICE

SB C&S

Nutanix 2ノードクラスターの電源管理をオムロンUPSで解決

Nutanix
2024.09.30

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

先日公開した記事では、エッジ環境向けのPowerEdge XR4000をベースとした「VxRail VD-4000」の電源管理をオムロンソーシアルソリューションズ株式会社(以下、オムロン)から提供されているUPS「BVシリーズ」と電源管理ソフト「VirtuAttendant」により、エンタープライズ環境で求められる電源障害への保護が問題なく行えることをご紹介させていただきました。

本記事ではNutanix 2ノードクラスター環境の電源管理にオムロン製ソリューションを用いた検証とその結果についてご紹介いたします。

なお、以前の記事にて紹介したPowerEdge XR4000をベースとした、Nutanix2ノードモデルである「Nutanix XC4000」がリリースされています。
ただし、本記事の作成に伴う検証時点ではNutanix XC4000のWitness専用ノードにあたるXC4000wがリリースされておらず、後述の検証環境ではDELL XC450-4 Coreを利用しています。
今後XC4000wがリリースされた際には、本記事でご紹介した内容をご参考にいただけると考えております。

検証内容について

本記事ではNutanixの2ノードクラスター環境において、オムロン製ソリューションを用いた以下の検証を行いました。

検証①:電源障害時の2ノードNutanix環境を自動シャットダウン

検証内容としては前回の記事と同様にUPSの電源ケーブルを抜線し擬似的に停電状況を発生させ、2ノードNutanix環境における正常なシャットダウン手順を自動化できるかを確認します。

なお、2ノードNutanix環境では必ずWitnessという役割を持ったコンポーネントが存在し、2ノードクラスターと同じロケーションに設置されているような環境においては、こちらも含めた電源管理を考慮する必要があります。

今回は2ノードクラスターを停止した後にWitnessを停止させる順序にて検証を行いました。

◯通常の2ノードNutanix停止手順
_2024-09-29_20-38-23_.png

検証②:復電時の2ノードNutanix環境を自動起動

電源復旧した後に2ノードNutanix環境を自動起動できるか確認します。
起動時は1ノードクラスターも合わせて起動を行います。

◯通常の2ノードNutanix起動手順
_2024-09-29_19-29-29_.png

検証環境について

Nutanixの2ノードクラスター構成にはWitnessと呼ばれるスプリットブレインを回避するための監視サーバーが必要になります。
NutanixではWitnessをAHVまたはESXiのハイパーバイザー上で動作する仮想アプライアンスとして提供されています。

本検証ではNutanix1ノードクラスターをAHVで構築し、その上でWitnessVMを稼働させる環境を用意しました。
この環境をオムロン製UPSとネットワークカード SC22、VirtuAttendantを2ノードクラスター上にて稼働させる構成で検証環境を構築しました。

◯検証環境イメージ図
_2024-09-29_18-55-03_.png

※本検証で利用する各コンポーネントのバージョンは以下のとおりです。

  • AOS :6.8.1
  • AHV :20230302.101026
  • Prism Central :pc.2024.1.0.1
  • Witness :6.8
  • SC22 :Ver. 1.00 ( Release Date: 2023-05-19 )
  • VirtuAttendant :Ver2.6.0(Release Date:2023-12-20)

検証結果と考慮事項

過去に掲載した記事にてオムロン製ソリューションを用いることで通常のNutanix環境を停止させることはすでに説明しているため、本記事ではWitnessを考慮した点にスポットを当てご紹介いたします。
※通常のNutanix環境とオムロン製ソリューションとの連携に関しては過去の記事をご覧ください。

結論からお伝えすると、Nutanixの2ノードクラスター環境をWitness含めエンタープライズ環境で求められる電源管理を実現できました。

検証結果①:電源障害時の2ノードNutanix環境を自動シャットダウン

VirtuAttendantが稼働している2ノードクラスター側はVirtuAttendantによってユーザーVMが停止され、VirtuAttendantが自動停止した後にはVirtuAttendant経由でSC22へ登録された各スクリプトによって各コンポーネントが停止されます。
ただし、VirtuAttendantによって管理されていない1ノードクラスターおよびWitnessVMはSC22からすべての制御を行う必要がありますが、こちらに関しては手動でスクリプトを登録することで対応する必要がありました。

◯オムロン製ソリューション連携時の2ノードクラスター停止の流れ
_2024-09-29_19-52-09_.png

検証結果②:復電時の2ノードNutanix環境を自動起動

こちらも停止時と同様に1ノードクラスターおよびWitnessVMはSC22へ手動でスクリプトを登録して対応する必要がありました。
なお、電源復旧時のサーバー自動起動に関してはiDRACから設定を行う必要があります。
本検証にて利用した機器(XC450-4 Core)はデフォルト状態で電源供給時に電源投入が行われる設定になっていましたが、実際のXC4000では予め設定を確認しておく必要があります。

◯オムロン製ソリューション連携時の2ノードクラスター起動の流れ
_2024-09-29_20-03-33_.png

停止・起動ともに問題なく対応できましたが、1ノードクラスターに関してはSC22へスクリプトを手動登録する必要がある点を考慮する必要があります。

WitnessVMおよび1ノードクラスタの制御について

VirtuAttendantは1台で1つのクラスターを管理できます。
本構成では2ノードクラスターはVirtuAttendantとVirtuAttendantから連携したSC22にて簡単に各種制御の自動化が行えますが、WitnessVMが稼働する1ノードクラスターはVirtuAttendantの管理対象に含めることができません。

◯VirtuAttendantで管理可能な範囲
_2024-09-29_20-07-00_.png

そのため、WitnessVMおよび1ノードクラスタの制御については検証結果の項目でもお伝えした通り、SC22へ手動でスクリプトを登録して対応する必要があります。
VirtuAttendantはSC22のスクリプトを実行する機能と連携することで複雑なシャットダウンシーケンスを制御することを実現していますが、VirtuAttendantが利用できない場合であってもSC22へ手動でスクリプトを登録することでシャットダウンなどの各種制御を行うことが可能です。

◯SC22単独でWitnessVMを含めたNutanixの各コンポーネント制御イメージ
_2024-09-29_20-22-24_.png

SC22へのスクリプト登録

SC22にはVirtuAttendantから自動的に登録されたスクリプトがNo.21~27へすでに存在します。(2ノードクラスターの場合はNo.27まで利用されていますが、管理しているノード数によって増減します)
こちらに変更を加えると2ノードクラスター側の処理に影響を与えてしまうため、変更を加えないように注意してください。
今回は1ノードクラスターおよびWitnessVMの制御をNo.31以降に登録します。

◯SC22のスクリプト登録画面
_2024-09-29_20-29-53_.png

以降は各種スクリプトを登録する際のポイントをお伝えしますが、スクリプトを登録する際は実行先のIPアドレスと認証情報を指定して行います。

各行には「IPアドレス/ホスト名」列、「ログインID」列、「パスワード」列などが存在するため、それぞれスクリプト実行先に適した情報を入力するようにしてください。
また、「条件」列は停止処理に関しては[VAシャットダウン]、起動処理に関しては「入力電源復電」を指定します。
※[VAシャットダウン]はVirtuAttendantの停止、[入力電源復電]はUPSの電源復電をトリガーとして登録したスクリプトを実行します。

1. WitnessVMを停止するスクリプト

No.31へWitnessVMを停止させるスクリプトを登録します。
いくつか方法が考えられますが、今回はCVM経由でWitnessVMの仮想マシンへシャットダウンを行う方法で対処します。
※SC22には(スクリプトNo.1~No.20に)デフォルトでいくつかのスクリプトが登録されています。
 個別の仮想マシンに対して命令を実行するにはスクリプトを手動で作成する必要があり、その場合はスクリプトNo.21以降を編集して作成を行います。
 (スクリプトNo.1~No.20はVirtuAttendantとの連携で使用されるため、編集は行わないよう注意してください)

◯WitnessVMを停止するスクリプトを登録
_2024-09-29_20-35-49_.png
※スクリプト実行先はCVMを指定します。

2. 1ノードクラスターの停止

No.32~34は1ノードクラスター側のCluster Service、CVM、AHVの停止を行うスクリプトを指定します。
これらのスクリプトはデフォルトでSC22に登録されてスクリプトを利用することができます。

◯1ノードクラスターを停止するスクリプトの登録
_2024-09-29_20-42-19_.png
※スクリプト実行先はNo.32はCVM、No33,34はAHVを指定します。

3. 1ノードクラスターの起動

No.35には1ノードクラスター側Cluster Serviceの起動を行うスクリプトを指定します。
Cluster Serviceの起動に関してもSC22にデフォルトで登録されているスクリプトを利用します。
※復電時のノード自動電源投入についてはiDRACから調整を行います。

◯1ノードクラスターを起動するスクリプトの登録
_2024-09-29_20-46-19_.png※スクリプト実行先はCVM指定します。

4. WitnessVMの起動スクリプト

No.36はWitnessVMを起動するスクリプトを登録します。
特定の仮想マシンを起動するスクリプトはデフォルトでは存在しないため、WitnessVM停止時と同様に手動で作成します。

◯WitnessVMの起動するスクリプトの登録
_2024-09-29_20-50-06_.png
※スクリプト実行先はCVM指定します。

スクリプトが実行されるタイミングについて

SC22から実行されるスクリプトはVirtuAttendantが停止およびUPS復電時のタイミングから「スクリプト待機時間(秒)」で指定された時間を経過した後に行われます。
※実行のトリガーは前述の通りVirtuAttendant停止時に実行されるには「条件」列に[VAシャットダウン]、復電時に実行されるには[入力電源復電]が設定されている必要があります。

VirtuAttendantから登録されるNo.20~27の2ノードクラスター側スクリプト設定には、ある程度Nutanixの起動・停止時間が考慮された値が自動的に指定されます。

◯スクリプト実行タイミングのイメージ図
_2024-09-29_21-53-10_.png

スクリプト実行タイミングは上記の仕組みで行われるため、手動で登録したNo.31以降の1ノードクラスタ側スクリプト設定にはデフォルト0秒で設定されており、VirtuAttendant停止およびUPSの復電直後にスクリプトが実行されるため、正常なタイミングにスクリプトが実行されません。

そのため、こちらのスクリプトに関してもNutanixの起動・停止順序とそれぞれに必要な時間を考慮した値を設定する必要がある点に注意してください。

まとめ

Nutanix 2ノードクラスター環境をオムロン製ソリューションで電源管理を行った検証結果をご報告させていただきました。

以前から弊社のブログではNutanixと親和性のある電源管理ソリューションとしてオムロンをご紹介しており、今回の検証にて少し癖のあるNutanix2ノードクラスター構成に関しても、一部追加のオペレーションが必要になりますが問題なく対応できることがわかりました。

なお、記事のはじめにご説明した通り、PowerEdge XR4000をベースとしたNutanix2ノードモデルであるXC4000については、記事掲載時点ではWitness専用ノードであるXC4000wがリリースされておりません。
しかしながら、本記事で紹介した通りオムロン製ソリューションであればXC4000wに多少の仕様変更があったとして、ある程度柔軟に対応することが可能であると考えております。

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

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第3技術部 1課
真砂 暁 - Akira Masago

お客様へより良いシステムのご提供を目標に、インフラ周りのプリセールスエンジニアとして活動。
現在は仮想化製品を担当すべく、日々精進しております。