Linux WEB

Linux LVS 사용하기

2015.09.16 18:23

호스트웨이 조회 수:10288

개요

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 apache - mod_url 설치 호스트웨이 2015.09.18 10287
» Linux LVS 사용하기 호스트웨이 2015.09.16 10288
61 PHP 컴파일시 에러 메세지가 나오는 경우 조치방법 호스트웨이 2012.12.14 10310
60 Symbolic link not allowed or link target not accessible 에러 발생 시 호스트웨이 2012.11.16 10541
59 Apache-Tomcat Multi Instance 설정 file 호스트웨이 2015.05.28 10705
58 Apache Log 관리 방법 (Logrotate) 호스트웨이 2015.09.17 11177
57 PHP 속도 향상을 위한 eAccelerator 설치 호스트웨이 2012.06.15 11264
56 PHP 사용 시 특정함수 사용제한 하는 방법 호스트웨이 2012.08.03 11502
55 httpd.pid 파일 오류 메시지 (20014) 호스트웨이 2015.09.12 11910
54 PHP 컴파일시 /usr/bin/ld: cannot find -lltdl 오류 호스트웨이 2012.07.13 12544
53 Linux log 분할 방법 (logrotate) 호스트웨이 2012.04.06 12587
52 Apache 재시작시 세션 끊어짐 현상 호스트웨이 2012.10.12 12738
51 mod_evasive를 이용한 웹 DDoS 방어 호스트웨이 2014.08.19 13104
50 아파치 실행시 libphp5.so 에러 호스트웨이 2012.09.14 13523
49 APM 및 OS 버전 확인 하는 방법 호스트웨이 2012.03.30 13982
48 CentOS 6.3 에 apache, php, mysql, phpmyadmin(LAMP) 설치하기 #2 호스트웨이 2012.08.07 14202
47 httpd-2.4 설치하기 호스트웨이 2012.09.27 14436
46 PHP-5.3 버전 이상에서 Deprecated 에러 발생시 처리 방법 호스트웨이 2012.06.22 14713
45 Nginx 설치 호스트웨이 2012.08.31 14896
44 phpize를 이용하여 모듈 추가 file 호스트웨이 2012.03.15 15582