KR20220059052A - 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법 - Google Patents

분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법 Download PDF

Info

Publication number
KR20220059052A
KR20220059052A KR1020200144197A KR20200144197A KR20220059052A KR 20220059052 A KR20220059052 A KR 20220059052A KR 1020200144197 A KR1020200144197 A KR 1020200144197A KR 20200144197 A KR20200144197 A KR 20200144197A KR 20220059052 A KR20220059052 A KR 20220059052A
Authority
KR
South Korea
Prior art keywords
cluster
service
image
copied
migration
Prior art date
Application number
KR1020200144197A
Other languages
English (en)
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 KR1020200144197A priority Critical patent/KR20220059052A/ko
Publication of KR20220059052A publication Critical patent/KR20220059052A/ko

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/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/5072Grid computing
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

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

Abstract

본 발명은 클러스터링을 기술 중에서 분산 클러스터 간 수행되는 서비스 고속 마이그레이션 기술에 관한 것으로서, 일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 단계, 소스 클러스터와 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하는 단계, 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 단계, 및 상기 소스 클러스터를 삭제하는 단계를 포함할 수 있다.

Description

분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법{A system for high-speed migration of services between distributed clusters and its method}
본 발명은 시스템 성능을 향상시키는 클러스터링을 기술에 관한 것으로서, 보다 상세하게는 클러스터링을 기술 중에서 분산 클러스터 간 수행되는 서비스 고속 마이그레이션 기술에 관한 것이다.
일반적으로 대규모의 운영환경에서는 이중화를 위해 여러 대의 물리 호스트로 서버를 구성한다. 또한 클라우드 환경에서는 시스템 규모가 큰 경우, 여러 대의 가상 서버(인스턴스)를 구성하여 이를 한 번에 관리할 수 있어야 한다.
기간계 시스템과 미션 크리티컬한 시스템에는 장애가 발생하게 되면 사업 기회를 놓치는 것뿐만 아니라 기업의 신용도가 크게 하락될 수 있다. 그래서 시스템 일부에 장애가 발생하더라도 시스템 전체에 영향을 미치지 않도록 인프라를 구성해야만 한다.
이처럼 만일의 사태 발생 시, 시스템이 정지하지 않도록 하는 기술이 바로 클러스터링이다. 클러스터링이란 여러 대의 서버와 하드웨어를 1대처럼 묶는 기술로서, 클러스터링을 구축하면 시스템 성능을 향상시킬 수 있다.
클러스터링과 관련된 용어 중, 가용성이란 시스템이 연속적으로 가동할 수 있는 능력을 의미한다. 서버 에러나 하드웨어에 장애가 발생하여도 다른 정상 서버나 하드웨어로 전환되어 기존 처리가 이어질 수 있기 때문에 높은 신뢰성을 제공할 수 있다.
또한, 높은 부하로 시스템이 다운되는 것을 피하기 위해 여러 컴퓨터를 클러스터링으로 구축 및 분산하여 신뢰성을 높일 수 있다. 클라우드 가상 서버는 오토 스케일 기능을 제공하는 경우도 있다. 도커에서는 한 대가 아닌 여러 대의 호스트 머신 위에서 도커를 구동시켜 높은 가용성 및 확장성을 가진 애플리케이션 실행 환경을 구축할 수 있다
이처럼 멀티 호스트 환경에서 컨테이너를 클러스터링하는 다양한 툴들이 개발되고 있고, 멀티 호스트 환경에서 컨테이너를 구동하는 경우를 대비하여 컨테이너 장애나 호스트 머신 상태 등을 모니터링하기 위한 기술이 연구 개발되고 있는 추세이다.
쿠버네티스(Kubernetes)는 디플로이 자동화, 스케일링, 컨테이너화된 애플리케이션의 관리를 위한 오픈 소스 시스템으로서 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있다. 쿠버네티스의 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공하기 위함이다. 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작한다.
근래에는 이러한 쿠버네티스를 활용하는 다양한 시스템이 개발되고 있는 추세이다.
한편, 컴퓨팅 하드웨어의 고도화는 중소형 디바이스의 성능을 향상시키고 있으며, 클라우드 서버에서 전담으로 처리하던 지능 기능이 에지 서버로 이동하는 비집중화(Decentralization) 현상으로 이어진다. 이는 더 작은 규모의 사물에도 지능이 존재할 수 있는 흐름이 진행되고 있다는 것이다. 이러한 추세로 인해, 문제 해결을 위해 기존의 중앙 집중형 지능보다는 분산형 지능을 활용하는 경향으로 바뀌어 가고 있다. 인공지능의 다음 진화 방향은 분산되고 자율적인 분산지능이 힘을 합쳐서 고도의 지능을 발휘하는 협력 지능이 될 것으로 예측된다.
분산 지능은 한 곳에서 풀기 어려운 복잡계 문제를 지능을 가지고 있는 에이전트를 분산시켜서 해결하는 기술로서, 국지적인 정보를 통해 국지적 최적화를 수행하고, 이러한 결과들이 전역적인 최적화 효과를 달성하는 형태로 문제를 해결할 수 있다.
한국공개특허 제10-2018-0044579호 "컨테이너 기반의 분산 애플리케이션 관리 시스템 및 방법" 한국등록특허 제10-1826498호 "클라우드 플랫폼 시스템" 한국공개특허 제10-2017-0034038호 "인텔리젼스 서비스 제공 방법 및 분산형 지능 시스템"
본 발명은 클러스터 간 서비스 이동 최적 프로세스를 설계하고, 이를 기반으로 프로토타입을 개발하는 것을 목적으로 한다.
본 발명은 서비스 무중단 이동을 위해 Graceful Deployment 기술을 적용하는 것을 목적으로 한다.
본 발명은 원격 클러스터 간 서비스 이동을 고려한 분산형 저장소(Repository)를 설계하는 것을 목적으로 한다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 단계, 소스 클러스터와 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하는 단계, 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 단계, 및 상기 소스 클러스터를 삭제하는 단계를 포함할 수 있다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 상기 서비스에 대한 이동 패턴을 사전 분석하고, 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하는 단계를 더 포함하고, 상기 타켓 클러스터로 마이그레이션하는 단계는, 상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 단계를 포함할 수 있다.
일실시예에 따른 상기 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 단계는, 상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하는 단계, 및 상기 이미지 블록들은 로컬 저장소를 통해 타겟 클러스터로 이동하는 단계를 포함할 수 있다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템은 마이그레이션 히스토리가 기록된 데이터베이스, 및 상기 마이그레이션 히스토리를 참고하여 마이그레이션을 처리하는 마이그레이션 컨트롤러를 포함하고, 상기 마이그레이션 컨트롤러는 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하고, 상기 소스 클러스터와 상기 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하며, 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션할 수 있다.
일실시예에 따른 상기 마이그레이션 컨트롤러는, 상기 복사된 볼륨이 상기 타켓 클러스터로 마이그레이션되는 경우, 상기 소스 클러스터를 삭제할 수 있다.
일실시예에 따른 상기 마이그레이션 컨트롤러는, 상기 서비스에 대한 이동 패턴을 사전 분석하고, 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하고, 상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션할 수 있다.
일실시예에 따른 상기 마이그레이션 컨트롤러는, 상기 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
일실시예에 따른 상기 마이그레이션 컨트롤러는, 상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하고, 상기 이미지 블록들이 로컬 저장소를 통해 타겟 클러스터로 이동하도록 제어할 수 있다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션용 프로그램은 소스 클러스터로부터 서비스에 대한 이미지를 복사하는 명령어 세트, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 명령어 세트, 상기 소스 클러스터와 상기 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하는 명령어 세트, 및 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 명령어 세트를 포함할 수 있다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션용 프로그램은 서비스에 대한 이동 패턴을 사전 분석하는 명령어 세트, 및 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하는 명령어 세트를 더 포함하고, 상기 타켓 클러스터로 마이그레이션하는 명령어 세트는, 상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 명령어 세트를 포함할 수 있다.
일실시예에 따른 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 명령어 세트는, 상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하고, 상기 이미지 블록들를 로컬 저장소를 통해 타겟 클러스터로 이동하는 명령어 세트를 포함할 수 있다.
일실시예에 따르면, 클러스터 간 서비스 이동 최적 프로세스를 설계하고, 이를 기반으로 프로토타입을 개발할 수 있다.
일실시예에 따르면, 서비스 무중단 이동을 위해 Graceful Deployment 기술을 적용할 수 있다.
일실시예에 따르면, 원격 클러스터 간 서비스 이동을 고려한 분산형 저장소(Repository)를 설계할 수 있다.
도 1은 컨테이너 플랫폼 간 서비스 고속 마이그레이션 기술을 설명하는 도면이다.
도 2는 일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템을 설명하는 도면이다.
도 3은 마이그레이션 컨트롤러의 동작을 설명하는 도면이다.
도 4는 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법을 설명하는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 컨테이너 플랫폼 간 서비스 고속 마이그레이션 기술을 설명하는 도면이다.
컨테이너(Containers) 백업이 항상 필요한 것은 아니지만, 값 비싼 손실을 막기 위해 도커(Docker)와 기타 컨테이너를 백업해야 하는 상황이 있다. 
컨테이너는 가상화의 한 유형이며, 이 가운데 도커는 가장 인기 있는 컨테이너 플랫폼이다. 컨테이너는 특정 애플리케이션을 실행할 수 있는 특수한 환경이다. 가벼운 가상 머신이라고 표현할 수도 있다. 
하이퍼바이저 서버의 각 VM에는 운영체제의 전체 사본이 포함되는 반면, 컨테이너는 기반 운영체제를 공유하며 각 컨테이너에는 해당 컨테이너에서 실행되는 애플리케이션에 필요한 라이브러리만 포함된다. 그 결과 단일 노드(OS와 컨테이너 런타임 환경을 실행하는 물리적 또는 가상 머신)에서 컨테이너가 점유하는 리소스는 같은 수의 VM에 비해 훨씬 적다.
VM과 컨테이너의 또 다른 차이점은 기업에서는 보통 하나의 VM에 다수의 애플리케이션을 동시에 실행하는 경향이 있는 반면, 컨테이너는 일반적으로 로깅, 모니터링과 같은 하나의 작업을 수행하는 하나의 애플리케이션 구성요소를 제공하도록 설계된다는 점이다. 
여러 애플리케이션 구성요소가 상호작용해야 하는 경우 각 구성요소는 일반적으로 자체 컨테이너에서 실행되면서 네트워크를 통해 통신한다. 이로써 각 애플리케이션을 개별적으로 확장하고 애플리케이션 간의 결함 및 보안 격리도 가능하다.
일반적인 컨테이너는 실행 상태를 백업할 필요가 없고, 컨테이너에는 데이터가 저장되지 않는다. 다른 어떤 작업을 통해 이미 저장된, 주어진 컨테이너의 또 다른 실행 인스턴스일 뿐이다.
쿠버네티스, 도커, 관련 애플리케이션을 백업해야 할 가장 중요한 이유는 재해 복구의 상황이다.
또한, 테스트/개발 환경에서 프로덕션으로 또는 업그레이드에 앞서 프로덕션에서 스테이징으로 옮길 때와 같이 환경을 복제하기 위해서 애플리케이션의 백업이 필요하다. 또 다른 이유는 쿠버네티스 클러스터를 더 쉽게 마이그레이션하기 위해서 애플리케이션에 대한 백업이 필요하다.
도면부호 100은 컨테이너 플랫폼 간 서비스 고속 마이그레이션(Migration) 기술을 나타낸다.
본 발명을 이용하면, 클러스터A에서 클러스터B로 컨테이너 플랫폼 간 서비스 고속 마이그레이션이 가능하다.
서비스를 이동시키기 위해, 본 발명은 소스 클러스터인 클러스터A로부터 서비스(원본)에 대한 이미지를 복사하고, 복사한 이미지에 상응하는 서비스(사본)를 타겟 클러스터인 클러스터B 상에서 생성할 수 있다.
또한, 본 발명은 소스 클러스터(클러스터A)와 타겟 클러스터(클러스터B) 상에서 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어할 수 있다.
링크 쉐어와는 별도로, 백그라운드 상에서 서비스(원본)을 서비스(사본)으로 이동할 수 있다.
이로써, 본 발명은 소스 클러스터(클러스터A)로부터 복사된 볼륨을 타켓 클러스터(클러스터B)로 마이그레이션하고, 소스 클러스터를 삭제할 수 있다.
이로써, 분산 클러스터 간 서비스 이동시간 최소화가 가능하다.
도 2는 일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템(200)을 설명하는 도면이다.
분산 클러스터 간 서비스 고속 마이그레이션 시스템(200)은 소스 클러스터인 클러스터A(220)로부터 타겟 클러스터인 클러스터B(230)로 서비스를 마이그레이션할 수 있다.
마이그레이션의 과정에서 해당 서비스들은 OpenMCP 볼륨커넥터로부터 데이터를 수집하여 클러스터A의 로컬저장소(250)에 임시저장될 수 있다.
분산 클러스터 간 서비스 고속 마이그레이션 시스템(200)을 이용하는 경우, 세계 최고 수준 대비 8% 성능 개선 성과 달성 목표 (25s vs. 27.2s(IEEE))가 가능하고, 서비스 Provisioning(Hot Service Detecting) 기반의 Image Pre-Copy 기술을 적용하여, 볼륨 커넥터 프리셋(Connector Preset) 기술 적용으로 대용량 볼륨 복사시간을 단축시킬 수 있다.
또한, 지역간 무중단 서비스 이동을 위한 제로 다운타임 정책 적용을 통해 서비스 무중단 이동을 위한 그레이스풀 디플로이(Graceful Deploy) 프로세스 방식을 적용하여 링크 쉐어(LinkShare) 방식의 무중단 볼륨 이동 기술을 제공할 수 있다.
본 발명에서 사용되는 컨테이너의 이미지는 컨테이너가 작동하기 위해 필요한 모든 실행 코드가 포함된 정적 파일로 해석될 수 있다. 또한, 컨테이너 이미지는 변경되지 않으며 특정 컨테이너를 실행하는 데 사용된다. 특정 컨테이너의 라이브러리와 코드를 변경해야 하는 경우 해당 컨테이너를 위한 새로운 이미지가 생성된다. 컨테이너 이미지도 보호가 필요한데, 이 저장소 역시 재해에 대비해 보호될 수 있다.
컨테이너가 생성하는 데이터는 컨테이너의 수명이 끝난 후에도 계속 사용되는 경우가 많다. 이를 위해 본 발명에서는 분산형 저장소를 구현하기 위한 글로벌저장소(260)를 포함할 수 있다.
NFS, 객체 저장소 또는 다른 비슷한 메커니즘을 통해 볼륨을 마운트하고 이 볼륨에 데이터를 기록하며, 글로벌저장소(260)에 연결될 수도 있다.
쿠버네티스 포드에서 영구 스토리지를 사용하는 경우가 늘고 있다. 여기에 저장되는 데이터가 비즈니스에 중요하다면 글로벌저장소(260) 역시 백업해야 한다.
배포는 특정 기능을 수행하는 포드의 집합을 나타내는 쿠버네티스 개념이다. 배포는 YAML 파일로 저장되며 이 파일은 쿠버네티스의 기본 분산형 키-값 저장소인 etcd(240)에 마이그레이션 히스토리와 함께 기록될 수 있다.
쿠버네티스 중앙 데이터베이스인 etcd(240)를 백업해야 한다. etcd(240)는 비교적 작고, K8s는 그 내용물을 파일로 옮기기 위한 툴을 제공하므로 옮겨서 파일을 백업하면 된다.
프로메테우스(Prometheus)는 K8s와 도커를 모니터링하는 데 자주 사용된다. 프로메테우스 구성도 백업해야 한다. 개발자가 K8s에서 리소스를 만들면 만들어진 리소스를 적절한 그룹 및 버전과 함께 백업해야 한다.
도 3은 마이그레이션 컨트롤러(300)의 동작을 설명하는 도면이다.
마이그레이션 컨트롤러(300)는 컨테이너 플랫폼 간 서비스의 고속 이동 및 배치를 위해, 다음의 과정들을 수행할 수 있다.
먼저, 마이그레이션 컨트롤러(300)는 소스 클러스터로부터 서비스에 대한 이미지를 복사하고(301), 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성(302)할 수 있다. 또한, 생성한 서비스에 대해 소스 클러스터와 타겟 클러스터 각각에서 접근이 모두 가능하도록 대용량 볼륨 링크를 쉐어할 수 있다(303).
한편, 마이그레이션 컨트롤러(300)는 소스 클러스터로부터 복사된 볼륨을 타켓 클러스터로 마이그레이션할 수 있다. 이를 위해, 볼륨을 복사하고(304), 변환(305)하여 타겟 클러스터에 백업할 수 있다. 이러한 백업 과정은 백그라운드에서 실행될 수 있으며, 시스템 자원이 사용되지 않거나, 사용률이 적은 시간 대에 진행될 수도 있다.
마이그레이션이 완료되면, 소스 클러스터를 삭제할 수 있다(306).
도 4는 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법을 설명하는 도면이다.
분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 고속의 마이그레이션을 위해 우선, 소스 클러스터로부터 서비스에 대한 이미지를 복사할 수 있다(단계 401).
또한, 일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성할 수 있다.
예를 들어, 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함할 수 있고, 이미지 블록들은 로컬 저장소를 통해 타겟 클러스터로 이동될 수 있다.
일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어할 수 있다(단계 403).
또한, 일실시예에 따른 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 소스 클러스터로부터 복사된 볼륨을 타켓 클러스터로 마이그레이션할 수 있다(단계 404).
또한, 일실예에 따르면, 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법은 서비스에 대한 이동 패턴을 사전 분석하고, 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치할 수 있다. 또한, 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법 사전 배치를 참고하여 소스 클러스터로부터 복사된 볼륨을 타켓 클러스터로 마이그레이션할 수 있다.
결국, 본 발명을 이용하면 클러스터 간 서비스 이동 최적 프로세스를 설계하고, 이를 기반으로 프로토타입을 개발할 수 있다.
또한, 서비스 무중단 이동을 위해 Graceful Deployment 기술을 적용할 수 있고, 원격 클러스터 간 서비스 이동을 고려한 분산형 저장소(Repository)를 설계할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (11)

  1. 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 단계;
    소스 클러스터와 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하는 단계;
    상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 단계; 및
    상기 소스 클러스터를 삭제하는 단계
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 서비스에 대한 이동 패턴을 사전 분석하고, 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하는 단계
    를 더 포함하고,
    상기 타켓 클러스터로 마이그레이션하는 단계는,
    상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 단계
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 단계는,
    상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하는 단계; 및
    상기 이미지 블록들은 로컬 저장소를 통해 타겟 클러스터로 이동하는 단계
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템의 동작 방법.
  4. 마이그레이션 히스토리가 기록된 데이터베이스; 및
    상기 마이그레이션 히스토리를 참고하여 마이그레이션을 처리하는 마이그레이션 컨트롤러
    를 포함하고,
    상기 마이그레이션 컨트롤러는 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하고,
    상기 소스 클러스터와 상기 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하며,
    상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
  5. 제4항에 있어서,
    상기 마이그레이션 컨트롤러는,
    상기 복사된 볼륨이 상기 타켓 클러스터로 마이그레이션되는 경우, 상기 소스 클러스터를 삭제하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
  6. 제4항에 있어서,
    상기 마이그레이션 컨트롤러는,
    상기 서비스에 대한 이동 패턴을 사전 분석하고, 상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하고,
    상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
  7. 제4항에 있어서,
    상기 마이그레이션 컨트롤러는,
    상기 소스 클러스터로부터 서비스에 대한 이미지를 복사하고, 상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
  8. 제4항에 있어서,
    상기 마이그레이션 컨트롤러는,
    상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하고, 상기 이미지 블록들이 로컬 저장소를 통해 타겟 클러스터로 이동하도록 제어하는 것을 특징으로 하는 분산 클러스터 간 서비스 고속 마이그레이션 시스템.
  9. 소스 클러스터로부터 서비스에 대한 이미지를 복사하는 명령어 세트;
    상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 명령어 세트;
    상기 소스 클러스터와 상기 타겟 클러스터 상에서 상기 생성한 서비스에 대한 대용량 볼륨 링크를 쉐어하는 명령어 세트; 및
    상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 명령어 세트
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션용 프로그램.
  10. 제9항에 있어서,
    상기 서비스에 대한 이동 패턴을 사전 분석하는 명령어 세트; 및
    상기 타겟 클러스터 상에서 상기 서비스에 대한 이미지를 사전 배치하는 명령어 세트
    를 더 포함하고,
    상기 타켓 클러스터로 마이그레이션하는 명령어 세트는,
    상기 사전 배치를 참고하여 상기 소스 클러스터로부터 복사된 볼륨을 상기 타켓 클러스터로 마이그레이션하는 명령어 세트
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션용 프로그램.
  11. 제9항에 있어서,
    상기 복사한 이미지에 상응하는 서비스를 타겟 클러스터 상에서 생성하는 명령어 세트는,
    상기 복사한 이미지를 글로벌 저장소에 기록하되, 상기 이미지가 복수의 이미지 블록들을 포함하고, 상기 이미지 블록들를 로컬 저장소를 통해 타겟 클러스터로 이동하는 명령어 세트
    를 포함하는 분산 클러스터 간 서비스 고속 마이그레이션용 프로그램.
KR1020200144197A 2020-11-02 2020-11-02 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법 KR20220059052A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200144197A KR20220059052A (ko) 2020-11-02 2020-11-02 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200144197A KR20220059052A (ko) 2020-11-02 2020-11-02 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20220059052A true KR20220059052A (ko) 2022-05-10

Family

ID=81591826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200144197A KR20220059052A (ko) 2020-11-02 2020-11-02 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20220059052A (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170034038A (ko) 2015-09-18 2017-03-28 주식회사 케이티 인텔리젼스 서비스 제공 방법 및 분산형 지능 시스템
KR101826498B1 (ko) 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템
KR20180044579A (ko) 2016-10-24 2018-05-03 삼성에스디에스 주식회사 컨테이너 기반의 분산 애플리케이션 관리 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170034038A (ko) 2015-09-18 2017-03-28 주식회사 케이티 인텔리젼스 서비스 제공 방법 및 분산형 지능 시스템
KR20180044579A (ko) 2016-10-24 2018-05-03 삼성에스디에스 주식회사 컨테이너 기반의 분산 애플리케이션 관리 시스템 및 방법
KR101826498B1 (ko) 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템

Similar Documents

Publication Publication Date Title
US9870291B2 (en) Snapshotting shared disk resources for checkpointing a virtual machine cluster
US10394621B1 (en) Method and computer readable medium for providing checkpointing to windows application groups
EP2053509B1 (en) System for and method of migrating one or more virtual machines
US8473463B1 (en) Method of avoiding duplicate backups in a computing system
US7313793B2 (en) Method for forking or migrating a virtual machine
US9575894B1 (en) Application aware cache coherency
US8219769B1 (en) Discovering cluster resources to efficiently perform cluster backups and restores
US10614096B2 (en) Disaster recovery of mobile data center via location-aware cloud caching
US20150281336A1 (en) Distributable computational units in a continuous computing fabric environment
US9619350B1 (en) Systems and methods for application-consistent disaster recovery using a virtual storage controller and remote storage
EP3750066B1 (en) Protection of infrastructure-as-a-service workloads in public cloud
US10719274B2 (en) Consistent replication of virtual computing instance data
US8752049B1 (en) Method and computer readable medium for providing checkpointing to windows application groups
WO2007141180A2 (en) Apparatus and method for cluster recovery
US10417099B1 (en) Resilient backups for large Hyper-V cluster shared volume environments
KR20220059052A (ko) 분산 클러스터 간 서비스 고속 마이그레이션 시스템 및 그 방법
US10891205B1 (en) Geographically dispersed disaster restart multitenancy systems
Dell
KR102402709B1 (ko) 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법
Dell
Khandhar et al. Docker-the future of virtualization
KR102394293B1 (ko) 다종 멀티 지능모듈 프로세스 조합 시스템
US20240104114A1 (en) Techniques for upgrading and accessing metadata
Server Microsoft
CN116541089A (zh) 配置管理执行的实时编辑

Legal Events

Date Code Title Description
E601 Decision to refuse application