2015.09.16 18:23
개요
LVS(Linux Virtual Server)
한대의 서버로 운영하기 힘들경우 서버를 추가하여 접속자를 Load Balanceing 하여 운영하는 시스템 입니다.
Load Balanceing 하는 방법은 L4 스위치사용, DNS 라운드로빈등 여러 방법이 있으며, 여기서는 IPVSADM + Keepalived 를 이용하여 구축 해보겠습니다.
1. 시스템구성
OS : CentOS 6.7 64bit
VIP : 192.168.137.2
WEB서버 1 : 192.168.137.3
WEB서버 2 : 192.168.137.4
2. IPVSADM 설치 과정
- ipvsadm 설치
yum install ipvsadm -y =============================================================================================================== Package Arch Version Repository Size =============================================================================================================== Installing: ipvsadm x86_64 1.26-4.el6 base 42 k Installing for dependencies: libnl x86_64 1.1.4-2.el6 base 121 k Transaction Summary =============================================================================================================== Install 2 Package(s) Total download size: 162 k Installed size: 431 k Downloading Packages: (1/2): ipvsadm-1.26-4.el6.x86_64.rpm | 42 kB 00:00 (2/2): libnl-1.1.4-2.el6.x86_64.rpm | 121 kB 00:00 ----------------------------------------------------------------------------------------------------------------------------------- Total 49 kB/s | 162 kB 00:03 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : libnl-1.1.4-2.el6.x86_64 1/2 Installing : ipvsadm-1.26-4.el6.x86_64 2/2 Verifying : ipvsadm-1.26-4.el6.x86_64 1/2 Verifying : libnl-1.1.4-2.el6.x86_64 2/2 Installed: ipvsadm.x86_64 0:1.26-4.el6 Dependency Installed: libnl.x86_64 0:1.1.4-2.el6 Complete! |
- 가상 VIP Ethernet 설정 (WEB서버 1, WEB서버 2 동일설치)
- 가상 VIP Ethernet 설정 vi /etc/sysconfig/network-scripts/ifcfg-eth0:1 DEVICE=eth0:1 BOOTPROTO=static IPADDR=192.168.137.2 ONBOOT=yes |
- Load Balance 사용하기 위한 설정
vi /etc/sysctl.conf # Controls source route verification net.ipv4.conf.default.rp_filter = 0 위의 0 부분을 1로 변경 한후 저장 sysctl -p net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 |
3. KeepAlived 설치 및 설정
- 설치
yum install keepalived -y |
- 설정
vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { ywc@hostway.co.kr } notification_email_from ywc@hostway.co.kr smtp_server localhost smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance LVS { state Slave interface eth0 virtual_router_id 10 priority 50 advert_int 1 } virtual_server 192.168.137.2 80 { delay_loop 6 lb_algo rr lb_kind DR protocol TCP real_server 192.168.137.3 80 { TCP_CHECK { connect_timeout 3 } } real_server 192.168.137.4 80 { TCP_CHECK { connect_timeout 3 } } } |
4. 실행 및 실행 모니터링
- 데몬 실행 등록
chkconfig ipvsadm on
chkconfig keepalived on
- 2번에서 설정한 eth0:1 up
ifup eth0:1 up
- 데몬 재실행
/etc/init.d/ipvsadm restart
/etc/init.d/keepalived restart
- 실행 모니터링
위에 설정한 VIP : 192.168.137.2로 웹페이지 호출
[root@TEST01 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.137.2:http rr
-> 192.168.137.3:http Local 1 0 0
-> 192.168.137.4:http Route 1 0 0
VIP 192.168.137.2 로 접속시 WEB서버 1, WEB서버 2로 Load Balanceing 되는것을 확인 할 수 있습니다.
이 중에 WEB서버 1에서 WEB 데몬이 Down 되었을 시에는 자동으로 WEB서버 2에서 서비스가 가능합니다.
[root@TEST01 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.137.2:http rr
-> 192.168.137.4:http Route 1 0 2
위와 같이 서비스 순단없이 넘어 갈 수 있습니다.
keepalived.conf 파일의 자세한 내용은 추후 다시 정리하여 올리도록 하겠습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
23 | http://도메인/~계정으로 접근하기 | sylee | 2008.05.15 | 23080 |
22 | Apache2.4.x 버전 설치 | 호스트웨이 | 2012.06.22 | 23694 |
21 | APM 설치 | 호스트웨이 | 2008.05.19 | 23789 |
20 | 업로드 디렉토리의 .php파일을 text처럼 인식하기 | sylee | 2008.05.15 | 24148 |
19 | 아파치2 에서 mod_cband 사용법 | sylee | 2009.06.05 | 24556 |
18 | PHP에서 MS-SQL 서버를 연동하기 위한 방법 | 호스트웨이 | 2012.04.13 | 25308 |
17 | apache 가상호스트(virtualhost) 사용하기 | 호스트웨이 | 2013.06.03 | 25684 |
16 | 아파치와 tomcat 연동 | 호스트웨이 | 2008.07.01 | 25717 |
15 | 아파치 가상 호스트 설정 해보기 | sylee | 2008.05.20 | 25831 |
14 | 보안을 위한 php.ini 설정 | HOSTWAY | 2008.07.31 | 26384 |
13 | Apache event MPM, Prefork MPM, Worker MPM 방식의 차이점 및 설치 시 설정 방법 | 호스트웨이 | 2014.07.20 | 26699 |
12 | 웹 계정 추가 스크립트 | jook | 2008.07.01 | 27229 |
11 | php.ini 옵션 중 short_open_tag | jook | 2009.02.12 | 27349 |
10 | 보안 서버 구축 - TOMCAT | 호스트웨이 | 2008.07.08 | 27540 |
9 | ab 사용방법 | sylee | 2008.05.15 | 28901 |
8 | 홈페이지 포워딩 하기 | jook | 2008.05.21 | 30779 |
7 | 아파치 에러 코드 | sylee | 2008.05.15 | 30922 |
6 | 웹브라우저에서 디렉토리 리스트가 보일때 | hostway | 2008.05.14 | 31118 |
5 | apache + resin 연동하여 설치하기 | 호스트웨이 | 2008.05.19 | 32940 |
4 | register_globals 옵션에 따른 변수 전달 | jook | 2009.02.19 | 34723 |