KR101750601B1 - 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템 - Google Patents

장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템 Download PDF

Info

Publication number
KR101750601B1
KR101750601B1 KR1020140113561A KR20140113561A KR101750601B1 KR 101750601 B1 KR101750601 B1 KR 101750601B1 KR 1020140113561 A KR1020140113561 A KR 1020140113561A KR 20140113561 A KR20140113561 A KR 20140113561A KR 101750601 B1 KR101750601 B1 KR 101750601B1
Authority
KR
South Korea
Prior art keywords
state
replication
replica
detected
cluster
Prior art date
Application number
KR1020140113561A
Other languages
English (en)
Other versions
KR20160025995A (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 KR1020140113561A priority Critical patent/KR101750601B1/ko
Publication of KR20160025995A publication Critical patent/KR20160025995A/ko
Application granted granted Critical
Publication of KR101750601B1 publication Critical patent/KR101750601B1/ko

Links

Images

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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템이 개시된다. 복수의 저장소를 포함하는 데이터 저장 시스템에서 복수의 저장소 각각이, 서로 복제 관계를 갖는 복수의 복제 저장소들을 포함하고, 데이터 저장 시스템이, 수집부, 복수의 감지부들 및 클러스터 컨트롤러를 포함하는 설정 마스터를 더 포함하고, 클러스터 관리 방법은, 수집부에서 복수의 복제 저장소들 각각의 상태를 저장하는 단계, 복수의 감지부들 각각에서 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 결정하는 단계, 결정된 상태가 수집부에서 저장된 상태와 서로 다른 경우, 저장된 상태의 후보로서 결정된 상태를 등록하는 단계 및 클러스터 컨트롤러에서 수집부에 저장된 상태의 후보로서 등록된 상태에 기반하여 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 단계를 포함할 수 있다.

Description

장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템{CLUSTER MANAGEMENT METHOD AND DATA STORAGE SYSTEM FOR WATCHING STATE AND CHANGING FORM OF CLUSTER HAVING FAULT TOLERANCE}
본 발명의 실시예들은 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템에 관한 것이다.
네트워크를 통해 연결된 장치들에서 데이터의 분산된 저장소는 비용 효율이 높고, 많은 양의 데이터에 대한 신뢰성 있는 저장소로 이용되고 있다. 이러한 분산된 데이터 저장 시스템에서, 일시적 또는 영구적 데이터 손실에 대한 데이터 가용성과 같은 데이터 일관성(consistency)을 보장하기 위해, 분산된 데이터 저장 시스템에서 동일한 데이터 항목을 네트워크를 통해 연결된 다수의 기기에 복사하는 방법이 개발되었다. 이와 같이, 다수의 기기를 통해 동일한 데이터를 복사하여 저장하는 것을 데이터 복제라 한다. 이러한 데이터 복제는 기기의 고장, 장애 또는 일시적/영구적 데이터 손실의 위험에 대비하기 위해 이용될 수 있다.
한국등록특허 제10-0985166호(분산 저장 시스템에서 파일을 동기화하는 장치 및 방법)에서는 분산 저장된 파일의 동기화를 위해, 클라이언트에 의해 요청되는 파일의 조회수를 집계하고, 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하며, 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 구성을 개시하고 있다.
데이터가 저장되는 클러스터의 구성 개체인 복제 저장소의 가용/비가용 상태를 조회 및 판단할 수 있고, 복제 저장소의 장애 발생 시 복제 저장소가 속한 저장소의 복제 관계를 재설정할 수 있는 클러스터 관리 방법 및 데이터 저장 시스템을 제공한다.
복수의 저장소를 포함하는 데이터 저장 시스템의 클러스터 관리 방법에 있어서, 상기 복수의 저장소 각각은, 서로 복제 관계를 갖는 복수의 복제 저장소들을 포함하고, 상기 데이터 저장 시스템은, 수집부, 복수의 감지부들 및 클러스터 컨트롤러를 포함하는 설정 마스터를 더 포함하고, 상기 수집부에서 상기 복수의 복제 저장소들 각각의 상태를 저장하는 단계; 상기 복수의 감지부들 각각에서 상기 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 결정하는 단계; 상기 결정된 상태가 상기 수집부에서 저장된 상태와 서로 다른 경우, 상기 저장된 상태의 후보로서 상기 결정된 상태를 등록하는 단계; 및 상기 클러스터 컨트롤러에서 상기 수집부에 저장된 상태의 후보로서 등록된 상태에 기반하여 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 단계를 포함하는 것을 특징으로 하는 클러스터 관리 방법이 제공된다.
데이터 저장 시스템에 있어서, 서로 복제 관계를 갖는 복수의 복제 저장소들을 각각 포함하는 복수의 저장소; 상기 복수의 복제 저장소들 각각의 상태를 저장하는 수집부; 상기 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 각각 결정하는 복수의 감지부들; 및 상기 수집부에 저장된 상태의 후보로서 등록된 상태에 기반하여 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 클러스터 컨트롤러를 포함하는 것을 특징으로 하는 데이터 저장 시스템이 제공된다.
데이터가 저장되는 클러스터의 구성 개체인 복제 저장소의 가용/비가용 상태를 조회 및 판단할 수 있고, 복제 저장소의 장애 발생 시 복제 저장소가 속한 저장소의 복제 관계를 재설정할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 설정 마스터의 전체 구조의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 파티션 그룹 서버들간의 복제 관계의 예를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 복제로그의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 클러스터 데이터 분할 방식의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 설정 마스터의 구조의 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, HB에 의한 파티션 그룹 서버의 상태에 대한 의견 등록 과정의 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 리더에 의한 상태 확정 과정의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 클러스터의 형상 변경 과정의 예를 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 클러스터 관리 방법을 도시한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들에서는 데이터 저장 시스템이 포함하는 장애 내구성을 지닌 클러스터의 상태감시 및 클러스터 형상변경 방식에 대해 설명한다. 이때, 상태 감시 및 클러스터 형상변경을 처리하는 개체들을 총칭해서 설정 마스터(configuration master)라 칭한다.
장애 내구성은 설정 마스터의 구성요소인 클러스터 컨트롤러(cluster controller)와 HB(heart beat)가 복수의 프로세스로 구동되어 한 프로세스의 장애에 의해서 설정 마스터의 기능이 중단되는 경우가 없는 것을 의미할 수 있다.
클러스터 상태감시는 클러스터를 구성하는 개체인 파티션 그룹 서버(partition group server)가 가용 상태인지 비가용 상태인지 조회하여 판단하는 것을 의미할 수 있다.
클러스터의 형상변경은 파티션 그룹 서버의 장애 발생시 해당 파티션 그룹 서버가 속한 파티션 그룹의 복제 관계를 재설정하는 것을 의미할 수 있다. 예를 들어, 복제 관계에서 마스터 역할을 수행하는 파티션 그룹 서버가 비가용 상태인 경우, 복제 관계에서 슬레이브 역할을 수행하는 파티션 그룹 서버가 마스터 역할을 수행하도록 역할을 변경하는 것이 클러스터 형상변경의 예이다.
도 1은 본 발명의 일실시예에 있어서, 전체 시스템의 구성요소를 개괄적으로 도시한 도면이다. 본 실시예에서 설명하는 전체 시스템은 네트워크를 통해 연결된 복수의 장치들을 통해 데이터를 분산 저장하기 위한 데이터 저장 시스템(100)일 수 있다. 이러한 데이터 저장 시스템(100)은 도 1에 도시된 바와 같이, 클라이언트(Client, 110), 설정 마스터(Configuration Master, 120) 및 클러스터(Cluster, 130)를 포함할 수 있다.
클라이언트(110)는 클러스터(130)에 저장된 데이터에 대한 생성, 삭제, 변경, 조회 등의 연산을 요청하고, 연산 수행 결과를 수신하는 사용자의 단말장치를 의미할 수 있다. 클라이언트(110)는 구동 시 설정 마스터(120)로부터 클러스터(130)의 게이트웨이 목록을 얻고, 이 목록에 대한 변경 사항을 모니터링할 수 있다. 도 1에서는 하나의 클라이언트(110)만을 나타내고 있으나, 복수의 클라이언트들이 존재할 수 있다.
클러스터(130)는 적어도 하나의 게이트웨이들을 포함할 수 있다. 도 1의 실시예에서는 두 개의 게이트웨이들(제1 게이트웨이(131) 및 제2 게이트웨이(132))을 포함하는 예를 나타내고 있으나, 하나 혹은 셋 이상의 게이트웨이들이 포함될 수도 있다.
클러스터(130)가 포함하는 복수의 게이트웨이들 각각은, 클라이언트(110)의 요청을 받아 요청을 처리하기 위한 파티션 그룹 서버를 찾고, 해당 파티션 그룹 서버에 연산을 요청하는 프록시의 역할을 수행할 수 있다. 이러한 복수의 게이트웨이들 각각은 구동 시, 설정 마스터(120)에서 클러스터(130)의 키(key) 분산 정보를 받을 수 있으며, 클러스터(130)의 확장 및/또는 변경 시에 설정 마스터(120)의 중재 하에 클러스터(130)의 키 분산 정보 변경 작업을 진행할 수 있다.
또한, 클러스터(130)는 복수의 파티션 그룹 서버들을 포함할 수 있다. 이때, 복수의 파티션 그룹 서버들은 복수의 파티션 그룹으로 분류될 수 있다. 도 1에서 클러스터(130)는 복수의 파티션 그룹 서버들을 포함하는 N개의 파티션 그룹들을 도시하고 있다. 예를 들어, 제1 파티션 그룹(133)은 m 개의 파티션 그룹 서버(파티션 그룹 서버 1 부터 파티션 그룹 서버 m까지)를 포함하고 있다. 이때, 일례로, 동일한 파티션 그룹에 포함된 복수의 파티션 그룹 서버들은, 네트워크를 통해 연결된 복수의 장치들 중 둘 이상의 장치들에 구현될 수 있다.
파티션 그룹 서버는, 클러스터(130)에 저장되는 전체 데이터 중 담당하는 부분의 데이터를 저장할 수 있다. 또한, 파티션 그룹 서버는, 키로 구분되는 데이터에 대한 연산을 수행할 수 있다. 이러한 파티션 그룹 서버는, 체크포인트데이터와 복제로그를 통한 복구가 가능한 상태기기 기반의 저장소일 수 있다.
상태기기는 컴퓨터 사이언스(computer science)에서 정의되는 계산 모델로서, 본 발명의 실시예들에서는 다음과 같은 속성을 만족하는 메모리저장소를 의미할 수 있다.
1. 메모리저장소의 상태는 저장된 데이터의 상태 집합을 의미한다.
2. 메모리저장소에서 제공하는 연산의 수행에 의해서 상태의 전이가 확정적으로(deterministic) 일어나며, 연산의 수행 결과도 동일하다.
하나의 파티션 그룹 서버는, 각각 하나의 메모리저장소를 포함할 수 있다. 이때, 메모리저장소에 대한 연산을 순차적으로 수행하면, 상태기기의 정의에 의해서 동일한 파티션 그룹에서 서로 복제 관계에 있는 파티션 그룹 서버들의 메모리저장소들은 데이터(상태)가 동일하게 된다. 본 발명의 실시예들에서는 적어도 둘 이상의 메모리저장소에 수행되는 명령어를 선입선출(First In First Out, FIFO) 방식으로 동일하게 수행함으로써, 적어도 둘 이상의 메모리저장소의 데이터(상태)를 복제할 수 있다.
이때, 본 발명의 실시예들에서 제공하는 메모리저장소의 변경에 대한 일관성은 순차 일관성(sequential consistency)일 수 있다. 이는, 데이터 저장 시스템(100)에서 수행된 모든 연산의 결과가 특정한 명령어들의 순차실행에 의해 수행된 결과와 동일하다는 것을 의미할 수 있다. 예를 들어, 클라이언트(110)는 메모리저장소에 수행한 변경 연산(일례로, 쓰기(write) 연산)의 결과를 (읽기 연산을 통해) 바로 읽을(read) 수 있다. 하나의 파티션 그룹에 포함된 파티션 그룹 서버들 중 적어도 하나는, 복제 관계에서 마스터의 역할을, 나머지 파티션 그룹 서버들은 슬레이브의 역할을 수행하여 복제 관계를 맺을 수 있으며, 메모리저장소에 저장된 데이터(상태)를 서로 동일하게 유지할 수 있다. 이러한 복제 관계에 대해서는 이후 도 2를 통해 더욱 자세히 설명한다.
설정 마스터(120)는 클러스터(130)에 대한 데이터 분산 정보를 저장 및 관리할 수 있으며, 클러스터(130)로 유입되는 연산에 대한 처리를 하는 게이트웨이 목록을 저장 및 관리할 수 있다. 또한, 설정 마스터(120)는 클러스터(130)의 확장/축소에 의해서 클러스터(130)에 대한 데이터 분산 정보가 바뀌는 경우, 게이트웨이(제1 게이트웨이(131) 및 제2 게이트웨이(132))와의 협업을 통해서 데이터 분산 정보를 일괄적으로 관리하는 중재자 역할을 수행할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 파티션 그룹 서버들간의 복제 관계의 예를 설명하기 위한 도면이다. 도 2에서 데이터 저장 시스템(100)은 설정 마스터(Configuration Master, 120)와 마스터 저장부(210) 및 슬레이브 저장부(220)를 도시하고 있다. 여기서, 마스터 저장부(210)와 슬레이브 저장부(220)는 각각 마스터 역할을 수행하는 파티션 그룹 서버와 슬레이브 역할을 수행하는 파티션 그룹 서버에 대응할 수 있다. 예를 들어, 마스터 저장부(210)와 슬레이브 저장부(220)는 동일한 파티션 그룹에 속하면서 서로 다른 장치에 구현될 수 있다.
데이터 저장 시스템(100)은 이미 설명한 바와 같이 데이터를 분산 저장하는 시스템으로, 데이터를 분산 저장하는 장치들에서 전원 공급 중단 등의 장애에 따라 데이터가 유실되는 것을 방지하기 위한 저장부들(210 및 220)을 포함할 수 있다.
저장부들(210 및 220)은 도 2에 도시된 바와 같이, 마스터 역할을 수행하기 위한 마스터 저장부(210)와 슬레이브 역할을 수행하기 위한 슬레이브 저장부(220)로 구성될 수 있다. 이때, 슬레이브 저장부(220)는 동일한 구성을 갖는 복수의 저장부들로 구현될 수도 있다. 예를 들어, 데이터 저장 시스템(100)은 복수의 저장부들을 포함할 수 있고, 그 중 하나의 저장부가 마스터 저장부(210)가 될 수 있으며, 둘 이상의 나머지 저장부들이 각각 슬레이브 저장부들로서 구현될 수 있다. 이때, 복수의 저장부들은 동일한 파티션 그룹에 속할 수 있으며, 각각 서로 다른 장치에 구현될 수 있다. 예를 들어, 저장부들(210 및 220)은 각각 하나의 저장 기기로서 구현될 수 있다. 이 경우, 저장부들(210 및 220)은 개별 전원을 갖는 별도의 저장 기기들이 네트워크를 통해 통신하는 형태로 구현될 수 있다.
또한, 저장부들(210 및 220)은 도 2에 도시된 바와 같이, 리플리케이터(Replicator, 마스터 리플리케이터(211) 및 슬레이브 리플리케이터(221)), 클라이언트 라이브러리(Client Library, 212 및 222), 메모리저장소(213 및 223), 복제로그(214 및 224) 및 체크포인트데이터(215 및 225)를 포함할 수 있다. 클라이언트 라이브러리(212 및 222)는 메모리저장소(213 및 223)에 내장된 형태로 구현될 수 있으며, 체크포인트데이터(215 및 225)는 데이터의 복구를 위한 것으로, 선택적으로 저장부들(210 및 220)에 포함될 수 있다.
마스터 리플리케이터(211)는 메모리저장소(213 및 223)에서 수행할 연산(명령어)을 선입선출 순서로 결정할 수 있다. 이때, 결정된 연산은 마스터 저장부(210)의 복제로그(214)와 슬레이브 저장부(220)의 복제로그(224)에 저장될 수 있다. 이미 설명한 바와 같이, 슬레이브 역할을 수행하기 위한 다수의 저장부들이 존재하는 경우, 저장부들 각각이 슬레이브 리플리케이터와 복제로그를 포함할 수 있다. 이 경우, 마스터 리플리케이터(211)에 의해 결정된 연산은 슬레이브 리플리케이터들의 복제로그들 각각에 저장될 수 있다.
슬레이브 저장부(220)의 클라이언트 라이브러리(222)는 메모리저장소(223)에서 수행할 연산을 마스터 리플리케이터(211)로 전달하고, 수행될 복제로그(224)의 부분에 대한 정보를 로컬 리플리케이터(221)로부터 전달받아 복제로그(224)에서 수행할 연산을 읽어들여 메모리저장소(223)에서 처리할 수 있다. 여기서, "로컬"은 동일한 저장부에 포함된 구성요소를 의미할 수 있다. 예를 들어, 클라이언트 라이브러리(222)의 "로컬 리플리케이터"는 리플리케이터(221)를 의미할 수 있고, 클라이언트 라이브러리(212)의 "로컬 메모리저장소"는 메모리저장소(213)를 의미할 수 있다.
설정 마스터(120)는 리플리케이터들(211 및 221)의 상태 감시와 리플리케이터들(211 및 221)의 장애 발생시 복제관계 재설정을 위한 처리를 수행할 수 있다. 이러한 설정 마스터(120)에 대해서는 이후 더욱 자세히 설명한다.
메모리저장소(213 및 223)는 이미 설명한 바와 같이 상태기기로 정의되는 저장소로서 모든 상태를 메모리상에 상주시킬 수 있다.
복제로그(214 및 224)는 리플리케이터들(211 및 221)로 전달된 연산과 수행하기 위한 연산의 위치에 대한 정보가 저장된 데이터를 의미할 수 있다. 이러한 복제로그(214 및 224)에 대해서는 이후 더욱 자세히 설명한다.
체크포인트데이터(215 및 225)는 메모리저장소(213 및 223)의 시점 데이터를 디스크상의 데이터로 저장할 것을 의미할 수 있다.
마스터 리플리케이터(211)에서 슬레이브 리플리케이터(221)로 전송되는 모든 데이터는 복제로그(224)에 저장될 수 있다. 복제로그(224)는 고정크기의 파일로 구성될 수 있으며, 크게 데이터가 저장되는 부분과 메타데이터가 저장되는 부분으로 구성될 수 있다.
도 3은 본 발명의 일실시예에 있어서, 복제로그의 예를 도시한 도면이다. 도 3은 복제로그(300)가 데이터 부분(310)과 메타데이터 부분(320)으로 구성된 파일들(330 및 340)의 집합으로 구현된 예를 나타내고 있다. 데이터 부분(310)은 복제데이터 자체가 저장되는 부분일 수 있고, 메타데이터 부분(320)은 메타데이터에 대한 체크섬(checksum) 및 복제로그(300)상에서 복제데이터가 어느 위치까지 저장되어 있는가에 대한 정보를 포함할 수 있다.
이때, 복제로그(300)가 포함하는 각 파일들(330 및 340)의 크기가 고정되어 있기 때문에 복제 상에서 임의의 메시지의 위치를 숫자로 나타낼 수 있다. 이 숫자를 로그 시퀀스 넘버(Log Sequence Number, LSN)라 부를 수 있다. 복제로그(300)가 포함하는 파일들(330 및 340)의 이름은 데이터 부분이 시작하는 LSN으로 정의될 수 있다. 따라서, 임의의 메시지의 위치를 나타내는 LSN이 복제로그(300)의 어느 파일의 어느 위치에 저장되어 있는지 역으로 파악이 가능해진다.
복제로그(300)에 저장되는 데이터는 복제로그(300)와 동일한 저장부에 포함된 클라이언트 라이브러리에 의해 요청된 연산 전송의 목적 이외에 복제 프로토콜 상의 메시지를 포함할 수 있다. 아래 표 1은 복제로그(300)에 저장되는 데이터에 대한 정보를 나타내고 있다.
메시지 타입 필드 설명
REP_DATA ·NID: 리플리케이터의 식별자
·LENGTH: 연산 길이
·DATA: 연산 데이터
DATA 필드 값이 연산의 내용임.
REP_COMMIT ·COMMIT_LSN: 수용된 LSN 복제 프로토콜에서 가용성이 확보된 복제로그의 일련번호를 나타내며, COMMIT_LSN에 명시된 LSN 부분까지 메모리저장소에서 수행됨.
도 4는 본 발명의 일실시예에 있어서, 클러스터 데이터 분할 방식의 예를 도시한 도면이다. 본 발명의 실시예들에서는 키(key)와 값(value)으로 식별되는 저장소(파티션 그룹 서버)를 가정한다. 설정 마스터(120)는 데이터 분산 방식에 대한 정보로서 파티션 넘버(partition number), 파티션 그룹 및 파티선 그룹 서버에 대한 정보를 유지할 수 있다.
파티션 넘버: 파티션 넘버 또는 슬롯 넘버(slot number)는 키 값에 해당하는 데이터가 저장된 파티션 그룹을 식별하기 위한 값을 의미할 수 있다. 예를 들어, 키 값에 대해 해쉬 함수(일례로, 도 4의 CRC16() 함수)의 값을 구하고, 이 값에 특정 값으로 모듈러(modular) 연산(도 4의 "%")을 적용한 결과값을 파티션 넘버 또는 슬롯 넘버라고 할 수 있다. 보다 구체적인 예로, 도 4에서와 같이 모듈러 연산에 적용되는 특정 값이 8192라면, 파티션 넘버는 0과 8191 사이의 값이 될 수 있다. 이 과정을 통해 모든 키들은 파티션 넘버로 분류될 수 있다.
파티션 그룹: 전체 파티션 넘버는 파티션 그룹 중복 없이 나뉘어 매칭될 수 있다. 예를 들어, 특정 파티션 넘버는 하나의 파티션 그룹에만 속하게 되며(하나의 파티션 그룹이 복수의 파티션 넘버를 포괄할 수는 있음), 파티션 그룹 전체는 파티션 넘버 전체를 포괄할 수 있다.
파티션 그룹 서버: 특정 파티션 그룹에 속하는 키와 값을 저장하는 저장소로서, 하나의 파티션 그룹에는 둘 이상의 파티션 그룹 서버가 복제 관계로 구성되어 일관성 및 가용성이 보장될 수 있다.
다시 도 1을 참조하면, 클러스터(130)가 포함하는 게이트웨이들 각각은 초기 구동 시 설정 마스터(120)와 연동하여 클러스터(130)의 데이터 분할 정보를 얻어올 수 있다. 이러한 데이터 분할 정보는 게이트웨이에 의해 임의로 변경되지 않으며, 파티션 그룹 서버 또는 게이트웨이의 업그레이드나 클러스터(130)의 확장/축소 시에 설정 마스터(120)의 주도 하에 변경될 수 있다.
도 5는 본 발명의 일실시예에 있어서, 설정 마스터의 구조의 예를 도시한 도면이다.
수집부(510)는 클러스터(130)의 형상 정보를 저장하고, 클러스터(130)의 상태 정보에 대한 변경 사항을 저장 및 수집하는 과정과 클러스터 컨트롤러(520)의 리더(521)를 선출하는데 과정이 이용될 수 있다. 이러한 수집부(510)는 앙상블(ensemble)로 구성되어 하나의 프로세스에 장애가 생기더라도 서비스의 중단이 없도록 구성될 수 있다.
클러스터 컨트롤러(520)에는 복수의 프로세스가 기동될 수 있으며, 복수의 프로세스들 중 리더(521)로 선출된 프로세스가 수집부(510)에 저장된 데이터의 변경 및 클러스터(130)의 형상 정보를 변경할 수 있다. 장애 등의 이유로 리더(521)가 비가용 상태에 빠진 경우에는 복수의 프로세스들 중 나머지 프로세스들인 팔로어들(522 및 523) 중에서 새로운 리더가 선출될 수 있다.
HB(Heart Beat, 530)는 클러스터(130)의 구성요소인 파티션 그룹 서버들이 가용한 상태인지 여부를 감시하는 프로세스들일 수 있다. 하나의 HB 프로세스는 네트워크 단절 등의 환경적 요인에 의해서 파티션 그룹 서버들의 상태를 잘못 판단한 가능성이 존재하기 때문에 복수의 HB 프로세스들이 이용될 수 있다.
장애 내구성을 지닌 클러스터의 상태 감시
본 발명의 실시예들에서 장애 내구성을 지닌 클러스터(130)의 상태 감시는, HB(530)에 의한 파티션 그룹 서버의 상태에 대한 의견 등록 과정과 리더(521)에 의한 파티션 그룹 서버에 대한 확정 과정으로 구성될 수 있다.
도 6은 본 발명의 일실시예에 있어서, HB에 의한 파티션 그룹 서버의 상태에 대한 의견 등록 과정의 예를 도시한 도면이고, 도 7은 본 발명의 일실시예에 있어서, 리더에 의한 상태 확정 과정의 예를 도시한 도면이다.
도 6을 참조하면, 각 HB 프로세스들(HB 1, HB 2 및 HB 3)은 감시 대상인 파티션 그룹 서버(PGS)에 응용 수준의 핑(ping)/퐁(pong) 메시지들(HB 메시지)를 통해 대상 파티션 그룹 서버(PGS)가 가용한 상태인지 아닌지를 판단할 수 있다. 예를 들어, 파티션 그룹 서버(PGS)에서 "1. 시스템 에러"가 발생하면, 각 HB 프로세스들(HB 1, HB 2 및 HB 3)은 HB 메시지를 통해 해당 파티션 그룹 서버(PGS)에 대한 "2. 장애 탐지"를 통해 대상 파티션 그룹 서버(PGS)가 가용한 상태인지 여부를 판단할 수 있다.
HB 메시지에는 대상 파티션 그룹 서버(PGS)의 버전 정보가 포함될 수 있다. 이때, 해당 버전 정보는 형상 변경이 일어날 때마다 단조 증가하는 상태로 구성될 수 있다. 예를 들어, (파티션 그룹 서버의 구동 시간, 형상 변경 횟수) 형태의 값을 유지함으로써, 단조 증가하는 상태로 구성되는 버전 정보를 유지할 수 있다.
수집부(510)의 "ZNODE"로 저장된 파티션 그룹 서버의 상태 값과 각 HB가 판단하는 파티션 그룹 서버의 상태 값이 서로 다른 경우, 대상 "ZNODE"의 하위 "ZNODE"로 HB가 판단한 의견을 등록할 수 있다. 여기서, HB가 판단한 의견은, HB가 파티션 그룹 서버의 상태에 대해 판단한 파티션 그룹 서버의 상태에 대한 정보일 수 있다. HB가 판단한 파티션 그룹 서버의 상태 값은, "ZNODE"로 저장된 파티션 그룹 서버의 상태 값의 후보로서 등록되어 이후 파티션 그룹 서버의 상태를 최종적으로 결정하기 위해 이용될 수 있다.
도 7을 참조하면, 리더(521)는 파티션 그룹 서버에 해당되는 "ZNODE"를 수집부(510)의 와치 기능을 이용하여 감시할 수 있다. 해당 "ZNODE"에 새로운 자식 "ZNODE"가 등록된 경우, 리더(521)는 해당 "ZNODE"에 새로운 자식 "ZNODE"가 등록되었음을 수집부(510)에 의해 통보 받고, 자식 "ZNODE"를 읽어서 HB가 판단하는 파티션 그룹 서버의 상태를 알아낼 수 있다.
리더(521)는 HB에 의해 등록된 파티션 그룹 서버의 상태에 대한 의견을 취합하여 현재 파티션 그룹 서버의 상태를 결정할 수 있다. 의견을 취합하여 상태를 결정하는 방식의 예로는 다수결의 원칙이 이용될 수 있다. 예를 들어, 3 개의 HB가 존재한다고 가정하면, 2개 이상의 HB에서 파티션 그룹 서버의 상태에 대해 동일한 의견이 생성된 경우, 해당 의견에 대한 상태를 현재 파티션 그룹 서버의 상태로 결정할 수 있다.
이러한 방식을 통해 하나의 HB 프로세스가 네트워크 단절이나 OS 장애 등의 이유로 상태감시를 수행하지 못하는 상황에서도 안정적으로 대상 파티션 그룹 서버에 대한 상태 감시를 수행할 수 있다.
장애 내구성을 지닌 클러스터의 형상 변경
도 5를 통해 설명한 클러스터 컨트롤러(520)는 복수의 인스턴스로 구성될 수 있다. 예를 들어, 복수의 클러스터 컨트롤러들이 구성될 수 있다. 이때, 하나의 클러스터 컨트롤러만이 리더의 역할을 하는 리더 클러스터 컨트롤러(일례로, 도 5의 리더(521))가 될 수 있고, 나머지 클러스터 컨트롤러는 리더의 비가용 상황에 대비하기 위해 존재하는 팔로어 클러스터 컨트롤러(일례로, 도 5의 팔로어(522 및 523))가 될 수 있다. 리더 클러스터 컨트롤러에 장애가 발생한 경우, 도 5를 통해 설명한 수집부(510)의 리더 선출 방식을 이용하여 팔로어 클러스터 컨트롤러 중 하나를 리더 클러스터 컨트롤러로 선출할 수 있다.
클러스터(130)에 대한 상태 감시의 결과로 파티션 그룹 서버의 가용/비가용 상태가 결정된 이후 리더 클러스터 컨트롤러는 해당 파티션 그룹 서버의 상태 변화의 결과에 따라 클러스터(130)의 형상 변경을 수행할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 클러스터의 형상 변경 과정의 예를 도시한 흐름도이다.
단계(810)에서 설정 마스터(120)는 대상 파티션 그룹 서버가 비가용 상태이고, 복제 상의 마스터 역할을 수행하는 파티션 그룹 서버인 경우, 슬레이브 역할을 수행하는 파티션 그룹 서버들 중에서 하나의 역할을 마스터로 변경할 수 있다. 다시 말해, 설정 마스터(120)는 슬레이브 역할을 수행하는 파티션 그룹 서버들 중에서 마스터 역할을 대신 수행하기 위한 파티션 그룹 서버를 선출할 수 있다(master election).
단계(820)에서 설정 마스터(120)는 대상 파티션 그룹 서버가 비가용 상태이고, 복제 상의 슬레이브의 역할을 수행하는 파티션 그룹 서버인 경우, 마스터 역할을 수행하는 파티션 그룹 서버의 정족수(quorum) 값을 조정할 수 있다. 이때, 정족수 값이 조정된 파티션 그룹 서버는 비가용 상태가 된 슬레이브로부터의 응답을 기다리지 않게 된다. 이러한 정족수 값은, 동일한 파티션 그룹의 파티션 그룹 서버들이 각각 포함하는 복제로그에 대해, 복제로그의 가용성이 복제 팩터(factor)만큼 유지될 수 있도록 몇 개의 슬레이브에 요청된 연산이 안전하게 복제로그에 남아 있는가를 나타내는 복제 팩터의 값일 수 있다.
단계(830)에서 설정 마스터(120)는 대상 파티션 그룹 서버가 가용 상태이고, 이전 상태가 비가용 상태인 경우, 현재 복제 그룹에 해당 파티션 그룹 서버를 포함시키는 작업을 수행할 수 있다(슬레이브 조인(slave join)).
도 9는 본 발명의 일실시예에 있어서, 클러스터 관리 방법을 도시한 흐름도이다. 본 실시예에 따른 클러스터 관리 방법은, 복수의 저장소를 포함하는 데이터 저장 시스템에 의해 수행될 수 있다. 여기서, 데이터 저장 시스템은 도 1을 통해 설명한 데이터 저장 시스템(100)에 대응될 수 있다.
또한, 복수의 저장소는 도 1을 통해 설명한 복수의 파티션 그룹에 대응될 수 있다. 이러한 복수의 저장소 각각은, 서로 복제 관계를 갖는 복수의 복제 저장소들을 포함할 수 있다. 여기서, 복수의 복제 저장소들은 동일한 파티션 그룹에 포함된 파티션 그룹 서버들에 대응될 수 있다. 또한, 데이터 저장 시스템은 수집부, 복수의 감지부들 및 클러스터 컨트롤러를 포함하는 설정 마스터를 포함할 수 있다. 수집부, 복수의 감지부들 및 클러스터 컨트롤러는 도 5를 통해 설명한 수집부(510), HB(530) 및 클러스터 컨트롤러(520)에 각각 대응될 수 있다.
단계(910)에서 수집부는, 복수의 복제 저장소들 각각의 상태를 저장할 수 있다.
단계(920)에서 복수의 감지부들 각각은, 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 결정할 수 있다.
단계(930)에서 수집부는, 감지 대상인 복제 저장소의 결정된 상태가 수집부에서 저장된 상태와 서로 다른 경우, 수집부에 저장된 상태의 후보로서 감지 대상인 복제 저장소의 결정된 상태를 등록할 수 있다.
단계(940)에서 클러스터 컨트롤러는, 수집부에서 저장된 상태의 후보로서 등록된 상태에 기반하여 감지 대상인 복제 저장소의 상태를 최종적으로 결정할 수 있다. 예를 들어, 클러스터 컨트롤러는 단계(940)에서 후보로서 등록된 상태들에 대한 다수결 원칙에 따라, 감지 대상인 복제 저장소의 상태를 최종적으로 결정할 수 있다.
클러스터 컨트롤러는, 리더(leader) 및 적어도 하나의 팔로어(follower)를 포함할 수 있고, 리더에 의해 감지 대상인 복제 저장소의 상태를 최종적으로 결정될 수 있다. 만약, 리더가 비가용 상태로 결정되는 경우, 적어도 하나의 팔로어들 중에서 새로운 리더가 선출될 수 있다.
이와 같이, 복제 저장소의 상태를 결정하는 방법은 도 6 및 도 7을 통해 이미 자세히 설명한 바 있다.
다른 실시예로, 클러스터 관리 방법은 도 9에 나타난 단계들(910 내지 940) 외에, 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 감지 대상인 복제 저장소가 복제 관계에서 마스터 역할을 수행하는 복제 저장소인 경우, 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소들 중 하나의 역할을 마스터로 변경하는 단계(미도시)를 더 포함할 수 있다.
또 다른 실시예로, 클러스터 관리 방법은 도 9에 나타난 단계들(910 내지 940) 외에, 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 감지 대상인 복제 저장소가 상기 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소인 경우, 마스터 역할을 수행하는 복제 저장소가 비가용 상태의 복제 저장소로부터의 응답을 기다리지 않도록 마스터 역할을 수행하는 복제 저장소의 정족수(quorum) 값을 조정하는 단계(미도시)를 더 포함할 수 있다. 여기서, 정족수 값은, 요청된 연산이 남아 있는 슬레이브 역할을 수행하는 복제 저장소의 수를 나타낼 수 있다.
또 다른 실시예로, 클러스터 관리 방법은 도 9에 나타난 단계들(910 내지 940) 외에, 감지 대상인 복제 저장소의 상태가 가용 상태에고, 감지 대상인 복제 저장소의 이전 상태가 비가용 상태인 경우, 감지 대상인 복제 저장소를 복제 관계에 추가하는 단계(미도시)를 더 포함할 수 있다.
상술한 미도시 단계들은, 클러스터 컨트롤러에 의해 수행될 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 데이터가 저장되는 클러스터의 구성 개체인 복제 저장소의 가용/비가용 상태를 조회 및 판단할 수 있고, 복제 저장소의 장애 발생 시 복제 저장소가 속한 저장소의 복제 관계를 재설정할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 복수의 저장소 및 설정 마스터를 포함하는 데이터 저장 시스템의 클러스터 관리 방법에 있어서,
    상기 복수의 저장소 각각은, 서로 복제 관계를 갖는 복수의 복제 저장소들을 포함하고, 상기 설정 마스터는, 수집부, 복수의 감지부들 및 클러스터 컨트롤러를 포함하고,
    상기 수집부에서 상기 복수의 복제 저장소들 각각의 상태를 저장하는 단계;
    상기 복수의 감지부들 각각에서 상기 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 결정하는 단계;
    상기 결정된 상태가 상기 수집부에서 저장된 상태와 서로 다른 경우, 상기 저장된 상태의 후보로서 상기 결정된 상태를 등록하는 단계; 및
    상기 클러스터 컨트롤러에서 상기 수집부에 저장된 상태의 후보로서 등록된 상태에 기반하여 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 단계
    를 포함하는 것을 특징으로 하는 클러스터 관리 방법.
  2. 제1항에 있어서,
    상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 단계는,
    상기 후보로서 등록된 상태들에 대한 다수결 원칙에 따라, 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 것
    을 특징으로 하는 클러스터 관리 방법.
  3. 제1항에 있어서,
    상기 클러스터 컨트롤러는, 리더(leader) 및 적어도 하나의 팔로어(follower)를 포함하고,
    상기 리더가 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하고,
    상기 리더가 비가용 상태인 경우, 상기 적어도 하나의 팔로어들 중에서 새로운 리더가 선출되는 것
    을 특징으로 하는 클러스터 관리 방법.
  4. 제1항에 있어서,
    상기 클러스터 컨트롤러에서, 상기 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 상기 감지 대상인 복제 저장소가 상기 복제 관계에서 마스터 역할을 수행하는 복제 저장소인 경우, 상기 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소들 중 하나의 역할을 마스터로 변경하는 단계
    를 더 포함하는 것을 특징으로 하는 클러스터 관리 방법.
  5. 제1항에 있어서,
    상기 클러스터 컨트롤러에서, 상기 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 상기 감지 대상인 복제 저장소가 상기 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소인 경우, 마스터 역할을 수행하는 복제 저장소가 상기 비가용 상태의 복제 저장소로부터의 응답을 기다리지 않도록 상기 마스터 역할을 수행하는 복제 저장소의 정족수(quorum) 값을 조정하는 단계
    를 더 포함하고,
    상기 정족수 값은, 요청된 연산이 남아 있는 슬레이브 역할을 수행하는 복제 저장소의 수를 나타내는 것을 특징으로 하는 클러스터 관리 방법.
  6. 제1항에 있어서,
    상기 클러스터 컨트롤러에서, 상기 감지 대상인 복제 저장소의 상태가 가용 상태이고, 상기 감지 대상인 복제 저장소의 이전 상태가 비가용 상태인 경우, 상기 감지 대상인 복제 저장소를 상기 복제 관계에 추가하는 단계
    를 더 포함하는 것을 특징으로 하는 클러스터 관리 방법.
  7. 제1항 내지 제6항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  8. 데이터 저장 시스템에 있어서,
    서로 복제 관계를 갖는 복수의 복제 저장소들을 각각 포함하는 복수의 저장소;
    상기 복수의 복제 저장소들 각각의 상태를 저장하고, 복수의 감지부들 각각에서 결정된 복제 저장소의 상태가 상기 저장된 상태와 서로 다른 경우, 상기 저장된 상태의 후보로서 상기 결정된 상태를 등록하는 수집부;
    상기 복수의 복제 저장소들 중 감지 대상인 복제 저장소의 상태를 각각 결정하는 상기 복수의 감지부들; 및
    상기 수집부에 저장된 상태의 후보로서 등록된 상태에 기반하여 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 클러스터 컨트롤러
    를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  9. 제8항에 있어서,
    상기 클러스터 컨트롤러는,
    상기 후보로서 등록된 상태들에 대한 다수결 원칙에 따라, 상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 것
    을 특징으로 하는 데이터 저장 시스템.
  10. 제8항에 있어서,
    상기 클러스터 컨트롤러는,
    상기 감지 대상인 복제 저장소의 상태를 최종적으로 결정하는 리더(leader); 및
    적어도 하나의 팔로어(follower)
    를 포함하고,
    상기 리더가 비가용 상태인 경우, 상기 적어도 하나의 팔로어들 중에서 새로운 리더가 선출되는 것
    을 특징으로 하는 데이터 저장 시스템.
  11. 제8항에 있어서,
    상기 클러스터 컨트롤러는,
    상기 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 상기 감지 대상인 복제 저장소가 상기 복제 관계에서 마스터 역할을 수행하는 복제 저장소인 경우, 상기 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소들 중 하나의 역할을 마스터로 변경하는 것
    을 특징으로 하는 데이터 저장 시스템.
  12. 제8항에 있어서,
    상기 클러스터 컨트롤러는,
    상기 감지 대상인 복제 저장소의 상태가 최종적으로 비가용 상태로 결정되고, 상기 감지 대상인 복제 저장소가 상기 복제 관계에서 슬레이브 역할을 수행하는 복제 저장소인 경우, 마스터 역할을 수행하는 복제 저장소가 상기 비가용 상태의 복제 저장소로부터의 응답을 기다리지 않도록 상기 마스터 역할을 수행하는 복제 저장소의 정족수(quorum) 값을 조정하고,
    상기 정족수 값은, 요청된 연산이 남아 있는 슬레이브 역할을 수행하는 복제 저장소의 수를 나타내는 것
    을 특징으로 하는 데이터 저장 시스템.
  13. 제8항에 있어서,
    상기 클러스터 컨트롤러는,
    상기 감지 대상인 복제 저장소의 상태가 가용 상태이고, 상기 감지 대상인 복제 저장소의 이전 상태가 비가용 상태인 경우, 상기 감지 대상인 복제 저장소를 상기 복제 관계에 추가하는 것
    을 특징으로 하는 데이터 저장 시스템.
KR1020140113561A 2014-08-28 2014-08-28 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템 KR101750601B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140113561A KR101750601B1 (ko) 2014-08-28 2014-08-28 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140113561A KR101750601B1 (ko) 2014-08-28 2014-08-28 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템

Publications (2)

Publication Number Publication Date
KR20160025995A KR20160025995A (ko) 2016-03-09
KR101750601B1 true KR101750601B1 (ko) 2017-06-27

Family

ID=55536468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140113561A KR101750601B1 (ko) 2014-08-28 2014-08-28 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템

Country Status (1)

Country Link
KR (1) KR101750601B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102216308B1 (ko) * 2018-12-31 2021-02-16 주식회사 포스코아이씨티 스마트팩토리 플랫폼을 위한 클러스터링 구조의 인터페이스 미들웨어 시스템
CN113626280B (zh) * 2021-06-30 2024-02-09 广东浪潮智慧计算技术有限公司 集群状态控制方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277467A (ja) 2009-05-29 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
JP2011210107A (ja) 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2013206072A (ja) 2012-03-28 2013-10-07 Nec Corp データ整合システム、データ整合方法およびデータ整合プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277467A (ja) 2009-05-29 2010-12-09 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
JP2011210107A (ja) 2010-03-30 2011-10-20 Nippon Telegr & Teleph Corp <Ntt> メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
JP2013206072A (ja) 2012-03-28 2013-10-07 Nec Corp データ整合システム、データ整合方法およびデータ整合プログラム

Also Published As

Publication number Publication date
KR20160025995A (ko) 2016-03-09

Similar Documents

Publication Publication Date Title
US10209893B2 (en) Massively scalable object storage for storing object replicas
US9898521B2 (en) Massively scalable object storage system
US9201742B2 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
EP2498476B1 (en) Massively scalable object storage system
US8918392B1 (en) Data storage mapping and management
US8832234B1 (en) Distributed data storage controller
US9235606B1 (en) Simplified database/log backup and restore
US9934242B2 (en) Replication of data between mirrored data sites
US8510267B2 (en) Synchronization of structured information repositories
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US8930364B1 (en) Intelligent data integration
JP5548829B2 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
US20180004777A1 (en) Data distribution across nodes of a distributed database base system
GB2495079A (en) Live migration of applications and file systems in a distributed system
CN107430603A (zh) 大规模并行处理数据库的系统和方法
JP2010186472A (ja) スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
WO2014205847A1 (zh) 一种分区平衡子任务下发方法、装置与系统
US11003550B2 (en) Methods and systems of operating a database management system DBMS in a strong consistency mode
KR101527634B1 (ko) 샤딩 서비스를 제공하는 방법 및 장치
KR101750601B1 (ko) 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템
CN110858168A (zh) 集群节点故障处理方法、装置及集群节点
US10970177B2 (en) Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS
US10732860B2 (en) Recordation of an indicator representing a group of acknowledgements of data write requests

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