시스템/리눅스 서버

MariaDB Galera Cluster + HAProxy 구성 (CentOS6.6)

판베 2015. 6. 1. 14:15

이전 포스트에서 MariaDB Galera Cluster 설치에 대한 부분은 진행되었지만 그대로 사용한다면 Active/Active 가 아닌 그냥 A/S 형태나 Master/Slave 형태로만 사용할 수 밖에 없습니다.

 

HAProxy를 이용한 이중 Master 를 진행하여 보고자 합니다.

 

1. HAProxy를 설치하여 봅시다.

CentOS6.5 버전 기준으로 yum으로 설치할 경우 1.4 버전의 HAProxy를 설치할 수 있습니다. 특별히 문제가 있는 버전은 아니니 Yum으로 설치를 진행하여도 무방합니다.

(1.4 버전은 SSL기능이 없습니다. 1.5 버전과 특별하게 다른 부분을 찾기가 어려웠습니다.)

 

1-1. Yum으로 HAProxy 설치

 # sudo yum install haproxy

 

1-2. HAProxy 소스 설치

# wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.6.tar.gz
# tar xvfz haproxy-1.5.6.tar.gz
# cd haproxy-1.5.6
# make TARGET=linux26 ARCH=x86_64
# make install
# cd examples
# cp haproxy.init /etc/rc.d/init.d/haproxy

# cd ..
# chmod 755 /etc/rc.d/init.d/haproxy
# mkdir -p /etc/haproxy/
# cp examples/haproxy.cfg /etc/haproxy/
# mkdir -p /etc/haproxy/errors/
# cp examples/errorfiles/* /etc/haproxy/errors/
# cd /usr/sbin
# ln -s /usr/local/sbin/haproxy haproxy
# vi /etc/haproxy/haproxy.cfg

 

2. HAProxy 환경 설정

global
    log                       127.0.0.1 local2
    chroot                  /var/lib/haproxy
    pidfile                   /var/run/haproxy.pid
    maxconn              4096
    user                    haproxy
    group                  haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    option                   dontlognull
    option                   redispatch
    retries                   3
    timeout queue           1m
    timeout connect         300000ms
    timeout client            300000ms
    timeout server           300000ms
    timeout check            30s

 

listen Mariadb-Galera-Cluster 0.0.0.0:3306
   mode    tcp
   balance   roundrobin
   maxconn 20000
   option  tcpka
   option  tcplog
   option  mysql-check user HAProxy

   server  db1 마리아DB1 IP:3306 maxconn 10000 check port 3306 inter 2000 fall 2 rise 3 weight 1
   server  db2 마리아DB2 IP:3306 maxconn 10000 check port 3306 inter 2000 fall 2 rise 3 weight 1

 

 

option  mysql-check user HAProxy을 위해서 추가적으로 양쪽 MariaDB에 HAProxy라는 계정을 넣어주어야 합니다. HAProxy에서 직접 로그인을 해보고 FailOver 기준을 삼는 옵션이기 때문에 계정을 넣지 않으면 양쪽 서버 Down으로 인식하고 접속이 되지 않습니다. 패스워드를 넣으면 안되기 때문에 보안에 신경 써서 특정 IP만 접속 가능하게 추가하시면 됩니다.