24.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またはhttpsdefault_backend: 使用するバックエンドの名前を設定します
たとえば、次のフロントエンド構成は、ポート
7008でサーバーに割り当てられているすべてのIPアドレスでHTTPトラフィックを受け取ります。frontend graph_server_front bind *:7008 mode http default_backend graph_server - 次のパラメータを使用してバックエンド・セクションを追加します。
mode:httpまたはhttpscookie: セッション永続性に使用する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がリクエストを新しいサーバーにリダイレクトすることを確認します。