게시물 1,376건
   
로드밸런싱(ipvsadm) + fwmark + ldirectord.cf
글쓴이 : 최고관리자 날짜 : 2011-02-01 (화) 10:37 조회 : 12326
글주소 :
                                
iptable mangle 테이블과 forward fwmark 를 이용해서 Dynamic 한 포트를 이용하여 다중포트에 대해서 밸런싱을 한다거나 80번과 443과 같이 전자상거래에 인증관련해서 항상 그룹지어서 운영하여야할때 사용하는 방식에 대해서 설명하고자 한다.
 
forward fwmakr (방화벽 표시기능??)
방화벽 표시 기능은 연관된 프로토콜의 프로토콜이나 그룹에 사용되는 가장 쉽고 효과적인 그룹 포트 방법입니다. 예를 들어, LVS가 전자 상거래 사이트를 실행하도록 되어 있을 경우, 방화벽 표시 기능은 포트 80에서의 HTTP 연결과 포트 443에서의 HTTPS 연결을 일괄적으로 묶어 처리하는데 사용될 수 있습니다. 각각의 프로토콜에 대해 가상 서버에 동일한 방화벽 표시 기능을 지정하면 포트가 연결된 후 LVS 라우터가 동일한 실제 서버에 모든 요청을 보내기 때문에 트랜잭션에 대한 상태 정보를 보호할 수 있습니다.
 
이와 같은 효과적이고 사용 간편함 때문에 LVS 관리자는 그룹 연결을 할 때 마다 지속성 기능보다 방화벽 표시 기능을 사용해야 합니다. 하지만, 클라이언트가 일정 기간 동안 동일한 가상 서버로 다시 연결하게 하기 위해 가상 서버에 방화벽 기능과 함께 지속성 기능을 추가시킬 수 있습니다.
 
 
특정포트를 리얼서버 포트에 1:1 매핑지어서 운영하게 될경우 단점
1. Active 적인 포트에 대해서 일일히 서비스를 등록을 해줘야한다. 
2. 80포트와 443 포트하고 그룹화되어서 운영되어야 하는경우
 
Every 2.0s: ipvsadm -ln                                                                            Tue Feb  1 11:11:36 2011
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.234.6.2:80 sh
  -> 192.234.6.8:80               Masq    1      0          0
  -> 192.234.6.7:80               Masq    1      0          0
TCP  192.234.6.2:443 sh
  -> 192.234.6.7:443              Masq    1      0          0
  -> 192.234.6.8:443              Masq    1      0          0
 
※ 리얼서버를 보면 VIP에 물려있는 순서가 다르다.
ldirectord 모니터링에 따라서 서비스로 새로 올라오고 삭제됨에 따라서 리얼서버 순서가 바뀌게 되는데 세션을 DB화하지 않을경우에는 인증서버(443포트)와 서비스(80포트)가  SH 스케줄링에 의해 각기 다른 서버로 접속해버리면 인증은 7번서버에서 하고 실제 서비스하는 트래픽은 8번 서버를 접속하는 문제로 인해 인증이 바로 풀리게 되버리는 현상이 발생된다.
이럴경우 리얼서버를 그룹화해서 사용해야 한다.
 
 
# VIP 로 들어오는 80,443 포트에 대해서 MARK 1
[root@localhost ~]# iptables -t mangle -A PREROUTING -i br0 -p tcp -d 192.234.6.2 -m multiport --dport 80,443 -j MARK --set-mark 1
 
# MARK1 으로 보내지는 트래픽은 리얼서버로 분산
[root@localhost ~]# ipvsadm -A -f 1 -s sh
[root@localhost ~]# ipvsadm -a -f 1 -r 192.234.6.7
[root@localhost ~]# ipvsadm -a -f 1 -r 192.234.6.8
 
 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  1 sh
  -> 192.234.6.7:0                Masq    1      2          0
  -> 192.234.6.8:0                Masq    1      0          0
 
 
여기에 ldirectord 를 이용해서 리얼서버 모니터링 부분을 추가하면...
[root@localhost ~]# cat > ldirectord.cf
checktimeout=3
checkinterval=3
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
 
virtual=1
    scheduler=sh
    checktype=connect
    protocol=fwm
    checkport=80
    real=192.234.6.7 masq
    real=192.234.6.8 masq

이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.