[go: up one dir, main page]

KR102038527B1 - 분산 클러스터 관리 시스템 및 그 방법 - Google Patents

분산 클러스터 관리 시스템 및 그 방법 Download PDF

Info

Publication number
KR102038527B1
KR102038527B1 KR1020180035943A KR20180035943A KR102038527B1 KR 102038527 B1 KR102038527 B1 KR 102038527B1 KR 1020180035943 A KR1020180035943 A KR 1020180035943A KR 20180035943 A KR20180035943 A KR 20180035943A KR 102038527 B1 KR102038527 B1 KR 102038527B1
Authority
KR
South Korea
Prior art keywords
node
cluster
information
work
work node
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020180035943A
Other languages
English (en)
Other versions
KR20190113366A (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 KR1020180035943A priority Critical patent/KR102038527B1/ko
Priority to PCT/KR2018/003697 priority patent/WO2019189963A1/ko
Publication of KR20190113366A publication Critical patent/KR20190113366A/ko
Application granted granted Critical
Publication of KR102038527B1 publication Critical patent/KR102038527B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산 클러스터 관리 시스템 및 그 방법에 관한 것으로서, 분산 작업 처리에 필요한 메타 정보를 이용하여 클라이언트에서 요청한 작업을 병렬 처리하는 적어도 하나 이상의 작업 노드; 및 상기 작업 노드들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 상기 메타 정보들을 동기화하여 자신과 연결된 작업 노드를 관리하는 적어도 하나 이상의 클러스터 관리 노드를 포함한다. 따라서, 본 발명은 작업 노드들은 메타 정보만을 이용하여 클라이언트가 요청한 작업을 처리함으로써 작업 처리 성능을 향상시킬 수 있고, 클러스터 운영 중에 특정한 작업 노드에 오류 발생시 전체 클러스터를 재구동하지 않고 작업 처리에 필요한 정보들을 동기화한 후 분산 클러스터 시스템의 중지 없이 동작 중에 오류가 수정된 작업 노드가 재접속할 수 있다.

Description

분산 클러스터 관리 시스템 및 그 방법{DISTRIBUTED CLUSTER MANAGEMENT SYSTEM AND METHOD FOR THEREOF}
본 발명은 분산 클러스터 관리 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 클러스터를 구성하는 작업 노드들은 메타 정보만을 이용하여 클라이언트에서 요청한 작업을 분산 환경에서 다수의 작업 노드들이 협업하여 동시에 처리할 수 있는 분산 클러스터 관리 시스템 및 그 방법에 관한 것이다.
클러스터 시스템(Cluster system)은 네트워크로 연결된 단일 컴퓨팅들의 집합을 통해 하나의 작업을 공동으로 처리하는 것을 의미한다. 슈퍼컴퓨터가 다수의 CPU를 내부적으로 연결하고, 각각의 CPU들이 공통의 가상 메모리에 접근하도록 제작되어 있다면, 클러스터 시스템은 각각의 연결을 네트워크를 통해 구현한다는 점이 가장 큰 차이점이라고 할 수 있다.
클러스터 시스템은 일반적인 서버를 이용해 구성할 수 있기 때문에 슈퍼컴퓨터와 비교해서 구축 비용이 적게 든다는 장점이 있다. 사용자의 필요에 따라 시스템을 구축할 수 있으며, 연결된 서버의 수를 늘리는 것으로 쉽게 성능을 향상시킬 수 있는 장점이 있지만, 반면에 단일 시스템에 비해 유지 보수가 힘들고, 시스템의 성능이 네트워크 성능에 많은 영향을 받는다는 단점이 있다.
이러한 클러스터 시스템은 동종 또는 이종 노드들을 네트워크로 연결하여 시스템을 확장하는 방법으로 클러스터 내의 개별 시스템을 서버 또는 노드라고 한다. 부하 분산 클러스터 시스템은 클라이언트로부터의 요청을 클러스터 내의 다른 노드로 할당하는 역할을 수행하는 부하 분배기와, 요청에 대해 서비스를 제공하는 노드로 구성된다. 부하 분산 클러스터 시스템에서 부하 분배기는 서비스 요청이 있을 경우에 특정한 알고리즘을 바탕으로 적절한 노드를 선발하여 그 요청을 처리하게 된다. 즉, 하나의 작업을 여러 대의 노드가 나누어 처리하는 것이 아니고, 분산 알고리즘에 의해 선택된 노드가 배정받은 작업 전체를 처리한다. 그러므로 병렬 시스템과는 달리 쇄도하는 모든 요청이 여러 대의 노드에 골고루 할당되어 부하가 분산되도록 한다.
이러한 부하 분산 클러스터 시스템을 관리하기 위해 크게 마스터-슬레이브 방식과 P2P 방식을 사용한다. 먼저, 마스터-슬레이브 방식의 분산 클러스터 관리 시스템은 클러스터 시스템을 관리하는 마스터 노드와 작업 처리를 담당하는 슬레이브 노드로 구성되고, P2P 방식의 분산 클러스터 관리 시스템은 모든 작업 노드들이 동등한 수준에서 작업 처리 동작을 수행하도록 한다.
종래의 부하 분산 클러스터 시스템은 분산 환경에서 마스터-슬레이브 방식을 적용하여 작업 처리를 수행하는 슬레이브 노드에서 마스터 노드를 경유하도록 함으로써 처리 성능의 저하를 초래하고, 마스터 노드의 오류 발생시 전체 클러스터를 재구동해야하는 문제점이 있다.
한편, 종래의 P2P 방식을 적용한 부하 분산 클러스터 시스템은 클러스터 관리를 위한 작업 수행시 작업 노드들 중에 마스터 노드를 선정하기 위한 추가 작업이 필요하다는 문제점이 있다.
한국공개특허 제10-2017-0102725호 " 데이터 관리 시스템 및 방법 " 한국등록특허 제10-1035857호 " 데이터 관리 방법 및 그 시스템 "
본 발명은 클러스터를 작업을 처리하는 작업 노드와 작업 노드들을 관리하는 클러스터 관리 노드로 구성하고, 클러스터 관리 노드를 통해 각 작업 노드들의 작업 처리에 필요한 정보들을 동기화하여 관리함으로써 작업 노드들은 메타 정보만을 이용하여 클라이언트에서 요청한 작업을 분산 환경에서 다수의 작업 노드들이 협업하여 동시에 처리할 수 있는 분산 클러스터 관리 시스템 및 그 방법을 제공한다.
실시예들 중에서, 분산 클러스터 관리 시스템은, 분산 작업 처리에 필요한 메타 정보를 이용하여 클라이언트에서 요청한 작업을 병렬 처리하는 적어도 하나 이상의 작업 노드; 및 상기 작업 노드들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 상기 메타 정보들을 동기화하여 자신과 연결된 작업 노드를 관리하는 적어도 하나 이상의 클러스터 관리 노드를 포함하여 구성되고, 상기 클러스터 관리 노드는, 클러스터 설정 파일을 이용하여 클러스터를 구성하는 상기 클러스터 관리 노드와 작업 노드의 디바이스 연결 정보를 추출하고, 상기 클러스터 운용 프로세스를 통해 상기 디바이스 연결 정보를 이용하여 상기 클러스터 관리 노드와 작업 노드를 구동하는 클러스터 운용 관리자; 상기 클러스터 설정 파일을 이용하여 연결된 작업 노드의 상태 정보를 획득한 후 상기 작업 노드에 대한 통합 관리 기능을 수행하는 클러스터 관리자; 및 상기 클러스터 설정 파일을 포함한 클러스터 관리 정보를 저장하는 로컬 저장소를 포함하며, 상기 클러스터 관리자는, 상기 클라이언트의 요청에 따라 작업 노드와의 연결 또는 연결 해제 기능을 수행하는 작업 노드 연결 매니저; 상기 클러스터 설정 파일로부터 클러스터를 구성하는 클러스터 관리 노드와 작업 노드의 접속 정보를 추출하고, 상기 클러스터 설정 파일의 변경 여부에 따라 상기 작업 노드에 클러스터 설정 파일을 전송하여 각 노드를 구동하는 클러스터 정보 매니저; 상기 클러스터 관리 노드가 관리하는 관리 그룹의 연결된 작업노드의 상태 정보를 수집하는 작업 노드 매니저; 및 상기 관리 그룹에 속하는 작업 노드의 메타 정보를 동기화하여 공유하는 동기화 매니저를 포함하여 구성되는 것을 특징으로 하는 분산 클러스터 관리 시스템 특징으로 한다.
삭제
상기 메타 정보는 네트워크를 통해 접속하기 위한 각 노드의 접속 정보를 포함하고, 상기 클러스터 설정 파일은 클러스터를 구성하는 클러스터 관리 노드와 작업 노드와의 연결을 위한 디바이스 연결 정보를 포함하는 것을 특징으로 한다.
상기 클러스터 운용 관리자는, 각 클러스터 관리 노드가 관리하는 관리 그룹에 속하는 작업 노드에 상기 클러스터 설정 파일을 전송하고, 상기 클러스터 구성 변경시 상기 클러스터 설정 파일을 수정하여 상기 관리 그룹에 속하는 작업 노드에 배포하는 것을 특징으로 한다.
삭제
상기 작업 노드는, 상기 클러스터 관리자와 하트비트(Heartbeat) 프로토콜을 이용하여 상기 작업 노드의 상태를 체크한 후 상태 정보를 메타 정보에 반영하는 클러스터 에이전트; 및 상기 클라이언트의 테이블 생성 요청에 따라 DBMS 엔진과 연동하여 테이블 정보를 생성한 후 테이블 생성 처리 결과를 클러스터 관리 노드에 전송하고, 상기 클러스터 관리 노드의 관리 그룹에 속한 다른 작업 노드들과 테이블 정보를 공유하며, 상기 작업 노드의 메타정보를 포함한 상태 정보를 저장하는 DBMS 엔진을 포함하는 것을 특징으로 한다.
상기 클러스터 에이전트는, 상기 작업 노드의 상태 정보를 수집하는 노드 상태 정보 수집기; 및 상기 테이블 정보, 상기 테이블 정보와 연결된 작업 노드의 상태 정보를 동기화하는 노드 정보 동기화 관리자를 포함하는 것을 특징으로 한다.
상기 DBMS 엔진은, 상기 테이블 정보와 작업 노드의 상태 정보를 포함한 메타 정보를 관리하는 메타정보 관리 엔진; 상기 클라이언트의 테이블 생성 요청을 수신하여 작업 노드의 상태 정보를 검색한 후 테이블 생성 처리 결과 또는 테이블 생성 처리 오류 정보를 처리하는 질의 처리 엔진; 및 상기 클라이언트의 테이블 생성 처리 결과 또는 테이블 생성 처리 오류 정보를 저장하는 저장 엔진을 포함하는 것을 특징으로 한다.
실시예들 중에서, 분산 클러스터 관리 방법은, 클라이언트에서 요청한 작업을 분산 환경에서 다수의 노드가 처리하는 분산 클러스터 관리 시스템에 의해 수행되는 분산 클러스터 관리 방법에 있어서, 클라이언트에서 요청한 작업을 처리하는 적어도 하나 이상의 작업 노드와, 상기 작업 노드들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 자신과 연결된 작업 노드를 관리하는 적어도 하나 이상의 클러스터 관리 노드로 클러스터를 구성하고, 상기 클러스터의 각 노드에 대한 디바이스 연결 정보를 포함하는 클러스터 설정 파일을 저장하는 제1 단계; 상기 클라이언트의 작업 처리 요청시, 상기 클러스터 운용 프로세스에 의해 현재 구동 중인 상기 클러스터 관리 노드의 접속 정보를 획득하고, 상기 클러스터 관리 노드가 관리하는 관리 그룹에 속하는 작업 노드의 접속 정보를 포함한 로컬 정보를 추출하는 제2 단계; 상기 로컬 정보가 상기 클러스터 설정 파일의 접속 정보와 매핑되는 경우에, 상기 클러스터 관리 노드에 연결된 다수의 작업 노드에 클러스터 설정 파일을 전송하는 제3 단계; 상기 클러스터 설정 파일을 이용하여 연결된 작업 노드의 상태 정보를 획득한 후 상기 작업 노드에 대한 통합 관리 기능을 수행하는 제4 단계; 및 상기 작업 노드의 상태 정보를 이용하여 클라이언트와 연결할 적어도 하나 이상의 작업 노드를 선별하여 구동하는 제5 단계를 포함하는 것을 특징으로 한다.
상기 제3 단계는 상기 로컬 정보가 상기 클러스터 설정 파일의 접속 정보가 매핑되지 않는 경우에, 상기 클러스터 운용 프로세스를 종료하는 것을 특징으로 한다.
상기 제2 단계는, 상기 클라이언트가 상기 클러스터 관리 노드에 연결 요청하는 단계; 상기 클러스터 관리 노드는 작업 노드의 상태 정보를 검색하고, 상기 작업 노드의 상태 정보를 이용하여 상기 클라이언트에 연결할 작업 노드를 선택한 후 상기 선택된 작업 노드 정보를 상기 클라이언트에 전송하는 단계; 및 상기 클라이언트는 상기 작업 노드 정보를 이용하여 작업 노드의 DBMS 엔진과 연결한 후 상기 DBMS 엔진에 작업을 요청하는 단계를 포함하는 것을 특징으로 한다.
상기 작업 노드의 상태 정보는 각 작업 노드에 연결된 클라이언트 개수를 포함한 작업 상태 정보이고, 상기 작업 노드 정보는 해당 작업 노드에 연결하기 위한 디바이스 연결 정보를 포함하는 것을 특징으로 한다.
상기 제4 단계는, 상기 클러스터 관리 노드는 기설정된 시간 간격으로 상기 작업 노드로 하트비트 메시지를 요청하는 단계; 상기 작업 노드는 하트비트 메시지 요청에 따른 하트비트 메시지를 기설정된 전송시간 이내에 상기 클러스터 관리 노드로 전송하는 단계; 상기 클러스터 관리 노드는 기설정된 전송시간 이내에 하트비트 메시지가 수신되지 않는 작업 노드는 오류 발생 작업 노드로 판단한 후 오류 정보로 기록하고, 자신의 관리 그룹에 속한 다른 작업 노드의 DBMS 엔진의 메타 정보에 오류 정보를 실시간 반영하는 단계; 및 상기 클러스터 관리 노드는 기설정된 전송시간 이내에 하트비트 메시지가 수신된 작업 노드들의 상태 정보를 수집하고, 자신의 관리 그룹에 속한 모든 작업 노드의 상태 정보를 동기화하여 공유하는 단계를 포함하는 것을 특징으로 한다.
상기 제1 단계는, 상기 클러스터 구성이 변경된 경우에 클러스터 관리 노드에 대한 클러스터 설정 파일을 수정하여 자동으로 배포하는 단계를 더 포함하는 것을 특징으로 한다.
제5 단계에서 테이블에 속하는 레코드들을 다수의 작업 노드에 분산 저장하기 위한 상기 클라이언트의 테이블 생성 질의가 요청된 경우에, 상기 클러스터 운영 프로세스는 상기 테이블 생성 질의문을 수신하는 제5-1 단계; 상기 테이블 생성 질의문을 최초 수신한 제1 작업 노드는 테이블 생성 질의문에 포함된 작업 노드의 상태 정보를 검색하는 제5-2 단계; 상기 작업 노드의 상태 정보에 오류가 없는 경우에 제1 작업 노드의 DBMS 엔진은 상기 테이블 생성 질의문 수신 상태를 그룹 내의 모든 작업 노드에 전송하고, 해당 작업 노드를 관리하는 클러스터 관리 노드에 상기 테이블 생성 질의문 수신 상태를 통지하는 제5-3 단계; 상기 클러스터 관리 노드는 자신의 관리 그룹 내의 모든 작업 노드의 테이블 정보를 공유하기 위해 모든 작업 노드에 테이블 생성 질의문을 전달하고 기설정된 대기 시간 동안 대기하는 제5-4 단계; 상기 테이블 생성 질의문을 수신한 작업 노드는 DBMS 엔진과 연동하여 테이블 정보를 생성한 후 테이블 생성 처리 결과 메시지를 상기 클러스터 관리 노드에 전달하는 제5-5 단계; 및 상기 클러스터 관리 노드는 기설정된 대기 시간 이내에 모든 작업 노드에서 상기 테이블 생성 처리 결과 메시지가 전송되면 테이블 정보 동기화를 수행하는 제5-6 단계를 포함하는 것을 특징으로 한다.
상기 테이블 생성 질의문은 기설정된 칼럼에 대해 조건에 따라서 레코드를 저장할 작업노드 정보를 포함하는 것을 특징으로 한다.
상기 제5-3 단계는, 상기 레코드를 저장하기 위한 작업 노드들 중에서 적어도 1개 이상의 작업 노드의 상태 정보가 오류 정보인 경우에 테이블 생성 처리 오류 정보를 반환하는 단계를 더 포함하는 것을 특징으로 한다.
상기 제5-6 단계는, 상기 클러스터 관리 노드는 상기 테이블 생성 처리 오류 정보를 반환하는 시점에서 오류 발생 작업 노드의 식별 정보, 시간 정보, 테이블 생성 요청 정보를 포함한 재접속 동기화 정보를 저장하는 것을 특징으로 한다.
상기 제5-6 단계는, 상기 클러스터 관리 노드는 기설정된 시간 이내에 상기 테이블 생성 처리 결과 메시지가 전송되지 않은 작업 노드가 존재하는 경우에 테이블 생성 요청 처리 오류 상태로 판단하고, 모든 작업 노드에 테이블 생성 요청 처리 결과를 삭제한 후 상기 제1 작업 노드에 오류 정보를 전달하는 단계를 더 포함하는 것을 특징으로 한다.
상기 제5-6 단계는, 상기 클러스터 관리 노드는 상기 제1 작업 노드가 상기 테이블 생성 질의문을 수신한 시점에 오류가 발생한 오류 발생 작업 노드의 경우에, 상기 오류 발생 작업 노드는 오류 수정 후 상기 재접속 동기화 정보를 이용하여 상기 테이블 정보를 동기화하여 재접속을 수행하는 재접속 수행 단계를 더 포함하는 것을 특징으로 한다.
상기 오류 발생 작업 노드는 오류 수정 후에 DBMS 엔진의 메타 정보에 대한 업데이트를 진행하는 것을 특징으로한다.
상기 재접속 수행 단계는, 상기 오류 발생 작업 노드는 상기 클러스터 관리 노드에 재연결 요청 메시지를 송신하는 단계; 상기 클러스터 관리 노드는 테이블 생성 로그 정보와 현재 구동중인 작업 노드의 상태 정보를 상기 오류 발생 작업 노드에 전송하는 단계; 상기 오류 발생 작업 노드는 다른 작업 노드의 상태 정보를 업데이트 하고, 상기 테이블 생성 로그 정보를 이용하여 순차적으로 테이블 생성 작업을 수행하여 테이블 정보를 업데이트한 후에 테이블 생성 처리 결과 메시지를 상기 클러스터 관리 노드에 전송하는 단계; 상기 클러스터 관리 노드는 다른 작업 노드에 오류 수정 후 재접속한 재접속 작업 노드의 상태 정보에 대한 업데이트를 요청하는 단계; 및 상기 재접속 작업 노드를 제외한 다른 작업 노드는 작업 노드의 상태 정보를 업데이트하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 분산 클러스터 관리 시스템 및 그 방법은, 작업 노드들은 메타 정보만을 이용하여 클라이언트가 요청한 작업을 처리함으로써 작업 처리 성능을 향상시킬 수 있고, 클러스터 운영 중에 특정한 작업 노드에 오류 발생시 전체 클러스터를 재구동하지 않고 작업 처리에 필요한 정보들을 동기화한 후 분산 클러스터 시스템의 중지 없이 동작 중에 오류가 수정된 작업 노드가 재접속할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 분산 클러스터 관리 시스템을 설명하는 도면이다.
도 2는 도 1의 클러스터 관리 노드와 작업 노드의 구성을 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 클러스터 관리 방법을 설명하는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 연결 과정을 설명하는 순서도이다.
도 5는 도 4의 작업노드의 상태정보를 동기화하는 과정을 설명하는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 클라이언트의 테이블 생성 요청을 처리하는 과정을 설명하는 순서도이다.
도 7은 본 발명의 일 실시예에 따른 오류 발생 작업 노드의 재접속하는 과정을 설명하는 순서도이다.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 분산 클러스터 관리 시스템을 설명하는 도면이다.
도 1을 참고하면, 분산 클러스터 시스템(100)은 클라이언트(400)에서 요청한 작업을 분산 환경에서 동시에 처리하기 위해 적어도 하나 이상의 클러스터 관리 노드(200) 및 다수의 작업 노드(300)로 클러스터를 구성한다.
적어도 하나 이상의 클러스터 관리 노드(200)는 작업 노드(300)들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 각 작업 노드(300)의 메타 정보들을 동기화하여 자신과 연결된 작업 노드(300)들을 관리한다.
메타 정보는 작업 노드(300)의 접속 정보를 포함한다. 여기서 메타 정보는 데이터에 대한 데이터라고 할 수 있는데, 데이터 또는 데이터 셋(data set)을 효율적으로 접근하고 관리할 수 있도록 해 주는 데이터에 대한 정보를 총칭한다. 광의로 메타 정보는 데이터의 생성에 따른 기본적 내용, 질적 요소, 문서 구조, 구현 기법, 참조 정보, 데이터 내용에 관한 서술 정보, 데이터 접근, 획득, 배포, 활용에 관한 정보, 생성자, 관리자 정보 등을 광범위하게 기술하는 데이터 셋 또는 정보를 의미한다.
적어도 하나 이상의 작업 노드(300)는 작업 처리에 필요한 메타 정보를 이용하여 클라이언트(400)에서 요청한 작업을 동시에 병렬 처리한다.
클러스터 관리 노드(200)는 자신이 관리하는 관리 그룹의 작업 노드(300)에 대한 클러스터 관리 기능을 수행하고, 작업 노드(300)는 동일한 그룹에 속하는 이웃 작업 노드(300)와 연동하여 클라이언트(400)에서 요청한 작업을 동시에 병렬 처리한다.
경우에 따라, 작업 노드(300)는 자신의 그룹을 관리하는 클러스터 관리 노드(200)가 아닌 다른 클러스터 관리 노드(200)에 연결된 작업 노드(300)들과 연동하여 작업을 수행할 수도 있다.
도 2는 도 1의 클러스터 관리 노드와 작업 노드의 구성을 설명하는 도면이다.
도 2를 참고하면, 클러스터 관리 노드(200)는 클러스터 운용 관리자(210), 클러스터 관리자(220) 및 로컬 저장소(230)를 포함한다.
클러스터 운용 관리자(210)는 클러스터 설정 파일을 이용하여 클러스터를 구성하는 디바이스 연결 정보(예를 들어, IP 주소 등의 접속 정보)를 추출하고, 이 디바이스 연결 정보를 통해 클러스터 운용 프로세스를 진행하여 다수의 클러스터 관리 노드(200) 및 작업 노드(300)를 원격 구동한다.
클러스터 운용 관리자(210)는 클러스터 관리 노드(200)의 관리 그룹에 속하는 작업 노드(300)에 클러스터 설정 파일을 전송하고, 클러스터 구성 변경시 클러스터 설정 파일을 수정하여 관리 그룹에 속하는 모든 작업 노드(300)에 자동으로 배포한다.
클러스터 관리자(220)는 자신이 관리하는 그룹의 작업 노드(300)에 대한 통합 관리 기능을 수행한다. 이때, 클러스터 관리자(220)는 연결된 작업 노드(300)의 상태 정보를 획득하기 위하여 클러스터 설정 파일을 이용한다.
이러한 클러스터 관리자(220)는 작업 노드 연결 매니저(221), 클러스터 정보 매니저(222), 작업 노드 매니저(223) 및 동기화 매니저(224)를 포함한다.
작업 노드 연결 매니저(221)는 클라이언트(400)의 요청에 따라 작업 노드(300)와의 연결 또는 연결 해제 기능을 수행한다.
클러스터 정보 매니저(222)는 클러스터 설정 파일로부터 클러스터를 구성하는 클러스터 관리 노드(200)와 작업 노드(300)의 접속 정보를 추출하고, 클러스터 설정 파일의 변경 여부에 따라 작업 노드(300)에 클러스터 설정 파일을 전송하여 구동한다.
작업 노드 매니저(223)는 관리 그룹에 연결된 작업 노드(300)의 상태 정보를 수집한다.
동기화 매니저(224)는 클러스터 관리 노드(200)의 관리 그룹에 속하는 작업 노드(300)의 메타 정보를 동기화하여 공유한다.
한편, 작업 노드(300)는 클러스터 에이전트(310)와 DBMS 엔진(320)을 포함한다.
클러스터 에이전트(310)는 클러스터 관리자(220)와 하트비트(Heartbeat) 프로토콜을 이용하여 작업 노드(300)의 상태 정보를 체크한 후 상태 정보를 메타 정보에 실시간 반영한다. 이러한 클러스터 에이전트(310)는 작업 노드의 상태 정보를 수집하는 노드 상태 정보 수집기(311)와 테이블 정보 및 테이블 정보와 연결된 작업 노드의 상태 정보를 동기화하는 노드 정보 동기화 관리자(312)를 포함한다.
DBMS 엔진(320)은 클라이언트(400)에서 요청한 테이블 생성 요청을 수신한 후 DBMS 엔진(320)과 연동하여 테이블 정보를 생성한 후 테이블 생성 처리 결과를 클러스터 관리 노드(200)에 전송하고, 클러스터 관리 노드(200)의 관리 그룹에 속한 다른 작업 노드(300)들과 테이블 정보를 공유하며, 메타정보와 작업 노드의 상태 정보, 오류 정보 등을 저장한다.
이때, DBMS 엔진(320)은 테이블 정보와 작업 노드의 상태 정보를 포함한 메타 정보를 관리하는 메타정보 관리 엔진(321), 클라이언트(400)의 테이블 생성 질의를 수신하면 질의에 포함된 작업 노드의 상태 정보를 검색하여 테이블 생성 처리 결과 또는 테이블 생성 처리 오류 정보를 처리하는 질의 처리 엔진(322) 및 클라이언트(400)의 테이블 생성 처리 결과를 저장하는 저장 엔진(323)을 포함한다.
한편, 클라이언트(400)는 클러스터 관리자(220)로부터 수신한 디바이스 연결정보(예를 들어, 네트워크 주소 등)를 이용하여 작업 노드의 DBMS 엔진(320)에 연결한다. 응용 프로그램(420)은 클러스터 연결 관리자(410)를 통해 DBMS 엔진(320)에 작업을 요청하며, 분산 클라이언트 관리 시스템(100)은 다수의 작업 노드(300)들이 협업하여 클라이언트(400)에서 요청한 작업을 처리한다.
도 3은 본 발명의 일 실시예에 따른 분산 클러스터 관리 방법을 설명하는 순서도이다.
도 3을 참고하면, 분산 클러스터 관리 방법은, 클러스터 관리 노드(200)가 클러스터 운용 관리자(210)에 의해 클러스터 운용 프로세스를 구동하면, 작업 노드(300)의 접속 정보를 추출하고, 현재 구동중인 클러스터 관리 노드(200)의 접속 정보를 로컬 정보로 획득한다.(S310) 이때, 접속 정보는 IP 주소 또는 인피니밴드(infiniband) 주소 등 네트워크를 통하여 접속하기 위해서 필요한 주소 정보를 의미한다.
클러스터 운용 관리자(210)는 클러스터 설정 파일로부터 클러스터를 구성하는 클러스터 관리 노드(200) 주소 정보 및 작업 노드(300)들의 주소 정보를 추출한다. 현재 구동중인 장치의 로컬 정보가 클러스터 설정 파일(220)의 클러스터 관리 노드(200)의 접속 정보에 매핑되지 않는 경우 분산 클러스터 시스템(100)의 구동을 종료한다. 그러나 현재 구동중인 장치의 로컬 정보가 클러스터 설정 파일(220)의 클러스터 관리 노드(200)의 접속 정보와 동일할 경우에 클러스터 설정 파일(220)을 연결 되어 있는 모든 작업 노드(300)에 전송한다.(S320, S330)
클러스터 운용 관리자(210)는 현재 구동중인 클러스터 관리 노드(200)의 클러스터 관리자(220)와 로컬 저장소(230)를 구동함으로써 연결된 작업 노드(300)의 클러스터 에이전트(310)와 연동하여 클라이언트(400)에서 요청한 작업을 처리에 필요한 정보들을 동기화를 수행하여 클러스터 관리를 수행한다.(S340) 클러스터 운용 관리자(210)는 현재 구동 중인 클러스터 관리 노드(200)에 연결되어 있는 작업 노드의 클러스터 에이전트(310)와 DBMS 엔진(320) 프로세스를 원격으로 구동하여 클라이언트(400)에서 요청한 작업을 분산 환경에서 동시에 처리한다.(S350)
따라서, 클러스터 운용 프로세스는 클러스터 구성이 변경될 경우에 클러스터 관리 노드(200)에 한하여 클러스터 설정파일(220)을 수정하여 자동으로 배포함으로써 분산 클러스터 관리의 편이성을 향상될 수 있다.
상기와 같이 분산 클러스터 관리 시스템(100)은 다수의 클러스터 관리 노드(200)와 작업 노드(300)들을 구동하고, 클라이언트(400)가 작업 노드 연결 매니저(221)에 접속하여 작업 처리를 진행하도록 한다. 이때, 클라이언트(400)는 클러스터 관리 노드(200)의 메타 정보만 이용하여 연결된다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 연결 과정을 설명하는 순서도이다.
도 4를 참고하면, 클라이언트(400)는 클러스터 관리 노드(200)에 접속 연결을 요청한다.(S410) 클라이언트의 연결 요청은 클러스터 관리 노드(200)의 클러스터 관리자(230)에 의해서 처리되고, 클라이언트의 연결 요청을 수신한 클러스터 관리자(230)는 연결된 작업 노드(300)들의 클러스터 에이전트(310)에 작업 노드(300)의 상태정보를 요청한다.
클러스터 에이전트(310)는 DBMS 엔진(320)과 연동하여 작업 노드의 상태 정보를 검색한 후 현재 작업 노드(300)에 연결되어 있는 클라이언트(400)의 개수를 반환한다.(S420) 클러스터 관리자(230)는 다수의 작업 노드(300)들로부터 수집한 상태 정보를 활용하여 클라이언트(400)에 연결할 작업 노드(300) 정보를 반환한다(S430). 클러스터 관리자(220)는 현재 연결되어 있는 클라이언트의 개수가 최소인 작업 노드를 선택하는 것을 기본으로 하지만, 작업 노드의 선택 조건은 다양하게 설정될 수 있다.
클라이언트(400)의 클러스터 연결 관리자(410)는 클러스터 관리자(230)로부터 수신한 디바이스 연결 정보를 이용하여 작업 노드(300)의 DBMS 엔진(320)에 연결하고, 클라이언트(400)의 응용 프로그램(420)은 클러스터 연결 관리자(410)를 통하여 DBMS 엔진(320)에 작업을 요청하며, 분산 클라이언트 시스템(100)은 다수의 작업 노드(300)들이 협업하여 요청한 작업을 처리하게 된다.(S440, S450)
이를 위해 각 작업 노드(300)에서 동작하는 DBMS 엔진(320)들이 클라이언트(300)가 요청한 작업을 처리하기 위해서 필요한 정보들을 동기화하여 공유한다. 이때, 주요 동기화 정보는 DBMS 엔진(320)의 테이블 정보와 작업 노드(300)들의 상태 정보이다. 작업 노드(300)들의 상태 정보는 클러스터 관리 노드(200)의 작업노드 관리자(233)에 의해서 수집하여 동기화시 반영된다.
도 5는 도 4의 작업노드의 상태정보를 동기화하는 과정을 설명하는 순서도이다.
도 5를 참고하면, 클러스터 관리자(230)는 연결되어 있는 다수의 작업노드(300)들에게 주기적으로 하트비트 메시지를 요청한다.(S510) 클러스터 에이전트(310)는 클러스터 관리자(220)의 하트비트 메시지 요청에 따른 하트비트 메시지를 클러스터 관리자(220)로 송신한다. 하트비트 프로토콜은 정해진 시간 간격을 두고 하트비트 메시지를 물리적으로 연결된 노드에 보내 일정시간 응답이 없으면 오류가 발생한 것으로 판단한다.
즉, 클러스터 관리자(230)는 특정한 작업 노드(300)의 클러스터 에이전트(310)로부터 기설정된 전송 시간 이내에 하트비트 메시지를 수신하면 작업 노드가 정상 상태이고, 기설정된 전송 시간 이내에 하트비트 메시지를 수신하지 못 하는 경우 해당 작업 노드(300)가 오류가 발생한 것으로 판단하여 관련 정보들을 다른 작업 노드(300)의 DBMS 엔진(320)의 글로벌 메타 정보에 반영하는 동시에 클러스터 관리 노드(200)의 로컬 저장소(240)에 오류 정보를 기록한다.(S520, S530)
개별 작업 노드(300)에서 연결된 다수의 작업 노드(300)들과 협력하여 작업 처리시 작업 노드는 메타 정보만을 이용한다. 따라서, 메타 정보가 변경되는 경우에, 클러스터 관리 노드(200)의 클러스터 관리자(230)와 각 작업 노드(300)의 클러스터 에이전트(310)가 협업하여 작업 노드(300)의 DBMS 엔진(320)의 글로벌 메타 정보(321)에 변경된 메타 정보를 실시간으로 반영한다.
도 6은 본 발명의 일 실시예에 따른 클라이언트의 테이블 생성 요청을 처리하는 과정을 설명하는 순서도이다.
DBMS의 동일한 테이블에 속하는 레코드들이 다수의 작업 노드에 분산 저장될 수 있는데, 레코드들을 다수의 작업 노드(300)들에 분산 저장하는 방법은 기존에 제시된 다양한 방법들을 적용할 수 있다. 분산 작업 처리를 위해서 필요한 정보 가운데 가장 중요한 정보는 특정 레코드가 저장되어 있는 작업 노드(300)의 접속 정보이다.
도 6을 참고하면, 특정한 작업 노드(300)의 DBMS 엔진(320)은 클라이언트(400)에서 요청한 테이블 생성 질의문을 수신한다.(S610)
이때, 클라이언트(400)의 테이블 생성 질의문에 특정 칼럼에 대해서 조건에 따라서 레코드를 저장할 작업노드 정보를 포함할 수 있도록 한다. 예를 들어, 칼럼 ‘AGE’에 대해서 0 ~ 20은 1번 작업 노드, 21 ~ 40은 2번 작업노드, 41 ~ 60은 3번 작업노드, 61이상은 5번 작업 노드에 저장하도록 작업 노드 정보를 지정할 수 있다. 이를 고려하여 테이블 생성 질의를 수신한 제1 작업 노드(300)는 테이블 생성 질의문에 포함된 작업노드의 상태 정보를 검색한다. 만약 레코드를 저장할 작업 노드 가운데 1개 이상의 작업 노드 상태가 오류인 경우에, 해당 오류 발생 노드에 대한 테이블 생성 처리 오류 정보를 반환하도록 한다(S620).
다수의 작업 노드(300)들이 협업하여 클라이언트가 요청한 작업을 동시에 처리하기 위해서 모든 작업 노드(300)들의 DBMS 엔진(320)들은 동일한 테이블 정보를 공유해야 한다. 이를 위해서 테이블 생성 요청을 수신한 DBMS 엔진(320)은 해당 작업 노드(300)의 클러스터 에이전트(310)에 테이블 생성 요청을 수신한 것을 다른 작업 노드들에게 전송한다.(S630)
클러스터 에이전트(310)는 해당 작업 노드(300)들을 관리하는 클러스터 관리 노드(200)의 클러스터 관리자(230)에 테이블 생성 요청을 통지하며 이후 테이블 생성 요청을 수신한 클러스터 관리 노드(220)의 클러스터 관리자(230)에 의해서 전체 작업 노드(300)들의 테이블 정보를 동기화하는 과정을 수행한다.
클러스터 관리자(230)는 연결되어 있는 다수의 작업 노드(300)들의 클러스터 에이전트(310)에 테이블 생성 요청을 전달하고 처리 결과를 기다린다. 각 작업 노드(300)의 클러스터 에이전트(310)는 클러스터 관리 노드(200)의 클러스터 관리자(230)로부터 테이블 생성 요청을 수신 후 DBMS 엔진(320)과 연동하여 테이블 정보를 생성하고 테이블 생성 처리 결과를 클러스터 관리자(230)에 전달한다.(S640) 클러스터 관리자(230)는 분산 클러스터 시스템(100)에 포함된 작업 노드(300)들이 동일한 테이블 정보를 공유하도록 클라이언트(400)가 테이블 생성 요청 시 오류 처리 기능을 수행한다(S650).
클러스터 관리자(230)는 현재 동작 중인 작업 노드(300)들에 테이블 생성 요청을 전송한 후 일정 시간 동안 테이블 생성 처리 결과 메시지를 기다린다. 이때, 테이블 생성 요청에 대한 처리 결과 메시지를 기다리는 대기 시간 정보는 사용자가 정의하도록 한다. 대기 시간 동안 처리 결과 메시지를 전송하지 않는 작업 노드(300)가 존재하는 경우에 클러스터 관리자(230)는 테이블 생성 요청 처리 오류로 간주하고 모든 작업노드(300)들에게 테이블 생성 요청 처리 결과를 삭제하도록 한 후에 오류 정보를 최초로 수신한 제1 작업노드(300)에 전달한다.
모든 작업 노드(300)들이 테이블 생성 요청에 대해서 성공 메시지를 전송한 경우, 테이블 생성 요청을 수신한 시점에서 작업 노드(300)들 중에서 오류가 발생한 작업 노드(300)가 있는 경우 오류 발생 작업 노드의 재접속 과정에서 테이블 정보를 동기화하기 위하여 해당 작업노드(300) 아이디와 함께 시간정보, 테이블 생성 요청 정보를 포함한 재접속 동기화 정보를 로컬 저장소(240)에 저장한다.(S660)
도 7은 본 발명의 일 실시예에 따른 오류 발생 작업 노드의 재접속하는 과정을 설명하는 순서도이다.
도 7에서는 분산 클러스터 시스템(100)을 구성하는 클러스터 관리 노드(200)와 작업 노드(300)들이 구동한 후 오류 발생 작업 노드(300)가 오류 수정 후 재접속하는 경우 전체 분산 클러스터 시스템(100)을 종료하지 않고 동작 중에 오류를 수정하여 재접속할 수 있다.
이때, 오류 발생 작업 노드는 오류 수정 후에 DBMS 엔진(320)의 글로벌 메타 정보(321)에 대한 최신화 작업, 즉 업데이트를 진행한 후 추가된다. 오류 발생 작업 노드(300)는 오류 수정 후 클러스터 관리자(230)로 재연결 요청 메시지를 송신한다.(S710) 클러스터 관리자(230)는 로컬 저장소(240)의 테이블 생성 로그 정보와 현재 구동중인 작업 노드(300)들의 상태정보를 재접속하는 오류 발생 작업 노드(300)에 전송하여 관련 정보들을 업데이트 하도록 한다.(S720)
재접속한 작업 노드(300)는 다른 작업노드의 상태 정보를 업데이트 하고, 테이블 생성 로그 정보를 이용하여 순차적으로 테이블 생성 작업을 수행하여 테이블 정보를 업데이트한 후에 처리 결과를 클러스터 관리자(230)에 전달한다.(S730) 클러스터 관리자(220)는 다른 작업 노드(300)들의 클러스터 에이전트(310)에게 오류 수정 후 재접속하는 작업 노드(300)의 상태정보를 갱신하도록 요청하게 되며 클러스터 에이전트(310)는 DBMS 엔진(320)의 작업노드 정보를 갱신하도록 한다.
상기와 같이 동작함으로써 본 발명에 의한 분산 클러스터 관리 시스템(100)은 구동 후 특정 작업 노드(300)에 오류 발생 후에도 전체 시스템을 중지하지 않고 오류를 수정한 작업 노드가 재접속할 수 있다. 상기와 같은 과정들을 수행한 후 최초로 테이블 생성 질의를 수신한 작업노드는 처리 결과를 클라이언트에 전달한다.
본 발명에 의하면 클라이언트(400)는 클러스터 관리 노드(200)에 최초로 접속하며 클러스터 관리 노드(200)는 다수의 작업 노드(300)들 중에서 클라이언트(400)가 연결할 대상을 지정하게 된다. 이후 클라이언트(400)는 특정 작업 노드(300)의 DBMS 엔진(320)과 연결하여 작업을 수행할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 분산 클러스터 관리 시스템
200 : 클러스터 관리 노드 210 : 클러스터 운용 관리자
220 : 클러스터 관리자 230 : 로컬 저장소
300 : 작업 노드 310 : 클러스터 에이전트
320 : DBMS 엔진 400 : 클라이언트

Claims (22)

  1. 분산 작업 처리에 필요한 메타 정보를 이용하여 클라이언트에서 요청한 작업을 병렬 처리하는 적어도 하나 이상의 작업 노드; 및
    상기 작업 노드들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 상기 메타 정보들을 동기화하여 자신과 연결된 작업 노드를 관리하는 적어도 하나 이상의 클러스터 관리 노드를 포함하여 구성되고,
    상기 클러스터 관리 노드는, 클러스터 설정 파일을 이용하여 클러스터를 구성하는 상기 클러스터 관리 노드와 작업 노드의 디바이스 연결 정보를 추출하고, 상기 클러스터 운용 프로세스를 통해 상기 디바이스 연결 정보를 이용하여 상기 클러스터 관리 노드와 작업 노드를 구동하는 클러스터 운용 관리자; 상기 클러스터 설정 파일을 이용하여 연결된 작업 노드의 상태 정보를 획득한 후 상기 작업 노드에 대한 통합 관리 기능을 수행하는 클러스터 관리자; 및 상기 클러스터 설정 파일을 포함한 클러스터 관리 정보를 저장하는 로컬 저장소를 포함하며,
    상기 클러스터 관리자는, 상기 클라이언트의 요청에 따라 작업 노드와의 연결 또는 연결 해제 기능을 수행하는 작업 노드 연결 매니저; 상기 클러스터 설정 파일로부터 클러스터를 구성하는 클러스터 관리 노드와 작업 노드의 접속 정보를 추출하고, 상기 클러스터 설정 파일의 변경 여부에 따라 상기 작업 노드에 클러스터 설정 파일을 전송하여 각 노드를 구동하는 클러스터 정보 매니저; 상기 클러스터 관리 노드가 관리하는 관리 그룹의 연결된 작업노드의 상태 정보를 수집하는 작업 노드 매니저; 및 상기 관리 그룹에 속하는 작업 노드의 메타 정보를 동기화하여 공유하는 동기화 매니저를 포함하여 구성되는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 메타 정보는 네트워크를 통해 접속하기 위한 각 노드의 접속 정보를 포함하고,
    상기 클러스터 설정 파일은 클러스터를 구성하는 클러스터 관리 노드와 작업 노드와의 연결을 위한 디바이스 연결 정보를 포함하는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  4. 제1항에 있어서,
    상기 클러스터 운용 관리자는,
    각 클러스터 관리 노드가 관리하는 관리 그룹에 속하는 작업 노드에 상기 클러스터 설정 파일을 전송하고,
    상기 클러스터 구성 변경시 상기 클러스터 설정 파일을 수정하여 상기 관리 그룹에 속하는 작업 노드에 배포하는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 작업 노드는,
    상기 클러스터 관리자와 하트비트(Heartbeat) 프로토콜을 이용하여 상기 작업 노드의 상태를 체크한 후 상태 정보를 메타 정보에 반영하는 클러스터 에이전트; 및
    상기 클라이언트의 테이블 생성 요청에 따라 DBMS 엔진과 연동하여 테이블 정보를 생성한 후 테이블 생성 처리 결과를 클러스터 관리 노드에 전송하고, 상기 클러스터 관리 노드의 관리 그룹에 속한 다른 작업 노드들과 테이블 정보를 공유하며, 상기 작업 노드의 메타정보를 포함한 상태 정보를 저장하는 DBMS 엔진을 포함하는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  7. 제6항에 있어서,
    상기 클러스터 에이전트는,
    상기 작업 노드의 상태 정보를 수집하는 노드 상태 정보 수집기; 및
    상기 테이블 정보, 상기 테이블 정보와 연결된 작업 노드의 상태 정보를 동기화하는 노드 정보 동기화 관리자를 포함하는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  8. 제6항에 있어서,
    상기 DBMS 엔진은,
    상기 테이블 정보와 작업 노드의 상태 정보를 포함한 메타 정보를 관리하는 메타정보 관리 엔진;
    상기 클라이언트의 테이블 생성 요청을 수신하여 작업 노드의 상태 정보를 검색한 후 테이블 생성 처리 결과 또는 테이블 생성 처리 오류 정보를 처리하는 질의 처리 엔진; 및
    상기 클라이언트의 테이블 생성 처리 결과 또는 테이블 생성 처리 오류 정보를 저장하는 저장 엔진을 포함하는 것을 특징으로 하는 분산 클러스터 관리 시스템.
  9. 클라이언트에서 요청한 작업을 분산 환경에서 다수의 노드가 처리하는 분산 클러스터 관리 시스템에 의해 수행되는 분산 클러스터 관리 방법에 있어서,
    클라이언트에서 요청한 작업을 처리하는 적어도 하나 이상의 작업 노드와, 상기 작업 노드들을 그룹 단위로 관리하고, 클러스터 운용 프로세스를 진행하여 자신과 연결된 작업 노드를 관리하는 적어도 하나 이상의 클러스터 관리 노드로 클러스터를 구성하고, 상기 클러스터의 각 노드에 대한 디바이스 연결 정보를 포함하는 클러스터 설정 파일을 저장하는 제1 단계;
    상기 클라이언트의 작업 처리 요청시, 상기 클러스터 운용 프로세스에 의해 현재 구동 중인 상기 클러스터 관리 노드의 접속 정보를 획득하고, 상기 클러스터 관리 노드가 관리하는 관리 그룹에 속하는 작업 노드의 접속 정보를 포함한 로컬 정보를 추출하는 제2 단계;
    상기 로컬 정보가 상기 클러스터 설정 파일의 접속 정보와 매핑되는 경우에, 상기 클러스터 관리 노드에 연결된 다수의 작업 노드에 클러스터 설정 파일을 전송하는 제3 단계;
    상기 클러스터 설정 파일을 이용하여 연결된 작업 노드의 상태 정보를 획득한 후 상기 작업 노드에 대한 통합 관리 기능을 수행하는 제4 단계; 및
    상기 작업 노드의 상태 정보를 이용하여 클라이언트와 연결할 적어도 하나 이상의 작업 노드를 선별하여 구동하는 제5 단계를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  10. 제9항에 있어서,
    상기 제3 단계는
    상기 로컬 정보가 상기 클러스터 설정 파일의 접속 정보가 매핑되지 않는 경우에, 상기 클러스터 운용 프로세스를 종료하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  11. 제9항에 있어서,
    상기 제2 단계는,
    상기 클라이언트가 상기 클러스터 관리 노드에 연결 요청하는 단계;
    상기 클러스터 관리 노드는 작업 노드의 상태 정보를 검색하고, 상기 작업 노드의 상태 정보를 이용하여 상기 클라이언트에 연결할 작업 노드를 선택한 후 상기 선택된 작업 노드 정보를 상기 클라이언트에 전송하는 단계; 및
    상기 클라이언트는 상기 작업 노드 정보를 이용하여 작업 노드의 DBMS 엔진과 연결한 후 상기 DBMS 엔진에 작업을 요청하는 단계를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  12. 제11항에 있어서,
    상기 작업 노드의 상태 정보는 각 작업 노드에 연결된 클라이언트 개수를 포함한 작업 상태 정보이고,
    상기 작업 노드 정보는 해당 작업 노드에 연결하기 위한 디바이스 연결 정보를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  13. 제9항에 있어서,
    상기 제4 단계는,
    상기 클러스터 관리 노드는 기설정된 시간 간격으로 상기 작업 노드로 하트비트 메시지를 요청하는 단계;
    상기 작업 노드는 하트비트 메시지 요청에 따른 하트비트 메시지를 기설정된 전송시간 이내에 상기 클러스터 관리 노드로 전송하는 단계;
    상기 클러스터 관리 노드는 기설정된 전송시간 이내에 하트비트 메시지가 수신되지 않는 작업 노드는 오류 발생 작업 노드로 판단한 후 오류 정보로 기록하고, 자신의 관리 그룹에 속한 다른 작업 노드의 DBMS 엔진의 메타 정보에 오류 정보를 실시간 반영하는 단계; 및
    상기 클러스터 관리 노드는 기설정된 전송시간 이내에 하트비트 메시지가 수신된 작업 노드들의 상태 정보를 수집하고, 자신의 관리 그룹에 속한 모든 작업 노드의 상태 정보를 동기화하여 공유하는 단계를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  14. 제9항에 있어서,
    상기 제1 단계는,
    상기 클러스터 구성이 변경된 경우에 클러스터 관리 노드에 대한 클러스터 설정 파일을 수정하여 자동으로 배포하는 단계를 더 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  15. 제9항에 있어서,
    제5 단계에서 테이블에 속하는 레코드들을 다수의 작업 노드에 분산 저장하기 위한 상기 클라이언트의 테이블 생성 질의가 요청된 경우에, 상기 클러스터 운용 프로세스는 상기 테이블 생성 질의문을 수신하는 제5-1 단계;
    상기 테이블 생성 질의문을 최초 수신한 제1 작업 노드는 테이블 생성 질의문에 포함된 작업 노드의 상태 정보를 검색하는 제5-2 단계;
    상기 작업 노드의 상태 정보에 오류가 없는 경우에 제1 작업 노드의 DBMS 엔진은 상기 테이블 생성 질의문 수신 상태를 그룹 내의 모든 작업 노드에 전송하고, 해당 작업 노드를 관리하는 클러스터 관리 노드에 상기 테이블 생성 질의문 수신 상태를 통지하는 제5-3 단계;
    상기 클러스터 관리 노드는 자신의 관리 그룹 내의 모든 작업 노드의 테이블 정보를 공유하기 위해 모든 작업 노드에 테이블 생성 질의문을 전달하고 기설정된 대기 시간동안 대기하는 제5-4 단계;
    상기 테이블 생성 질의문을 수신한 작업 노드는 DBMS 엔진과 연동하여 테이블 정보를 생성한 후 테이블 생성 처리 결과 메시지를 상기 클러스터 관리 노드에 전달하는 제5-5 단계; 및
    상기 클러스터 관리 노드는 기설정된 대기 시간 이내에 모든 작업 노드에서 상기 테이블 생성 처리 결과 메시지가 전송되면 테이블 정보 동기화를 수행하는 제5-6 단계를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  16. 제15항에 있어서,
    상기 테이블 생성 질의문은 기설정된 칼럼에 대해 조건에 따라서 레코드를 저장할 작업노드 정보를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  17. 제15항에 있어서,
    상기 제5-3 단계는, 상기 레코드를 저장하기 위한 작업 노드들 중에서 적어도 1개 이상의 작업 노드의 상태 정보가 오류 정보인 경우에 테이블 생성 처리 오류 정보를 반환하는 단계를 더 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  18. 제17항에 있어서,
    상기 제5-6 단계는, 상기 클러스터 관리 노드는 상기 테이블 생성 처리 오류 정보를 반환하는 시점에서 오류 발생 작업 노드의 식별 정보, 시간 정보, 테이블 생성 요청 정보를 포함한 재접속 동기화 정보를 저장하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  19. 제15항에 있어서,
    상기 제5-6 단계는, 상기 클러스터 관리 노드는 기설정된 시간 이내에 상기 테이블 생성 처리 결과 메시지가 전송되지 않은 작업 노드가 존재하는 경우에 테이블 생성 요청 처리 오류 상태로 판단하고, 모든 작업 노드에 테이블 생성 요청 처리 결과를 삭제한 후 상기 제1 작업 노드에 오류 정보를 전달하는 단계를 더 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  20. 제18항에 있어서,
    상기 제5-6 단계는, 상기 클러스터 관리 노드는 상기 제1 작업 노드가 상기 테이블 생성 질의문을 수신한 시점에 오류가 발생한 오류 발생 작업 노드의 경우에, 상기 오류 발생 작업 노드는 오류 수정 후 상기 재접속 동기화 정보를 이용하여 상기 테이블 정보를 동기화하여 재접속을 수행하는 재접속 수행 단계를 더 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  21. 제20항에 있어서,
    상기 오류 발생 작업 노드는 오류 수정 후에 DBMS 엔진의 메타 정보에 대한 업데이트를 진행하는 것을 특징으로 하는 분산 클러스터 관리 방법.
  22. 제20항에 있어서,
    상기 재접속 수행 단계는,
    상기 오류 발생 작업 노드는 상기 클러스터 관리 노드에 재연결 요청 메시지를 송신하는 단계;
    상기 클러스터 관리 노드는 테이블 생성 로그 정보와 현재 구동중인 작업 노드의 상태 정보를 상기 오류 발생 작업 노드에 전송하는 단계;
    상기 오류 발생 작업 노드는 다른 작업 노드의 상태 정보를 업데이트 하고, 상기 테이블 생성 로그 정보를 이용하여 순차적으로 테이블 생성 작업을 수행하여 테이블 정보를 업데이트한 후에 테이블 생성 처리 결과 메시지를 상기 클러스터 관리 노드에 전송하는 단계;
    상기 클러스터 관리 노드는 다른 작업 노드에 오류 수정 후 재접속한 재접속 작업 노드의 상태 정보에 대한 업데이트를 요청하는 단계; 및
    상기 재접속 작업 노드를 제외한 다른 작업 노드는 작업 노드의 상태 정보를 업데이트하는 단계를 포함하는 것을 특징으로 하는 분산 클러스터 관리 방법.
KR1020180035943A 2018-03-28 2018-03-28 분산 클러스터 관리 시스템 및 그 방법 Active KR102038527B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180035943A KR102038527B1 (ko) 2018-03-28 2018-03-28 분산 클러스터 관리 시스템 및 그 방법
PCT/KR2018/003697 WO2019189963A1 (ko) 2018-03-28 2018-03-29 분산 클러스터 관리 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180035943A KR102038527B1 (ko) 2018-03-28 2018-03-28 분산 클러스터 관리 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190113366A KR20190113366A (ko) 2019-10-08
KR102038527B1 true KR102038527B1 (ko) 2019-11-26

Family

ID=68060567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180035943A Active KR102038527B1 (ko) 2018-03-28 2018-03-28 분산 클러스터 관리 시스템 및 그 방법

Country Status (2)

Country Link
KR (1) KR102038527B1 (ko)
WO (1) WO2019189963A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024106644A1 (ko) * 2022-11-18 2024-05-23 주식회사 아리시스템블루 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046481A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102518774B1 (ko) * 2019-12-16 2023-04-06 한국전력공사 배전계통 감시 제어를 위한 전단처리 장치 및 방법
CN112202746B (zh) * 2020-09-24 2023-04-21 北京百度网讯科技有限公司 Rpc成员信息获取方法、装置、电子设备和存储介质
CN112367189B (zh) * 2020-10-21 2023-05-12 深圳前海微众银行股份有限公司 一种分布式节点管理方法、设备及存储介质
CN115086889A (zh) * 2021-03-15 2022-09-20 中兴通讯股份有限公司 5g消息处理方法、5g消息中心、终端及存储介质
CN114785780B (zh) * 2022-03-14 2023-03-28 广东利通科技投资有限公司 车道业务数据处理方法、装置、设备和介质
CN115348185B (zh) * 2022-08-19 2023-12-05 招银云创信息技术有限公司 一种分布式查询引擎的控制方法及其控制装置
KR102517831B1 (ko) * 2022-11-30 2023-04-04 한화시스템 주식회사 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004519024A (ja) * 2000-09-08 2004-06-24 ゴー アヘッド ソフトウェア インコーポレイテッド 多数のノードを含むクラスタを管理するためのシステム及び方法
KR100911058B1 (ko) * 2007-11-22 2009-08-06 한국전자통신연구원 메타데이터 서버 검색 방법
KR20100048130A (ko) * 2008-10-30 2010-05-11 주식회사 케이티 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법
KR101035857B1 (ko) 2008-12-19 2011-05-19 한국전자통신연구원 데이터 관리 방법 및 그 시스템
KR101696911B1 (ko) * 2011-11-01 2017-01-17 한국전자통신연구원 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
KR101901266B1 (ko) * 2012-05-30 2018-09-20 삼성에스디에스 주식회사 파일 스토리지 클러스터간 병렬 파일 전송 시스템 및 방법
US9081826B2 (en) * 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
KR101654969B1 (ko) * 2014-02-10 2016-09-06 단국대학교 산학협력단 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치
KR102033383B1 (ko) * 2016-02-18 2019-10-17 한국전자통신연구원 분산데이터 환경에서의 데이터 관리방법 및 시스템
KR102098896B1 (ko) 2016-03-02 2020-04-09 한국전자통신연구원 데이터 관리 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024106644A1 (ko) * 2022-11-18 2024-05-23 주식회사 아리시스템블루 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법

Also Published As

Publication number Publication date
WO2019189963A1 (ko) 2019-10-03
KR20190113366A (ko) 2019-10-08

Similar Documents

Publication Publication Date Title
KR102038527B1 (ko) 분산 클러스터 관리 시스템 및 그 방법
US11853263B2 (en) Geographically-distributed file system using coordinated namespace replication over a wide area network
AU2019236685B2 (en) Distributed file system using consensus nodes
US8185493B2 (en) Solution method of in-doubt state in two-phase commit protocol of distributed transaction
US10990609B2 (en) Data replication framework
US9424272B2 (en) Distributed file system using consensus nodes
US9495381B2 (en) Geographically-distributed file system using coordinated namespace replication over a wide area network
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
CN102333029A (zh) 一种服务器集群系统中的路由方法
CN103581276A (zh) 集群管理装置、系统、业务客户端及相应方法
US11163655B2 (en) Systems and methods for resynchronizing mirroring partners in a storage system
US10198492B1 (en) Data replication framework
CN102012944A (zh) 一种提供复制特性的分布式nosql数据库
CN102694863A (zh) 基于负载调整和系统容错的分布式存储系统的实现方法
US9544371B1 (en) Method to discover multiple paths to disk devices cluster wide
CN111382132A (zh) 医学影像数据云存储系统
US20080307045A1 (en) Method, system and apparatus for managing directory information
CN102427474A (zh) 云存储中的数据传输系统
US8089987B2 (en) Synchronizing in-memory caches while being updated by a high rate data stream
US20090106781A1 (en) Remote call handling methods and systems
US20020194268A1 (en) Distribute object mechanism
JP5449471B2 (ja) 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム
JP2023151992A (ja) データ収集システム、方法およびプログラム
CN117827402A (zh) 一种异地双活系统中执行定时任务的方法和装置
JP2012142787A (ja) サーバ所在地追跡装置、方法、およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20180328

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190626

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20190909

PG1501 Laying open of application
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20191024

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20191024

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20221128

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20231023

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20241107

Start annual number: 6

End annual number: 6