2014년 7월 22일 화요일

LVS의 정의 및 설정

Centos 6.5에서 LVS 라운드-로빈 방법으로 구축하기

LVM이란?

  1. Linux Virtual Server(LVS)란? 리눅스 가상 서버란, 고가용성 서버를 구축하기 위해 리눅스 머신을 로드 발랜스 하도록 해주는 운영시스템이다.
     
  2. Linux Virtual Server 스케쥴링 

1) 라운드-로빈(round-robin) - 로드밸런서에 들어오는 요청 패킷들을 차례대로 실제 서버에 할당하는 방식
  • 이 방식에서 실제 서버의 현재 부하 상황 등은 고려되지 않음 

2) 가중 라운드-로빈(weighted round-robin)
  • 가중 라운드-로빈 방식은 기본적으로 라운드-로빈 방식을 사용하면서 각 서버에 서로 다른 가중치를 주어서 할당하는 방식 
  • 이 방식을 사용해야 하는 경우는 실제 서버들이 CPU의 수와 성능, 메모리 용량 등 서로 다른 성능을 가지고 있어서, 각 서버를 동등하게 취급할 수 없을 때 

3) 최소 연결(least connection)
  • 최소 연결 방식은 실제 서버들 중에서 현재 가장 적은 수의 요청을 처리하고 있는 서버를 선택하여 요청 패킷을 할당하는 방식 
  • 이 방식은 실제 서버의 현재 부하 상황을 동적으로 판단하여 요청을 처리하기 때문에, 앞의 두 방식에 비해서 동적으로 우수한 부하 분산 효과를 얻을 수 있음 

4)가중 최소 연결(weighted least connection)
- 가중 최소 연결 방식은 기본적으로 최소 연결 방식인데, 가중 라운드-로빈 방식과 마찬가지로 각 서버에 서로 다른 가중치를 주어서 할당하는 방식

시스템 구성 및 ipvsadm 설치 

1) Load Balancer Server
  • 운영체제 : CentOS 6.5 
  • 플랫폼 : VMware 10.0 
  • IP : 192.168.1.128 
  • 가상IP : 192.168.1.11 
2) Real Server1(RS1)

  • 운영체제 : CentOS 6.5
  • 플랫폼 : VMware 10.0
  • IP : 192.168.1.129


3) Real Server1(RS2)

  • 운영체제 : CentOS 6.5
  • 플랫폼 : VMware 10.0
  • IP : 192.168.1.130
4) Load Balancer Server ipvsadm 설치
 
▶ Load Balancer Server에서 ipvsadm을 다운로드 후 설치를 한다.

 #yum -y install ipvsadm

 ▶ 설치 확인
 
#ipvsadm

 IP Virtual Server version 1.2.0 (size=4096)
 Prot LocalAddress:Port Scheduler Flags
 -> RemoteAddress:Port Forward Weight ActiveConn InActConn

설치가 정상적으로 되었다면 위와 같은 텍스트가 보입니다.

Direct routing 기법을 이용하여 LVS 구성

  • Direct Routing의 구조도
vsdrouting.gif

A-1.Load Balancer Server 설정법

/etc/sysctl.conf에 net.ipv4.ip_forward = 0 부분을 1로 변경후

#sysctl -p // 커널파라미터 적용

#ifconfig eth0:1 192.168.1.11 up // 가상아이피 등록

#ipvsadm -A -t 192.168.1.11:80 -s rr // 라운드-로빈방식으로 설정

#ipvsadm -a -t 192.168.1.11:80 -r 192.168.1.129:80 -g // RS1 서버로 다이렉트 라우팅 설정

#ipvsadm -a -t 192.168.1.11:80 -r 192.168.1.130:80 -g // RS2 서버로 다이렉트 라우팅 설정

* iptables에서 80번 포트 추가 후 재시작

A-2.Real Server(RS1) 설정법

/etc/sysctl.conf에 net.ipv4.ip_forward = 0 부분을 1로 변경하여야 하며
해당 내용을 sysctl.conf의 하단부에 추가

#for ipvs
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
#end of ipvs

#sysctl -p // 추가한 후에 커널 파라미터를 적용

#ip addr add 192.168.1.11 dev lo // 가상 아이피 등록

* iptables에서 80번 포트 추가 후 재시작

A-3.Real Server(RS2) 설정법


/etc/sysctl.conf에 net.ipv4.ip_forward = 0 부분을 1로 변경하여야 하며
해당 내용을 sysctl.conf의 하단부에 추가

#for ipvs
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
#end of ipvs

#sysctl -p // 추가한 후에 커널 파라미터를 적용

#ip addr add 192.168.1.11 dev lo // 가상아이피 등록

* iptables에서 80번 포트 추가 후 재시작

LVS 확인

5-1. 구축을 하고 난 뒤 ipvsadm을 입력했을 때 다음과 같이 나오면 성공

그림1.png

5-2. 클라이언트 준비


운영체제: XP
 플랫폼: VMware
 IP: 192.168.1.131

5-3. LVS 서버의 가상 아이피 192.168.1.11을 입력하여 웹서버에 접속 시도

-다음과 같은 창이 뜨면 성공
그림2.png

5-4. LVS에서 로드밸런싱이 이루어졌는지 확인

- ActiveConn에 숫자가 올라간 것이 확인되면 LVS 구축 성공
그림4.png

댓글 2개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. 좋은 글 감사합니다. 그런데 사진이 엑박인데 어떻게 해결은 어려울까요? ActiveConn에 숫자가 변화가 없는데 무슨 문제일까요?

    답글삭제