KR20210046251A - 서비스 이동 지원을 위한 방법 및 시스템 - Google Patents

서비스 이동 지원을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20210046251A
KR20210046251A KR1020190129761A KR20190129761A KR20210046251A KR 20210046251 A KR20210046251 A KR 20210046251A KR 1020190129761 A KR1020190129761 A KR 1020190129761A KR 20190129761 A KR20190129761 A KR 20190129761A KR 20210046251 A KR20210046251 A KR 20210046251A
Authority
KR
South Korea
Prior art keywords
service
node device
work node
work
movement
Prior art date
Application number
KR1020190129761A
Other languages
English (en)
Other versions
KR102248443B1 (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 KR1020190129761A priority Critical patent/KR102248443B1/ko
Publication of KR20210046251A publication Critical patent/KR20210046251A/ko
Application granted granted Critical
Publication of KR102248443B1 publication Critical patent/KR102248443B1/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/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
    • 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/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

서비스 이동 지원을 위한 방법 및 시스템이 개시된다. 일 실시예에 따른 서비스 이동 지원을 위한 방법은, 작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계와, 상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계와, 상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계와, 상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계를 포함한다.

Description

서비스 이동 지원을 위한 방법 및 시스템{METHOD AND SYSTEM FOR SUPPORTING SURVICE MOVEMENT}
아래 실시예들은 서비스 이동 지원을 위한 방법 및 시스템에 관한 것이다.
클라우드 컴퓨팅은 인터넷을 통하여 원격지의 컴퓨팅 자원을 사용하고, 사용한 만큼 비용을 지불하는 형태의 컴퓨팅 방식이다. 사용자는 필요한 컴퓨팅 자원의 종류와 양을 선택하고, 클라우드 공급자는 요청된 컴퓨팅 자원만큼 프로비저닝(provisioning) 하여 사용자에게 컴퓨팅 환경을 제공한다.
클라우드 컴퓨팅 환경에서는 가상화 기술을 통해 컴퓨팅 자원을 분할하여 단일 노드 상에 복수의 서비스들을 운용할 수 있다. 클라우드 컴퓨팅 환경에서 복수의 서비스들 각각은 가상 머신이나 컨테이너 기반의 독립된 환경으로 구성된다.
클라우드 컴퓨팅 환경에서의 서비스 품질은 서비스가 사용하는 자원량에 영향을 받는다. 서비스는 여러 작업이 포함될 수 있으며, 서비스의 작업 내용이나 수행 단계에 따라 서비스가 사용하는 자원의 종류나 필요한 자원의 양이 다를 수 있다.
클라우드 공급자는 사용자와 일정 수준 이상의 서비스를 제공한다는 내용의 서비스 수준 협약을 맺는다. 기존 클라우드 플랫폼에서 제공하는 서비스 수준 협약의 경우 서버의 운용 시간이나 API 요청에 따른 응답률, I/O 성공률 등 서버의 가용성 측면에 집중된 경향이 있다. 이는 서비스가 클라우드 서버에서 동작한다는 것은 보장할 수 있지만, 실제로 서비스의 응용 수준에서의 품질을 보장한다고 할 수는 없다.
클라우드 공급자는 사용자가 선택한 자원 요구 사항을 수용할 수 있는 노드를 선정해 자원을 할당한다. 원칙적으로, 서비스의 요구 사항보다 자원이 부족한 노드에는 서비스를 할당할 수 없다. 하지만, 클라우드 공급자는 노드에서 운영되는 서비스들이 동시에 최대치의 자원을 요구하지 않는다는 가정 하에 서비스를 할당한다. 즉, 클라우드 공급자는 노드의 효율성을 높이기 위해 노드의 총 컴퓨팅 자원량을 조금 상회하도록 서비스를 할당한다. 이러한 경우, 노드의 상황에 따라 서비스들 간에 성능 간섭이 발생하거나 전체 서비스들이 요구한 자원의 총 합이 노드의 가용 자원을 상회하여 서비스의 품질을 보장하지 못할 가능성이 있다.
기존의 클라우드 컴퓨팅 플랫폼의 경우 부하가 있는 서비스를 대상으로 스케일 인/아웃을 통해 서비스를 확장하거나 다른 노드로 서비스를 이동하여 동작하도록 지원하고 있다. 기존의 클라우드 컴퓨팅 플랫폼은 부하가 있는 서비스가 충분한 자원을 확보할 수 있도록 지원하지만 서비스를 이동하거나 확장하는 과정에서 다른 서비스에 영향을 줄 수 있는 가능성이 있다. 따라서, 범용적인 서비스 품질 보장을 위해 특정 서비스가 많은 자원을 사용할 때 다른 서비스가 서비스 품질을 만족하는지 확인할 필요가 있다. 결과적으로, 동적으로 상황이 변하는 클라우드 컴퓨팅 환경에서 서비스가 품질 보장에 필요한 최소한의 자원을 사용할 수 있도록 지원하는 방법이 필요하다.
하지만, 서비스의 품질을 만족하기 위한 최소한의 컴퓨팅 자원 정보는 서비스를 개발하는 서비스 제공자만이 알 수 있다. 그러므로 클라우드 관리자가 각 서비스의 최소 자원 요구량을 파악하여 자원을 조정하는 방식으로 응용 수준의 서비스 품질을 보장하기에는 어려움이 있다.
실시예들은 서비스에서 직접 서비스의 자원 사용량을 확인하고, 자원 사용량이 최소 자원 요구량에 미치지 못하는 경우 서비스가 다른 작업 노드 장치로 이동을 요청함으로써, 클라우드 컴퓨팅 환경에서 수행되는 서비스의 품질을 유지할 수 있다.
일 실시예에 따른 서비스 이동 지원을 위한 방법은, 작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계와, 상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계와, 상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계와, 상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계를 포함한다.
상기 방법은, 상기 서비스 관리자가 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는 단계를 더 포함할 수 있다.
상기 저장하는 단계는, 상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는 단계를 포함할 수 있다.
상기 복구하는 단계는, 상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하는 단계와, 상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는 단계를 포함할 수 있다.
상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송될 수 있다.
상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성될 수 있다.
상기 비교하는 단계는, 상기 서비스가 상기 자원 사용량을 검사하는 단계;
상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 각각 계산하는 단계와, 상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하는 단계와, 상기 필요량을 상기 최소 자원 요구량에 적용하는 단계를 포함할 수 있다.
상기 방법은, 상기 서비스 관리자가 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 서비스 관리자가 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는 단계를 더 포함할 수 있다.
일 실시예에 따른 작업 노드 장치는, 서비스 이동 지원을 위한 인스트럭션들을 저장하는 메모리와, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 프로세서는, 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하고, 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 서비스와, 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하고, 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 서비스 관리자를 실행한다.
상기 서비스 관리자는, 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구할 수 있다.
상기 서비스 관리자는, 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장할 수 있다.
상기 서비스 관리자는, 상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장할 수 있다.
상기 서비스 관리자는, 상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하고, 상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구할 수 있다.
상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송될 수 있다.
상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성될 수 있다.
상기 서비스는, 상기 자원 사용량을 검사하고, 상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들 각각을 계산하고, 상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하고, 상기 필요량을 상기 최소 자원 요구량에 적용할 수 있다.
상기 서비스 관리자는, 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록할 수 있다.
상기 서비스 관리자는, 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제할 수 있다.
도 1은 일 실시예에 따른 서비스 이동 지원을 위한 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 작업 노드 장치를 개략적으로 나타낸 도면이다.
도 3은 도 2에 도시된 프로세서를 개략적으로 나타낸 도면이다.
도 4는 도 3에 도시된 서비스를 개략적으로 나타낸 도면이다.
도 5는 도 3에 도시된 서비스 관리자를 개략적으로 나타낸 도면이다.
도 6은 도 4에 도시된 자원 검사 모듈의 동작을 상세하게 설명하기 위한 순서도이다.
도 7은 도 1에 도시된 마스터 노드 장치를 개략적으로 나타낸 도면이다.
도 8은 도 7에 도시된 노드 관리자를 개략적으로 나타낸 도면이다.
도 9는 서비스 이동 지원을 위한 시스템의 전체 동작을 설명하기 위한 순서도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 일 실시예에 따른 서비스 이동 지원을 위한 시스템을 나타낸 도면이다.
서비스 이동 지원을 위한 시스템(10)은 작업 노드 장치(100) 및 마스터 노드 장치(200)를 포함한다.
서비스 이동 지원을 위한 시스템(10)은 클라우드 컴퓨팅 운용 환경에서 동일한 작업 노드 장치 상에 동작하는 복수의 서비스들 간의 간섭 상황이나 작업 노드 장치의 가용 자원이 부족한 상황이 발생하는 경우, 응용 수준에서 서비스 품질을 유지할 수 있다. 즉, 서비스 이동 지원을 위한 시스템(10)은 서비스 스스로 서비스 품질을 유지할 수 없다고 판단하는 경우 서비스가 수행되는 작업 노드 장치의 변경을 요청함으로써, 서비스가 품질을 유지할 수 있는 자원을 확보하고 동작할 수 있다.
작업 노드 장치(100)는 수행되는 복수의 서비스들 중에서 자원을 많이 사용하는 어느 하나 이상의 서비스들로 인하여 다른 하나 이상의 서비스들이 수행되는데 영향을 받는 경우, 다른 하나 이상의 서비스들을 다른 작업 노드 장치로 이동시킬 수 있다. 작업 노드 장치(100)는 다른 하나 이상의 서비스들을 다른 작업 노드 장치로 이동시키기 위하여 마스터 노드 장치(200)로 목적지 노드 요청 메시지를 전송할 수 있다.
작업 노드 장치(100)는 마스터 노드 장치(200)로부터 전송되는 서비스 복구 메시지에 응답하여 다른 하나 이상의 서비스들을 복구하여 수행할 수 있다. 복구한다는 것은 작업 노드 장치(100)가 이동된 서비스들을 이동되기 전까지 수행된 지점에 이어 재수행할 수 있다는 것을 의미할 수 있다. 예를 들어, 작업 노드 장치(100)는 이동된 서비스들이 이동되기 전 30% 지점까지 작업이 수행된 경우, 30% 지점에서부터 다시 서비스를 재수행할 수 있다.
작업 노드 장치(100)는 복수의 작업 노드 장치들(100-1 내지 100-n)을 포함할 수 있다. 작업 노드 장치들(100-1 내지 100-n)은 각각이 작업 노드 장치(100)와 동일한 동작을 수행할 수 있다.
마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n)을 관리할 수 있다. 마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 각각의 자원 사용량에 기초하여 서비스가 이동할 작업 노드 장치(100)를 선택할 수 있다.
마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 어느 하나로부터 목적지 노드 요청 메시지를 수신할 수 있다. 마스터 노드 장치(200)는 목적지 노드 요청 메시지에 응답하여 마스터 노드 장치(200)가 관리하는 작업 노드 장치들(100-1 내지 100-n) 중에서 서비스의 품질을 보장할 수 있는 다른 하나를 선택할 수 있다. 마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 다른 하나를 선택한 경우 서비스 복구 메시지를 생성할 수 있다.
예를 들어, 마스터 노드 장치(200)는 서비스가 필요로 하는 최소 자원 요구량 및 작업 노드 장치들(100-1 내지 100-n)의 사용 가능한 자원 정보를 수신할 수 있다. 마스터 노드 장치(200)는 서비스가 필요로 하는 최소 자원 요구량 및 작업 노드 장치들(100-1 내지 100-n)의 사용 가능한 자원 정보에 기초하여 작업 노드 장치들(100-1 내지 100-n) 중에서 다른 하나를 선택한 경우 서비스 복구 메시지를 생성할 수 있다.
마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 선택한 작업 노드 장치로 서비스 복구 메시지를 전송할 수 있다.
도 2는 도 1에 도시된 작업 노드 장치를 개략적으로 나타낸 도면이고, 도 3은 프로세서를 개략적으로 나타낸 도면이다.
작업 노드 장치(100)는 프로세서(110), 및 메모리(150)를 포함할 수 있다.
프로세서(110)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor) 중 하나 또는 그 이상을 포함할 수 있다.
프로세서(110)는 작업 노드 장치(100)의 적어도 하나의 다른 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(110)는 메모리(150)에 저장된 어플리케이션 및/또는 소프트웨어 등(예를 들어, 서비스 및 서비스 관리자)을 실행할 수 있다.
프로세서(110)는 수신한 데이터 및 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(110)는 메모리(150)에 저장된 데이터를 처리할 수 있다. 프로세서(110)는 메모리(150)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(110)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
프로세서(110)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
메모리(150)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(150)는, 작업 노드 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.
메모리(510)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(150)는 서비스 이동 지원을 위한 어플리케이션 및 소프트 웨어 등(예를 들어, 서비스 및 서비스 관리자)을 저장할 수 있다.
프로세서(110)는 서비스(111) 및 서비스 관리자(115)를 실행할 수 있다.
서비스(111)는 서비스(111)의 자원 사용량을 검사할 수 있다. 서비스(111)는 자원 사용량을 이용하여 서비스(111)가 사용중인 복수의 자원들을 각각 계산할 수 있다. 예를 들어, 서비스(111)가 사용중인 복수의 자원들은 CPU 사용량, 메모리 사용량, 스토리지 사용량, 네트워크 사용량 등일 수 있다. 서비스(111)는 서비스(111)가 사용중인 복수의 자원들 간의 관계에 기초하여 서비스(111)에 필요한 복수의 자원들 각각의 필요량을 계산할 수 있다. 서비스(111)는 필요량을 최소 자원 요구량에 적용할 수 있다.
서비스(111)는 서비스(111)의 자원 사용량 및 서비스(111)를 위한 최소 자원 요구량을 비교할 수 있다. 서비스(111)는 비교 결과에 기초하여 서비스(111)의 이동을 위한 서비스 이동 요청 메시지를 생성할 수 있다. 예를 들어, 서비스(111)는 자원 사용량이 최소 자원 요구량 이하인 경우, 서비스 이동 요청 메시지를 생성할 수 있다. 서비스(111)는 작업 노드 장치(100)에서 복수개가 수행될 수 있다.
서비스(111)는 서비스 이동 요청 메시지를 서비스 관리자(115)로 전송할 수 있다.
서비스 관리자(115)는 사용자의 요청에 의해 컨테이너가 생성된 서비스(111)를 등록할 수 있다.
서비스 관리자(115)는 서비스 이동 요청 메시지에 응답하여 서비스(111)를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성할 수 있다. 즉, 목적지 노드 요청 메시지는 마스터 노드 장치(200)에게 서비스 이동 요청 메시지를 생성한 서비스가 이동할 다른 작업 노드 장치(100)를 요청하는 메시지일 수 있다.
서비스 관리자(115)는 목적지 노드 요청 메시지를 작업 노드 장치들(100-1 내지 100-n)을 관리하는 마스터 노드 장치(200)로 전송할 수 있다.
서비스 관리자(115)는 서비스 이동 요청 메시지에 응답하여 서비스(111)를 마스터 노드 장치(200)가 관리하는 작업 노드 장치들(100-1 내지 100-n)이 공유하는 공유 볼륨에 저장할 수 있다. 서비스 관리자(115)는 서비스(111)를 수행된 지점에 이어 다른 작업 노드 장치에서 수행된 지점부터 재수행하기 위한 체크포인트를 저장할 수 있다.
서비스 관리자(115)는 마스터 노드 장치(200)로부터 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 서비스(111)를 복구할 수 있다. 서비스 관리자(115)는 마스터 노드 장치(200)로부터 서비스 복구 메시지를 수신할 수 있다. 서비스 관리자(115)는 서비스 복구 메시지에 응답하여 공유 볼륨에 저장된 서비스를 체크포인트에 따라 복구할 수 있다.
서비스 관리자(115)는 서비스(115)의 수행이 종료되면 서비스(111)를 등록 해제할 수 있다.
도 4는 도 3에 도시된 서비스를 개략적으로 나타낸 도면이다.
서비스(111)는 전처리 모듈(1111), 자원 검사 모듈(1113) 및 서비스 수행 모듈(1115)을 포함할 수 있다.
전처리 모듈(1111)은 서비스(111)를 서비스 관리자(115)에 등록하고 서비스 컨테이너의 정보를 전송할 수 있다. 전처리 모듈(1111)은 서비스(111)의 자원 사용량 검사를 수행하는 자원 검사 모듈(1113)을 스레드로 생성할 수 있다. 전처리 모듈(1111)은 자원 검사 모듈(1113)이 생성되면 서비스 수행 모듈(1115)을 활성화시켜 서비스(111)가 수행될 수 있도록 동작할 수 있다.
자원 검사 모듈(1113)은 서비스 제공자가 서비스 품질 만족을 위해 정한 서비스(111)의 최소 자원 요구량을 기반으로 서비스(111)가 사용하는 자원 사용량과 비교할 수 있다. 자원 검사 모듈(1113)은 서비스(111)의 현재 자원 사용량이 최소 자원 요구량에 일정 시간 이상 미달하는 경우, 서비스(111)의 품질이 보장되고 있지 않다고 판단할 수 있다.
자원 검사 모듈(1113)은 서비스의 품질이 보장되고 있지 않은 경우, 서비스 관리자(115)에게 서비스 이동 요청 메시지를 전송할 수 있다. 예를 들어, 서비스 이동 요청 메시지가 증가하여 처리할 작업이 많아지는 경우, 서비스(111)의 품질 만족을 위해 최소 자원 요구량도 증가할 필요가 있다. 이에, 자원 검사 모듈(1113)은 서비스(111)가 사용하는 복수의 자원들 간의 관계에 따라 서비스(111)의 품질 보장을 위해 필요한 복수의 자원들 각각의 필요량을 계산할 수 있다. 자원 검사 모듈(1113)은 복수의 자원들 각각의 필요량을 최소 자원 요구량에 적용할 수 있다. 따라서, 서비스 제공자가 초기에 명시한 최소 자원 요구량은 일정하게 유지되지 않고 처리량(throughoutput)에 따라 최소 자원 요구량이 변경될 수 있다.
서비스 수행 모듈(1115)은 서비스를 수행하는 비즈니스 로직(Business logic)일 수 있다.
도 5는 도 3에 도시된 서비스 관리자를 개략적으로 나타낸 도면이다.
서비스 관리자(115)는 관리 모듈(1151), 메시지 처리 모듈(1153), 체크포인트 수행 모듈(1155) 및 공유 볼륨(1157)을 포함할 수 있다.
관리 모듈(1151)은 서비스(111)의 정보를 관리할 수 있다. 관리 모듈(1151)은 서비스(111)의 등록 요청을 처리하고 키:값 구조로 서비스의 정보를 관리할 수 있다. 즉, 서비스(111)는 컨테이너 단위로 구성되고 작업 노드 장치(100)에 속하기 때문에, 작업 노드 장치(100) 안에서만 구별되면 되므로 컨테이너의 ID를 키 값으로 사용할 수 있다. 키 값은 컨테이너의 정보로, 사용한 이미지 ID, 초기 수행 명령어, 마운트 경로, 할당된 네트워크 주소와 같은 컨테이너 구성 정보를 포함할 수 있다.
메시지 처리 모듈(1153)은 각 장치가 제공하는 기능을 RESTful API 형태로 공개하고 각 URL 패턴마다 특정한 함수를 호출하는 기능을 수행할 수 있다. 예를 들어, 메시지 처리 모듈(1153)은 서비스(111)나 서비스 관리자(115)로부터 요청 메시지가 발생하는 경우, 요청된 URL 패턴과 일치하는 함수를 호출할 수 있다. 메시지 처리 모듈(1153)은 관련 파라미터들을 URL 패턴 뒤에 JSON 포맷으로 붙여 전송할 수 있다. 관련 파라미터들은 파싱을 거쳐 함수 호출 시 전달될 수 있다.
체크포인트 수행 모듈(1155)은 서비스(111)로부터 서비스 이동 요청 메시지가 전송되면, 수행중인 서비스(111)의 상태를 저장할 수 있다. 즉, 체크포인트 수행 모듈(1155)은 서비스(111) 및 체크포인트를 공유 볼륨(1157)에 저장할 수 있다.
체크포인트 수행 모듈(1155)은 노드 관리자(211)로부터 복구 요청 메시지를 수신하면 저장된 서비스(111)의 상태를 기반으로 서비스(111)를 복구할 수 있다. 체크 포인트 수행 모듈(1155)은 서비스(111)를 복구하는 경우 컨테이너 단위로 체크포인트를 수행할 수 있다. 예를 들어, 체크포인트 된 컨테이너의 상태 정보는 컨테이너 ID의 앞 12자리를 이름으로 가지는 파일로 저장될 수 있다. 이 파일은 모든 작업 노드가 공유할 수 있는 공유 볼륨에 저장될 수 있다. 즉, 체크포인트 수행 모듈(1155)은 서비스(111)를 복구하는 경우 체크포인트된 컨테이너 ID를 기반으로 저장된 파일을 공유 볼륨(1157)으로부터 수신하여 컨테이너 복구를 수행할 수 있다.
공유 볼륨(1157)은 서비스(111)의 상태를 저장할 수 있다. 즉, 공유 볼륨(1157)은 서비스(111) 및 체크포인트를 저장할 수 있다. 예를 들어, 공유 볼륨(1157)은 작업 노드 장치들(100-1 내지 100-n)이 모두 공유할 수 있다. 공유 볼륨(1157)은 서비스 복구 메시지를 수신한 작업 노드 장치(100)로 서비스(111) 및 체크포인트를 송신할 수 있다.
도 6은 도 4에 도시된 자원 검사 모듈의 동작을 상세하게 설명하기 위한 순서도이다.
자원 검사 모듈(1113)은 동작이 시작되면 서비스 이동 조건을 판별하기 위하여 필요한 변수를 선언하고 초기화할 수 있다(610). 필요한 변수는 N(샘플 수), CNT(서비스 이동을 판단하기 위한 임계값), 기준자원사용량(서비스를 유지하는데 드는 기본 자원의 양), 상대적자원사용비 값(CPU를 기준으로 다른 자원의 사용비율 값)을 포함할 수 있다. 구체적으로, 기준자원사용량은 동작하는 서비스(111)가 최소한의 서비스 품질을 만족하기 위해 서비스 제공자가 정한 자원 사용량(CPU, 메모리, 네트워크 등)을 의미할 수 있다. 상대적자원사용비는 CPU 사용량 대비 필요한 메모리, 네트워크 자원의 비율을 의미할 수 있다.
자원 검사 모듈(1113)은 부모 프로세스 및 자식 프로세스의 CPU 사용량을 총합하여 CUR_RES 변수에 저장할 수 있다(615).
자원 검사 모듈(1113)은 CUR_RES 값을 평균 값 계산을 위해 RES_LIST 변수에 저장할 수 있다(620).
자원 검사 모듈(1113)은 RES_LIST 변수에서 최근 N개의 값을 대상으로 이동 평균 필터를 적용해 CPU 사용 평균을 계산하여 SMA_RES 변수에 저장할 수 있다(625). SMA_RES 변수는 현재 서비스의 최근 N개의 값에 대한 평균 CPU 사용량을 의미할 수 있다.
자원 검사 모듈(1113)은 서비스(111)는 수행하는 작업에 따라 수행 단계 값을 가질 수 있으므로, 수행 단계 값을 서비스의 수행 단계를 나타내는 P 변수에 저장할 수 있다(630).
자원 검사 모듈(1113)은 SMA_RES 값에서 P 단계의 기준자원사용량 값(CPU 값)을 빼고 차이를 DIFF 변수에 저장할 수 있다(635). DIFF 값은 서비스의 평균 CPU 사용량 값과 P 단계의 서비스가 필요로 하는 CPU 자원 값의 차이를 의미할 수 있다. DIFF 값은 CPU 사용량 차이만 나타내므로 이 차이를 메모리와 네트워크 자원에 반영할 필요가 있다.
자원 검사 모듈(1113)은 DIFF 값에 수행 단계 P 에서의 상대적자원사용비를 곱하여 최종적으로 반영해야 할 메모리 자원과 네트워크 자원의 비율을 계산할 수 있다. 자원 검사 모듈(1113)은 최종적으로 반영해야 할 메모리 자원과 네트워크 자원의 비율을 APPLY_RATE_LIST 변수에 저장할 수 있다(640).
자원 검사 모듈(1113)은 APPLY_RATE_LIST 값을 사용하여 P 단계에서 서비스가 CPU 자원을 SMA_RES 만큼 사용할 때 서비스의 품질 보장을 위해 필요한 메모리, 네트워크 자원을 계산할 수 있다. 따라서, 자원 검사 모듈(1113)은 P 단계에서 기준자원사용량에 APPLY_RATE_LIST 값을 곱해 필요한 메모리와 네트워크 자원을 계산할 수 있다.
자원 검사 모듈(1113)은 SMA_RES 값과 계산된 메모리, 네트워크 자원 값을 MIN_GRT_RES 변수에 저장할 수 있다(645). MIN_GRT_RES 값은 CPU 평균 사용량이 SMA_RES인 서비스의 품질 만족에 필요한 자원의 값을 의미할 수 있다.
자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량을 초과하는지 여부를 판단할 수 있다(650).
자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량보다 작다면 MIN_GRT_RES 값에 P 단계일 때의 기준자원사용량을 대입할 수 있다(655).
자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량보다 크다면 현재 자원 사용량과 MIN_GRT_RES 값을 비교할 수 있다(660).
자원 검사 모듈(1113)은 현재 자원 사용량이 MIN_GRT_RES 값 보다 크다면, CNT 값을 복구하고 검사를 반복 수행할 수 있다(665).
자원 검사 모듈(1113)은 현재 자원 사용량이 MIN_GRT_RES 값 보다 작다면 CNT가 0보다 큰지 여부를 판단할 수 있다(670).
자원 검사 모듈(1113)은 CNT가 0 보다 크다면 CNT 값을 감소시키고 검사를 반복 수행할 수 있다(675).
자원 검사 모듈(1113)은 만약 CNT가 0 이하인 경우, 일정 기간 동안 자원을 충분히 사용하지 못해 서비스 품질을 만족할 수 없다고 판단하여 서비스 이동을 요청할 수 있다(680).
자원 검사 모듈(1113)은 서비스 수행 완료 시점까지 상술한 동작을 반복할 수 있다.
도 7은 도 1에 도시된 마스터 노드 장치를 개략적으로 나타낸 도면이다.
마스터 노드 장치(200)는 프로세서(210), 및 메모리(250)를 포함할 수 있다.
프로세서(210)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor) 중 하나 또는 그 이상을 포함할 수 있다.
프로세서(210)는 마스터 노드 장치(200)의 적어도 하나의 다른 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(210)는 메모리(250)에 저장된 어플리케이션 및/또는 소프트웨어 등(예를 들어, 노드 관리자)을 실행할 수 있다.
프로세서(210)는 수신한 데이터 및 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(210)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
프로세서(210)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(210)는 노드 관리자(211)를 포함할 수 있다. 예를 들어, 프로세서(210)는 노드 관리자(2110)를 실행할 수 있다.
노드 관리자(211)는 작업 노드 장치들(100-1 내지 100-n)에 관한 정보를 저장할 수 있다. 노드 관리자(211)는 목적지 노드 요청 메시지에 응답하여 서비스 복구 메시지를 전송할 수 있다.
메모리(250)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(250)는, 마스터 노드 장치(200)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.
메모리(250)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(250)는 작업 노드 장치들(100-1 내지 100-n)의 관리를 위한 어플리케이션 및 소프트웨어 등을 저장할 수 있다.
도 8은 도 7에 도시된 노드 관리자를 개략적으로 나타낸 도면이다.
노드 관리자(211)는 관리 모듈(2111), 메시지 처리 모듈(2113) 및 노드 선택 모듈(2115)을 포함할 수 있다.
관리 모듈(2111)은 작업 노드 장치들(100-1 내지 100-n)의 정보를 관리할 수 있다. 관리 모듈(2111)은 작업 노드 장치들(100-1 내지 100-n)의 등록 요청을 처리하고 키:값 구조로 작업 노드 정보를 관리할 수 있다. 예를 들어, 키는 작업 노드 장치들(100-1 내지 100-n)마다 부여되는 고유한 값일 수 있다. 고유한 값은 작업 노드 장치들(100-1 내지 100-n)의 정보로 작업 노드 장치들(100-1 내지 100-n)의 하드웨어 구성 정보와 가용 자원 정보, 네트워크 주소를 포함할 수 있다.
메시지 처리 모듈(2113)은 메시지 처리 모듈(1153)의 동작과 동일한 동작을 수행할 수 있다. 이에, 메시지 처리 모듈(2113)에 관한 상세한 설명은 생략한다. 메시지 처리 모듈(2113)은 메시지 처리 모듈(1153)과 공개된 RESTful API와 제공하는 기능에 차이가 있을 수 있다.
노드 선택 모듈(2115)은 목적지 노드 요청 메시지를 수신한 경우 최종적으로 서비스(111)를 작업 노드 장치들(100-1 내지 100-n) 중에서 작업 노드 장치로 이동할지 결정할 수 있다. 노드 선택 모듈(2115)은 서비스(111)의 최소 자원 요구량과 작업 노드 장치들(100-1 내지 100-n)의 자원 사용량을 전송받아 작업 노드 장치들(100-1 내지 100-n) 중에서 서비스(111)가 이동할 작업 노드 장치를 선택할 수 있다. 노드 선택 모듈(2115)은 선택한 작업 노드 장치로 서비스(111)의 복구를 요청하는 서비스 복구 메시지를 전송할 수 있다.
도 9는 서비스 이동 지원을 위한 시스템의 전체 동작을 설명하기 위한 순서도이다. 도 9에서는 설명의 편의를 위해 현재 서비스(111)가 작업 노드 장치(100-1)에서 실행되고 있는 것으로 가정한다.
마스터 노드 장치(200)의 노드 관리자(211)가 실행될 수 있다(910). 작업 노드 장치(100)의 서비스 관리자(115)가 수행되어 작업 노드 장치(100-1)를 노드 관리자(211)에 등록할 수 있다(915).
서비스 관리자(115)는 사용자 요청에 의해 서비스(111)를 위한 컨테이너가 생성되면 서비스(111)를 등록할 수 있다(920).
서비스(111)는 서비스 관리자(115)에 서비스(111)가 등록되면 자원 검사 스레드를 생성하고 서비스(111)를 수행할 수 있다(925 및 930)
서비스(111)는 자원 검사 스레드를 통해 현재 서비스(111)의 자원 사용량을 획득할 수 있다. 서비스(111)는 자원 사용량을 서비스(111)를 위한 최소 자원 요구량과 비교하여 서비스(111)의 이동 여부를 판단할 수 있다(935).
서비스(111)는 서비스(111)의 이동이 필요하다고 판단하면 서비스 관리자(115)로 서비스 이동 요청 메시지를 전송할 수 있다(940).
서비스 관리자(115)는 서비스(111)의 상태를 공유 볼륨(1157)에 저장할 수 있다(945). 서비스 관리자(115)는 노드 관리자(211)에게 서비스 이동 요청 메시지를 전송할 수 있다.
노드 관리자(211)는 작업 노드 장치들(100-2 내지 100-n) 중에서 서비스(111)를 이동시킬 작업 노드 장치(100)를 선택할 수 있다(950). 노드 관리자(211)는 서비스(111)를 복구할 선택된 작업 노드 장치의 서비스 관리자(115)로 공유 볼륨(1157)에 저장된 서비스에 대하여 복구를 요청하는 서비스 복구 요청 메시지를 전송한다.
서비스 관리자(115)는 서비스 복구 요청 메시지에 응답하여 공유 볼륨(1157)에 저장된 서비스(111)를 체크포인트에 따라 복구하여 수행할 수 있다(955).
서비스 관리자(115)는 서비스(111)가 수행이 완료되었는지 여부를 판단할 수 있다(960).
서비스 관리자(115)는 서비스(111)가 수행이 완료된 경우 서비스(111)를 종료 및 등록 해제할 수 있다(965, 970)
서비스 이동 지원을 위한 시스템(10)은 서비스 이동을 위한 조건 만족 시 마다 서비스 이동 요청, 체크포인트 생성, 이동할 작업 노드 장치 선택 및 서비스 복구 과정을 반복하여 수행할 수 있다. 도 9의 순서도는 하나의 서비스에 대한 생성 및 종료 과정으로 노드 관리자(211)와 서비스 관리자(115)는 종료하지 않을 수 있다.
상술한 바와 같이, 서비스 이동 지원을 위한 시스템(10)은 서비스 간 성능 간섭이나 노드의 가용 자원이 부족한 상황이 발생하더라도 서비스 품질을 위한 최소한의 자원을 서비스가 사용할 수 있도록 보장할 수 있다.
서비스 이동 지원을 위한 시스템(10)은 서비스가 다양한 작업을 수행하거나, 수행 단계에 따라 서비스 품질을 만족하기 위한 자원 요구 사항이 변경되더라도 서비스가 수행되는데 필요한 자원을 확보할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계;
    상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계;
    상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계; 및
    상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계
    를 포함하는 서비스 이동 지원 방법.
  2. 제1항에 있어서,
    상기 서비스 관리자가 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는 단계
    를 더 포함하는 서비스 이동 지원 방법.
  3. 제2항에 있어서,
    상기 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는 단계
    를 더 포함하는 서비스 이동 지원 방법.
  4. 제3항에 있어서,
    상기 저장하는 단계는,
    상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는 단계
    를 포함하는 서비스 이동 지원 방법.
  5. 제4항에 있어서,
    상기 복구하는 단계는,
    상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하는 단계; 및
    상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는 단계
    를 포함하는 서비스 이동 지원 방법.
  6. 제2항에 있어서,
    상기 서비스 복구 메시지는,
    상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송되는
    서비스 이동 지원 방법.
  7. 제6항에 있어서,
    상기 서비스 복구 메시지는,
    상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되는
    서비스 이동 지원 방법.
  8. 제1항에 있어서,
    상기 비교하는 단계는,
    상기 서비스가 상기 자원 사용량을 검사하는 단계;
    상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 계산하는 단계;
    상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하는 단계
    상기 필요량을 상기 최소 자원 요구량에 적용하는 단계
    를 포함하는 서비스 이동 지원 방법.
  9. 제1항에 있어서,
    상기 서비스 관리자가 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는 단계
    를 더 포함하는 서비스 이동 지원 방법.
  10. 제9항에 있어서,
    상기 서비스 관리자가 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는 단계
    를 더 포함하는 서비스 이동 지원 방법.
  11. 서비스 이동 지원을 위한 인스트럭션들을 저장하는 메모리; 및
    상기 인스트럭션들을 실행하기 위한 프로세서
    를 포함하고,
    상기 프로세서는,
    서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하고, 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 서비스; 및
    상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하고, 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 서비스 관리자
    를 실행하는 서비스 이동 지원을 위한 작업 노드 장치.
  12. 제11항에 있어서,
    상기 서비스 관리자는,
    상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는
    서비스 이동 지원을 위한 작업 노드 장치.
  13. 제12항에 있어서,
    상기 서비스 관리자는,
    상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는
    서비스 이동 지원을 위한 작업 노드 장치.
  14. 제13항에 있어서,
    상기 서비스 관리자는,
    상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는
    서비스 이동 지원을 위한 작업 노드 장치.
  15. 제14항에 있어서,
    상기 서비스 관리자는,
    상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하고,
    상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는
    서비스 이동 지원을 위한 작업 노드 장치.
  16. 제12항에 있어서,
    상기 서비스 복구 메시지는,
    상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송되는
    서비스 이동 지원을 위한 작업 노드 장치.
  17. 제16항에 있어서,
    상기 서비스 복구 메시지는,
    상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되는
    서비스 이동 지원을 위한 작업 노드 장치.
  18. 제11항에 있어서,
    상기 서비스는,
    상기 자원 사용량을 검사하고,
    상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 각각 계산하고,
    상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하고,
    상기 필요량을 상기 최소 자원 요구량에 적용하는
    서비스 이동 지원을 위한 작업 노드 장치.
  19. 제11항에 있어서,
    상기 서비스 관리자는,
    사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는
    서비스 이동 지원을 위한 작업 노드 장치.
  20. 제19항에 있어서,
    상기 서비스 관리자는,
    상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는
    서비스 이동 지원을 위한 작업 노드 장치.
KR1020190129761A 2019-10-18 2019-10-18 서비스 이동 지원을 위한 방법 및 시스템 KR102248443B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190129761A KR102248443B1 (ko) 2019-10-18 2019-10-18 서비스 이동 지원을 위한 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129761A KR102248443B1 (ko) 2019-10-18 2019-10-18 서비스 이동 지원을 위한 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210046251A true KR20210046251A (ko) 2021-04-28
KR102248443B1 KR102248443B1 (ko) 2021-05-04

Family

ID=75720891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129761A KR102248443B1 (ko) 2019-10-18 2019-10-18 서비스 이동 지원을 위한 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102248443B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102559351B1 (ko) * 2022-12-30 2023-07-25 주식회사 에스티씨랩 디지털 서비스 기반 트래픽 스파이크 평탄화 기술을 이용한 리소스 최적화 시스템 및 진입 관리 서버

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101256918B1 (ko) * 2011-12-15 2013-04-25 숭실대학교산학협력단 클라우드 서비스의 확장성과 가용성을 향상시키는 방법 및 그 시스템
KR101264895B1 (ko) * 2011-05-12 2013-05-15 성균관대학교산학협력단 가상 머신 마이그레이션 처리 장치 및 방법
KR20130083032A (ko) * 2011-12-28 2013-07-22 대전대학교 산학협력단 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법
KR20140001988A (ko) * 2011-02-18 2014-01-07 아브 이니티오 테크놀로지 엘엘시 데이터 처리 시스템의 재기동
KR101578177B1 (ko) * 2014-09-12 2015-12-16 성균관대학교산학협력단 클라우드 컴퓨팅 환경에서의 자원 이용률에 기초한 마이그레이션 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140001988A (ko) * 2011-02-18 2014-01-07 아브 이니티오 테크놀로지 엘엘시 데이터 처리 시스템의 재기동
KR101264895B1 (ko) * 2011-05-12 2013-05-15 성균관대학교산학협력단 가상 머신 마이그레이션 처리 장치 및 방법
KR101256918B1 (ko) * 2011-12-15 2013-04-25 숭실대학교산학협력단 클라우드 서비스의 확장성과 가용성을 향상시키는 방법 및 그 시스템
KR20130083032A (ko) * 2011-12-28 2013-07-22 대전대학교 산학협력단 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법
KR101578177B1 (ko) * 2014-09-12 2015-12-16 성균관대학교산학협력단 클라우드 컴퓨팅 환경에서의 자원 이용률에 기초한 마이그레이션 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102559351B1 (ko) * 2022-12-30 2023-07-25 주식회사 에스티씨랩 디지털 서비스 기반 트래픽 스파이크 평탄화 기술을 이용한 리소스 최적화 시스템 및 진입 관리 서버

Also Published As

Publication number Publication date
KR102248443B1 (ko) 2021-05-04

Similar Documents

Publication Publication Date Title
US11385939B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
EP2893443B1 (en) Re-configuration in cloud computing environments
US9626172B2 (en) Deploying a cluster
US9002997B2 (en) Instance host configuration
JP6549787B2 (ja) ネットワークサービスをデプロイするための方法及び装置
US9201644B2 (en) Distributed update service
US9697050B2 (en) System and method for scaling for a large number of concurrent users
US20200136933A1 (en) System and a method for optimized server-less service virtualization
US9998399B2 (en) Cloud independent tuning service for autonomously managed workloads
JP7086065B2 (ja) アプリケーションリンク拡張方法、装置、及びシステム
CN112384895A (zh) 使用函数检查点实现服务枢纽的函数可移植性
US10091067B2 (en) Discovering and publishing device changes in a cloud environment
US11108871B2 (en) Dynamic generation of network routing configuration with service requirements
US20140207919A1 (en) Instance configuration on remote platforms
KR20150110688A (ko) 인스턴스 호스트 구성
Ganga et al. A fault tolerent approach in scientific workflow systems based on cloud computing
KR102519721B1 (ko) 컴퓨팅 자원 관리 장치 및 방법
WO2017017937A1 (ja) 配備装置、配備方法、及び、記録媒体
US20080282242A1 (en) Simulation management within a grid infrastructure
KR102248443B1 (ko) 서비스 이동 지원을 위한 방법 및 시스템
Meroufel et al. Optimization of checkpointing/recovery strategy in cloud computing with adaptive storage management
US9342291B1 (en) Distributed update service
Villegas et al. Mapping non-functional requirements to cloud applications.
Samir et al. Autoscaling recovery actions for container‐based clusters
Devi et al. Self-healing fault tolerance technique in cloud datacenter

Legal Events

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