Linux_LVS_Tutorial

Download Report

Transcript Linux_LVS_Tutorial

Linux LVS Tutorial 2013. 01. 17 Austin

I. 목차

1.LVS ? 2.LVS Framework 3.Building SNS using LVS 4.구축 샘플

1. LVS?

LVS는 Linux Virtual Server (가상 서버)의 약자로서, 리눅스 서 버를 통하여 구성된 고성능 고가용성의 부하 분산 시스템을 말합니다. 하지만 요즘엔 부하분산시스템 전체를 뜻하는 말로 통용되고 있습니다. 가상 서버는 실제 서버를 클러스터로 구성하여 뛰어난 확장성 과 가용성을 구현한 서비스입니다. 사용자에게는 서버가 한대만 있는 것으로 인식되지만, 실제로 는 여러대의 컴퓨터가 서비스를 수행하도록 구성된 것을 말합 니다. 클러스터의 구조는 최종 사용자에게는 투명하며 사용자는 오 직 하나의 가상 서버만을 볼 수 있습니다.

2. LVS Framework

2. LVS Framework

 Implemented in the Linux Kernel  3가지 IP load balancing 방식을 제공  Virtual Server via NAT  Virtual Server via IP Tunneling  Virtual Server via Direct Routing  8가지 Schedule Algorithms 제공

2. LVS Framework

 LVS / NAT

2. LVS Framework

 LVS / TURN

2. LVS Framework

 LVS / DR

2. LVS Framework

 비교 Server Server Network Server number Server gateway

NAT

Any Private Low ( 1 ~ 10 ) Load balancer

TUN

Tunneling LAN/WAN High( 100 ) Own router

DR

Non-arp device LAN High( 100 ) Own router Note : Load balancer 와 백엔드 서버가 동일한 하드웨어 구성을 가지고 있다는 가정을 기반으로 계측 된 것입니다.

2. LVS Framework

 Scheduling Algorithms  Round – Robin  Weighted Round-Robin  Least-Connection  Weighted Least-Connection  Locality-Based Least-Connection  Locality-Based Least-Connection With Replication  Source Hashing  Destination Hashing

2. LVS Framework

 Cluster Monitoring software  Red Hat Cluster Server / Piranha • LVS + Piranha  UltraMonkey • LVS + lvs-gui + heartbeat + ldirectord  Keepalived  Netparse  etc.

3. Building SNS using LVS

 General Architecture  3Tiers  Load balancer  Server Cluster  Shared Storage

3. Building SNS using LVS

 Web Cluster

3. Building SNS using LVS

 Cache Cluster

3. Building SNS using LVS

 Mail Cluster

4. 구축 방법

 Requirement     Linux kernel 2.6 이상 ( 이하 버전은 첨부 링크 참고 http://www.linuxvirtualserver.org/software/ipvs.html

ipvsadm software ( yum 으로 인스톨 ) arptables_jf ( yum 으로 인스톨) 접근 가능한 가상아이피 )

4. 구축 방법

 Setting Figure  Load Balancer  Real IP : 211.1.1.10

 Virtual IP : 211.1.1.11

 Real Server  Real IP 211.1.1.20~N

4. 구축 방법

 Setting Command ( IPVS 서버 설정 ) 1. Load Balancer(이하 LB) 서버로 접속 2. ipvsadm 설치 ( yum 으로 인스톨 ) 3. ifcfg-eth0:1 파일 생성 > vi ifcfg-eth0:1 DEVICE=eth0:1 ONBOOT=yes IPADDR=211.1.1.11

BOOTPROTO=none NETMASK=255.255.255.224

TYPE=Ethernet 4. 파일 저장 5. 네트웍 다시 시작 >service network restart 6. 패킷 포워딩 설정 > echo 1 > /proc/sys/net/ipv4/ip_forward

4. 구축 방법

 Setting Command ( IPVS 서버 설정 ) 1. 서비스 서버로 라우팅 설정 > ipvsadm –A –t 211.1.1.11:80 –s rr > ipvsadm –a –t 211.1.1.11:80 –r 211.1.1.20:80 –g > ipvsadm –a –t 211.1.1.11:80 –r 211.1.1.21:80 –g > ipvsadm –a –t 211.1.1.11:80 –r 211.1.1.N:80 –g 2. ipvsadm 설정 저장 > service ipvsadm save 3. 설정파일은 /etc/sysconfig/ipvsadm 경로에 저장됨 4. 이후 설정은 설정파일을 에디팅 후 > service ipvsadm reload ( 설정파일의 값으로 ipvs 설정 변경 )

4. 구축 방법

 Setting Command ( Real 서버 설정 ) 1. arptables_jf 설치 > yum install arptables_jf 2. arptables 설정 > arptables -A IN -d 211.1.1.11 -j DROP > arptables -A OUT -d 211.1.1.11 -j mangle --mangle-ip-s 211.1.1.20

3. arp 설정 변경 > echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore > echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce > echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore > echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 4. 서비스 서버에 lo 설정 > vi lo:0 DEVICE=lo:0 IPADDR=211.1.1.11

NETMASK=255.255.255.255

4. 구축 방법

 Setting Command ( Real 서버 설정 ) 5. 라우팅 설정 > route add –host 211.1.1.11 dev lo:0 ARP 응답문제 해결 방법 loopback devices에서 Alias된 VIP가 추가된 경우 로컬네트워크의 ARP 요청이 로드밸런서로 가지 않고 리 얼 서버가 먼저 응답하므로 부하분산이 되지 않는 문제가 생길 수 있다.

커널 2.2.14 – Hidden Device 기능을 이용 커널 2.4.X - Hidden patch 필요 커널 2.6.X - /etc/sysctl.conf 파일에 수정 후 활성화 # ARP hidden configure net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 활성화 # sysctl -p TIP) 확인법으론 windows나 linux에서 arp -a 명령을 실행. 로드밸런서 서버 맥어드레스가 나오면 정상적으 로 셋팅이 된 것이다.

5. Reference

http://www.linuxvirtualserver.org/software/index.html