Linux WEB

Linux LVS 사용하기

2015.09.16 18:23

호스트웨이 조회 수:3043

개요

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 파일의 자세한 내용은 추후 다시 정리하여 올리도록 하겠습니다.

번호 제목 글쓴이 날짜 조회 수
43 PHP 컴파일시 /usr/bin/ld: cannot find -lltdl 오류 호스트웨이 2012.07.13 9629
42 [Apache] Image 관련 Log 남기지 않기 호스트웨이 2012.07.13 7666
41 PHP 업로드 파일 용량 제한 설정 호스트웨이 2012.07.06 8651
40 SSL config error 조치사항 호스트웨이 2012.06.29 8242
39 Apache2.4.x 버전 설치 호스트웨이 2012.06.22 20105
38 PHP-5.3 버전 이상에서 Deprecated 에러 발생시 처리 방법 호스트웨이 2012.06.22 11773
37 PHP 속도 향상을 위한 eAccelerator 설치 호스트웨이 2012.06.15 9701
36 ZendOptimizer 3.3.9 설치 file 호스트웨이 2012.06.01 14023
35 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 7573
34 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 8014
33 mod_GeoIP를 이용한 국가 IP 확인 및 국가별 접속 제한 호스트웨이 2012.05.04 13404
32 apache에서 cgi를 사용하기 위한 설정 방법 호스트웨이 2012.04.27 12496
31 Zend Guard Loader 설치 호스트웨이 2012.04.20 14415
30 PHP에서 MS-SQL 서버를 연동하기 위한 방법 호스트웨이 2012.04.13 20848
29 Linux log 분할 방법 (logrotate) 호스트웨이 2012.04.06 10546
28 APM 및 OS 버전 확인 하는 방법 호스트웨이 2012.03.30 11977
27 phpize를 이용하여 모듈 추가 file 호스트웨이 2012.03.15 13498
26 mod_rewrite 모듈 설치 및 기본 사용법 sylee 2009.07.02 30345
25 아파치2 에서 mod_cband 사용법 sylee 2009.06.05 21858
24 register_globals 옵션에 따른 변수 전달 jook 2009.02.19 21272