View
1.532
Download
37
Category
Preview:
DESCRIPTION
서버_인프라를지탱하는기술 1.3장, 1.4장 아꿈사 스터디 오후반
Citation preview
서버/인프라를 지탱하는 기술웹 서버의 다중화
(IPVS를 이용한 로드밸런서)
양충현
DNS 라운드로빈과 로드밸런서의 차이
• DNS Round Robin
– DNS를 이용해서 하나의 서비스에 여러 대의서버를 분산시키는 방법.
–웹 서버 마다 공인 IP 할당.
–균등하게 분산 안됨.
–웹 서버가 다운되어도 감지 못함.
DNS 라운드로빈과 로드밸런서의 차이
• Load Balancer–하나의 IP주소에 대해 요청을 복수의 서버로분산.
–공인 IP를 가진 가상적인 서버로 동작하여 요청의 대해 실제 웹 서버로 중계 역할.
–여러 대의 리얼 서버중 한 대를 선택해서 중계.
–고가의 장비 및 유지 보수 비용이 큼.
• 비용 절약으로인한 OSS(opensourcesoftware) 구축
IPVS-리눅스로 로드밸런서 구성
• 리눅스로 특별한 S/W 없이 라우터 운용가능.• IPVS(IP Virtual Server)라는 부하 분산 기능을 제공하는 모듈도 포함.
• 로드밸런서 종류와 IPVS 기능– L4 스위치
• 트랜스 포트 계층까지 의 정보를 분석.• IP, Port에 따라 분산대상 서버지정.
– L7 스위치• 애플리케이션 계층까지 정보를 분석.• URL에 따라 분산대상 서버 지정.
– IPVS에 내장되어 있는 것은 L4 스위치에 해당.• L7 스위치는 이용불가.
스케쥴링 알고리즘
• 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인 서버 최우선으로 선택.
스케쥴링 알고리즘
• sh(source hashing)– source ip 주소 해시 값 계산 후 분산 서버 선택.
• dh(destination hashing)– 목적지 ip 주소 해시 값 계산 후 분산 서버 선택.
• lblc(locality-based least-connection)– 접속수가 가중치로 지정한 값을 넘기 전까지 동일한 서버선택.
• lblcr(locality-based least-connection with replication)– lblc + 모든 서버의 접속수가 가중치로 지정한 값을 넘는경우 접속수가 가장 적은 서버 선택.
IPVS 사용하기
• ipvsadm
– IPVS에서 제공하는 명령툴.
– 가상서버를 정의하고 리얼 서버를 할당.
– 접속상황,전송률, 통계정보를 제공.
• Keepalived
– IPVS를 이용하여 가상서버를 구축.
– 리얼 서버의 상태 체크.(다운 시 부하분산 제외)• HTTP_GET, SSL_GET, TCP_CHECK, SMTP_CHECK, MISC_CHECK
L4스위치와 L7스위치
• L4스위치는 클라이언트가 통신하는 곳은 리얼 서버.
• L7 스위치에 클라이언트와 리얼 서버 각각의 TCP세션을 전개.
L4 스위치
L7 스위치
NAT와 DSR
• NAT(Network Address Translation)
– 한 네트워크 컴퓨터의 IPv4 주소를 다른 네트워크 컴퓨터의 IPv4 주소로 변환.
• DSR(Direct Server Return)
– 로드밸런서 사용시 리얼서버에서 클라이언트로 되돌아가는 경우 목적지의 주소가 스위치 주소가 아닌 클라이언트 주소로 전달하는 개념.
– 로드밸런서 병목, 높은 트래픽이 있는 경우 DSR로 권장.
NAT와 DSR 동작 방식
부하분산 시 주의점(동일 서브넷)이 구성에는 NAT 사용 불가.DSR로 구성.
웹 서버192.168.0.1/24
메일서버192.168.0.151/24
메일서버192.168.0.152/24
가상서버192.168.0.150/24
서버/인프라를 지탱하는 기술라우터 및
로드밸런서의 다중화
양충현
다중화 프로토콜 VRRP
• 라우터나 로드밸러서 벤더들의 독자적인다중화 프로토콜
–서로 다른 벤더간 호환 불가.
• HSRP(Hot standby Routing Protocol)기반으로 벤더에 의존하지 않는 다중화 프로토콜 VRRP(Virtual Router Redundancy Protocol) 개발.
VRRP 패킷
• 마스터 노드가 정기적으로 VRRP 패킷을 멀티캐스팅(224.0.0.18)주소로 송신.– 마스터가 정상 작동임을 알리는 메시지(Advertisement)
• 백업 노드는 VRRP 패킷을 수신하는 동안은 대기중, 일정시간 수신 하지 못하면 마스터 노드 다운으로 판단 장애극복 시작.
가상 라우터 ID
• Virtual Rtr ID.• VRRP 패킷은 멀티 캐스팅주소로 송신
– 주소 변경 불가.
• 인스턴스를 구분하기 위한 용도.
VRRP
VRRP
224.0.0.18VRRP 패킷을 송신
로드 밸런서 A(Active)
로드 밸런서 B(Backup)
로드 밸런서 C(Active)
로드 밸런서 D(Backup)
우선순위(Priority)
• Priority.
• VRRP 구조적으로 100대의 백업 노드를 가질수 있음.
• 백업 노드가 2대 이상 작동 시 우선순위부여.
• 수치적으로 높을수록 우선순위가 높음.
• 사용범위는 1~255, 기본값은 100
선점형 모드(Preemptive Mode)
• 선점형 모드 유효화
–자신의 Priority보다 낮은 값을 수신하면master상태로 변경.
– Default mode.
• 선전형 모드 무효화
–자신의 Priority 보다 낮은 값을 수신하더라도현 상태를 유지.
가상 MAC주소
• VRRP에는 가상 MAC주소가 정의.
• 장애극복 시 IP주소뿐만 아니라, MAC주소도 함께 인계.
– MAC 주소를 인계하지 않을 경우, 통신 상대가 되는 모든 장비의 ARP 테이블의 변경 필요.
• Physical/Virtual 2가지 mode
– Default mode Virtual.
Keepalived의 구조상의 문제
• Keepalived의 VRRP는 가상 MAC주소를 허용하지 않음.
• 장애극복 시 ARP 엔트리가 갱신되지 않는 장비가 있을 경우, APR 캐시가 clear가 되까지 통신되지 않을위험성 소지.
• gratuitous ARP의 지연송신– 마스터 상태로 변경 후 GARP를 송신 시 네트워크 상태 불안정, 일시적인 트래픽이 집중되어 통신이 안될 수 있음.
– 수 초 정도 기다린 후 GARP 송신.
– grap_master_delay로 설정.
– Default value 5초.
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
VRRP의 설정
lv2는 102으로 변경
• lv1의 예
• lv1과 lv2에서 keepalived를 기동하면 lv1에 VIP가 할당 ifconfig로는 확인 불가, ip 명령으로 확인.
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을 빼더라도 이상동작 확인 불가.
VRRP 인스턴스 분리
<-lv2는 102으로 변경
<-lv2는 102으로 변경<-VRPP마다 고유한 값
<-VRPP마다 고유한 값
VRRP 인스턴스 동기화
• vrrp_sync_group
• 여러 VRRP 인스턴스에서 상태를 동기화시키기 위한 설정.
• 그룹 내 하나의 인스턴스가 Backup이 되는 경우 연동 해서 다른 인스턴스 또한Backup이 된다.
Recommended