LVS, 라운드로빈, L4 부하 분산 개념들-서비스되는 항목에 대한 간략 설명입니다.

| 2015년 4월 28일 | 0 Comments

LVS
– 기본 LVS는 아이피가 2개 필요함 (관리용, 라운드 로빈용 VIP)
– 필히 분배할 L4 서버는 vim /etc/sysctl.conf 에서 net.ipv4.ip_forward = 1 확인할것!
– L4스위치나 같은 네트웍 단에 있는 서버가 VIP로 접근시 통신되지 않음 (타겟쪽 VIP 구성을 DR로 구성하면
같은 네트워크단 서버들도 VIP로 접근 가능함)

DR (Direct Routing)
– 같은 네트워크에 있어야 함 (아이피 대역도 동일해야 분배가능)
– 패킷이 LVS로 갔다가 웹서버에서 바로 디폴트게이트웨이를 통해서 나간다
– 클라이언트 – LVS – 웹 – 디폴트게이트웨이
– 웹쪽 네트워크 루프백 추가 lo:0 으로 해서 LVS IP가 셋팅되게 된다

LVS eth0 (공인 / 사설) : 관리용IP
eth0:0 (공인 / 사설) (공인아이피가 부족하면 사설로 쓴다) : VIP-IP

WEB LVS VIP-IP가 공인/사설이라면 eth0 공인/사설아이피
lo:0 LVS 아이피 잡아준다

NAT (공유기)
– 클라이언트 – LVS – 웹 – LVS – 클라이언트
– LVS 쪽에 위치하며 초기 통신시 주소변환이 일어나게 됨 (변환된것들은 캐싱테이블에 저장될거임)
– 통신이 이루어질때 마다 패킷변경이 이루어지므로 노드나 서비스 증가시 LVS 부하가 증가할 가능성 존재

LVS eth0 : 공인
eth0:0 공인 / 사설

WEB eth0 : 공인 / 사설

LVS서버가 웹과 구조상 같은 네트워크 동등하게 위치하고 있을때는 아래와 같이 셋팅

route add default gw (VIP IP)
route del default gw (기본게이트 웨이)

– 디폴트 게이트웨이 보통 스위치 아이피이지만 L4 VIP가 게이트웨이가 되므로 모든 패킷은 L4를 거쳐서 나감
즉 L4 서버가 다운되면 모든 서버 통신이 단절되는 단점이 있음…

LVS가 네트워크 구조상 웹의 상단 즉 게이트웨이 쪽에 위치하여 패킷이 LVS쪽에로 들어가게 되는구조
ex) 브리지 방화벽
이때는 원래 디폴트 게이트웨이사용 위와 같이 디폴트게이트 수정 불필요

IP 터널링 (IP Encapsulation)
– 같은 네트웍에 없어도 됨

DNS-RR
동일한 이름으로 여러 레코드를 등록시키면 질의 할때마다 다른 결과 반환하는 원리를 이용

서버의 수 만큼 공인아이피 필요
균등하게 분산되는것은 아님 (TTL값을 낮춤으로 어느 정도 개선 가능성? 존재)
헬스체크를 하지 못함

Round Robin 분산 방식

Round Robin (RR) 방식
– Real 서버로 세션이 순차적으로 맺어짐
– 현재 세션수는 관여하지 않음
– weighting 옵션 지원 (세션의 가중치를 부여하는 옵션)
– 서버의 처리 능력이 동일해야 좋음
– 단순한 방식이여서 부하를 주지 않으며 정확하게 5:5 분산 가능하나 세션보장이 안됨
– 웹서버 동기화가 바로 이루어 지지 않으면 세션이 꼬여서 로그인 유저들 세션 보장 할수 없음

Least Connection 방식
– Real 서버의 세션수를 고려한후 가정 적은 세션을 가진 서버로 세션을 맺어주는 방식
– Maximum Connections : 서버에 할당된 수치에 도달한 경우 그 쪽서버로는 세션을 맺어주지 않는 방식
– 일반적으로 많이 사용 5:5 분산이 가능하나 이것도 세션보장을 할수 없음

Response Time
– LVS 서버가 각 서버와 통신을 하면서 응답시간에 대해 빠른쪽으로 많은 세션을 보내주며 반대로 느린쪽에는 적게 보내주는 방식

Hash
– 동일한 유저에 대해 동일한 리얼서로쪽으로만 연결된다 (세션이 보장된다) 정확한 5:5 분산이 어려움
– Weighting 옵션 불가
– Hashing 값을 가지고 경로 지정 이때 Hash Key는 클라이언트의 IP 혹은 포트를 보고 결정된다
sed (short expected delay)
– 가장 응답속도가 빠른 서버 선택 (실제로 패킷을 날려 체크하는것은 아님)
– ESTABLSHED인 active 수가 가장 적은 수를 사진 서버 우선 선택 분배

nq (vever queue)
– sed와 동일한 알로리즘, active 접속수가 0인 서버를 우선 선택

UTIL

부하분산을 위한 리눅스 유틸들 (Yum 으로 자동 설치가능)

ldirectord
ipvsadm
– IPVS를 개발한 곳에서 제공하는 명령어줄 툴

keepalive
– C언어로 개발된 데몬

윈도우즈는 상용인가? 분배 솔루션을 못 본듯 하다….

L4 ARP CACHE 문제점

L4 교체나 VIP가 다른 서버로 넘어가는 경우 스위치 ARP TABLE 갱신이 안될가능성 존재
해당 상단 스위치에서 MAC CLEAR 명령을 통해서 ARP 캐쉬 테이블 초기화 바로 해주면 해결 가능

L3 이상급에서 ARP CACHE 잔존 가능성 (대략 600초)

Heartbeat 이중화 구성시 문제되는 경우 발생…

 

Category: 솔루션/IT기타

유 혁

About the Author ()