KR102248443B1 - Method and system for supporting survice movement - Google Patents

Method and system for supporting survice movement Download PDF

Info

Publication number
KR102248443B1
KR102248443B1 KR1020190129761A KR20190129761A KR102248443B1 KR 102248443 B1 KR102248443 B1 KR 102248443B1 KR 1020190129761 A KR1020190129761 A KR 1020190129761A KR 20190129761 A KR20190129761 A KR 20190129761A KR 102248443 B1 KR102248443 B1 KR 102248443B1
Authority
KR
South Korea
Prior art keywords
service
node device
work node
work
movement
Prior art date
Application number
KR1020190129761A
Other languages
Korean (ko)
Other versions
KR20210046251A (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 KR1020190129761A priority Critical patent/KR102248443B1/en
Publication of KR20210046251A publication Critical patent/KR20210046251A/en
Application granted granted Critical
Publication of KR102248443B1 publication Critical patent/KR102248443B1/en

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

Abstract

서비스 이동 지원을 위한 방법 및 시스템이 개시된다. 일 실시예에 따른 서비스 이동 지원을 위한 방법은, 작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계와, 상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계와, 상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계와, 상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계를 포함한다.A method and system for supporting service movement are disclosed. A method for supporting service movement according to an embodiment includes the steps of comparing a resource usage of the service and a minimum resource request amount for the service by a service being performed in a work node device, and the service is determined based on the comparison result. Generating a service movement request message for moving a service, and generating a destination node request message for another work node device to which the service is to be moved in response to the service movement request message by a service manager of the work node device; and And transmitting, by the service manager, the destination node request message to a master node device that manages work node devices.

Description

서비스 이동 지원을 위한 방법 및 시스템{METHOD AND SYSTEM FOR SUPPORTING SURVICE MOVEMENT}METHOD AND SYSTEM FOR SUPPORTING SURVICE MOVEMENT}

아래 실시예들은 서비스 이동 지원을 위한 방법 및 시스템에 관한 것이다.The following embodiments relate to a method and system for supporting service movement.

클라우드 컴퓨팅은 인터넷을 통하여 원격지의 컴퓨팅 자원을 사용하고, 사용한 만큼 비용을 지불하는 형태의 컴퓨팅 방식이다. 사용자는 필요한 컴퓨팅 자원의 종류와 양을 선택하고, 클라우드 공급자는 요청된 컴퓨팅 자원만큼 프로비저닝(provisioning) 하여 사용자에게 컴퓨팅 환경을 제공한다.Cloud computing is a form of computing that uses remote computing resources through the Internet and pays for what they use. The user selects the type and amount of required computing resources, and the cloud provider provides a computing environment to the user by provisioning as much as the requested computing resources.

클라우드 컴퓨팅 환경에서는 가상화 기술을 통해 컴퓨팅 자원을 분할하여 단일 노드 상에 복수의 서비스들을 운용할 수 있다. 클라우드 컴퓨팅 환경에서 복수의 서비스들 각각은 가상 머신이나 컨테이너 기반의 독립된 환경으로 구성된다.In a cloud computing environment, a plurality of services can be operated on a single node by dividing computing resources through virtualization technology. In a cloud computing environment, each of a plurality of services is configured as an independent environment based on a virtual machine or container.

클라우드 컴퓨팅 환경에서의 서비스 품질은 서비스가 사용하는 자원량에 영향을 받는다. 서비스는 여러 작업이 포함될 수 있으며, 서비스의 작업 내용이나 수행 단계에 따라 서비스가 사용하는 자원의 종류나 필요한 자원의 양이 다를 수 있다.The quality of service in a cloud computing environment is affected by the amount of resources used by the service. A service may include several tasks, and the type of resources used by the service or the amount of resources required may differ depending on the task content or execution stage of the service.

클라우드 공급자는 사용자와 일정 수준 이상의 서비스를 제공한다는 내용의 서비스 수준 협약을 맺는다. 기존 클라우드 플랫폼에서 제공하는 서비스 수준 협약의 경우 서버의 운용 시간이나 API 요청에 따른 응답률, I/O 성공률 등 서버의 가용성 측면에 집중된 경향이 있다. 이는 서비스가 클라우드 서버에서 동작한다는 것은 보장할 수 있지만, 실제로 서비스의 응용 수준에서의 품질을 보장한다고 할 수는 없다.The cloud provider enters into a service level agreement with users to provide a certain level of service. In the case of service level agreements provided by existing cloud platforms, there is a tendency to focus on server availability, such as server operation time, response rate according to API requests, and I/O success rate. This can guarantee that the service operates on the cloud server, but it cannot be said to guarantee the quality at the application level of the service.

클라우드 공급자는 사용자가 선택한 자원 요구 사항을 수용할 수 있는 노드를 선정해 자원을 할당한다. 원칙적으로, 서비스의 요구 사항보다 자원이 부족한 노드에는 서비스를 할당할 수 없다. 하지만, 클라우드 공급자는 노드에서 운영되는 서비스들이 동시에 최대치의 자원을 요구하지 않는다는 가정 하에 서비스를 할당한다. 즉, 클라우드 공급자는 노드의 효율성을 높이기 위해 노드의 총 컴퓨팅 자원량을 조금 상회하도록 서비스를 할당한다. 이러한 경우, 노드의 상황에 따라 서비스들 간에 성능 간섭이 발생하거나 전체 서비스들이 요구한 자원의 총 합이 노드의 가용 자원을 상회하여 서비스의 품질을 보장하지 못할 가능성이 있다.The cloud provider allocates resources by selecting a node that can accommodate the resource requirements selected by the user. In principle, services cannot be allocated to nodes that have less resources than the service requirements. However, the cloud provider allocates services under the assumption that the services operated in the node do not require the maximum amount of resources at the same time. In other words, the cloud provider allocates services to slightly exceed the total amount of computing resources of the node in order to increase the efficiency of the node. In this case, there is a possibility that performance interference may occur between services depending on the situation of the node, or the total sum of resources requested by all services exceeds the available resources of the node, and thus the quality of service may not be guaranteed.

기존의 클라우드 컴퓨팅 플랫폼의 경우 부하가 있는 서비스를 대상으로 스케일 인/아웃을 통해 서비스를 확장하거나 다른 노드로 서비스를 이동하여 동작하도록 지원하고 있다. 기존의 클라우드 컴퓨팅 플랫폼은 부하가 있는 서비스가 충분한 자원을 확보할 수 있도록 지원하지만 서비스를 이동하거나 확장하는 과정에서 다른 서비스에 영향을 줄 수 있는 가능성이 있다. 따라서, 범용적인 서비스 품질 보장을 위해 특정 서비스가 많은 자원을 사용할 때 다른 서비스가 서비스 품질을 만족하는지 확인할 필요가 있다. 결과적으로, 동적으로 상황이 변하는 클라우드 컴퓨팅 환경에서 서비스가 품질 보장에 필요한 최소한의 자원을 사용할 수 있도록 지원하는 방법이 필요하다.In the case of the existing cloud computing platform, the service is expanded through scale-in/out for a service with a load, or the service is moved to another node to operate. Existing cloud computing platforms support services under load to secure enough resources, but there is a possibility that other services may be affected in the process of moving or expanding services. Therefore, in order to guarantee general service quality, it is necessary to check whether another service satisfies the service quality when a specific service uses many resources. As a result, there is a need for a method of supporting services to use the minimum resources necessary for quality assurance in a cloud computing environment that dynamically changes circumstances.

하지만, 서비스의 품질을 만족하기 위한 최소한의 컴퓨팅 자원 정보는 서비스를 개발하는 서비스 제공자만이 알 수 있다. 그러므로 클라우드 관리자가 각 서비스의 최소 자원 요구량을 파악하여 자원을 조정하는 방식으로 응용 수준의 서비스 품질을 보장하기에는 어려움이 있다.However, only the service provider who develops the service can know the minimum computing resource information for satisfying the quality of service. Therefore, it is difficult for the cloud administrator to ensure the service quality at the application level by adjusting the resources by grasping the minimum resource requirements of each service.

실시예들은 서비스에서 직접 서비스의 자원 사용량을 확인하고, 자원 사용량이 최소 자원 요구량에 미치지 못하는 경우 서비스가 다른 작업 노드 장치로 이동을 요청함으로써, 클라우드 컴퓨팅 환경에서 수행되는 서비스의 품질을 유지할 수 있다.In embodiments, the service directly checks the resource usage of the service, and when the resource usage does not meet the minimum resource requirement, the service requests the movement to another work node device, thereby maintaining the quality of the service performed in the cloud computing environment.

일 실시예에 따른 서비스 이동 지원을 위한 방법은, 작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계와, 상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계와, 상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계와, 상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계를 포함한다.A method for supporting service movement according to an embodiment includes the steps of comparing a resource usage of the service and a minimum resource request amount for the service by a service being performed in a work node device, and the service is determined based on the comparison result. Generating a service movement request message for moving a service, and generating a destination node request message for another work node device to which the service is to be moved in response to the service movement request message by a service manager of the work node device; and And transmitting, by the service manager, the destination node request message to a master node device that manages work node devices.

상기 방법은, 상기 서비스 관리자가 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는 단계를 더 포함할 수 있다.The method may further include, by the service manager, restoring the service in response to a service restoration message transmitted in response to the destination node request message from the master node device.

상기 방법은, 상기 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는 단계를 더 포함할 수 있다.The method may further include storing the service in a shared volume shared by work node devices managed by the master node device in response to the service movement request message by the service manager.

상기 저장하는 단계는, 상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는 단계를 포함할 수 있다.The storing may include storing a checkpoint for re-performing the service from the point performed by the other work node device following the point performed by the work node device.

상기 복구하는 단계는, 상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하는 단계와, 상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는 단계를 포함할 수 있다.The restoring may include receiving the service restoration message from the master node device, and restoring a service stored in the shared volume according to the checkpoint in response to the service restoration message.

상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송될 수 있다.The service recovery message may be generated when the master node device selects any one of the work node devices managed by the master node device in response to the destination node request message, and may be transmitted to any one of the operation node devices.

상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성될 수 있다.In the service recovery message, the master node device receives the minimum resource request amount and available resource information of work node devices managed by the master node device, and the master node device receives the minimum resource request amount and the available resource information. It can be created when any one of the work node devices managed by the node device is selected.

상기 비교하는 단계는, 상기 서비스가 상기 자원 사용량을 검사하는 단계;The comparing may include checking, by the service, the resource usage;

상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 각각 계산하는 단계와, 상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하는 단계와, 상기 필요량을 상기 최소 자원 요구량에 적용하는 단계를 포함할 수 있다.Calculating a plurality of resources being used by the service using the resource usage, and calculating a required amount of each of the plurality of resources required for the service based on a relationship between the plurality of resources being used by the service And applying the required amount to the minimum resource requirement.

상기 방법은, 상기 서비스 관리자가 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는 단계를 더 포함할 수 있다.The method may further include the step of registering, by the service manager, the service for which a container has been created at the request of a user.

상기 방법은, 상기 서비스 관리자가 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는 단계를 더 포함할 수 있다.The method may further include the step of deregistering the service when the service manager ends the execution of the service.

일 실시예에 따른 작업 노드 장치는, 서비스 이동 지원을 위한 인스트럭션들을 저장하는 메모리와, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 프로세서는, 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하고, 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 서비스와, 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하고, 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 서비스 관리자를 실행한다.A work node device according to an embodiment includes a memory for storing instructions for supporting service movement, and a processor for executing the instructions, and the processor includes a resource usage of a service and a minimum resource requirement for the service. Compare and generate a service for generating a service movement request message for moving the service based on the comparison result, and a destination node request message for another work node device to which the service is to be moved in response to the service movement request message, and , Executes a service manager that transmits the destination node request message to a master node device that manages work node devices.

상기 서비스 관리자는, 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구할 수 있다.The service manager may restore the service in response to a service restoration message transmitted in response to the destination node request message from the master node device.

상기 서비스 관리자는, 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장할 수 있다.The service manager may store the service in a shared volume shared by work node devices managed by the master node device in response to the service movement request message.

상기 서비스 관리자는, 상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장할 수 있다.The service manager may store a checkpoint for re-performing the service from a point performed by the work node device and then from a point performed by the other work node device.

상기 서비스 관리자는, 상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하고, 상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구할 수 있다.The service manager may receive the service recovery message from the master node device and restore a service stored in the shared volume according to the checkpoint in response to the service recovery message.

상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송될 수 있다.The service recovery message may be generated when the master node device selects any one of the work node devices managed by the master node device in response to the destination node request message, and may be transmitted to any one of the operation node devices.

상기 서비스 복구 메시지는, 상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성될 수 있다.In the service recovery message, the master node device receives the minimum resource request amount and available resource information of work node devices managed by the master node device, and the master node device receives the minimum resource request amount and the available resource information. It can be created when any one of the work node devices managed by the node device is selected.

상기 서비스는, 상기 자원 사용량을 검사하고, 상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들 각각을 계산하고, 상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하고, 상기 필요량을 상기 최소 자원 요구량에 적용할 수 있다.The service checks the resource usage, calculates each of a plurality of resources being used by the service using the resource usage, and the service required for the service based on a relationship between a plurality of resources being used by the service. A required amount of each of a plurality of resources may be calculated, and the required amount may be applied to the minimum resource required amount.

상기 서비스 관리자는, 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록할 수 있다.The service manager may register the service for which the container was created at the request of a user.

상기 서비스 관리자는, 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제할 수 있다.The service manager may deregister the service when execution of the service is terminated.

도 1은 일 실시예에 따른 서비스 이동 지원을 위한 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 작업 노드 장치를 개략적으로 나타낸 도면이다.
도 3은 도 2에 도시된 프로세서를 개략적으로 나타낸 도면이다.
도 4는 도 3에 도시된 서비스를 개략적으로 나타낸 도면이다.
도 5는 도 3에 도시된 서비스 관리자를 개략적으로 나타낸 도면이다.
도 6은 도 4에 도시된 자원 검사 모듈의 동작을 상세하게 설명하기 위한 순서도이다.
도 7은 도 1에 도시된 마스터 노드 장치를 개략적으로 나타낸 도면이다.
도 8은 도 7에 도시된 노드 관리자를 개략적으로 나타낸 도면이다.
도 9는 서비스 이동 지원을 위한 시스템의 전체 동작을 설명하기 위한 순서도이다.
1 is a diagram illustrating a system for supporting service movement according to an embodiment.
FIG. 2 is a diagram schematically illustrating a work node device illustrated in FIG. 1.
FIG. 3 is a schematic diagram of the processor shown in FIG. 2.
FIG. 4 is a diagram schematically illustrating the service shown in FIG. 3.
5 is a diagram schematically illustrating the service manager shown in FIG. 3.
6 is a flowchart for explaining in detail the operation of the resource check module shown in FIG. 4.
7 is a diagram schematically illustrating a master node device shown in FIG. 1.
FIG. 8 is a diagram schematically illustrating the node manager shown in FIG. 7.
9 is a flowchart illustrating the overall operation of a system for supporting service movement.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.

제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by terms. The terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of rights according to the concept of the embodiment, the first component may be named as the second component, and similarly The second component may also be referred to as a first component.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in the present specification may mean hardware capable of performing functions and operations according to each name described in the present specification, or may mean a computer program code capable of performing a specific function and operation. Or, it may mean an electronic recording medium, for example, a processor or a microprocessor in which a computer program code capable of performing a specific function and operation is mounted.

다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and/or structural combination of hardware for performing the technical idea of the present invention and/or software for driving the hardware.

도 1은 일 실시예에 따른 서비스 이동 지원을 위한 시스템을 나타낸 도면이다.1 is a diagram illustrating a system for supporting service movement according to an embodiment.

서비스 이동 지원을 위한 시스템(10)은 작업 노드 장치(100) 및 마스터 노드 장치(200)를 포함한다.The system 10 for supporting service movement includes a work node device 100 and a master node device 200.

서비스 이동 지원을 위한 시스템(10)은 클라우드 컴퓨팅 운용 환경에서 동일한 작업 노드 장치 상에 동작하는 복수의 서비스들 간의 간섭 상황이나 작업 노드 장치의 가용 자원이 부족한 상황이 발생하는 경우, 응용 수준에서 서비스 품질을 유지할 수 있다. 즉, 서비스 이동 지원을 위한 시스템(10)은 서비스 스스로 서비스 품질을 유지할 수 없다고 판단하는 경우 서비스가 수행되는 작업 노드 장치의 변경을 요청함으로써, 서비스가 품질을 유지할 수 있는 자원을 확보하고 동작할 수 있다.The system 10 for supporting service movement is the service quality at the application level when an interference situation between a plurality of services operating on the same work node device in a cloud computing operation environment or a situation in which the available resources of the work node device are insufficient occurs. Can be maintained. That is, when the system for supporting service movement 10 determines that the service itself cannot maintain the quality of service, by requesting a change of the work node device on which the service is performed, the service can secure and operate the resources capable of maintaining the quality. have.

작업 노드 장치(100)는 수행되는 복수의 서비스들 중에서 자원을 많이 사용하는 어느 하나 이상의 서비스들로 인하여 다른 하나 이상의 서비스들이 수행되는데 영향을 받는 경우, 다른 하나 이상의 서비스들을 다른 작업 노드 장치로 이동시킬 수 있다. 작업 노드 장치(100)는 다른 하나 이상의 서비스들을 다른 작업 노드 장치로 이동시키기 위하여 마스터 노드 장치(200)로 목적지 노드 요청 메시지를 전송할 수 있다.The work node device 100 may move one or more other services to another work node device when one or more other services are affected by one or more services that use a lot of resources among the plurality of services being performed. I can. The work node device 100 may transmit a destination node request message to the master node device 200 in order to move one or more other services to another work node device.

작업 노드 장치(100)는 마스터 노드 장치(200)로부터 전송되는 서비스 복구 메시지에 응답하여 다른 하나 이상의 서비스들을 복구하여 수행할 수 있다. 복구한다는 것은 작업 노드 장치(100)가 이동된 서비스들을 이동되기 전까지 수행된 지점에 이어 재수행할 수 있다는 것을 의미할 수 있다. 예를 들어, 작업 노드 장치(100)는 이동된 서비스들이 이동되기 전 30% 지점까지 작업이 수행된 경우, 30% 지점에서부터 다시 서비스를 재수행할 수 있다.The work node device 100 may recover and perform one or more other services in response to a service recovery message transmitted from the master node device 200. Restoring may mean that the work node device 100 can perform the moved services again following the point performed before the movement. For example, when a task is performed up to a 30% point before the moved services are moved, the work node device 100 may re-perform the service again from the 30% point.

작업 노드 장치(100)는 복수의 작업 노드 장치들(100-1 내지 100-n)을 포함할 수 있다. 작업 노드 장치들(100-1 내지 100-n)은 각각이 작업 노드 장치(100)와 동일한 동작을 수행할 수 있다.The work node device 100 may include a plurality of work node devices 100-1 to 100-n. Each of the work node devices 100-1 to 100-n may perform the same operation as the work node device 100.

마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n)을 관리할 수 있다. 마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 각각의 자원 사용량에 기초하여 서비스가 이동할 작업 노드 장치(100)를 선택할 수 있다.The master node device 200 may manage the work node devices 100-1 to 100-n. The master node device 200 may select the work node device 100 to which the service is to be moved based on the resource usage of each of the work node devices 100-1 to 100-n.

마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 어느 하나로부터 목적지 노드 요청 메시지를 수신할 수 있다. 마스터 노드 장치(200)는 목적지 노드 요청 메시지에 응답하여 마스터 노드 장치(200)가 관리하는 작업 노드 장치들(100-1 내지 100-n) 중에서 서비스의 품질을 보장할 수 있는 다른 하나를 선택할 수 있다. 마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 다른 하나를 선택한 경우 서비스 복구 메시지를 생성할 수 있다.The master node device 200 may receive a destination node request message from any one of the work node devices 100-1 to 100-n. The master node device 200 may select another one capable of guaranteeing the quality of service from among the work node devices 100-1 to 100-n managed by the master node device 200 in response to the destination node request message. have. The master node device 200 may generate a service recovery message when another one of the work node devices 100-1 to 100-n is selected.

예를 들어, 마스터 노드 장치(200)는 서비스가 필요로 하는 최소 자원 요구량 및 작업 노드 장치들(100-1 내지 100-n)의 사용 가능한 자원 정보를 수신할 수 있다. 마스터 노드 장치(200)는 서비스가 필요로 하는 최소 자원 요구량 및 작업 노드 장치들(100-1 내지 100-n)의 사용 가능한 자원 정보에 기초하여 작업 노드 장치들(100-1 내지 100-n) 중에서 다른 하나를 선택한 경우 서비스 복구 메시지를 생성할 수 있다.For example, the master node device 200 may receive a minimum resource request amount required by a service and available resource information of the work node devices 100-1 to 100-n. The master node device 200 is based on the minimum resource demand required by the service and the available resource information of the work node devices 100-1 to 100-n, the work node devices 100-1 to 100-n. If the other is selected, a service recovery message can be generated.

마스터 노드 장치(200)는 작업 노드 장치들(100-1 내지 100-n) 중에서 선택한 작업 노드 장치로 서비스 복구 메시지를 전송할 수 있다.The master node device 200 may transmit a service recovery message to a work node device selected from among the work node devices 100-1 to 100-n.

도 2는 도 1에 도시된 작업 노드 장치를 개략적으로 나타낸 도면이고, 도 3은 프로세서를 개략적으로 나타낸 도면이다.FIG. 2 is a diagram schematically illustrating a work node device illustrated in FIG. 1, and FIG. 3 is a diagram schematically illustrating a processor.

작업 노드 장치(100)는 프로세서(110), 및 메모리(150)를 포함할 수 있다.The work node device 100 may include a processor 110 and a memory 150.

프로세서(110)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor) 중 하나 또는 그 이상을 포함할 수 있다.The processor 110 may include one or more of a central processing unit, an application processor, and a communication processor.

프로세서(110)는 작업 노드 장치(100)의 적어도 하나의 다른 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(110)는 메모리(150)에 저장된 어플리케이션 및/또는 소프트웨어 등(예를 들어, 서비스 및 서비스 관리자)을 실행할 수 있다.The processor 110 may perform an operation or data processing related to control of at least one other component of the work node device 100. For example, the processor 110 may execute an application and/or software (eg, service and service manager) stored in the memory 150.

프로세서(110)는 수신한 데이터 및 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(110)는 메모리(150)에 저장된 데이터를 처리할 수 있다. 프로세서(110)는 메모리(150)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(110)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 110 may process the received data and data stored in the memory 250. The processor 110 may process data stored in the memory 150. The processor 110 may execute computer-readable code (eg, software) stored in the memory 150 and instructions induced by the processor 110.

프로세서(110)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 110 may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented in hardware is a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA).

메모리(150)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(150)는, 작업 노드 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.The memory 150 may include volatile and/or nonvolatile memory. The memory 150 may store commands and/or data related to at least one other component of the work node device 100.

메모리(510)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(150)는 서비스 이동 지원을 위한 어플리케이션 및 소프트 웨어 등(예를 들어, 서비스 및 서비스 관리자)을 저장할 수 있다.The memory 510 may store software and/or a program. For example, the memory 150 may store applications and software (eg, service and service manager) for supporting service movement.

프로세서(110)는 서비스(111) 및 서비스 관리자(115)를 실행할 수 있다.The processor 110 may execute the service 111 and the service manager 115.

서비스(111)는 서비스(111)의 자원 사용량을 검사할 수 있다. 서비스(111)는 자원 사용량을 이용하여 서비스(111)가 사용중인 복수의 자원들을 각각 계산할 수 있다. 예를 들어, 서비스(111)가 사용중인 복수의 자원들은 CPU 사용량, 메모리 사용량, 스토리지 사용량, 네트워크 사용량 등일 수 있다. 서비스(111)는 서비스(111)가 사용중인 복수의 자원들 간의 관계에 기초하여 서비스(111)에 필요한 복수의 자원들 각각의 필요량을 계산할 수 있다. 서비스(111)는 필요량을 최소 자원 요구량에 적용할 수 있다.The service 111 may check the resource usage of the service 111. The service 111 may each calculate a plurality of resources being used by the service 111 by using the resource usage. For example, the plurality of resources being used by the service 111 may be CPU usage, memory usage, storage usage, network usage, and the like. The service 111 may calculate a required amount of each of a plurality of resources required for the service 111 based on a relationship between a plurality of resources being used by the service 111. The service 111 may apply the required amount to the minimum resource demand.

서비스(111)는 서비스(111)의 자원 사용량 및 서비스(111)를 위한 최소 자원 요구량을 비교할 수 있다. 서비스(111)는 비교 결과에 기초하여 서비스(111)의 이동을 위한 서비스 이동 요청 메시지를 생성할 수 있다. 예를 들어, 서비스(111)는 자원 사용량이 최소 자원 요구량 이하인 경우, 서비스 이동 요청 메시지를 생성할 수 있다. 서비스(111)는 작업 노드 장치(100)에서 복수개가 수행될 수 있다.The service 111 may compare the resource usage of the service 111 and the minimum resource requirement for the service 111. The service 111 may generate a service movement request message for movement of the service 111 based on the comparison result. For example, the service 111 may generate a service movement request message when the resource usage is less than the minimum resource requirement. A plurality of services 111 may be performed by the work node device 100.

서비스(111)는 서비스 이동 요청 메시지를 서비스 관리자(115)로 전송할 수 있다.The service 111 may transmit a service movement request message to the service manager 115.

서비스 관리자(115)는 사용자의 요청에 의해 컨테이너가 생성된 서비스(111)를 등록할 수 있다.The service manager 115 may register the service 111 for which a container is created at the request of a user.

서비스 관리자(115)는 서비스 이동 요청 메시지에 응답하여 서비스(111)를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성할 수 있다. 즉, 목적지 노드 요청 메시지는 마스터 노드 장치(200)에게 서비스 이동 요청 메시지를 생성한 서비스가 이동할 다른 작업 노드 장치(100)를 요청하는 메시지일 수 있다.The service manager 115 may generate a destination node request message for another work node device to which the service 111 is to be moved in response to the service movement request message. That is, the destination node request message may be a message requesting the master node device 200 for another work node device 100 to which the service that generated the service movement request message will move.

서비스 관리자(115)는 목적지 노드 요청 메시지를 작업 노드 장치들(100-1 내지 100-n)을 관리하는 마스터 노드 장치(200)로 전송할 수 있다.The service manager 115 may transmit a destination node request message to the master node device 200 that manages the work node devices 100-1 to 100-n.

서비스 관리자(115)는 서비스 이동 요청 메시지에 응답하여 서비스(111)를 마스터 노드 장치(200)가 관리하는 작업 노드 장치들(100-1 내지 100-n)이 공유하는 공유 볼륨에 저장할 수 있다. 서비스 관리자(115)는 서비스(111)를 수행된 지점에 이어 다른 작업 노드 장치에서 수행된 지점부터 재수행하기 위한 체크포인트를 저장할 수 있다.The service manager 115 may store the service 111 in a shared volume shared by the work node devices 100-1 to 100-n managed by the master node device 200 in response to the service movement request message. The service manager 115 may store a checkpoint for re-performing from a point performed by another work node device following a point where the service 111 is performed.

서비스 관리자(115)는 마스터 노드 장치(200)로부터 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 서비스(111)를 복구할 수 있다. 서비스 관리자(115)는 마스터 노드 장치(200)로부터 서비스 복구 메시지를 수신할 수 있다. 서비스 관리자(115)는 서비스 복구 메시지에 응답하여 공유 볼륨에 저장된 서비스를 체크포인트에 따라 복구할 수 있다.The service manager 115 may restore the service 111 in response to the service recovery message transmitted in response to the destination node request message from the master node device 200. The service manager 115 may receive a service recovery message from the master node device 200. The service manager 115 may restore a service stored in the shared volume according to a checkpoint in response to the service restore message.

서비스 관리자(115)는 서비스(115)의 수행이 종료되면 서비스(111)를 등록 해제할 수 있다.The service manager 115 may deregister the service 111 when the service 115 is terminated.

도 4는 도 3에 도시된 서비스를 개략적으로 나타낸 도면이다.FIG. 4 is a diagram schematically illustrating the service shown in FIG. 3.

서비스(111)는 전처리 모듈(1111), 자원 검사 모듈(1113) 및 서비스 수행 모듈(1115)을 포함할 수 있다.The service 111 may include a preprocessing module 1111, a resource inspection module 1113, and a service execution module 1115.

전처리 모듈(1111)은 서비스(111)를 서비스 관리자(115)에 등록하고 서비스 컨테이너의 정보를 전송할 수 있다. 전처리 모듈(1111)은 서비스(111)의 자원 사용량 검사를 수행하는 자원 검사 모듈(1113)을 스레드로 생성할 수 있다. 전처리 모듈(1111)은 자원 검사 모듈(1113)이 생성되면 서비스 수행 모듈(1115)을 활성화시켜 서비스(111)가 수행될 수 있도록 동작할 수 있다.The preprocessing module 1111 may register the service 111 with the service manager 115 and transmit information on the service container. The preprocessing module 1111 may generate a resource inspection module 1113 that performs resource usage inspection of the service 111 as a thread. When the resource check module 1113 is generated, the preprocessing module 1111 may activate the service execution module 1115 so that the service 111 may be performed.

자원 검사 모듈(1113)은 서비스 제공자가 서비스 품질 만족을 위해 정한 서비스(111)의 최소 자원 요구량을 기반으로 서비스(111)가 사용하는 자원 사용량과 비교할 수 있다. 자원 검사 모듈(1113)은 서비스(111)의 현재 자원 사용량이 최소 자원 요구량에 일정 시간 이상 미달하는 경우, 서비스(111)의 품질이 보장되고 있지 않다고 판단할 수 있다.The resource check module 1113 may compare the resource usage used by the service 111 on the basis of the minimum resource request amount of the service 111 determined by the service provider to satisfy the service quality. The resource inspection module 1113 may determine that the quality of the service 111 is not guaranteed when the current resource usage of the service 111 is less than the minimum resource requirement for a predetermined time or more.

자원 검사 모듈(1113)은 서비스의 품질이 보장되고 있지 않은 경우, 서비스 관리자(115)에게 서비스 이동 요청 메시지를 전송할 수 있다. 예를 들어, 서비스 이동 요청 메시지가 증가하여 처리할 작업이 많아지는 경우, 서비스(111)의 품질 만족을 위해 최소 자원 요구량도 증가할 필요가 있다. 이에, 자원 검사 모듈(1113)은 서비스(111)가 사용하는 복수의 자원들 간의 관계에 따라 서비스(111)의 품질 보장을 위해 필요한 복수의 자원들 각각의 필요량을 계산할 수 있다. 자원 검사 모듈(1113)은 복수의 자원들 각각의 필요량을 최소 자원 요구량에 적용할 수 있다. 따라서, 서비스 제공자가 초기에 명시한 최소 자원 요구량은 일정하게 유지되지 않고 처리량(throughoutput)에 따라 최소 자원 요구량이 변경될 수 있다.When the quality of service is not guaranteed, the resource check module 1113 may transmit a service movement request message to the service manager 115. For example, when the number of tasks to be processed increases due to an increase in the number of service movement request messages, the minimum resource demand needs to be increased to satisfy the quality of the service 111. Accordingly, the resource inspection module 1113 may calculate a required amount of each of a plurality of resources necessary for guaranteeing the quality of the service 111 according to a relationship between a plurality of resources used by the service 111. The resource test module 1113 may apply the required amount of each of the plurality of resources to the minimum resource demanded amount. Accordingly, the minimum resource request amount initially specified by the service provider is not kept constant, and the minimum resource request amount may be changed according to throughput.

서비스 수행 모듈(1115)은 서비스를 수행하는 비즈니스 로직(Business logic)일 수 있다.The service execution module 1115 may be business logic that performs a service.

도 5는 도 3에 도시된 서비스 관리자를 개략적으로 나타낸 도면이다.5 is a diagram schematically illustrating the service manager shown in FIG. 3.

서비스 관리자(115)는 관리 모듈(1151), 메시지 처리 모듈(1153), 체크포인트 수행 모듈(1155) 및 공유 볼륨(1157)을 포함할 수 있다.The service manager 115 may include a management module 1151, a message processing module 1153, a checkpoint execution module 1155, and a shared volume 1157.

관리 모듈(1151)은 서비스(111)의 정보를 관리할 수 있다. 관리 모듈(1151)은 서비스(111)의 등록 요청을 처리하고 키:값 구조로 서비스의 정보를 관리할 수 있다. 즉, 서비스(111)는 컨테이너 단위로 구성되고 작업 노드 장치(100)에 속하기 때문에, 작업 노드 장치(100) 안에서만 구별되면 되므로 컨테이너의 ID를 키 값으로 사용할 수 있다. 키 값은 컨테이너의 정보로, 사용한 이미지 ID, 초기 수행 명령어, 마운트 경로, 할당된 네트워크 주소와 같은 컨테이너 구성 정보를 포함할 수 있다.The management module 1151 may manage information on the service 111. The management module 1151 may process a registration request of the service 111 and manage service information in a key:value structure. That is, since the service 111 is configured in a container unit and belongs to the work node device 100, the ID of the container can be used as a key value since it only needs to be distinguished within the work node device 100. The key value is information on the container, and may include container configuration information such as an image ID used, an initial execution command, a mount path, and an assigned network address.

메시지 처리 모듈(1153)은 각 장치가 제공하는 기능을 RESTful API 형태로 공개하고 각 URL 패턴마다 특정한 함수를 호출하는 기능을 수행할 수 있다. 예를 들어, 메시지 처리 모듈(1153)은 서비스(111)나 서비스 관리자(115)로부터 요청 메시지가 발생하는 경우, 요청된 URL 패턴과 일치하는 함수를 호출할 수 있다. 메시지 처리 모듈(1153)은 관련 파라미터들을 URL 패턴 뒤에 JSON 포맷으로 붙여 전송할 수 있다. 관련 파라미터들은 파싱을 거쳐 함수 호출 시 전달될 수 있다.The message processing module 1153 may disclose a function provided by each device in the form of a RESTful API and perform a function of calling a specific function for each URL pattern. For example, when a request message is generated from the service 111 or the service manager 115, the message processing module 1153 may call a function matching the requested URL pattern. The message processing module 1153 may transmit related parameters by pasting the URL pattern in JSON format. Related parameters can be passed through parsing and passed when calling a function.

체크포인트 수행 모듈(1155)은 서비스(111)로부터 서비스 이동 요청 메시지가 전송되면, 수행중인 서비스(111)의 상태를 저장할 수 있다. 즉, 체크포인트 수행 모듈(1155)은 서비스(111) 및 체크포인트를 공유 볼륨(1157)에 저장할 수 있다.When a service movement request message is transmitted from the service 111, the checkpoint execution module 1155 may store a state of the service 111 being performed. That is, the checkpoint execution module 1155 may store the service 111 and the checkpoint in the shared volume 1157.

체크포인트 수행 모듈(1155)은 노드 관리자(211)로부터 복구 요청 메시지를 수신하면 저장된 서비스(111)의 상태를 기반으로 서비스(111)를 복구할 수 있다. 체크 포인트 수행 모듈(1155)은 서비스(111)를 복구하는 경우 컨테이너 단위로 체크포인트를 수행할 수 있다. 예를 들어, 체크포인트 된 컨테이너의 상태 정보는 컨테이너 ID의 앞 12자리를 이름으로 가지는 파일로 저장될 수 있다. 이 파일은 모든 작업 노드가 공유할 수 있는 공유 볼륨에 저장될 수 있다. 즉, 체크포인트 수행 모듈(1155)은 서비스(111)를 복구하는 경우 체크포인트된 컨테이너 ID를 기반으로 저장된 파일을 공유 볼륨(1157)으로부터 수신하여 컨테이너 복구를 수행할 수 있다.The checkpoint execution module 1155 may restore the service 111 based on the state of the stored service 111 upon receiving a recovery request message from the node manager 211. When the service 111 is restored, the checkpoint execution module 1155 may perform a checkpoint in a container unit. For example, the status information of the checked container may be stored as a file having the first 12 digits of the container ID as a name. This file can be stored on a shared volume that can be shared by all working nodes. That is, when restoring the service 111, the checkpoint execution module 1155 may receive a file stored based on the checked-pointed container ID from the shared volume 1157 to perform container restoration.

공유 볼륨(1157)은 서비스(111)의 상태를 저장할 수 있다. 즉, 공유 볼륨(1157)은 서비스(111) 및 체크포인트를 저장할 수 있다. 예를 들어, 공유 볼륨(1157)은 작업 노드 장치들(100-1 내지 100-n)이 모두 공유할 수 있다. 공유 볼륨(1157)은 서비스 복구 메시지를 수신한 작업 노드 장치(100)로 서비스(111) 및 체크포인트를 송신할 수 있다.The shared volume 1157 may store the state of the service 111. That is, the shared volume 1157 may store the service 111 and checkpoint. For example, the shared volume 1157 may be shared by all of the work node devices 100-1 to 100-n. The shared volume 1157 may transmit the service 111 and the checkpoint to the work node device 100 that has received the service recovery message.

도 6은 도 4에 도시된 자원 검사 모듈의 동작을 상세하게 설명하기 위한 순서도이다.6 is a flowchart for explaining in detail the operation of the resource check module shown in FIG. 4.

자원 검사 모듈(1113)은 동작이 시작되면 서비스 이동 조건을 판별하기 위하여 필요한 변수를 선언하고 초기화할 수 있다(610). 필요한 변수는 N(샘플 수), CNT(서비스 이동을 판단하기 위한 임계값), 기준자원사용량(서비스를 유지하는데 드는 기본 자원의 양), 상대적자원사용비 값(CPU를 기준으로 다른 자원의 사용비율 값)을 포함할 수 있다. 구체적으로, 기준자원사용량은 동작하는 서비스(111)가 최소한의 서비스 품질을 만족하기 위해 서비스 제공자가 정한 자원 사용량(CPU, 메모리, 네트워크 등)을 의미할 수 있다. 상대적자원사용비는 CPU 사용량 대비 필요한 메모리, 네트워크 자원의 비율을 의미할 수 있다.When the operation starts, the resource check module 1113 may declare and initialize a variable necessary to determine a service movement condition (610). Necessary variables are N (number of samples), CNT (threshold value for determining service movement), reference resource usage (amount of basic resources required to maintain the service), relative resource usage cost value (use of other resources based on CPU) Ratio value). Specifically, the reference resource usage may mean a resource usage (CPU, memory, network, etc.) determined by a service provider in order for the service 111 to operate to satisfy the minimum quality of service. Relative resource usage cost can mean the ratio of required memory and network resources to CPU usage.

자원 검사 모듈(1113)은 부모 프로세스 및 자식 프로세스의 CPU 사용량을 총합하여 CUR_RES 변수에 저장할 수 있다(615).The resource check module 1113 may add up the CPU usage of the parent process and the child process and store it in the CUR_RES variable (615).

자원 검사 모듈(1113)은 CUR_RES 값을 평균 값 계산을 위해 RES_LIST 변수에 저장할 수 있다(620).The resource check module 1113 may store the CUR_RES value in the RES_LIST variable for calculating the average value (620).

자원 검사 모듈(1113)은 RES_LIST 변수에서 최근 N개의 값을 대상으로 이동 평균 필터를 적용해 CPU 사용 평균을 계산하여 SMA_RES 변수에 저장할 수 있다(625). SMA_RES 변수는 현재 서비스의 최근 N개의 값에 대한 평균 CPU 사용량을 의미할 수 있다.The resource check module 1113 may calculate a CPU usage average by applying a moving average filter targeting the last N values in the RES_LIST variable and store it in the SMA_RES variable (625). The SMA_RES variable may mean the average CPU usage for the last N values of the current service.

자원 검사 모듈(1113)은 서비스(111)는 수행하는 작업에 따라 수행 단계 값을 가질 수 있으므로, 수행 단계 값을 서비스의 수행 단계를 나타내는 P 변수에 저장할 수 있다(630).The resource check module 1113 may have an execution step value according to an operation performed by the service 111, and thus may store the execution step value in a variable P indicating the execution step of the service (630 ).

자원 검사 모듈(1113)은 SMA_RES 값에서 P 단계의 기준자원사용량 값(CPU 값)을 빼고 차이를 DIFF 변수에 저장할 수 있다(635). DIFF 값은 서비스의 평균 CPU 사용량 값과 P 단계의 서비스가 필요로 하는 CPU 자원 값의 차이를 의미할 수 있다. DIFF 값은 CPU 사용량 차이만 나타내므로 이 차이를 메모리와 네트워크 자원에 반영할 필요가 있다.The resource check module 1113 may subtract the reference resource usage value (CPU value) of step P from the SMA_RES value and store the difference in the DIFF variable (635). The DIFF value may mean the difference between the average CPU usage value of the service and the CPU resource value required by the P-level service. Since the DIFF value only represents the difference in CPU usage, it is necessary to reflect this difference in memory and network resources.

자원 검사 모듈(1113)은 DIFF 값에 수행 단계 P 에서의 상대적자원사용비를 곱하여 최종적으로 반영해야 할 메모리 자원과 네트워크 자원의 비율을 계산할 수 있다. 자원 검사 모듈(1113)은 최종적으로 반영해야 할 메모리 자원과 네트워크 자원의 비율을 APPLY_RATE_LIST 변수에 저장할 수 있다(640).The resource check module 1113 may calculate a ratio of a memory resource and a network resource to be finally reflected by multiplying the DIFF value by the relative resource use ratio in the execution step P. The resource check module 1113 may store the ratio of the memory resource and the network resource to be finally reflected in the APPLY_RATE_LIST variable (640).

자원 검사 모듈(1113)은 APPLY_RATE_LIST 값을 사용하여 P 단계에서 서비스가 CPU 자원을 SMA_RES 만큼 사용할 때 서비스의 품질 보장을 위해 필요한 메모리, 네트워크 자원을 계산할 수 있다. 따라서, 자원 검사 모듈(1113)은 P 단계에서 기준자원사용량에 APPLY_RATE_LIST 값을 곱해 필요한 메모리와 네트워크 자원을 계산할 수 있다.The resource check module 1113 may use the APPLY_RATE_LIST value to calculate memory and network resources necessary for guaranteeing the quality of a service when the service uses CPU resources as much as SMA_RES in step P. Accordingly, the resource check module 1113 may calculate required memory and network resources by multiplying the reference resource usage by the APPLY_RATE_LIST value in step P.

자원 검사 모듈(1113)은 SMA_RES 값과 계산된 메모리, 네트워크 자원 값을 MIN_GRT_RES 변수에 저장할 수 있다(645). MIN_GRT_RES 값은 CPU 평균 사용량이 SMA_RES인 서비스의 품질 만족에 필요한 자원의 값을 의미할 수 있다.The resource test module 1113 may store the SMA_RES value, the calculated memory, and network resource values in the MIN_GRT_RES variable (645). The MIN_GRT_RES value may mean a value of a resource required to satisfy the quality of service in which the average CPU usage is SMA_RES.

자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량을 초과하는지 여부를 판단할 수 있다(650).The resource check module 1113 may determine whether the MIN_GRT_RES value exceeds the reference resource usage determined by the service provider (650).

자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량보다 작다면 MIN_GRT_RES 값에 P 단계일 때의 기준자원사용량을 대입할 수 있다(655).If the MIN_GRT_RES value is smaller than the reference resource usage determined by the service provider, the resource inspection module 1113 may substitute the reference resource usage in the P stage to the MIN_GRT_RES value (655).

자원 검사 모듈(1113)은 MIN_GRT_RES 값이 서비스 제공자가 정한 기준자원사용량보다 크다면 현재 자원 사용량과 MIN_GRT_RES 값을 비교할 수 있다(660).If the MIN_GRT_RES value is greater than the reference resource usage determined by the service provider, the resource inspection module 1113 may compare the current resource usage and the MIN_GRT_RES value (660).

자원 검사 모듈(1113)은 현재 자원 사용량이 MIN_GRT_RES 값 보다 크다면, CNT 값을 복구하고 검사를 반복 수행할 수 있다(665).If the current resource usage is greater than the MIN_GRT_RES value, the resource check module 1113 may recover the CNT value and repeat the check (665).

자원 검사 모듈(1113)은 현재 자원 사용량이 MIN_GRT_RES 값 보다 작다면 CNT가 0보다 큰지 여부를 판단할 수 있다(670).If the current resource usage is less than the MIN_GRT_RES value, the resource inspection module 1113 may determine whether the CNT is greater than 0 (670).

자원 검사 모듈(1113)은 CNT가 0 보다 크다면 CNT 값을 감소시키고 검사를 반복 수행할 수 있다(675).If the CNT is greater than 0, the resource test module 1113 may decrease the CNT value and repeat the test (675).

자원 검사 모듈(1113)은 만약 CNT가 0 이하인 경우, 일정 기간 동안 자원을 충분히 사용하지 못해 서비스 품질을 만족할 수 없다고 판단하여 서비스 이동을 요청할 수 있다(680).If the CNT is equal to or less than 0, the resource check module 1113 determines that the quality of service cannot be satisfied due to insufficient use of resources for a certain period of time, and may request service movement (680).

자원 검사 모듈(1113)은 서비스 수행 완료 시점까지 상술한 동작을 반복할 수 있다.The resource check module 1113 may repeat the above-described operation until service execution is completed.

도 7은 도 1에 도시된 마스터 노드 장치를 개략적으로 나타낸 도면이다.7 is a diagram schematically illustrating a master node device shown in FIG. 1.

마스터 노드 장치(200)는 프로세서(210), 및 메모리(250)를 포함할 수 있다.The master node device 200 may include a processor 210 and a memory 250.

프로세서(210)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor) 중 하나 또는 그 이상을 포함할 수 있다.The processor 210 may include one or more of a central processing unit, an application processor, and a communication processor.

프로세서(210)는 마스터 노드 장치(200)의 적어도 하나의 다른 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(210)는 메모리(250)에 저장된 어플리케이션 및/또는 소프트웨어 등(예를 들어, 노드 관리자)을 실행할 수 있다.The processor 210 may perform an operation or data processing related to control of at least one other component of the master node device 200. For example, the processor 210 may execute an application and/or software (eg, a node manager) stored in the memory 250.

프로세서(210)는 수신한 데이터 및 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(210)는 메모리(250)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(210)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 210 may process the received data and data stored in the memory 250. The processor 210 may process data stored in the memory 250. The processor 210 may execute computer-readable code (eg, software) stored in the memory 250 and instructions induced by the processor 210.

프로세서(210)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 210 may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented in hardware is a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA).

프로세서(210)는 노드 관리자(211)를 포함할 수 있다. 예를 들어, 프로세서(210)는 노드 관리자(2110)를 실행할 수 있다.The processor 210 may include a node manager 211. For example, the processor 210 may execute the node manager 2110.

노드 관리자(211)는 작업 노드 장치들(100-1 내지 100-n)에 관한 정보를 저장할 수 있다. 노드 관리자(211)는 목적지 노드 요청 메시지에 응답하여 서비스 복구 메시지를 전송할 수 있다.The node manager 211 may store information on the work node devices 100-1 to 100-n. The node manager 211 may transmit a service recovery message in response to the destination node request message.

메모리(250)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(250)는, 마스터 노드 장치(200)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.The memory 250 may include volatile and/or nonvolatile memory. The memory 250 may store commands and/or data related to at least one other component of the master node device 200.

메모리(250)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(250)는 작업 노드 장치들(100-1 내지 100-n)의 관리를 위한 어플리케이션 및 소프트웨어 등을 저장할 수 있다.The memory 250 may store software and/or a program. For example, the memory 250 may store applications and software for management of the work node devices 100-1 to 100-n.

도 8은 도 7에 도시된 노드 관리자를 개략적으로 나타낸 도면이다.FIG. 8 is a diagram schematically illustrating the node manager shown in FIG. 7.

노드 관리자(211)는 관리 모듈(2111), 메시지 처리 모듈(2113) 및 노드 선택 모듈(2115)을 포함할 수 있다.The node manager 211 may include a management module 2111, a message processing module 2113, and a node selection module 2115.

관리 모듈(2111)은 작업 노드 장치들(100-1 내지 100-n)의 정보를 관리할 수 있다. 관리 모듈(2111)은 작업 노드 장치들(100-1 내지 100-n)의 등록 요청을 처리하고 키:값 구조로 작업 노드 정보를 관리할 수 있다. 예를 들어, 키는 작업 노드 장치들(100-1 내지 100-n)마다 부여되는 고유한 값일 수 있다. 고유한 값은 작업 노드 장치들(100-1 내지 100-n)의 정보로 작업 노드 장치들(100-1 내지 100-n)의 하드웨어 구성 정보와 가용 자원 정보, 네트워크 주소를 포함할 수 있다.The management module 2111 may manage information on the work node devices 100-1 to 100-n. The management module 2111 may process registration requests of the work node devices 100-1 to 100-n and manage work node information in a key: value structure. For example, the key may be a unique value assigned to each of the work node devices 100-1 to 100-n. The unique value is information of the work node devices 100-1 to 100-n, and may include hardware configuration information, available resource information, and network address of the work node devices 100-1 to 100-n.

메시지 처리 모듈(2113)은 메시지 처리 모듈(1153)의 동작과 동일한 동작을 수행할 수 있다. 이에, 메시지 처리 모듈(2113)에 관한 상세한 설명은 생략한다. 메시지 처리 모듈(2113)은 메시지 처리 모듈(1153)과 공개된 RESTful API와 제공하는 기능에 차이가 있을 수 있다.The message processing module 2113 may perform the same operation as that of the message processing module 1153. Accordingly, a detailed description of the message processing module 2113 will be omitted. The message processing module 2113 may have a difference between the message processing module 1153 and an open RESTful API and a function to be provided.

노드 선택 모듈(2115)은 목적지 노드 요청 메시지를 수신한 경우 최종적으로 서비스(111)를 작업 노드 장치들(100-1 내지 100-n) 중에서 작업 노드 장치로 이동할지 결정할 수 있다. 노드 선택 모듈(2115)은 서비스(111)의 최소 자원 요구량과 작업 노드 장치들(100-1 내지 100-n)의 자원 사용량을 전송받아 작업 노드 장치들(100-1 내지 100-n) 중에서 서비스(111)가 이동할 작업 노드 장치를 선택할 수 있다. 노드 선택 모듈(2115)은 선택한 작업 노드 장치로 서비스(111)의 복구를 요청하는 서비스 복구 메시지를 전송할 수 있다.When receiving the destination node request message, the node selection module 2115 may finally determine whether to move the service 111 from among the work node devices 100-1 to 100-n to the work node device. The node selection module 2115 receives the minimum resource demand of the service 111 and the resource usage of the work node devices 100-1 to 100-n, and provides a service among the work node devices 100-1 to 100-n. (111) can select the work node device to be moved. The node selection module 2115 may transmit a service restoration message requesting restoration of the service 111 to the selected work node device.

도 9는 서비스 이동 지원을 위한 시스템의 전체 동작을 설명하기 위한 순서도이다. 도 9에서는 설명의 편의를 위해 현재 서비스(111)가 작업 노드 장치(100-1)에서 실행되고 있는 것으로 가정한다.9 is a flowchart illustrating the overall operation of a system for supporting service movement. In FIG. 9, for convenience of description, it is assumed that the service 111 is currently being executed in the work node device 100-1.

마스터 노드 장치(200)의 노드 관리자(211)가 실행될 수 있다(910). 작업 노드 장치(100)의 서비스 관리자(115)가 수행되어 작업 노드 장치(100-1)를 노드 관리자(211)에 등록할 수 있다(915).The node manager 211 of the master node device 200 may be executed (910). The service manager 115 of the work node device 100 may be executed to register the work node device 100-1 with the node manager 211 (915 ).

서비스 관리자(115)는 사용자 요청에 의해 서비스(111)를 위한 컨테이너가 생성되면 서비스(111)를 등록할 수 있다(920).The service manager 115 may register the service 111 when a container for the service 111 is created according to a user request (920).

서비스(111)는 서비스 관리자(115)에 서비스(111)가 등록되면 자원 검사 스레드를 생성하고 서비스(111)를 수행할 수 있다(925 및 930)When the service 111 is registered with the service manager 115, the service 111 may create a resource check thread and perform the service 111 (925 and 930).

서비스(111)는 자원 검사 스레드를 통해 현재 서비스(111)의 자원 사용량을 획득할 수 있다. 서비스(111)는 자원 사용량을 서비스(111)를 위한 최소 자원 요구량과 비교하여 서비스(111)의 이동 여부를 판단할 수 있다(935).The service 111 may acquire the resource usage of the current service 111 through a resource check thread. The service 111 may determine whether or not the service 111 is moved by comparing the resource usage with the minimum resource requirement for the service 111 (935).

서비스(111)는 서비스(111)의 이동이 필요하다고 판단하면 서비스 관리자(115)로 서비스 이동 요청 메시지를 전송할 수 있다(940).If the service 111 determines that the service 111 needs to be moved, the service 111 may transmit a service movement request message to the service manager 115 (940).

서비스 관리자(115)는 서비스(111)의 상태를 공유 볼륨(1157)에 저장할 수 있다(945). 서비스 관리자(115)는 노드 관리자(211)에게 서비스 이동 요청 메시지를 전송할 수 있다.The service manager 115 may store the state of the service 111 in the shared volume 1157 (945). The service manager 115 may transmit a service movement request message to the node manager 211.

노드 관리자(211)는 작업 노드 장치들(100-2 내지 100-n) 중에서 서비스(111)를 이동시킬 작업 노드 장치(100)를 선택할 수 있다(950). 노드 관리자(211)는 서비스(111)를 복구할 선택된 작업 노드 장치의 서비스 관리자(115)로 공유 볼륨(1157)에 저장된 서비스에 대하여 복구를 요청하는 서비스 복구 요청 메시지를 전송한다.The node manager 211 may select the work node device 100 to which the service 111 is to be moved from among the work node devices 100-2 to 100-n (950 ). The node manager 211 transmits a service restoration request message requesting restoration of a service stored in the shared volume 1157 to the service manager 115 of the selected working node device to restore the service 111.

서비스 관리자(115)는 서비스 복구 요청 메시지에 응답하여 공유 볼륨(1157)에 저장된 서비스(111)를 체크포인트에 따라 복구하여 수행할 수 있다(955).The service manager 115 may restore and perform the service 111 stored in the shared volume 1157 according to a checkpoint in response to the service restoration request message (955 ).

서비스 관리자(115)는 서비스(111)가 수행이 완료되었는지 여부를 판단할 수 있다(960).The service manager 115 may determine whether the service 111 has been performed (960 ).

서비스 관리자(115)는 서비스(111)가 수행이 완료된 경우 서비스(111)를 종료 및 등록 해제할 수 있다(965, 970)When the service 111 is completed, the service manager 115 may terminate the service 111 and cancel the registration (965, 970).

서비스 이동 지원을 위한 시스템(10)은 서비스 이동을 위한 조건 만족 시 마다 서비스 이동 요청, 체크포인트 생성, 이동할 작업 노드 장치 선택 및 서비스 복구 과정을 반복하여 수행할 수 있다. 도 9의 순서도는 하나의 서비스에 대한 생성 및 종료 과정으로 노드 관리자(211)와 서비스 관리자(115)는 종료하지 않을 수 있다.The system 10 for service movement support may repeatedly perform a service movement request, a checkpoint generation, a work node device selection to be moved, and a service recovery process each time a condition for service movement is satisfied. The flowchart of FIG. 9 is a process of creating and terminating one service, and the node manager 211 and the service manager 115 may not be terminated.

상술한 바와 같이, 서비스 이동 지원을 위한 시스템(10)은 서비스 간 성능 간섭이나 노드의 가용 자원이 부족한 상황이 발생하더라도 서비스 품질을 위한 최소한의 자원을 서비스가 사용할 수 있도록 보장할 수 있다.As described above, the system 10 for supporting service movement can ensure that the service can use the minimum resources for quality of service even if performance interference between services or a situation in which the available resources of a node are insufficient occurs.

서비스 이동 지원을 위한 시스템(10)은 서비스가 다양한 작업을 수행하거나, 수행 단계에 따라 서비스 품질을 만족하기 위한 자원 요구 사항이 변경되더라도 서비스가 수행되는데 필요한 자원을 확보할 수 있다.The system 10 for supporting service movement may secure resources necessary for performing the service even if the service performs various tasks or changes the resource requirements for satisfying the service quality according to the execution step.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the following claims.

Claims (20)

작업 노드 장치에서 수행중인 서비스가 상기 서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하는 단계;
상기 서비스가 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 단계;
상기 작업 노드 장치의 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하는 단계; 및
상기 서비스 관리자가 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 단계
를 포함하는, 서비스 이동 지원 방법.
Comparing a resource usage of the service and a minimum resource request amount for the service by a service being performed in the work node device;
Generating, by the service, a service movement request message for movement of the service based on the comparison result;
Generating, by the service manager of the work node device, a destination node request message for another work node device to which the service is to be moved in response to the service movement request message; And
Transmitting, by the service manager, the destination node request message to a master node device that manages work node devices.
Including, the service movement support method.
제1항에 있어서,
상기 서비스 관리자가 상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는 단계
를 더 포함하는 서비스 이동 지원 방법.
The method of claim 1,
Restoring, by the service manager, the service in response to a service restoration message transmitted in response to the destination node request message from the master node device.
Service movement support method further comprising a.
제2항에 있어서,
상기 서비스 관리자가 상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는 단계
를 더 포함하는 서비스 이동 지원 방법.
The method of claim 2,
Storing the service in a shared volume shared by work node devices managed by the master node device in response to the service movement request message by the service manager
Service movement support method further comprising a.
제3항에 있어서,
상기 저장하는 단계는,
상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는 단계
를 포함하는 서비스 이동 지원 방법.
The method of claim 3,
The storing step,
Storing a checkpoint for re-performing the service from the point performed by the other work node device following the point performed by the work node device
Service movement support method comprising a.
제4항에 있어서,
상기 복구하는 단계는,
상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하는 단계; 및
상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는 단계
를 포함하는 서비스 이동 지원 방법.
The method of claim 4,
The recovering step,
Receiving the service recovery message from the master node device; And
Restoring the service stored in the shared volume according to the checkpoint in response to the service restoration message
Service movement support method comprising a.
제2항에 있어서,
상기 서비스 복구 메시지는,
상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송되는
서비스 이동 지원 방법.
The method of claim 2,
The service recovery message,
Generated when the master node device selects any one of the work node devices managed by the master node device in response to the destination node request message, and transmitted to any one of the
How to support service mobility.
제6항에 있어서,
상기 서비스 복구 메시지는,
상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되는
서비스 이동 지원 방법.
The method of claim 6,
The service recovery message,
The master node device receives the minimum resource request amount and available resource information of work node devices managed by the master node device, and the master node device manages it based on the minimum resource request amount and the available resource information Generated when any one of the node devices is selected
How to support service mobility.
제1항에 있어서,
상기 비교하는 단계는,
상기 서비스가 상기 자원 사용량을 검사하는 단계;
상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 계산하는 단계;
상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하는 단계
상기 필요량을 상기 최소 자원 요구량에 적용하는 단계
를 포함하는 서비스 이동 지원 방법.
The method of claim 1,
The comparing step,
The service checking the resource usage;
Calculating a plurality of resources being used by the service by using the resource usage;
Calculating a required amount of each of the plurality of resources required for the service based on the relationship between the plurality of resources being used by the service
Applying the required amount to the minimum resource requirement
Service movement support method comprising a.
제1항에 있어서,
상기 서비스 관리자가 사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는 단계
를 더 포함하는 서비스 이동 지원 방법.
The method of claim 1,
The service manager registering the service for which the container was created at the request of the user
Service movement support method further comprising a.
제9항에 있어서,
상기 서비스 관리자가 상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는 단계
를 더 포함하는 서비스 이동 지원 방법.
The method of claim 9,
Step of deregistering the service when the service manager ends the execution of the service
Service movement support method further comprising a.
서비스 이동 지원을 위한 인스트럭션들을 저장하는 메모리; 및
상기 인스트럭션들을 실행하기 위한 프로세서
를 포함하고,
상기 프로세서는,
서비스의 자원 사용량 및 상기 서비스를 위한 최소 자원 요구량을 비교하고, 상기 비교 결과에 기초하여 상기 서비스의 이동을 위한 서비스 이동 요청 메시지를 생성하는 서비스; 및
상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 이동할 다른 작업 노드 장치에 대한 목적지 노드 요청 메시지를 생성하고, 상기 목적지 노드 요청 메시지를 작업 노드 장치들을 관리하는 마스터 노드 장치로 전송하는 서비스 관리자
를 실행하는 서비스 이동 지원을 위한 작업 노드 장치.
A memory for storing instructions for supporting service movement; And
A processor for executing the instructions
Including,
The processor,
A service that compares a resource usage of a service and a minimum resource request amount for the service, and generates a service movement request message for movement of the service based on the comparison result; And
A service manager that generates a destination node request message for another work node device to which the service is to be moved in response to the service movement request message, and transmits the destination node request message to a master node device that manages work node devices
A work node device for supporting movement of services running.
제11항에 있어서,
상기 서비스 관리자는,
상기 마스터 노드 장치로부터 상기 목적지 노드 요청 메시지에 응답하여 전송된 서비스 복구 메시지에 응답하여 상기 서비스를 복구하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 11,
The service manager,
Restoring the service in response to a service restoration message transmitted in response to the destination node request message from the master node device
Work node device for service movement support.
제12항에 있어서,
상기 서비스 관리자는,
상기 서비스 이동 요청 메시지에 응답하여 상기 서비스를 상기 마스터 노드 장치가 관리하는 작업 노드 장치들이 공유하는 공유 볼륨에 저장하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 12,
The service manager,
In response to the service movement request message, storing the service in a shared volume shared by work node devices managed by the master node device
Work node device for service movement support.
제13항에 있어서,
상기 서비스 관리자는,
상기 서비스를 상기 작업 노드 장치에서 수행된 지점에 이어 상기 다른 작업 노드 장치에서 상기 수행된 지점부터 재수행하기 위한 체크포인트를 저장하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 13,
The service manager,
Storing a checkpoint for re-performing the service from the point performed by the other work node device following the point performed by the work node device
Work node device for service movement support.
제14항에 있어서,
상기 서비스 관리자는,
상기 마스터 노드 장치로부터 상기 서비스 복구 메시지를 수신하고,
상기 서비스 복구 메시지에 응답하여 상기 공유 볼륨에 저장된 서비스를 상기 체크포인트에 따라 복구하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 14,
The service manager,
Receiving the service recovery message from the master node device,
Restoring the service stored in the shared volume according to the checkpoint in response to the service restoration message
Work node device for service movement support.
제12항에 있어서,
상기 서비스 복구 메시지는,
상기 마스터 노드 장치가 상기 목적지 노드 요청 메시지에 응답하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되고, 상기 어느 하나에 전송되는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 12,
The service recovery message,
Generated when the master node device selects any one of the work node devices managed by the master node device in response to the destination node request message, and transmitted to any one of the
Work node device for service movement support.
제16항에 있어서,
상기 서비스 복구 메시지는,
상기 마스터 노드 장치가 상기 최소 자원 요구량 및 상기 마스터 노드 장치가 관리하는 작업 노드 장치들의 사용 가능한 자원 정보를 수신하고, 상기 최소 자원 요구량 및 상기 사용 가능한 자원 정보에 기초하여 상기 마스터 노드 장치가 관리하는 작업 노드 장치들 중에서 어느 하나를 선택한 경우 생성되는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 16,
The service recovery message,
The master node device receives the minimum resource request amount and available resource information of work node devices managed by the master node device, and the master node device manages it based on the minimum resource request amount and the available resource information Generated when any one of the node devices is selected
Work node device for service movement support.
제11항에 있어서,
상기 서비스는,
상기 자원 사용량을 검사하고,
상기 자원 사용량을 이용하여 상기 서비스가 사용중인 복수의 자원들을 각각 계산하고,
상기 서비스가 사용중인 복수의 자원들 간의 관계에 기초하여 상기 서비스에 필요한 상기 복수의 자원들 각각의 필요량을 계산하고,
상기 필요량을 상기 최소 자원 요구량에 적용하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 11,
The above services are:
Check the resource usage,
Each of a plurality of resources being used by the service is calculated using the resource usage,
Calculate a required amount of each of the plurality of resources required for the service based on the relationship between the plurality of resources in use by the service,
Applying the required amount to the minimum resource requirement
Work node device for service movement support.
제11항에 있어서,
상기 서비스 관리자는,
사용자의 요청에 의해 컨테이너가 생성된 상기 서비스를 등록하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 11,
The service manager,
Registering the service created by the container at the request of the user
Work node device for service movement support.
제19항에 있어서,
상기 서비스 관리자는,
상기 서비스의 수행이 종료되면 상기 서비스를 등록 해제하는
서비스 이동 지원을 위한 작업 노드 장치.
The method of claim 19,
The service manager,
When the execution of the service is terminated, the service is unregistered.
Work node device for service movement support.
KR1020190129761A 2019-10-18 2019-10-18 Method and system for supporting survice movement KR102248443B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190129761A KR102248443B1 (en) 2019-10-18 2019-10-18 Method and system for supporting survice movement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129761A KR102248443B1 (en) 2019-10-18 2019-10-18 Method and system for supporting survice movement

Publications (2)

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

Family

ID=75720891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129761A KR102248443B1 (en) 2019-10-18 2019-10-18 Method and system for supporting survice movement

Country Status (1)

Country Link
KR (1) KR102248443B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102559351B1 (en) * 2022-12-30 2023-07-25 주식회사 에스티씨랩 Resource optimization system and entry management server using traffic spike flattening technology based on digital service

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101256918B1 (en) * 2011-12-15 2013-04-25 숭실대학교산학협력단 Method for enhancing scalability and availability of cloud services and the system thereby
KR101264895B1 (en) * 2011-05-12 2013-05-15 성균관대학교산학협력단 Virtual machine migration processing apparatus and method thereof
KR101578177B1 (en) 2014-09-12 2015-12-16 성균관대학교산학협력단 Method and system for migration based on resource utilization rate in cloud computing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116759B2 (en) * 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
KR101343617B1 (en) * 2011-12-28 2013-12-20 대전대학교 산학협력단 Management Method of Service Level Agreement for Guarantee of Quality of Service in Cloud Environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101264895B1 (en) * 2011-05-12 2013-05-15 성균관대학교산학협력단 Virtual machine migration processing apparatus and method thereof
KR101256918B1 (en) * 2011-12-15 2013-04-25 숭실대학교산학협력단 Method for enhancing scalability and availability of cloud services and the system thereby
KR101578177B1 (en) 2014-09-12 2015-12-16 성균관대학교산학협력단 Method and system for migration based on resource utilization rate in cloud computing

Also Published As

Publication number Publication date
KR20210046251A (en) 2021-04-28

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
US9413604B2 (en) Instance host configuration
US10819589B2 (en) System and a method for optimized server-less service virtualization
US9201644B2 (en) Distributed update service
US9697050B2 (en) System and method for scaling for a large number of concurrent users
US10630556B2 (en) Discovering and publishing device changes in a cloud environment
US20110029810A1 (en) Automated failure recovery of subsystems in a management system
EP2948865B1 (en) Instance host configuration
JP7086065B2 (en) Application link extension methods, devices, and systems
US11507417B2 (en) Job scheduling based on job execution history
US8966025B2 (en) Instance configuration on remote platforms
Ganga et al. A fault tolerent approach in scientific workflow systems based on cloud computing
US8027817B2 (en) Simulation management within a grid infrastructure
US10798186B2 (en) Dynamic generation of network routing configuration with service requirements
US20180219794A1 (en) Deploying a cloud service with capacity reservation followed by activation
WO2017017937A1 (en) Deployment device, deployment method, and recording medium
KR102248443B1 (en) Method and system for supporting survice movement
Meroufel et al. Optimization of checkpointing/recovery strategy in cloud computing with adaptive storage management
US9342291B1 (en) Distributed update service
Samir et al. Autoscaling recovery actions for container‐based clusters
US11762706B1 (en) Computing environment pooling
Abbes et al. Fault tolerance based on the publish-subscribe paradigm for the bonjourgrid middleware
CN116089020B (en) Virtual machine operation method, capacity expansion method and capacity expansion system

Legal Events

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