Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.3. LVS 스케줄링 개요

LVS 사용 장점 중 하나는 실제 서버 풀에서 유연성있게 IP 수준 로드 밸런싱을 실행할 수 있다는 것입니다. 즉, LVS 설정 시 관리자가 스케줄링 알고리즘을 유연성있게 선택할 수 있습니다. 클라이언트와 계층 DNS 시스템의 캐쉬 특성 때문에 부하가 불균등하게 분산되는 라운드 로빈 (Round-Robin) DNS와 같이 LVS 로드 밸런싱은 비교적 유연하지 못한 방식 보다 우수합니다. 또한 네트워크 패킷 수준에서의 로드 밸런싱은 컴퓨터 오버헤드를 최소화하고 확장성을 최대화하기 때문에 LVS 라우터에 의해 사용되는 저수준 (low-level) 필터링 기술이 어플리케이션 수준 요청 포워딩보다 이점을 갖습니다.
Using scheduling, the active router can take into account the real servers' activity and, optionally, an administrator-assigned weight factor when routing service requests. Using assigned weights gives arbitrary priorities to individual machines. Using this form of scheduling, it is possible to create a group of real servers using a variety of hardware and software combinations and the active router can evenly load each real server.
LVS 스케줄링 메카니즘은 IP 가상 서버 또는 IPVS 모듈이라는 커널 패치에 의해 제공됩니다. 이러한 모듈은 단일 IP 주소에 있는 다중 서버와 잘 작동하게 고안된 레이어 4 (L4) 전송 레이어 스위칭을 활성화합니다.
실제 서버로 패킷을 효과적으로 추적하고 라우트하기 위해 IPVS는 커널에 IPVS 테이블을 만듭니다. 이러한 테이블은 가상 서버에서의 요청을 되돌리고 풀에 있는 실제 서버에서 복귀하기 위해 활성 LVS 라우터에 의해 사용됩니다. IPVS 테이블은 ipvsadm — 사용 가능성에 따라 클러스터 멤버를 추가 또는 삭제 유틸리티에 의해 지속적으로 업데이트됩니다.

1.3.1. 스케줄링 알고리즘

The structure that the IPVS table takes depends on the scheduling algorithm that the administrator chooses for any given virtual server. To allow for maximum flexibility in the types of services you can cluster and how these services are scheduled, Red Hat Enterprise Linux provides the following scheduling algorithms listed below. For instructions on how to assign scheduling algorithms refer to 4.6.1절. “VIRTUAL SERVER 하부 섹션”.
Round-Robin Scheduling
각각의 요청을 실제 서버의 풀로 순차적으로 배분하는 방식입니다. 이러한 알고리즘을 사용하여 용량이나 부하량을 고려하지 않고 모든 실제 서버를 동일하게 다룹니다. 이러한 스케줄링 모델은 라운드 로빈 DNS 방식과 유사하지만 호스트 기반이 아닌 네트워크 연결 기반의 보다 세분화된 방식입니다. 또한 LVS 라운드 로빈 스케줄링은 캐쉬된 DNS 쿼리에 의해 불균등하게 분산되지 않습니다.
Weighted Round-Robin Scheduling
Distributes each request sequentially around the pool of real servers but gives more jobs to servers with greater capacity. Capacity is indicated by a user-assigned weight factor, which is then adjusted upward or downward by dynamic load information. Refer to 1.3.2절. “서버 가중치 및 스케줄링 ” for more on weighting real servers.
가중치 기반 라우드 로빈 스케줄링은 풀에 있는 실제 서버의 용량이 다를 경우 선택할 수 있는 사항입니다. 하지만, 요청 부하량이 아주 다양할 경우, 더 가중치가 있는 서버가 요청 공유량보다 더 많이 응답할 수 있습니다.
Least-Connection
가장 접속이 적은 실제 서버로 더 많은 요청을 배분하는 방식입니다. 이는 동적인 스케줄링 알고리즘 유형 중 하나로, IPVS 테이블을 통해 실제 서버로의 라이브 연결을 추적하기 때문에 요청 부하에 극도로 다양한 처리량이 있을 경우 유용합니다. 각각의 노드에 대략 비슷한 처리 용량이 있는 실제 서버 풀의 경우에도 적합합니다. 서버 그룹에 다른 처리 용량이 있을 경우, 가중치 기반 최소 접속 스케줄링이 더 적합합니다.
Weighted Least-Connections (default)
Distributes more requests to servers with fewer active connections relative to their capacities. Capacity is indicated by a user-assigned weight, which is then adjusted upward or downward by dynamic load information. The addition of weighting makes this algorithm ideal when the real server pool contains hardware of varying capacity. Refer to 1.3.2절. “서버 가중치 및 스케줄링 ” for more on weighting real servers.
Locality-Based Least-Connection Scheduling
목적지 IP와 관련하여 가장 접속이 적은 서버로 더 많은 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에서 사용됩니다. 이는 서버가 서버 처리 용량을 초과하지 않고 서버가 반부하 상태에 있지 않을 경우 IP 주소를 최소로 부하된 실제 서버로 할당하여 IP 주소의 패킷을 해당 주소의 서버로 라우팅합니다.
Locality-Based Least-Connection Scheduling with Replication Scheduling
목적지 IP와 관련하여 가장 접속이 적은 서버로 더 많은 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에 사용됩니다. 대상 IP 주소를 실제 서버 노드의 서브셋으로 묶는 다는 점에서 LBLC 스케줄링과 다릅니다. 이는 서브셋에 있는 가장 접속이 적은 서버로 요청을 라우트합니다. 목적지 IP 주소에 대해 모든 노드가 처리 용량을 초과할 경우, 가장 접속이 적은 실제 서버를 실제 서버의 전체 풀에서 목적지 IP의 실제 서버에 대한 서브셋으로 추가하여 해당 목적지 IP 주소에 대한 새로운 서버를 복사합니다. 최고로 과부화된 노드는 실제 서버 서브셋에서 빠지게 됩니다.
Destination Hash Scheduling
정적 해쉬 테이블에 있는 목저지 IP를 찾아 실제 서버의 풀로 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에서의 사용을 위해 고안되었습니다.
Source Hash Scheduling
정적 해쉬 테이블에 있는 소스 IP를 찾아 실제 서버의 풀로 요청을 배분하는 방식입니다. 이러한 알고리즘은 여러 방화벽이 있는 LVS 라우터에 사용됩니다.