Linux WEB

Linux LVS 사용하기

2015.09.16 18:23

호스트웨이 조회 수:3048

개요

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

번호 제목 글쓴이 날짜 조회 수
63 Debian 에서 mod_rewrite 활성화 하기 jook 2008.12.12 18386
62 Debian에서 apm 설치할때의 패키지 목록 jook 2008.12.27 18901
61 php.ini 옵션 중 short_open_tag jook 2009.02.12 25288
60 register_globals 옵션에 따른 변수 전달 jook 2009.02.19 21273
59 아파치2 에서 mod_cband 사용법 sylee 2009.06.05 21863
58 mod_rewrite 모듈 설치 및 기본 사용법 sylee 2009.07.02 30352
57 phpize를 이용하여 모듈 추가 file 호스트웨이 2012.03.15 13501
56 APM 및 OS 버전 확인 하는 방법 호스트웨이 2012.03.30 11979
55 Linux log 분할 방법 (logrotate) 호스트웨이 2012.04.06 10548
54 PHP에서 MS-SQL 서버를 연동하기 위한 방법 호스트웨이 2012.04.13 20863
53 Zend Guard Loader 설치 호스트웨이 2012.04.20 14419
52 apache에서 cgi를 사용하기 위한 설정 방법 호스트웨이 2012.04.27 12499
51 mod_GeoIP를 이용한 국가 IP 확인 및 국가별 접속 제한 호스트웨이 2012.05.04 13411
50 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 8017
49 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 7573
48 ZendOptimizer 3.3.9 설치 file 호스트웨이 2012.06.01 14023
47 PHP 속도 향상을 위한 eAccelerator 설치 호스트웨이 2012.06.15 9701
46 PHP-5.3 버전 이상에서 Deprecated 에러 발생시 처리 방법 호스트웨이 2012.06.22 11782
45 Apache2.4.x 버전 설치 호스트웨이 2012.06.22 20118
44 SSL config error 조치사항 호스트웨이 2012.06.29 8243