24
서버/인프라를 지탱하는 기술 웹 서버의 다중화 (IPVS를 이용한 로드밸런서) 양충현

서버 인프라를지탱하는기술(1.3,1.4)

Embed Size (px)

DESCRIPTION

서버_인프라를지탱하는기술 1.3장, 1.4장 아꿈사 스터디 오후반

Citation preview

Page 1: 서버 인프라를지탱하는기술(1.3,1.4)

서버/인프라를 지탱하는 기술웹 서버의 다중화

(IPVS를 이용한 로드밸런서)

양충현

Page 2: 서버 인프라를지탱하는기술(1.3,1.4)

DNS 라운드로빈과 로드밸런서의 차이

• DNS Round Robin

– DNS를 이용해서 하나의 서비스에 여러 대의서버를 분산시키는 방법.

–웹 서버 마다 공인 IP 할당.

–균등하게 분산 안됨.

–웹 서버가 다운되어도 감지 못함.

Page 3: 서버 인프라를지탱하는기술(1.3,1.4)

DNS 라운드로빈과 로드밸런서의 차이

• Load Balancer–하나의 IP주소에 대해 요청을 복수의 서버로분산.

–공인 IP를 가진 가상적인 서버로 동작하여 요청의 대해 실제 웹 서버로 중계 역할.

–여러 대의 리얼 서버중 한 대를 선택해서 중계.

–고가의 장비 및 유지 보수 비용이 큼.

• 비용 절약으로인한 OSS(opensourcesoftware) 구축

Page 4: 서버 인프라를지탱하는기술(1.3,1.4)

IPVS-리눅스로 로드밸런서 구성

• 리눅스로 특별한 S/W 없이 라우터 운용가능.• IPVS(IP Virtual Server)라는 부하 분산 기능을 제공하는 모듈도 포함.

• 로드밸런서 종류와 IPVS 기능– L4 스위치

• 트랜스 포트 계층까지 의 정보를 분석.• IP, Port에 따라 분산대상 서버지정.

– L7 스위치• 애플리케이션 계층까지 정보를 분석.• URL에 따라 분산대상 서버 지정.

– IPVS에 내장되어 있는 것은 L4 스위치에 해당.• L7 스위치는 이용불가.

Page 5: 서버 인프라를지탱하는기술(1.3,1.4)

스케쥴링 알고리즘

• rr(round-robin)– 차례대로 처리.

• wrr(weighted round-robin)– rr + 가중치.

• lc(least-connection)– 접속수가 가장 적은 서버 선택.

• wlc(weighted least-connection)– lc + 가중치.

• sed(shortest expected delay)– 응답속도가 가장 빠른 서버 선택.

• nq(never queue)– sed와 동일 그러니 active 수가 0인 서버 최우선으로 선택.

Page 6: 서버 인프라를지탱하는기술(1.3,1.4)

스케쥴링 알고리즘

• sh(source hashing)– source ip 주소 해시 값 계산 후 분산 서버 선택.

• dh(destination hashing)– 목적지 ip 주소 해시 값 계산 후 분산 서버 선택.

• lblc(locality-based least-connection)– 접속수가 가중치로 지정한 값을 넘기 전까지 동일한 서버선택.

• lblcr(locality-based least-connection with replication)– lblc + 모든 서버의 접속수가 가중치로 지정한 값을 넘는경우 접속수가 가장 적은 서버 선택.

Page 7: 서버 인프라를지탱하는기술(1.3,1.4)

IPVS 사용하기

• ipvsadm

– IPVS에서 제공하는 명령툴.

– 가상서버를 정의하고 리얼 서버를 할당.

– 접속상황,전송률, 통계정보를 제공.

• Keepalived

– IPVS를 이용하여 가상서버를 구축.

– 리얼 서버의 상태 체크.(다운 시 부하분산 제외)• HTTP_GET, SSL_GET, TCP_CHECK, SMTP_CHECK, MISC_CHECK

Page 8: 서버 인프라를지탱하는기술(1.3,1.4)

L4스위치와 L7스위치

• L4스위치는 클라이언트가 통신하는 곳은 리얼 서버.

• L7 스위치에 클라이언트와 리얼 서버 각각의 TCP세션을 전개.

L4 스위치

L7 스위치

Page 9: 서버 인프라를지탱하는기술(1.3,1.4)

NAT와 DSR

• NAT(Network Address Translation)

– 한 네트워크 컴퓨터의 IPv4 주소를 다른 네트워크 컴퓨터의 IPv4 주소로 변환.

• DSR(Direct Server Return)

– 로드밸런서 사용시 리얼서버에서 클라이언트로 되돌아가는 경우 목적지의 주소가 스위치 주소가 아닌 클라이언트 주소로 전달하는 개념.

– 로드밸런서 병목, 높은 트래픽이 있는 경우 DSR로 권장.

Page 10: 서버 인프라를지탱하는기술(1.3,1.4)

NAT와 DSR 동작 방식

Page 11: 서버 인프라를지탱하는기술(1.3,1.4)

부하분산 시 주의점(동일 서브넷)이 구성에는 NAT 사용 불가.DSR로 구성.

웹 서버192.168.0.1/24

메일서버192.168.0.151/24

메일서버192.168.0.152/24

가상서버192.168.0.150/24

Page 12: 서버 인프라를지탱하는기술(1.3,1.4)

서버/인프라를 지탱하는 기술라우터 및

로드밸런서의 다중화

양충현

Page 13: 서버 인프라를지탱하는기술(1.3,1.4)

다중화 프로토콜 VRRP

• 라우터나 로드밸러서 벤더들의 독자적인다중화 프로토콜

–서로 다른 벤더간 호환 불가.

• HSRP(Hot standby Routing Protocol)기반으로 벤더에 의존하지 않는 다중화 프로토콜 VRRP(Virtual Router Redundancy Protocol) 개발.

Page 14: 서버 인프라를지탱하는기술(1.3,1.4)

VRRP 패킷

• 마스터 노드가 정기적으로 VRRP 패킷을 멀티캐스팅(224.0.0.18)주소로 송신.– 마스터가 정상 작동임을 알리는 메시지(Advertisement)

• 백업 노드는 VRRP 패킷을 수신하는 동안은 대기중, 일정시간 수신 하지 못하면 마스터 노드 다운으로 판단 장애극복 시작.

Page 15: 서버 인프라를지탱하는기술(1.3,1.4)

가상 라우터 ID

• Virtual Rtr ID.• VRRP 패킷은 멀티 캐스팅주소로 송신

– 주소 변경 불가.

• 인스턴스를 구분하기 위한 용도.

VRRP

VRRP

224.0.0.18VRRP 패킷을 송신

로드 밸런서 A(Active)

로드 밸런서 B(Backup)

로드 밸런서 C(Active)

로드 밸런서 D(Backup)

Page 16: 서버 인프라를지탱하는기술(1.3,1.4)

우선순위(Priority)

• Priority.

• VRRP 구조적으로 100대의 백업 노드를 가질수 있음.

• 백업 노드가 2대 이상 작동 시 우선순위부여.

• 수치적으로 높을수록 우선순위가 높음.

• 사용범위는 1~255, 기본값은 100

Page 17: 서버 인프라를지탱하는기술(1.3,1.4)

선점형 모드(Preemptive Mode)

• 선점형 모드 유효화

–자신의 Priority보다 낮은 값을 수신하면master상태로 변경.

– Default mode.

• 선전형 모드 무효화

–자신의 Priority 보다 낮은 값을 수신하더라도현 상태를 유지.

Page 18: 서버 인프라를지탱하는기술(1.3,1.4)

가상 MAC주소

• VRRP에는 가상 MAC주소가 정의.

• 장애극복 시 IP주소뿐만 아니라, MAC주소도 함께 인계.

– MAC 주소를 인계하지 않을 경우, 통신 상대가 되는 모든 장비의 ARP 테이블의 변경 필요.

• Physical/Virtual 2가지 mode

– Default mode Virtual.

Page 19: 서버 인프라를지탱하는기술(1.3,1.4)

Keepalived의 구조상의 문제

• Keepalived의 VRRP는 가상 MAC주소를 허용하지 않음.

• 장애극복 시 ARP 엔트리가 갱신되지 않는 장비가 있을 경우, APR 캐시가 clear가 되까지 통신되지 않을위험성 소지.

• gratuitous ARP의 지연송신– 마스터 상태로 변경 후 GARP를 송신 시 네트워크 상태 불안정, 일시적인 트래픽이 집중되어 통신이 안될 수 있음.

– 수 초 정도 기다린 후 GARP 송신.

– grap_master_delay로 설정.

– Default value 5초.

Page 20: 서버 인프라를지탱하는기술(1.3,1.4)

Keepalived 다중화 구성

VRRP

lv110.0.0.252/24

192,168.0.252/24

lv210.0.0.253/24

192,168.0.253/24

VIP10.0.0.254/24

192,168.0.254/24

가상서버10.0.0.1

가상서버10.0.0.1

웹서버(web1)192.168.0.1/24

웹서버(web2)192.168.0.2/24

VRRP

lv110.0.0.252/24

192,168.0.252/24

lv210.0.0.253/24

192,168.0.253/24

가상서버10.0.0.1

가상서버10.0.0.1

웹서버(web1)192.168.0.1/24

웹서버(web2)192.168.0.2/24

장애

VIP10.0.0.254/24

192,168.0.254/24

Page 21: 서버 인프라를지탱하는기술(1.3,1.4)

VRRP의 설정

lv2는 102으로 변경

• lv1의 예

• lv1과 lv2에서 keepalived를 기동하면 lv1에 VIP가 할당 ifconfig로는 확인 불가, ip 명령으로 확인.

Page 22: 서버 인프라를지탱하는기술(1.3,1.4)

VRRP의 동작확인

• 동작 확인a. lv1을 shutdown 한다. lv2=Master(O)

b. lv1을 기동한다. lv1=Master, lv2=Backup(O)

c. lv1의 eth0 케이블을 뺀다. lv1=Backup, lv2=Master(O)

d. lv1의 eth0 케이블을 꽂는다. lv1=Master, lv2=Backup(O)

e. lv1의 eth1 케이블을 뺀다. lv1=Master, lv2=Backup

• VRRP 패킷은 eth0으로만 전송 eth1의 lan cable을 빼더라도 이상동작 확인 불가.

Page 23: 서버 인프라를지탱하는기술(1.3,1.4)

VRRP 인스턴스 분리

<-lv2는 102으로 변경

<-lv2는 102으로 변경<-VRPP마다 고유한 값

<-VRPP마다 고유한 값

Page 24: 서버 인프라를지탱하는기술(1.3,1.4)

VRRP 인스턴스 동기화

• vrrp_sync_group

• 여러 VRRP 인스턴스에서 상태를 동기화시키기 위한 설정.

• 그룹 내 하나의 인스턴스가 Backup이 되는 경우 연동 해서 다른 인스턴스 또한Backup이 된다.