1. インターナルロードバランサー(ILB)の導入

Azure では [IP リソースが保護する VIP] を Azure の VNET で認識する事が出来ません。この影響で、通常 LifeKeeper for Linux が想定している [IP リソースが保護する VIP] によるネットワーク通信を行うことが出来ません。その為 LifeKeeper では、以下の様に ILB の導入を行い、[ILB が設定する VIP] をネットワーク通信経路として設定します。

① Oracle Client が Oracle Listener へ接続する為、10.3.1.200(port1521)への接続を ILB 経由で開始します。
ILB に負荷分散先(backend pool) に 10.3.1.11(稼働系ノード:lk4lnode01)と 10.3.1.12(待機系ノード:lk4lnode02) が 登録されています。ILBは各ノードに対して正常性プローブによる監視を行い、ポートがオープンになっているノードを確認して、受け取ったOracle Listener宛のパケットを転送します。正常性プローブへの応答には LB Health Check リソースを使用します。

③ LifeKeeperの仕様上Oracle Listenerリソースは[IPリソースが保護するVIP]を指定する必要があります。その為、受信用にIPリソースを作成します。稼働系のIPリソースがIn-Serviceになっているため、10.3.1.200宛のリクエストを受け取ります。
④ 結果として Oracle Client からの接続要求は稼働系の Oracle Listener(10.3.1.200:port1521)が受け取ります。

アドレス変換

LifeKeeper では、IP リソースの監視処理に外部ホストへの PING を使用しますが、Azure の仕様上、仮想 IP を送信元とする PING 処理は行えません。その為、以下のようにパケットの送信元情報を変更する設定を行うことで、PING 処理を有効にし、外部ホスト間とのネットワークの障害を検出可能にします。

① IP リソースから IP リソースで保護する VIP をソースとして指定した PING を開始します。
PING の送信元アドレスを、10.3.1.200 (IP リソースで保護する VIP) から10.3.1.11 (Azure のプライベート IP アドレス) に置き換えます。
➂ ソース置き換え後、PING の送信先にパケットを送信します。[Azure のプライベート IP アドレス] に置き換えられる事で、ネットワークが正常であれば応答が返ります。

Quorum / Witness の導入

Azure 環境上では、クラスターの共有ディスクの代替として DataKeeper によるレプリケーションディスクを使用します。DataKeeper を使用したクラスターでは、コミュニケーションパスが全断するようなネットワークの障害が発生した際、その仕組み上スプリットブレイン状態になる可能性があります。これを回避するため、Quorum / Witness 機能による I/O Fencing を設定してください。

LifeKeeper for Linux Quorum Check/Witness Server 機能利用ガイド
https://sios.jp/products/lkdk/product/pdf/lifekeeper_quorum-whitness.pdf
また、以下のテクニカルドキュメンテーションをご参照ください。
https://docs.us.sios.com/spslinux/9.5.2/ja/topic/quorum-witness

フィードバック

フィードバックありがとうございました

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

送信