티스토리 뷰
▶ Real 서버 1번 IP : 192.168.1.11 eth0
▶ Real 서버 2번 IP : 192.168.1.12 eth0
▶ Virtual IP : 192.168.1.5 (DNS에 셋팅할 도메인과 맵핑할 Web IP 예를들어 192.168.1.5 = www.empas.com ...ㅋ )
--가중라운드로빈(wrr)-라운드로빈+가중치
--최소연결(lc)-리얼 서버들중 가장 적은 수의 요청을 처리하는 서버 선택.
--가중최소연결(wlc)-최소연결+가중치
----------------------------------------------------------------
net.ipv4.ip_forward = 1 ===> 0을 1로 변경후 저장
----------------------------------------------------------------------
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 211.233.5.72:http wlc
-> 211.233.5.71:http Route 10 0 0
-> 211.233.5.70:http Route 10 0 0
----------------------------------------------------------------------
★ Real 1번 서버 설정 ★
-------------------------------------------------------------
net.ipv4.ip_forward = 1 ===> 0을 1로 변경
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
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
[출처] 간단한 로드밸런싱 IPVSADM 설정 |작성자 삽질맨
[펌] ipvsadm 을 이용한 로드밸런싱 구성 하기
1) xxx.xxx.xxx.19, xxx.xxx.xxx.20, xxx.xxx.xxx.21번 서버는 거의 동일한 사양으로 구성
2) direct routing 방식으로 분산 서버에는 거의 부하가 걸리지 않음
3) round robin 스케쥴링으로 가중없이 균등 분산으로 구성
2. 기본 사양
1) OS는 su-linux 1.5 (커널 2.6.9) 버전으로 동일하게 테스트 되었다.
3. 부하분산서버 셋팅
1) #yum install ipvsadm
: su-linux에는 yum이 기본 설정되어 있다.
: ipvsadm 설치가 완료되면 더 수정할 것 없이 그대로 사용하면 된다.
2) #vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 로 변경
(초기값은 net.ipv4.ip_forward = 0 이다.)
3) #sysctl -p
: 변경한 설정 파일을 적용해 준다.
4) #vi /etc/hosts
xxx.xxx.xxx.18 www.domain.com wwwvip
xxx.xxx.xxx.20 www.domain.com r1-web
xxx.xxx.xxx.20 www.domain.com r2-web
위와 같이 등록해 주고 저장한다.
5) #vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.18
NETMASK=255.255.255.255
위와 같이 추가 후 저장한다.
6) 가상 랜카드 및 가상 아이피 설정 후 네트워크 데몬을 리로드해 주거나 아래의 명령어로 적용한다.
#ifconfig eth0:0 xxx.xxx.xxx.18 up 또는
#/etc/init.d/network restart
7) 로드밸런싱을 설정한다.
#ipvsadm -A -t xxx.xxx.xxx.18:80 -s -rr
: 부하분산 서버의 가상 아이피와 포트를 지정하고, 어떤 스케쥴링을 사용할 것인지 지정한다. (마지막 옵션인 rr이 라운드로빈 방식)
#ipvsadm -a -t xxx.xxx.xxx.18:80 -r xxx.xxx.xxx.20:80 -g
#ipvsadm -a -t xxx.xxx.xxx.18:80 -r xxx.xxx.xxx.21:80 -g
8) #ipvsadm -L
: 제대로 작동하고 있는지 모니터링 해 본다.
4. 리얼서버 셋팅
1) #vi /etc/hosts
xxx.xxx.xxx.18 www.domain.com wwwvip
xxx.xxx.xxx.20 www.domain.com r1-web
xxx.xxx.xxx.20 www.domain.com r2-web
위와 같이 등록해 주고 저장한다.
: 분산서버와 리얼서버 모두 동일하게 설정해 준다.
2) #vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=xxx.xxx.xxx.18
NETWORK=xxx.xxx.xxx.xxx
BROADCAST=xxx.xxx.xxx.xxx
NAME=loopback
위와 같이 저장하고 네트워트 데몬을 리로드 해 준다.
3) #vi /etc/sysconfig/network
: 네트워크 파일을 열어 아래와 같이 게이트웨이를 지정해 준다.
GATEWAYDEV=eth0
4) #vi /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 로 활성화
5) #arp -a
:위의 명령어로 실행 시 맥 어드레스가 분산서버의 맥어드레스로 나타나면 설정이 완료된 것임
5. 리얼서버 웹서버 시작
1) 리얼서버 두 대에서 웹서버를 실행할 때 테스트를 위해 각각 다른 페이지를 띄워둔다.
2) 가상IP를 통해 접근을 시도하면 순차적으로 리얼서버1번과 리얼서버2의 페이지를 볼 수 있다.
3) 만약 하나의 아이피에서 접근되는 세션을 일정 시간동안 유지하고 싶다면 아래 명령어로 옵션을 추가해 준다.
#ipvsadm -A -t xxx.xxx.xxx.18:80 -s -rr -p 300
: -p는 persistance 옵션으로 뒤에 지정해주는 시간(초) 만큼 세션을 접속한 리얼아이피로만 연결시켜준다.
: 단, 두 대의 리얼아이피 서버 중 한대에 문제가 생기면 위에 지정한 시간이 끝나기 전에는 다른 리얼아이피 페이지로 접근할 수 없기 때문에 페이지가 안보이는 문제가 생길 수 있다.
'리눅스(유닉스) > 유용한팁' 카테고리의 다른 글
[IPVSADM 이용 리눅스 로드밸런싱] 셋팅 참고 1 (0) | 2010.03.28 |
---|---|
[Linux] 한글설정(UTF8 or EUC_KR) (0) | 2008.09.03 |
[SVN] subversion 리눅스 server 셋팅 (0) | 2008.08.26 |
PDF to HTML 컨버터 fot Linux (0) | 2008.06.23 |
웹로그 rotate (Cronlog 와 Webalizer 사용) (0) | 2008.06.22 |
- Total
- Today
- Yesterday