LB Health Check Kit は、特定のリソースが現在In-Serviceのクラスターノードにロードバランサートラフィックをルーティングするために、LifeKeeperリソース階層の一部として使用できます。これは、リソースがIn-Serviceのクラスターノード上の、ユーザー指定のTCPポートでリスナーを維持することで使用できます。

フロントエンドIPリソースの作成

IP 転送を無効にしたGoogle Cloudロードバランサーを使用する場合( Google Cloud – 内部ロードバランサーの使用 の「IP転送を無効にする」セクションを参照)、ロードバランサーのフロントエンドに関連付けられたIPアドレスを、ネットワークマスク/32(255.255.255.255に相当)を使用して各バックエンドサーバーのローカルネットワークインターフェースに追加する必要があります。これらの構成では、ロードバランサーのフロントエンドIPアドレスは、クラウドエージェントプロセスによってネットワークインターフェースに自動的に追加されません。代わりに、各バックエンドサーバーのゲストオペレーティングシステム内で手動で追加する必要があります。これを実現する最も簡単な方法は、ロードバランサーのフロントエンドIPアドレスごとに、LifeKeeper IPリソースを作成し、次のセクションで作成するLB Health Checkリソースの依存関係として追加することです。

IPリソースの作成 の手順に従って、次のパラメーターを使用して、ロードバランサーの各フロントエンドIPアドレスにIPリソースを作成および拡張します。

フィールド
Create Resource ウィザード
Switchback Type intelligent
Server node-a
IP Resource <Frontend IP Address>
Netmask 255.255.255.255
Network Interface <Network Interface>
IP Resource Tag <Resource Tag>
Pre-Extend ウィザード
Target Server node-b
Switchback Type intelligent
Template Priority 1
Target Priority 10
Extend comm/ip Resource Hierarchy ウィザード
IP Resource <Frontend IP Address>
Netmask 255.255.255.255
Network Interface <Network Interface>
IP Resource Tag <Resource Tag>

ロードバランサーのフロントエンドIPアドレスごとにIPリソースが作成されたため、ロードバランサーのヘルスチェックプローブに応答するLB Health Checkリソースを作成できます。

LB Health Checkリソースの作成

この例では、TCPポート54321でListenするサーバーnode-a上にサンプルのLB Health Checkリソースを作成します。

  1. LifeKeeper Web Management Consoleで、“Operations“ドロップダウンをクリックし、ドロップダウンから“Create Resource Hierarchy“をクリックして“Create Resource“画面を開きます。“Server”で対象のプライマリーノードを選択し、Application Recovery Kitで“LB Health Check”を選択します。

  1. プロンプトが表示されたら使用する“Reply Daemon Port”を入力し、“Next”をクリックします。

  1. リソース作成ウィザードに以下の値を入力し、プロンプトが表示されたら“Create“をクリックします。 アイコンは、デフォルトのオプションが選択されていることを示します。
フィールド
Reply daemon message None (Empty)
LB Health Check Resource Tag lbhc-54321
Switchback Type Intelligent

リソースが作成され、正常にサービスが開始されたら、“Next“をクリックして確認画面に進みます。準備ができたら、“Execute“をクリックします。

  1. リソースの作成と復元が完了したら、“Extend Resource Hierarchy”ボタンを選択します。
  1. “Extend Resource Hierarchy“画面に以下の値を入力してください。 アイコンは、デフォルトのオプションが選択されていることを示します。
フィールド
Target Server node-a
Template Priority 1
Target Server node-b
Target Priority 10

事前拡張チェックに合格したら、“Next“をクリックして、Extend Resource Hierarchyウィザードに進みます。

  1. “Additional Settings”画面で、スイッチバックタイプとして“Intelligent”を選択し、“Next”をクリックします。

  1. “Confirm”画面で選択したオプションを確認し、続行する準備ができたら“Execute”を選択します。

  1. “Close”をクリックして、LifeKeeper Web Managementコンソールに戻ります。
  1. LifeKeeper Web Managementコンソールに戻ると、新しく作成されたlbhc-54321リソースがノードaでアクティブ、ノードbでスタンバイになっていることがわかります。この状態では、ポート54321でTCPヘルスチェックを実行するTCPロードバランサーは、ノードaを正常、ノードbを異常とみなし、すべてのロードバランサートラフィックをノードaにルーティングします。このリソースを保護対象アプリケーションと同じリソース階層に配置すると、ロードバランサートラフィックは常にアプリケーションが現在実行されているサーバーにルーティングされます。

LB Health Checkリソースの依存関係としてフロントエンドIPリソースを追加する

IP転送を無効にしてGoogle Cloudロードバランサーを使用する場合 ( Google Cloud – 内部ロードバランサーの使用 IPアドレスを保護するIPリソース(ネットワークマスク 255.255.255.255 を使用)は、LB Health Checkリソースの依存関係として追加する必要があります。上記の「フロントエンドIPリソースの作成」セクションで作成したIPリソースごとに、次の手順を実行します。

  1. ilb-test-54321リソースを右クリックし、ドロップダウンメニューから“Create Dependency…“を選択します。
  1. 子リソースタグにロードバランサーのフロントエンドIPアドレスを保護するリソースを指定します。
  1. “Next“をクリックして続行し、 “Create Dependency“をクリックして依存関係を作成します。

IP リソースが依存関係として追加されると、階層は次のようになります

LB Health Checkリソースのスイッチオーバーとフェイルオーバーをテストする

このセクションでは、node-aとnode-bをバックエンドターゲットとして使用し、次のプロパティを持つ内部ロードバランサーを作成していると想定します。

  • フロントエンド内部 IP:10.20.0.10
  • ポート54321でのTCPヘルスチェック

また、前のセクションで作成した“ilb-test-54321” LB Health Checkリソースは、現在node-aでアクティブになっているとします。

便宜上、各サーバーのホスト名を返すだけの一時的な Apache Webサーバーをセットアップします。 node-aとnode-bの両方 で次のコマンドを実行します。SLESサーバーにインストールする場合は、コマンドを適宜調整してください(例:zypper installを使用)。

# yum install -y httpd
# systemctl start httpd
# echo $(hostname) > /var/www/html/index.html

続行する前に、node-aおよびnode-bのTCPポート80でトラフィックが許可されていることを確認してください。

次に、ilb-test-54321 LB Health Checkリソースのスイッチオーバーおよびフェイルオーバー機能をテストします。

  1. ilb-test-54321リソースがnode-aでアクティブでnode-bでスタンバイの場合、各サーバーで次のコマンドの出力を確認します。
[root@node-a ~]# curl http://10.20.0.10
node-a
[root@node-b ~]# curl http://10.20.0.10
node-a
  1. node-aで以下のコマンドを実行します。

[root@node-a ~]# while true; do curl http://10.20.0.10; sleep 1; done

そして、 ilb-test-54321リソースのnode-bへのスイッチオーバーを開始します。スイッチオーバーが正常に完了したら、Ctrl-C(SIGINT)を使用して、node-aで実行中のコマンドを終了させます。

コマンドの出力は次のようになります。


node-a
node-a
node-a
[switchover occurs]
node-b
node-b
node-b

特に、ロードバランサーは、node-bへのルーティングを開始する前に、node-aへのトラフィックのルーティングを完全に停止する必要があります。スイッチオーバーポイント付近の出力が次のようになっている場合:


node-a
[switchover occurs]
node-b
node-a
node-b
node-a
node-b
node-a
node-b
node-b
node-b

ヘルスチェックのプロパティを編集して、バックエンドインスタンスが異常と判定されてロードバランサープールから削除される前に、ヘルスチェックスローブ間の時間を短くしたり、ヘルスチェックスローブの失敗の最小回数を減らしたりする必要がある場合があります。詳しくは、「ロードバランサーのヘルスチェックパラメーターのチューニング」のセクションを参照してください。

  1. node-bでilb-test-54321リソースがアクティブになっている状態で、node-aで次のコマンドを実行します。

[root@node-a ~]# while true; do curl http://10.20.0.10; sleep 1; done

node-bを強制的に再起動して、ilb-test-54321リソースのnode-aへのフェイルオーバーを開始します。

[root@node-b ~]# echo b > /proc/sysrq-trigger

フェイルオーバーが正常に終了したら,Ctrl-C(SIGINT)でnode-a上の実行中のコマンドを終了させます。

node-aでのコマンドの出力は以下のようなものになります。


node-b
node-b
node-b
[failover occurs]
node-a
node-a
node-a

この時点で、LB Health Checkリソースの動作の基本的な検証は完了です。必要に応じて追加のテストを実行し、スイッチオーバーやフェイルオーバー時のLB Health Checkリソースと保護対象のアプリケーション間の相互作用を検証します。LB Health Checkリソースの機能テストが終了したら、node-aとnode-bの両方で次のコマンドを実行して、一時的なApache Webサーバーを削除することができます。

# systemctl stop httpd
# rm -f /var/www/html/index.html
# yum remove -y httpd

ロードバランサーヘルスチェックパラメーターのチューニング

ロードバランサーヘルスチェックパラメーターのチューニング をご覧ください。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信