KR20070025667A - 클러스터 시스템을 제어하는 방법 - Google Patents

클러스터 시스템을 제어하는 방법 Download PDF

Info

Publication number
KR20070025667A
KR20070025667A KR1020050082081A KR20050082081A KR20070025667A KR 20070025667 A KR20070025667 A KR 20070025667A KR 1020050082081 A KR1020050082081 A KR 1020050082081A KR 20050082081 A KR20050082081 A KR 20050082081A KR 20070025667 A KR20070025667 A KR 20070025667A
Authority
KR
South Korea
Prior art keywords
node
resource
external terminal
resource usage
calculating
Prior art date
Application number
KR1020050082081A
Other languages
English (en)
Other versions
KR100717216B1 (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 KR1020050082081A priority Critical patent/KR100717216B1/ko
Publication of KR20070025667A publication Critical patent/KR20070025667A/ko
Application granted granted Critical
Publication of KR100717216B1 publication Critical patent/KR100717216B1/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 클러스터 시스템의 제어 방법에 관한 것으로서, 특히 복수 개의 노드를 가지고 클러스터 시스템을 구성하는 병렬 시스템의 부하 분산 방법에 관한 것이다.
본 발명의 목적을 달성하기 위한 제1 자원과 제2 자원을 포함하며 외부 단말기로부터의 요청에 대응하는 소정의 작업 처리할 수 있는 복수 개의 노드와, 외부 단말기로부터 통신 네트워크를 통해 전송받는 요청에 대응하는 작업을 상기 각 노드로 분배하는 부하 분산 서버를 포함하는 클러스터 시스템을 제어하는 방법은, (1) 각각의 노드의 제1 자원 사용량 정보와 제2 자원 사용량 정보를 획득하는 단계와, (2) 외부 단말기로부터의 요청을 획득하는 외부 단말기 요청 획득 단계와, (3) 상기 노드의 상기 제1 자원 사용량 정보와 상기 제2 자원 사용량 정보를 이용하여 상기 노드와 상기 외부 단말기와의 연결을 유도하는 부하 분산 단계를 포함하고, 상기 부하 분산 단계는, (3-a) 상기 접속한 외부 단말기 당 노드 제1 자원 사용량을 계산하는 제1 계산 단계와, (3-b) 상기 접속한 외부 단말기 당 노드 제2 자원 사용량을 계산하는 제2 계산 단계와, (3-c) 상기 노드의 제1 자원 중 사용되지 아니하는 제1 자원 아이들(Idle)량을 상기 제1 계산 단계의 결과 값으로 나누어 제1 자원 잔여량에 따른 접속 허용 가능자 수를 계산하는 제3 계산 단계와, (3-d) 상기 노드의 제2 자원 중 사용되지 아니하는 제2 자원 아이들(Idle)량을 상기 제2 계산 단계의 결과 값으로 나누어 제2 자원 잔여량에 따른 접속 허용 가능자 수를 계산하 는 제4 계산 단계와, (3-e) 상기 제 3 계산 단계와 상기 제4 계산 단계에서 구한 자원 잔여량에 따른 접속 허용 가능자 수를 비교하여 더 적은 접속 허용 가능자 수를 상기 노드의 접속 허용 가능자 수로 산정하는 제5 계산 단계를 포함하도록 구성된다.
클러스터, 하드웨어, 부하 분산, 스케줄링, 밸런싱

Description

클러스터 시스템을 제어하는 방법{Method for Controlling Cluster System}
도 1은 본 발명에 의한 클러스터 시스템 제어 방법이 수행되는 클러스터 시스템의 예시도.
도 2는 본 발명에 의한 클러스터 시스템 제어 방법의 실시예에 따른 절차 흐름도.
본 발명은 클러스터 시스템의 제어 방법에 관한 것으로서, 특히 복수 개의 노드를 가지고 클러스터 시스템을 구성하는 병렬 시스템의 부하 분산 방법에 관한 것이다.
복잡하고 방대한 양의 연산을 수행하는 연산 장치로서 종래에는 단일의 고성능 컴퓨터 소위 슈퍼 컴퓨터가 있었고, 현재 많은 연구소 내지 기관 등에서 이와 같은 슈퍼 컴퓨터가 사용되고 있으나, 이러한 슈퍼 컴퓨터는 그 장치의 구성에 있어서 매우 고가의 장비를 요구하고 유지 관리 또한 막대한 비용이 소요된다. 한편, 마이크로 프로세서의 성능 개선과 네트워크 기술의 발전 등에 힘입어 종래 슈퍼 컴퓨터의 기능을 대체할 수 있도록 다수의 컴퓨터가 네트워크로 연결되어 각각 의 컴퓨터 자원들을 이용하여 종래 슈퍼 컴퓨터 급의 대형 서버에서 수행되던 프로세스들을 처리하는 것이 가능한 병렬 컴퓨터 시스템 소위 클러스터 시스템이 개발되었다. 이러한 클러스터 시스템은 특히 리눅스(Linux) 등과 같이 소스 코드가 공개된 운영 체계를 사용하게 되면 사용자 내지 네트워크 관리 전문가에 의한 시스템 튜닝이 용이하여 시스템 설계에 있어서 각광받고 있다.
본 명세서에서 '클러스터 시스템'은 복수 개의 컴퓨터들이 서로 네트워킹이 가능하게 연결되어 있고, 외부에서 보았을 때 하나의 시스템으로 보이는 시스템을 의미한다. 클러스터 시스템을 구성하는 병렬 연결된 컴퓨터들은 '노드'로 칭하기로 한다. 각각의 노드들은 근거리 통신망(LAN) 또는 원거리 통신망(WAN)을 이용하여 네트워킹 가능하도록 연결되어 있는 것이 일반적이다.
본 출원인은 클러스터 시스템을 구성하는 각 노드의 자원을 자동으로 이용하는 것이 가능한 부하 분산 서버가 제공되는 부하 분산 서버를 대한민국 특허출원 2003-0041985호를 통해 출원한 바 있다. 상기 출원은 각 노드의 중앙 처리 유니트(CPU)의 실제 부하량을 체크하여 노드에 분배되는 작업 할당량을 조절하도록 가중치를 부여하고, 계산된 가중치에 따라 부하를 분산하도록 구성하여 복수 개의 노드에 부하가 골고루 분산되도록 하는 클러스터 시스템 제어 방법에 관한 것이다.
그러나 각각의 노드를 구성하는 컴퓨터의 작업 처리 능력은 중앙 처리 유니트 뿐 아니라 메모리에 의해서도 크게 좌우되는데 상기 특허출원에서 제안된 기술은 이와 같은 메모리의 작업 처리 능력이 고려되지 아니하였고, 특히 각각의 노드를 구성하는 컴퓨터의 하드웨어 자원이 서로 다를 수 있음에도 이러한 노드 간 하 드웨어 자원의 차이를 부하 분산을 위한 계산 단계에서 고려하지 못하여 효율적인 부하 분산이 이루어지지 아니하였다.
특히 대다수의 온라인 게임업체에서는 동시에 접속하는 사용자들에 의한 인증 서버의 다운 또는 서비스 지연 등의 문제점이 발생하고 있음에도, 각 인증 서버를 구성하는 노드 간 부하 할당량이 각 노드의 자원량 또는 하드웨어 자원의 차이를 고려하지 아니하여 어떤 노드를 통해 인증 서비스를 제공받는가에 따라 서비스 요청자의 불편이 가중되기도 하고, 오히려 서비스 요청자 측에서 인증 서비스 제공이 원활한 노드를 찾아내는 노력을 가하는 등의 문제점이 발생하였다.
본 발명은 전술한 바와 같은 종래 기술의 문제점을 해결하여 각각의 노드를 구성하는 컴퓨터의 하드웨어 자원의 차이를 반영하여 각 노드에 분배되는 작업 할당량을 효율적으로 분배함으로써, 어떠한 노드에 접속하여 서비스를 받더라도 동일한 서비스를 제공받을 수 있도록 하여 클러스터 시스템의 효율을 극대화할 수 있는 클러스터 시스템을 제공할 수 있는 부하 분산 서버를 제공하는데 그 목적이 있다.
전술한 바와 같은 본 발명의 목적을 달성하기 위한 제1 자원과 제2 자원을 포함하며 외부 단말기로부터의 요청에 대응하는 소정의 작업 처리할 수 있는 복수 개의 노드와, 외부 단말기로부터 통신 네트워크를 통해 전송받는 요청에 대응하는 작업을 상기 각 노드로 분배하는 부하 분산 서버를 포함하는 클러스터 시스템을 제어하는 방법은, (1) 각각의 노드의 제1 자원 사용량 정보와 제2 자원 사용량 정보 를 획득하는 단계와, (2) 외부 단말기로부터의 요청을 획득하는 외부 단말기 요청 획득 단계와, (3) 상기 노드의 상기 제1 자원 사용량 정보와 상기 제2 자원 사용량 정보를 이용하여 상기 노드와 상기 외부 단말기와의 연결을 유도하는 부하 분산 단계를 포함하고, 상기 부하 분산 단계는, (3-a) 상기 접속한 외부 단말기 당 노드 제1 자원 사용량을 계산하는 제1 계산 단계와, (3-b) 상기 접속한 외부 단말기 당 노드 제2 자원 사용량을 계산하는 제2 계산 단계와, (3-c) 상기 노드의 제1 자원 중 사용되지 아니하는 제1 자원 아이들(Idle)량을 상기 제1 계산 단계의 결과 값으로 나누어 제1 자원 잔여량에 따른 접속 허용 가능자 수를 계산하는 제3 계산 단계와, (3-d) 상기 노드의 제2 자원 중 사용되지 아니하는 제2 자원 아이들(Idle)량을 상기 제2 계산 단계의 결과 값으로 나누어 제2 자원 잔여량에 따른 접속 허용 가능자 수를 계산하는 제4 계산 단계와, (3-e) 상기 제 3 계산 단계와 상기 제4 계산 단계에서 구한 자원 잔여량에 따른 접속 허용 가능자 수를 비교하여 더 적은 접속 허용 가능자 수를 상기 노드의 접속 허용 가능자 수로 산정하는 제5 계산 단계를 포함하도록 구성된다.
이와 같은 구성에 의하면, 각 노드를 구성하는 컴퓨터의 하드웨어의 제1 자원과 제2 자원의 사용량과 아이들(Idle)량을 체크하도록 하여 컴퓨터 하드웨어의 차이를 반영할 수 있도록 하고, 각 노드의 작업 처리 가능량을 판별하기 위해 복수 개의 파라미터를 사용하여 단일의 자원량을 체크하여 작업 처리 가능량을 판별하던 종래 기술에 비해 더욱 정확하게 노드의 작업 처리 가능량을 판별하는 것이 가능한 클러스터 시스템을 제공할 수 있게 된다.
나아가 각 노드에 접속한 외부 단말기 당 상기 자원들의 사용량을 이용하여 당해 노드에 장차 접속 가능한 외부 단말기 숫자를 계산하되 이를 단일 자원을 기준으로 하지 아니하고, 복수 개의 자원량에 대해 계산하도록 하여 실질적으로 노드에서 처리 가능한 외부 단말기 서비스 요청을 더욱 정확하게 계산할 수 있게 된다.
바람직하게는, 상기 제1 자원은 상기 노드의 중앙 처리 장치(CPU; Central Processing Unit)이며, 상기 제2 자원은 기억 장치(Memory)가 되도록 구성된다.
이와 같은 구성에 의하면 컴퓨터의 작업 처리 능력에 가장 큰 영향을 미치는 중앙 처리 장치 자원과 기억 장치 자원을 작업 처리 가능량 판별의 기준으로 삼게 되어 각 노드의 작업 처리 가능량을 매우 정확하게 파악할 수 있게 된다.
바람직하게는, 상기 클러스터 시스템은 리눅스 기반으로 구동되며 상기 각각의 노드의 제1 자원 사용량 정보와 제2 자원 사용량 정보를 획득하는 단계는 크론(Cron) 프로그램을 사용하여 소정의 시간 간격을 두고 주기적으로 수행되도록 구성된다.
이와 같이, 클러스터 시스템을 리눅스 기반으로 구동하도록 하면 시스템 설계자 등이 그 소스를 각 시스템에 맞도록 튜닝할 수 있게 되고, 나아가 리눅스 기반 시스템에서 주기적으로 수행되어야 하는 작업을 크론 프로그램을 이용하여 수행되도록 하는 것이 가능하게 되며, 따라서 주기적으로 본 발명의 단계인 자원량 체크 단계가 수행되도록 하는 것이 가능하게 되며, 클러스터 시스템의 각 노드의 상태를 실시간에 가깝게 부하 분산을 위한 데이터로 사용할 수 있게 된다.
이하에서는 첨부 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 더욱 상세히 설명한다.
도 1에는 본 발명에 의한 클러스터 시스템 제어 방법이 수행되는 클러스터 시스템의 예시도가 도시되어 있다.
도 1에 도시된 바와 같이 본 발명에 의한 클러스터 시스템 제어 방법이 수행되는 시스템은 클러스터 시스템을 구성하는 각 노드(20a, 20b, 20c)와, 상기 노드와 LAN, WAN 등 통신 네트워크를 통해 연결되는 부하 분배기(Load Balancer; 10)로 구성된다. 상기 부하 분배기(10)는 상기 각 노드(20a, 20b, 20c)에서 외부 접속 단말기의 인증 요청을 처리하기 위하여 사용되고 있는 자원량을 체크하기 위한 자원 체크 데몬(120)이 탑재되어 있고, Linux 기반에서 클러스터 시스템을 제어하기 위한 리눅스 가상 서버(Linux Virtual Server; 110)가 탑재되어 있다. 상기 리눅스 가상 서버(110)에서는 종래 웹 서버 데몬인 httpd를 더 이상 관리하지 아니하며, 대신 상기 각 노드(20a, 20b, 20c)를 관리할 수 있도록 Perl 모듈이 수정되는 것이 바람직하다. 가상 리눅스 서버 시스템에서 노드의 실시간 네트워크 접속 상태를 파악하기 위하여 이를 담당하는 모듈인 Mon을 설치하여야 하고, Mon을 동작시키기 위한 기반 환경으로는 Perl 모듈이 필요하기 때문이다.
http 데몬과 Perl 모듈의 연결은 mon 디렉토리 안에 mon.cf 란 파일을 이용하여 실행되며, 아래에서와 같이 httpd 데몬을 지정하는 절차를 통하여 실행하도록 되어 있다. 아래의 구문 중에서 httpd 데몬을 지정하는 부분을 게임인증 데몬을 지정하도록 변경하면 httpd 데몬 대신에 게임 인증 데몬을 실시간 체크하도록 변경할 수 있다.
mon.cf 파일의 내용은 다음과 같다.
cfbasedir = /etc/mon
alertdir = /usr/local/mon/alert.d
mondir = /usr/local/mon/mon.d
maxprocs = 20
histlength = 100
randstart = 30s
authtype = getpwnam
#
# group definitions (hostnames or IP addresses)
hostgroup node5 192.168.1.5
hostgroup node6 192.168.1.6
hostgroup node7 192.168.1.7
# Monitoring server 1
watch node5
service http --> 이부분에서 httpd데몬을 지정한다.
interval 5s
monitor http.monitor --> monitoring을 지정한다.
period wd Sun-Sat
alert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.5 -W 1 -F dr -X down
upalert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.5 -W 1 -F dr
#
#Monitoring Server 2
watch node6
service http
interval 3s
monitor http.monitor
period wd Sun-Sat
alert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.6 -W 1 -F dr -X down
upalert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.6 -W 1 -F dr
#
#Monitoring Server 3
watch node7
service http
interval 3s
monitor http.monitor
period wd Sun-Sat
alert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.7 -W 1 -F dr -X down
upalert lvs.alert -P tcp -V 210.125.177.228:80 -R 192.168.1.7 -W 1 -F dr
게임 유저 등은 외부의 단말기(30a, 30b)를 이용하여 게임 서비스를 제공받기 위한 인증 서비스를 본 발명에 의한 클러스터 시스템에 요청하게 되는데, 이때 상기 클러스터 시스템은 실질적으로는 복수 개의 노드(20a, 20b, 20c)로 구성되지만, 외부에서 바라보는 양상은 단일의 가상 서버가 된다. 이를 위해서 외부 단말기의 인증 서비스를 위한 접속 요청은 상기 부하 분배기(10)의 상기 리눅스 가상 서버(110)에서 수신하여, 본 발명에 의한 클러스터 시스템 제어 방법에 의해 상기 각 노드(20a, 20b, 20c) 중 부하가 적은 노드로 분배되도록 구성된다.
이를 위하여 IP 터널링을 이용한 리눅스 가상 서버를 구축하는 것이 바람직하다. 이때 사용자는 가상 IP 주소인 부하 분산 서버의 외부 IP 주소로 접속하게 되고, 부하 분배기(10)는 사용자가 원하는 패킷의 목적지 주소와 포트 번호를 검사하여 가상 서버 규칙 테이블에 따른 서비스와 일치하면 스케줄링 알고리즘에 따라 실제 서비스를 제공할 노드를 선택하게 된다. 동시에 접속이 이루어진 것을 기록하는 해쉬 테이블에 새로운 접속을 추가하고 부하 분배기에서 IP 데이터 프로그램 안에 패킷을 감싸 넣고 노드로 전송한다. 감싸진 패킷을 전송받은 노드는 패킷을 다시 풀고 외부 접속 단말기 사용자가 요청한 서비스를 처리한 다음 최종적으로 각 노드의 라우팅 테이블에 따라 사용자에게 직접 결과를 돌려준다. 이때 접속이 해제되거나 시간을 초과하면 해쉬 테이블에서는 연결 기록을 제거한다.
상기 자원 체크 데몬(120)에서는 상기 각 노드 (20a, 20b, 20c)의 하드웨어 자원을 체크하는데, 특히 중앙 처리 유니트(CPU)와 메모리(RAM) 자원을 체크하는 것이 바람직하다. 상기 중앙 처리 유니트와 메모리 자원은 각 노드를 구성하는 컴퓨터의 처리 속도와 성능을 결정짓는 가장 중요한 자원이기 때문에 각 노드에서 처리 가능한 프로세스의 양을 가늠하기 위해서는 상기 두 가지 자원을 체크하고, 이들의 가용 용량을 체크하여 스케줄링에 반영하는 것이 가장 바람직하기 때문이다.
한편, 자원 체크는 상기 각 노드의 자원 사용량이 실시간으로 변하기 때문에 이를 반영하기 위하여 주기적으로 체크되는 것이 바람직한데, 이를 위해서는 rsh(remote shell) 내부 명령을 사용하여 자원은 체크하고, 이 명령어가 주기적으로 수행되도록 Linux의 Cron 프로그램을 이용하도록 구성하는 것이 바람직하며, 이를 위한 구성은 본 출원인이 대한민국 특허출원 2003-0041985호에서 개시한 바를 참고하여 이해될 수 있다.
위 특허출원에서 원격 컴퓨터의 CPU 사용량을 체크할 때에 remote shell 명령어를 사용하는데, 메모리 자원의 사용량을 사용할 때에는 아래와 같은 명령어를 사용한다.
rsh real_server_name ps aux
예) rsh hpc02 ps aux
이러한 명령어를 사용하면 도 3에 도시된 바와 같이 각 프로세서가 사용하는 CPU 사용량과 메모리 사용량을 알 수 있고, 이 메모리 사용량을 합산하면 전체 사용하고 있는 메모리 사용량을 예측할 수 있다
도 2에는 본 발명에 의한 클러스터 시스템 제어 방법의 실시예에 따른 절차 흐름도가 도시되어 있다.
도 2에 도시된 바와 같이 부하 분배기에는 각 노드의 제1, 제2 자원량을 파악하여 저장하는 단계(S110)를 통해 각각의 하드웨어 자원이 다를 수 있는 각 노드의 자원량이 미리 저장되는 것이 바람직하다. 한편, 부하 분배기에서는 게임 유저 등이 외부 단말기를 통해 인증 서비스를 제공하여 줄 것을 요청받아 인증 서비스 요청을 획득하는 단계(S120)를 수행하면, 각각의 노드에 접속되어 있는 외부 단말기의 개수를 파악하는 단계(S130)를 수행하게 되는데 이는 각 노드에서 인증 모듈을 processing 하는 인증 모듈 프로세서의 개수를 확인하는 것을 통해 가능하다. 이는 외부 접속 단말기의 인증 서비스 요청에 대한 서비스 제공을 위해 사용되는 자원 사용량이 일정하지 아니하기 때문에 접속하는 외부 단말기당의 평균 자원 사용량을 계산하여 이를 클러스터 시스템 제어를 위한 부하 분배에 활용하기 위해서이다.
따라서 외부 단말기 당 제1 자원 사용량을 계산하는 단계(S140)는 노드에서 사용되고 있는 제1 자원량을 외부 단말기수로 나눈 값을 구하는 단계로, 아래와 같이
Figure 112005049471453-PAT00001
또는,
Figure 112005049471453-PAT00002
로 계산될 수 있다.
따라서 외부 단말기 당 제2 자원 사용량을 계산하는 단계(S150)는 노드에서 사용되고 있는 제2 자원량을 외부 단말기수로 나눈 값을 구하는 단계로, 아래와 같이
Figure 112005049471453-PAT00003
또는,
Figure 112005049471453-PAT00004
로 계산될 수 있다.
한편, 각 노드의 IDLE 자원량은,
Figure 112005049471453-PAT00005
과,
Figure 112005049471453-PAT00006
를 통해 구할 수 있다.
한편, 위에서 구한 제1, 제2 자원의 Idle량을 이용하여 접속 허용 가능한 외부 단말기수를 구할 수 있는데, 이를 위하여 제1 자원의 Idle량에 따른 접속 허용 가능한 최대 외부 단말기 수 A1을 계산하는 단계(S160)는 아래 식,
Figure 112005049471453-PAT00007
을 이용하여 수행된다.
또한, 제2 자원의 Idle량에 따른 접속 허용 가능한 최대 외부 단말기 수 A2을 계산하는 단계(S170)는 아래 식,
Figure 112005049471453-PAT00008
을 이용하여 수행된다.
이와 같이 상기 A1과 A2를 계산하는 단계(S160, S170)를 통해 각 노드의 하드웨어 자원과, 현재 접속하여 인증 서비스를 받고 있는 외부 접속 단말기 숫자와, idle 자원을 이용하여 추가적으로 접속이 허용될 수 있는 최대 외부 단말기수를 계산할 수 있는데, 이는 A1과 A2를 비교하여 더 작은 숫자를 각 노드의 추가적으로 접속 허용이 가능한 최대 외부 단말기 수로 산정하는 단계(S180)에서 수행된다. 예를 들어 CPU 자원의 사용량을 통해서 판단되는 추가적으로 접속 허용 가능한 외부 단말기수가 5이며, Memory 자원 특히 RAM 자원의 사용량을 통해서 판단되는 추가적으로 접속 허용 가능한 외부 단말기수가 3인 경우, 이 노드에 추가적으로 접속이 허용되는 최대 외부 단말기는 3이 되는 것이 바람직하며, 이와 같이 구성하는 것이 특정 노드의 하드웨어 자원을 고려한 처리 용량이 포화 상태에 도달하여 서비 스 이용자가 불편을 겪게 되는 것이 방지하는데 유리하다는 것이 이해될 것이다.
한편, 상기 단계(S180)에서 각 노드의 접속 허용 가능한 최대 외부 단말기수가 계산되면, 가장 많은 접속 허용 가능한 최대 외부 단말기수를 가진 노드에 외부 단말기의 인증 서비스 처리를 의뢰하도록 하는 단계(S190)를 수행하여 외부 단말기의 인증 서비스 처리가 가장 원활하게 수행될 수 있도록 외부 단말기와 노드의 접속을 유도하도록 구성된다.
따라서, 본 발명에 의한 클러스터 시스템 제어 방법에 의하면 각 노드에서 현재 처리하고 있는 외부 단말기 인증 서비스 요청에 의한 자원 사용량과, 잔여 자원 사용량을 고려하되 각 노드에 제공되는 복수 개의 하드웨어 자원을 고려하여 장차 각 노드에서 처리 가능한 외부 단말기의 서비스 요청에 대한 처리 용량을 고려하여, 외부 단말기의 서비스 요청을 가장 원활히 수행할 수 있는 노드로 접속을 유도함으로써 특정 노드에는 부하가 지나치게 과하게 몰리고 특정 노드에는 부하가 몰리지 아니하는 현상에 의해 서비스 요청자가 받게 되는 불이익을 최소화하고, 나아가 클러스터 시스템의 각 노드에 분배되는 부하가 하드웨어를 고려하여 최적의 상태로 공평하게 분배되도록 하여 클러스터 시스템의 가용 자원을 최대한 활용할 수 있는 클러스터 시스템 제어 방법을 제공할 수 있게 되는 것이다.
이상 첨부 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 기술적 사상이나 필수적 특징을 변경하지 아니하고 다른 구체적인 형태로 실시될 수 있다는 것이 이해될 것이다. 그러므로 앞서 설명한 실시예들은 예시적이며 특허청구범위를 한정하기 위한 것이 아니다. 본 발명의 권리범위는 특허청구범위에 의해 결정되며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
전술한 바와 같은 본 발명에 의하면 각각의 노드를 구성하는 컴퓨터의 하드웨어 자원의 차이를 반영하되 특히 각 노드를 구성하는 하드웨어 자원이 각각 다를 경우 각 노드에 분배되는 작업 할당량을 이와 같은 하드웨어 차이를 고려하여 효율적으로 분배함으로써, 어떠한 노드에 접속하여 서비스를 받더라도 동일한 서비스를 제공받을 수 있도록 하여 클러스터 시스템의 효율을 극대화할 수 있는 클러스터 시스템을 제공할 수 있다.

Claims (3)

  1. 제1 자원과 제2 자원을 포함하며 외부 단말기로부터의 요청에 대응하는 소정의 작업을 처리하는 것이 가능한 복수 개의 노드와, 외부 단말기로부터 통신 네트워크를 통해 전송받는 요청에 대응하는 작업을 상기 각 노드로 분배하는 부하 분산 서버를 포함하는 클러스터 시스템을 제어하는 방법에 있어서,
    각각의 노드의 제1 자원 사용량 정보와 제2 자원 사용량 정보를 획득하는 단계와,
    외부 단말기로부터의 요청을 획득하는 외부 단말기 요청 획득 단계와,
    상기 노드의 상기 제1 자원 사용량 정보와 상기 제2 자원 사용량 정보를 이용하여 상기 노드와 상기 외부 단말기와의 연결을 유도하는 부하 분산 단계를 포함하고,
    상기 부하 분산 단계는,
    상기 접속한 외부 단말기 당 노드 제1 자원 사용량을 계산하는 제1 계산 단계와,
    상기 접속한 외부 단말기 당 노드 제2 자원 사용량을 계산하는 제2 계산 단계와,
    상기 노드의 제1 자원 중 사용되지 아니하는 제1 자원 아이들(Idle)량을 상기 제1 계산 단계의 결과 값으로 나누어 제1 자원 잔여량에 따른 접속 허용 가능자 수를 계산하는 제3 계산 단계와,
    상기 노드의 제2 자원 중 사용되지 아니하는 제2 자원 아이들(Idle)량을 상기 제2 계산 단계의 결과 값으로 나누어 제2 자원 잔여량에 따른 접속 허용 가능자 수를 계산하는 제4 계산 단계와,
    상기 제 3 계산 단계와 상기 제4 계산 단계에서 구한 자원 잔여량에 따른 접속 허용 가능자 수를 비교하여 더 적은 접속 허용 가능자 수를 상기 노드의 접속 허용 가능자 수로 산정하는 제5 계산 단계를 포함하는,
    클러스터 시스템 제어 방법.
  2. 청구항 1에 있어서, 상기 제1 자원은 상기 노드의 중앙 처리 장치(CPU; Central Processing Unit)이며, 상기 제2 자원은 기억 장치(Memory)인,
    클러스터 시스템 제어 방법.
  3. 청구항 1에 있어서, 상기 클러스터 시스템은 리눅스 기반으로 구동되며 상기 각각의 노드의 제1 자원 사용량 정보와 제2 자원 사용량 정보를 획득하는 단계는 크론(Cron) 프로그램을 사용하여 소정의 시간 간격을 두고 주기적으로 수행되는,
    클러스터 시스템 제어 방법.
KR1020050082081A 2005-09-05 2005-09-05 클러스터 시스템을 제어하는 방법 KR100717216B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050082081A KR100717216B1 (ko) 2005-09-05 2005-09-05 클러스터 시스템을 제어하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050082081A KR100717216B1 (ko) 2005-09-05 2005-09-05 클러스터 시스템을 제어하는 방법

Publications (2)

Publication Number Publication Date
KR20070025667A true KR20070025667A (ko) 2007-03-08
KR100717216B1 KR100717216B1 (ko) 2007-05-11

Family

ID=38099907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050082081A KR100717216B1 (ko) 2005-09-05 2005-09-05 클러스터 시스템을 제어하는 방법

Country Status (1)

Country Link
KR (1) KR100717216B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
CN105205174A (zh) * 2015-10-14 2015-12-30 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
KR101710138B1 (ko) * 2015-09-21 2017-02-24 한국생명공학연구원 데이터 분산 처리 시스템 및 데이터 분산 처리 방법
CN113742059A (zh) * 2021-07-15 2021-12-03 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100566809B1 (ko) * 2003-06-26 2006-04-05 이광훈 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
KR101867286B1 (ko) * 2012-02-27 2018-06-15 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
KR101710138B1 (ko) * 2015-09-21 2017-02-24 한국생명공학연구원 데이터 분산 처리 시스템 및 데이터 분산 처리 방법
CN105205174A (zh) * 2015-10-14 2015-12-30 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
KR20170043998A (ko) * 2015-10-14 2017-04-24 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 분산형 시스템용 파일 처리 방법 및 장치
CN105205174B (zh) * 2015-10-14 2019-10-11 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
CN113742059A (zh) * 2021-07-15 2021-12-03 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质
CN113742059B (zh) * 2021-07-15 2024-03-29 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
KR100717216B1 (ko) 2007-05-11

Similar Documents

Publication Publication Date Title
Rodriguez et al. Container‐based cluster orchestration systems: A taxonomy and future directions
CN105491138B (zh) 一种基于负载率分级触发的分布式负载调度方法
Abad et al. Package-aware scheduling of faas functions
JP4377369B2 (ja) リソース割当調停装置およびリソース割当調停方法
US9417903B2 (en) Storage management for a cluster of integrated computing systems comprising integrated resource infrastructure using storage resource agents and synchronized inter-system storage priority map
US7299468B2 (en) Management of virtual machines to utilize shared resources
US10078533B2 (en) Coordinated admission control for network-accessible block storage
US20020059427A1 (en) Apparatus and method for dynamically allocating computer resources based on service contract with user
US20120159523A1 (en) Multi-tenant, high-density container service for hosting stateful and stateless middleware components
JP2009265778A (ja) 仮想化サーバ
Rupprecht et al. SquirrelJoin: Network-aware distributed join processing with lazy partitioning
US10250673B1 (en) Storage workload management using redirected messages
US11093288B2 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
CN107977271B (zh) 一种数据中心综合管理系统负载均衡方法
CN111813330A (zh) 用于分派输入-输出的系统及方法
CN111930523A (zh) 一种用于服务集群的负载均衡方法和系统
Krueger et al. An adaptive load balancing algorithm for a multicomputer
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
JP2005310120A (ja) 計算機システム及びタスク割当方法
KR100717216B1 (ko) 클러스터 시스템을 제어하는 방법
US20170141958A1 (en) Dedicated endpoints for network-accessible services
CN113014611B (zh) 一种负载均衡方法及相关设备
Ludwig et al. Optimizing multi‐tier application performance with interference and affinity‐aware placement algorithms
Galloway et al. Performance metrics of virtual machine live migration
CN108718327B (zh) 一种许可证资源调度方法及系统

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140507

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160504

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180504

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190507

Year of fee payment: 13