KR20040110647A - 각 서버간 부하 분산 시스템 및 그 방법 - Google Patents

각 서버간 부하 분산 시스템 및 그 방법 Download PDF

Info

Publication number
KR20040110647A
KR20040110647A KR1020030040058A KR20030040058A KR20040110647A KR 20040110647 A KR20040110647 A KR 20040110647A KR 1020030040058 A KR1020030040058 A KR 1020030040058A KR 20030040058 A KR20030040058 A KR 20030040058A KR 20040110647 A KR20040110647 A KR 20040110647A
Authority
KR
South Korea
Prior art keywords
server
service
load balancing
servers
field
Prior art date
Application number
KR1020030040058A
Other languages
English (en)
Other versions
KR100989490B1 (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 KR1020030040058A priority Critical patent/KR100989490B1/ko
Publication of KR20040110647A publication Critical patent/KR20040110647A/ko
Application granted granted Critical
Publication of KR100989490B1 publication Critical patent/KR100989490B1/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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야
본 발명은, 각 서버간 부하 분산 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 서버와 서버 사이에서 발생하는 트랜잭션 처리시 부하를 분산시키기 위한 방법으로서, 하나의 서버에서 다른 서버로 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하 분산 알고리즘을 이용하여, 동일한 서비스를 제공하는 서버 팜에서 하나의 서버를 선택함으로써 서버간에 발생하는 부하를 적절하게 분산시키기 위한, 각 서버간 부하 분산 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결 방법의 요지
본 발명은, 각 서버간 부하 분산 시스템에 있어서, 다수의 서버가 동일한 서비스를 제공하는 서버 그룹인 서버 팜들이 계층적으로 연결되어, 상하위 서버간에 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하분산알고리즘을 이용하여 상기 서버 팜에서 하나의 서버를 선택하여 서비스를 수행하되, 상기 각 서버는, 상하위 계층의 각 서버들의 상태를 저장하고 있는 상태 정보 테이블을 관리하기 위한 서버 상태 관리 수단; 자신의 리소스 상태 및 서비스 제공 상태를상하위 계층의 각 서버들에게 주기적으로 전송해주기 위한 서버 상태 정보 전송 수단; 상하위 계층의 각 서버들로부터의 서비스 요청에 따라 해당 서비스를 수행하는 서버들에 대한 정보를 상기 상태 정보 테이블을 이용하여 추출한 후에 해당 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하기 위한 서버 선택 수단; 및 상기 서버 선택 수단에서 선택된 상기 서비스 수행 서버에 서비스를 요청하기 위한 서비스 요청 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 부하 분산 시스템 등에 이용됨.

Description

각 서버간 부하 분산 시스템 및 그 방법{SYSEM AND ITS METHOD FOR LOAD DISTRIBUTION BETWEEN SERVERS}
본 발명은, 각 서버간 부하 분산 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로서, 하나의 서버에서 다른 서버로 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하 분산 알고리즘을 이용하여, 동일한 서비스를 제공하는 서버 팜에서 하나의 서버를 선택함으로써 서버간에 발생하는 부하를 적절하게 분산시키기 위한, 각 서버간 부하 분산 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
흔히 말하는 교통 체증은 현실 세계의 도로에서만 발생하는 것이 아니라, 우리 사회의 중요한 인프라 구실을 하고 있는 인터넷에서도 트래픽 체증이 일반화되고 있으며, 그로 인한 사용자 개개인의 피해와 우리 사회의 비용 부담은 이만저만 큰 것이 아니다.
일례로, 대입 인터넷접수 마감날 "서버 다운으로 접속이 안됩니다" 라는 메시지에 많은 수험생과 부모들이 발을 동동 굴렀다는 신문의 보도도 심심찮게 접할 수 있다. 또한, 온라인 주식거래 도중 시스템 장애로 손해를 보는 경우도 많다. 공들여 작성한 이력서를 온라인으로 접수했는데 회사 서버다운으로 접수 자체가 안된것을 뒤늦게 발견하고 허탈해하기도 한다. 이와 같이, 인터넷 뱅킹과 사이버 트레이딩 등 온라인으로 처리하는 업무가 급증하고 있는 만큼 기업에 있어서 효율적인 시스템 관리의 필요성은 더욱 절실하다고 하겠다.
한편, 서버다운은 주로 사용자 폭주로 처리해야 할 트래픽이 가중될 때 발생한다. 특히, 모든 트래픽이 거치는 특정 서버나 방화벽 주변에 데이터가 몰리면 장애가 일어나기 쉽다. 즉, 서버에 과도한 트랜잭션 발생시 병목 현상을 일으키게 되므로, 서버의 부하를 적절히 분산시키는 기술이 필요하다.
일반적으로 서버의 부하를 분산시키는 기술은 클라이언트로부터 발생되는 트랜잭션을 분산시키기 위하여 특정한 알고리즘에 따라서 서버를 선택하는 부하 분산 스위치를 사용하는 방법과 클러스터링을 통해서 이중화 및 부하 분산을 제공하는 방법이 널리 쓰이고 있다. 이를 도 1과 도2를 각각 참조하여 상세히 살펴보기로 한다.
먼저, 도 2에 도시된 바와 같이, 클러스터링을 이용한 서버 시스템은 두개 이상의 서버에 동일한 애플리케이션 프로그램을 설치한 뒤 가상의 대표 IP주소를 설정해 사용자가 이 대표 IP로 접속할 때 서버 간 고유의 알고리즘을 이용해 여러 서버에 부하를 분산해 성능을 높인다는 개념이다. 특히, 이 방식은 특정 서버의 장애 시에도 서비스를 중단없이 계속할 수 있도록 지원한다. 그러나, 이 방법은 서버에 공유 스토리지(SAN, SCSI)와 서버간을 연결하는 전용 통신 장치가 필요하고, 추가로 고가의 부하 분산용 애플리케이션 프로그램을 설치해야 하므로, 소프트웨어 및 하드웨어 구입에 따른 추가비용과 서버의 성능 저하 등의 문제점이 있었다. 또한, 까다로운 하드웨어, 소프트웨어 환경 설정과 운영 경험이 필요하며, 클러스터링으로 묶이는 서버의 수가 늘수록 시스템이 불안정해지는 단점이 있다.
그리고, 서버 부하 분산 스위치를 이용한 서버 시스템은 도 1에 도시된 바와 같다. 일반적으로 부하 분산 스위치로 흔히 쓰이는 것이 레이어4 스위치이다. 보통 L4 스위치로 불리는데 서버 앞단에 위치해서 서버들을 대표하는 공인 IP주소(VIP)를 갖고 외부에서 서버 접속 요청이 있을 때 이 주소로 접속을 요구하게 된다. 이때 L4 스위치는 요청하는 서비스의 포트에 따라서 적절한 서버로 세션을 넘겨주는 역할을 한다. 이 방법은 지금까지도 서버 부하 분산에 가장 많이 사용되는 방법으로, 서비스 사업자들은 고가의 고성능 서버보다 여러 대의 저가 서버를 이용해 높은 성능의 안정적인 서비스를 할 수 있게 되었다. 최근에는 레이어4 뿐 아니라 레이어7까지 모든 영역을 이용한 부하 분산 서비스도 가능하기 때문에 L4―L7 스위치라고 부르기도 한다. 그러나, 이 방법은 스위치 도입 비용과 네트워크 변경 비용이 많이 들게 된다.
한편, 위에서 설명한 일반적인 서버 부하 분산 방법들은 하이퍼 텍스트 전송 프로토콜(HTTP : Hypertext Transfer Protocol), 파일 전송 프로토콜(FTP : File Transfer Protocol) 등을 이용하여 클라이언트에서 서버로 전달되는 트랜잭션에 대한 부하에 대해서만 분산 기능을 제공하고, 서버에서 서버로 전달되는 데이터베이스 관리 시스템(DBMS : DataBase Management System), 소켓(Socket), 원격 프로시져 호출(RPC : Remote Procedure Call) 등에 대한 부하 분산 기능은 제공되지 않는 문제점이 있었다.
또한, 종래의 일반적인 서버 부하 분산 방법들은 단순한 부하 분산 알고리즘(Round Robin, Hash, Least Connection Scheduling 등)만을 지원하고 있기 때문에 어플리케이션 특성에 따른 유연한 부하 분산 알고리즘을 적용할 수 없었고, 그에 따라 보다 효과적으로 서버 부하 분산이 이루어지지 못하는 문제점이 있었다.
본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 서버와 서버 사이에서 발생하는 트랜잭션 처리시 부하를 분산시키기 위한 방법으로서, 하나의 서버에서 다른 서버로 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하분산알고리즘을 이용하여, 동일한 서비스를 제공하는 서버 팜에서 하나의 서버를 선택함으로써 서버간에 발생하는 부하를 적절하게 분산시키기 위한, 각 서버간 부하 분산 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1은 종래 방법에 따른 서버 부하 분산 스위치를 이용한 서버 시스템의 일실시예 구성도.
도 2는 종래 방법에 따른 클러스터링을 이용한 서버 시스템의 일실시예 구성도.
도 3은 본 발명에 따른 각 서버간 부하 분산 시스템의 일실시예 구성도.
도 4는 본 발명에 따른 각 서버의 일실시예 상세 구성도.
도 5는 본 발명에 따른 상태 정보 테이블의 일실시예 구조도.
도 6은 본 발명에 따른 각 서버간 부하 분산 방법에 대한 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호 설명
31 : 웹 서버 팜 32 : eAI 서버 팜
33 : SCM 서버 팜 34 : ERP 서버 팜
35 : 클라이언트 41 : 서버 상태 관리부
42 : 서버 상태 정보 전송부 43 : 서버 선택부
44 : 서비스 요청부
상기의 목적을 달성하기 위한 본 발명은, 각 서버간 부하 분산 시스템에 있어서, 다수의 서버가 동일한 서비스를 제공하는 서버 그룹인 서버 팜들이 계층적으로 연결되어, 상하위 서버간에 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하분산알고리즘을 이용하여 상기 서버 팜에서 하나의 서버를 선택하여 서비스를 수행하되, 상기 각 서버는, 상하위 계층의 각 서버들의 상태를 저장하고 있는 상태 정보 테이블을 관리하기 위한 서버 상태 관리 수단; 자신의 리소스 상태 및 서비스 제공 상태를 상하위 계층의 각 서버들에게 주기적으로 전송해주기 위한 서버 상태 정보 전송 수단; 상하위 계층의 각 서버들로부터의 서비스 요청에 따라 해당 서비스를 수행하는 서버들에 대한 정보를 상기 상태 정보 테이블을 이용하여 추출한 후에 해당 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하기 위한 서버 선택 수단; 및 상기 서버 선택 수단에서 선택된 상기 서비스 수행 서버에 서비스를 요청하기 위한 서비스 요청 수단을 포함한다.
또한, 본 발명은, 각 서버간 부하 분산 방법에 있어서, 동일한 서비스를 제공하는 다수의 서버로 구성된 서버 팜에 포함된 각 서버가 자신의 상태 정보를 상하위 계층의 각 서버들에게 주기적으로 전송하고, 상기 상하위 계층의 각 서버들로부터 일정 주기로 전송되는 상태 정보를 상태 정보 테이블에 저장/관리하는 제 1 단계; 서비스를 요청받은 서버가 상태 정보 테이블에서 상기 서비스를 수행하는 서버들에 대한 정보를 추출하는 제 2 단계; 상기 서버가 상기 추출한 서버들의 정보를 이용하여 상기 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하는 제 3 단계; 및 상기 서버가 상기 선택된 서비스 수행 서버로 서비스 요청 신호를 전송하는 제 4 단계를 포함한다.
한편, 본 발명은, 각 서버간 부하 분산 시스템의 각 서버에, 동일한 서비스를 제공하는 다수의 서버로 구성된 서버 팜에 포함된 각 서버가 자신의 상태 정보를 상하위 계층의 각 서버들에게 주기적으로 전송하고, 상기 각 상하위 계층의 각서버들로부터 일정 주기로 전송되는 상태 정보를 상태 정보 테이블에 저장/관리하는 제 1 기능; 서비스를 요청받은 서버가 상태 정보 테이블에서 상기 서비스를 수행하는 서버들에 대한 정보를 추출하는 제 2 기능; 상기 서버가 상기 추출한 서버들의 정보를 이용하여 상기 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하는 제 3 기능; 및 상기 서버가 상기 선택된 서비스 수행 서버로 서비스 요청 신호를 전송하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 3은 본 발명에 따른 각 서버간 부하 분산 시스템의 일실시예 구성도이다.
도 3에 도시된 바와 같이, 본 발명에 따른 각 서버간 부하 분산 시스템은, 웹 서버 팜(31), 기업 애플리케이션 통합(EAI) 서버 팜(32), 공급망관리(SCM : Supply Chain Management) 서버 팜(33), 전사적자원관리(ERP : Enterprise Resource Planning) 서버 팜(34)을 포함한다. 이 때, 서버 팜은 동일한 서비스를 제공하는 서버 그룹을 지칭한다.
먼저, 웹 서버 팜(31)은 인터넷을 통하여 접속한 클라이언트의 요청에 따라 각종 서비스를 제공하기 위한 다수의 서버(311, 312, 313)를 포함한다.
그리고, 기업 애플리케이션 통합(EAI : Enterprise Application Integ) 서버 팜(32)은 미들웨어를 이용하여 비즈니스 로직을 중심으로 기업내 각종 애플리케이션을 통합하는 기능을 수행하기 위한 다수의 서버(321, 322)를 포함한다. 전통적인 미들웨어가 개별적인 애플리케이션을 포인트 투 포인트로 적용했다면, 기업 애플리케이션 통합(EAI)은 기업내 상호 연관된 모든 애플리케이션(SCM, CRM, ERP)을 유기적으로 연동시켜 필요한 정보를 통합하고 관리하고 사용할 수 있게 하는 솔루션이다.
또한, 공급망관리(SCM : Supply Chain Management) 서버 팜(33)은 기업의 부품구매, 제조, 판매까지의 모든 일정을 수립하고 고객의 수요계획 및 물류현황을 체계적으로 정리하며, 제품의 흐름을 원활하고 효율적으로 수행하기 위한 다수의 서버(331, 332)를 포함한다. 최근 대부분의 기업들은 공급망관리(SCM)를 통하여 총비용과 소요시간을 단축하고, 매출, 신축성, 고객대응성을 증가시키고 있다.
마지막으로, 전사적자원관리(ERP : Enterprise Resource Planning) 서버 팜(34)은 생산 및 생산관리 업무는 물론 설계, 재무, 회계, 영업, 인사 등 순수 관리 기능과 경영지원 기능을 수행하기 위한 다수의 서버(341, 342, 343)를 포함한다.
한편, 클라이언트(35)는 웹 서버 팜(31)에 포함된 서버 중 하나에 접속하여 여러가지 서비스를 요청하게 된다. 그러면, 클라이언트(35)가 요청한 서비스를 제공해주기 위하여 각 서버 팜(31 내지 34) 간에는 트랜잭션이 발생하게 된다. 이 때, 본 발명에서는 각 서버 팜(31 내지 34) 간에 발생하는 트랜잭션을 효과적으로 분산시키는데 있어서, 별도의 하드웨어(부하 분산 스위치)나 소프트웨어의 도움없이 소프트웨어적으로 구현한다. 보다 상세한 구성은 도 4를 참조하여 설명하기로한다.
도 4는 본 발명에 따른 각 서버의 일실시예 상세 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 각 서버는, 상하위 계층의 각 서버들의 상태를 저장하고 있는 상태 정보 테이블을 관리하기 위한 서버 상태 관리부(41), 자기 자신의 리소스 상태(CPU, 메모리, 디스크 점유율) 및 서비스 제공 상태를 상하위 계층의 각 서버들에게 주기적으로 전송해주기 위한 서버 상태 정보 전송부(42), 상하위 계층의 각 서버들로부터 또는 클라이언트로부터의 서비스 요청에 따라 해당 서비스를 수행하는 서버들에 대한 정보를 서버 상태 관리부(41)의 상태 정보 테이블을 이용하여 추출한 후에 해당 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하기 위한 서버 선택부(43), 및 서버 선택부(43)에서 선택된 서비스 수행 서버에 서비스를 요청하기 위한 서비스 요청부(44)를 포함한다.
상기 서버 상태 저장부(41)에 저장되어 있는 상태 정보 테이블에 대하여서는 도 5를 참조하여 후술하기로 한다.
도 5는 본 발명에 따른 상태 정보 테이블의 일실시예 구조도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 상태 정보 테이블은, 각 서버 팜을 유일하게 구별하기 위한 서비스이름 필드(51), 각 서버 팜에 할당되어 서비스 요청부(44)가 접속할 때 사용하기 위한 주소가 저장되어 있는 가상IP 필드(52), 각 서버 팜에 적합한 부하분산알고리즘이 설정되어 있는 부하분산알고리즘 필드(53), 서버의 실제 주소가 저장되어 있는 서버IP 필드(54), 각 서버의 서비스 제공 상태를 저장하기 위한 서비스상태 필드(55), 및 서버의 리소스 상태를 저장하기 위한 서버상태 필드(56)를 포함한다.
이 때, 서비스상태 필드(55) 및 서버상태 필드(56)의 각 세부 필드는 각 서비스 별로 각각 다른 정보로 구성된다. 즉, 기업 애플리케이션 통합(EAI) 서비스의 서비스상태 필드(55)는 응답시간(Response Time)(551), 러닝 인스턴스(Running Instance)(552), 슬리핑 인스턴스(Sleeping Instance)(553)을 포함하고, 공급망관리(SCM : Supply Chain Management) 서비스의 서비스상태 필드(55)는 액티브 세션(Active Session)(554), 실패한 전송(Aborted Tx)(555)을 포함하며, 전사적자원관리(ERP : Enterprise Resource Planning) 서비스의 서비스상태 필드(55)는 워킹 세트 피크(Working Set Peak)(556), 큐잉된 잡(job Queued)(557)을 포함한다.
그리고, 서버상태 필드(56)의 각 세부 필드도 서비스상태 필드(55)와 마찬가지로 서비스에 따라 각각 다른 정보(CPU 점유율, 메모리 가용율 등)로 구성된다.
또한, 부하분산알고리즘 필드(53)에는 여러가지 부하분산알고리즘이 우선순위를 가지고 설정되어 있다. 먼저, 가장 우선순위가 높은 부하분산알고리즘을 수행하여 하나의 서버를 선택할 수 없을 때는 그 다음 우선순위가 높은 부하분산알고리즘을 차례로 수행하여 하나의 서버를 선택한다.
부하분산알고리즘으로는 라운드 로빈(Round Robin), 가중치기반 라운드 로빈(Weighted Round Robin), 해쉬(Hash), 최소 접속 스케줄링(Least Connection Scheduling), 응답시간 우선 스케줄링(Response Time Fast) 등이 있을 수 있고, 서비스상태 필드(55)에 포함되는 세부 필드 및 서버상태 필드(56)에 포함되는 세부필드의 내용에 따른 조건을 설정할 수도 있다.
예를 들어, 기업 애플리케이션 통합(EAI) 서비스의 부하분산알고리즘 필드(55)는 기업 애플리케이션 통합(EAI) 서버 팜(32)에 포함되어 있는 각 서버(321, 322)의 서비스상태 필드(55)의 서브 필드를 이용하여, 제일 먼저 응답시간 우선(Response Time First)(531)으로 서버를 선택하고, 선택하지 못하였으면 최소 러닝 인스턴스(Running Instance Low)(532)를 가지는 서버를 선택하고, 선택하지 못하였으면 최소 슬리핑 인스턴스(Sleeping Instance Low)(533)를 가지는 서버를 선택한다.
그리고, 선택된 기업 애플리케이션 통합(EAI)(321)은 다시 공급망 관리(SCM) 서버 팜(33)에 포함되어 있는 각 서버(331,332)의 서비스상태 필드(55)의 서브 필드를 이용하여, 제일 먼저 페이지 스와핑 (Pages/Sec) (534) 이 5000 보다 작은 서버를 선택하고, 선택하지 못하였으면 실패한 전송(Arorted tx ) (535)이 가장 작은 서버를 선택하고, 선택하지 못하였으면 최소 CPU 사용량(CPU Usage) (536)을 가지는 서버로 선택한다.
또한, 기업 애플리케이션 통합(EAI)(321)은 다시 전사적 자원 관리(ERP) 서버 팜(34)에 포함되어 있는 각 서버(341,342,343)의 서비스상태 필드(55)의 서브 필드를 이용하여, 제일 먼저 위킹 세트 피크(Working Set Peak)(537)가 2000 이하이고 디스크 쓰기 활용(Disk Write Busy)(537)이 가장 작은 서버를 선택하고, 선택하지 못하였으면 큐잉된 잡(Job Queued)(538)이 100 보다 작은 서버를 선택하고, 선택하지 못하였으면 최소 네트워크 인터페이스 카드 활용도(539)를 가진 서버로선택한다.
도 6은 본 발명에 따른 각 서버간 부하 분산 방법에 대한 일실시예 흐름도이다.
우선, 각 서버의 부하 분산 프로그램은 일정 주기로 갱신되는 상태 정보 테이블을 관리하고 있으며, 각 서버 자신의 상태 정보를 상하위 계층의 각 서버들에게 주기적으로 전송한다.
먼저, 부하 분산 프로그램이 서비스 요청 신호를 입력받아(601) 상태 정보 테이블에서 상기 서비스를 수행하는 서버들에 대한 정보를 추출한 후(602) 상기 서비스에 대하여 설정되어 있는 부하 분산 알고리즘을 이용하여 실시간으로 서비스 수행 서버를 선택한다(603). 그리고, 상기 선택된 서비스 수행 서버로 상기 서비스의 처리를 요청하여 결과를 반환받는다(604).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같이 본 발명은, 서버에서 서버로 전달되는 데이터베이스 관리 시스템(DBMS : DataBase Management System), 소켓(Socket), 원격 프로시져 호출(RPC : Remote Procedure Call) 등의 트랜잭션에 대한 부하 분산 기능은 제공하여, 보다 효과적으로 서버 간에 부하 분산이 이루어지도록 할 수 있는 효과가 있다.

Claims (9)

  1. 각 서버간 부하 분산 시스템에 있어서,
    다수의 서버가 동일한 서비스를 제공하는 서버 그룹인 서버 팜들이 계층적으로 연결되어, 상하위 서버간에 서비스 요청시 각 서버에서 실시간으로 갱신되는 서버 상태 정보와 부하분산알고리즘을 이용하여 상기 서버 팜에서 하나의 서버를 선택하여 서비스를 수행하되,
    상기 각 서버는,
    상하위 계층의 각 서버들의 상태를 저장하고 있는 상태 정보 테이블을 관리하기 위한 서버 상태 관리 수단;
    자신의 리소스 상태 및 서비스 제공 상태를 상하위 계층의 각 서버들에게 주기적으로 전송해주기 위한 서버 상태 정보 전송 수단;
    상하위 계층의 각 서버들로부터의 서비스 요청에 따라 해당 서비스를 수행하는 서버들에 대한 정보를 상기 상태 정보 테이블을 이용하여 추출한 후에 해당 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하기 위한 서버 선택 수단; 및
    상기 서버 선택 수단에서 선택된 상기 서비스 수행 서버에 서비스를 요청하기 위한 서비스 요청 수단
    을 포함하는 각 서버간 부하 분산 시스템.
  2. 제 1 항에 있어서,
    상기 상태 정보 테이블은,
    각 서버 팜에서 제공하는 서비스이름을 저장하기 위한 서비스이름 필드;
    상기 각 서버 팜에 할당되어 있는 가상 IP를 저장하기 위한 가상IP 필드;
    상기 각 서버 팜에 적합한 부하분산알고리즘이 설정되어 있는 부하분산알고리즘 필드;
    상기 각 서버의 실제 주소가 저장되어 있는 서버IP 필드;
    상기 각 서버의 서비스 제공 상태를 저장하기 위한 서비스상태 필드; 및
    상기 각 서버의 리소스 상태를 저장하기 위한 서버상태 필드
    를 포함하는 각 서버간 부하 분산 시스템.
  3. 제 2 항에 있어서,
    상기 서비스상태 필드 및 상기 서버상태 필드는,
    상기 각 서버팜 별로 각각 다른 서브 필드를 포함하는 것을 특징으로 하는 각 서버간 부하 분산 시스템.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 부하분산알고리즘 필드는.
    다수의 부하분산알고리즘이 우선순위를 가지고 설정되어 있는 것을 특징으로 하는 각 서버간 부하 분산 시스템.
  5. 제 4 항에 있어서,
    상기 부하분산알고리즘 필드는,
    상기 서비스상태 필드에 포함되는 서브 필드 및 서버상태 필드에 포함되는 서브 필드에 따른 서버 선택 조건이 설정되는 것을 특징으로 하는 각 서버간 부하 분산 시스템.
  6. 각 서버간 부하 분산 방법에 있어서,
    동일한 서비스를 제공하는 다수의 서버로 구성된 서버 팜에 포함된 각 서버가 자신의 상태 정보를 상하위 계층의 각 서버들에게 주기적으로 전송하고, 상기 상하위 계층의 각 서버들로부터 일정 주기로 전송되는 상태 정보를 상태 정보 테이블에 저장/관리하는 제 1 단계;
    서비스를 요청받은 서버가 상태 정보 테이블에서 상기 서비스를 수행하는 서버들에 대한 정보를 추출하는 제 2 단계;
    상기 서버가 상기 추출한 서버들의 정보를 이용하여 상기 서비스에 대하여설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하는 제 3 단계; 및
    상기 서버가 상기 선택된 서비스 수행 서버로 서비스 요청 신호를 전송하는 제 4 단계
    를 포함하는 각 서버간 부하 분산 방법.
  7. 제 6 항에 있어서,
    상기 상태 정보 테이블은,
    각 서버 팜에서 제공하는 서비스이름을 저장하기 위한 서비스이름 필드;
    상기 각 서버 팜에 할당되어 있는 가상 IP를 저장하기 위한 가상IP 필드;
    상기 각 서버 팜에 적합한 부하분산알고리즘이 설정되어 있는 부하분산알고리즘 필드;
    상기 각 서버의 실제 주소가 저장되어 있는 서버IP 필드;
    상기 각 서버의 서비스 제공 상태를 저장하기 위한 서비스상태 필드; 및
    상기 각 서버의 리소스 상태를 저장하기 위한 서버상태 필드
    를 포함하는 각 서버간 부하 분산 방법.
  8. 제 7 항에 있어서,
    상기 부하분산알고리즘 필드는.
    다수의 부하분산알고리즘이 우선순위를 가지고 설정되어 있는 것을 특징으로 하는 각 서버간 부하 분산 방법.
  9. 각 서버간 부하 분산 시스템의 각 서버에,
    동일한 서비스를 제공하는 다수의 서버로 구성된 서버 팜에 포함된 각 서버가 자신의 상태 정보를 상하위 계층의 각 서버들에게 주기적으로 전송하고, 상기 각 상하위 계층의 각 서버들로부터 일정 주기로 전송되는 상태 정보를 상태 정보 테이블에 저장/관리하는 제 1 기능;
    서비스를 요청받은 서버가 상태 정보 테이블에서 상기 서비스를 수행하는 서버들에 대한 정보를 추출하는 제 2 기능;
    상기 서버가 상기 추출한 서버들의 정보를 이용하여 상기 서비스에 대하여 설정되어 있는 부하 분산 알고리즘에 따라 서비스 수행 서버를 선택하는 제 3 기능; 및
    상기 서버가 상기 선택된 서비스 수행 서버로 서비스 요청 신호를 전송하는 제 4 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020030040058A 2003-06-20 2003-06-20 각 서버간 부하 분산 시스템 및 그 방법 KR100989490B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030040058A KR100989490B1 (ko) 2003-06-20 2003-06-20 각 서버간 부하 분산 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030040058A KR100989490B1 (ko) 2003-06-20 2003-06-20 각 서버간 부하 분산 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20040110647A true KR20040110647A (ko) 2004-12-31
KR100989490B1 KR100989490B1 (ko) 2010-10-22

Family

ID=37383012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030040058A KR100989490B1 (ko) 2003-06-20 2003-06-20 각 서버간 부하 분산 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100989490B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666451B1 (ko) * 2004-07-07 2007-01-09 주식회사 파이오링크 네트워크상에서 단일의 mac/ip 어드레스를 갖는 부하분산 클러스터 시스템 및 부하 분산 클러스터링 방법
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
KR101048449B1 (ko) * 2007-12-18 2011-07-11 삼성전자주식회사 광대역 무선통신 시스템에서 다수의 서비스 제공자들을고려한 수락 제어 장치 및 방법
KR101113943B1 (ko) * 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072250A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 동적 부하 분산 시스템 및 방법
CN107835131A (zh) * 2017-12-15 2018-03-23 北京星河星云信息技术有限公司 网络流量调度方法、装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235535A (ja) * 1999-02-16 2000-08-29 Nec Corp システム負荷計測交換方法および分散処理システム
KR20010057769A (ko) * 1999-12-23 2001-07-05 오길록 웹 환경에서 자바 서블릿을 이용한 동질 자바 응용서버들의 부하 분산방법
JP2002091936A (ja) 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
JP2002245018A (ja) 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 負荷分散システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666451B1 (ko) * 2004-07-07 2007-01-09 주식회사 파이오링크 네트워크상에서 단일의 mac/ip 어드레스를 갖는 부하분산 클러스터 시스템 및 부하 분산 클러스터링 방법
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
KR101048449B1 (ko) * 2007-12-18 2011-07-11 삼성전자주식회사 광대역 무선통신 시스템에서 다수의 서비스 제공자들을고려한 수락 제어 장치 및 방법
US8514699B2 (en) 2007-12-18 2013-08-20 Samsung Electronics Co., Ltd. Apparatus and method for admission control considering multiple service providers in a broadband wireless communication system
KR101113943B1 (ko) * 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템

Also Published As

Publication number Publication date
KR100989490B1 (ko) 2010-10-22

Similar Documents

Publication Publication Date Title
US7941556B2 (en) Monitoring for replica placement and request distribution
Chaczko et al. Availability and load balancing in cloud computing
KR101916847B1 (ko) 크로스-클라우드식 관리 및 고장수리 기법
CN107832153B (zh) 一种Hadoop集群资源自适应分配方法
CN101535978B (zh) 分布式服务器系统中的消息转发备份管理器
US8533674B2 (en) Method, system and apparatus for providing pay-per-use distributed computing resources
US7937437B2 (en) Method and apparatus for processing a request using proxy servers
US7774323B2 (en) Method and apparatus for delivering managed applications to remote locations
US7200657B2 (en) Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
US8239540B2 (en) Distributed computing based on multiple nodes with determined capacity selectively joining resource groups having resource requirements
US7558859B2 (en) Peer-to-peer auction based data distribution
CN101136939B (zh) 分布式计算系统和用于在其中执行应用的方法
US20050262183A1 (en) Connection pool use of runtime load balancing service performance advisories
US7287179B2 (en) Autonomic failover of grid-based services
US8291424B2 (en) Method and system of managing resources for on-demand computing
US7996529B2 (en) System for autonomic monitoring for web high availability
CN104079630A (zh) 一种业务服务端负载均衡方法、客户端、服务端以及系统
US20110145393A1 (en) Method for dynamic reservation of cloud and on premises computing resources for software execution
JP2005539298A (ja) サーバを遠隔かつ動的に構成する方法およびシステム
US6963828B1 (en) Metafarm sizer configuration optimization method for thin client sizing tool
CN107426323A (zh) 一种基于分布式的资源服务与可视化监控系统及方法
CA2246867A1 (en) Internet performance network
KR100989490B1 (ko) 각 서버간 부하 분산 시스템 및 그 방법
CN101820365A (zh) 支持组合服务QoS动态优化的服务总线
KR20110026303A (ko) 분산 서버 기반의 그리드 시스템 및 동작 방법

Legal Events

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

Payment date: 20131004

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161005

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170921

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190903

Year of fee payment: 10