Linux WEB

Linux LVS 사용하기

2015.09.16 18:23

호스트웨이 조회 수:3077

개요

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 업로드 파일 용량 제한 설정 호스트웨이 2012.07.06 8652
42 [Apache] Image 관련 Log 남기지 않기 호스트웨이 2012.07.13 7667
41 PHP 컴파일시 /usr/bin/ld: cannot find -lltdl 오류 호스트웨이 2012.07.13 9636
40 PHP 사용 시 특정함수 사용제한 하는 방법 호스트웨이 2012.08.03 7599
39 CentOS 6.3 에 apache, php, mysql, phpmyAdmin(LAMP) 설치하기 #1 호스트웨이 2012.08.07 14102
38 CentOS 6.3 에 apache, php, mysql, phpmyadmin(LAMP) 설치하기 #2 호스트웨이 2012.08.07 10762
37 nginx - redirect 설정 호스트웨이 2012.08.24 13103
36 Nginx 설치 호스트웨이 2012.08.31 10401
35 Apache Max Client 값 수정 호스트웨이 2012.08.31 13073
34 SSL 패스워드 삭제 하기 호스트웨이 2012.09.05 16367
33 apache internal dummy connection 로그 생성 방지하기 호스트웨이 2012.09.06 12590
32 아파치 실행시 libphp5.so 에러 호스트웨이 2012.09.14 9745
31 httpd-2.4 설치하기 호스트웨이 2012.09.27 11102
30 failed to open stream: Too many open files in 에러메시지 출력 시 해결방법 호스트웨이 2012.10.03 1124
29 apache 구동시 "파일 크기 제한을 초과함 $HTTPD -DSSL" 에러메시지 출력에 대한 해결방법 호스트웨이 2012.10.11 1008
28 Apache 재시작시 세션 끊어짐 현상 호스트웨이 2012.10.12 4846
27 [php] 세션 유지시간 설정하기 호스트웨이 2012.10.25 8379
26 CentOS6 64bit openssl 설치시 에러 조치사항 호스트웨이 2012.11.02 1611
25 Symbolic link not allowed or link target not accessible 에러 발생 시 호스트웨이 2012.11.16 2351
24 Ubuntu 아파치 웹서버에서 index.php 다운로드 창이 뜰 경우 호스트웨이 2012.12.13 1737