第5章 HAProxy の使用
HAProxy は、トラフィックの負荷を複数のコントローラーに分散することによって、OpenStack に高可用性機能を提供します。haproxy パッケージには、ロギング機能やサンプルの設定以外に、systemd サービスから起動される haproxy デーモンが含まれています。前述したように、Pacemaker は HAProxy サービス自体を高可用性サービスとして管理します (haproxy-clone)。
HAProxy の設定を検証する方法については、「How can I verify my haproxy.cfg is correctly configured to load balance openstack services?」の KCS ソリューションを参照してください。
Red Hat OpenStack Platform 8 では、director により複数の OpenStack サービスが haproxy サービスを有効活用できるように設定されます。これは /etc/haproxy/haproxy.cfg ファイルでこれらのサービスを設定することによって実現されます。このファイルのサービスごとに、以下の設定を確認できます。
- listen: 要求をリッスンするサービス名
- bind: サービスがリッスンする IP アドレスおよび TCP ポート番号
- server: サービスを提供する各サーバー名、サーバーの IP アドレス、リッスンするポート、その他の情報
director での Red Hat OpenStack Platform 7 のインストール時に作成される haproxy.cfg ファイルにより、HAProxy が管理する 19 の異なるサービスが特定されます。 haproxy.cfg ファイルでの ceilometer の listen サービスの設定例を以下に示します。
listen ceilometer bind 172.16.0.10:8777 bind 192.168.1.150:8777 server overcloud-controller-0 172.16.0.13:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.0.14:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.0.15:8777 check fall 5 inter 2000 rise 2
ceilometer サービスの HAProxy 設定に関するこの例では、ceilometer サービスを提供する (172.16.0.10 および 192.168.1.150 上のポート 8777) IP アドレスおよびポートが分かります。172.16.0.10 のアドレスは、オーバークラウド内で使用する、内部 API ネットワーク (VLAN201) 上の仮想 IP アドレスで、192.168.1.150 は、オーバークラウドの外部から API ネットワークにアクセスできるようにする、外部ネットワーク (VLAN100) の仮想 IP アドレスです。
HAProxy は、これらの 2 つのアドレスに対する要求を overcloud-controller-0 (172.16.0.13:8777)、overcloud-controller-1 (172.16.0.14:8777)、overcloud-controller-2 (172.16.0.15:8777) のいずれかに転送することができます。
これらのサーバーに設定されたオプションでは、ヘルスチェック (check) が有効になり、ヘルスチェックに 5 回失敗すると (fall 5)、サービスは停止されていると見なされます。ヘルスチェックの実行する間隔は、inter 2000 (2000 ミリ秒または 2 秒) に設定されます。また、ヘルスチェックに 2 回成功すると (rise 2)、サーバーは稼働していると見なされます。
コントローラーノードで HAProxy が管理するサービスの一覧を以下に示します。
表5.1 HAProxy が管理するサービス
ceilometer | cinder | glance_api | glance_registry |
haproxy.stats | heat_api | heat_cfn | heat_cloudwatch |
horizon | keystone_admin | keystone_public | mysql |
neutron | nova_ec2 | nova_metadata | nova_novncproxy |
5.1. HAProxy Stats
director により、HA デプロイメントではすべて、HAProxy Stats もデフォルトで有効になります。この機能により、データ転送、接続、サーバーの状態などについての詳細情報を HAProxy Stats のページで確認することができます。
また、director は、HAProxy Stats ページにアクセスするための IP:Port アドレスも設定します。このアドレスを確認するには、HAProxy がインストールされている任意のノードで /etc/haproxy/haproxy.cfg ファイルを開くと、listen haproxy.stats セクションにこの情報が記載されています。以下に例を示します。
listen haproxy.stats
bind 10.200.0.6:1993
mode http
stats enable
stats uri /
上記の場合には、HAProxy Stats を表示するには、Web ブラウザーでアドレスを 10.200.0.6:1993 に指定します。
5.2. 参考資料
HAProxy に関する詳しい情報は、「HAProxy の設定」 (『ロードバランサーの管理』)を参照してください。
haproxy.cfg ファイルで使用可能な設定に関する詳しい情報は、haproxy がインストールされている任意のシステム (例: コントローラーノードなど) の /usr/share/doc/haproxy-VERSION/configuration.txt のドキュメントを参照してください。
Comments