KR20050001705A - 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체 - Google Patents

클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체 Download PDF

Info

Publication number
KR20050001705A
KR20050001705A KR1020030041985A KR20030041985A KR20050001705A KR 20050001705 A KR20050001705 A KR 20050001705A KR 1020030041985 A KR1020030041985 A KR 1020030041985A KR 20030041985 A KR20030041985 A KR 20030041985A KR 20050001705 A KR20050001705 A KR 20050001705A
Authority
KR
South Korea
Prior art keywords
cluster
node
nodes
resource usage
recorded
Prior art date
Application number
KR1020030041985A
Other languages
English (en)
Other versions
KR100566809B1 (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 KR1020030041985A priority Critical patent/KR100566809B1/ko
Publication of KR20050001705A publication Critical patent/KR20050001705A/ko
Application granted granted Critical
Publication of KR100566809B1 publication Critical patent/KR100566809B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 클러스터 시스템 제어 방법 내지 그러한 제어 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능 기록 매체에 대한 것이다. 본 발명에 의한 클러스터 시스템 제어 방법은, 복수 개의 노드와 부하 분산 서버를 사용하여 구성한 클러스터 시스템의 제어 방법에 관한 것으로서, (1) 상기 복수 개의 노드의 IP 주소와 호스트 네임을 읽어와 기록하는 단계와, (2) 상기 IP 주소와 호스트 네임이 부여된 노드 각각의 중앙 처리 유니트의 사용량을 읽어와 기록하는 단계와, (3) 상기 기록된 중앙 처리 유니트의 사용량을 참조하여 상기 부하 분산 서버의 부하량을 변경시키는 단계와, (4) 상기 단계를 소정의 시간 간격으로 반복하는 단계를 포함한다.

Description

클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는 프로그램이 기록된 컴퓨터 판독 가능 기록 매체{Method for Controlling Cluster System and Computer-Readable Recording Medium Where Program Executing the Method Is Recorded}
본 발명은 클러스터 시스템의 제어 방법 및 그 제어 방법이 수행되는 프로그램이 기록된 기록 매체에 관한 것으로서, 특히 복수 개의 노드를 가지고 클러스터 시스템을 구성하는 병렬 시스템의 노드 분배 제어 방법, 그리고 그러한 제어 방법을 수행하기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록 매체에 관한 것이다.
복잡하고 방대한 양의 연산을 수행하는 연산 장치로서 종래에는 단일의 고성능 컴퓨터 소위 수퍼 컴퓨터가 있었고, 현재 많은 연구소 내지 기관 등에서 사용되고 있다. 그러나 이러한 수퍼 컴퓨터는 엄청난 고가이며, 그 성능도 한계에 도달하고 있는 실정이다.
이러한 단일의 고성능 수퍼 컴퓨터를 대체하는 것으로서 다수의 중앙 처리 유니트(CPU)가 하나의 문제를 협동적으로 계산하는 병렬 컴퓨팅 기술이 등장하였다. 그러나 이러한 병렬 컴퓨팅 기술이 적용된 컴퓨터 역시 고가이긴 마찬가지였다.
최근에 출시되고 있는 마이크로 프로세서들은 상당히 고성능으로 출시되고 있으며, 고속의 네트워킹 기술 역시도 크게 발전했으므로, 단일 컴퓨터들을 네트워크로 연결함으로써 새로운 개념의 병렬 컴퓨터를 구성하는 것이 가능해졌다. 특히, 리눅스 등과 같은 소스 코드가 공개된 운영 체제를 사용하게 되면 사용자 내지 네트워크 관리 전문가에 의하여 자유롭게 성능을 튜닝할 수 있어서 시스템 설계에 유리하다.
본 명세서에서 사용하는 클러스터 시스템은, 복수 개의 컴퓨터들이 서로 네트워킹이 가능하게 연결되어 있고, 외부에서 보았을 때 하나의 시스템 이미지로 보여지는 시스템을 의미한다. 클러스터를 구성하는 컴퓨터들은 "클러스터 노드" 또는 단순히 "노드"로 칭하기로 한다. 이처럼 클러스터 시스템을 구성하는 노드들은 저장 장치나 메모리 등을 공유할 수 있다. 클러스터 노드들은 근거리 통신망(LAN) 또는 원거리 통신망(WAN)을 이용하여 네트워킹 가능하도록 연결되어 있는 것이 일반적이다.
전술한 바와 같이 복수 개의 클러스터 노드를 연결하여 클러스터 시스템을구성하고, 이것을 특정 용도로만 사용하는 것은 효율적이지 않다. 대표적으로 웹 서비스와 고속 연산 서비스를 제공할 수 있도록 클러스터 노드를 운영할 수 있는데, 이 때에는 웹 서비스와 고속 연산 서비스가 서로 충돌하지 않도록 각각의 클러스터 노드의 자원 사용량을 적절하게 분배해 주어야 한다.
종래의 클러스터 시스템에서는, 관리자가 부하 분산 서버(Load Balancer)를 조작하여 각 클러스터 노드의 부하를 수동으로 지정하는 방식을 사용하였었다. 그러나 이러한 방식에서는, 부하 분산 서버가 각 클러스터 노드의 중앙 처리 유니트(CPU)의 실제 사용량 즉 실제 부하량을 실시간으로 체크하지 못하여, 외부로부터 웹 서비스 또는 고속 연산 수행 서비스 등의 요청이 들어왔을 때 클러스터 노드간에 적절하게 작업을 분배하지 못하는 문제점이 있었다.
본 발명은 그러한 종래 기술의 문제점을 해결하고, 부하 분산 서버가 소정의 시간 간격 단위로 각 클러스터 노드의 자원 사용량을 알 수 있고, 외부로부터 작업 요청이 들어왔을 때에 상기 방법에 의해 파악된 클러스터 노드의 실제 자원 사용량 정보에 기초하여 어느 클러스터 노드에 작업을 할당할지를 결정하고 시스템을 제어할 수 있는 제어 방법, 및 그러한 제어 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독 가능 기록 매체를 제공하는 것이다.
도 1은 본 발명에 의한 클러스터 시스템의 구성도를 도시한 도면.
도 2는 본 발명에 의한 클러스터 시스템의 제어 방법의 흐름도를 도시한 도면.
본 발명에 의한 클러스터 시스템 제어 방법은, 복수 개의 노드와 부하 분산 서버를 사용하여 구성한 클러스터 시스템의 제어 방법에 관한 것으로서, (1) 상기복수 개의 노드의 IP 주소와 호스트 네임을 읽어와 기록하는 단계와, (2) 상기 IP 주소와 호스트 네임이 부여된 노드 각각의 자원 사용량을 읽어와 기록하는 단계와, (3) 상기 기록된 자원 사용량을 참조하여 상기 부하 분산 서버의 부하량을 변경시키는 단계와, (4) 상기 단계를 소정의 시간 간격으로 반복하는 단계를 포함한다.
이러한 방법에 의하면, 각 클러스터 노드의 자원 사용량을 읽어 들이고, 이러한 과정을 소정의 시간 간격으로 반복함으로써, 부하 분산 서버가 실시간에 가깝게 각각의 클러스터 노드의 사용량을 모니터링하고 이를 토대로 외부로부터의 작업 요청에 대응해 클러스터 노드를 스케쥴링할 수 있다. 그러므로 실제 클러스터 노드의 자원 사용량에 맞추어 적절하게 스케쥴링하는 것이 가능하게 되고 이로 인해 클러스터 시스템의 효율성과 안정성을 제고할 수 있게 된다.
본 발명에 의한 클러스터 노드의 제어 방법은, 새로운 서비스 요청을 접수했을 때에 변경된 부하 분산 서버의 부하량을 참조하여 소정의 룰에 따라 낮은 부하량의 노드로 서비스 처리 요청을 보내는 단계를 더 포함할 수도 있다.
그리고 본 발명에 의한 클러스터 시스템은, 리눅스 기반인 것이 바람직한데, 리눅스의 소스 코드가 공개되어 있으므로 시스템 관리자 등이 자유롭게 시스템을 튜닝할 수 있으므로 실제 시스템의 환경에 맞도록 구성할 수 있게 된다.
각 노드의 중앙 처리 유니트(CPU)의 사용량을 상기 자원 사용량으로 사용할 수 있다.
리눅스 기반으로 클러스터 시스템을 구성했을 때에, 소정의 시간 간격으로 반복하는 단계는, 크론(cron) 프로그램을 사용하여 수행되는 것이 바람직하다. 이크론 프로그램을 사용하게 되면 크론탭(crontab)에 프로그램을 등록시켜서 일정 시간마다 상기 클러스터 노드의 자원 사용량 모니터링 프로그램을 실행시킬 수 있는데, 특히, 관리자가 크론탭에서 자원 사용량을 체크하는 시간을 조절할 수 있다. 즉 컴파일 후 실행파일로 구성하면 소스 코드를 알지 않는 한 추후 수정 내지 조정이 불가능한 다른 프로그램에 비해 관리의 용이성이 제고된다.
또한, 상기 클러스터 노드들은 웹 서비스와 고속 연산 서비스를 처리하는 작업을 수행하는 것일 수 있다.
본 발명은, 전술한 바와 같은 제어 방법이 수행되는 프로그램이 기록된 컴퓨터 판독 가능 기록 매체도 제안하는데, 이러한 기록 매체는, 웹 서비스와 연산 서비스를 제공하는 복수 개의 노드와 부하 분산 서버를 사용하여 구성한 클러스터 시스템의 제어를 수행하는 제어 프로그램이 기록된 컴퓨터 판독 가능 기록 매체에 관한 것으로서, 상기 프로그램은 (1) 상기 복수 개의 노드의 IP 주소와 호스트 네임을 읽어와 기록하는 단계와, (2) 상기 IP 주소와 호스트 네임이 부여된 노드 각각의 자원 사용량을 읽어와 기록하는 단계와, (3) 상기 기록된 중앙 처리 유니트의 사용량을 참조하여 상기 부하 분산 서버의 부하량을 변경시키는 단계와, (4) 상기 단계를 소정의 시간 간격으로 반복하는 단계를 수행한다.
이하에서는, 첨부 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명하기로 한다.
도 1에는 본 발명에 의한 제어 방법이 실행되는 클러스터 시스템(1)의 블록도가 도시되어 있다.
도 1에 도시된 바와 같이, 본 발명에 의한 클러스터 시스템(1)은 부하 분산 서버(10)와, 복수 개의 클러스터 노드(30-1, 30-2,..., 30-n)와, 부하 분산 서버(10)와 복수 개의 클러스터 노드(30-1, 30-2,..., 30-n)를 네트워킹 가능하게 연결하는 LAN/WAN망을 포함한다.
클러스터 시스템(1)은 외부 사용자측 단말기(100-1, 100-2, 200-1, 200-2, 200-3)와 인터넷 또는 인트라넷에 의해 연결되어 있다.
클러스터 시스템(1)을 외부에서 보면 하나의 시스템 즉 가상 서버(2)로 보인다. 클러스터 노드(30-1, 30-2,..., 30-n)들은 클러스터 시스템(1) 내에서 실제 작업을 수행하는 실제 서버의 기능을 수행하는 것이다.
본 발명에 의한 가상 서버(2)는 IP 터널링을 이용해서 동작하는데, IP 터널링은 부하 분산 서버(10)에서 사용자의 요청을 IP 터널을 이용해서 클러스터 노드(30-1, 30-2,..., 30-n)로 보낸다. 즉 사용자(100-1, 100-2, 200-1, 200-2, 200-3)가 서비스를 요청하면, 먼저 부하 분산 서버(10)의 외부 IP 주소 즉 가상 IP 주소로 접속하게 되고, 부하 분산 서버(10)가 사용자가 원하는 패킷의 목적지 주소와 포트 번호를 검사한다. 그렇게 검사한 내용이 소정의 가상 서버 규칙 테이블에 기재된 서비스와 일치하면 스케쥴링 알고리즘에 따라 각각의 클러스터 노드(30-1, 30-2,..., 30-n)를 선택한다. 이와 동시에 접속이 이루어진 것을 기록하는 해쉬 테이블에 새로운 접속을 추가하는데, 접속을 추가한 다음에 부하 분산 서버(1)에서 IP 데이터그램안에 패킷을 감싸 넣고 클러스터 노드(30-1, 30-2,..., 30-n)로 전송한다. 감싸진 패킷을 전송받은 클러스터 노드(30-1, 30-2,..., 30-n)는 패킷을 다시 풀고 사용자가 요청한 서비스를 처리한 다음 최종적으로 클러스터 노드(30-1, 30-2,..., 30-n)의 라우팅 테이블에 따라 사용자에게 직접 결과를 돌려준다.
그러나 본 발명의 권리범위가 IP 터널링 방식을 이용하는 가상 서버로 한정되는 것은 아니라는 점이 이해되어야 한다. 또한, 본 발명을 설명함에 있어서 리눅스 기반의 시스템을 설명하지만 본 발명의 권리범위가 그것에 한정되는 것도 아니라는 점이 명백히 이해되어야 한다.
부하 분산 서버(10)가 외부의 사용자(100-1, 100-2, 200-1, 200-2, 200-3)로부터 서비스 요청을 받으면 스케쥴링 프로세스를 거쳐 클러스터 노드(30-1, 30-2,..., 30-n)로 패킷을 보낸다. 본 발명에서는 가중치 기반 최소 접속 스케쥴링(Weighted Least-Connection Scheduling) 방식을 이용하는데, 이 방식은 각각의 클러스터 노드(30-1, 30-2,..., 30-n)에 가중치를 부여해서 가중치가 높은 노드에서 더 많은 요청을 받을 수 있도록 하는 방식이다.
본 발명에 의하면, 각각의 클러스터 노드(30-1, 30-2,..., 30-n)의 자원 사용량을 소정의 시간 간격으로 주기적으로 체크해서 부하 분산 서버(10)에서 사용할 가중치를 자동적으로 부여하는 방법이 제안된다.
도 2에는 이러한 방법의 흐름도가 도시되어 있다.
본 발명에 의한 클러스터 시스템의 제어 방법을 수행하기 위해서는 먼저 각 클러스터 노드(30-1, 30-2,..., 30-n)의 IP 주소와 호스트 네임(hostname)을 알아야 한다. 각 노드의 IP 주소를 알기 위해서는 리눅스의 디렉토리인 "etc/hosts" 파일에서 정보를 얻어오고 이를 기록한다.(단계(S21)) 일반적으로 리눅스 시스템의 "etc/hosts" 파일에는 각 노드를 구축하는 과정에서 각 노드의 IP와 호스트 네임이 예를 들어 아래와 같이 등록되어 있다.
127.0.0.1 localhost.localdomain localhost
210.125.177.xxx node01.cluster.co.kr node01
210.125.177.xxx node02.cluster.co.kr node02
210.125.177.xxx node03.cluster.co.kr node03
210.125.177.xxx node04.cluster.co.kr node04
210.125.177.xxx node05.cluster.co.kr node05
210.125.177.xxx node06.cluster.co.kr node06
상기 예에서, 127.0.0.1는 로컬 호스트 네트워크 번호로 지정되는 것이고, 이 주소는 로컬 시스템이 네트워크가 없는 환경하에서 네트워크 소프트웨어를 운영할 수 있게 해준다.
각각의 인터넷 주소는 그와 상응되는 호스트네임을 가지고 있고 이는 사용자(100-1, 100-2, 200-1, 200-2, 200-3)에게 호스트네임으로 시스템을 인식할 수 있게 해준다. 호스트네임은 하나 이상의 별명(aliases)을 가질 수 있으며, 이 별명은 네트워크상에서 당해 호스트를 인식할 수 있는 이름이다. 본 실시예에서는 node**로 별명을 만들었다.
이처럼 리눅스 시스템의 "etc/hosts" 파일로부터 각 클러스터 노드의 IP 주소와 호스트네임을 얻어오는데, C++ 언어로 만든 프로그램의 수행 코드는 아래와 같을 수 있다.
ifstream real_server_name;
real_server_name.open("etc/hosts");
다음으로, 단계(S22)로 진행하여 노드 각각의 중앙 처리 유니트(CPU)의 사용량을 읽어온다.
리눅스를 채용한 본 발명에 있어서 각 클러스터 노드(30-1, 30-2,..., 30-n)의 중앙 처리 유니트 사용량을 얻어오기 위해서 리모트 쉘(remote shell; rsh) 명령을 사용한다. 구체적인 명령어의 일례는 다음과 같다.
rsh real_server_name ps aux │awk \'{print $3} \' > real_server_name_cpu
상기 명령어에서 rsh는 명령어의 이름이고, real_server_name은 중앙 처리 유니트의 사용량을 얻어오기 위한 서버의 호스트네임이다. 그리고 ps aux │awk \'{print $3} \'는 중앙 처리 유니트의 사용량을 다른 컴퓨터로부터 받기 위한 rsh 명령어의 옵션을 의미한다. > real_server_name_cpu는 얻어온 각 클러스터 노드의 중앙 처리 유니트의 사용량을 real_server_name_cpu란 파일에 기록하라는 명령을 의미한다.
다음으로 단계(S23)로 진행하여 중앙 처리 유니트의 사용량을 참조하여 부하 분산 서버의 부하량을 변경한다.
종래 기술에 있어서, 부하 분산 서버(10)에서 각 클러스터 노드에 가중치를 부여할 때에는 다음의 예와 같은 명령어를 명령어 입력창에 입력해서 수동으로 부여한다.
$IPVSADM -a -t 210.125.177.155 -r 192.168.1.5 -g -w 16
$IPVSADM -a -t 210.125.177.155 -r 192.168.1.6 -g -w 7
$IPVSADM -a -t 210.125.177.155 -r 192.168.1.7 -g -w 1
즉 리눅스 시스템에서 각 노드에 가중치를 수동으로 부여하는 명령어는,
$IPVSADM -a -t [부하 분산 서버의 IP 주소] -r [노드의 IP 주소] -g -w [가중치]이다.
본 발명에 있어서는 최종의 가중치 부분을 전술한 단계(S22)에서 읽어온 각 클러스터 노드의 중앙 처리 유니트 사용량을 참조해서 부여한다. 예를 들어, 고속 연산을 수행하고 있는 클러스터 노드(30-2)의 중앙 처리 유니트의 사용량이 99 %라면, 이 99 %의 가중치를 당해 노드에 적용해서 외부로부터 서비스 요청이 있을 때 그 노드로는 작업 요청을 보내지 않도록 한다.
그러나 클러스터 시스템(1)은 시간에 따라 각 클러스터 노드(30-1, 30-2,..., 30-n)의 중앙 처리 유니트의 사용량은 변경될 수 있기 때문에 본 발명에 의한 제어 방법은 소정의 시간 간격으로 전술한 단계를 반복한다.
상기 단계를 종료하면 단계(S24)로 진행해서 시간을 읽은 후 단계(S25)로 진행한다. 단계(S25)에서 소정의 시간이 경과한 것으로 판단되면 단계(S22)로 복귀해서 다시 각각의 노드의 중앙 처리 유니트의 사용량을 읽어오고 전술한 단계를 반복한다.
단계(S25)에서 소정의 시간이 경과하지 않은 것으로 판단되면 단계(S24)로 복귀해서 미리 정해 놓은 시간 간격이 될 때까지 대기한다.
이처럼 소정의 시간 간격으로 반복을 실행하도록 하는 것은 리눅스의 크론(cron)을 사용한다. 크론을 이용한 자동 작업 스케쥴링은 작업 내용을 위한 간단한 쉘 스크립트(shell script)를 만드는 것과, 실행 스크립트를 크론탭(crontab)을 이용해서 크론에서 자동실행 할 수 있도록 정의하는 것으로 나뉘어진다.
크론을 사용하기 위해서는 etc/crontab이란 명령을 이용한다. 다음은 /etc/crontab의 내용이다.
SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin
MAILTO = root
HOME = /
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
* 표는 all을 뜻하는 부분으로 매번 실행한다는 의미이다.
01 * * * * 부분의 내용은 매월, 매주, 매일, 매시 01 분마다 실행하라는 의미이다. 즉 한시간에 한 번씩 실행하라는 의미이다.
run-parts /etc/cron.hourly 부분의 내용은 /etc/cron.hourly/ 디렉토리에 있는 스크립트를 실행하라는 의미이다. 즉 스크립트 파일을 /etc/cron.hourly/ 디렉토리에 넣어 두면 한 시간에 한 번씩 스크립트가 실행되게 된다.
마찬가지로 두번째 줄은 매일 4시 2분에 /etc/cron.daily/ 디렉토리에 있는 스크립트 파일을 실행하라는 의미이고, 세번째 줄은 매 일요일 4시 22분마다 스크립트 파일을 실행하라는 의미이다.
크론탭에 본 발명에 의한 방법을 수행하는 프로그램을 등록시키면, 일정시간마다 프로그램을 실행시켜서 주기적으로 각 클러스터 노드(30-1, 30-2,..., 30-n)의 중앙 처리 유니트의 사용량을 체크하여 부하 분산 서버(10)를 제어하게 한다.
이처럼 크론탭을 사용하면 관리자가 능동적으로 프로그램을 제어할 수 있게 된다. 즉 일반적인 프로그램에 의하면 일단 컴파일해서 실행파일로 변환되면 소스코드를 가지고 있지 않는 한 프로그램의 내용을 바꿀 수 없지만 크론탭을 사용하면, 관리자가 단순히 크론탭에서 중앙 처리 유니트의 사용량을 읽어오는 시간 간격을 조정하기만 하면 되므로 매우 간편하게 클러스터 시스템을 관리할 수 있게 된다.
전술한 클러스터 시스템의 제어 방법은 컴퓨터에서 실행 가능한 컴퓨터 프로그램에 의해 수행되는 것이 바람직하며, 그러한 컴퓨터 프로그램은 컴퓨터에서 판독 가능한 기록 매체에 기록되어 저장된다.
이상 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 설명하였지만, 본발명의 권리범위는 첨부한 특허청구의 범위의 기재에 의하여 정하여지며, 전술한 실시예 또는 도면에 한정되는 것으로 해석되어서는 아니된다. 또한, 특허청구의 범위에 기재되어 있는 발명의 당업자에게 자명한 개량, 변경 내지 수정도 본 발명의 권리범위에 포함됨이 명백하게 이해되어야 한다.
본 발명에 의하면, 웹 서비스와 고속 연산 서비스를 제공하는 복수 개의 클러스터 노드들로 구성되는 클러스터 시스템을 제어함에 있어서, 각 클러스터 노드들의 자원 사용량을 실시간 내지 일정한 시간 간격으로 주기적으로 체크할 수 있고, 그렇게 체크된 클러스터 노드들의 자원 사용량을 참조하여 각 노드의 가중치를 부하 분산 서버가 조절함으로써 노드들 간의 자원 사용의 충돌없이 유기적으로 시스템을 제어하는 것이 가능하다.

Claims (7)

  1. 복수 개의 노드와 부하 분산 서버를 사용하여 구성한 클러스터 시스템의 제어 방법에 있어서,
    상기 복수 개의 노드의 IP 주소와 호스트 네임을 읽어와 기록하는 단계와,
    상기 IP 주소와 호스트 네임이 부여된 노드 각각의 자원 사용량을 읽어와 기록하는 단계와,
    상기 기록된 자원 사용량을 참조하여 상기 부하 분산 서버의 부하량을 변경시키는 단계와,
    상기 단계를 소정의 시간 간격으로 반복하는 단계를 포함하는, 클러스터 시스템의 제어 방법.
  2. 제1 항에 있어서, 새로운 서비스 요청을 접수했을 때에 변경된 부하 분산 서버의 부하량을 참조하여 소정의 룰에 따라 낮은 부하량의 노드로 서비스 처리 요청을 보내는 단계를 더 포함하는, 클러스터 시스템의 제어 방법.
  3. 제1 항 또는 제2 항에 있어서, 상기 클러스터 시스템은 리눅스 기반인, 클러스터 시스템의 제어 방법.
  4. 제1 항 또는 제2 항에 있어서, 상기 자원 사용량은 각 노드의 중앙 처리 유니트(CPU)의 사용량인, 클러스터 시스템의 제어 방법.
  5. 제3 항에 있어서, 소정의 시간 간격으로 반복하는 단계는, 크론(cron) 프로그램을 사용하여 수행되는, 클러스터 시스템의 제어 방법.
  6. 제1 항 또는 제2 항에 있어서, 상기 노드들은 웹 서비스와 고속 연산 서비스를 처리하는, 클러스터 시스템의 제어 방법.
  7. 복수 개의 노드와 부하 분산 서버를 사용하여 구성한 클러스터 시스템의 제어를 수행하는 제어 프로그램이 기록된 컴퓨터 판독 가능 기록 매체에 있어서, 상기 프로그램은,
    상기 복수 개의 노드의 IP 주소와 호스트 네임을 읽어와 기록하는 단계와,
    상기 IP 주소와 호스트 네임이 부여된 노드 각각의 자원 사용량을 읽어와 기록하는 단계와,
    상기 기록된 자원 사용량을 참조하여 상기 부하 분산 서버의 부하량을 변경시키는 단계와,
    상기 단계를 소정의 시간 간격으로 반복하는 단계를 수행하는, 컴퓨터 판독 가능 기록 매체.
KR1020030041985A 2003-06-26 2003-06-26 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체 KR100566809B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030041985A KR100566809B1 (ko) 2003-06-26 2003-06-26 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030041985A KR100566809B1 (ko) 2003-06-26 2003-06-26 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR20-2003-0020295U Division KR200327901Y1 (ko) 2003-06-26 2003-06-26 클러스터 노드의 자원 사용량의 자동 체크 기능을포함하는 클러스터 시스템

Publications (2)

Publication Number Publication Date
KR20050001705A true KR20050001705A (ko) 2005-01-07
KR100566809B1 KR100566809B1 (ko) 2006-04-05

Family

ID=37217336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030041985A KR100566809B1 (ko) 2003-06-26 2003-06-26 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체

Country Status (1)

Country Link
KR (1) KR100566809B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100654391B1 (ko) * 2005-04-22 2006-12-06 이광훈 클러스터 시스템 제어 방법 및 상기 제어 방법을 수행하는컴퓨터 판독 가능한 기록 매체를 포함하는 클러스터 시스템
KR100717216B1 (ko) * 2005-09-05 2007-05-11 주식회사 태울엔터테인먼트 클러스터 시스템을 제어하는 방법
KR100917985B1 (ko) * 2002-10-07 2009-09-18 퀄컴 인코포레이티드 글로벌 분산 네트워크에서 인증 세션 상태를 공유하는 방법및 장치
CN113821340A (zh) * 2021-08-27 2021-12-21 济南浪潮数据技术有限公司 分布式系统的动态均衡方法、系统、终端及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917985B1 (ko) * 2002-10-07 2009-09-18 퀄컴 인코포레이티드 글로벌 분산 네트워크에서 인증 세션 상태를 공유하는 방법및 장치
KR100654391B1 (ko) * 2005-04-22 2006-12-06 이광훈 클러스터 시스템 제어 방법 및 상기 제어 방법을 수행하는컴퓨터 판독 가능한 기록 매체를 포함하는 클러스터 시스템
KR100717216B1 (ko) * 2005-09-05 2007-05-11 주식회사 태울엔터테인먼트 클러스터 시스템을 제어하는 방법
CN113821340A (zh) * 2021-08-27 2021-12-21 济南浪潮数据技术有限公司 分布式系统的动态均衡方法、系统、终端及存储介质

Also Published As

Publication number Publication date
KR100566809B1 (ko) 2006-04-05

Similar Documents

Publication Publication Date Title
US11539753B2 (en) Network-accessible service for executing virtual machines using client-provided virtual machine images
US7818454B2 (en) Host migration system
CN111324416A (zh) 容器管理系统中的应用部署
US7146417B1 (en) System for distributing load over multiple servers at an internet site
US7916728B1 (en) Lockless atomic table update
US8699349B2 (en) Multi-factor optimized routing
US20180332109A1 (en) Using network configuration analysis to improve server grouping in migration
US20100318609A1 (en) Bridging enterprise networks into cloud
US10908940B1 (en) Dynamically managed virtual server system
WO2022105048A1 (zh) 一种分布式共享文件系统及其数据处理方法
US20060129667A1 (en) Method of and system for sharing access to cluster of computers
US11489814B1 (en) Customized domain name resolution for virtual private clouds
EP3977707B1 (en) Hardware load balancer gateway on commodity switch hardware
US10944714B1 (en) Multi-factor domain name resolution
CN108200211A (zh) 集群中镜像文件下载的方法、节点和查询服务器
JP3153129B2 (ja) サーバ選択方式
US7627650B2 (en) Short-cut response for distributed services
KR100566809B1 (ko) 클러스터 시스템 제어 방법 및 그 제어 방법이 수행되는프로그램이 기록된 컴퓨터 판독 가능 기록 매체
US11876689B1 (en) Method and system for SLA/QoS adherence-based flex on demand in a multi-API virtual desktop infrastructure (VDI) environment
KR200327901Y1 (ko) 클러스터 노드의 자원 사용량의 자동 체크 기능을포함하는 클러스터 시스템
CN214202379U (zh) 一种分布式共享文件系统
US11363113B1 (en) Dynamic micro-region formation for service provider network independent edge locations
CN115623081A (zh) 数据下载方法、上传方法及分布式存储系统
US11616721B2 (en) In-packet version tagging utilizing a perimeter NAT
Marttila Design and Implementation of the clusterf Load Balancer for Docker Clusters

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee