KR101758065B1 - 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체 - Google Patents

부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체 Download PDF

Info

Publication number
KR101758065B1
KR101758065B1 KR1020160024282A KR20160024282A KR101758065B1 KR 101758065 B1 KR101758065 B1 KR 101758065B1 KR 1020160024282 A KR1020160024282 A KR 1020160024282A KR 20160024282 A KR20160024282 A KR 20160024282A KR 101758065 B1 KR101758065 B1 KR 101758065B1
Authority
KR
South Korea
Prior art keywords
server
information
dlp
dlp server
usage
Prior art date
Application number
KR1020160024282A
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 KR1020160024282A priority Critical patent/KR101758065B1/ko
Application granted granted Critical
Publication of KR101758065B1 publication Critical patent/KR101758065B1/ko

Links

Images

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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management

Landscapes

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

Abstract

본 발명은 부하분산 시스템을 제공한다.
더 자세하게는 DLP 서버 정보를 생성하는 DLP 서버, 상기 DLP 서버로부터 상기 DLP 서버 정보를 전달받고, 클라이언트로부터 DLP 서버 요청 신호를 받으면, 전달받은 상기 DLP 서버 정보에 기반하여 데이터플로우 정보를 생성하는 부하분산 서버, 상기 부하분산 서버로부터 상기 데이터플로우 정보를 전달받고, 전달받은 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하는 컨트롤러, 상기 컨트롤러로부터 상기 데이터플로우 테이블을 전달받고, 전달받은 상기 데이터플로우 테이블에 따라 상기 클라이언트의 데이터를 상기 DLP 서버에 분배하는 스위치를 포함하는 부하분산 시스템을 제공한다.

Description

부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체{LOAD BALANCING SYSTEM, METHOD FOR CONTROLLING THE SAME AND RECORDING MEDIUM FOR PERFORMING THE ETHOD}
본 발명은 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체 에 관한 것으로, 클라이언트의 데이터를 다수의 DLP 서버에 분배할 수 있는 부하분산 서버를 포함하는 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체를 제공한다.
부하분산은 다수 사용자들이 원하는 서버에 서비스를 요청할 때 Overhead에 대한 서버의 병목현상을 해결하고 자원에 대한 부하를 분산하는 방법으로, 서비스를 이용하기 위한 사용자가 증가할수록 서비스를 제공하는 서버의 안정성과 성능유지를 확보하는 분야에서는 중요한 이슈가 된다.
분산 환경에서의 서버 병목현상은 서비스를 받고자 하는 사용자들에게 성능에 대한 신뢰성을 떨어뜨린다. 따라서 다수 사용자를 위해서 다수의 서버를 두어 분산처리 하게 함으로써 성능에 대한 신뢰성과 안전성을 유지할 수 있다.
일반적으로 부하를 분산시키기 위해 기존 서버 환경에서 사용하는 스케줄링 알고리즘에는 서비스를 요청한 사용자를 순차적으로 서버에 연결하는 라운드로빈(Round-Robin) 방식, 실제 서버에 서로 다른 성능 가중치를 부여한 후 가중치에 기반하여 사용자를 순차적으로 서버에 연결하는 가중치 기반 라운드로빈(Weighted Round-Robin) 방식, 연결된 세션의 수가 가장 적은 서버로 연결하는 방식의 최소 접속(Least-Connection)방식, 응답시간이 빠른 서버로 연결하는 방식의 응답시간(Fastest Response Time) 방식, 특정 사용자를 지정된 서버에 연결하는 고정(Fixed) 방식이 있다.
그러나 위와 같은 방식들은 서버의 현재 리소스 사용량과 사용자 별 상이한 Data 사용량을 고려하지 않기 때문에 특정 서버의 과부하 문제를 발생시킨다.
본 발명의 일 측면은 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체에 있어서, DLP 서버의 현재 리소스 사용량을 측정하고, 측정된 현재 리소스 사용량에 기반하여 사용자의 데이터들을 복수의 DLP 서버로 분배하는 부하분산 서버를 포함하는 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체를 제공한다.
본 발명의 일 실시예에 따른 부하분산 시스템은 DLP 서버 정보를 생성하는 DLP 서버, 상기 DLP 서버로부터 상기 DLP 서버 정보를 전달받고, 클라이언트로부터 DLP 서버 요청 신호를 받으면, 전달받은 상기 DLP 서버 정보에 기반하여 데이터플로우 정보를 생성하는 부하분산 서버, 상기 부하분산 서버로부터 상기 데이터플로우 정보를 전달받고, 전달받은 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하는 컨트롤러 및 상기 컨트롤러로부터 상기 데이터플로우 테이블을 전달받고, 전달받은 상기 데이터플로우 테이블에 따라 상기 클라이언트의 데이터를 상기 DLP 서버에 분배하는 스위치를 포함할 수 있다.
상기 부하분산 서버는 상기 DLP 서버 정보를 기반으로 각 DLP 서버의 리소스 사용량을 계산하고, 상기 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하고, 생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성할 수 있다.
상기 리소스 사용량은, CPU, 메모리 및 네트워크 트래픽의 사용량에 기초하여 생성되는 것이되, 메모리 사용량의 가중치가 가장 높도록 설정되는 것을 특징으로 할 수 있다.
상기 DLP 서버 요청 신호는 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 포함하고, 생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성하는 것은, 상기 DLP 서버 사용량 순위정보 중 최우선 순위의 DLP 서버의 가용 리소스 사용량과 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 비교하고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 작은 경우, 상기 최우선 순위의 DLP 서버로 상기 클라이언트의 데이터를 모두 보내고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 큰 경우, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 분배하도록 하는 상기 데이터플로우 정보를 생성하는 것일 수 있다.
상기 데이터플로우 정보를 생성하는 것은, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 가용되는 모든 DLP 서버에 분배한 후 상기 클라이언트의 데이터가 남으면, 남은 상기 클라이언트의 데이터를 상기 DLP 서버 사용량 순위 정보에 따라 재분배 하도록 하는 것을 포함하는 것일 수 있다.
상기 부하분산 서버와 DLP 서버는 SNMP 프로토콜에 기반하여 상기 메모리 사용량 정보를 교환하고, 상기 부하분산 서버는 PHP 스크립트를 이용하고, 상기 DLP 서버는 Shell 스크립트를 이용하는 것일 수 있다.
본 발명의 다른 실시예에 따른 기록 매체는 부하분산 시스템을 제공하기 위한, 컴퓨터 프로그램이 기록될 수 있다.
본 발명의 다른 실시예에 따른 부하분산 시스템의 제어방법은 클라이언트의 데이터를 처리하는 복수의 DLP 서버, 부하분산 서버, 컨트롤러 및 스위치를 포함하는 부하분산 시스템의 제어방법에 있어서, 상기 DLP 서버가 DLP 서버 정보를 생성하여 상기 부하분산 서버에 전달하고, 상기 부하분산 서버가 상기 DLP 서버 정보에 기반하여 각 DLP 서버의 리소스 사용량을 산출하고, 산출된 상기 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하고, 클라이언트로부터 DLP 서버 요청 신호를 받으면, 상기 DLP 서버 사용량 순위 정보에 기반하여 데이터플로우 정보를 생성하여 상기 컨트롤러로 전달하고, 상기 컨트롤러가 상기 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하여 상기 스위치로 전달하고, 상기 스위치는 상기 데이터플로우 테이블에 따라 상기 클라이언트의 데이터를 상기 DLP 서버에 분배하는 것을 포함할 수 있다.
상기 DLP 서버 정보는 상기 DLP 서버의 CPU, 메모리 및 네트워크 트래픽의 사용량을 포함하고, 상기 DLP 서버 정보에 기반하여 각 DLP 서버의 리소스 사용량을 산출하는 것은, CPU, 메모리 및 네트워크 트래픽의 사용량에 기초하여 생성되는 것이되, 메모리 사용량의 가중치가 가장 높도록 설정되는 것일 수 있다.
상기 DLP 서버 요청 신호는 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 포함하고, 생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성하는 것은, 상기 DLP 서버 사용량 순위정보 중 최우선 순위의 DLP 서버의 가용 리소스 사용량과 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 비교하고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 작은 경우, 상기 최우선 순위의 DLP 서버로 상기 클라이언트의 데이터를 모두 보내고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 큰 경우, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 분배하도록 하는 상기 데이터플로우 정보를 생성하는 것일 수 있다.
상기 데이터플로우 정보를 생성하는 것은, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 가용 가능한 모든 DLP 서버에 분배한 후 상기 클라이언트의 데이터가 남으면, 남은 상기 클라이언트의 데이터를 상기 DLP 서버 사용량 순위 정보에 따라 재분배 하도록 하는 것을 포함하는 것일 수 있다.
상술한 본 발명의 일 측면에 따르면, 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체는 부하분산 서버가 DLP 서버의 현재 리소스 사용량을 측정하고, 측정된 현재 리소스 사용량에 기반하여 사용자의 데이터들을 복수의 DLP 서버로 분배하는 것을 통해 특정 서버의 과부하 문제를 방지할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 부하분산 시스템의 구성도이다.
도 2 는 본 발명의 도 1의 부하분산 서버와 DLP 서버의 블록의 구성을 도시한 블록도이다.
도 3 은 본 발명의 일 실시예에 따른 부하분산 시스템의 플로우 차트이다.
도 4 는 본 발명의 일 실시예에 따른 부하분산 시스템의 제어방법의 순서도이다.
도 5 는 본 발명의 데이터플로우에 적용되는 SFC의 개념을 설명하기 위한 예제를 도시한 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 부하분산 시스템의 구성도이다.
도 1을 참조하면, 부하분산 시스템(100)은 DLP 서버(110), 부하분산 서버(120), 컨트롤러(130) 및 스위치(140)를 포함할 수 있다.
DLP 서버(110)는 DLP 서버 정보를 주기적으로 생성할 수 있으며, 생성된 DLP 서버 정보를 주기적으로 부하분산 서버(120)에 전달할 수 있다. 이때, DLP 서버(110)는 복수 개일 수 있으며, 각각의 DLP 서버(110)는 하나의 부하분산 서버(120)로 DLP 서버 정보를 전달하는 것일 수 있다. 또한, DLP 서버 정보는 CPU, 메모리, 네트워크 트래픽 등의 정보를 포함할 수 있다. DLP 서버(110)는 스위치(140)의 동작에 따라 클라이언트(10)로부터 클라이언트(10)의 데이터를 전달받을 수 있으며, 유출 정보 방지 솔루션을 통하여 전달받은 클라이언트(10)의 정보가 유출되는 것을 방지할 수 있다.
본 발명의 다른 실시예에 따른 DLP 서버(110)는 DLP 서버(110)에 접속된 클라이언트의 수에 따라 DLP 서버 정보 생성 주기를 변경할 수 있다. 더 자세하게는, DLP 서버(110)는 DLP 서버(110)에 접속된 클라이언트의 수가 많을 수록 DLP 서버 정보 생성 주기를 짧게 변경하여 DLP 서버(110)의 리소스 사용량을 정확하게 측정하도록 할 수 있다. 예를 들어, 10개의 클라이언트 수가 접속된 DLP 서버(110)는 1개의 클라이언트가 접속된 DLP 서버(110)보다 DLP 서버 정보 생성 주기가 더 짧을 수 있다. DLP 서버(110)는 생성된 DLP 서버 정보를 부하분산 서버(120)로 전달하는 주기를 변경된 DLP 서버 정보 생성 주기에 맞게 변경할 수 있다.
부하분산 서버(120)는 복수개의 DLP 서버(110)로부터 DLP 서버(110)가 생성한 DLP 서버 정보를 전달받을 수 있고, 클라이언트(10)로부터 DLP 서버 요청 신호를 전달받을 수 있다. 이때, 클라이언트(10)는 DLP 서비스를 이용하고자 하는 사람이 사용하는 서버, 컴퓨터 등과 같은 기기일 수 있으며, 다양한 방식으로 부하분산 서버(120)와 정보를 교환할 수 있다.
한편, 부하분산 서버(120)는 클라이언트(10)로부터 DLP 서버 요청 신호를 전달받으면, DLP 서버(110)로부터 전달받은 DLP 서버 정보에 기반하여 데이터플로우 정보를 생성할 수 있다. 이때, DLP 서버 정보에 기반하여 데이터플로우 정보를 생성하는 것은, DLP 서버 정보에 기반하여 리소스 사용량을 산출하고, 산출한 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하고, 생성된 DLP 서버 사용량 순위정보에 따라 결정한 DLP 서버(110)로의 데이터 분배 순서를 포함하는 데이터플로우 정보를 생성하는 것일 수 있다.
여기서 리소스 사용량은 DLP 서버 정보가 포함하고 있는 CPU, 메모리 및 네트워크 트래픽의 사용량에 기초하여 산출되되, DLP 서버(110)가 네트워크 필터링을 수행 시 가장 주요한 요소인 메모리 사용량에 대한 비중을 가장 높게 설정하여 리소스 사용량을 산출하는 것일 수 있다. 리소스 사용량을 산출하기 위한 더 자세한 내용은 아래의 수학식을 통하여 설명하도록 한다.
[수학식 1]
Figure 112016019728312-pat00001
[수학식 1]의
Figure 112016019728312-pat00002
는 평균 부하(리소스 사용량)을 나타내며, a는 Percent of Memory usage, b는 Percent of CPU usage, c는 Percent of Network usage를 나타낸다. 즉, 임의의 DLP 서버(110)의 리소스 사용량은 가중치가 적용된 요소(CPU, 메모리 및 네트워크 트래픽)의 평균을 통해 산출하는 것일 수 있다.
한편, 산출한 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하는 것은, 산출된 복수의 리소스 사용량이 가장 작은 DLP 서버에 1순위를 부여하는 것일 수 있으며, 경우에 따라서는 리소스 사용량이 적은 순으로 추가적인 순위를 부여할 수 있다. 이때, 산출된 복수의 리소스 사용량 중 동일한 리소스 사용량이 산출된 경우, 메모리 사용량이 적은 것을 우선순위에 두는 것일 수 있으며, 메모리 사용량도 동일한 경우 CPU 사용량이 적은 것을 우선순위에 두는 것일 수 있다.
또한, 결정한 DLP서버(110)로의 데이터 분배 순서를 포함하는 데이터플로우 정보를 생성하는 것은 SFC(Service function Chaining)을 이용하여 생성하는 것일 수 있다. SFC는 다수의 서비스 기능(SF: Service function)들을 하나의 논리적인 체인으로 구성한 뒤 순차적으로 처리하는 기술이다. 예를 들어, 도5를 참조하면, 네트워크에 플로우가 인입되면 분류자에 의해 플로우가 제1 체인(SF1-SF2-SF3-SF4)와 제2 체인(SF1-SF2-SF5)로 분류되며, 분류된 플로우는 정해진 서비스 기능 체인에 따라 순차적으로 전달되고 처리된다. 이와 같이 부하분산 서버(120)는 DLP 서버 사용량 순위 정보로 체인을 형성하고, 형성된 체인으로 이루어진 데이터플로우 정보를 생성할 수 있다.
본 발명의 다른 실시예에 따른 DLP 서버(110)가 DLP 서버 정보를 부하분산 서버(120)으로 전달하는 것은 SNMP(Simple Network Management Protocol) 방식을 이용하는 것일 수 있다. SNMP는 네트워크 장비를 관리 또는 감시하기 위해서 TCP/IP 계층 중 응용 계층에서 이용되는 프로토콜로, 관리 매니저(Manager)와 관리 대상(Agent)의 형태로 동작할 수 있다. 즉, 관리 매니저는 부하분산 서버(120)와 대응되고, 관리 대상은 DLP 서버(110)와 대응된다. 도 1의 부하분산 서버와 DLP 서버의 블록의 구성을 도시한 블록도인 도 2를 참조하여 더 자세하게 설명하면, 관리 매니저인 부하분산 서버(120)가 DLP 서버(110)의 정보를 요청하면, 관리 대상인 DLP 서버(110)는 DLP 서버 정보를 부하분산 서버(120)로 전달하고, 부하분산 서버(120)는 전달받은 데이터를 분석하여 데이터베이스를 구축할 수 있다.
이때, DLP 서버(110)는 Shell Script를 이용하여 프로토콜에 정보를 전달하는 것일 수 있으며, 부하분산 서버(120)는 PHP Script를 이용하여 프로토콜로부터 정보를 가져오는 것일 수 있다.
본 발명의 다른 실시예에 따른 부하분산 서버(120)는 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량을 클라이언트(10)로부터 전달받을 수 있다. 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량은 클라이언트(10)가 생성하여 DLP 서버 요청 신호와 같이 전달하는 것일 수 있다. 한편, 부하분산 서버(120)는 전달받은 필요 리소스 사용량과 최우선순위 DLP 서버의 가용 리소스 사용량을 비교할 수 있다. 여기서 DLP 서버(110)의 가용 리소스 사용량은 DLP 서버(110)가 최대로 수용할 수 있는 리소스의 양에서 현재의 리소스 사용량을 제외한 리소스의 양을 말하는 것일 수 있다. 부하분산 서버(120)는 전달받은 필요 리소스 사용량이 최우선순위 DLP 서버(110)의 가용 리소스 사용량보다 작은 경우 최우선순위 DLP 서버(110)로 클라이언트(10)의 데이터를 모두 보내도록 하는 데이터플로우 정보를 생성할 수 있다.
한편, 부하분산 서버(120)는 전달받은 필요 리소스 사용량이 최우선순위 DLP 서버(110)의 가용 리소스 사용량보다 큰 경우, 최우선순위 DLP 서버(110)에 최우선순위 DLP 서버(110)의 가용 리소스 사용량에 해당하는 클라이언트(10)의 데이터를 보내고, 나머지의 데이터를 다음 순위의 DLP 서버(110)에 보내도록 하는 데이터플로우 정보를 생성할 수 있다.
이때, 부하분산 서버(120)는 모든 DLP 서버(110)에 각 DLP 서버(110)의 가용 리소스 사용량만큼 클라이언트(10)의 데이터를 보내도 클라이언트(10)의 데이터가 남는 경우, 최초 분배한 후 남은 데이터를 이전과 동일한 순서대로 DLP 서버(110)에 재분배 하도록 할 수 있다.
본 발명의 다른 실시예에 따른 부하분산 서버(120)는 모든 DLP 서버(110)에 각 DLP 서버(110)의 가용 리소스 사용량만큼 클라이언트(10)의 데이터를 보내도 클라이언트(10)의 데이터가 남는 경우, 1차적으로 모든 DLP 서버(110)에 처리 가능한 데이터를 모두 분배한 후, 실시간으로 가용 리소스가 생성되는 DLP 서버(110)의 순서대로 클라이언트(10)의 잔여 데이터를 분배하도록 하는 데이터플로우 정보를 생성할 수 있으며, 이러한 정보는 실시간으로 DLP 서버(110)로부터 정보를 받아 생성하는 것일 수 있다.
본 발명의 다른 실시예에 따른 부하분산 서버(120)는 전달받은 필요 리소스 사용량이 최우선순위 DLP 서버(110)의 가용 리소스 사용량보다 큰 경우, 각 DLP 서버(110)의 리소스 사용량 비율과 반비례하도록 클라이언트(10)의 데이터를 분배하도록 하는 데이터플로우 정보를 생성할 수 있다. 예를 들어, 4개의 DLP 서버(110)의 리소스 사용량이 각각 10%, 20%, 30%, 40%이면, 클라이언트(10)의 데이터는 1/10 : 1/20 : 1/30 : 1/40 의 비율로 분배되는 것일 수 있다.
컨트롤러(130)는 부하분산 서버(120)로부터 부하분산 서버(120)가 생성한 데이터플로우 정보를 전달받을 수 있으며, 전달받은 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성할 수 있다. 예를 들어, 4개의 DLP 서버(110)를 포함하는 부하분산 시스템(100)에서 컨트롤러(130)가 제2 DLP 서버, 제1 DLP 서버, 제4 DLP 서버, 제3 DLP 서버의 순으로 분배 순서를 포함하는 데이터플로우 정보를 부하분산 서버(120)로부터 전달받으면, 컨트롤러(130)는 수신한 데이터플로우 정보에 따라 제2 DLP 서버, 제1 DLP 서버, 제4 DLP 서버, 제3 DLP 서버 순으로 스위치(140)의 동작을 제어하는 데이터플로우 테이블을 생성할 수 있다.
이때, 데이터플로우 정보에는 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량이 최소 사용량을 가진 DLP 서버가 가용할 수 있는 리소스 사용량을 넘어서는 경우 수용하지 못한 데이터를 다음 순위의 DLP 서버에 분배하도록 하는 정보가 포함될 수 있으며, 컨트롤러(130)는 상기 데이터플로우 정보에 따라 복수의 DLP 서버를 동작하도록 하는 데이터플로우 테이블을 생성할 수 있다.
스위치(140)는 컨트롤러(130)로부터 컨트롤러(130)가 생성한 데이터플로우 테이블을 수신할 수 있고, 수신한 데이터플로우 테이블에 따라 복수의 DLP 서버(10)에 분배되는 클라이언트(10)의 데이터가 분배될 수 있도록 동작할 수 있다.
여기서 컨트롤러(130)와 스위치(140)는 SDN(Soft-ware-defined networking)방식을 이용하는 것일 수 있다. SDN이란 트래픽 증가와 트래픽 패턴의 동적인 변화에 따른 정확한 네트워크 규모 파악을 위한 네트워크 구조로, SDN은 기존의 네트워크에서는 구성할 수 없는 복잡한 경로 구성이 가능하여 트래픽 패턴의 변화에 효과적으로 대처할 수 있고, 가상 네트워크를 빠르게 구성할 수 있다는 장점이 있으며, Big Data 분석에 필요한 대용량 네트워크를 작은 비용으로 구축할 수 있다. SDN은 네트워크를 제어하는 Control plane과 실제 네트워크 패킷이 이동하는 Data plane이 분리되는 네트워크 구조로 형성되며, Control plane의 역할을 하는 것이 컨트롤러(130)이고, Data plane의 역할을 하는 것이 스위치(140)일 수 있다.
도 3 은 본 발명의 일 실시예에 따른 부하분산 시스템의 플로우 차트이다.
도 3을 참조하면, DLP 서버(110)는 주기적으로 DLP 서버 정보를 생성하고, 생성된 정보를 부하분산 서버(120)로 전달할 수 있다. 이때, DLP 서버(110)는 복수개일 수 있으며, DLP 서버 정보에는 CPU, 메모리, 네트워크 트래픽 등을 포함할 수 있다.
부하분산 서버(120)는 DLP 서버(110)로부터 DLP 서버 정보를 전달받으면, DLP 서버 정보에 기반하여 DLP 서버 사용량 순위 정보를 생성할 수 있다. 이때, DLP 서버 정보에 기반하여 DLP 서버 사용량 순위 정보를 생성하는 것은 DLP 서버 정보의 CPU, 메모리, 네트워크 트래픽에 기초하여 리소스 사용량을 산출하고, 산출된 리소스 사용량에 따라 DLP 서버 사용량 순위 정보를 결정하는 것일 수 있다.
이때, 부하분산 서버(120)는 클라이언트(10)가 전달하는 DLP 서버 사용 요청 신호를 전달받을 수 있으며, DLP 서버 사용 요청 신호를 전달받으면, DLP 서버 사용량 순위 정보에 기반하여 데이터플로우 정보를 생성하여 컨트롤러(130)로 전달할 수 있다. 이때, DLP 서버 사용 요청 신호는 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량을 포함할 수 있으며, 데이터플로우 정보를 생성하는 것은 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량이 최소 사용량을 가진 DLP 서버가 가용할 수 있는 리소스 사용량을 넘어서는 경우 수용하지 못한 데이터를 다음 순위의 DLP 서버에 분배하도록 하는 데이터플로우 정보를 생성하는 것일 수 있다.
컨트롤러(130)는 부하분산 서버(120)로부터 데이터플로우 정보를 전달받을 수 있으며, 데이터플로우 정보에 따라 데이터플로우 테이블을 생성할 수 있으며, 생성된 데이터플로우 테이블을 스위치(140)로 전달할 수 있다.
스위치(140)는 컨트롤러(13)로부터 데이터플로우 테이블을 전달받을 수 있으며, 전달받은 데이터플로우 테이블에 따라 DLP 서버(110)에 클라이언트(10)의 데이터를 분배할 수 있다.
도 4 는 본 발명의 일 실시예에 따른 부하분산 시스템의 제어방법의 순서도이다.
본 발명의 일 실시예에 따른 부하분산 시스템의 제어방법은 도 4를 참조하여 설명하도록 한다.
먼저, 부하분산 서버(120)가 DLP 서버(110)로부터 DLP 서버 정보를 주기적으로 수신한다.(310) 부하분산 서버(120)는 DLP 서버(110)로부터 전달받은 DLP 서버 정보를 이용하여 DLP 서버(110)의 리소스 사용량을 산출한다.(320) 이때, 리소스 사용량을 산출하는 것은 앞에 기재된 [수학식 1]을 이용하여 산출하는 것일 수 있다.
한편, 부하분산 서버(120)는 계산된 리소스 사용량에 기반하여 DLP 서버 사용량 순위 정보를 생성하고,(330) 클라이언트(10)로부터 DLP 서버 사용 요청 신호를 수신하면,(340) DLP 서버 사용량 순위 정보에 기반하여 데이터플로우 정보를 생성한다.(350) 이때, 데이터 플로우 정보를 생성하는 것은, 클라이언트(10)의 데이터를 처리하는데 필요한 필요 리소스 사용량이 최소 사용량을 가진 DLP 서버가 가용할 수 있는 리소스 사용량을 넘어서는 경우 수용하지 못한 데이터를 다음 순위의 DLP 서버에 분배하도록 하는 데이터플로우 정보를 생성하는 것일 수 있다.
한편, 컨트롤러(130)는 부하분산 서버(120)가 생성한 데이터플로우 정보를 부하분산 서버(120)로부터 전달받을 수 있으며, 전달받은 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하고, 생성된 데이터플로우 테이블을 스위치(140)로 전달할 수 있다.(360)
스위치(140)는 컨트롤러(130)로부터 데이터플로우 테이블을 전달받고, 전달받은 데이터플로우 테이블에 따라 DLP 서버에 클라이언트의 데이터를 분배할 수 있다.(370)
이와 같은, 부하분산 시스템, 그 제어방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 클라이언트
100: 부하분산 시스템
110: DLP 서버
120: 부하분산 서버
130: 컨트롤러
140: 스위치

Claims (11)

  1. DLP 서버 정보를 생성하는 DLP 서버;
    상기 DLP 서버로부터 상기 DLP 서버 정보를 전달받고, 클라이언트로부터 DLP 서버 요청 신호를 받으면, 전달받은 상기 DLP 서버 정보에 기반하여 데이터플로우 정보를 생성하는 부하분산 서버;
    상기 부하분산 서버로부터 상기 데이터플로우 정보를 전달받고, 전달받은 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하는 컨트롤러; 및
    상기 컨트롤러로부터 상기 데이터플로우 테이블을 전달받고, 전달받은 상기 데이터플로우 테이블에 따라 상기 클라이언트의 데이터를 상기 DLP 서버에 분배하는 스위치를 포함하고,
    상기 부하분산 서버는 상기 DLP 서버 정보를 기반으로 각 DLP 서버의 리소스 사용량을 계산하고, 상기 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하고, 생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성하고,
    상기 DLP 서버 요청 신호는 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 포함하고,
    생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성하는 것은, 상기 DLP 서버 사용량 순위정보 중 최우선 순위의 DLP 서버의 가용 리소스 사용량과 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 비교하고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 작은 경우, 상기 최우선 순위의 DLP 서버로 상기 클라이언트의 데이터를 모두 보내고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 큰 경우, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 분배하도록 하는 상기 데이터플로우 정보를 생성하는 것인 부하분산 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 리소스 사용량은,
    CPU, 메모리 및 네트워크 트래픽의 사용량에 기초하여 생성되는 것이되, 메모리 사용량의 가중치가 가장 높도록 설정되는 것을 특징으로 하는 부하분산 시스템.
  4. 삭제
  5. 제1항에 있어서,
    상기 데이터플로우 정보를 생성하는 것은,
    상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 가용되는 모든 DLP 서버에 분배한 후 상기 클라이언트의 데이터가 남으면, 남은 상기 클라이언트의 데이터를 상기 DLP 서버 사용량 순위 정보에 따라 재분배 하도록 하는 것을 포함하는 것인 부하분산 시스템.
  6. 제3항에 있어서,
    상기 부하분산 서버와 DLP 서버는 SNMP 프로토콜에 기반하여 상기 메모리 사용량의 정보를 교환하고, 상기 부하분산 서버는 PHP 스크립트를 이용하고, 상기 DLP 서버는 Shell 스크립트를 이용하는 것인 부하분산 시스템.
  7. 제1항, 제3항, 제5항 및 제6항 중 어느 한 항에 따라 부하분산 시스템을 제공하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  8. 클라이언트의 데이터를 처리하는 복수의 DLP 서버, 부하분산 서버, 컨트롤러 및 스위치를 포함하는 부하분산 시스템의 제어방법에 있어서,
    상기 DLP 서버가 DLP 서버 정보를 생성하여 상기 부하분산 서버에 전달하고,
    상기 부하분산 서버가 상기 DLP 서버 정보에 기반하여 각 DLP 서버의 리소스 사용량을 산출하고, 산출된 상기 리소스 사용량에 기초하여 DLP 서버 사용량 순위 정보를 생성하고, 클라이언트로부터 DLP 서버 요청 신호를 받으면, 상기 DLP 서버 사용량 순위 정보에 기반하여 데이터플로우 정보를 생성하여 상기 컨트롤러로 전달하고,
    상기 컨트롤러가 상기 데이터플로우 정보에 기반하여 데이터플로우 테이블을 생성하여 상기 스위치로 전달하고,
    상기 스위치는 상기 데이터플로우 테이블에 따라 상기 클라이언트의 데이터를 상기 DLP 서버에 분배하는 것을 포함하고,
    상기 DLP 서버 요청 신호는 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 포함하고,
    생성된 DLP 서버 사용량 순위정보에 기반하여 데이터플로우 정보를 생성하는 것은, 상기 DLP 서버 사용량 순위정보 중 최우선 순위의 DLP 서버의 가용 리소스 사용량과 상기 클라이언트의 데이터를 처리하는데 필요한 필요 리소스 사용량 정보를 비교하고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 작은 경우, 상기 최우선 순위의 DLP 서버로 상기 클라이언트의 데이터를 모두 보내고, 상기 필요 리소스 사용량이 상기 가용 리소스 보다 큰 경우, 상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 분배하도록 하는 상기 데이터플로우 정보를 생성하는 것인 부하분산 시스템의 제어방법.
  9. 제8항에 있어서,
    상기 DLP 서버 정보는 상기 DLP 서버의 CPU, 메모리 및 네트워크 트래픽의 사용량을 포함하고,
    상기 DLP 서버 정보에 기반하여 각 DLP 서버의 리소스 사용량을 산출하는 것은,
    CPU, 메모리 및 네트워크 트래픽의 사용량에 기초하여 생성되는 것이되, 메모리 사용량의 가중치가 가장 높도록 설정되는 것인 부하분산 시스템의 제어방법.
  10. 삭제
  11. 제8항에 있어서,
    상기 데이터플로우 정보를 생성하는 것은,
    상기 최우선 순위의 DLP 서버가 수용하지 못하는 데이터의 양을 상기 DLP 서버 사용량 순위 정보에 따라 가용 가능한 모든 DLP 서버에 분배한 후 상기 클라이언트의 데이터가 남으면, 남은 상기 클라이언트의 데이터를 상기 DLP 서버 사용량 순위 정보에 따라 재분배 하도록 하는 것을 포함하는 것인 부하분산 시스템의 제어방법.
KR1020160024282A 2016-02-29 2016-02-29 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체 KR101758065B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160024282A KR101758065B1 (ko) 2016-02-29 2016-02-29 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160024282A KR101758065B1 (ko) 2016-02-29 2016-02-29 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체

Publications (1)

Publication Number Publication Date
KR101758065B1 true KR101758065B1 (ko) 2017-07-26

Family

ID=59426867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160024282A KR101758065B1 (ko) 2016-02-29 2016-02-29 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체

Country Status (1)

Country Link
KR (1) KR101758065B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102215031B1 (ko) 2020-07-22 2021-02-10 주식회사 데브와이 분산서버 환경에서 대기접속자에 대한 접속처리방법
KR102522910B1 (ko) * 2022-12-29 2023-04-18 주식회사 에스티씨랩 프록시 방식의 서비스 지속성 보장 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347962A (ja) * 1999-06-02 2000-12-15 Nec Commun Syst Ltd ネットワーク分散管理システム及びネットワーク分散管理方法
US20120233313A1 (en) * 2011-03-11 2012-09-13 Hironobu Fukami Shared scaling server system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347962A (ja) * 1999-06-02 2000-12-15 Nec Commun Syst Ltd ネットワーク分散管理システム及びネットワーク分散管理方法
US20120233313A1 (en) * 2011-03-11 2012-09-13 Hironobu Fukami Shared scaling server system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102215031B1 (ko) 2020-07-22 2021-02-10 주식회사 데브와이 분산서버 환경에서 대기접속자에 대한 접속처리방법
KR102522910B1 (ko) * 2022-12-29 2023-04-18 주식회사 에스티씨랩 프록시 방식의 서비스 지속성 보장 시스템 및 방법

Similar Documents

Publication Publication Date Title
JP6883427B2 (ja) Diameter負荷および過負荷情報ならびに仮想化のための方法、システムおよびコンピュータ読取可能媒体
JP5654022B2 (ja) 企業ネットワーク内の割り当てられたクラウドリソースの動的な負荷分散およびスケーリング
US9712448B2 (en) Proxy server, hierarchical network system, and distributed workload management method
EP3211902A1 (en) Hls-based capability control method, hls-based capability control service system, and slb server
US9197687B2 (en) Prioritized blocking of on-demand requests
KR20150054998A (ko) 클라우드 내에서 지리적으로 분산된 애플리케이션의 자동화 배치를 위한 방법 및 장치
EP3066569B1 (en) Centralized networking configuration in distributed systems
MX2015006471A (es) Metodo y aparato para controlar la utilizacion en una aplicacion de software horizontalmente escalado.
WO2014090075A1 (en) System and method for estimating an effective bandwidth
CN107979539B (zh) 报文处理方法及装置
CN108933829A (zh) 一种负载均衡方法及装置
KR101485161B1 (ko) 실시간 스트리밍 서비스를 제공하기 위한 시스템 및 방법
KR101686073B1 (ko) 클라이언트 단말이 제공받고자 하는 서비스 특성에 따라 네트워크 토폴로지를 적응적으로 변형하여 서비스를 제공받도록 지원하는 방법, 관리 서버 및 컴퓨터 판독 가능한 기록매체
CN112866394B (zh) 一种负载均衡方法、装置、***、计算机设备和存储介质
KR101448413B1 (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
KR101758065B1 (ko) 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체
US20210168051A1 (en) Network control apparatus, network control method and program
US20180145883A1 (en) Server, computer program product, and communication system
Kontogiannis et al. ALBL: an adaptive load balancing algorithm for distributed web systems
CN115168017A (zh) 一种任务调度云平台及其任务调度方法
US9525713B1 (en) Measuring server availability and managing traffic in adaptive bitrate media delivery
Hamd et al. Multicellular 4G and load balancing over cloud computing
US9774512B1 (en) Measuring server availability and managing traffic in adaptive bitrate media delivery
JP6348377B2 (ja) コンテンツ配信ネットワークの通信装置及びプログラム
Nguyen et al. Performance of DASH over Multipath TCP

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant