従来のロードバランス機能の課題

Vertica 9.2 の新機能として、接続ロードバランシングポリシーが追加されました。

従来のロードバランス機能は、データベースへのすべてのクライアント接続に対して単一のロードバランスしか設定することができませんでした。そのため以下図のような構成の場合、App Serverネットワークからの接続はロードバランスしますが、ETL Serverネットワークからの接続に対し、ロードバランスすることができませんでした。

従来のロードバランス設定



接続ロードバランシングポリシーでは、複数のロードバランス設定が行えるようになります。
そのため従来のロードバランス設定に比べてより柔軟に制御ができるようになりました。

接続ロードバランシングポリシーの設定(9.2新機能)


接続ロードバランシングポリシーの設定方法


ロードバランシングポリシーの構成

接続ロードバランシングポリシーは以下3つのオブジェクトより構成されます。
1.NETWORK ADDRESS
ノード上のIPアドレスとポート番号を紐づけたオブジェクト

2.LOAD BALANCE GROUP
複数のNETWORK ADDRESSをグループ化したオブジェクト

3.ROUTING RULE
LOAD BALANCE GROUPに対して接続元のネットワークセグメントを紐づけたオブジェクト


接続ロードバランシングポリシーの作成例



接続ロードバランシングポリシーを利用すれば、以下のような設定が可能です。
・アプリ接続を含めた一般的な接続は、ノードIPアドレス192.168.213.49~192.168.213.51でロードバランスを行う
・ETL処理が実行される内部ネットワーク(10.1.1.0/24)からの接続は、ノードIPアドレス10.1.1.81~10.1.1.83でロードバランスを行う


NETWORK ADDRESSの作成


NETWORK ADDRESSを作成し、ロードバランス対象のノードのIPアドレスとNETWORK ADDRESS名を紐付けます。


LOAD BALANCE GROUPの作成


NETWORK ADDRESSをグルーピングしたLOAD BALANCE GROUPを作成します。
ロードバランスはLOAD BALANCE GROUP単位で行われます。


ROUTING RULEの作成


LOAD BALANCE GROUPと接続元のIPアドレス(セグメント)を紐づけたROUTING RULEを作成します。



ロードバランスのテスト

DESCRIBE_LOAD_BALANCE_DECISION関数を利用することで、指定したIPアドレスから接続した際にどのROUTING RULEに基づいてロードバランスされるかをテストすることができます。


接続ロードバランシングポリシーの設定は以上です。

注意点

障害発生時に正常にロードバランスができないため、9.3以降でご利用いただくことを推奨します。

参考情報

About Connection Load Balancing Policies
https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/AdministratorsGuide/ManagingClientConnections/LoadBalancing/AboutConnectionLoadBalancingPolicies.htm

ロードバランスの概要
http://vertica-tech.ashisuto.co.jp/load-balance/

ロードバランスの設定方法
http://vertica-tech.ashisuto.co.jp/load-balance_configuration/

ロードバランスおよび接続時フェイルオーバー機能を使用したvsqlからの接続
http://vertica-tech.ashisuto.co.jp/vsql_lb_cf/

リカバリ中の「ロードバランス」と「接続時フェイルオーバー」の動作について
http://vertica-tech.ashisuto.co.jp/recovery_action/

検証バージョン

この記事の内容はVertica 9.3で確認しています。

更新履歴

2020/02/18 Vertica9.3の動作確認にともない、参考情報と検証バージョンを修正。障害発生時の注意点を追加
2019/06/14 本記事を公開