keepalived는 서비스의 가동 상태를 감시하는 소프트웨어로 서비스에 장애가 발생하여 정시했을 경우 그 서버로 오는 요청을 다른 가용 서버로 할당하도록 하여 서비스가 정지하지 않고 무정지 운영이 가능하도록 하는 기능을 가지고 있습니다.
환경
CentOS release 6.4
Link
설치
테스트를 위하여 두대의 서버가 필요합니다.
현재 최신 버전은 Version 1.2.13 이지만 yum을 통하여 두대의 서버에 동일하게 keepalived를 설치합니다.
1.2.7 버전이 설치 되네요.
$ yum install keepalived
keepalived 설정
설치된 설정 파일을 백업하고 수정합니다.
$ cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.org
$ vi /etc/keepalived/keepalived.conf
Master Server (172.16.120.172)
! Configuration File for keepalived global_defs { notification_email { # 메일 관련 기능은 생략 } } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 200 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { # 동일한 가상 IP 172.16.120.150 } }
Backup Server (172.16.120.173)
! Configuration File for keepalived global_defs { notification_email { # 메일 관련 기능은 생략 } } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { # 동일한 가상 IP 172.16.120.150 } }
서비스 시작
Master, Backup 서버에서 keepalived를 시작합니다.
$ /etc/init.d/keepalived start
동작확인
두 서버에서 설정한 가상 IP인 172.16.120.150로 요청을 보내게 되면
최초 MASTER 서버로만 요청이 가게 됩니다.
MASTER 서버를 정시하고 172.16.120.150로 요청을 하게 되면 Backup서버로 요청이 가게 됩니다.
간단한 테스트 방법으로는 제 3의 서버에서 172.16.120.150로 ping을 실행시켜 두고 Master, Backup 서버를 번갈아 가면 정지 기동 하여도 ping은 끊김없이 지속적으로 가는 것을 확인 할 수 있습니다.