25.1 HAProxyを使用したPGXのロード・バランシングおよび高可用性の実現
HAProxyは、複数のWebサーバーで着信リクエストを多重化できる、高パフォーマンスのTCP/HTTPロード・バランサおよびプロキシ・サーバーです。
HAProxyをグラフ・サーバー(PGX)の複数のインスタンスとともに使用して、高可用性を実現できます。次の例では、OPG4Jシェルを使用してPGXに接続します。
次の手順では、グラフ・サーバー(PGX)の起動の説明に従って、グラフ・サーバー(PGX)がすでにインストールおよび構成されていることを前提としています。
- HAProxyがBig Data ApplianceまたはOracle Linuxディストリビューションにまだインストールされていない場合は、次のコマンドを実行します。
yum install haproxy
- グラフ・サーバー・インスタンスを起動します。
たとえば、Big Data Applianceの4つのノード(bda02、bda03、bda04、bda05など)の間でPGXをロード・バランシングする場合は、これらの各ノードでPGXを起動します。ポート7007で接続をリスニングするようにPGXを構成します。
- HAProxyを構成します。
- HAProxyをインストールしたホストの
/etc/haproxy
ディレクトリでhaproxy.cfg
ファイルを見つけます。 - 次のパラメータを使用してフロントエンド・セクションを追加します。
bind
: リスニングIPアドレスおよびポートを設定しますmode
:http
またはhttps
default_backend
: 使用するバックエンドの名前を設定します
たとえば、次のフロントエンド構成は、ポート
7008
でサーバーに割り当てられているすべてのIPアドレスでHTTP
トラフィックを受け取ります。frontend graph_server_front bind *:7008 mode http default_backend graph_server
- 次のパラメータを使用してバックエンド・セクションを追加します。
mode
:http
またはhttps
cookie
: セッション永続性に使用するCookieの名前server
: ロード・バランサの背後で実行されているサーバーのリスト
たとえば、次のバックエンド構成は
PGX_INSTANCE_STICKY_COOKIE
を使用します。backend graph_server mode http cookie PGX_INSTANCE_STICKY_COOKIE insert indirect nocache server graph_server_1 host_name_graph_server_1:port check cookie graph_server_1 # Notice that the name at the end must be the same as the server name server graph_server_2 host_name_graph_server_2:port check cookie graph_server_2 option httpchk GET /isReady http-check expect string true
前述の構成ファイルで、
option httpchk
句は、サーバーの準備状況を確認するようにロード・バランサに指示します。http-check
句は、サーバーが正常であり、追加のリクエストを処理できると判断するために、ロード・バランサにtrue
レスポンスが必要であることを指定します。サポートされているヘルス・チェック・エンドポイントは、ロード・バランサのヘルス・チェックを参照してください。
- HAProxyをインストールしたホストの
- ロード・バランサを起動します。
systemctl
を使用してHAProxyを起動します。sudo systemctl start haproxy
- ロード・バランサをテストします。
任意のホストから、HAProxyを実行しているサーバーのホストとポートをクライアント・シェルのCLIに
base_url
パラメータとして渡すことにより、HAProxyサーバーへの接続をテストできます。たとえば:cd /opt/oracle/graph ./bin/opg4j --base_url http://localhost:7008 -u <username>
ノート:
サーバーが停止すると、PGXインメモリー状態は失われます。HAProxyはコマンドを別のサーバーにルーティングしますが、クライアントはすべてのグラフ・データをリロードする必要があります。一連のPGXコマンドを実行してルーティングをテストすることをお薦めします。サーバーを停止し、グラフ・シェルのCLIを再起動して、HAProxyがリクエストを新しいサーバーにリダイレクトすることを確認します。