4.16 HAProxyを使用したPGXのロード・バランシングおよび高可用性の実現
HAProxyは、複数のWebサーバーで着信リクエストを多重化できる、高パフォーマンスのTCP/HTTPロード・バランサおよびプロキシ・サーバーです。
HAProxyをインメモリー分析サーバー(PGX)の複数のインスタンスとともに使用して、高可用性を実現できます。次の例では、opgシェルを使用してPGXに接続します。
次の手順では、インメモリー・グラフ・サーバー(PGX)の起動の説明に従って、インメモリー・アナリスト・サーバーがすでにインストールおよび構成されていることを前提としています。
- HAProxyがBig Data ApplianceまたはOracle Linuxディストリビューションにまだインストールされていない場合は、次のコマンドを実行します。
yum install haproxy
- PGXサーバーを起動します。
たとえば、Big Data Applianceの4つのノード(bda02、bda03、bda04、bda05など)の間でPGXをロード・バランシングする場合は、これらの各ノードでPGXを起動します。ポート7007で接続をリスニングするようにPGXを構成します。
- HAProxyを構成します。
この例では、ホストbda01で実行し、ポート8888で着信接続をリスニングするようにHAProxyを構成します。ホストbda01に、次の内容を含む新しいファイル
haproxy.cfg
を作成します。global maxconn 50000 log /dev/log local0 defaults mode http option httplog log global option forwardfor timeout connect 5s timeout client 5s timeout server 5s balance source hash-type consistent listen www bind :8888 server web1 bda02:7007 check server web2 bda03:7007 check server web3 bda04:7007 check server web4 bda05:7007 check
balance source
を指定すると、クライアントのIPアドレスが対応するサーバーのIPアドレスにマップされます。PGXサーバーは分析セッション中にセッションの固定性に依存するため、これは重要です。(HAProxyの構成の詳細は、HAProxy公式ドキュメントを参照してください。) - ロード・バランサを起動します。
前のステップで作成した構成ファイルを渡すことによって、bda01でHAProxyを起動します。
haproxy -f haproxy.cfg
- ロード・バランサをテストします。
任意のホストから、HAProxyを実行しているサーバーのホストとポートをopgクライアント・シェルにbase_urlパラメータとして渡すことにより、HAProxyサーバーへの接続をテストできます。次に例を示します。
cd /opt/oracle/oracle-spatial-graph/property_graph ./bin/opg --base_url http://bda01:8888
ノート:
サーバーが停止すると、PGXインメモリー状態は失われます。HAProxyはコマンドを別のサーバーにルーティングしますが、クライアントはすべてのグラフ・データをリロードする必要があります。一連のPGXコマンドを実行してセッション・アフィニティをテストすることをお薦めします。サーバーを強制終了し、opgシェルを再起動して、HAProxyがリクエストを新しいサーバーにリダイレクトすることを確認します。
親トピック: インメモリー・グラフ・サーバー(PGX)の使用