第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 のドキュメントを参照してください。