NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

Nutanix「Disaster Recovery」でスクリプトを使用してみる【AOS 7.3 AHV 10.3/pc.7.3】

 ※この記事は「AOS 7.3 AHV10.3 Prism Central pc.7.3」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。

今回は、Nutanix「Disaster Recovery」でのフェイルオーバー時にスクリプトを使用して特定のDNS IPを設定してみます。

目次

1.今回の環境

 AOS: 7.3
AHV: 10.3
Prism Central: pc.7.3

▽今回の環境のイメージは以下の通りです。

Nutanix Disaster Recoveryでは、仮想マシンの特定のフォルダに「.bat ファイル(Windows)」や「シェルスクリプトLinux)」を配置し、フェイルオーバー先での起動時に自動実行させることができます。

例えば、フェイルオーバー先で別のDNSサーバーを参照したり別のADに参加したい場合に、仮想マシン起動時のスクリプト実行で自動設定することができます。

スクリプトの実行には、Nutanix Guest Toolsが必要なので、あらかじめ仮想マシンにインストールしておく必要があります。

Creating a Recovery Plan
https://portal.nutanix.com/page/documents/details?targetId=Disaster-Recovery-DRaaS-Guide-vpc_7_3:ecd-ecdr-create-recoveryplan-pc-t.html

 AZ間のペアリングや保護ポリシーの作成については以下のリンク先をご参照下さい。

tomomartin.hateblo.jp

2. NGTのインストール

▽対象の仮想マシン「win2022-AZ01-test01」にNGTをインストールします。

▽NGTがインストールされた仮想マシンは、PCの仮想マシン画面でも確認できます。

3. スクリプトの準備

▽今回は、Windows Server 2022をフェイルオーバー対象として使用します。batスクリプトの配置先は以下の通りです。.batファイル名も「vm_recovery.bat」と決められています。

C:\Program Files\Nutanix\scripts\production\vm_recovery.bat

▽今回は、フェイルオーバー先での起動時に仮想マシンの参照するDNSサーバのIPを変更するスクリプトを使用します。以下の通り最低限の内容としています。

@echo off
setlocal
set "ADAPTER=Ethernet"
netsh interface ipv4 delete dnsservers name="%ADAPTER%" all
netsh interface ipv4 add dnsservers name="%ADAPTER%" address=8.8.4.4 index=1

Windowsの特定のフォルダにスクリプトを配置し、フェイルオーバー後はDNS IPが「8.8.8.8 → 8.8.4.4」に切り替わるように設定してみます。

これで仮想マシン側の設定は完了です。

4. リカバリプランの作成時の設定

配置したスクリプトを使用するには、リカバリプランの作成時にスクリプトの使用を有効化する必要があります。

リカバリプランに追加した仮想マシンを選択して、「Manage Scripts」→「Enable」をクリックします。これで、この仮想マシンではフェイルオーバー時にスクリプトが実行されます。

これで準備完了です。

4. フェイルオーバーの実行

▽今回は計画的なフェイルオーバーを実行してみます。リモートAZのPrism Centralから、フェイルオーバーを実行して、リモートAZのクラスターに仮想マシンを移動します。

▽フェイルオーバーを実行すると、リモートAZのcluster02上に仮想マシンがフェイルオーバーされて起動します。

仮想マシンDNS IP設定を確認すると、スクリプトに記述したDNS IP「8.8.4.4」が設定されていました。

ちなみに、フェイルオーバー後に、元のクラスターにそのままフェイルバックした場合、DNS IPは自動で元には戻りません。

フェイルバック時に元のDNS IPに戻したい場合は、フェイルバック後に手動でDNS IPを変更するか、スクリプトの内容を元のDNS IPに書きかえてからフェイルバックする必要がありそうです。

以上、今回はここまで。次回はWitnessでの自動フェイルオーバーか、VSSあたりを試してみようかと思います。あくまで予定。