サイト内の現在位置を表示しています。

AWS環境で状態遷移テストツールを試してみました(Windows)

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

           

はじめに

今回は、CLUSTERPRO X Startup Kitに収録されている構築・運用の容易化の機能の1つである、状態遷移テストツールを試してみました。
状態遷移テストツールについては popup以前の記事で紹介いたしましたが、本記事では状態遷移テストツールを実施する際の設定や実行方法について詳しくご紹介します。状態遷移テストツールはWindowsとLinuxの両方のクラスタ環境で実行可能ですが、今回はWindows環境を対象としています。

この記事の内容

1. 状態遷移テストツールとは

状態遷移テストツールは、構築したHAクラスターのフェールオーバーテストを自動で行うことを目的としたツールです。フェールオーバーテストを自動化することでHAクラスターの状態遷移(サーバーの起動時や再起動後の動作など)が意図した通りに行われているかの確認が容易になり、手動で実行していたテスト時間の短縮、人的ミスの発生低減に繋がります。

状態遷移テストツールでフェールオーバーテストを自動化するテスト項目群をテストシナリオと呼称し、テスト対象とするHAクラスターの構成(サーバー数、フェールオーバーグループ数、データ引継方式)に応じて、テストシナリオを選択します。最新バージョンである CLUSTERPRO X 5.2で実施可能なテストシナリオは以下の通りです。

2. HAクラスター構成

今回は、Amazon Web ServiceでVIP制御によるHAクラスターとテストを実行するクライアントマシンを構築します。
構成図は以下の通りです。

また、今回設定するCLUSTERPROの構成は以下の通りです。

・CLUSTERPRO
 - フェールオーバーグループ(failover)
  ■AWS仮想IPリソース(awsvip)
   ・IPアドレス:172.16.0.1
  ■ミラーディスクリソース(md)

 - モニタ
  ■AW仮想IP監視(awsvipw)
  ■ミラーディスク監視(mdw)
  ■ユーザー空間監視(userw)

このような構成の場合に実施するべきテストシナリオ番号は2となります。

3. 状態遷テストツール設定手順

3.1 状態遷移テストツールの実行準備

3.1.1 Python3の設定

状態遷移テストツールはPython3を利用します。Python3はクライアントマシン(Windows) にのみ必要です。

popupPythonの公式サイトのダウンロードページよりインストーラーとして Python 3.12 (Windows installer (64bit)) の最新版をダウンロードし、インストールを行います。
※検証時は、3.12.0 を使用しました。

本手順ではインストールの実行後に「Install Now」を選択して、デフォルト設定のままインストールしています。

インストールできましたら、Python3が正しく実行できる状態か確認します。

C:\Users\Administrator>python --version
Python 3.12.0

その後、以下のコマンドを実行して状態遷移テストツールの実行に必要なライブラリをインストールします。

C:\Users\Administrator>pip install requests

3.1.2 Node.jsの設定

クライアントマシン上で動作する状態遷移テストツールは CLUSTERPROが提供するRESTful APIを実行して、CLUSTERPROのステータスの取得や操作を行います。
RESTful APIはNode.js環境で動作するため、HAクラスターを構成している全てのサーバー にNode.jsをインストールする必要があります。

popupNode.jsの公式サイトのダウンロードページのPrebuild Installerより、インストーラーとして v20 (fore Windows running x64) の最新版をダウンロードし、インストールを行います。
※検証時は、v20.9.0を使用しました。

Python3と同様に、本手順ではデフォルト設定のままインストールしています。

C:\Users\Administrator>node --version
v20.9.0

インストールできましたら、Node.jsが正常にインストールされているか確認します。

3.1.3 共通のユーザー名とパスワードを持つOSアカウントの作成

RESTful APIを実行するには、HAクラスターを構成するサーバーに共通のユーザー名とパスワードを持つOSアカウントが設定されている必要があります。
以下のコマンドをHAクラスターに参加している全てのサーバーで実施して、共通のユーザー名とパスワードを持つOSアカウントを作成します。

C:\Users\Administrator>net user [ユーザー名] [パスワード] /add

ユーザー名とパスワードは環境に合わせて設定してください。

3.2 CLUSTERPROの事前準備

3.2.1 RESTful APIサービスの設定

状態遷移テストツールの実行には、CLUSTERPROの設定が一定の条件を満たしている必要がありますが、本記事ではRESTful APIサービスの設定を抜粋して説明いたします。
そのほかの設定は、CLUSTERPRO X Startup Kitに付属する「CLUSTERPRO X 状態遷移テストツール ユーザーズガイド」を参照して設定してください。

Restful APIサービスの機能を利用する場合は、通信方式にはHTTPS方式を利用することを推奨しております。HTTPS方式を利用するために、以下の記事の「2.5 秘密鍵とサーバー証明書をクラスター構成サーバーに配布」までを参考にHAクラスターに参加しているサーバーで秘密鍵とサーバー証明書の設定を行ってください。

次に、Cluster WebUIからRESTful APIサービスを有効にするための設定を行います。Cluster WebUIの設定モードで「クラスタのプロパティ」を選択します。

「クラスタのプロパティ」の「API」タブを選択し、「APIサービスを有効にする」のチェックをONにし、通信方式として「HTTPS」を選択します。

「クラスタのプロパティ」の「暗号化」タブを選択し、先ほど作成した証明書ファイルなどのパスを設定します。

最後に、以下のコマンドを実行して、OSの起動時間をHAクラスターのハートビートタイムアウト(既定値30秒)以上に設定します。

C:\Users\Administrator>bcdedit /timeout 30

設定が完了しましたら、設定の反映を行います。CLUSTERPROでの設定は以上になります。

3.3 状態遷移テストツールの配置と構成設定

3.3.1 クライアントマシン設定

まずは、状態遷移テストツールのパッケージファイル(zip)を展開し、「client」フォルダを任意の場所に格納します。

今回はCドライブ直下に「client」ファイルを配置しました。

次に、Cluster WebUIの設定モードから「設定のエクスポート」を実行し、クラスタ構成情報ファイル(zip)をダウンロードします。

その後、ダウンロードしたクラスタ構成情報ファイル(zip)を展開し、ファイル内の「clp.conf」を、「C:\client\bin」に格納します。

最後に、「C:\client\bin」にある「clpfotest.json」を、実施したいテスト内容に合わせて編集します。
今回は、テストシナリオ番号2を実施するので以下のように編集します。

{
  "TestScenario": 2,
  "User": " <3.1.3 で設定したユーザー名>",
  "Password": " <3.1.3 で設定したパスワード>",
  "EnableResetTest": false,
  "APIHTTPPortNumber": 29009,
  "RecoveryWaitInterval": 10,
  "RecoveryWaitRetry": 300,
  "BootWaitInterval": 3,
  "BootWaitRetry": 300,
  "FailoverWaitInterval": 3,
  "FailoverWaitRetry": 200
}

クライアントマシンでの設定は以上になります。

3.3.2 HAクラスターサーバー設定

以下の手順はHAクラスターを構成する全てのサーバーで実施してください。
まずは、「<CLUSTERPRO インストールディレクトリ>\work」配下に「rexec」ディレクトリを作成します。本環境では、「C:\Program Files\CLUSTERPRO\work」 配下 に 「rexec」を作成しました。
※ CLUSTERPRO X 5.1以前の場合、ディレクトリ名が「trnreq」になります。「rexec」を「trnreq」を読み替えて参照ください。

次に、状態遷移テストツールのパッケージファイル(zip)を展開し、「server\windows\bin」配下のファイルを、先ほど作成した「rexec」に格納します。

状態遷移テストツール実施前の設定は以上になります。

4. 状態遷移テストツールの実行方法

状態遷移テストツールを実行する際に、CLUSTERPROの状態としてHAクラスターが停止している必要があります。
Cluster WebUIの操作モードから「クラスタ停止」を実行してください。

次に、クライアントマシン上のコマンドプロンプトで、「clp.conf」を格納したディレクトリ「C:\client\bin」に移動し、以下のコマンドで状態遷移テストツールを実行します。

C:\client\bin>python clpfotest.py

状態遷移テストツールは以下の画像のように、一つのテスト項目に成功すると自動的に次のテスト項目を実行します。テスト項目に失敗した場合はそこでテストを終了します。

実行結果は、「C:\client\bin\log」配下にある「clpfotest.log」にも出力されます。
本ツールの実行に失敗した場合は、状態遷移テストツールの設定(clpfotest.json)の確認や、Cluster WebUIの設定モードの「クラスタ構成情報チェック」を活用する等して、HAクラスターの状態、設定を見直してください。

まとめ

今回は、CLUSTERPRO X StartupKitに収録されている構築・運用の容易化の機能の1つである、状態遷移テストツールを試してみました。状態遷移テストツールを実際に利用する際は、本記事の内容も是非参考にしてください。

CLUSTERPRO X Startup Kit には、今回ご紹介した状態遷移テストツールのほかにもクラスターの構築に役⽴つツールを同梱しておりますので、入手・購⼊をご検討の際は、以下のお問い合わせ窓⼝に記載の「ご購⼊前のお問い合わせ」までお問い合わせください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。