KR100590892B1 - 로드 밸런싱 시스템 및 방법 - Google Patents

로드 밸런싱 시스템 및 방법 Download PDF

Info

Publication number
KR100590892B1
KR100590892B1 KR1020040066076A KR20040066076A KR100590892B1 KR 100590892 B1 KR100590892 B1 KR 100590892B1 KR 1020040066076 A KR1020040066076 A KR 1020040066076A KR 20040066076 A KR20040066076 A KR 20040066076A KR 100590892 B1 KR100590892 B1 KR 100590892B1
Authority
KR
South Korea
Prior art keywords
load
server
load balancing
level
balancing
Prior art date
Application number
KR1020040066076A
Other languages
English (en)
Other versions
KR20060017411A (ko
Inventor
유광선
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040066076A priority Critical patent/KR100590892B1/ko
Publication of KR20060017411A publication Critical patent/KR20060017411A/ko
Application granted granted Critical
Publication of KR100590892B1 publication Critical patent/KR100590892B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 일 측면에 따른 로드 밸런싱 시스템는, 네트워크 트래픽을 처리하는 적어도 하나 이상의 서버로 구성되는 로드밸런싱_멤버, 상기 각 서버의 로드 상태에 따라 분류되는 로드 레벨 수만큼의 로드 레벨별 큐를 포함하는 로드_큐 및 상기 로드밸런싱_멤버와 LB(Load Balancing)제어 패킷을 교환하여 각 서버의 로드 상태를 파악하고, 상기 파악된 각 서버의 로드 상태 정보를 상기 로드 레벨 별로 구분하여 그에 부합하는 상기 로드 레벨별 큐에 저장하며, 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 로드 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 선택하여 작업을 할당하는 로드밸런싱_마스터를 포함하며, 상기 로드밸런싱_마스터는 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 라운드 로빈 방식으로 선택하는 것을 특징으로 한다.

Description

로드 밸런싱 시스템 및 방법{Load Balancing System and Load Balancing Method }
도 1은 LAN 환경에서의 LSMAC 구성 및 동작 흐름도.
도 2는 시스코(Cisco)사의 GLBP(Gateway Load Balancing Protocol)의 구성도.
도 3은 본 발명에 따른 로드 밸런싱 시스템의 논리 블록 구성도.
도 4는 본 발명에 따른 로드밸런싱_멤버의 동작 흐름도.
도 5는 본 발명에 따른 로드밸런싱_마스터의 동작 흐름도.
도 6 내지 도 10은 본 발명에 따른 로드_큐의 바람직한 일 실시예.
*도면의 주요 부분에 대한 부호의 설명*
100 : 라우터(Router) 110 : LSMAC
31 : 로드밸런싱_마스터(Load Balancing Master)
32 : 로드밸런싱_멤버(Load Balancing Member)
33 : 로드_큐(Load_Queue) 610 : 레벨1_큐(Level1_Queue)
620 : 레벨2_큐(Level1_Queue) 630 : 레벨3_큐(Level3_Queue)
601 : 참가 멤버(Joined Members) 602 : 선택 멤버(Selected Member)
본 발명은 네트워크 트래픽의 분산을 제어하는 방법에 관한 것으로, 좀더 구체적으로는 방대한 양의 트래픽이 출입하는 네트워크, 특히 IP 네트워크 상에서 효율적인 트래픽 또는 로드의 분산을 제공할 수 있는 로드 밸런싱(Load Balancing) 시스템 및 방법에 관한 것이다.
로드 밸런싱 기법은 클러스터링 웹 서버(Clustering Web Server)를 이용하는 방법, 게이트웨이를 활용하는 방법, 멀티홈 AS(Multihomed Autonomous System) 구조를 위한 트래픽 부하 분산 방법 등 여러 가지 방식으로 많은 분야에서 유용하게 사용되고 있다. 멀티홈 AS는 둘 이상의 AS와 연결되어 있으며, 통과 트래픽(transit traffic)은 처리하지 않는 AS이다.
가장 광범위하게 사용되는 IP(Internet Protocol) 버전 IPv4에서 IP 주소의 부족을 해결하기 위하여 NAT(Network Address Translation)가 사용된다. NAT를 이용하면 사설 네트워크와 IP 주소 부족의 문제점을 해결하고 보안을 증가시킬 수 있으며, 사설 네트워크에 위치한 특정 서비스의 서버들을 위한 로드 분산(load sharing)을 위하여 사용될 수 있다. NAT를 이용하여 새로운 세션(Session)을 맺어야 하는 경우에 서버 풀(Pool)에 있는 특정 서버에게 세션 요청을 지정하여 우회함 으로써 여러 서버들 간의 로드를 분산시킬 수 있다.
로드 분산을 위해 사용할 수 있는 여러 가지 방법으로는, 라운드-로빈(Round-Robin), 최소로드우선(Least Load First), 최소트래픽우선(Least Traffic First), 최소가중로드우선(Least Weighted Load First), 응답타임감시(Response Time Monitoring) 등의 알고리즘이 사용되고 있다.
상술한 바와 같이, 기존에 제시되었던 로드 분산 기법은 모두 일정한 형태의 문제점을 가지고 있다. 일반적으로 제시되고 있는 로드 분산 방법에 대한 문제점을 정리하여 보면 다음과 같다.
라운드-로빈 방법의 경우 서버나 라우터에 대한 새로운 세션 요구를 서버 풀에서 라운드-로빈 방식으로 돌아가면서 지정한다. 이 방식은 구현이 간단하나 서버의 부하를 고려하지 않아 로드 분산이 균등하게 나타나기 어려운 문제점이 있다.
최소로드우선(Least Load First) 방법의 경우 서버 풀에서 로드가 가장 적게 걸리는 서버를 지정하여 새로운 세션의 연결을 시도하는 방식이다. 그러나 서버마다 처리할 수 있는 용량과 자원이 다르므로 단순하게 로드만을 계산하는 것 역시 로드 분산에 문제가 있다. 또한 가장 적은 로드가 걸린 서버를 찾아내기 위한 연산 과정이 복잡해 또 다른 로드를 발생시킬 가능성이 있다.
최소트래픽우선(Least Traffic First) 방법은 트래픽의 흐름을 관찰하여 가장 트래픽이 적은 쪽의 서버를 지정하는 방식이다. 트래픽의 흐름을 계산하는 과정이 복잡하며 트래픽 자체만으로 서버의 처리 능력을 계산해서 적절한 부하 분산 효과를 얻기 어려운 문제가 발생한다.
최소가중로드우선(Least Weighted Load First) 방법은 최소로드우선 방식의 문제점을 개선하기 위해 각 서버의 처리 용량을 고려하여 새로운 세션마다 가중치(weight)를 부여하여 로드를 계산하는 방식이다. 일반적으로는 가장 좋은 방법이나 가중치를 부여하여 가장 적은 로드를 갖는 서버를 찾기 위한 방법이 어렵고 복잡하여 구현상 어려움이 많은 단점이 있다.
응답시간관찰(Response Time Monitoring) 방법은 주기적으로 응답 시간을 계산하기 위한 패킷을 전송해 가장 짧은 응답 시간을 갖는 서버를 지정하는 방식이다. 이 방법 역시 응답 시간이 직접적으로 서버의 로드와 연관된 것이 아니므로 효율적인 로드 분산을 얻기에는 문제가 있다.
본 발명은 상기의 문제점을 해결하기 위해, 로드 밸런싱 마스터와 로드 밸런싱 멤버간의 정보 제공을 위한 제어 패킷량을 최소화하여 네트워크에서 자주 사용되는 클러스터링 웹 서버, 게이트웨이, 멀티홈 AS 구현을 위한 로드 밸런싱 시스템 및 방법을 제공함을 그 목적으로 한다.
본 발명의 일 측면에 따른 로드 밸런싱 시스템는, 네트워크 트래픽을 처리하는 적어도 하나 이상의 서버로 구성되는 로드밸런싱_멤버, 상기 각 서버의 로드 상태에 따라 분류되는 로드 레벨 수만큼의 로드 레벨별 큐를 포함하는 로드_큐 및 상 기 로드밸런싱_멤버와 LB(Load Balancing)제어 패킷을 교환하여 각 서버의 로드 상태를 파악하고, 상기 파악된 각 서버의 로드 상태 정보를 상기 로드 레벨 별로 구분하여 그에 부합하는 상기 로드 레벨별 큐에 저장하며, 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 로드 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 선택하여 작업을 할당하는 로드밸런싱_마스터를 포함하며, 상기 로드밸런싱_마스터는 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 라운드 로빈 방식으로 선택하는 것을 특징으로 한다.
상기 LB 제어 패킷은, 로드밸런싱_멤버가 로드밸런싱_마스터에게 새로운 멤버로서 등록을 요청하는 참가요청 메시지와 로드밸런싱_멤버가 로드밸런싱_마스터에게 자신의 로드 레벨을 보고하는 로드레벨정보 메시지를 포함한다.
본 발명의 다른 측면에 따른 로드 밸런싱 방법은, 상기 로드밸런싱_멤버와 상기 로드밸런싱_마스터 간 LB 제어 패킷을 교환하여 각 서버의 로드 상태를 파악하는 단계, 상기 파악된 각 서버의 로드 상태를 기 설정된 적어도 하나 이상의 로드 레벨로 구분하고 그에 부합하는 로드 레벨별 큐에 저장하는 단계 및 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 로드레벨 큐에 저장된 적어도 하나의 서버 중 하나를 선택해 작업을 할당하는 단계를 포함한다.
상기 로드 레벨의 수는 관리자의 선택에 따라 설정 및 변경 가능하며, 상기 각 서버의 로드 상태는 각 서버 내에서 일정 시간 동안 측정되는 CPU 사용률의 평균으로 나타나는 CPU 로드를 기준으로 설정하되, 각 서버가 송수신하는 트래픽 양 을 추가 기준으로 설정 가능하며, 상기 선택 단계는 최하위 로드레벨 큐에 저장된 서버들 중 라운드 로빈 방식으로 하나의 서버를 선택하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 로드 밸런싱 방법은, 상기 각 서버로부터 새로운 로드 밸런싱 멤버로서 등록을 요청하는 참가요청 메시지를 수신하는 단계, 상기 참가요청 메시지와 함께 혹은 별개로 전송되는 각 서버의 로드레벨정보 메시지로부터 각 서버의 로드 상태를 파악하는 단계, 상기 파악된 각 서버의 로드 상태를 기 설정된 적어도 하나 이상의 로드 레벨로 구분하고 그에 부합하는 로드 레벨별 큐에 저장하는 단계 및 로드 레벨 정보가 저장된 로드 레벨 큐 중에서 최하위 로드레벨 큐에 저장된 적어도 하나의 서버 중 하나를 라운드 로빈 방식으로 선택해 작업을 할당하는 단계를 포함한다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 살펴보면서 구체적으로 설명하기로 한다.
도 1 및 도 2는 본 발명에 의한 로드 밸런싱 시스템 및 방법의 적용이 가능한 네트워크의 바람직한 실시예들을 제시하고 있다.
도 1은 LAN 환경에서의 LSMAC 구현을 나타내고 있다.
랜(LAN) 환경에서 클러스터 기반 컴퓨터의 처리 성능을 효율적으로 높이기 위하여 기존의 LSNAT을 대체할 수 있는 것이 LSMAC(Load Sharing Media Access Control) 방법이다. LSMAC은 클러스터 기반 컴퓨터의 사용을 위하여 MAC(Media Access Control) 주소를 변경하여 통신하는 방식을 제안하며, 일반적인 로드 분산 알고리즘에 기반하여 서버 중 하나를 선택하도록 하였다. 이 기법은 여러 개의 루트들로 구성되는 네트워크, 즉 멀티홈 AS 네트워크를 위하여 사용될 수 있는 로드 분산 기법은 제시되지 않고 있다.
도 1의 라우터(100)가 외부 네트워크로부터 IP 주소 A에 대한 HTTP(hypertext transfer protocol) 요청을 받으면(S11), 라우터(100)는 LSMAC(110)로 서버 할당 요구를 하게 된다. 이 때, 각각의 서버 1, 서버 2, 서버 3은 각각 자신의 실제 IP 주소로 B1, B2, B3을 가지나, 가상 IP(IP_alias) 주소는 모두 동일하게 A를 가진다. 외부 네트워크에서 본다면 라우터(100)와 연결된 서버 모두가 동일한 IP를 가져 하나의 IP로 관리되는 셈이다.
서버 할당 요구를 받은 LSMAC(110)은 적절한 로드 분산 알고리즘을 사용하여 서버 2(102)를 할당할 것을 결정하고(S13), 서버 2(102)는 HTTP의 요청에 따라 해당 업무를 수행하게 된다(S14).
도 1에서는 하나의 루트로 구성되는 네트워크만을 살펴보았다. 도 1과 구별되는 경우로, 여러 개의 루트들로 구성되는 네트워크에서 로드 분산을 실현하기 위해, 새로운 세션이 필요한 경우 여러 개의 루트들로 동일한 패킷을 보내어 응답이 가장 빨리 오는 루트를 선택하고 나머지 응답에 대해서는 거부 패킷을 보내는 방식이 제안되었다. 여기에 추가로 단순한 응답 이외에 이와 같은 과정을 필요한 범주(criteria)마다 반복하여 여러 개의 루트 중에 가장 적절한 루트를 계산하는 방식도 선을 보였다.
도 2는 시스코(Cisco)사의 GLBP(Gateway Load Balancing Protocol)의 사용 및 구성을 보여주고 있다.
도 2가 나타내는 네트워크가 바로 여러 개의 루트들로 구성되는 경우이며, 여기서는 시스코사의 예를 들고 있다. GLBP는 기존의 VRRP(Virtual Router Redundancy Protocol)와 HSRP(Hot Standby Router Protocol)와 같이 라우터의 이중화를 제공하면서 추가로 라우터 그룹 내에서 로드 분산을 할 수 있는 방법으로 제시된 것이다. 특정 라우터가 AVG(Active Virtual Gateway)로 동작하면서 나머지 라우터들인 AVF(Active Virtual Forwarder)들에게 ARP(Address Resolution Protocol)를 응답시 부하가 분산될 수 있도록 하는 기법이 사용된다.
도 2의 GLBP에서 로드 분산을 위해 사용되는 기법은 주로, 호스트-의존형(host-dependent), 라운드-로빈(round-robin), 가중형(weighted)의 3 가지인데, 이들은 RFC2391 LSNAT에서 명시하고 있는 일반적인 로드 분산 기법과 유사하다.
이렇듯 여러 개의 루트 경로(path)를 갖는 구성에서 IP 트래픽에 대한 로드 분산을 이루기 위한 알고리즘은 여러 개의 루트 중에 하나를 선택하여 여러 곳으로 패킷을 복사하여 전송 또는 수신하기 때문에 제어 패킷이 추가적으로 많이 필요하여 트래픽 및 성능 처리에 오버헤드(overhead)가 많이 부과된다. 매번 새로운 IP 데이터그램(datagram)에 대해 처리하여야 하므로 그 부하는 무시할 수 없을 정도라 할 것이다.
본 발명에서는 로드 밸런싱 방법으로, 일정 부하 이하로 업무를 처리하고 있는 서버 중 하나를 선택하는 방법을 택하고 있다. 이는 서버 풀(pool)에서 가중치(weight)를 적용하여 현재 가장 적은 로드를 가지고 있는 서버를 선택하는 방식과 는 다르다. 로드 분산을 위하여 반드시 가장 적은 로드를 선택하기 위하여 복잡한 계산과 절차를 거치는 것보다는 간단히 일정한 로드 이하의 서버를 선택하게 함으로써 구현 및 처리 방식을 단순화시키는 것이 기본이다. 이 방식은 일정 로드 이하의 서버를 선택하기 때문에 전체 부하 처리에도 문제를 발생시키지 않는다.
도 3은 본 발명에 따른 로드 밸런싱 시스템의 논리 블록 구성을 나타낸 것이다.
본 발명에 따른 로드 밸런싱 시스템은 그 주요 구성요소로, 로드밸런싱_마스터(Load Balancing Master)(31), 로드_큐(Load_Queue)(33)를 포함하며, 로드밸런싱_마스터(31)는 네트워크의 각종 서버로 구성되는 로드밸런싱_멤버(Load Balancing Member)(32)와 연동하여 각 서버의 로드 상태에 따라 어느 서버에 일을 할당할 것인지 결정하게 된다.
로드밸런싱_마스터(31)는 시동 직후 로드밸런싱_멤버(32)들의 정보를 관리하기 위한 로드_큐(33)를 초기화하고 로드밸런싱_멤버(32)로부터 수신되는 LB(Load Balancing) 패킷을 해석하여 로드 분산 알고리즘을 구현함으로써, 본 발명에 따른 로드 밸런싱 시스템의 핵심 역할을 한다.
로드밸런싱_멤버(32)는 로드밸런싱_마스터(31)에 연동되어 로드밸런싱_마스터(31)의 로드 밸런싱 알고리즘에 따라 로드가 적절히 분산되는 방향으로 일을 진행하는 각종 서버라고 볼 수 있으며, 적어도 하나 이상의 서버들로 구성된다.
로드_큐(33)는 로드 레벨에 따라 설정된 하나 이상의 큐로 이루어지며, 로드 밸런싱_멤버(32)에 부과되는 로드 상태를 각 로드 레벨별로 구분되어진 큐에서 저장하게 된다.
로드밸런싱_마스터(31)와 로드밸런싱_멤버(32) 사이에서 송수신되는 메시지를 정리하여 보면 다음과 같다.
JOIN_REQUEST는 새로운 로드밸런싱_멤버(32)가 로드밸런싱_마스터(31)에게 추가로 등록되고자 함을 요청하는 메시지이다. 각 로드밸런싱_멤버(32)의 로드 상태에 대한 정보를 포함하는 LOAD_LEVEL_INFO가 부가적으로 포함될 수 있다. LOAD_LEVEL_INFO는 JOIN_REQUEST 메시지와 함께 전송되는 경우도 있으나, 로드밸런싱_멤버(32)가 로드밸런싱_마스터(31)에게 변경된 로드 레벨 정보를 알려주는 경우에는 단독으로 전송된다.
LEAVE_REQUEST는 기존의 로드밸런싱_멤버(32)가 더 이상 로드밸런싱_마스터(31)의 제어를 받지 않겠다는 의사를 표시하고자 하는 경우 사용되는 메시지이다.
로드 분산을 사용하는 서비스 프로그램의 내부 메시지로는, 로드밸런싱_멤버(32) 중 하나를 선택하여 알려줄 것을 로드밸런싱_마스터(31)에게 요청하는 SELECT_SERVER 메시지와, 로드밸런싱_마스터(31)가 로드 밸런싱 알고리즘에 의해 하나의 멤버를 선택해 알려주는 SELECT_RESPONSE 메시지가 있다.
도 3의 로드 밸런싱 시스템는 상기한 바와 같은 서버 내의 CPU에만 한정되어 존재하는 것은 아니며, 게이트웨이(gateway)나 라우터(router)에의 적용 또한 가능하다.
도 4는 본 발명에 따른 로드밸런싱_멤버의 동작 흐름을 나타내고 있다.
로드밸런싱_멤버(32)는 로드 밸런싱 시스템의 시동 직후 로드밸런싱_마스터(31)에게 JOIN_REQUEST 메시지를 전송해 멤버로서의 가입을 알린다(S41). JOIN_REQUEST 시점에서 자신의 처리 로드를 계산할 수 있으면 JOIN_REQUEST에 같이 실어서 보내고, 그렇지 않은 경우에는 LOAD_LEVEL_INFO 메시지를 보내어 현재의 로드 상태를 알린다(S42). 그 이후에는 일정한 주기로 로드 상태를 모니터링하고(S43), 로드 레벨이 변경되는 사건이 발생하는 경우 로드밸런싱_마스터(31)에게 새로운 LOAD_LEVEL_INFO 메시지를 전송한다(S43, S44).
도 5는 본 발명에 따른 로드밸런싱_마스터의 동작 흐름을 나타내고 있다.
로드밸런싱_마스터(31)는 로드 밸런싱 시스템의 시동 직후 로드밸런싱_멤버(32)들의 정보를 관리하는 로드_큐(33)를 초기화하고(S51), LB 패킷(Load Balancing Packet)이 수신되기를 기다린다(S52).
로드밸런싱_멤버(32)로부터 JOIN_REQUEST 메시지가 도달하면 새로운 멤버를 MEMBER_LIST에 추가한다(S53). LOAD_LEVEL_INFO 메시지가 오면 해당 멤버에 대한 로드 레벨에 맞추어서 로드_큐에 추가하거나 기존의 로드_큐 레벨에서 새로운 로드_큐 레벨로 변경한다(S54). SELECT_SERVER 메시지가 오면 가장 적은 로드를 나타내는 로드_큐(33) 레벨에서 라운드 로빈 방식으로 멤버를 선택해 정보를 전송한다(S56).
한편, 링크 실패(fail) 등의 이유로 특정한 로드밸런싱_멤버를 사용하지 못 하게 되는 경우는, 관리자가 CLI(Command Line Interface)를 통해 Member_Remove 명령을 내릴 수 있으며, 이 명령을 수신한 로드밸런싱_마스터(31)는 대상 멤버가 속해있는 레벨_큐에서 해당 멤버를 삭제한다.
도 6 내지 도 10은 본 발명에 따른 로드_큐의 바람직한 일 실시예를 나타낸 것이다.
로드_큐(33)는 레벨 별로 레벨1_큐(610), 레벨2_큐(620), 레벨3_큐(630)를 가지며, 참가 멤버(Joined Members)(601)는 각 레벨에 속한 멤버의 정보를 포함하며, 선택 멤버(Selected Member)(602)는 최하위 레벨 중 라운드 로빈 방식으로 해당 업무를 담당하게 될 선택 멤버 정보를 가진다.
도 6에 나타난 로드_큐(33)는 총 3개의 로드 레벨별 큐를 가진다. 현재 3개의 로드밸런싱_멤버(32)가 등록된 상태이며, 라운드 로빈 방식에 의해 멤버 2가 선택되었음을 보여주고 있다. 레벨 1은 30% 이하의 CPU 처리 상태를 나타내는 Not_Busy_State이고, 레벨 2는 30% - 60%의 CPU 처리 상태를 나타내는 Busy_State이며, 레벨 3은 60% 이상의 처리 상태를 나타낸다. 즉, 서버의 로드는 각 서버 내에서 일정 시간 동안 측정되는 CPU 사용률의 평균으로 나타나는 CPU 로드를 기준으로 설정하되, 각 서버가 송수신하는 트래픽 양을 추가 기준으로 설정하는 것 또한 가능하다 할 것이다.
로드_큐의 세분화 정도(granularity)는 4단계, 5단계 이상으로 충분히 확장 가능하며, 레벨 간의 범위 또한 네트워크의 특징에 따라 관리자의 선택으로 조정 가능함은 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 쉽게 도출해 낼 수 있을 것이다.
도 7의 로드_큐에는, 레벨1_큐(601)에 멤버 1, 멤버 3이 포함되고, 레벨2_큐(620)에 멤버 2가 속해 있다. 도 7의 상태는 도 6의 상황에서 멤버 2로부터 멤버 2가 레벨 2로 로드가 변경되었음을 알리는 LOAD_LEVEL_INFO를 전송해 온 경우를 나타낸 것이다. 외부로부터 서버 지정 요청이 올 경우 최하위 레벨에 속한 멤버들 가운데 라운드 로빈 방식으로 하나의 서버를 선택해야 하며, 도 7의 경우에는 최하위 레벨이 레벨1_큐(610)이고, 이 중 라운드 로빈 방식에 의해 멤버 3이 선택되어 있음을 알 수 있다.
도 8은 도 7에서 레벨1_큐(610)에 있던 멤버 1이 레벨 2로 변경된 경우를 나타내고 있다. 레벨1_큐(610)에는 이제 멤버 3만 남게 되었으므로, 선택 가능한 멤버는 멤버 3뿐이다. 도 8의 선택 멤버(601)도 멤버 3을 포함하고 있음을 나타내고 있다.
도 9는 멤버 3으로부터 로드 레벨 2 상태임을 LOAD_LEVEL_INFO를 통해 알려온 경우이다. 이렇게 되면, 레벨1_큐는 아무런 멤버도 포함하지 않는 상태로 비어 있게 되며, 레벨2_큐에 3개의 멤버가 모두 속해 있게 된다. 레벨1_큐가 비어 있는 상태이므로, 최소 로드 레벨큐는 레벨2_큐가 된다. SELECT_SERVER 요청에 대해서는, 레벨2_큐에 속한 3개의 멤버 중 라운드 로빈 방식에 의해 멤버 3이 선택된 상태에 있다.
도 10은 멤버 2의 CPU의 로드가 낮아져 로드 레벨 1로 변경이 일어났음을 알 리는 LOAD_LEVEL_INFO가 수신된 상태이며, 이 경우 최소 로드 레벨큐는 레벨1_큐이며, 레벨1_큐에 속하는 멤버 2만이 선택 멤버(602)가 될 수 있다.
본 발명은, 몇 단계의 로드 레벨을 설정해 놓고 동일 로드 레벨 내에서는 라운드 로빈이라는 간단한 방식을 선택해 로드 분산을 구현함으로써 로드밸런싱_마스터와 로드밸런싱_멤버 간의 정보 교환을 위한 제어 패킷량을 최소화하고 최소 로드 계산을 위한 오버헤드를 줄임으로써, 간단하면서도 효율적인 트래픽 로드의 분산을 제공하며, 널리 통용되는 클러스터링 웹 서버, 게이트웨이, 멀티홈 AS 구현을 위한 트래픽 부하의 분산 등의 분야에 쉽게 적용될 수 있는 이점을 가진다.

Claims (15)

  1. 로드 밸런싱 시스템에 있어서,
    네트워크 트래픽을 처리하는 적어도 하나 이상의 서버로 구성되는 로드밸런싱_멤버;
    상기 각 서버의 로드 상태에 따라 분류되는 로드 레벨 수만큼의 로드 레벨별 큐를 포함하는 로드_큐; 및
    상기 로드밸런싱_멤버와 LB(Load Balancing)제어 패킷을 교환하여 각 서버의 로드 상태를 파악하고, 상기 파악된 각 서버의 로드 상태 정보를 상기 로드 레벨 별로 구분하여 그에 부합하는 상기 로드 레벨별 큐에 저장하며, 로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 로드 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 선택하여 네트워크 트래픽을 할당하는 로드밸런싱_마스터를 포함하는 로드 밸런싱 시스템.
  2. 제 1항에 있어서,
    상기 로드_큐는,
    상기 각 서버의 로드 정도에 따라 분류한 로드 레벨별 큐에 상기 로드밸런싱_멤버를 구성하는 서버들의 정보를 각 서버의 로드 상태에 따라 구분하여 저장하는 것을 특징으로 하는 로드 밸런싱 시스템.
  3. 제 1항에 있어서,
    상기 로드밸런싱_마스터는,
    로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 레벨 큐가 포함하는 적어도 하나의 서버 중 하나를 라운드 로빈 방식으로 선택하는 것을 특징으로 하는 로드 밸런싱 시스템.
  4. 제 1항에 있어서,
    상기 로드_큐는,
    상기 로드밸런싱_마스터에 의해 관리되는 로드밸런싱_멤버의 로드 상태 정보를 포함하는 참가 멤버 및 상기 로드밸런싱_마스터에 의해 선택되는 선택 멤버를 포함하는 것을 특징으로 하는 로드 밸런싱 시스템.
  5. 제 1항에 있어서,
    상기 각 서버의 로드 상태는,
    각 서버 내에서 일정 시간 동안 측정되는 CPU 사용률의 평균으로 나타나는 CPU 로드를 기준으로 설정하되, 각 서버가 송수신하는 트래픽 양을 추가 기준으로 설정 가능한 것을 특징으로 하는 로드 밸런싱 시스템.
  6. 제 1항에 있어서,
    상기 로드 레벨의 수는,
    관리자의 선택에 따라 설정 및 변경 가능한 것을 특징으로 하는 로드 밸런싱 시스템.
  7. 제 1항에 있어서,
    상기 로드밸런싱_마스터 또는 상기 로드_큐는 각종 서버, 라우터, 게이트웨이 중 적어도 하나의 CPU 내부에 위치하는 것을 특징으로 하는 로드 밸런싱 시스템.
  8. 제 1항에 있어서,
    상기 LB 제어 패킷은,
    로드밸런싱_멤버가 로드밸런싱_마스터에게 새로운 멤버로서 등록을 요청하는 참가요청 메시지; 와
    로드밸런싱_멤버가 로드밸런싱_마스터에게 주기적으로 자신의 로드 레벨 정보를 보고하는 로드레벨정보 메시지를 포함하는 것을 특징으로 하는 로드 밸런싱 시스템.
  9. 적어도 하나의 서버로 구성되는 로드밸런싱_멤버와 로드밸런싱_마스터를 이용한 네트워크의 로드 밸런싱 방법에 있어서,
    상기 로드밸런싱_멤버와 상기 로드밸런싱_마스터 간 LB 제어 패킷을 교환하여 각 서버의 로드 상태를 파악하는 단계;
    상기 파악된 각 서버의 로드 상태를 기 설정된 적어도 하나 이상의 로드 레벨로 구분하고 그에 부합하는 로드 레벨별 큐에 저장하는 단계; 및
    로드 레벨 정보를 저장하고 있는 로드 레벨별 큐 중 최하위 로드레벨 큐에 저장된 적어도 하나의 서버 중 하나를 선택해 네트워크 트래픽을 할당하는 단계를 포함하는 로드 밸런싱 방법.
  10. 제 9항에 있어서,
    상기 로드 레벨의 수는,
    관리자의 선택에 따라 설정 및 변경 가능한 것을 특징으로 하는 로드 밸런싱 방법.
  11. 제 9항에 있어서,
    상기 각 서버의 로드 상태는,
    각 서버 내에서 일정 시간 동안 측정되는 CPU 사용률의 평균으로 나타나는 CPU 로드를 기준으로 설정하되, 각 서버가 송수신하는 트래픽 양을 추가 기준으로 설정 가능한 것을 특징으로 하는 로드 밸런싱 방법.
  12. 제 9항에 있어서,
    상기 LB 제어 패킷은,
    로드밸런싱_멤버가 로드밸런싱_마스터에게 새로운 멤버로서 등록을 요청하는 참가요청 메시지; 와
    로드밸런싱_멤버가 로드밸런싱_마스터에게 주기적으로 자신의 로드 레벨 정보를 보고하는 로드레벨정보 메시지를 포함하는 것을 특징으로 하는 로드 밸런싱 방법.
  13. 제 9항에 있어서,
    상기 선택 단계는,
    최하위 로드레벨 큐에 저장된 서버들 중 라운드 로빈 방식으로 하나의 서버를 선택하는 것을 특징으로 하는 로드 밸런싱 방법.
  14. 제 9항에 있어서,
    상기 로드 레벨별 저장 단계는,
    상기 로드밸런싱_마스터에 의해 관리되는 로드밸런싱_멤버의 로드 정보를 포함하는 참가 멤버 및 상기 로드밸런싱_마스터에 의해 선택되는 선택 멤버를 구분하여 저장하는 것을 특징으로 하는 로드 밸런싱 방법.
  15. 적어도 하나의 서버를 포함하는 네트워크의 로드를 관리하는 로드밸런싱_멤버의 로드 관리 방법에 있어서,
    상기 각 서버로부터 새로운 로드 밸런싱 멤버로서 등록을 요청하는 참가요청 메시지를 수신하는 단계;
    상기 참가요청 메시지와 함께 혹은 별개로 전송되는 각 서버의 로드레벨정보 메시지로부터 각 서버의 로드 상태를 파악하는 단계;
    상기 파악된 각 서버의 로드 상태를 기 설정된 적어도 하나 이상의 로드 레벨로 구분하고 그에 부합하는 로드 레벨별 큐에 저장하는 단계; 및
    로드 레벨 정보가 저장된 로드 레벨 큐 중에서 최하위 로드레벨 큐에 저장된 적어도 하나의 서버 중 하나를 라운드 로빈 방식으로 선택해 네트워크 트래픽을 할당하는 단계를 포함하는 로드 밸런싱 방법.
KR1020040066076A 2004-08-20 2004-08-20 로드 밸런싱 시스템 및 방법 KR100590892B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040066076A KR100590892B1 (ko) 2004-08-20 2004-08-20 로드 밸런싱 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040066076A KR100590892B1 (ko) 2004-08-20 2004-08-20 로드 밸런싱 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20060017411A KR20060017411A (ko) 2006-02-23
KR100590892B1 true KR100590892B1 (ko) 2006-06-19

Family

ID=37125496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040066076A KR100590892B1 (ko) 2004-08-20 2004-08-20 로드 밸런싱 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100590892B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104581219B (zh) * 2014-12-22 2018-01-23 浙江工业大学 一种流媒体转发服务器的控制方法
KR102016683B1 (ko) * 2015-02-26 2019-08-30 한국전자통신연구원 소프트웨어 정의 네트워크의 모니터링 기능 자원 자율 스케일링 장치 및 방법
KR102058541B1 (ko) * 2017-12-11 2020-01-22 엔에이치엔 주식회사 서버 모니터링 방법 및 이를 이용한 서버 모니터링 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040098919A (ko) * 2003-05-16 2004-11-26 엘지전자 주식회사 이동통신 시스템에서 중계선 과부하시의 호 처리 시스템및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040098919A (ko) * 2003-05-16 2004-11-26 엘지전자 주식회사 이동통신 시스템에서 중계선 과부하시의 호 처리 시스템및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Distance measurement in volunteer: NCA 2004

Also Published As

Publication number Publication date
KR20060017411A (ko) 2006-02-23

Similar Documents

Publication Publication Date Title
US11336715B2 (en) Load balancing method, apparatus and system
JP6129928B2 (ja) アジャイルデータセンタネットワークアーキテクチャ
Li et al. An effective path load balancing mechanism based on SDN
Koerner et al. Multiple service load-balancing with OpenFlow
EP3100438B1 (en) An anycast based, wide area distributed mapping and load balancing system
US6963917B1 (en) Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
CN104272708B (zh) 带有到服务器群组的无状态第一级分组分布和到群组内某个服务器的有状态第二级分组分布的二级分组分布
US9843630B2 (en) System and method for distributed load balancing with load balancer clients for hosts
EP2514152B1 (en) Distributed routing architecture
JP6585837B2 (ja) ユーザの移行
US20190260670A1 (en) System and method of flow aware resilient ecmp
US20140359698A1 (en) System and method for distributed load balancing with distributed direct server return
US20120075991A1 (en) Network system, control method thereof and controller
CN107846364A (zh) 一种报文的处理方法和装置
CN113014611A (zh) 一种负载均衡方法及相关设备
US20200296075A1 (en) Port address translation scalability in stateful network device clustering
Prabakaran et al. Software defined network: load balancing algorithm design and analysis.
WO2023284259A1 (zh) 地址分配方法、地址分配系统及计算机可读存储介质
JP5637749B2 (ja) パケット中継装置
Badonnel et al. Dynamic pull-based load balancing for autonomic servers
KR100590892B1 (ko) 로드 밸런싱 시스템 및 방법
Cui et al. PLAN: a policy-aware VM management scheme for cloud data centres
Hwang et al. Load balancing and routing mechanism based on software defined network in data centers
WO2023207189A1 (zh) 负载均衡方法及系统、计算机存储介质、电子设备
Yoo et al. TeaVisor: network hypervisor for bandwidth isolation in SDN-NV

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee