KR102402709B1 - 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법 - Google Patents

컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법 Download PDF

Info

Publication number
KR102402709B1
KR102402709B1 KR1020200144198A KR20200144198A KR102402709B1 KR 102402709 B1 KR102402709 B1 KR 102402709B1 KR 1020200144198 A KR1020200144198 A KR 1020200144198A KR 20200144198 A KR20200144198 A KR 20200144198A KR 102402709 B1 KR102402709 B1 KR 102402709B1
Authority
KR
South Korea
Prior art keywords
snapshot
information
cluster
controller
order
Prior art date
Application number
KR1020200144198A
Other languages
English (en)
Other versions
KR20220059053A (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 KR1020200144198A priority Critical patent/KR102402709B1/ko
Publication of KR20220059053A publication Critical patent/KR20220059053A/ko
Application granted granted Critical
Publication of KR102402709B1 publication Critical patent/KR102402709B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

본 발명은 대규모 컨테이너 서비스 기반의 고속 스냅샷 기술에 관한 것으로서, 일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러는 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 스냅샷 오더 매니저, 상기 결정된 순서에 따라 스냅샷을 생성하는 스냅샷 스케쥴러, 및 상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 기록하는 스냅샷 데이터베이스를 포함한다.

Description

컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법{High-speed snapshot controller and method for container cluster-based backup recovery}
본 발명은 시스템 성능을 향상시키는 클러스터링을 기술에 관한 것으로서, 보다 상세하게는 대규모 컨테이너 서비스 기반의 고속 스냅샷 기술에 관한 것이다.
일반적으로 대규모의 운영환경에서는 이중화를 위해 여러 대의 물리 호스트로 서버를 구성한다. 또한 클라우드 환경에서는 시스템 규모가 큰 경우, 여러 대의 가상 서버(인스턴스)를 구성하여 이를 한 번에 관리할 수 있어야 한다.
기간계 시스템과 미션 크리티컬한 시스템에는 장애가 발생하게 되면 사업 기회를 놓치는 것뿐만 아니라 기업의 신용도가 크게 하락될 수 있다. 그래서 시스템 일부에 장애가 발생하더라도 시스템 전체에 영향을 미치지 않도록 인프라를 구성해야만 한다.
이처럼 만일의 사태 발생 시, 시스템이 정지하지 않도록 하는 기술이 바로 클러스터링이다. 클러스터링이란 여러 대의 서버와 하드웨어를 1대처럼 묶는 기술로서, 클러스터링을 구축하면 시스템 성능을 향상시킬 수 있다.
클러스터링과 관련된 용어 중, 가용성이란 시스템이 연속적으로 가동할 수 있는 능력을 의미한다. 서버 에러나 하드웨어에 장애가 발생하여도 다른 정상 서버나 하드웨어로 전환되어 기존 처리가 이어질 수 있기 때문에 높은 신뢰성을 제공할 수 있다.
또한, 높은 부하로 시스템이 다운되는 것을 피하기 위해 여러 컴퓨터를 클러스터링으로 구축 및 분산하여 신뢰성을 높일 수 있다. 클라우드 가상 서버는 오토 스케일 기능을 제공하는 경우도 있다. 도커에서는 한 대가 아닌 여러 대의 호스트 머신 위에서 도커를 구동시켜 높은 가용성 및 확장성을 가진 애플리케이션 실행 환경을 구축할 수 있다
이처럼 멀티 호스트 환경에서 컨테이너를 클러스터링하는 다양한 툴들이 개발되고 있고, 멀티 호스트 환경에서 컨테이너를 구동하는 경우를 대비하여 컨테이너 장애나 호스트 머신 상태 등을 모니터링하기 위한 기술이 연구 개발되고 있는 추세이다.
쿠버네티스(Kubernetes)는 디플로이 자동화, 스케일링, 컨테이너화된 애플리케이션의 관리를 위한 오픈 소스 시스템으로서 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있다. 쿠버네티스의 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공하기 위함이다. 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작한다.
근래에는 이러한 쿠버네티스를 활용하는 다양한 시스템이 개발되고 있는 추세이다.
한편, 컴퓨팅 하드웨어의 고도화는 중소형 디바이스의 성능을 향상시키고 있으며, 클라우드 서버에서 전담으로 처리하던 지능 기능이 에지 서버로 이동하는 비집중화(Decentralization) 현상으로 이어진다. 이는 더 작은 규모의 사물에도 지능이 존재할 수 있는 흐름이 진행되고 있다는 것이다. 이러한 추세로 인해, 문제 해결을 위해 기존의 중앙 집중형 지능보다는 분산형 지능을 활용하는 경향으로 바뀌어 가고 있다. 인공지능의 다음 진화 방향은 분산되고 자율적인 분산지능이 힘을 합쳐서 고도의 지능을 발휘하는 협력 지능이 될 것으로 예측된다.
분산 지능은 한 곳에서 풀기 어려운 복잡계 문제를 지능을 가지고 있는 에이전트를 분산시켜서 해결하는 기술로서, 국지적인 정보를 통해 국지적 최적화를 수행하고, 이러한 결과들이 전역적인 최적화 효과를 달성하는 형태로 문제를 해결할 수 있다.
한국등록특허 제10-1137299호 "스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리" 한국등록특허 제10-1626067호 "슬레이브 노드들 사이에서 컨테이너의 이전을 용이하게 하기 위한 장치 및 방법" 한국공개특허 제10-2016-0138448호 "통합 네트워크 및 스토리지를 위한 방법 및 시스템"
본 발명은 대규모 컨테이너 서비스 기반 고속 스냅샷 기술을 설계하는 것을 목적으로 한다.
본 발명은 클러스터 기반 스냅샷 생성 및 이력관리 설계를 제공하는 것을 목적으로 한다.
본 발명은 시스템 복구를 위한 스냅샷 정보(volume key, container info) 및 스케줄링 정책 관리 모듈 설계하는 것을 목적으로 한다.
본 발명은 스냅샷의 최소 단위를 서비스 구성하여 전체 스냅샷 대비 고성능 백업과 복구 지원하는 것을 목적으로 한다.
본 발명은 대용량 볼륨 스냅샷의 클러스터 로컬 저장으로 네트워크 비용 절감하는 것을 목적으로 한다.
일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러는 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 스냅샷 오더 매니저, 상기 결정된 순서에 따라 스냅샷을 생성하는 스냅샷 스케쥴러, 및 상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 기록하는 스냅샷 데이터베이스를 포함한다.
일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러는 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 리커버리 처리부를 더 포함할 수 있다.
일실시예에 따른 클러스터는, 서비스들에 대한 그룹 정보와, 그룹 정보에 대한 스냅샷 오더에 따라, CSI(Container Storage Interface)를 제어하여 각 그룹별 스냅샷을 생성하는 스냅샷 오더 프로세서와, 상기 생성된 그룹별 스냅샷을 저장하는 볼륨 스냅샷 데이터베이스를 포함할 수 있다.
일실시예에 따른 상기 생성된 스냅샷에 대한 스냅샷 정보는, 콘테이너 이름, 메타 데이터, 생성일, 볼륨 스냅샷 키를 포함할 수 있다.
일실시예에 따른 상기 생성된 스냅샷에 대한 스냅샷 인덱스는, 스냅샷에 대한 키 값, 상기 키 값에 상응하는 밸류 값을 포함할 수 있다.
일실시예에 따른 상기 스케쥴 정보는, 키 값, 날짜, 딜레이, 볼륨 회복 크기를 포함할 수 있다.
일실시예에 따른 부분 서비스 단위 처리로 스냅샷을 생성하는 스냅샷 콘트롤러가 포함된 고속 스냅샷 콘트롤러의 동작 방법은 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 단계, 상기 결정된 순서에 따라 스냅샷을 생성하는 단계, 및 상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하는 단계를 포함할 수 있다.
일실시예에 따른 부분 서비스 단위 처리로 스냅샷을 생성하는 스냅샷 콘트롤러가 포함된 고속 스냅샷 콘트롤러의 동작 방법은 상기 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 단계를 더 포함할 수 있다.
일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 프로그램은 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 명령어 세트, 상기 결정된 순서에 따라 스냅샷을 생성하는 명령어 세트, 상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하는 명령어 세트, 및 상기 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 명령어 세트를 포함할 수 있다.
일실시예에 따르면, 대규모 컨테이너 서비스 기반 고속 스냅샷 기술을 설계할 수 있다.
일실시예에 따르면, 클러스터 기반 스냅샷 생성 및 이력관리 설계를 제공할 수 있다.
일실시예에 따르면, 시스템 복구를 위한 스냅샷 정보(volume key, container info) 및 스케줄링 정책 관리 모듈 설계할 수 있다.
일실시예에 따르면, 스냅샷의 최소 단위를 서비스 구성하여 전체 스냅샷 대비 고성능 백업과 복구 지원할 수 있다.
일실시예에 따르면, 대용량 볼륨 스냅샷의 클러스터 로컬 저장으로 네트워크 비용 절감할 수 있다.
도 1은 컨테이너 플랫폼 간 서비스 고속 이동 및 배치 기술을 위한 전체 시스템을 설명하는 도면이다.
도 2 및 3은 서비스 스냅샷 및 볼륨 스냅샷 분리 구조를 설명하는 도면이다.
도 4는 일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러를 설명하는 도면이다.
도 5는 일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러의 동작 방법을 설명하는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 컨테이너 플랫폼 간 서비스 고속 이동 및 배치 기술을 위한 전체 시스템(100)을 설명하는 도면이다.
전체 시스템(100)은 스냅샷 매니저를 이용하여 각 클러스터들(클러스터A, 클러스터B, 클러스터C)에 대한 복원이나 이동 등을 위해 각 클러스터들이 처리하는 서비스에 대한 스냅샷을 생성할 수 있다.
이를 위해, 스냅샷 매니저는 스냅샷 스케쥴러, 스냅샷 오퍼레이터, 스냅샷 구성 크리에이터, 스냅샷/리커버리 세트를 포함할 수 있다.
스냅샷 매니저는 대규모 컨테이너 스냅샷 속도 향상을 통한 고성능 복제/복구 지원이 가능하다. 또한, 스냅샷 매니저는 다양한 단위(전체, 서비스, 그룹 등) 스냅샷 기능 제공으로 백업과 복구 속도 향상도 가능하며, CSI 인터페이스를 통해 다양한 Persistent Volume 스냅샷을 지원할 수 있다.
뿐만 아니라, 스냅샷 매니저는 대용량 볼륨의 스냅샷 성능 저하 방지를 위한 클러스터 로컬 저장 방식 적용하고, 스냅샷 메타정보 고속 제공을 위한 분산 etcd 저장소 기반 구현이 가능하다.
스냅샷 스케쥴러는 API와 구성 매니저로부터 데이터를 수집하여 특정 클러스터에 대한 스냅샷을 스케쥴링 할 수 있다. 스냅샷 오퍼레이터는 각 클러스터에 대한 스냅샷을 생성하는 것으로서, 서비스를 촬영하여 서비스들의 구성에 대한 스냅샷을 생성할 수 있다. 또한, 스냅샷 구성 크리에이터는 스냅샷 구성 정보를 생성하고, 스냅샷/리커버리 세트에 기록하도록 제어할 수 있다.
도 2 및 3은 서비스 스냅샷 및 볼륨 스냅샷 분리 구조를 설명하는 도면이다.
도 2는 서비스 스냅샷 동작 과정(200)을 나타내고, 도 3은 볼륨 스냅샷 동작 과정(300)을 나타낸다.
먼저 도 2를 참고하면, 본 발명은 서비스에 따른 스냅샷을 생성하기 위해, 우선 서비스들에 대한 리소스 메타데이터를 획득할 수 있다(201).
또한, 본 발명은 서비스들에 대한 리소스 정보를 획득하고(202), 리소스 스냅샷을 Etcd DB에 저장할 수 있다(203).
다음으로, 도 3을 참고하면, 본 발명은 서비스에 따른 스냅샷을 생성하기 위해, 우선 볼륨들에 대한 볼륨 스냅샷을 요청할 수 있다(301).
또한, 본 발명은 볼륨에 대한 스냅샷을 획득(302)하고, 획득한 볼륨 스냅샷을 CSI노드를 통해 볼륨 스냅샷 데이터베이스에 저장할 수 있다(303).
도 4는 일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러(400)를 설명하는 도면이다.
일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러(400)는 규모 컨테이너 서비스 기반 고속 스냅샷 기술을 설계할 수 있다. 또한, 클러스터 기반 스냅샷 생성 및 이력관리 설계를 제공할 수 있고, 시스템 복구를 위한 스냅샷 정보(volume key, container info) 및 스케줄링 정책 관리 모듈 설계할 수 있다. 뿐만 아니라, 스냅샷의 최소 단위를 서비스 구성하여 전체 스냅샷 대비 고성능 백업과 복구 지원할 수 있고, 대용량 볼륨 스냅샷의 클러스터 로컬 저장으로 네트워크 비용 절감할 수 있다.
이를 위해, 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러(400)는 스냅샷 오더 매니저(410), 스냅샷 스케쥴러(420), 스냅샷 데이터베이스(430), 및 리커버리 처리부(440)를 포함할 수 있다.
일실시예에 따른 스냅샷 오더 매니저(410)는 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리할 수 있다.
다음으로, 일실시예에 따른 스냅샷 스케쥴러(420)는 결정된 순서에 따라 스냅샷을 생성할 수 있다.
일실시예에 따른 스냅샷 데이터베이스(430)는 스냅샷 스케쥴러, 및 상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 기록할 수 있다.
일실시예에 따른 리커버리 처리부(440)는 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원할 수 있다.
한편, 클러스터는, 서비스들에 대한 그룹 정보와, 그룹 정보에 대한 스냅샷 오더에 따라, CSI(Container Storage Interface)를 제어하여 각 그룹별 스냅샷을 생성하는 스냅샷 오더 프로세서와, 생성된 그룹별 스냅샷을 저장하는 볼륨 스냅샷 데이터베이스를 포함할 수 있다.
스냅샷 오더는 타겟 서비스에 대한 정보로서, 도 4의 실시예에서는 서비스 #4,5를, 그룹 이름으로서 그룹#1, 스케쥴 정보로서 매달 1일을 스냅샷 생성일로 결정할 수 있다.
한편, 스냅샷 정보는 메타 데이터, 볼륨에 대한 정보를 포함하고, 스냅샷 정보에 기록될 수 있다.
스냅샷 정보에는 스냅샷에 대한 키 값고, 밸류 값이 매칭되어 기록될 수 있다. 또한, 스냅샷의 밸류에는 Container name, Meta-data (Yaml,), Create Date, Volume Snapshot key 등이 포함될 수 있다.
스냅샷 데이터베이스에 기록되는 스냅샷 스케쥴에는 스케쥴 인덱스가 기록될 수 있으며, 스케쥴 키에 대한 정보와 밸류가 매칭되어 기록될 수 있다.
또한, 스케쥴 인덱스는 스케쥴 정보와 연관되며, 스케쥴 정보에는 스케쥴에 대한 키 값과, 밸류가 연관지어 기록될 수 있다. 스케쥴에 대한 밸류로는 date, snapshot key, delay, Volume restore Size 등이 포함될 수 있다.
뿐만 아니라, 생성된 스냅샷에 대한 스냅샷 정보는, 콘테이너 이름, 메타 데이터, 생성일, 볼륨 스냅샷 키를 포함할 수 있다. 또한, 생성된 스냅샷에 대한 스냅샷 인덱스는, 스냅샷에 대한 키 값, 키 값에 상응하는 밸류 값을 포함할 수 있고, 스케쥴 정보는, 키 값, 날짜, 딜레이, 볼륨 회복 크기를 포함할 수 있다.
도 5는 일실시예에 따른 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러의 동작 방법을 설명하는 도면이다.
일실시예에 따른 스냅샷 콘트롤러의 동작 방법은 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고(단계 501), 결정된 순서에 따라 스냅샷을 생성할 수 있다(단계 502).
또한, 일실시예에 따른 스냅샷 콘트롤러의 동작 방법은 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하고(단계 503), 기록된 스냅샷 정보 및 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원할 수 있다(단계 504).
한편, 일실시예에 따른 스냅샷 콘트롤러의 동작 방법은 컴퓨터에서 실행이 가능한 프로그램의 형태로 구현될 수도 있다.
구체적으로, 컨테이너 클러스터 기반 백업 복구를 위한 프로그램은 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 결정된 순서를 관리하는 명령어 세트, 결정된 순서에 따라 스냅샷을 생성하는 명령어 세트, 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하는 명령어 세트, 및 기록된 스냅샷 정보 및 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 명령어 세트를 포함할 수 있다.
결국, 본 발명을 이용하면 규모 컨테이너 서비스 기반 고속 스냅샷 기술을 설계할 수 있다. 또한, 클러스터 기반 스냅샷 생성 및 이력관리 설계를 제공할 수 있고, 시스템 복구를 위한 스냅샷 정보(volume key, container info) 및 스케줄링 정책 관리 모듈 설계할 수 있다. 뿐만 아니라, 스냅샷의 최소 단위를 서비스 구성하여 전체 스냅샷 대비 고성능 백업과 복구 지원할 수 있고, 대용량 볼륨 스냅샷의 클러스터 로컬 저장으로 네트워크 비용 절감할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (9)

  1. 부분 서비스 단위 처리로 스냅샷을 생성하는 스냅샷 콘트롤러에 있어서,
    리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 스냅샷 오더 매니저;
    상기 결정된 순서에 따라 스냅샷을 생성하는 스냅샷 스케쥴러; 및
    상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 기록하는 스냅샷 데이터베이스
    를 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  2. 제1항에 있어서,
    상기 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 리커버리 처리부
    를 더 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  3. 제1항에 있어서,
    상기 클러스터는,
    서비스들에 대한 그룹 정보와, 상기 그룹 정보에 대한 스냅샷 오더에 따라, CSI(Container Storage Interface)를 제어하여 각 그룹별 스냅샷을 생성하는 스냅샷 오더 프로세서; 및
    상기 생성된 그룹별 스냅샷을 저장하는 볼륨 스냅샷 데이터베이스
    를 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  4. 제1항에 있어서,
    상기 생성된 스냅샷에 대한 스냅샷 정보는,
    콘테이너 이름, 메타 데이터, 생성일, 볼륨 스냅샷 키를 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  5. 제1항에 있어서,
    상기 생성된 스냅샷에 대한 스냅샷 인덱스는,
    스냅샷에 대한 키 값, 상기 키 값에 상응하는 밸류 값을 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  6. 제1항에 있어서,
    상기 스케쥴 정보는,
    키 값, 날짜, 딜레이, 볼륨 회복 크기를 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러.
  7. 부분 서비스 단위 처리로 스냅샷을 생성하는 스냅샷 콘트롤러가 포함된 고속 스냅샷 콘트롤러의 동작 방법에 있어서,
    리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 단계;
    상기 결정된 순서에 따라 스냅샷을 생성하는 단계; 및
    상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하는 단계
    를 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 고속 스냅샷 콘트롤러의 동작 방법.
  8. 제7항에 있어서,
    상기 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 단계
    를 더 포함하는 컨테이너 클러스터 기반 백업 복구를 위한 고속 스냅샷 콘트롤러의 동작 방법.
  9. 리소스의 사용을 고려하여 클러스터에 대한 스냅샷 순서를 결정하고, 상기 결정된 순서를 관리하는 명령어 세트;
    상기 결정된 순서에 따라 스냅샷을 생성하는 명령어 세트;
    상기 생성된 스냅샷에 대한 스냅샷 정보, 스냅샷 인덱스, 및 스냅샷 스케쥴 정보를 스냅샷 데이터베이스에 기록하는 명령어 세트; 및
    상기 기록된 스냅샷 정보 및 상기 스냅샷 스케쥴 정보를 이용하여 컨테이너 클러스터를 복원하는 명령어 세트
    를 포함하는 컴퓨터 판독 가능한 저장 매체에 기록된 컨테이너 클러스터 기반 백업 복구를 위한 프로그램.
KR1020200144198A 2020-11-02 2020-11-02 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법 KR102402709B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200144198A KR102402709B1 (ko) 2020-11-02 2020-11-02 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200144198A KR102402709B1 (ko) 2020-11-02 2020-11-02 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법

Publications (2)

Publication Number Publication Date
KR20220059053A KR20220059053A (ko) 2022-05-10
KR102402709B1 true KR102402709B1 (ko) 2022-05-27

Family

ID=81591692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200144198A KR102402709B1 (ko) 2020-11-02 2020-11-02 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법

Country Status (1)

Country Link
KR (1) KR102402709B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626067B1 (ko) 2015-09-08 2016-05-31 주식회사 브이시스템즈 슬레이브 노드들 사이에서 컨테이너의 이전을 용이하게 하기 위한 장치 및 방법
US20180139148A1 (en) 2016-11-15 2018-05-17 Vmware, Inc. Distributed Resource Scheduling Based on Network Utilization
US20190065323A1 (en) 2017-08-25 2019-02-28 Vmware, Inc. Containerized application snapshots
US20190266056A1 (en) 2018-02-27 2019-08-29 Rubrik, Inc. Intelligent scheduling of backups
CN111008095A (zh) 2019-12-17 2020-04-14 山东超越数控电子股份有限公司 一种面向边缘云的状态快照生成和恢复方法
US20200285547A1 (en) 2019-03-04 2020-09-10 Cisco Technology, Inc. Intelligent snapshot generation and recovery in a distributed system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055864B2 (en) 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US20150254088A1 (en) 2014-03-08 2015-09-10 Datawise Systems, Inc. Methods and systems for converged networking and storage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626067B1 (ko) 2015-09-08 2016-05-31 주식회사 브이시스템즈 슬레이브 노드들 사이에서 컨테이너의 이전을 용이하게 하기 위한 장치 및 방법
US20180139148A1 (en) 2016-11-15 2018-05-17 Vmware, Inc. Distributed Resource Scheduling Based on Network Utilization
US20190065323A1 (en) 2017-08-25 2019-02-28 Vmware, Inc. Containerized application snapshots
US20190266056A1 (en) 2018-02-27 2019-08-29 Rubrik, Inc. Intelligent scheduling of backups
US20200285547A1 (en) 2019-03-04 2020-09-10 Cisco Technology, Inc. Intelligent snapshot generation and recovery in a distributed system
CN111008095A (zh) 2019-12-17 2020-04-14 山东超越数控电子股份有限公司 一种面向边缘云的状态快照生成和恢复方法

Also Published As

Publication number Publication date
KR20220059053A (ko) 2022-05-10

Similar Documents

Publication Publication Date Title
US11061714B2 (en) System for assignment of proxies for virtual-machine secondary copy operations
US11323531B2 (en) Methods for backing up virtual-machines
US10803193B2 (en) Multi-tenant authorization framework in a data management and storage cluster
US9336132B1 (en) Method and system for implementing a distributed operations log
US20220043727A1 (en) Assigning backup resources in a data storage management system based on failover of partnered data storage resources
JP2009535688A (ja) クラスタ環境においてジョブを管理するシステム、及び方法
US9990161B2 (en) Consistent replication of virtual computing instance data
CN106777394B (zh) 一种集群文件系统
US9606873B2 (en) Apparatus, system and method for temporary copy policy
US11645169B2 (en) Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
US11675674B2 (en) Instant recovery of databases
CN115878374A (zh) 针对指派给租户的命名空间备份数据
US10606495B2 (en) Creating a structurally aware block storage system
US10461991B1 (en) Dynamic replication peering
KR102402709B1 (ko) 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법
US8849916B2 (en) Infrastructure management operational workflows
KR20230131486A (ko) 게재 파일 시스템 및 방법
US11249682B2 (en) Data management system and method
US11586466B2 (en) Centralized high-availability flows execution framework
KR20220059052A (ko) 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법
Server Microsoft
WO2017212504A1 (en) Computer system and method for task assignment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant