티스토리 뷰

LVS(Linux Virtual Server)

  • 리눅스 상에서 로드벨런서(L4 스위치) 역할을 수행하도록 가상 환경을 구성한다.

keepalived

  • IPVS를 이용하여, VIP를 할당하여 가상서버를 구축한다.
  • 리얼서버들의 상태체크를 수행하고, 스케쥴링 알고리즘을 통해서 리얼 서버로 요청을 보낸다.
  • 각각의 VIP 가 할당된 가상 서버를 두 개 구축하고, VRRP용 VIP를 추가로 할당하는 방법으로 로드밸런서 이중화를 할 수 있다.

용어설명

  • IPVS(IP Virtual Server) : 부하분산 기능을 제공하는 네트워크 모듈이다.
  • VRRP(Virtual Router Redundancy Protocol) : Cisco사의 HSRP(Hot Standby Routing Protocol)라는 프로토콜을 기반으로 해서 벤더에 의존하지 않는 다중화 프로토콜이다.
  • ipvsadm : IPVS를 통해서 가상서버를 정의하고 리얼서버를 할당할 수 있다. 또한, 설정 내용이나 접속상황, 전송률, 통 계정 보등을 제공한다.
  • VIP(Virtual IP) : 실제 인터넷에서 정식으로 부여받은 주소가 아니고, 시스템 자체나 동일 네트워크상에서만 통용되는 네트워크 주소.

스케줄링 알고리즘

  • rr(round-robin) : (아무 생각없이) 리얼서버를 처음부터 차례로 선택해간다. 모든 서버로 균등하게 처리가 분산된다.
  • wrr(weighted round-robin) : rr과 같지만 가중치를 가미해서 분산비율을 변경한다. 가중치가 큰 서버일수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋다.
  • lc(least-connection) : 접속수가 가장 적은 서버를 선택한다. 대부분의 경우는 이로써 충분하다. 어떤 알고리즘을 사용하면 좋을지 모를 경우에 사용해도 좋다.
  • wlc(weighted least-connection) : lc와 같지만 가중치를 가미한다. 구체적으로는 "(접속수+1)/가중치"가 최소가 되는 서버를 선택하므로 고성능 서버는 가중치를 크게 하는 것이 좋다.
  • sed(shortest expected delay) : 가장 응답속도가 빠른 서버를 선택한다. 그렇다고 해도 서버에 패킷을 날려 응답 시간을 계측하는 것은 아니다. 상태가 ESTABLISHED인 접속수(이하 active 접속수)가 가장 적은 서버를 선택하는 것일 뿐이다. wlc와 거의 동일하게 동작하지만 wlc에서는 ESTABLISHED 이외의 상태(TIME_WAIT이나 FIN_WAIT 등)인 접속수를 더하는 점이 다르다.
  • nq(never queue) : sed와 동일한 알고리즘이지만 active 접속수가 0인 서버를 최우선으로 선택한다.
  • sh(source hashing) : 소스 IP주소로부터 해시값을 계산해서 분산대상 리얼서버를 선택한다.
  • dh(destination hashing) : 목적지 IP주소로부터 해시값을 계산해서 분산 대상 리얼서버를 선택한다.
  • lblc(locality-basedleast-connection) : 접속수가 "가중치"로 지정한 값을 넘기 전까지는 동일한 서버를 선택한다. 접속수가 "가중치"로 지정한 값을 넘어선 경우는 다른 서버를 선택한다. 모든 서버의 접속수가 "가중치"로 지정한 값을 넘고 있을 경우, 마지막에 선택된 서버가 계속 선택된다.
  • lblcr(locality-based least-connection with replication) : lblc와 거의 같지만 모든 서버의 접속수가 "가중치"로 지정한 값을 넘고 있을 경우는 접속수가 가장 적은 서버가 선택된다.

참고

'엔지니어링' 카테고리의 다른 글

vmstata로 부하 체크  (0) 2020.03.06
RRD 트래픽 저장 및 그래프 그리기  (0) 2020.03.06
SQL 중복 데이터 카운트  (0) 2020.03.05
Ansible 커스텀 모듈 개발  (0) 2020.02.26
Nginx 설정을 Python 코드로 관리  (0) 2020.02.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
페이지
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함