IPVS 이용한 Load Balancer
IPVS 기능은 ipvsadm, keepalived 를 사용하여 구축한다.
전체적인 구성은 다음 그림과 같다.
1. Load Balancer 서버에 설치 하는 내역은 다음과 같다.
ipvsadm, keepalived 설치이다. 설치 진행 내역은 다음과 같다. 참고로 현재 keepalived 최신 버전은 1.2.2 이나
설치시 버그가 나는 관계로 1.2.1 버전을 사용하였다.
[root@Keep-LB keepalived]# yum -y install ipvsadm [root@Keep-LB keepalived]# yum -y install kernel-headers kernel-devel [root@Keep-LB keepalived]# wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz [root@Keep-LB keepalived]# ./configure --with-kernel-dir=/lib/modules/$(uname -r)/build [root@Keep-LB keepalived]# make && make install [root@Keep-LB keepalived]# cd /etc/sysconfig
virtual_server group example { real_server 10.0.0.249 80 { real_server 10.0.0.248 80 { [root@Keep-LB keepalived]# vi /etc/sysctl.conf |
2. WEB 서버 2대에 대하여 다음과 같은 설정을 진행한다.
서버의 기본 GateWay를 10.0.0.251로 변경한다.
헬스 체크 페이지를 만든다. -> path /health.html 라고 설정되어 있으므로 health.html 이라는 페이지를 만들어 준다.
작동 확인용 기본 페이지를 만든다. -> index.html 페이지를 생성하여 각 각의 서버를 구분할수 있게 한다.
마지막으로 /etc/sysctl.conf 파일의 내용 중 net.ipv4.ip_forward = 0 찾아서 net.ipv4.ip_forward = 1 로 변경 해준다.
그리고 변경 값의 적용을 위하여 sysctl -p 명령을 사용하여 적용 한다.
물론 두대의 웹서버에는 기보적으로 웹서버가 설치되어 구동되어야 한다.
이제 전체 구성이 완료 되었다. Load Balancer 서버에서 전체 구성의 확인을 하고 실제 동작 여부를 테스트 하면 된다.
ipvsadm 을 이용해 구성을 확인 한 것이다. [root@Keep-LB ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.25.9:80 rr -> 10.0.0.248:80 Masq 1 0 0 -> 10.0.0.249:80 Masq 1 0 0 로그 파일을 확인 하여 keepalived 정상 작동을 확인 한다. [root@Keep-LB ~]# tailf /var/log/messages | grep Keepalived_healthcheckers Feb 24 15:39:13 Keep-LB Keepalived_healthcheckers: Netlink reflector reports IP 192.168.25.9 added Feb 25 07:31:27 Keep-LB Keepalived_healthcheckers: Terminating Healthchecker child process on signal Feb 25 07:31:27 Keep-LB Keepalived_healthcheckers: Terminating Healthchecker child process on signal Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Netlink reflector reports IP 192.168.25.9 added Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.251 added Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.251 added Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Registering Kernel netlink reflector Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Registering Kernel netlink command channel Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'. Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Configuration is using : 14268 Bytes Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Using LinkWatch kernel netlink reflector... Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Activating healtchecker for service [10.0.0.249:80] Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Activating healtchecker for service [10.0.0.248:80] Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'. Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Configuration is using : 14268 Bytes Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Using LinkWatch kernel netlink reflector... Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Activating healtchecker for service [10.0.0.249:80] Feb 25 07:31:28 Keep-LB Keepalived_healthcheckers: Activating healtchecker for service [10.0.0.248:80] |