Ubuntu 16.04
Sponsored Link

HAProxy : レイヤー4モードでの負荷分散
2016/06/07
 
レイヤー4モードでの負荷分散の設定です。
例として、2台の MariaDB バックエンドへ負荷分散するように設定します。
       |
-------+-----------------------------------------------
       |
       +-------------------+--------------------+
       |10.0.0.30          |10.0.0.51           |10.0.0.52
 +-----+-----+     +-------+------+     +-------+------+
 | Frontend  |     |   Backend#1  |     |   Backend#2  |
 |  HAProxy  |     |    MariaDB   |     |    MariaDB   |
 +-----------+     +--------------+     +--------------+

[1] HAProxy の設定です。
root@dlp:~#
vi /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     256
    user        haproxy
    group       haproxy
    daemon

defaults
      # mode tcp でレイヤー4モード

    mode               tcp
    log                global
    timeout connect    10s
    timeout client     30s
    timeout server     30s

# frontend, backend に MariaDB サーバーを指定

frontend  mysql-in
    bind *:3306
    default_backend    backend_servers

backend backend_servers
    balance            roundrobin
    server             db01 10.0.0.51:3306 check
    server             db02 10.0.0.52:3306 check

root@dlp:~#
systemctl restart haproxy

[2] 任意のクライアントから、HAProxy サーバー宛てに MariaDB サーバーへ接続し、正常に負荷分散されるか確認してください。 以下の例では、MariaDB サーバーの keystone データベースへ keystone ユーザーで接続し、table01 を select しています。 接続するたびにバックエンドが切り替わり、正常に負荷分散できていることが分かります。
root@desktop:~#
mysql -u keystone -p -h 10.0.0.30 keystone -e "select * from table01;"

Enter password:
+------+-------------------+
| id   | name              |
+------+-------------------+
|    1 | db01.srv.world    |
+------+-------------------+

root@desktop:~#
mysql -u keystone -p -h 10.0.0.30 keystone -e "select * from table01;"

Enter password:
+------+-------------------+
| id   | name              |
+------+-------------------+
|    1 | db02.srv.world    |
+------+-------------------+
 
Tweet