Japan
サイト内の現在位置を表示しています。
CLUSTERPRO X 5.0のご紹介~強制停止リソース~
CLUSTERPRO オフィシャルブログ ~クラブロ~
- ※2024/09/13 以下を追記。
- -サービス起動遅延時間の調整について記述を追加しました。
はじめに
強制停止リソースを設定することで、ハートビートの途絶によりサーバーのダウンを認識したときに、ダウンしたサーバーを外部から簡単に強制停止させることができます。
CLUSTERPRO X 4.3以前では、AWSとOCIの環境で強制停止させる場合は、スクリプトをお客様自身で用意する必要がありましたが、強制停止リソースの追加により、より簡単にGUIで設定できるようになりました。
今回は、強制停止リソースとその設定手順についてご紹介します。
この記事の内容
1. 強制停止リソースとは
強制停止リソースを設定することで、ハートビートの途絶によりサーバーのダウンを認識したときに、残りのサーバー(正常なサーバー)からダウンしたサーバーを強制的に停止させることができます。
強制停止リソースはクラスタを構築した環境の種類 (物理マシン・仮想マシン・クラウド) によって異なりますので、その環境の種類に対応した強制停止リソースを設定します。
CLUSTERPRO X 4.3以前は、物理・仮想環境で利用可能な強制停止機能と、強制停止機能が対応していない環境で利用するための強制停止スクリプトがありましたが、CLUSTERPRO X 5.0においてそれらは強制停止リソースとして集約されました。 また、CLUSTERPRO X 5.0ではAWS及びOCI環境向けの強制停止リソースが追加されています。
- ※CLUSTERPRO X 5.0のスクリプトを利用する強制停止リソースとCLUSTERPRO X 4.3以前の強制停止スクリプトとでは、スクリプトに記載する内容が異なります。CLUSTERPRO X 4.3以前の設定例は以下を参照ください。
強制停止リソースには「強制停止実行」と「定期チェック」という2種類の動作があります。 それぞれの動作内容や実行されるタイミングは以下の通りです。
強制停止実行
- サーバーの状態を管理する装置や基盤システムの機能を使用して、ダウンしたサーバーを強制的に停止します。
- サーバーのダウンを認識した際に実行されます。フェイルオーバーグループが正常に停止したり、ダウンしたサーバーにフェイルオーバーグループが起動していない場合は実行されません。
定期チェック
- サーバーを強制停止する装置や基盤システムと通信を行うことにより、強制停止を実行できる状態であるかどうかをチェックします。チェックの結果に応じて、強制停止リソースのステータスは "正常" (強制停止を実行可能) または "異常" (強制停止を実行不可能) に変化します。
- クラスタサービス起動中に、一定時間ごとに実行されます。
1.1 強制停止リソースの必要性
2. 強制停止リソースの設定手順
AWSとOCIの強制停止リソースは、停止対象のインスタンス情報を入力するだけで簡単に設定が可能です。
カスタムの強制停止リソースではスクリプトを利用できますが、CLUSTERPRO X 4.3以前の強制停止スクリプトとは異なる記述ポイントがありますので、記載例も紹介します。
強制停止リソースの詳細はリファレンスガイドを参照してください。
- CLUSTERPRO X 5.0 > Windows > リファレンスガイド
→ 第 7 章 強制停止リソースの詳細 - CLUSTERPRO X 5.0 > Linux > リファレンスガイド
→ 第 7 章 強制停止リソースの詳細
2.1 AWSの設定手順
また、クラスタを構築する各インスタンスにAWS CLIをインストールするなどの事前設定が必要となります。詳細は「2. 強制停止リソースの設定手順」に記載しているリファレンスガイドを参照ください。
Cluster WebUIを起動し「設定モード」から、クラスタのプロパティで強制停止リソースを登録します。
「フェンシング」タブを選択し、[強制停止]の[タイプ]のプルダウンから「AWS」を選択し、「プロパティ」をクリックします。
- ※「フェンシング」タブで設定するAWSのNP解決リソースと、強制停止リソースの動作例につきましては以下も参照ください。
「サーバ一覧」タブで「server1」を選択し、「追加」をクリックします。
server1の[インスタンスID](例.i-xxxxxxxxxxxxxxxxx)を指定します。
server2も同様の手順で設定します。設定後に「OK」をクリックして設定を完了します。
2.2 OCIの設定手順
また、クラスタを構築する各インスタンスにOCI CLIをインストールするなどの事前設定が必要となります。詳細は「2. 強制停止リソースの設定手順」に記載しているリファレンスガイドを参照ください。
Cluster WebUIを起動し「設定モード」から、クラスタのプロパティで強制停止リソースを登録します。
「フェンシング」タブを選択し、[強制停止]の[タイプ]のプルダウンから「OCI」を選択し、「プロパティ」をクリックします。
「サーバ一覧」タブで「server1」を選択し、「追加」をクリックします。
2.3 スクリプトを使った設定手順
カスタムの強制停止リソースは従来の強制停止スクリプトとは動作タイミングが異なるため、CLUSTERPRO X 4.3以前の環境で作成した強制停止スクリプトをそのまま利用することは基本的に出来ません。
以下で設定手順と設定のポイントについて解説します。
Cluster WebUIを起動し「設定モード」から、クラスタのプロパティで強制停止リソースを登録します。
「フェンシング」タブを選択し、[強制停止]の[タイプ]のプルダウンから「カスタム」を選択し、「プロパティ」をクリックします。
「サーバ一覧」タブで「server1」を選択し、「追加」をクリックします。
「強制停止」タブで強制停止実施時の最大待ち時間を「強制停止タイムアウト」として設定します。また強制停止に失敗した場合にフェイルオーバーさせたくない場合は「停止失敗時にグループのフェイルオーバを抑制する」にチェックを入れます。
今回はスクリプトをCLUSTERPROに登録する方法を紹介します。
サーバーの任意の場所に配置したスクリプトを指定する場合は、「ユーザアプリケーション」を選択し、スクリプトのパスを指定してください。
「スクリプト」タブで「forcestop.sh」を選択し、「編集」をクリックします。
今回はLinux版のスクリプト記述例を紹介します。
記述例では"ex-check-node"と"ex-stop-node"という架空のコマンドが登場しますが、それぞれ以下のようなコマンドを想定しています。
- ex-check-node:サーバーのステータスを基盤側に確認するコマンド
- ex-stop-node:サーバーの停止を基盤側に要求するコマンド
#! /bin/sh
#***************************************
#* forcestop.sh *
#***************************************
# 停止チェックの最大試行回数(秒)
CHECK_LOOP_MAX=240
if [ "${CLP_FORCESTOP_MODE}" = 0 ]; then
# 定期チェック時の動作
# 強制停止実行可否の確認(コマンド実行チェック)
ex-check-node
ret=$?
if [ ${ret} -ne 0 ]; then
# コマンド実行チェックの失敗
exit 1
fi
else
# 強制停止実行時の動作
# ダウンサーバーの強制停止
ex-stop-node --force --node ${CLP_SERVER_DOWN}
ret=$?
if [ ${ret} -ne 0 ]; then
# 強制停止処理の失敗
exit 2
fi
# 停止チェック
CHECK_LOOP_COUNT=0
while [ ${CHECK_LOOP_COUNT} -lt ${CHECK_LOOP_MAX} ]
do
ex-check-node --node ${CLP_SERVER_DOWN}
ret=$?
if [ ${ret} -eq 0 ]; then
# 停止を確認
break
fi
sleep 1
let CHECK_LOOP_COUNT=${CHECK_LOOP_COUNT}+1
done
if [ ${ret} -ne 0 ]; then
# 停止チェックのタイムアウト発生
exit 3
fi
fi
exit 0
3. サービス起動遅延時間の設定
これにより、強制停止リソース実行中に対向サーバーでOS再起動などが実行された場合に、両系活性が発生することや、クラスター起動処理中に強制停止が実行されることを防止します。
サービス起動遅延時間を以下となるように設定します。
サービス起動遅延時間 >= 強制停止リソースの強制停止タイムアウト + 強制停止リソースの停止完了待ち時間 + ハートビートタイムアウト + ハートビートインターバル
- ※カスタム強制停止リソースを利用する場合、強制停止リソースの停止完了待ち時間は0秒で計算します。
サービス起動遅延時間は、「クラスタのプロパティ」の「タイムアウト」タブにある[サービス起動遅延時間]で設定できます。
詳細については、【2024年版】サービス起動遅延時間設定機能の紹介も併せて参照ください。
まとめ
今回は、強制停止リソースとその設定手順についてご紹介しました。
従来の強制停止機能と強制停止スクリプトが強制停止リソースに一元化された事に加え、AWSとOCIの環境では、それぞれ専用の強制停止リソースが追加されたことにより、より簡単に設定することができるようになりました。
CLUSTERPRO Xのホームページからフル機能が使える試用版がダウンロードできますので、是非CLUSTERPRO X 5.0をお試しください。
お問い合わせ
- ※本記事で紹介しているスクリプトの内容についてのお問い合わせ、および、お客様環境に合わせたカスタマイズにつきましてはCLUSTERPRO導入支援サービスにて承っておりますので、上記窓口の"ご購入前のお問い合わせ"フォームまでお問い合わせください。