1. 개요
A. 리눅스 가상 서버(LVS)
- 한대의 서버로 증가하는 인터넷 사용자를 처리하기가 힘들어 지면서 고 가용성 서버를 구축하기 위해
리눅스 머신을 로드 밸런스 하도록 해주는 운영 시스템
만약 하나의 노드에서 처리량이 너무 많아서 서비스가 불가능 할 경우 간단히 하나의 노드를 병렬
구성으로 추가함으로써 부하분산을 하도록 하는 것을 말한다.
B. 참고사이트
- http://linuxvirtualserver.org
2. 설치
A. 설치환경
- ipvsadm 을 이용한 설치
- Direct routing 방식으로 진행
- LVS Server : CentOS 6.4 64bit / IP : 192.168.2.113 / VIP : 192.168.2.110
Real Server1 : CentOS 6.4 64bit / IP : 192.168.2.111
Real Server2 : CentOS 6.4 64bit / IP : 192.168.2.112
B. LVS Server 설치
- ipvsadm 설치
# yum install ipvsadm
- 확인
# ipvsadm –L
- LVS Server에 VIP 설정
# ifconfig eth0:1 192.168.2.110 netmask 255.255.255.0 up
# ifconfig
- 해당 시스템을 통해 패킷이 포워딩 될 수 있도록 수정
# vi /etc/sysctl.conf
net.ipv4.ip_forward=1
# sysctl –p
- Round Robin 스케쥴링으로 설정(스케쥴러 종류는 참고내용 확인)
# ipvsadm -A -t 192.168.2.110:80 -s rr
> -A : 서비스추가
> -t : tcp
> 192.168.2.110:80 : IP:PORT
> -s rr : 스케쥴러 방식
- Real Server 설정
# ipvsadm -a -t 192.168.2.110:80 -r 192.168.2.111:80 -g
# ipvsadm -a -t 192.168.2.110:80 -r 192.168.2.112:80 -g
- 설정확인
# ipvsadm
- 재부팅 후에도 설정값을 불러 오기위해 설정
# /etc/rc.d/init.d/ipvsadm save
# chkconfig ipvsadm on
# vi /etc/rc.local
> ifconfig eth0:1 192.168.2.110 netmask 255.255.255.0 up 추가
C. Real Server 설치
- 포워딩 될 수 있도록 수정
# vi /etc/sysctl.conf 수정
net.ipv4.ip_forward=1
# sysctl –p
- Real Server 에 VIP 설정
# ifconfig eth0:1 192.168.2.110 netmask 255.255.255.0 up
- 클라이언트가 가상 IP 에 요청했을 때 동일 네트워크에 Virtual 2개 이상 갖고 있기 때문에 경우에 따라서
Real Server에서 응답을 하는 경우가 있다. Arptables_jf 를 이용해서 응답하지 않도록 설정해야 한다.
- arptables_jf 설치
# yum install arptables_jf
# arptables -A IN -d 192.168.2.110 -j DROP
# arptables -A OUT -d 192.168.2.110 -j mangle --mangle-ip-s 192.168.2.111
- loopback 설정
#ifconfig lo:0 192.168.2.110 netmask 255.255.255.255 broadcast 192.168.2.110 up
#route add -host 192.168.2.110 dev lo:0
- 재부팅 후에도 설정값을 불러 오기위해 설정
# /etc/rc.d/init.d/arptables_jf save
# chkconfig arptables_jk on
# vi /etc/rc.local
> ifconfig eth0:1 192.168.2.110 netmask 255.255.255.0 up 추가
D. Real Server 2 설치는 Real Server 1과 동일
3. 테스트
A. MS Stress Tool 을 사용하여 테스트 진행
- 192.168.2.120 Client 에서 MS Stress Tool 로 VIP 로 접속
#ipvsadm
# ipvsadm –Lnc
B. 세션 유지가 필요할 경우
- 스케쥴링 옵션에 –p 30 설정
# ipvsadm -A -t 192.168.2.110:80 -s rr –p 30
- 192.168.2.120 Client 에서 MS Stress Tool 로 VIP 로 접속
# ipvsadm
# ipvsadm –Lnc
4. 참고내용
A. LVS 스케쥴링 종류
- 라운드-로빈(round-robin) : 로드밸런서(L4스위치)에 들어오는 요청 패킷들을 차례대로 실제 서버에
할당하는 방식이다. 이 방식에서 실제 서버의 현재 부하 상황 등은 고려되지 않는다. 단지 차례대로
할당할 뿐이다. 하지만, 이렇게 하더라도 로드밸런싱을 위해 이전에 사용되던 라운드-로빈 DNS 방식에
의해 서버를 할당하는 방식에 비해서는 우수하다. 이유는 DNS방식은 한번 서버가 지정되면 해당 서버에
수많은 요청 패킷이 몰릴 수 있기 때문이다.
- 가중 라운드-로빈(weighted round-robin) : 가중 라운드-로빈 방식은 기본적으로 라운드-로빈 방식과
동일한데, 각 서버에 서로 다른 가중치를 주어서 할당하는 방식이다. 이 방식을 사용해야 하는 경우는
실제 서버들이 CPU의 수와 성능, 메모리 용량 등 서로 다른 성능을 가지고 있어서, 각 서버를 동등하게
취급할 수 없는 경우이다.
- 최소 연결(least connection) : 최소 연결 방식은 실제 서버들 중에서 현재 가장 적은 수의 요청을 처리하고
있는 서버를 선택하여 요청 패킷을 할당하는 방식이다. 이 방식은 실제 서버의 현재 부하 상황을 동적으로
판단하여 요청을 처리하기 때문에, 앞의 두 방식에 비해서 동적으로 우수한 부하 분산효과를 얻을 수 있다.
- 가중 최소 연결(weighted least connection) : 가중 최소 연결방식은 기본적으로 최소 연결방식과 동일한데,
가중 라운드-로빈 방식과 마찬가지로 각 서버에 서로 다른 가중치를 주어서 할당하는 방식이다.
'기술자료 > 기술운영자료' 카테고리의 다른 글
귀사에 가장 적합한 라이선스는 무엇입니까? (0) | 2016.03.20 |
---|---|
Windows Releases 메모리 제한 (0) | 2016.03.20 |
DRBD를 이용한 HA Cluster 구축 (0) | 2016.03.20 |
리눅스 OS 성능 개선 Tips (0) | 2016.03.20 |
리눅스 보안설정 (0) | 2016.03.20 |