Once in a Lifetime

05. Redis - Keepalived 를 이용한 HaProxy 이중화 본문

Develope Diary

05. Redis - Keepalived 를 이용한 HaProxy 이중화

riceworld 2016. 5. 13. 08:08

HaProxy 를 이용하여 Master / Slave 의 포워딩을 구성하였으나, HaProxy 서버가 다운 되었을 경우를 대비해 HaProxy 를 이중화하고 이를 가상 IP 로 바인딩 시켜주기 위해 Keepalived 를 이용해 보겠습니다.


Keepalived 설치


yum -y install keepalived


PsMisc 설치


yum -y install psmisc


Non-LocalIP 커널 바인딩 허용


echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf

sysctl -p


Keepalived 설정 (Master 측)


global_defs {

    lvs_id haproxy_DH

}


vrrp_script check_haproxy {

    script "killall -0 haproxy"

    interval 2

}


vrrp_instance VI_01 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 101

    virtual_ipaddress {

        192.168.81.150

    }

    track_script {

        check_haproxy

    }

}


Keepalived 설정 (Backup 측)


global_defs {

    lvs_id haproxy_DH_passive

}


vrrp_script check_haproxy {

    script "killall -0 haproxy"

    interval 2

}


vrrp_instance VI_01 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 100

    virtual_ipaddress {

        192.168.81.150

    }

    track_script {

        check_haproxy

    }

}



Keepalived 방화벽 추가


firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT

firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT

firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT

firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p eth0 -o ens160 -j ACCEPT

firewall-cmd --reload


Keepalived 로그 경로


cat /var/log/messages


Comments