KR100478346B1 - 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템 - Google Patents

그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템 Download PDF

Info

Publication number
KR100478346B1
KR100478346B1 KR1020030073461A KR20030073461A KR100478346B1 KR 100478346 B1 KR100478346 B1 KR 100478346B1 KR 1020030073461 A KR1020030073461 A KR 1020030073461A KR 20030073461 A KR20030073461 A KR 20030073461A KR 100478346 B1 KR100478346 B1 KR 100478346B1
Authority
KR
South Korea
Prior art keywords
load
server
graph
loads
value
Prior art date
Application number
KR1020030073461A
Other languages
English (en)
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 KR1020030073461A priority Critical patent/KR100478346B1/ko
Application granted granted Critical
Publication of KR100478346B1 publication Critical patent/KR100478346B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

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

Abstract

본 발명은 초기 로드 분배 알고리즘을 적용하여 분산 서버에 로드 밸런싱을 수행한 후, 각 서버에 발생되는 로드의 집중화 및 언밸런스 문제를 그래프 파티션 방법을 사용하여 효율적이고 적은 비용으로 해결할 수 있는 분산 클러스터서버환경에서의 로드 밸런싱에 관한 것이다.
본 발명은 저장대상 데이터에 대한 로드를 생성하는 로드 생성기와, 서버의 상태정보를 획득하는 서버 상태기와, 로드 생성정보 및 서버 상태정보에 따라 각 서버영역에 새로운 로드를 할당하거나 기존 로드를 재배치하여 할당하는 서버영역 할당기와, 서버영역에의 로드 할당정보와 로드간의 참조확률을 기반으로 현재 로드 할당상태에 대한 그래프를 생성하는 그래프 생성기와, 생성된 그래프 정보를 바탕으로 로드 밸런싱을 수행하는 로드 분배기와, 서버영역 할당기의 로드할당 정보에 따라 해당 데이터를 서버에 매핑시키는 데이터 매핑기로 구성된다.

Description

그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템{Load balancing Method based on graph-partitioning for cluster sever and the system}
본 발명은 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템에 관한 것이며, 보다 상세히는 초기 로드 분배 알고리즘을 적용하여 분산 서버에 로드 밸런싱을 수행한 후, 각 서버에 발생되는 로드의 집중화 및 언밸런스 문제를 그래프 파티션 방법을 사용하여 효율적이고 적은 비용으로 해결할 수 있는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템에 관한 것이다.
일반적으로 클러스터링이란 2개 이상의 서버를 하나의 가상서버로 인식되도록 해주는 것으로, 분산 클러스터 서버 환경은 시스템의 규모가 커지면서 그 가용성, 확장성, 관리성 등을 향상시키기 위해 널리 연구되고 있다. 이러한 클러스터링 시스템에서 가장 중요한 기능은 클러스터 내에 있는 특정 서버에 부하를 집중시키지 않기 위해 적절한 스케쥴링 알고리즘을 통해 로드 밸런싱 기능을 수행하는 것이다.
따라서, 적절한 로드 밸런싱 알고리즘의 선택은 서버의 성능에 많은 영향을 미치게 되며, 로드 밸런싱에 이용되는 기준을 선택하는 문제는 부하분배의 중요한 기능이 되었다.
이와 같은 로드 밸런싱을 수행하기 위하여 종래에 제안된 방법들을 살펴보면 다음과 같다.
먼저, 부하 분배 스케쥴링에 이용되는 방법 중 라운드 로빈 스케쥴링은 모든 서버들이 동등하게 한번씩 돌아가며 서비스하는 방식으로, 이는 각 서버의 서비스 처리 용량에 관계없이 서비스되므로 부하 불균형이 발생할 수 있는 단점이 있다. 또한, 이러한 문제점을 고려하여 라운드 로빈 스케쥴링과 유사하나 클러스터에 속한 서버들의 처리 용량에 따라 가중치를 둔 뒤 연결하는 가중 라운드 로빈 스케쥴링 방법과, 연결된 사용자 요구 수가 제일 적은 곳을 우선적으로 할당하는 최소 연결 스케쥴링 방법 등이 제안된 바 있다.
또 다른 방식으로, 각 서버 노드의 평균 휴지 시간을 이용하여 부하를 분배시키는 방식이 제안된 바 있다. 하지만, 이 방법은 부하 불균형이 발생하더라도 다음 주기가 될 때까지 기다려야 하며, 부하 불균형이 발생할 때마다 매번 부하 균형을 수행하면 많은 오버헤드가 발생하는 문제점이 있다.
그리고, 미리 정의된 데이터 접근 확률에 따라 부하 분배기가 사용자의 요구를 분배하는 방식이 있는데, 이 방식은 데이터들의 크기가 대체로 일정한 경우에 잘 동작하지만 하나 이상의 서버들이 다운되었을 경우에는 네트워크 플로우를 기반으로 하는 알고리즘을 사용하여 분배 확률을 재 계산해야하는 어려움이 발생한다.
또한, 각 서버 노드의 CPU 부하 정보나 휴지 시간을 이용하는 부하 분배의 경우 클러스터 시스템의 부하 분배기는 모든 서버 노드들을 주기적으로 모니터링하게 되는데, 이때 부하 모니터링 주기에 대한 결정과 이에 따르는 오버헤드를 최소화하는 것은 매우 중요하다. 이와 같은 동적 부하 분배로 시스템 부하를 결정하는 방법은 경우에 따라 주관적일 수 있으며 각 서버 노드에서 부하 모니터링 프로그램이 실행되어야 하기 때문에 추가적인 오버헤드 및 문제를 발생시킨다.
상기 설명된 바와 같이, 종래의 라운드 로빈 방식이나 최소 커넥션 방식은 정적 처리 방식으로 데이터의 크기가 유사한 경우에는 잘 동작하나 그렇지 않을 경우에는 문제가 될 수 있다. 또한, 데이터의 접근 확률에 따라 부하를 분배하는 것은 데이터의 크기나 전송 시간이 다를 경우 부하 불균형을 초래할 수 있다.
또한, 현재 부하 분배에 관한 대부분의 연구에서 부하의 균형을 맞추기 위한 기준으로 CPU, 큐, 버퍼, 디스크 사용률 등을 조합하여 사용하고 있다. 그러나 사용자의 요구가 각기 다른 분산 클러스터 서버에서 데이터를 송수신하는 경우에 사용자의 요구 특성을 고려하지 않은 경우 올바른 부하 분배를 수행할 수 없게 된다.
따라서, 본 발명은 상술한 종래의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 각 서버의 특성을 고려하면서도 평균 데이터 접근 확률과 데이터 크기 정보를 동시에 고려하여 사용자 요구특성에 맞게 부하 분배를 효율적으로 수행하고, 각 데이터간의 참조 확률을 바탕으로 관련 데이터들에 대한 로드의 이동을 최소화함으로써 적은 계산 비용이 발생하도록 하며, 또한, 그래프 파티션 알로리즘을 사용하여 확장성 및 적응성 있는 로드 밸런싱을 효율적으로 수행할 수 있는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템은, 서버에 저장될 각 데이터에 대해 로드를 생성하고, 그 로드값 및 실제 로드비율을 산출하는 로드 생성기; 각 서버의 상태정보 및 처리용량 비율을 획득하는 서버 상태기; 상기 로드 생성정보 및 상기 서버 상태정보에 따라 각 서버영역에 새로운 로드를 할당하거나 기존 로드를 재배치하여 할당하는 서버영역 할당기; 각 서버영역에 대한 로드 할당정보와 각 로드간의 참조확률을 기반으로 각 서버의 현재 로드 할당상태를 나타내는 그래프를 생성하는 그래프 생성기; 상기 생성된 그래프 정보를 바탕으로 로드 밸런싱을 수행하고 그 수행 결과를 상기 서버영역 할당기에 제공하는 로드 분배기; 및 상기 서버영역 할당기로부터의 로드할당 정보에 따라 해당 데이터를 서버에 매핑시키는 데이터 매핑기;로 구성된다.
또한, 상기 본 발명의 목적을 달성하기 위한 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런스 방법은, 서버에 저장될 각 데이터에 대한 로드를 생성하는 단계; 각 서버의 상태정보 및 처리용량 정보를 실시간으로 획득하는 단계; 각 서버영역에 대한 로드 할당정보와 각 로드간의 참조확률을 기반으로 각 서버의 현재 로드 할당상태를 나타내는 그래프를 생성하는 단계; 새로운 로드가 생성되거나 서버의 상태가 변경되는 경우, 그 변경된 로드 할당정보에 의해 생성된 그래프를 바탕으로 로드 밸런싱을 수행하는 단계; 및 상기 로드 밸런싱 수행결과를 토대로 각 서버영역에 로드를 할당하는 단계;로 이루어진다.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 분산 클러스터 서버 환경에서의 로드 밸런스 모듈 및 시스템에 대한 개략적인 블록 구성도로서, 로드 밸런스 시스템의 구조(100)를 보여준다.
도 1에서, 로드 생성기(101)는 분산 클러스터 서버(107)에 저장될 각 미디어 데이터들에 대하여, 그 데이터 접근 확률(사용자의 데이터 요구 확률) 및 사이즈 정보를 바탕으로 로드를 생성한다.
서버 상태기(102)는 각 클러스터 서버(107)의 상태정보 즉, 서버에 할당된 로드들이 삭제되거나 서버가 다운되는 경우와 같은 상태정보를 획득하고 이 정보를 바탕으로 각 서버의 사용 가능 용량을 확인한다. 또한, 서버 상태기(102)는 이와 같이 서버의 상태가 변경되는 경우 서버에 대한 가용 자원 정보를 서버영역 할당기(103)에 전달함으로써 서버영역 할당기(103)가 로드 밸런스를 수행할 수 있는 자료를 제공한다.
서버영역 할당기(103)는 서버 상태기(102)로부터의 서버 상태정보를 바탕으로 로드 생성기(101)에서 초기 생성된 로드들을 각 서버에 분배하는 기능을 수행한다. 또한, 임의의 시간이 경과된 후, 로드 생성기(101)로부터 새로운 로드가 들어오거나 서버에서의 로드 삭제 또는 서버의 다운 등과 같이 서버의 상태정보가 변경되는 경우, 상기 서버영역 할당기(103)는 그 변경에 대하여 로드 밸런싱의 수행여부를 결정하게 되고, 그 결정에 따라 단순히 서버 상태정보를 통해 부하 분배를 수행하거나 그래프 생성기(104)를 거처 소정의 로드 밸런싱을 한 후 로드 분배를 수행하게 된다.
그래프 생성기(104)는 로드 생성기(101)를 통해서 생성된 각 로드들을 각 서버의 공간에 할당하여 그래프를 생성하는 역할을 수행한다. 또한, 상기 서버영역 할당기(103)는 로드 생성기(101)나 서버 상태기(102)로부터의 로드의 변화 및 서버의 변화 정보를 그래프 생성기(104)에 전달함으로써 항상 최신 그래프가 유지되도록 한다.
로드 분배기(105)는 상기 그래프 생성기(104)로부터 생성된 그래프 정보를 바탕으로 로드 밸런스 알고리즘을 수행하고, 그 수행된 결과를 서버영역 할당기(103)에 전달한다.
또한, 데이터 매핑기(106)는 상기 서버영역 할당기(103)로부터 전달된 매핑정보(로드할당 정보)를 바탕으로, 새로운 데이터를 해당 서버에 매핑하거나 서버에 존재하는 데이터들을 새로운 위치로 이동시킴으로써 클러스터 서버에 대한 실질적 로드 밸런싱을 수행한다.
이하에서는 상기 로드 밸런스 시스템을 통해 분산 클러스터 서버 환경에서 로드 밸런싱을 수행하는 과정을 보다 상세하게 설명하기로 한다.
먼저, 도 2는 상기 로드 생성기(101)에서 각 데이터에 대한 로드와 로드 값, 및 실제 로드비율을 생성하는 과정을 보여주고 있다.
여기에서, 로드(Li)는 각 서버에 분배시킬 작업으로 그 로드의 값(Loadi)은 데이터들에 대한 사용자 접근 확률과 데이터의 사이즈 정보를 통해서 구해진다. 로드 값이 구해지면 각 로드가 전체 작업 로드에서 차지하는 비율을 알기 위해 실제 로드비율(Real_Loadi)을 구한다. 실제 로드비율의 총합은 1이며 각 로드를 서버의 영역에 분배하기 위한 기준으로 사용된다.
도 2를 참조하면, 상기 로드 생성기(101)는, 먼저 대상 데이터를 선택하고,(S201) 각 데이터의 로드 값을 구하기 위해 각 데이터에 대한 사용자 요구 확률(Reqi)과 데이터 크기(Di) 값을 추출한다.(S202) 여기에서, 분산 클러스터 서버(107)에 저장될 데이터들에 대한 사용자 요구 확률(즉, 사용자 접근 확률)은 다음과 같이 정의하며 , 각 데이터의 크기는 D1, D2, ..... , Dn 으로 정의한다.
그리고, 대상 데이터에 대한 로드를 생성하고, 그 데이터 요구 확률값 및 데이터 크기 값를 곱하여 로드 값(Loadi)을 구한다.(S203)
즉, Loadi = Reqi * Di (i= 0, ....n)
여기에서, 로드 값은 서버에 저장될 각 데이터에 대한 로드의 양을 나타낸다.
그리고, 상기 과정을 통해 모든 데이터에 대해 로드 및 로드값이 계산되면,(S204) 각 데이터가 전체 작업 부하에서 차지하는 비율을 알기 위해서 실제 로드비율(Real_Loadi)을 산출하게 되는데, 이를 위해 먼저 로드 값들을 합하여 전체 로드 값(Total)을 산출한 후,(S205) 각 로드값을 전체 로드값으로 나눔으로서 각 로드의 실제 로드비율을 계산한다.(S206)
즉, 전체 로드 값은 로 정의되고, 각 로드의 실제 로드비율은 다음과 같이 표현된다.
Real_Loadi = Loadi/Total (i=0, ....n),
한편, 상기 서버 상태기(102)는 서버의 다운 또는 로드 삭제 등과 같은 서버의 상태를 조사하여 각 서버의 허용가능 자원을 측정한다. 이때, 측정할 수 있는 자원으로는 CPU, 큐, 버퍼, 디스크 효율성 등이 있으며, 본 발명에서는 구현을 간단히 하고 각 로드의 특성이 사용자의 데이터 접근확률과 데이터 사이즈 정보를 바탕으로 이루어지므로, 디스크 효율성만을 가지고 서버 자원의 제약 조건으로 사용하는 것이 바람직하다.
현재의 서버(Sj)의 개수가 m일 경우 각 서버의 디스크 효율성에 기반한 서버의 처리 용량(Ser_Capj)의 비율은 다음과 같이 정의한다.
한편, 도 3은 상기 로드 생성기(101)로부터의 로드 정보와 상기 서버 상태기(102)로부터 획득한 각 서버들의 서버 처리용량 비율 값을 고려하여, 상기 서버영역 할당기(103)에서 초기 로드 밸런싱을 수행하는 과정을 보여준다.
도 3에서, 상기 서버영역 할당기(103)는, 초기 로드 밸런싱을 수행하기 위해서, 서버 처리용량 비율(Ser_Capj)이 가장 큰 서버와 실제 로드비율(Real_Loadi)이 가장 큰 로드를 각각 선택한다.(S301)
이때, 서버 처리용량 비율(Ser_Capj)이 실제 로드비율(Real_Loadi) 값보다 클 경우 로드 i를 서버 j에 저장한다.(S302) 로드 i를 저장한 후 서버의 남은 처리용량을 재 사용하기 위해서 서버 j의 처리용량을 재 계산하고,(S303) 새로운 로드(next max Real_Loadi)를 선택한다.(S304)
만약, 서버 처리용량 비율이 로드 i를 모두 처리하지 못할 경우는,(S305) 서버의 가능 처리용량 비율만큼 만을 선택된 서버j에 할당하고 로드 i의 나머지에 대해 실제 로드비율을 다시 계산한다.(S306) 그리고, 새로운 서버(next max Ser_Capj)를 선택하여 로드 i의 나머지를 할당한다.(S307)
또한, 서버 처리용량 비율과 로드의 실제 로드비율이 같으면, 서버j에 로드 i를 할당하고,(S308) 새로운 로드 i(next max Real_Loadi)와 새로운 서버를 선택(next max Ser_Capj)한다.(S304,S307)
그리고, 상기 S302내지 S308의 과정을 반복함으로써 모든 로드에 대한 할당을 완료하게 된다.(S309)
상기와 같은 본 발명의 초기 로드할당 방법은, 각 독립된 로드들을 가능한 한 동일 서버에 할당하게 함으로써, 분산 클러스터 서버환경에서 서버간의 데이터 이동을 최소화할 수 있게 한다.
이와 같이 모든 로드를 서버에 할당하고 나면, 각 서버의 현재 서버 처리 용량비(Cur_Capj)를 다음과 같이 계산한다.
여기에서, 는 서버(Sj)에 할당된 실제 로드비율의 합이고 초기에 할당된 각 서버의 Cur_Capj는 1이된다.
도 4a는 도 3의 알고리즘을 수행한 후 상기 서버영역 할당기(103)에서 유지되는 로드의 할당 테이블을 보여주며, 각 로드에 대하여 로드 확률, 로드 크기, 로드 값, 로드 비율이 정의된다. 또한, 도 4b는 각 서버에 할당된 로드들의 할당 테이블을 보여준다.
한편, 도 5a는 상기 서버영역 할당기(103)의 로드 테이블 정보를 기반으로 작성되는 각 서버에 할당된 로드들의 모습에 대한 일례를 보여준다. 이해를 쉽게 하기 위해서 서버의 개수는 총 4개가 존재하고, 각 서버(Sj)의 처리 용량(Ser_Capj)은 같은 비율을 나타낸다고 가정하였다. 각 영역의 숫자는 할당된 로드들의 로드 값을 나타낸 것이다. 여기서 로드 값의 합은 총 80이다.
또한, 도 5b는 상기 서버영역 할당기(103)의 로드 테이블 정보를 기반으로 생성된 상기 도 5a에 대한 그래프를 보여주고 있다.
도 5b에서, 각 숫자는 로드들을 나타내며, 각 로드간 실선 및 점선으로 표시된 것은 에지(Ek)라 하고 이는 그 데이터와 데이터간에 참조 확률(Refk)이 존재함을 의미한다. 참조 확률은 각 데이터간의 상관관계를 임의의 수치로 표현한 값으로, 사용자가 특정 데이터를 참조한 후에 다른 특정 데이터를 참조할 확률을 나타낸다. 따라서 각 로드간에 에지가 있다는 것은 두 데이터간에 참조확률이 존재함을 의미한다.
여기에서, 점선으로 된 에지를 갖는 로드를 경계 로드라 하며, 이는 자신이 속해 있는 서버 외에 다른 서버에 속해있는 로드와 에지(참조 확률)를 갖는 로드를 말한다. 이 경계 로드는 추후 로드 밸런싱을 실행함에 있어 임의의 서버의 로드를 다른 서버로 이동시킬 때 우선시 되는 로드가 된다.
한편, 각 로드를 바탕으로 그래프를 생성하기 위하여 그래프에 대한 정의를 간단히 살펴보도록 한다.
그래프에 대한 정의 G =(L,E)에 대해 살펴보면, G는 그래프를, L은 로드들의 집합을, E는 각 로드들간의 에지(edge)를 각각 의미한다. 또한, 로드의 개수는 n=|L|로 나타내며 에지의 개수는 o=|E|로 나타낸다. 도 2의 서버영역 할당기의 알고리즘을 M로 표현하고 서버(Sj)에 할당된 로드의 개수를 B(Sj)라 정의하면 다음과 같다
각 로드들간의 에지(Ek)는 로 각 로드들간의 선후의 참조 확률관계가 존재한다는 것을 말하며, 각 에지의 값(E_Valk)은 참조 확률(Refk)과 각 로드의 값(Loadi)을 곱하여 얻어진다.
또한, 참조 확률은 다음과 같이 표현되며,
각 에지의 값은 로 표현된다.
상기 설명된 바와 같은 각 로드들간의 에지의 정보와 로드 정보를 기반으로 도 5b에 제시된 바와 같은 그래프를 생성하게 된다.
또한, 본 발명에서는 그래프를 이용한 효율적인 로드 밸런싱을 수행하기 위하여 추가적으로 다음과 같은 정의를 수행한다.
즉, 각 서버의 영역에 있는 로드들의 합(W(Sj))은 다음과 같으며
각 서버에 있는 에지들의 합(C(Sj))을 다음과 같다고 정의한다.
본 발명의 일 목적은 상기 설명한 각 서버의 W(Sj)를 공평하게 유지하면서 각 로드들을 이동하는데 드는 비용 C(Sj)를 최소화하는 로드 밸런싱을 구현하는 것이다. C(Sj)는 각 서버간에 참조되어질 데이터들의 값으로, 참조 확률이 높은 로드들을 한 서버로 이동시키고 참조 확률이 낮은 데이터들은 분리함으로 인해서 각 서버의 로드 밸런싱 이후에 발생되는 서버간의 데이터 참조에 의해서 발생되는 비용을 최소화 할 수 있다.
하지만, 로드 및 에지의 변화에 대해서 매번 그래프를 변경시키게 되면 많은 비용이 발생하므로, 로드에 대한 밸런싱은 특정 임계치 이상일 때 그래프를 통한 로드 밸런싱을 수행하도록 하는 것이 바람직하다.
한편, 도 6은 새로운 로드가 발생하거나 기존 로드의 삭제 및 서버의 다운과 같은 이벤트가 발생했을 때,(S601) 상기 서버영역 할당기(103)에서의 처리과정을 보여주는 흐름도이다.
먼저, 새로운 로드가 발생한 경우,(S602) 그 새로운 로드의 로드 값을 계산하여 로드 테이블에 추가하고, 현재 서버 처리 용량비를 비교하여 가장 낮은 서버를 선택하여 새로운 로드를 배치한다.(S603,S604)
또한, 서버가 다운되는 경우는,(S606) 다운된 서버의 로드들을 임의의 다른 서버로 이동시킨다.(S607)
그리고, 기존 로드가 삭제되는 경우(S605)를 포함하여 위의 과정이 완료되면, 새로 할당되거나 이동 또는 삭제된 로드의 값을 바탕으로 각 서버에 대한 현재 서버 처리 용량비를 새롭게 계산한다.(S608) 이때, 임의의 서버의 현재 서버 처리 용량비가 소정의 임계값을 넘은 경우,(S609) 그래프 파티션 알고리즘을 통해서 로드 밸런싱을 수행한다.(S610) 하지만, 어떤 서버의 현재 서버 처리 용량비도 소정의 임계값을 넘지 않을 경우는 그래프 파티션 알고리즘을 수행하지 않고 과정을 종료하게 된다.(S611) 이는 로드 또는 서버의 변화시마다 매번 그래프에 의한 로드 밸런싱을 수행함에 따른 처리비용을 줄이기 위한 것이다.
도 7은 임의의 시간 후 새로운 로드생성 또는 서버 상태의 변화에 의해 새롭게 할당된 각 서버영역의 로드들을 보여주고 있다.
도 6의 로드 밸런싱 수행여부 알고리즘에 대해 예를 들면, Cur_Capj에 대한 소정의 임계값을 1.0±0.2로 결정하고, 도 7에 제시된 바와 같이 새롭게 조정된 로드할당에 대해 각 서버의 현재 서버 처리 용량비(Cur_Capj)를 계산하여 서버 S1은 1.4, 서버 S2는 0.6, ...일 경우, 서버 S1의 현재 처리 용량비가 상기 임계값을 초과하였으므로 그래프 파티션에 의한 로드 밸런싱을 수행하게 된다.
한편, 도 8은 로드 밸런싱을 수행함에 있어 각 로드들의 이웃 서버(Neigj)를 결정하는 과정을 보여주는 흐름도이다.
여기에서, 이웃 서버란 각 로드가 로드 밸런싱에 의해 이동되어야 할 경우 이동에 가장 적합한 서버를 말한다.
각 로드에 대한 이웃 서버를 결정하기 위해서 먼저 임의의 한 서버 Sj를 선택하고,(S801) 선택된 서버(Sj)의 경계로드를 선택한다.(S802)
그리고, 선택된 경계로드와 그 연결된 다른 서버의 경계로드간의 에지 값을 추출하고 각 서버별로 상기 추출된 에지 값의 합을 구한다.(S803) 그리고, 그 에지 값의 합이 가장 큰 서버를 상기 선택한 경계로드의 이웃 서버로 결정한다.(S804)
예를 들면, 도 7에서, 서버 S1의 경계로드 7이 서버 S4의 경계로드 4와 3과 연결되어 있고 만약에 서버 S2의 일 경계로드와 연결되어 있다면, 경계로드 4와의 에지 값 및 3과의 에지 값을 합하여 경계로드 7의 서버 S4에 대한 에지 값을 구하고, 이러한 에지 값의 합이 가장 큰 서버 S4를 경계로드 7에 대한 이웃서버로 결정하는 것이다.
그리고, 상기 선택한 임의의 서버내의 모든 경계로드에 대하여 이웃서버가 결정될 때까지 상기 S802 내지 S804과정을 반복한다.(S805)
이렇게 하여, 선택된 서버내의 모든 경계로드에 대해 이웃서버가 결정되면, 경계로드와 연결된 임의의 로드를 선택한다.(S806)
그리고, 상기 선택 로드와 연결된 각 경계로드와의 에지 값을 추출한 후 경계로드의 이웃서버별로 에지 값을 합한다.(S807) 그리고, 그 에지값의 합이 가장 큰 서버(경계로드에 태깅된 이웃서버)를 상기 선택 로드의 이웃 서버로서 결정한다.(S808)
그리고, 상기 S806내지 S808 과정을 반복하여 상기 선택된 서버내의 경계로드와 연결된 모든 임의 로드에 대하여 그 이웃서버를 결정한다.(S809)
한편, 경계로드와 연결되지 않은 로드에 대해서는 다음과 같이 이웃서버를 결정한다.
상기 선택된 서버내에서 경계로드와 연결되지 않는 일반 로드를 임의로 선택한다.(S810)
그리고, 상기 선택된 일반 로드와 그 연결된 로드들(이웃서버가 결정된 로드, 즉 경계로드와 연결된 로드)간의 에지 값을 추출하고 각 연결로드와의 에지 값을 그 태깅된 이웃서버별로 합한다.(S811) 그리고, 에지 값의 합이 가장 큰 서버(연결로드의 이웃서버)를 상기 선택된 일반 로드의 이웃 서버로 결정한다.(S812)
그리고, 상기 선택 서버내에서 경계로드와 연결되지 않는 모든 로드에 대하여 상기 S810내지 S812 과정을 반복함으로써 상기 선택 서버내의 모든 로드에 대한 이웃서버를 결정한다.(S813)
그리고, 또 다른 임의의 서버를 선택하고 모든 서버에 대해 상기 S801 내지 S813과정을 수행함으로써 모든 서버내의 모든 로드에 대해 이웃서버를 결정하게 된다.(S814)
도 9는 도 7의 그래프에 대해 도 8의 알고리즘을 수행한 후 그 결과를 도시한 것이다. 도 9에서, 괄호는 각 로드들을 나타내며, 괄호 안의 왼편 값은 로드 값을 나타내고 괄호 안의 오른편 값은 각 로드에 대한 이웃서버를 나타낸다.
한편, 도 10은 상기 도 9와 같이 얻어진 결과를 바탕으로 로드 밸런싱을 수행하는 과정을 보여주는 흐름도이다.
도 10에 제시된 로드 밸런싱 과정을 설명함에 앞서, 몇가지 필요한 사항에 대하여 간단히 정의하도록 한다.
먼저, N은 전체 파티션의 개수 즉, 서버의 개수를 나타내고, |Sj|는 서버에 포함된 로드들의 값, θ는 각 파티션에 대한 평균 로드로서
로 나타낸다.
Prs는 서버 r에서 서버s로 이동할 수 있는 로드의 수이고, Lrs는 서버 r에서 서버 s로 이동해야 할 로드의 수라고 가정한다. 로드 밸런싱을 효율적으로 하기 위해서는 이동하는 로드의 수를 최소화하면서 로드를 적절히 서버에 분배해야 한다. 따라서, 를 최소화해야만 적은 비용으로 로드의 분배를 효율적으로 할 수 있다. 따라서, 다음과 같은 수식,
위의 문제는 LP(Linear Programming Problem, 선형계획법) 문제로 선형 제약식을 만족하는 영 이상의 값을 갖는 변수들 x1, x2, ....xn이 주어질 때 선형 함수 f(x1, x2, ....xn)= c1*x1 + c2*x2 + ... +cn*xn의 최대 혹은 최소를 구하는 문제이다. 이러한 문제를 풀기 위하여 사용되는 방법으로 단체법(simplex method)이 있다. 이 simplex method는 최대화/최소화하는 의사 결정변수 값은 기저해들 중에 존재하며 가능해 영역에 있는 기저해(꼭지점)들을 순방하면서 목적함수 값을 비교하여 최대 점과 최소 점을 찾는 방법이다. 이 방법을 사용하면 쉽게 그래프 상에 존재하는 로드의 분배를 수행할 수 있게 된다.
도 10을 참조하면, 로드 밸런싱을 수행하는 과정은, 먼저, 상기 식(2)를 바탕으로 각 영역에 대하여 Prs의 값을 찾고, 이를 식(2)에 적용하면 변수 Lrs의 값은 다음과 같은 조건을 갖는다.(S1001)
그리고, 상기 식 (3)을 바탕으로 조건을 만족하는 식을 구하기 위해서, θ의 값을 구하면 80/4이므로 20이고 각 서버 |S1|, |S2|, |S3|, |S4|의 값은 각각 28, 21, 19, 12가 된다. 식 (3)을 만족하는 방정식을 구하면 다음과 같다.(S1002)
L12+L13+L14-L21-L31-L41 = 8
L21+L23-L12-L32 = 1
L31+L32+L34-L13-L23-L43 = -1
L41+L43-L14-L34 = -8
그리고, 단체법(Simplex Method)을 적용하여 각 서버로 이동해야 할 변수 Lrs를 구하면 L14=8, L23=1이 된다. 즉, 서버 1에서 서버 4로 이동해야 할 로드의 값(수)은 8이 되고 서버 2에서 서버 3으로 이동해야 할 로드의 값(수)은 1이 된다.(S1003)
이때, 이동해야 할 로드를 선택하기 위해서, 서버 1의 경계 로드 중 이웃 서버로 4를 갖는 로드를 선택하고 그 중에서 가장 큰 에지 값을 갖는 로드를 우선 선택하여 이동을 시킨다.(S1004) 이동시키는 서버의 로드 값이 Lrs 값을 만족시킬 때까지 반복하여 로드 밸런싱을 완성시킨다.(S1005)
도 11은 상기 설명한 바에 따라 로드 밸런스를 수행한 후 완료된 그래프의 모습을 보여주고 있다.
상기 본 발명의 실시예에 따른 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법은, 하드디스크, 자기디스크, 시디롬 등의 컴퓨터로 읽을 수 있는 기록매체에 그 일련의 과정을 컴퓨터프로그램 형태로 저장하고 컴퓨터시스템과 연동하여 구현할 수 있다.
상술한 바와 같이 본 발명에 따른 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템은, 초기 적은 비용으로 효율적인 부하 분배를 이루도록 한다. 또한 시간의 흐름에 따라서 각 서버에 발생되는 데이터 집중화 현상 및 언밸런스 문제를 효율적으로 다룰 수 있게 하기 위하여 서버에 할당된 로드들을 그래프 형태로 관리하고 각 서버에 가용자원에 따라서 선택적인 로드 밸런싱 방법을 선택할 수 있게 하여 보다 효율적으로 로드를 관리할 수 있게 한다. 또한 로드 분배를 위한 그래프 파티션 방법은 적은 계산 비용으로 효율적인 로드 분배를 위한 방법을 제공해 준다.
이상에서 설명한 것은 본 발명에 따른 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법 및 그 시스템을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
도 1은 본 발명에 따른 클러스터 서버환경에서의 로드 밸런싱 모듈 및 시스템에 대한 개략적 블록구성도.
도 2는 본 발명에 따른 각 데이터에 대한 로드와 로드값 및 실제 로드비율의 산출과정에 대한 흐름도.
도 3은 본 발명에 따른 초기 로드 밸런싱 과정에 대한 흐름도.
도 4a 및 도 4b는 도 3의 알고리즘을 수행한 후 각 로드들의 할당 테이블을 보여주는 도면.
도 5a는 본 발명에 따른 서버영역 할당기에 유지되는 로드할당 테이블 정보를 도시화한 도면.
도 5b는 도 4의 로드할당 테이블 정보를 바탕으로 생성된 그래프를 보여주는 도면.
도 6은 본 발명에 따른 새로운 이벤트 발생 시 서버 영역 할당기에서의 처리 흐름도.
도 7은 임의의 시간 경과 후 이벤트 발생으로 인해 새롭게 변경된 그래프를 보여주는 도면.
도 8은 본 발명에 따른 로드 밸런싱을 위하여 각 로드들의 이웃 서버를 결정하는 과정을 보여주는 흐름도.
도 9는 도 7의 그래프를 도 8의 알고리즘에 적용한 결과를 보여주는 도면.
도 10은 도 9의 결과를 바탕으로 로드 밸런싱을 수행하는 과정을 보여주는 흐름도.
도 11은 도 10의 흐름에 따라 로드 밸런싱을 완료한 후의 그래프를 보여주는 도면.
<도면의 주요부분에 대한 부호의 설명>
100: 로드 밸런싱 시스템 101: 로드 생성기
102: 서버 상태기 103: 서버영역 할당기
104: 그래프 생성기 105: 로드 분배기
106: 데이터 매핑기 107: 클러스터 서버

Claims (24)

  1. 서버에 저장될 각 데이터에 대해 로드를 생성하고, 그 로드값 및 실제 로드비율을 산출하는 로드 생성기;
    각 서버의 상태정보 및 처리용량 비율을 획득하는 서버 상태기;
    상기 로드 생성정보 및 상기 서버 상태정보에 따라 각 서버영역에 새로운 로드를 할당하거나 기존 로드를 재배치하여 할당하는 서버영역 할당기;
    각 서버영역에 대한 로드 할당정보와 각 로드간의 참조확률을 기반으로 각 서버의 현재 로드 할당상태를 나타내는 그래프를 생성하는 그래프 생성기;
    상기 생성된 그래프 정보를 바탕으로 로드 밸런싱을 수행하고 그 수행 결과를 상기 서버영역 할당기에 제공하는 로드 분배기; 및
    상기 서버영역 할당기로부터의 로드할당 정보에 따라 해당 데이터를 서버에 매핑시키는 데이터 매핑기;로 구성되는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  2. 제 1항에 있어서, 상기 로드 생성기는,
    서버에 저장될 각 데이터에 대해 로드를 생성한 후, 데이터에 대한 사용자 접근 확률과 데이터 크기를 곱 연산하여 로드값(Loadi)을 산출하고, 전체 로드값에 대한 로드값의 비로서 각 로드의 실제 로드비율(Real_Loadi)을 산출하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  3. 제 1항에 있어서, 상기 서버 상태기는,
    각 서버에 대해 서버의 다운 또는 로드 삭제와 같은 상태정보를 실시간으로 조사하며, 디스크 효율성만으로 각 서버의 처리용량 비율(Ser_Capj)을 측정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  4. 제 1항에 있어서, 상기 서버영역 할당기는, 각 서버에 로드들을 초기 할당함에 있어,
    처리용량 비율이 가장 큰 서버와 실제 로드비율이 가장 큰 로드를 우선하여 순차적으로 선택 할당하며,
    선택된 서버의 처리용량 비율이 선택된 로드의 실제 로드비율 값보다 클 경우는, 로드를 서버에 할당한 후 상기 선택 서버의 처리용량을 재 계산하고 그 다음 순서의 로드를 선택하여 상기 선택 서버에 할당하고,
    선택된 서버의 처리용량 비율이 선택된 로드의 실제 로드비율 값보다 작을 경우는, 처리가능 용량만큼 만을 상기 선택 서버에 할당하고 상기 선택 로드의 나머지에 대해 실제 로드비율을 재 계산한 후, 그 다음 순서의 서버를 선택하여 상기 선택 로드의 나머지를 할당하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  5. 제 1항에 있어서, 상기 서버영역 할당기는,
    각 서버에 저장된 로드들의 실제 로드비율(Real_Loadi)과 상기 서버 상태기로부터의 서버 처리용량 비율(Ser_Capj)을 통해 다음의 수학식과 같이 각 서버의 현재 서버처리 용량비(Cur_Capj)를 계산하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
    [수학식]
    ; 서버(Sj)에 할당된 실제 로드비율의 합
  6. 제 5항에 있어서, 상기 서버영역 할당기는,
    새로운 로드가 발생하거나 서버의 상태가 변경된 경우, 일단 현재 서버처리 용량비가 가장 낮은 서버를 선택하여 새로운 로드를 배치하거나 다운된 서버의 로드를 이동시킨 후, 그 변경된 상태를 바탕으로 각 서버의 현재 서버처리 용량비를 재 계산하여 어느 일 서버의 현재 서버처리 용량비가 임계값이상이 될 경우에 한해 그래프 파티션에 의한 로드 밸런싱을 수행하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  7. 제 1항에 있어서, 상기 그래프 생성기는,
    각 로드들간의 데이터 상관 관계인 참조 확률관계가 존재함을 에지를 통해 표현하며, 각 에지의 값은 그 참조확률과 각 로드의 값을 곱하여 산출하고 이러한 에지 정보 및 각 서버영역에 대한 로드할당 정보를 기반으로 그래프를 생성하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  8. 제 1항 또는 제 7항에 있어서, 상기 로드 분배기는,
    참조 확률이 높은 로드들을 동일서버로 이동시키고 참조 확률이 낮은 로드들은 분리하여 각 서버에서의 에지값들의 합(C(Sj))이 최소가 되도록 로드 밸런싱을 수행하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  9. 제 1항에 있어서, 상기 로드 분배기는,
    각 로드에 대해 이웃서버를 결정하고, 로드 밸런싱에 의해 이동될 로드의 수()를 최소화하도록 다음 수학식의 조건을 만족하는 각 서버간에 이동해야 할 로드 수(Lrs)를 구한 후, 상기 결정된 이웃서버 정보와 상기 서버간 이동 로드수(Lrs) 정보를 통해 각 서버간에 에지값이 큰 로드들을 우선적으로 이동하여 로드 밸런싱을 수행하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
    [수학식]
    여기에서, N; 서버의 개수,
    |Sj| ; 각 서버에 포함된 로드들의 값,
    θ; 평균 로드값으로 ,
    Prs ; 서버 r에서 서버s로 이동할 수 있는 로드의 수,
    Lrs; 서버 r에서 서버 s로 이동해야 할 로드의 수.
  10. 제 9항에 있어서, 상기 로드 분배기는,
    타 서버의 로드와 에지를 갖는 경계로드의 이웃서버를 결정함에 있어,
    선택된 경계로드와 그 연결된 타 서버의 경계로드간의 에지 값을 추출하고 각 서버별로 상기 추출된 에지 값의 합을 구한 후, 그 에지 값의 합이 가장 큰 서버를 상기 선택한 경계로드의 이웃 서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  11. 제 9항에 있어서, 상기 로드 분배기는,
    경계로드와 연결된 임의 로드의 이웃서버를 결정함에 있어,
    선택된 로드와 그 연결된 각 경계로드간의 에지 값을 추출하고 경계로드에 태깅된 이웃서버별로 에지 값을 합한 후, 그 에지 값이 가장 큰 서버를 상기 선택 로드의 이웃서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  12. 제 9항에 있어서, 상기 로드 분배기는,
    경계로드와 연결되지 않은 일반로드의 이웃서버를 결정함에 있어,
    선택된 일반로드와 그 연결된 각 임의로드들과의 에지 값을 추출하고, 임의서버에 태깅된 이웃서버별로 에지 값을 합한 후, 그 에지 값의 합이 가장 큰 서버를 상기 선택된 일반로드의 이웃서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  13. 제 9항에 있어서, 상기 로드 분배기는,
    단체법(Simplex Method)을 적용하여 각 서버간에 이동해야 할 로드 수(Lrs)를 구하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 시스템.
  14. (a) 서버에 저장될 각 데이터에 대한 로드를 생성하는 단계;
    (b) 각 서버의 상태정보 및 처리용량 정보를 실시간으로 획득하는 단계;
    (c) 각 서버영역에 대한 로드 할당정보와 각 로드간의 참조확률을 기반으로 각 서버의 현재 로드 할당상태를 나타내는 그래프를 생성하는 단계;
    (d) 새로운 로드가 생성되거나 서버의 상태가 변경되는 경우, 그 변경된 로드 할당정보에 의해 생성된 그래프를 바탕으로 로드 밸런싱을 수행하는 단계; 및
    (e) 상기 로드 밸런싱 수행결과를 토대로 각 서버영역에 로드를 할당하는 단계;로 이루어지는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  15. 제 14항에 있어서, 상기 (a) 단계는,
    서버에 저장될 각 데이터에 대해 로드를 생성한 후, 데이터에 대한 사용자 접근 확률과 데이터 크기를 곱 연산하여 로드값(Loadi)을 산출하고, 전체 로드값에 대한 로드값의 비로서 각 로드의 실제 로드비율(Real_Loadi)을 산출하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  16. 제 14항에 있어서, 상기 (b) 단계는,
    디스크 효율성만으로 각 서버의 처리용량 비율(Ser_Capj)을 측정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  17. 제 14항에 있어서, 상기 (c) 단계는,
    각 로드들간의 데이터 상관 관계인 참조 확률관계가 존재함을 에지를 통해 표현하며, 각 에지의 값은 그 참조확률과 각 로드의 값을 곱하여 산출하고 이러한 에지 정보 및 각 서버영역에 대한 로드할당 정보를 기반으로 그래프를 생성하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  18. 제 14항에 있어서, 상기 (d) 단계는,
    서버 처리용량 비율과 저장된 로드들의 실제 로드비율의 비로서 각 서버의 현재 서버처리 용량비를 계산하며,
    새로운 로드가 발생하거나 서버의 상태가 변경된 경우, 일단 현재 서버처리 용량비가 가장 낮은 서버를 선택하여 새로운 로드를 배치하거나 다운된 서버의 로드를 이동시킨 후, 그 변경된 상태를 바탕으로 각 서버의 현재 서버처리 용량비를 재 계산하여 어느 일 서버의 현재 서버처리 용량비가 임계값이상이 될 경우에 한해 그래프 파티션에 의한 로드 밸런싱을 수행하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  19. 제 14항에 있어서, 상기 (d) 단계는,
    각 로드에 대해 이웃서버를 결정하고, 로드 밸런싱에 의해 이동될 로드의 수()를 최소화하도록 다음 수학식의 조건을 만족하는 각 서버간에 이동해야 할 로드 수(Lrs)를 구한 후, 상기 결정된 이웃서버 정보와 상기 서버간 이동 로드수(Lrs) 정보를 통해 각 서버간에 에지값이 큰 로드들을 우선적으로 이동하여 로드 밸런싱을 수행하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
    [수학식]
    여기에서, N; 서버의 개수,
    |Sj| ; 각 서버에 포함된 로드들의 값,
    θ; 평균 로드값으로 ,
    Prs ; 서버 r에서 서버s로 이동할 수 있는 로드의 수,
    Lrs; 서버 r에서 서버 s로 이동해야 할 로드의 수.
  20. 제 19항에 있어서, 상기 (d) 단계는,
    타 서버의 로드와 에지를 갖는 경계로드의 이웃서버를 결정함에 있어,
    선택된 경계로드와 그 연결된 타 서버의 경계로드간의 에지 값을 추출하고 각 서버별로 상기 추출된 에지 값의 합을 구한 후, 그 에지 값의 합이 가장 큰 서버를 상기 선택한 경계로드의 이웃 서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  21. 제 19항에 있어서, 상기 (d) 단계는,
    경계로드와 연결된 임의 로드의 이웃서버를 결정함에 있어,
    선택된 로드와 그 연결된 각 경계로드간의 에지 값을 추출하고 경계로드에 태깅된 이웃서버별로 에지 값을 합한 후, 그 에지 값이 가장 큰 서버를 상기 선택 로드의 이웃서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  22. 제 19항에 있어서, 상기 (d) 단계는,
    경계로드와 연결되지 않은 일반로드의 이웃서버를 결정함에 있어,
    선택된 일반로드와 그 연결된 각 임의로드들과의 에지 값을 추출하고, 임의서버에 태깅된 이웃서버별로 에지 값을 합한 후, 그 에지 값의 합이 가장 큰 서버를 상기 선택된 일반로드의 이웃서버로 결정하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  23. 제 19항에 있어서, 상기 (d) 단계는,
    단체법(Simplex Method)을 적용하여 각 서버간에 이동해야 할 로드 수(Lrs)를 구하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
  24. 제 14항에 있어서, 상기 (e) 단계는,
    각 서버에 로드들을 초기 할당하는 경우,
    처리용량 비율이 가장 큰 서버와 실제 로드비율이 가장 큰 로드를 우선하여 순차적으로 선택 할당하며,
    선택된 서버의 처리용량 비율이 선택된 로드의 실제 로드비율 값보다 클 경우는, 로드를 서버에 할당한 후 상기 선택 서버의 처리용량을 재 계산하고 그 다음 순서의 로드를 선택하여 상기 선택 서버에 할당하고,
    선택된 서버의 처리용량 비율이 선택된 로드의 실제 로드비율 값보다 작을 경우는, 처리가능 용량만큼 만을 상기 선택 서버에 할당하고 상기 선택 로드의 나머지에 대해 실제 로드비율을 재 계산한 후, 그 다음 순서의 서버를 선택하여 상기 선택 로드의 나머지를 할당하는 것을 특징으로 하는 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드 밸런싱 방법.
KR1020030073461A 2003-10-21 2003-10-21 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템 KR100478346B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030073461A KR100478346B1 (ko) 2003-10-21 2003-10-21 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030073461A KR100478346B1 (ko) 2003-10-21 2003-10-21 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR100478346B1 true KR100478346B1 (ko) 2005-03-25

Family

ID=37387164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030073461A KR100478346B1 (ko) 2003-10-21 2003-10-21 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR100478346B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718907B1 (ko) * 2005-09-16 2007-05-16 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
WO2008032926A1 (en) * 2006-09-14 2008-03-20 Electronics And Telecommunications Research Institute System and method of task assignment in distributed processing system
KR101035857B1 (ko) 2008-12-19 2011-05-19 한국전자통신연구원 데이터 관리 방법 및 그 시스템
US9009713B2 (en) 2012-10-05 2015-04-14 Electronics And Telecommunications Research Institute Apparatus and method for processing task
KR101872414B1 (ko) * 2016-12-23 2018-06-28 충북대학교 산학협력단 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법
KR20200098257A (ko) * 2019-02-12 2020-08-20 한전케이디엔주식회사 분산처리를 적용한 실시간 작업흐름관리 시스템
KR102248978B1 (ko) * 2019-11-29 2021-05-07 한국과학기술원 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718907B1 (ko) * 2005-09-16 2007-05-16 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
WO2008032926A1 (en) * 2006-09-14 2008-03-20 Electronics And Telecommunications Research Institute System and method of task assignment in distributed processing system
US8291420B2 (en) 2006-09-14 2012-10-16 Electronics And Telecommunications Research Institute System and method of task assignment distributed processing system
KR101035857B1 (ko) 2008-12-19 2011-05-19 한국전자통신연구원 데이터 관리 방법 및 그 시스템
US9009713B2 (en) 2012-10-05 2015-04-14 Electronics And Telecommunications Research Institute Apparatus and method for processing task
KR101872414B1 (ko) * 2016-12-23 2018-06-28 충북대학교 산학협력단 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법
KR20200098257A (ko) * 2019-02-12 2020-08-20 한전케이디엔주식회사 분산처리를 적용한 실시간 작업흐름관리 시스템
KR102227204B1 (ko) * 2019-02-12 2021-03-11 한전케이디엔주식회사 분산처리를 적용한 실시간 작업흐름관리 시스템
KR102248978B1 (ko) * 2019-11-29 2021-05-07 한국과학기술원 다수 사용자의 분산 기계학습에서 평균 지연 속도 절감을 위한 자원 할당 방법 및 장치

Similar Documents

Publication Publication Date Title
US11032359B2 (en) Multi-priority service instance allocation within cloud computing platforms
JP6435050B2 (ja) クラウドシステムにおけるリソース管理
RU2648610C2 (ru) Система и способ зонирования в программно определяемых сетях
US8112524B2 (en) Recommending moving resources in a partitioned computer
KR101941282B1 (ko) 가상 데스크톱 서비스 제공 방법 및 장치
Patel et al. An efficient dynamic load balancing algorithm for virtual machine in cloud computing
JP2008234651A (ja) 複数のインスタンスアプリケーションに対し負荷分散装置を動作させるシステムおよび方法
US20100229175A1 (en) Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems
BRPI0014350B1 (pt) gerenciamento de carga de trabalho em um ambiente de computação
KR20170029263A (ko) 부하 분산 장치 및 방법
Beck et al. Distributed and scalable embedding of virtual networks
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US10944645B2 (en) Node of a network and a method of operating the same for resource distribution
US20220318071A1 (en) Load balancing method and related device
US20200394071A1 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
Jain et al. Hybrid load balancing approach for cloud environment
CN111698114B (zh) 利用出口对等工程的约束优化来确定和实现优化流量规划
Kumar et al. C-FDLA: Crow search with integrated fractional dragonfly algorithm for load balancing in cloud computing environments
KR100478346B1 (ko) 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
JP2023541607A (ja) エッジゾーン内の計算ノードとインフラストラクチャノードとの自動ノード交換性
CN111740853B (zh) 利用出口对等工程来确定优化的业务计划并且实施优化的业务计划
CN115129463A (zh) 算力调度方法及装置、系统及存储介质
Vijayalakshmi et al. Investigations on job scheduling algorithms in cloud computing
KR20040075307A (ko) 정책 쿼럼 기반의 그리드 자원 관리 시스템 및 그 방법
Patni et al. Distributed approach of load balancing in dynamic grid computing environment

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: 20090303

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee