KR102231358B1 - Single virtualization method and system for HPC cloud service - Google Patents

Single virtualization method and system for HPC cloud service Download PDF

Info

Publication number
KR102231358B1
KR102231358B1 KR1020190139636A KR20190139636A KR102231358B1 KR 102231358 B1 KR102231358 B1 KR 102231358B1 KR 1020190139636 A KR1020190139636 A KR 1020190139636A KR 20190139636 A KR20190139636 A KR 20190139636A KR 102231358 B1 KR102231358 B1 KR 102231358B1
Authority
KR
South Korea
Prior art keywords
computing
virtualization
node
nodes
computing nodes
Prior art date
Application number
KR1020190139636A
Other languages
Korean (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 KR1020190139636A priority Critical patent/KR102231358B1/en
Application granted granted Critical
Publication of KR102231358B1 publication Critical patent/KR102231358B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

Disclosed are a unified virtualization method and a unified virtualization system for high-performance cloud service. According to one aspect of the present invention, a unified virtualization system for the high-performance cloud service includes: a plurality of computing nodes; and a virtualization server to provide a unified virtualization computing environment by using resources of computing nodes through a resource isolation technology based on a container in a hyper-visor layer. Up to now, a high-performance computing (HPC) field has disadvantages of an astronomical high price, large-scale facility investment, maintenance specialists required, and higher management cost after construction more than advantages. The present invention is to provide renewal computing power in the form of a cloud service based on a container making it easy for anybody including a developer to use through an inverse virtualization technology (hyper-chain technology) of compensating for a latency of existing cloud service (virtualization) by recycling aged servers present inside an x86-based international data corporation (IDC), a computing room, or an office. Accordingly, the interest of the present invention is increased in a niche market in a HPC field such as an interpretation field, various manufacturing design fields, a bio-field, or a new drug field.

Description

고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템{Single virtualization method and system for HPC cloud service}Single virtualization method and system for HPC cloud service}

본 발명은 클라우드 서비스에 관한 것으로, 좀더 상세하게는 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템에 관한 것이다.The present invention relates to a cloud service, and more particularly, to a single virtualization method system for a high-performance cloud service.

고성능 컴퓨팅 기술을 구현하는 방식으로는, 단일 컴퓨팅 장치의 하드웨어 성능을 높이는 스케일 업(scale-up) 방식과, 다수의 컴퓨팅 장치를 네트워크로 연결하여 컴퓨팅 파워를 높이는 스케일 아웃(scale-out) 방식이 있다. Methods of implementing high-performance computing technology include a scale-up method that increases hardware performance of a single computing device, and a scale-out method that increases computing power by connecting multiple computing devices through a network. have.

네트워크 기술이 점점 더 발전하면서 다수의 컴퓨터를 연결하는 클러스터 구조에서 컴퓨터 사이의 상호작용에 대한 네트워크 오버헤드가 줄어들고 있는 추세이며, 최근 경제적 측면과 관리적 측면에서 효율성을 제공하는 스케일 아웃 방식의 단일 가상화 기술이 각광받고 있다.As network technology develops more and more, network overhead for interactions between computers in a cluster structure that connects multiple computers is decreasing, and a single virtualization technology of scale-out method that provides efficiency in economic and management aspects in recent years. This is in the limelight.

단일 가상화란 다수의 컴퓨팅 장치를 네트워크로 연결하여 컴퓨팅 자원이 하나로 통합된 컴퓨팅 환경을 제공하는 기술이다.Single virtualization is a technology that provides a computing environment in which computing resources are integrated into one by connecting multiple computing devices through a network.

종래 단일 가상화를 구현하는 방식으로서, 미들웨어 형태의 단일 가상화는 운영체제 위에서 서비스 형태의 미들웨어를 운영하여 작업을 부하분산하는 방식의 시스템 통합 방식이며, 특정 라이브러리나 도구에 종속된다. 운영체제 커널 레벨의 단일 가상화는 베어메탈 운영체제 내부에서 클러스터 범위의 자원관리 기술로서 운영된다. 가상 머신들의 클러스터링을 이용한 단일 가상화는 작업들의 종속관계 해결을 위해 사용자 영역과 커널 영역 사이에 가상화된 새로운 작업 관리 계층이 운영되는 방식이다.As a method of implementing a single virtualization in the related art, the single virtualization in the form of middleware is a system integration method in which the work is load-balanced by operating middleware in the form of a service on an operating system, and is dependent on a specific library or tool. Single virtualization at the operating system kernel level operates as a cluster-wide resource management technology within the bare metal operating system. Single virtualization using clustering of virtual machines is a method in which a new task management layer virtualized between the user domain and the kernel domain is operated to resolve the dependencies of tasks.

대한민국 공개특허 제10-2019-0058619 (공개일자 2019년05월29일) 고성능 컴퓨팅 시스템 및 방법Republic of Korea Patent Publication No. 10-2019-0058619 (Publication date May 29, 2019) High-performance computing system and method

따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 가상화의 하이퍼바이저 계층에서 발생하는 오버헤드를 최소화하면서 이용이 편리한 단일 컴퓨팅 환경을 제공하는, 고성능 클라우드 서비스를 위한 단일 가상화 방법 및 시스템을 제공하기 위한 것이다.Accordingly, the present invention has been devised to solve the above-described problems, and provides a single virtualization method and system for a high-performance cloud service that minimizes the overhead occurring in the hypervisor layer of virtualization and provides a single computing environment that is convenient to use. To provide.

본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.Other objects of the present invention will become more apparent through preferred embodiments described below.

본 발명의 일 측면에 따르면, 복수개의 컴퓨팅 노드들; 및 하이퍼바이저 계층에서 컨테이너 기반 자원 격리 기술을 이용하여 상기 컴퓨팅 노드들의 자원을 이용한 가상화 단일 컴퓨팅 환경을 제공하는 가상화서버를 포함하는, 고성능 클라우드 서비스를 위한 단일 가상화 시스템이 제공된다.According to an aspect of the present invention, a plurality of computing nodes; And a single virtualization system for a high-performance cloud service is provided, including a virtualization server that provides a virtualized single computing environment using the resources of the computing nodes using a container-based resource isolation technology in the hypervisor layer.

여기서, 상기 가상화서버는 상기 가상화 단일 컴퓨팅 환경을 통해 제공하는 어플리케이션이 순수가상화 엔진을 이용하여 복수개인 경우, 각 어플리케이션에 대해 상기 컴퓨팅 노드들 중 하나 이상의 메인노드를 선정하고, 어플리케이션의 이용자수 또는 컴퓨팅 노드들의 부하에 대응하여 전체노드 또는 상기 메인노드 중 어느 하나를 이용할 수 있다.Here, the virtualization server selects one or more main nodes among the computing nodes for each application, and the number of users of the application or computing when there are a plurality of applications provided through the virtualization single computing environment using a pure virtualization engine. In response to the load of the nodes, either the entire node or the main node may be used.

또한, 상기 가상화서버는 상기 컴퓨팅 노드들의 평균부하량을 산출하고, 신규 컴퓨팅 노드의 추가 시 상기 평균부하량을 이용하여 선택되는 컴퓨팅 노드의 컨테이너에 할당된 프로세스의 일부를 상기 신규 컴퓨팅 노드로 분배할 수 있다.In addition, the virtualization server may calculate the average load of the computing nodes, and when a new computing node is added, a part of the process allocated to the container of the selected computing node may be distributed to the new computing node by using the average load. .

또한, 상기 가상화서버는 상기 컴퓨팅 노드들의 일정기간별 평균부하량을 산출하고, 상기 평균부하량이 임계값 미만인 복수개의 컴퓨팅 노드들의 컨테이너에 할당된 프로세스를 하나의 컴퓨팅 노드로 합치고 나머지는 타 단일 컴퓨팅 환경에 이용할 수 있다.In addition, the virtualization server calculates the average load of the computing nodes for a certain period of time, combines the processes allocated to the containers of a plurality of computing nodes whose average load is less than a threshold value into one computing node, and uses the remainder in another single computing environment. I can.

또한, 상기 가상화서버는 상기 컴퓨팅 노드들의 일정기간별 평균부하량을 산출하고, 상기 평균부하량이 임계값 미만인 컴퓨팅 노드를 예비 노드로서 상기 단일 컴퓨팅 환경의 이용에서 배제하며, 장애 발생 컴퓨팅 노드가 발생되면 장애 발생 컴퓨팅 노드를 상기 단일 컴퓨팅 환경의 이용에서 배제하고 상기 예비 노드를 이용할 수 있다.In addition, the virtualization server calculates the average load of the computing nodes for a certain period of time, excludes the computing node whose average load is less than a threshold value from the use of the single computing environment as a spare node, and a failure occurs when a failure computing node occurs. The computing node may be excluded from the use of the single computing environment and the spare node may be used.

본 발명의 다른 측면에 따르면, 복수개의 컴퓨팅 노드들을 이용하여 가상화 단일 컴퓨팅 환경을 제공하는 서버장치에서 수행되는 단일 가상화 방법에 있어서, 복수개의 컴퓨팅 노드들의 컴퓨팅 자원을 확인하는 단계; 각 컴퓨팅 노드들의 확인된 자원을 기반으로, 하이퍼바이저 계층에서 컨테이너 기반 자원 격리 기술을 이용하여 가상화 단일 컴퓨팅 환경을 구축하는 단계; 및 상기 가상화 단일 컴퓨팅 환경을 이용한 클라우드 서비스를 제공하는 단계를 포함하는, 고성능 클라우드 서비스를 위한 단일 가상화 방법이 제공된다.According to another aspect of the present invention, there is provided a single virtualization method performed in a server apparatus for providing a virtualized single computing environment using a plurality of computing nodes, the method comprising: checking computing resources of a plurality of computing nodes; Building a single virtualized computing environment using a container-based resource isolation technology in a hypervisor layer based on the identified resources of each computing node; And providing a cloud service using the virtualized single computing environment, a single virtualization method for a high-performance cloud service is provided.

여기서, 상기 가상화 단일 컴퓨팅 환경을 통해 제공하는 어플리케이션이 순수가상화 엔진을 이용하여 복수개인 경우, 각 어플리케이션에 대해 상기 컴퓨팅 노드들 중 하나 이상의 메인노드를 선정하는 단계를 포함하되, 각 어플리케이션의 이용자수 또는 컴퓨팅 노드들의 부하에 대응하여 전체노드 또는 상기 메인노드 중 어느 하나를 이용할 수 있다.Here, when there are a plurality of applications provided through the virtualized single computing environment using a pure virtualization engine, including the step of selecting one or more main nodes among the computing nodes for each application, the number of users of each application, or It is possible to use either the entire node or the main node in response to the load of the computing nodes.

또한, 상기 컴퓨팅 노드들의 평균부하량을 산출하는 단계를 더 포함하되, 신규 컴퓨팅 노드의 추가 시 상기 평균부하량을 이용하여 선택되는 컴퓨팅 노드의 컨테이너에 할당된 프로세스의 일부를 상기 신규 컴퓨팅 노드로 분배할 수 있다.In addition, the method further includes calculating the average load of the computing nodes, wherein when a new computing node is added, a part of the process allocated to the container of the selected computing node using the average load may be distributed to the new computing node. have.

또한, 상기 컴퓨팅 노드들의 일정기간별 평균부하량을 산출하는 단계를 더 포함하되, 상기 평균부하량이 임계값 미만인 복수개의 컴퓨팅 노드들의 컨테이너에 할당된 프로세스를 하나의 컴퓨팅 노드로 합치고 나머지는 타 단일 컴퓨팅 환경에 이용할 수 있다.In addition, the method further includes calculating an average load of the computing nodes for a certain period of time, wherein the processes allocated to containers of a plurality of computing nodes whose average load is less than a threshold value are combined into one computing node, and the remainder is transferred to another single computing environment. Can be used.

또한, 상기 컴퓨팅 노드들의 일정기간별 평균부하량을 산출하는 단계; 및 상기 평균부하량이 임계값 미만인 컴퓨팅 노드를 예비 노드로서 상기 단일 컴퓨팅 환경의 이용에서 배제하는 단계를 더 포함하되, 장애 발생 컴퓨팅 노드가 발생되면 장애 발생 컴퓨팅 노드를 상기 단일 컴퓨팅 환경의 이용에서 배제하고 상기 예비 노드를 이용할 수 있다.In addition, calculating an average load amount for each predetermined period of the computing nodes; And excluding the computing node whose average load is less than the threshold value from the use of the single computing environment as a spare node, wherein when a failure computing node occurs, the failure computing node is excluded from the use of the single computing environment. The spare node can be used.

본 발명에 따르면, 다수의 컴퓨팅 노드를 컨테이너 방식으로 단일 컴퓨터 가상 환경을 구축함으로써, 가상화의 하이퍼바이저 계층에서 발생하는 오버헤드를 최소화하면서 이용이 편리한 단일 컴퓨팅 환경을 제공할 수 있다.According to the present invention, by constructing a single computer virtual environment with a plurality of computing nodes in a container method, it is possible to provide a single computing environment that is convenient to use while minimizing the overhead generated in the hypervisor layer of virtualization.

도 1은 본 발명의 일 실시예에 따른 역가상화의 개념을 도시한 블록도.
도 2는 본 발명의 일 실시예에 따른 고성능 클라우드 서비스를 위한 단일 가상화 시스템을 개략적으로 도시한 블록도.
도 3은 본 발명의 일 실시예에 따른 고성능 클라우드 서비스를 위한 단일 가상화 서비스의 개략적인 과정을 도시한 흐름도.
도 4는 본 발명의 일 실시예에 따른 순가상화를 이용한 복수개의 뷰를 제공하는 경우의 컴퓨팅 자원 활용 과정을 도시한 흐름도.
도 5는 본 발명의 일 실시예에 따른 신규 컴퓨팅 노드 추가시의 처리 과정을 도시한 흐름도.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 노드의 장애에 대비한 분산 제어 과정을 도시한 흐름도.
1 is a block diagram showing the concept of inverse virtualization according to an embodiment of the present invention.
2 is a block diagram schematically showing a single virtualization system for a high-performance cloud service according to an embodiment of the present invention.
3 is a flowchart illustrating a schematic process of a single virtualization service for a high-performance cloud service according to an embodiment of the present invention.
4 is a flowchart illustrating a process of utilizing computing resources when providing a plurality of views using forward virtualization according to an embodiment of the present invention.
5 is a flowchart illustrating a processing process when a new computing node is added according to an embodiment of the present invention.
6 is a flow chart illustrating a distributed control process in preparation for a failure of a computing node according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the present invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 후술될 제1 임계값, 제2 임계값 등의 용어는 실질적으로는 각각 상이하거나 일부는 동일한 값인 임계값들로 미리 지정될 수 있으나, 임계값이라는 동일한 단어로 표현될 때 혼동의 여지가 있으므로 구분의 편의상 제1, 제2 등의 용어를 병기하기로 한다. Terms such as first and second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component. For example, terms such as a first threshold value and a second threshold value, which will be described later, may be pre-designated as threshold values that are substantially different or some of the same values. There is room, so for the convenience of classification, terms such as first and second will be added together.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present specification are only used to describe specific embodiments, and are not intended to limit the present invention. 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.

또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.In addition, components of the embodiments described with reference to each drawing are not limited to the corresponding embodiments, and may be implemented to be included in other embodiments within the scope of the technical spirit of the present invention. Even if the description is omitted, it is natural that a plurality of embodiments may be implemented again as an integrated embodiment.

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

도 1은 본 발명의 일 실시예에 따른 역가상화의 개념을 도시한 블록도이고, 도 2는 본 발명의 일 실시예에 따른 고성능 클라우드 서비스를 위한 단일 가상화 시스템을 개략적으로 도시한 블록도이다.1 is a block diagram showing the concept of inverse virtualization according to an embodiment of the present invention, and FIG. 2 is a block diagram schematically showing a single virtualization system for a high-performance cloud service according to an embodiment of the present invention.

도 1을 참조하면, 일반적인 클라우드 시스템은 하나의 컴퓨팅 노드에서 가상화엔진을 이용하여 다수개의 어플리케이션 뷰를 제공하는 방식이다.Referring to FIG. 1, a general cloud system is a method of providing a plurality of application views using a virtualization engine in one computing node.

이와 비교하여, 본 발명의 일실시예에 따른 가상화 방식은 다수의 컴퓨팅 노드의 자원을 이용하여 단일 컴퓨팅 환경을 제공하여 하나의 어플리케이션 뷰를 제공함으로써, 이용자는 다수 컴퓨팅 자원이 하나로 합쳐진 고성능 컴퓨팅 자원을 이용할 수 있게 된다.In comparison, the virtualization method according to an embodiment of the present invention provides a single computing environment by using the resources of a plurality of computing nodes to provide a single application view, so that a user can obtain a high-performance computing resource in which a plurality of computing resources are combined into one. It becomes available.

물론, 차후 설명하겠으나, 본 실시예에 따른 역가상화 시스템에서도 상단에 순가상화엔진을 더 탑재하여 복수개의 뷰를 제공할 수도 있을 것이며, 이로 인해 복수개의 컴퓨팅 노드에 의한 고성능 컴퓨팅 자원을 이용한 가상화 클라우드 서비스를 제공할 수 있다. Of course, it will be described later, but in the inverse virtualization system according to the present embodiment, a forward virtualization engine may be further mounted on the top to provide a plurality of views, thereby providing a virtualization cloud service using high-performance computing resources by a plurality of computing nodes. Can provide.

이를 위한 시스템 구성을 도시한 도 2를 참조하면, 단일 가상화 시스템은 복수개의 컴퓨팅 노드(10)들과, 하이퍼바이저 계층에서 컨테이너 기반 자원 격리 기술을 이용하여 컴퓨팅 노드(10)들의 자원을 이용한 가상화 단일 컴퓨팅 환경을 제공하는 가상화서버(30)를 포함한다. 본 실시예에서는 하이퍼바이저 계층에서 컨테이너를 이용한 방식을 하이퍼체인이라 칭하기로 한다. 즉, 하이퍼바이저 계층에서 컨테이너 기술을 이용하여 체인과 같이 각 컴퓨팅 노드들의 자원을 엮어 하나의 컴퓨팅 환경을 제공하는 것이다.Referring to FIG. 2 showing a system configuration for this, a single virtualization system is a single virtualization system using the resources of the computing nodes 10 using a plurality of computing nodes 10 and a container-based resource isolation technology in the hypervisor layer. It includes a virtualization server 30 that provides a computing environment. In this embodiment, a method using a container in the hypervisor layer will be referred to as a hyperchain. In other words, the hypervisor layer provides a single computing environment by tying up resources of each computing node like a chain using container technology.

가상화서버(30)는 리눅스 커널 내부에서 컨테이너 기반 자원 격리 기술을 이용한다. 그리고, 리눅스 커널에서 클러스터 범위 자원 활용을 위한 작업 분배를 위한 관리자를 커널 모듈 형태로 운영한다. 일례에 따르면, 원격 메모리 접근 기술을 커널 내부 메모리 관리 코드의 수정으로 구현할 수 있다.The virtualization server 30 uses a container-based resource isolation technology inside the Linux kernel. In addition, in the Linux kernel, a manager for work distribution for utilization of cluster-wide resources is operated in the form of kernel modules. According to an example, the remote memory access technology can be implemented by modifying the kernel internal memory management code.

컨테이너 기술은 가장 대표적인 클라우드 네이티브 플랫폼으로 꼽힌다. 컨테이너는 오랫동안 리눅스 운영체제(OS)의 한 부분으로 존재해 왔다. 더 앞서는 유닉스 OS까지 거슬러 올라간다. 당초 [리눅스 컨테이너(LXC)]는 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템(컨테이너)들을 실행하기 위한 운영시스템 레벨 가상화 방법으로 시작됐다. 당시 다른 OS 레벨 가상화에 비해 보안수준은 안전하지 않았다. 이후 최근에 와서 윈도 컨테이너도 운영되기 시작했다.Container technology is considered the most representative cloud native platform. Containers have long existed as part of the Linux operating system (OS). It goes back to the more advanced Unix OS. Initially, [Linux Container (LXC)] was started as an operating system level virtualization method for running multiple isolated Linux systems (containers) on a single control host. At the time, the security level was not secure compared to other OS-level virtualization. Since then, Windows containers have also begun to operate recently.

컨테이너는 간단히 말하면 OS위에 설치돼 그 위에 여러 개의 격리된 공간을 만드는 개념이다. VM웨어의 가상화 솔루션이 하드웨어 레벨에서 물리적인 컴퓨팅 자원을 쪼개어 쓰는 것이라면, 컨테이너는 OS레벨의 가상화다. 애플리케이션과 이를 실행하는 라이브러리, 바이너리, 구성파일 등을 하나로 묶었다. In simple terms, a container is a concept that is installed on the OS to create several isolated spaces on it. While VMware's virtualization solution is to split physical computing resources at the hardware level, containers are virtualization at the OS level. The application and the library that runs it, binaries, and configuration files are grouped together.

즉, 실행환경 및 필요한 라이브러리 등을 하나의 패키지로 묶어 배포할 수 있도록 하는 SW 도구라고 할 수 있다. 컨테이너 이미지는 실행에 필요한 모든 이미지를 포함하고 있기 때문에 컴퓨팅 환경과 관계없이 어디서나 동일하게 실행될 수 있다. 마치 물류수송에서 컨테이너 박스를 활용해 사과나 바나나 같은 과일부터 신발, 노트북 등 다양한 품목을 운송수단 관계없이 표준화, 규격화시켜 관리하는 것과 비슷하다. IT에서의 컨테이너 기술 역시 애플리케이션 종류에 상관없이 이를 표준 이미지로 운영한다. In other words, it can be said to be a software tool that allows the execution environment and necessary libraries to be bundled and distributed in a single package. The container image contains all the images required for execution, so it can run the same anywhere, regardless of the computing environment. It is similar to standardizing and standardizing and managing various items such as fruits such as apples and bananas, shoes, and laptops using container boxes in logistics transportation, regardless of the mode of transportation. Container technology in IT also operates as a standard image regardless of the type of application.

도커(Docker)는 리눅스 애플리케이션을 컨테이너에 배치시키는 것을 자동화해주는 도구(툴)인데, 가상화서버(30)는 이를 이용한다. 도커와 같은 컨테이너 기반으로 운영되는 서비스의 경우, 갑작스러운 수요 증가 시 컨테이너 이미지를 더 많은 컴퓨팅 자원에 배포해 늘어난 워크로드를 분산 실행할 수 있도록 한다.Docker is a tool (tool) that automates the deployment of Linux applications in a container, and the virtualization server 30 uses it. In the case of container-based services such as Docker, container images are distributed to more computing resources in case of a sudden increase in demand so that the increased workload can be distributed and executed.

그리고, 하이퍼바이저는 프로세서나 메모리와 같은 다양한 컴퓨터 자원에 서로 다른 각종 (OS)의 을 통제하는 얇은 계층의 이다. 다수의 OS를 하나의 에서 가동할 수 있게 하는 소프트웨어로 (CPU)와 OS 사이에 일종의 중간웨어로 사용되며, 하나의 컴퓨터에서 서로 다른 OS를 사용하는 를 만들 수 있는 효과적인 엔진이다.In addition, the hypervisor is a thin layer that controls different types of (OS) to various computer resources such as processors and memory. It is a software that enables multiple OSs to run in one. It is used as a kind of intermediate software between (CPU) and OS, and is an effective engine that can make use of different OS on one computer.

리눅스 컨테이너 기술은 줄여서 LXC라고 부른다. 하나의 호스트에서 여러 개의 격리된 리눅스 시스템을 실행하는 가상화 기법이다. chroot 기술을 이용하여 독립된 컴퓨팅 운영 환경을 제공한다. 이러한 환경을 일반적으로 namespace라고 부르며, 다음 5가지로 구성된다.The Linux container technology is called LXC for short. It is a virtualization technique that runs multiple isolated Linux systems on a single host. It provides an independent computing operating environment using chroot technology. These environments are generally called namespaces, and are composed of the following five.

-UTS namespace : hostname 을 변경하고 분할-UTS namespace: change hostname and split

-IPC namespace : Inter-process communication. 프로세스간 통신 격리-IPC namespace: Inter-process communication. Isolate communication between processes

-PID namespace : PID (Process ID)를 분할 관리-PID namespace: divide and manage PID (Process ID)

-NS namepsace : file system 의 mount 지점을 분할하여 격리-NS namepsace: Isolate by dividing the mount point of the file system

-NET namespace : Network interface, iptables 등 network 리소스와 관련된 정보를 분할-NET namespace: divides information related to network resources such as network interface and iptables

-USER namespace : user와 group ID를 분할 격리-USER namespace: divide and isolate user and group ID

그리고 cgroup 기술을 이용하여 시스템 자원 사용을 격리한다. 컨테이너 단위로 작업을 처리할 CPU 코어를 지정할 수 있으며, 컨테이너가 사용하는 메모리 제한이 가능하다.And it uses cgroup technology to isolate the use of system resources. You can designate the CPU core to process tasks in container units, and limit the memory used by the container.

리눅스 컨테이너를 이용하는 장점은 자원을 동적으로 확장/축소가 가능하다. 그리고 동적 관리 기능을 제공하는 다른 가상화 기술 대비 연산 오버헤드가 적다. CPU-Intensive한 연산 수행에 성능 측면에서 차별화된 장점을 보인다.The advantage of using a Linux container is that resources can be dynamically expanded/reduced. And it has less computational overhead compared to other virtualization technologies that provide dynamic management functions. It shows a differentiated advantage in terms of performance for CPU-intensive operation execution.

컨테이터 기반 자원 격리 기술 및 하이퍼바이저는 당업자에게는 자명할 것이므로, 더욱 상세한 설명은 생략한다.Container-based resource isolation technology and hypervisor will be apparent to those skilled in the art, so a more detailed description will be omitted.

정리하자면, 가상화서버(30)는 가상화 기반 하이퍼바이저 계층에서 컨테이너 자원 격리 기술을 이용하여 복수개의 컴퓨팅 노드(10)의 자원을 이용한 단일 컴퓨팅 가상 환경을 제공하는 것이다.In summary, the virtualization server 30 provides a single computing virtual environment using the resources of a plurality of computing nodes 10 by using a container resource isolation technology in a virtualization-based hypervisor layer.

가상화서버(30)는 어플리케이션의 실행을 위한 어플리케이션부와 각 컴퓨팅 노드(10)의 자원을 분산 활용하기 위한 분산처리부를 더 포함한다.The virtualization server 30 further includes an application unit for executing an application and a distributed processing unit for distributing and utilizing the resources of each computing node 10.

이하에서는 가상화 서버에서의 단일 가상화 방법에 대해 설명하기로 한다.Hereinafter, a single virtualization method in a virtualization server will be described.

도 3은 본 발명의 일 실시예에 따른 고성능 클라우드 서비스를 위한 단일 가상화 서비스의 개략적인 과정을 도시한 흐름도이다.3 is a flowchart illustrating a schematic process of a single virtualization service for a high-performance cloud service according to an embodiment of the present invention.

도 3을 참조하면, 가상화서버(30)는 관리하는 복수개의 컴퓨팅 노드(10)들의 컴퓨팅 자원을 확인한다(S310). 예를 들어 각 컴퓨팅 노드(10)들의 가용저장용량, CPU/메모리 사양 등일 수 있으며, 이는 당업자에게는 자명할 것이므로 더욱 상세한 설명은 생략한다.3, the virtualization server 30 checks the computing resources of a plurality of managed computing nodes 10 (S310). For example, it may be the usable storage capacity of each computing node 10, CPU/memory specifications, etc., which will be apparent to those skilled in the art, so a more detailed description will be omitted.

가상화서버(30)는 각 컴퓨팅 노드(10)들의 확인된 자원을 기반으로, 하이퍼바이저 계층에서 리눅스 컨테이너 기반 자원 격리 기술을 이용하여 가상화 단일 컴퓨팅 환경을 구축한다(S320). 리눅스 컨테이너 기반 자원 격리 기술은 상술하였으므로 중복되는 설명은 생략한다. The virtualization server 30 builds a virtualized single computing environment using a Linux container-based resource isolation technology in the hypervisor layer based on the identified resources of each computing node 10 (S320). Since the Linux container-based resource isolation technology has been described above, redundant descriptions will be omitted.

여기서, 컴퓨팅 노드(10)들 중 하나는 리더노드로서 설정되며, 리더노드는 사용자에게 단일 가상화 환경을 제공하는 노드이다. 단일 가상화 환경에서는 리더노드의 컴퓨팅 자원과 함께 연결된 다른 모든 컴퓨팅 노드의 자원이 통합되어 보여진다. 사용자는 SSH(secure shell)나 VNC(virtual network computing)를 통해 컴퓨팅 환경에 접속하고 투명하게 제공된 글로벌 자원을 사용한다. Here, one of the computing nodes 10 is set as a leader node, and the leader node is a node that provides a single virtualization environment to a user. In a single virtualization environment, the computing resources of the leader node and the resources of all other computing nodes connected together are displayed. Users access the computing environment through secure shell (SSH) or virtual network computing (VNC) and use transparently provided global resources.

리더노드 외의 다른 컴퓨팅 노드들은 단일 가상화 환경에 자원 제공 목적으로 리눅스 컨테이너를 생성한다. 단순 자원 제공 목적으로 생성된 컨테이너이므로 각 컴퓨팅 노드가 가진 자원만 보여지며, 관리 목적의 SSH 서비스를 제공한다. 즉, 리더노드는 SSH 서비스, VNC 서비스 및 글로벌 작업 관리자의 기능을 제공하며, 나머지 컴퓨팅 노드들은 SSH 서비스만을 제공한다.Computing nodes other than the leader node create Linux containers for the purpose of providing resources to a single virtualization environment. As it is a container created for the purpose of providing simple resources, only the resources of each computing node are displayed, and SSH service for management purposes is provided. That is, the leader node provides SSH service, VNC service, and global task manager functions, and the remaining computing nodes only provide SSH service.

다시 도면을 참조하면, 이후 가상화서버(30)는 가상화 단일 컴퓨팅 환경을 이용한 클라우드 서비스를 유저들로 제공한다(S330). 이때 하나의 어플리케이션에 따른 뷰를 제공함으로써 고성능 클라우드 서비스를 제공할 수 있으며, 또는 상술한 바와 같이 도면에는 도시되지 않았으나 순가상화를 위한 가상화엔진을 이용하여 다수의 뷰를 제공할 수도 있을 것이다.Referring back to the drawing, afterwards, the virtualization server 30 provides a cloud service using a virtualized single computing environment to users (S330). In this case, a high-performance cloud service may be provided by providing a view according to one application, or as described above, although not shown in the drawing, a plurality of views may be provided using a virtualization engine for net virtualization.

도 4는 본 발명의 일 실시예에 따른 순가상화를 이용한 복수개의 뷰를 제공하는 경우의 컴퓨팅 자원 활용 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process of utilizing computing resources in the case of providing a plurality of views using forward virtualization according to an embodiment of the present invention.

도 4를 참조하면, 가상화서버(30)가 복수개의 컴퓨팅 노드를 이용하여 가상화 단일 컴퓨팅 환경을 제공하면서, 동시에 순가상화를 이용하여 복수개의 어플리케이션 뷰를 제공하는 경우(즉, 단일 가상화 컴퓨팅 환경을 이용한 복수개의 가상화엔진을 구동), 어플리케이션별(즉, 가상화엔진) 메인노드를 선정한다(S410). 즉, 다수의 컴퓨팅 노드들 중 각 어플리케이션마다 메인노드들이 설정되는 것으로, 예를 들어 어플리케이션A에는 컴퓨팅 노드1~3이 메인노드로 선정되고 어플리케이션B에는 컴퓨팅 노드4~5가 메인노드로 선정된다. 이때 각 노드는 복수개의 어플리케이션에 대해 메인노드로 중복되어 선정될 수도 있다.Referring to FIG. 4, when the virtualization server 30 provides a single virtualized computing environment using a plurality of computing nodes, and simultaneously provides a plurality of application views using forward virtualization (that is, using a single virtualized computing environment) Drives a plurality of virtualization engines), and selects a main node for each application (ie, virtualization engine) (S410). That is, main nodes are set for each application among a plurality of computing nodes. For example, computing nodes 1 to 3 are selected as main nodes for application A, and computing nodes 4 to 5 are selected as main nodes for application B. At this time, each node may be duplicated and selected as a main node for a plurality of applications.

복수개의 어플리케이션 중 이용자의 수를 확인하고(S420), 미리 설정된 임계값 이상인지 여부를 판단한다(S430).The number of users among the plurality of applications is checked (S420), and it is determined whether or not it is equal to or greater than a preset threshold (S430).

이용자 수가 임계값 이상인 경우, 많은 이용자가 존재하는 경우이므로 이때에는 메인노드만을 이용하여 각 어플리케이션을 서비스한다(S430).When the number of users is greater than or equal to the threshold value, since there are many users, each application is serviced using only the main node (S430).

이와 달리 만일 이용자 수가 임계값 미만인 경우 전체노드를 이용하여 서비스함으로써 적은 이용자에 대해서는 더욱 성능이 높은 컴퓨팅 환경을 제공한다(S450). 또는 이때에는 복수개의 어플리케이션이 제공되는 경우에는 그 어플리케이션 수에 맞게 컴퓨팅 노드들을 그룹화하고, 그룹별 서비스를 제공하도록 할 수도 있다.On the contrary, if the number of users is less than the threshold, the service is performed using all nodes, thereby providing a computing environment with higher performance for fewer users (S450). Alternatively, in this case, when a plurality of applications are provided, computing nodes may be grouped according to the number of applications, and services may be provided for each group.

본 실시예에서는 이용자 수만을 이용하였으나, 각 컴퓨팅 노드의 부하를 더 고려할 수 있는데, 예를 들어 컴퓨팅 노드들의 부평균적인 부하가 임계값 이상인 경우 전체노드를 이용하고, 임계값 미만인 경우에는 메인노드를 이용하여 해당 어플리케이션을 서비스한다.In this embodiment, only the number of users is used, but the load of each computing node can be further considered.For example, when the sub-average load of the computing nodes is greater than or equal to the threshold value, all nodes are used, and if it is less than the threshold value, the main node is used. Service the application by using it.

이하 신규 컴퓨팅 노드의 추가 시의 처리 과정에 대해 설명한다.Hereinafter, a processing process when a new computing node is added will be described.

도 5는 본 발명의 일 실시예에 따른 신규 컴퓨팅 노드 추가시의 처리 과정을 도시한 흐름도이다.5 is a flowchart illustrating a processing process when a new computing node is added according to an embodiment of the present invention.

도 5를 참조하면, 가상화서버(30)는 각 컴퓨팅 노드들의 평균부하량을 산출하여 저장 관리한다(S510). 예를 들어, 하루동안 또는 한시간 단위의 부하량에 대한 평균부하량을 산출하여 저장할 수 있을 것이다. 또한 추가적으로 컴퓨팅 노드에서 처리하는 각 프로세스에 대한 프로세스별 부하량도 함께 관리한다. 예를 들어, 컴퓨팅 노드A에서 처리하는 프로세스가 a,b,c가 있을때, 프로세스 a,b,c 각각에 대한 평균적인 부하량을 산출하여 저장한다.Referring to FIG. 5, the virtualization server 30 calculates and manages the average load of each computing node (S510). For example, it may be possible to calculate and store the average load for a daily or hourly load. In addition, it also manages the load of each process for each process processed by the computing node. For example, when the processes a, b, and c are processed by the computing node A, the average load for each of the processes a, b, and c is calculated and stored.

신규로 컴퓨팅 노드가 추가되는 경우, 신규컴퓨팅 노드의 자원을 확인한다(S520).When a computing node is newly added, the resource of the new computing node is checked (S520).

확인된 자원을 기반으로, 기존 컴퓨팅 노드들의 평균부하량을 이용하여 하나 이상의 컴퓨팅 노드를 선택하고(S530), 선택된 컴퓨팅 노드의 프로세스를 신규컴퓨팅 노드로 분배한다(S540). 예를 들어, 신규컴퓨팅 노드의 자원이 가장 낮은 수준이라 판단되면, 가장 평균부하량이 높은 기존 컴퓨팅 노드의 컨테이너에 할당된 프로세스의 일부를 신규컴퓨팅 노드로 분배한다. 또는 신규컴퓨팅 노드의 자원 수준이 가장 높다 판단되는 경우에는, 평균부하량이 높은 복수개의 기존 컴퓨팅 노드들의 프로세스들 중 일부를 분배하거나 또는, 가장 처리 부하가 높은 프로세스를 선별(상술한 바와 같은 프로세스별 부하량을 이용)하여 신규컴퓨팅 노드로 할당할 수도 있다.Based on the identified resources, one or more computing nodes are selected using the average load of the existing computing nodes (S530), and processes of the selected computing nodes are distributed to the new computing nodes (S540). For example, if it is determined that the resource of the new computing node is the lowest level, a part of the process allocated to the container of the existing computing node with the highest average load is distributed to the new computing node. Alternatively, if it is determined that the resource level of the new computing node is the highest, distribute some of the processes of the plurality of existing computing nodes with the highest average load, or select the process with the highest processing load (as described above, Can also be assigned as a new computing node.

본 실시예에 따르면, 신규로 컴퓨팅 노드가 추가되더라도, 가상화서버(30)에서 프로세스를 자동으로 분배하며, 더욱이 기존 컴퓨팅 노드들의 부하를 고려함으로써, 보다 빠른 처리가 가능하도록 한다.According to the present embodiment, even if a computing node is newly added, the virtualization server 30 automatically distributes the process, and further, by considering the load of the existing computing nodes, faster processing is possible.

도 6은 본 발명의 일 실시예에 따른 컴퓨팅 노드의 장애에 대비한 분산 제어 과정을 도시한 흐름도이다. 6 is a flowchart illustrating a distributed control process in preparation for a failure of a computing node according to an embodiment of the present invention.

도 6을 참조하면, 가상화서버(30)는 각 컴퓨팅 노드들의 일정기간(예를 들어, 일주일 또는 한달 등) 동안의 평균부하량을 산출하여 저장 관리한다(S510). 평균부하량의 산출에 대해서는 상술하였으므로 중복되는 설명은 생략한다.Referring to FIG. 6, the virtualization server 30 calculates and manages the average load for a certain period (eg, a week or a month) of each computing node (S510). Since the calculation of the average load has been described above, duplicate descriptions will be omitted.

산출된 평균부하량을 미리 설정된 임계값과 비교하고(S620), 비교 결과로 임계값 이하의 컴퓨팅 노드가 존재하는지를 판단한다(S630). 평균부하량이 작은 즉, 거의 이용되지 않는 컴퓨팅 노드를 선별하기 위한 것이다.The calculated average load is compared with a preset threshold (S620), and as a result of the comparison, it is determined whether there is a computing node below the threshold (S630). This is to select a computing node that has a small average load, that is, is rarely used.

판단 결과, 임계값 이하의 컴퓨팅 노드가 존재하지 않는 경우에는 기존대로 전체노드를 이용하여 서비스를 제공하고(S640), 다음 주기에 다시 S510부터 다시 프로세스를 진행한다.As a result of the determination, if there is no computing node below the threshold value, the service is provided using all nodes as before (S640), and the process is performed again from S510 in the next cycle.

이와 달리 임계값 이하의 컴퓨팅 노드가 존재하는 경우, 해당 컴퓨팅 노드를 예비노드로서 분류하여 단일 컴퓨팅 환경으로의 이용에서 배제시킨다(S650). 다시 말해, 잘 이용되지 않는 컴퓨팅 노드는 배제시키는 것이며, 해당 컴퓨팅 노드에서 처리되던 프로세스는 타 컴퓨팅 노드(예를 들어, 평균부하량이 가장 작은 컴퓨팅 노드)로 할당된다.In contrast, when a computing node below the threshold value exists, the computing node is classified as a spare node and excluded from use in a single computing environment (S650). In other words, a computing node that is not used well is excluded, and a process processed by the computing node is allocated to another computing node (eg, a computing node having the lowest average load).

차후, 고장 등의 장애가 있는 컴퓨팅 노드가 발생되면, 장애 발생된 컴퓨팅 노드의 역할을 예비노드가 수행하도록 한다. 해당 장애가 복구되면 대행하던 예비노드는 단일 컴퓨팅 환경에서 배제되어 다시 예비노드로서 존재한다. 다른 일례에 따르면 장애 발생 컴퓨팅 노드가 예비노드로 전환되고, 기존 예비노드가 장애 발생 컴퓨팅 노드의 역할을 수행하도록 할 수도 있다.In the future, when a failed computing node such as a failure occurs, the spare node performs the role of the failed computing node. When the failure is recovered, the spare node that was acting on behalf of it is excluded from the single computing environment and exists as a spare node again. According to another example, a failed computing node may be converted into a spare node, and an existing spare node may perform the role of a failed computing node.

본 실시예에 따르면, 부하가 적은 컴퓨팅 노드를 예비자원으로써 이용함으로써, 컴퓨팅 노드의 일부 장애에도 안전하게 서비스를 유지할 수 있게 된다.According to this embodiment, by using a computing node having a low load as a spare resource, it is possible to safely maintain a service even in case of some failures of the computing node.

도면에는 도시되지 않았으나, 일 실시예에 따르면 가상화서버는 컴퓨팅 노드들의 일정기간별 평균부하량을 산출하고, 평균부하량이 임계값 미만인 복수개의 컴퓨팅 노드들의 컨테이너에 할당된 프로세스를 하나의 컴퓨팅 노드로 합치고 나머지는 타 단일 컴퓨팅 환경에 이용할 수 있다. 즉, 임계값 미만인 컴퓨팅 노드가 복수개인 경우에는 단일 컴퓨팅 환경에서 배제하고, 타 단일 컴퓨팅 환경에 이용되도록 하는 것이며, 또는 잘 이용되지 않는 컴퓨팅 노드들만을 모아서 제2 단일 컴퓨팅 환경을 제공할 수도 있다. Although not shown in the drawing, according to an embodiment, the virtualization server calculates the average load of computing nodes for a certain period of time, combines the processes allocated to containers of a plurality of computing nodes whose average load is less than the threshold value into one computing node, and the remainder is It can be used in other single computing environments. That is, when there are a plurality of computing nodes less than the threshold value, it is excluded from a single computing environment and used in another single computing environment, or a second single computing environment may be provided by collecting only the less frequently used computing nodes.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those of ordinary skill in the relevant technical field can variously modify the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. It will be appreciated that it can be modified and changed.

10 : 컴퓨팅 노드
30 : 가상화서버
10: computing node
30: virtualization server

Claims (10)

복수개의 컴퓨팅 노드들; 및
하이퍼바이저 계층에서 컨테이너 기반 자원 격리 기술을 이용하여 상기 컴퓨팅 노드들의 자원을 함께 활용하여 고성능의 단일 컴퓨팅 환경을 가상화 방식으로서 제공하는 가상화서버를 포함하되,
상기 가상화서버는 상기 컴퓨팅 노드들의 평균부하량을 산출하고, 상기 평균부하량이 설정된 임계값 미만인 복수개의 컴퓨팅 노드들에 대해, 각 컨테이너에 할당된 프로세스를 하나의 컴퓨팅 노드의 컨테이너에 합치고 나머지는 상기 단일 컴퓨팅 환경의 이용에서 배제하되, 배제된 컴퓨팅 노드 중 하나는 예비노드로서 상기 단일 컴퓨팅 환경에 이용중인 컴퓨팅 노드들 중 장애 발생된 컴퓨팅 노드의 역할을 대체하는데 이용하는, 고성능 클라우드 서비스를 위한 단일 가상화 시스템.
A plurality of computing nodes; And
Including a virtualization server that provides a single high-performance computing environment as a virtualization method by utilizing the resources of the computing nodes together using a container-based resource isolation technology in the hypervisor layer,
The virtualization server calculates the average load of the computing nodes, and for a plurality of computing nodes whose average load is less than a set threshold, combines the processes assigned to each container into a container of one computing node, and the remainder is the single computing. A single virtualization system for a high-performance cloud service that is excluded from the use of the environment, but one of the excluded computing nodes is a spare node and is used to replace the role of a failed computing node among computing nodes in use in the single computing environment.
청구항 1에 있어서,
상기 가상화서버는 상기 단일 컴퓨팅 환경을 통해 제공하는 어플리케이션이 순수가상화 엔진을 이용하여 복수개인 경우, 각 어플리케이션에 대해 상기 컴퓨팅 노드들 중 하나 이상의 메인노드를 선정하고, 어플리케이션의 이용자수 또는 컴퓨팅 노드들의 부하에 대응하여 전체노드 또는 상기 메인노드 중 어느 하나를 이용하는, 고성능 클라우드 서비스를 위한 단일 가상화 시스템.
The method according to claim 1,
The virtualization server selects one or more main nodes among the computing nodes for each application when there are a plurality of applications provided through the single computing environment using a pure virtualization engine, and the number of users of the application or the load of the computing nodes A single virtualization system for a high-performance cloud service using either the entire node or the main node in response to the.
청구항 1에 있어서,
신규 컴퓨팅 노드의 추가 시 상기 평균부하량을 이용하여 선택되는 컴퓨팅 노드의 컨테이너에 할당된 프로세스의 일부를 상기 신규 컴퓨팅 노드로 분배하는, 고성능 클라우드 서비스를 위한 단일 가상화 시스템.
The method according to claim 1,
A single virtualization system for a high-performance cloud service for distributing a part of a process allocated to a container of a computing node selected using the average load when a new computing node is added to the new computing node.
삭제delete 삭제delete 복수개의 컴퓨팅 노드들을 이용하여 가상화 단일 컴퓨팅 환경을 제공하는 서버장치에서 수행되는 단일 가상화 방법에 있어서, 
복수개의 컴퓨팅 노드들의 컴퓨팅 자원을 확인하는 단계;
각 컴퓨팅 노드들의 확인된 자원을 기반으로, 하이퍼바이저 계층에서 컨테이너 기반 자원 격리 기술을 이용하여 상기 컴퓨팅 노드들의 자원을 함께 활용하여 고성능의 단일 컴퓨팅 환경을 가상화 방식으로서 제공하는 단계;
상기 컴퓨팅 노드들의 평균부하량을 산출하는 단계;
상기 평균부하량이 설정된 임계값 미만인 복수개의 컴퓨팅 노드들에 대해, 각 컨테이너에 할당된 프로세스를 하나의 컴퓨팅 노드의 컨테이너에 합치고 나머지는 상기 단일 컴퓨팅 환경의 이용에서 배제하되, 배제된 컴퓨팅 노드 중 하나는 예비노드로서 설정하는 단계;
상기 단일 컴퓨팅 환경에 이용중인 컴퓨팅 노드들 중 장애 발생된 컴퓨팅 노드의 역할을 상기 예비노드로 대체하는 단계를 포함하는, 고성능 클라우드 서비스를 위한 단일 가상화 방법.
In a single virtualization method performed in a server device providing a virtualized single computing environment using a plurality of computing nodes,
Checking computing resources of the plurality of computing nodes;
Providing a single high-performance computing environment as a virtualization method by utilizing the resources of the computing nodes together using a container-based resource isolation technology in a hypervisor layer based on the identified resources of each computing node;
Calculating an average load of the computing nodes;
For a plurality of computing nodes in which the average load is less than a set threshold, the processes assigned to each container are combined into a container of one computing node, and the rest are excluded from the use of the single computing environment, but one of the excluded computing nodes is Setting as a spare node;
A single virtualization method for a high-performance cloud service comprising the step of replacing the role of a failed computing node among the computing nodes being used in the single computing environment with the spare node.
청구항 6에 있어서,
상기 가상화 단일 컴퓨팅 환경을 통해 제공하는 어플리케이션이 순수가상화 엔진을 이용하여 복수개인 경우,
각 어플리케이션에 대해 상기 컴퓨팅 노드들 중 하나 이상의 메인노드를 선정하는 단계를 포함하되,
각 어플리케이션의 이용자수 또는 컴퓨팅 노드들의 부하에 대응하여 전체노드 또는 상기 메인노드 중 어느 하나를 이용하는, 고성능 클라우드 서비스를 위한 단일 가상화 방법.
The method of claim 6,
When there are a plurality of applications provided through the virtualized single computing environment using a pure virtualization engine,
Including the step of selecting one or more main nodes of the computing nodes for each application,
A single virtualization method for a high-performance cloud service, using either the entire node or the main node in response to the number of users of each application or the load of computing nodes.
청구항 6에 있어서,
신규 컴퓨팅 노드의 추가 시 상기 평균부하량을 이용하여 선택되는 컴퓨팅 노드의 컨테이너에 할당된 프로세스의 일부를 상기 신규 컴퓨팅 노드로 분배하는, 고성능 클라우드 서비스를 위한 단일 가상화 방법.
The method of claim 6,
A single virtualization method for a high-performance cloud service, distributing a part of a process allocated to a container of a computing node selected using the average load when a new computing node is added to the new computing node.
삭제delete 삭제delete
KR1020190139636A 2019-11-04 2019-11-04 Single virtualization method and system for HPC cloud service KR102231358B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190139636A KR102231358B1 (en) 2019-11-04 2019-11-04 Single virtualization method and system for HPC cloud service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190139636A KR102231358B1 (en) 2019-11-04 2019-11-04 Single virtualization method and system for HPC cloud service

Publications (1)

Publication Number Publication Date
KR102231358B1 true KR102231358B1 (en) 2021-03-24

Family

ID=75256925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190139636A KR102231358B1 (en) 2019-11-04 2019-11-04 Single virtualization method and system for HPC cloud service

Country Status (1)

Country Link
KR (1) KR102231358B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472551A (en) * 2023-12-27 2024-01-30 四川弘智远大科技有限公司 Cloud computing hardware acceleration control system and method based on GPU integration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101378348B1 (en) * 2013-06-10 2014-03-27 남도정보통신(주) Basic prototype of hadoop cluster based on private cloud infrastructure
KR20150031502A (en) * 2012-08-07 2015-03-24 어드밴스드 마이크로 디바이시즈, 인코포레이티드 System and method for configuring cloud computing systems
KR20180074136A (en) * 2016-12-23 2018-07-03 경희대학교 산학협력단 A container resource allocation device and method in virtual desktop infrastructure
KR20190058619A (en) 2016-10-05 2019-05-29 파르텍 클러스터 컴피턴스 센터 게엠베하 High Performance Computing System and Method
KR20190070659A (en) * 2017-12-13 2019-06-21 주식회사 넥스클라우드 Cloud computing apparatus for supporting resource allocation based on container and cloud computing method for the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150031502A (en) * 2012-08-07 2015-03-24 어드밴스드 마이크로 디바이시즈, 인코포레이티드 System and method for configuring cloud computing systems
KR101378348B1 (en) * 2013-06-10 2014-03-27 남도정보통신(주) Basic prototype of hadoop cluster based on private cloud infrastructure
KR20190058619A (en) 2016-10-05 2019-05-29 파르텍 클러스터 컴피턴스 센터 게엠베하 High Performance Computing System and Method
KR20180074136A (en) * 2016-12-23 2018-07-03 경희대학교 산학협력단 A container resource allocation device and method in virtual desktop infrastructure
KR20190070659A (en) * 2017-12-13 2019-06-21 주식회사 넥스클라우드 Cloud computing apparatus for supporting resource allocation based on container and cloud computing method for the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Orangetech, ‘Cloudit 3 제품 소개’, 2015.09.28. (출처: http://www.orangetech.co.kr/download/enterprise/cloudit_1602.pdf)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472551A (en) * 2023-12-27 2024-01-30 四川弘智远大科技有限公司 Cloud computing hardware acceleration control system and method based on GPU integration
CN117472551B (en) * 2023-12-27 2024-03-01 四川弘智远大科技有限公司 Cloud computing hardware acceleration control system and method based on GPU integration

Similar Documents

Publication Publication Date Title
US10726518B2 (en) Capacity reservation for virtualized graphics processing
US9495197B2 (en) Reliable and scalable image transfer for data centers with low connectivity using redundancy detection
US10977086B2 (en) Workload placement and balancing within a containerized infrastructure
CN110417613B (en) Distributed performance testing method, device, equipment and storage medium based on Jmeter
US9027020B2 (en) Data and state threading for virtualized partition management
CN110098946B (en) Method and device for deploying virtualized network element equipment
US11614977B2 (en) Optimizing clustered applications in a clustered infrastructure
CN104937584A (en) Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US10235473B2 (en) Methods and systems to allocate logical disk costs to virtual machines in a virtual data center
US9800484B2 (en) Optimizing resource utilization in a networked computing environment
US10572421B2 (en) Topology-aware parallel reduction in an accelerator
US20210124665A1 (en) Methods and systems that efficiently store metric data
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
US11593177B2 (en) Cost-savings using ephemeral hosts in infrastructure as a service environments based on health score
US9798483B2 (en) Object storage power consumption optimization
US10250455B1 (en) Deployment and management of tenant services
KR102231358B1 (en) Single virtualization method and system for HPC cloud service
US11561824B2 (en) Embedded persistent queue
KR102231359B1 (en) Single virtualization system for HPC cloud service and process scheduling method
KR102231357B1 (en) Single virtualization system for HPC cloud service and server software defined server scheduling method
KR102413924B1 (en) Process group management method and system for high performance cloud service system using multiple computing nodes
US11669369B2 (en) Cluster resource management using adaptive memory demand
KR102413923B1 (en) Load balancing method and system for power efficiency in high-performance cloud service system using multiple computing nodes
US10097431B1 (en) Routing to tenant services utilizing a service directory
Cortes et al. Serverless Architecture: Scalability, Implementations and Open Issues

Legal Events

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