Linux WEB

Linux LVS 사용하기

2015.09.16 18:23

호스트웨이 조회 수:10286

개요

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

번호 제목 글쓴이 날짜 조회 수
83 server-status를 이용한 아파치 모니터링 방법 file 호스트웨이 2016.04.05 18213
82 Apache / PHP 최신버전 설치하기 호스트웨이 2015.09.25 16484
81 Indexes 값 제거 호스트웨이 2015.09.18 7910
80 cronlog 설정 호스트웨이 2015.09.18 8046
79 apache - mod_url 설치 호스트웨이 2015.09.18 10286
78 Alternative PHP Cache 설치 & 설정 호스트웨이 2015.09.18 6515
77 웹부하 테스트 - httperf 호스트웨이 2015.09.18 8967
76 Apache Log 관리 방법 (Logrotate) 호스트웨이 2015.09.17 11156
» Linux LVS 사용하기 호스트웨이 2015.09.16 10286
74 Apache 동시접속자 수 알아내기 호스트웨이 2015.09.13 9302
73 httpd.pid 파일 오류 메시지 (20014) 호스트웨이 2015.09.12 11900
72 외부 링크 도용을 막기 위한 아파치 설정 호스트웨이 2015.09.11 8412
71 WEB에 특정 IP접근 차단 호스트웨이 2015.09.10 10051
70 Apache 설치 후 WEB 403 Forbidden 에러 호스트웨이 2015.09.08 20308
69 Apache-Tomcat Multi Instance 설정 file 호스트웨이 2015.05.28 10702
68 mod_evasive를 이용한 웹 DDoS 방어 호스트웨이 2014.08.19 13099
67 Apache event MPM, Prefork MPM, Worker MPM 방식의 차이점 및 설치 시 설정 방법 호스트웨이 2014.07.20 26631
66 apache 가상호스트(virtualhost) 사용하기 호스트웨이 2013.06.03 25681
65 apache 쓸모없는 로그 남기지 않는 방법. 호스트웨이 2012.12.28 6758
64 64bit 에서 php 컴파일시 에러 메세지 발생 시 대처방법-3 호스트웨이 2012.12.28 8583