Souce Install Keepalived on CentOS 7
Keepalived 소스 인스톨(컴파일) 설치 가이드
Keepalived 는 VRRP 프로토콜을 이용하는 대표적인 오픈소스 HA 솔루션 입니다. VIP (가상 IP)를 기반으로 동작하며, 서버를 모니터링 하다가 마스터 서버에 장애 발생 시 백업 서버로 페일오버를 해줍니다. 또한 마스터 서버가 복구 되면 다시 VIP 를 원래의 마스터 서버로 넘겨 줍니다.
가장 많이 사용되는 조합으로는 HAProxy 같은 소프트웨어 로드발란서가 있습니다. HAProxy 서버에 장애 발생 시 대기하고 있던 백업용 HAProxy 로 전환하기 위함입니다.
구성 목표
HAProxy 서버 두대를 FailOver 구성
HAProxy Master IP : 172.19.10.106
HAProxy BACKUP IP : 172.19.10.107
VIP : 172.19.10.105
모든 설치 과정은 Master / Backup 서버 모두 동일하며, 설정 파일의 내용만 일부 차이가 있습니다.
HAProxy 서버는 MASTER 용과 BACKUP 용 두 대를 미리 설치하여 동일하게 설정해 주시기 바랍니다.
설치
의존성 패키지 설치
[root@172-19-10-106 /]# yum install -y kernel-headers kernel-devel libnfnetlink-devel libnl-devel
[root@172-19-10-106 /]# cd /data/apps/dn [root@172-19-10-106 dn]# wget http://www.keepalived.org/software/keepalived-2.0.11.tar.gz
압축해제
[root@172-19-10-106 dn]# tar xvzf keepalived-2.0.11.tar.gz
컴파일 및 설치
[root@172-19-10-106 dn]# cd keepalived-2.0.11 [root@172-19-10-106 keepalived-2.0.11]# ./configure --prefix=/data/apps/src/keepalived-2.0.11 --with-kernel-dir=/lib/modules/$(uname -r)/build [root@172-19-10-106 keepalived-2.0.11]# make && make install
링크생성
[root@172-19-10-106 keepalived-2.0.11]# ln -s /data/apps/src/keepalived-2.0.11 /data/apps/ln/keepalived
sysconfig 설정 링크 및 편집
[root@172-19-10-106 keepalived-2.0.11]# ln -s /data/apps/ln/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
: vi /etc/sysconfig/keepalived
# Options for keepalived. See `keepalived --help' output and keepalived(8) and # keepalived.conf(5) man pages for a list of all options. Here are the most # common ones : # # --vrrp -P Only run with VRRP subsystem. # --check -C Only run with Health-checker subsystem. # --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop. # --dont-release-ipvs -I Dont remove IPVS topology on daemon stop. # --dump-conf -d Dump the configuration data. # --log-detail -D Detailed log messages. # --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON) # KEEPALIVED_OPTIONS="-D -S 3 -f /etc/keepalived/keepalived.conf"
설정 링크 및 편집
[root@172-19-10-106 keepalived-2.0.11]# ln -s /data/apps/ln/keepalived/etc/keepalived /etc/keepalived
: vi /etc/keepalived/keepalived.conf
마스터 서버의 설정 파일 입니다.
# MASTER 서버 config global_defs { router_id umount_HAProxy01 } vrrp_script chk_haproxy { script "/sbin/pidof haproxy" interval 5 weight 2 } vrrp_instance HAProxy { interface eth0 state MASTER virtual_router_id 51 priority 101 advert_int 1 authentication { auth_type PASS auth_pass A3BB833DD44CEFEA384E48C5A55C0A35 } unicast_peer { 172.19.10.107 } virtual_ipaddress { 172.19.10.105 } track_script { chk_haproxy } }
백업 서버의 설정 파일 입니다.
# BACKUP 서버 config global_defs { notification_email { fallboyz@umount.net } notification_email_from fallboyz@umount.net smtp_server localhost smtp_connect_timeout 30 router_id umount_HAProxy02 } vrrp_script chk_haproxy { script "/sbin/pidof haproxy" interval 5 weight 2 } vrrp_instance HAProxy { interface eth0 state SLAVE virtual_router_id 51 smtp_alert priority 100 advert_int 1 authentication { auth_type PASS auth_pass A3BB833DD44CEFEA384E48C5A55C0A35 } unicast_peer { 172.19.10.106 } virtual_ipaddress { 172.19.10.105 } track_script { chk_haproxy } }
systemd 파일생성
: vi /etc/systemd/system/keepalived.service
[Unit] Description=LVS and VRRP High Availability Monitor After= network-online.target syslog.target Wants=network-online.target [Service] Type=forking PIDFile=/var/run/keepalived.pid KillMode=process EnvironmentFile=-/etc/sysconfig/keepalived ExecStart=/data/apps/ln/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
systemd 등록 및 실행
[root@172-19-10-106 keepalived-2.0.11]# systemctl enable keepalived [root@172-19-10-106 keepalived-2.0.11]# systemctl start keepalived