ページの先頭です。
サイト内の現在位置を表示しています。
  1. ホーム
  2. ソフトウェア
  3. CLUSTERPRO
  4. ブログ
  5. 2017/07/18 記事
ここから本文です。

CLUSTERPRO オフィシャルブログ ~クラブロ~

Azure DNS を利用した HAクラスター構築(Windows)

はじめに

Microsoft Azure(以降、Azure)で CLUSTERPRO X を使用した HAクラスター構築手順をご紹介します。

HAクラスターを構築する際に、現用系サーバーへの接続先の切り替えは重要なポイントの一つです。
今回は、接続先の切り替えに Azure DNS を利用した HAクラスターの構築手順をご紹介します。

この記事の内容

以下の手順で、Azure でクラスターを構築します。
  1. Azure に仮想マシンを作成
  2. 仮想マシン(クラスター化対象サーバー)に CLUSTERPRO X をインストール
  3. クラスターを構築
  4. 動作確認

クラスター構築手順

クラスター構成

2ノードミラーディスク型クラスターを構築します。

  • Azure DNS を使用して現用系サーバーへ接続先を切り替え
  • クラスター対象のアプリケーションに minio (オブジェクトストレージ)を使用

1.Azure に仮想マシンを作成

合計3台の仮想マシンを作成します。

CLUSTERPRO X 操作用クライアント を1台
クラスター化対象サーバー を2台

  • Azure の SLA 要件を満たすため、クラスター化対象サーバー用の仮想マシンは、1つの可用性セット内に作成します。
  • CLUSTERPRO X のシステム要件に合わせて、以下の仮想マシンを作成します。

  • OS:Windows Server 2016 Datacenter
  • サイズ:A1_v2Standard

仮想マシンの構築手順は以下の URL を参考にしました。
「Azure Portal で Windows 仮想マシンを作成する」
https://docs.microsoft.com/ja-jp/azure/virtual-machines/virtual-machines-windows-hero-tutorial

「Azure 可用性セットを作成することによる VM の可用性の向上」
https://docs.microsoft.com/ja-jp/azure/virtual-machines/virtual-machines-windows-create-availability-set

仮想マシンを作成後、以下を実行します。

  • CLUSTERPRO X、minio で使用するポート番号を解放します。
  • CLUSTERPRO X から Azure DNS を制御するため、Azure CLI をインストールします。

  • 本ブログでは Azure CLI 2.0 を使用します。

Azure CLI のインストール手順は以下のURLを参考にしました。
「Azure CLI 2.0 のインストール」
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli

  • minio.exe と設定ファイル(config.json)を C ドライブ配下に格納します。
  • データミラーリング用に仮想マシンにストレージ BLOB を追加し、クラスターパーティション、データーパーティションを作成します。

  • クラスターパーティション ミラーディスクを管理するためのパーティション
  • データーパーティション ミラーリング対象の業務データを格納するためのパーティション

2.仮想マシン(クラスター化対象サーバー)に CLUSTERPRO X をインストール

CLUSTERPRO X のインストーラーを仮想マシンに格納します。
インストーラーを起動して、CLUSTERPRO X をインストールします。

インストーラの画面

3.クラスターを構築

WebManager を使用して構築します。
WebManager は、Web ブラウザー経由でクラスターの管理や構築を行う運用管理ツールです。

Web ブラウザーで、CLUSTERPRO X をインストールしたサーバーに接続して、WebManager を起動します。
http://サーバーのIPアドレス:29003

  • WebManager を起動するマシンには Java 実行環境(JRE)がインストールされている必要があります。
    スタートアップガイドなどで動作検証済みの Java 実行環境を確認し、適宜インストールしてください。

例) http://10.10.2.7:29003

構築の流れ

①クラスターの作成
②フェールオーバーグループの作成
③モニターリソースの作成

①クラスターの作成

クラスター名やサーバー名、ネットワークの設定を実行し、設定を反映します。

  • クラスターを作成
  • サーバーを追加
  • ネットワーク構成を設定
  • ネットワークパーティション解決処理を設定

②フェールオーバーグループの作成

3つのリソースを追加します。

  • ミラーディスクリソース
  • スクリプトリソース(Azure DNS 切り替え用)
  • スクリプトリソース(minio 制御用)

ミラーディスクリソース

サーバー間でボリュームのミラーリングを実現します。

スクリプトリソース(Azure DNS切り替え用)

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%
…省略…

スクリプトの戻り値を判定するため、[正常な戻り値]の設定を実施します。

スクリプトリソース(Azure DNS切り替え用)の設定画面03

スクリプトリソース(minio 制御用)

minio の制御を実現します。
スクリプトによって、minio の起動/停止を実行します。

スクリプトリソース(Azure DNS 切り替え用)と同様の手順でスクリプトリソースを設定します。

起動スクリプト(start.bat)、停止スクリプト(stop.bat)にそれぞれ minio を起動/停止するスクリプトを記載します。

起動スクリプト(抜粋)

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%

③モニターリソースの作成

2つのリソースを追加します。
  • カスタム監視リソース(Azure DNS 監視用)
  • カスタム監視リソース(minio 監視用)

カスタム監視リソース(Azure DNS監視用)

Azure DNS に登録したレコードと IP アドレスの対応付けを監視します。
カスタム監視リソースでは、任意のスクリプトを実行することにより監視を行います。
スクリプトにより、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 の起動状態を監視します。
スクリプトにより minio のプロセスが存在するかどうか監視します。
カスタム監視リソース(Azure DNS 監視用)と同様の手順でカスタム監視リソースを設定します。

監視スクリプト(抜粋)

tasklist |find "minio" > NUL 2>&1
exit /b %errorlevel%

4.動作確認

仮想ホスト名を使用して minio に接続します。

障害契機によるフェールオーバーの動作確認のために、minio のプロセスを停止します。

CLUSTERPRO X が障害を検出しフェールオーバーが発生。

フェールオーバー後も同様に仮想ホスト名を使用して minio に接続します。
障害発生前と同様にアクセスできることが確認できました。

まとめ

今回は、Azure DNS を利用した HAクラスターの構築手順をメインに紹介させていただきました。
最後まで読んでいただきありがとうございました。

参考

クラウド向けクラスター構築支援サービス(クラウド HA コンサル)を実施しています。
お問い合わせ先はこちら(info@clusterpro.jp.nec.com)

お問い合わせ

当ブログに関するお問い合わせは、CLUSTERPRO プリセールスお問い合わせ窓口(info@clusterpro.jp.nec.com)までお問い合わせください。

資料請求・お問い合わせ

CLUSTERPRO

ページの先頭へ戻る