Japan
サイト内の現在位置を表示しています。
Azure DNS を利用した HAクラスター構築(Windows)
CLUSTERPRO オフィシャルブログ ~クラブロ~はじめに
HAクラスターを構築する際に、現用系サーバーへの接続先の切り替えは重要なポイントの一つです。
今回は、接続先の切り替えにAzure DNSを利用したHAクラスターの構築手順をご紹介します。
この記事の内容
クラスター構築手順
クラスター構成
- -Azure DNSを使用して現用系サーバーへ接続先を切り替え
- -クラスター対象のアプリケーションにminio(オブジェクトストレージ)を使用
1.Azureに仮想マシンを作成
クラスター化対象サーバー を2台
- ※ AzureのSLA要件を満たすため、クラスター化対象サーバー用の仮想マシンは、1つの可用性セット内に作成します。
- ※CLUSTERPRO Xのシステム要件に合わせて、以下の仮想マシンを作成します。
- OS:Windows Server 2016 Datacenter
- サイズ:A1_v2Standard
「クイック スタート:Azure ポータルで Windows 仮想マシンを作成する」
- CLUSTERPRO X、minioで使用するポート番号を解放します。
- CLUSTERPRO XからAzure DNSを制御するため、Azure CLIをインストールします。
- ※本ブログではAzure CLI 2.0を使用します。
「Install the Azure CLI」
- minio.exeと設定ファイル(config.json)をCドライブ配下に格納します。
- データミラーリング用に仮想マシンにストレージBLOBを追加し、クラスターパーティション、データーパーティションを作成します。
- -クラスターパーティション ミラーディスクを管理するためのパーティション
- -データーパーティション ミラーリング対象の業務データを格納するためのパーティション
2.仮想マシン(クラスター化対象サーバー)にCLUSTERPRO Xをインストール
インストーラーを起動して、CLUSTERPRO Xをインストールします。
3.クラスターを構築
WebManagerは、Webブラウザー経由でクラスターの管理や構築を行う運用管理ツールです。
- ※WebManagerを起動するマシンにはJava実行環境(JRE)がインストールされている必要があります。
スタートアップガイドなどで動作検証済みのJava実行環境を確認し、適宜インストールしてください。
構築の流れ
②フェールオーバーグループの作成
③モニターリソースの作成
①クラスターの作成
- クラスターを作成
- サーバーを追加
- ネットワーク構成を設定
- ネットワークパーティション解決処理を設定
②フェールオーバーグループの作成
- ミラーディスクリソース
- スクリプトリソース(Azure DNS切り替え用)
- スクリプトリソース(minio制御用)
ミラーディスクリソース
スクリプトリソース(Azure DNS切り替え用)
スクリプトリソースでは、フェールオーバーグループの起動時、終了時、移動時に任意のスクリプトを実行します。
スクリプトによって、仮想ホスト名に対応するIPアドレスを切り替えることで、フェールオーバーグループが起動しているノードに仮想ホスト名でアクセスすることができます。
Azure DNSのレコードを制御するための事前準備として以下を実行しておきます。
- -Azure DNSを作成
- -Azure CLIのインストール
- -仮想マシンのDNSサーバーの設定変更(参照するDNSサーバーを変更)
スクリプトリソース(Azure DNS切り替え用)の設定を実施します。
起動スクリプト(start.bat)、停止スクリプト(stop.bat)にそれぞれAzure DNSのレコードを追加/削除するスクリプトを記載します。
CLUSTERPRO Xでは、スクリプトを実行する場合に、環境変数によってスクリプト実行要因を指定します。
スクリプトの記述についての詳細はCLUSTERPRO Xのリファレンスガイドを参照ください。
set IPAddress01=10.10.2.7
set IPAddress02=10.10.2.8
set ResourceGroup=clusterpro
set ZoneName=clusterpro.net
set RecordSetName=sample
set TTL=30
…省略…
CALL az network dns record-set a create --resource-group "%ResourceGroup%" --zone-name "%ZoneName%" --name "%RecordSetName%" --ttl "%TTL%"
CALL az network dns record-set a add-record --resource-group "%ResourceGroup%" --zone-name "%ZoneName%" --record-set-name "%RecordSetName%" --ipv4-address "%IPAddress01%"
exit /b %errorlevel%
…省略…
set ResourceGroup=clusterpro
set ZoneName=clusterpro.net
set RecordSetName=sample
…省略…
CALL az network dns record-set a delete --resource-group "%ResourceGroup%" --zone-name "%ZoneName%" --name "%RecordSetName%" -y
exit /b %errorlevel%
…省略…
スクリプトリソース(minio制御用)
スクリプトによって、minioの起動/停止を実行します。
スクリプトリソース(Azure DNS切り替え用)と同様の手順でスクリプトリソースを設定します。
start C:\minio\minio.exe --config-dir C:\minio server F:\
tasklist |find "minio"
exit /b %errorlevel%
tasklist |find "minio"
if errorlevel 1 exit /b 0
taskkill /IM minio.exe
exit /b %errorlevel%
③モニターリソースの作成
- カスタム監視リソース(Azure DNS監視用)
- カスタム監視リソース(minio監視用)
カスタム監視リソース(Azure DNS監視用)
カスタム監視リソースでは、任意のスクリプトを実行することにより監視を行います。
スクリプトにより、DNSの名前解決を行い、名前解決されたIPアドレスが設定値と一致しているかを監視します。
set IPAddress01=10.10.2.7
set IPAddress02=10.10.2.8
set FQDN=sample.clusterpro.net
…省略…
nslookup %FQDN% | findstr /E /C:"%IPAddress01%" > NUL 2>&1
exit /b %errorlevel%
カスタム監視リソース(minio監視用)
スクリプトによりminioのプロセスが存在するかどうか監視します。
カスタム監視リソース(Azure DNS監視用)と同様の手順でカスタム監視リソースを設定します。
tasklist |find "minio" > NUL 2>&1
exit /b %errorlevel%
4.動作確認
障害発生前と同様にアクセスできることが確認できました。
まとめ
最後まで読んでいただきありがとうございました。
お問い合わせ
- ※本記事で紹介しているスクリプトの内容についてのお問い合わせ、および、お客様環境に合わせたカスタマイズにつきましてはCLUSTERPRO導入支援サービスにて承っておりますので、上記窓口の"ご購入前のお問い合わせ"フォームまでお問い合わせください。