KR102563329B1 - 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템 - Google Patents

컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템 Download PDF

Info

Publication number
KR102563329B1
KR102563329B1 KR1020210116349A KR20210116349A KR102563329B1 KR 102563329 B1 KR102563329 B1 KR 102563329B1 KR 1020210116349 A KR1020210116349 A KR 1020210116349A KR 20210116349 A KR20210116349 A KR 20210116349A KR 102563329 B1 KR102563329 B1 KR 102563329B1
Authority
KR
South Korea
Prior art keywords
server
network
cpu
container
slo
Prior art date
Application number
KR1020210116349A
Other languages
English (en)
Other versions
KR20230033417A (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 KR1020210116349A priority Critical patent/KR102563329B1/ko
Publication of KR20230033417A publication Critical patent/KR20230033417A/ko
Application granted granted Critical
Publication of KR102563329B1 publication Critical patent/KR102563329B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers

Abstract

본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법은 단말 및 상기 단말과 연동하는 복수의 서버들에 의해 수행되고, 상기 방법은 하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하는 컨테이너 생성 요청 수신 과정; 상기 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하는 서버 목록 생성 과정 - 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관됨 -; 및 상기 생성된 서버 목록에 포함된 서버들 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버를 선택하는 서버 선택 과정을 포함한다.

Description

컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템{Method for Inter-Resource Dependency Scheduling for Containers and Network System for performing the same}
본 발명은 컨테이너 오케스트레이션에 관한 것이며, 보다 상세하게는 컨테이너 환경에서의 리소스 관리에 관한 것이다.
클라우드 서비스는 IT분야를 넘어서 헬스케어, 금융, 제조, 및 유통업과 같은 산업의 다양한 분야에서 활용되고 있다. 클라우드 서비스 사용자는 온디멘드(On-Demand) 형태로 제공되는 클라우드 컴퓨팅 자원을 사용하고, 사용한 만큼의 비용을 지불한다. 따라서 클라우드 서비스 제공자는 과금된 클라우드 컴퓨팅 자원에 대한 신속하고 신뢰성 있는 서비스를 보장해야 한다.
클라우드의 자원 관리 기능은 쿠버네티스(Kubernetes)와 같은 대표적인 컨테이너 오케스트레이션 플랫폼에서 확인할 수 있다. 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 분야의 대표적인 오픈소스 프로젝트로서, 컨테이너 기반의 응용서비스를 배포, 확장, 관리할 수 있는 오케스트레이션 플랫폼이다. 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 선언적 구성과 자동화를 모두 용이하게 해줌으로써, 크고 빠르게 생태계를 성장할 수 있다.
쿠버네티스의 스케줄링 할당 방식과 관련하여, 테넌트가 컨테이너 생성을 요청할 때 리소스 수요 (예: CPU 코어 수, 메모리 크기)가 포함된 구성 파일을 먼저 API server로 제출한다. 그런 다음, Kubernetes의 컨테이너 스케줄러는 구성 파일에 지정된 리소스 수요를 충족할 수 있는 서버 목록을 생성한다. 스케줄러는 스케줄링 정책에 따라 목록에서 서버의 우선순위를 지정하고, 우선순위가 가장 높은 서버를 선택한다. 선택된 서버에 컨테이너를 생성하고 리눅스 cgroup API를 이용하여 서버의 CPU 및 메모리를 할당한다.
DRF (Dominant Resource Fairness)는 여러 리소스 유형에 대한 최대-최소 공정성을 위해 설계된 공정 점유율 모델이다. Kubernetes와 유사하게 테넌트로부터 작업에 필요한 CPU 및 메모리와 같은 컴퓨팅 리소스의 양을 포함하는 리소스 수요를 받는다. 그다음 테넌트의 지배적 점유율을 계산하고, 여러 테넌트의 지배적 점유율 중 가장 작은 값을 가지는 테넌트를 선택하여 리소스를 할당한다.
클라우드 애플리케이션에서는 네트워크 성능 측면에서 SLO를 보장하는 것이 가장 중요하다. 이는 최근 클라우드 애플리케이션이 분산된 컨테이너로 실행되고 서로 통신하여 사용자 대면 서비스를 제공하는 경향이 있기 때문이다. 하지만, 컨테이너에 대한 네트워크 서비스 수준 목표 (SLO)를 충족하는 것은 어렵다. 그 이유는 컨테이너가 동일한 운영 체제 (예 : 호스트 OS) 를 공유할 때, 동일한 호스트 OS의 네트워킹 스택이 컨테이너 간에 공유되기 때문이다. 따라서, 컨테이너가 서로 간섭할 수 있어 네트워크 SLO를 달성하기가 어렵다는 문제점이 있다.
또한, 컨테이너의 네트워크 처리는 기본 프로세스보다 더 많은 CPU 리소스를 사용한다는 문제점이 있다. 이는 컨테이너는 네트워크 브릿지에서 추가 패킷 처리가 필요하기 때문이다. 즉, 만족하는 네트워크 SLO에는 네트워크 및 CPU 리소스가 모두 있어야 한다. 예를 들면, 컨테이너가 충분한 CPU 리소스를 받지 못하면 컨테이너에 할당된 네트워크 리소스가 충분하더라도 컨테이너의 네트워크 성능이 저하될 수 있다는 문제점이 있다.
이전 연구는 DRF를 기반으로 하여 CPU, 메모리 및 네트워크와 같은 다양한 유형의 리소스를 컨테이너에 동시에 할당하는 다중 리소스 스케줄링에 중점을 두었다. 하지만, 이전 연구들에서 네트워크 SLO를 충족하는 데 2가지 제한이 있다.
첫째, 컨테이너의 네트워크 SLO를 만족시키기 위해 리소스 간의 의존성을 고려할 필요가 있다. 테넌트가 리소스 간 의존성을 이해하지 못한다면 적절한 리소스 양을 지정할 수 없고 이로 인해 컨테이너가 네트워크 SLO를 충족하지 못할 수 있다는 문제점이 있다. 둘째, DRF 기반 기법은 테넌트 수가 증가함에 따라 스케줄링 오버헤드가 증가한다는 문제점이 있다. 이는 DRF 알고리즘이 리소스 유형에 대한 모든 테넌트의 지배적 점유율을 계산하기 때문이다.
 따라서 본 발명은 컨테이너 환경에서 사용자의 다양한 네트워크 요구 사항을 만족시키기 위해 리소스 간 의존성을 고려하여 네트워크 성능을 보장함과 동시에 스케줄링 오버헤드를 최소화하고자 한다.
따라서 본 발명은 컨테이너 환경에서 사용자의 다양한 네트워크 요구 사항을 만족시키기 위해 리소스 간 의존성을 고려하는 것을 목적으로 한다.
또한, 본 발명은 네트워크 성능을 보장함과 동시에 스케줄링 오버헤드를 최소화하는 것을 목적으로 한다.
본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법은 단말 및 상기 단말과 연동하는 복수의 서버들에 의해 수행되고, 상기 방법은 하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하는 컨테이너 생성 요청 수신 과정; 상기 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하는 서버 목록 생성 과정 - 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관됨 -; 및 상기 생성된 서버 목록에 포함된 서버들 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버를 선택하는 서버 선택 과정을 포함한다.
본 발명의 다른 양상에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네트워크 시스템은 하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하고, 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하도록 구성된 사용자 단말 - 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관됨 - ; 및 상기 네트워크 SLO에 기반하여 상기 컨테이너의 네트워트 성능을 모니터링하고, 상기 모니터링된 네트워크 성능에 기반하여 상기 특정 목표 성능을 달성하도록 상기 컨테이너의 CPU 할당을 동적으로 조정하도록 구성된 적어도 하나의 서버를 포함한다.
본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템의 기술적 효과는 다음과 같다. 본 발명의 효과는 네트워크 성능 측면과 오버헤드 측면, 2가지로 나눌 수 있다.
 먼저, 네트워크 성능의 이점은 테넌트로부터 네트워크 SLO만 받고 CPU와 네트워크 리소스 간의 의존성을 계산하여 필요한 CPU 리소스를 자동으로 할당함으로써 네트워크 SLO를 달성할 수 있다는 점이다. 기존의 DRF 기반 스케줄링 기법은 테넌트로부터 네트워크 SLO를 달성하기 위해 필요한 CPU 리소스를 함께 받아야 하고, 리소스 간의 의존성에 대한 이해가 없으면 CPU 리소스를 잘못 할당하여 네트워크 SLO를 달성하기 어려워진다는 문제점이 있었다. 본 발명에서는 CPU와 네트워크 리소스 간의 의존성을 고려할 수 있는 서버를 찾고 서버에서 네트워크 SLO를 달성하기 위해 필요한 CPU를 자동으로 조절하여 테넌트의 리소스 간 의존성에 대한 이해 없이도 네트워크 SLO를 달성할 수 있다.
 두 번째로 오버헤드의 이점은 컨테이너 배치와 리소스 할당을 클라우드 수준과 서버 수준으로 나누어 오버헤드를 줄이고, 컨테이너 배치에 필요한 스케줄링 시간을 서버 수준으로 낮춘다는 점이다. 기존의 DRF 기반 스케줄링 기법은 중앙 집중식 컨트롤러에서 컨테이너 배치와 리소스 할당을 수행하여 오버헤드가 높고, 컨테이너 배치시에 모든 테넌트와 리소스에 대해 탐색을 하기 때문에 스케줄링 완료 시간이 늦어진다는 문제점이 있었다. 본 발명에서는 컨테이너 배치를 중앙 집중식 스케줄러에서 수행하고 리소스 할당을 각 서버에서 수행함으로써 오버헤드를 줄이고, 컨테이너 배치시에는 하나의 리소스에 대해서만 서버를 탐색하기 때문에 스케줄링 완료 시간을 줄일 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
도 1은 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네트워크 시스템의 개념도이다.
도 2는 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 단말과 특정 서버의 상세 구성도이다.
도 3은 본 발명에 따른 컨테이너 배치 알고리즘을 나타낸다.
도 4는 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법의 흐름도이다.
도 5는 대역폭 구성과 스루풋으로 이루어진 서비스 SLO 관점에서 기존 방법 및 본 발명의 스케줄링 방법의 성능을 비교한 것이다.
도 6은 서버의 수에 따른 정규화된 스케줄링 시간과 관련하여, 기존 방법 및 본 발명의 스케줄링 방법의 성능을 비교한 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제1, 제2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 모듈, 블록 및 부는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야에 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명한다. 하기에서 본 발명의 실시 예를 설명함에 있어, 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
이하에서는, 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템에 대해 설명한다. 이와 관련하여, 본 발명에서 사용될 용어에 대해 정의하면 다음과 같다.
- 컨테이너(Container) : 리눅스 기술을 사용하여 프로세스가 사용하는 리소스를 격리한 것이다. 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스 구동을 위한 격리 환경을 마련해주는 역할을 한다.
- 컨테이너 오케스트레이션 (Container orchestration) : 복잡한 컨테이너 환경을 효과적으로 관리하기 위해 사용하는 도구이다. 여러 컨테이너의 배포 프로세스를 최적화하고 자동으로 컨테이너의 배포, 관리, 확장, 네트워킹을 하는 기술이다.
- 쿠버네티스 (Kubernetes) : 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 선언적 구성과 자동화를 모두 용이하게 해줌으로써, 크고 빠르게 생태계를 성장할 수 있다.
- 서비스 수준 목표 (SLO) : 서비스에서 달성해야하는 목표 성능이다. 클라우드 제공자는 서비스의 목표 성능을 제공해야 하고 이를 제공하지 못하면 서비스 수익 감소를 경험할 수 있다.
- 지배적 점유율 (dominant share) : 사용자가 요구하는 리소스의 점유율 중 가장 큰 값을 지배적 점유율이라 한다.
한편, 본 발명과 관련하여 클라우드 환경에서 SLA는 중요한 이슈이다. SLA는 클라우드 서비스 제공자와 사용자 간, 서비스 품질 수준을 정의하는 계약이다. 즉, Service Level Agreement(SLA)는 서비스 계약을 정의하고, Service Level Objective (SLO) 는 서비스 품질 수준의 목표를 정의한다. 일 예로, 네트워크 최대 대역폭 (300Mbps), 서비스에 대한 월 가동시간 99%를 보장하여야 한다.
SLA 위반이 발생할 경우 서비스 제공자는 페널티가 부여될 수 있다. 이러한 SLA 위반이 발생했을 때 보상에 대한 내용도 계약 내용에 포함될 수 있다. 일 예로, 월간 가동시간(SLO)이 99.0% 미만일 경우 서비스 크레딧(페널티)을 30%가 부여될 수 있다. 따라서, SLA 위반이 발생하지 않기 위해서는 SLO 보장이 필요하다.
이러한 SLO의 보장을 위해 본 발명은 쿠버네티스 (Kubernetes)의 중앙 집중식 컨트롤러에 적용된 컨테이너 배치 알고리즘과 각 서버에서 실행되고 있는 리소스 할당 모듈로 구성될 수 있다. 이와 관련하여, 도 1은 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네트워크 시스템의 개념도이다. 한편, 도 2는 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 단말과 특정 서버의 상세 구성도이다.
도 1을 참조하면, 네트워크 시스템은 단말 (예: 사용자 단말)(100) 및 복수의 서버들(1000)을 포함하도로 구성된다. 복수의 서버들(1000)은 제1 서버(1100) 내지 제3 서버(1300)를 포함할 수 있으며, 서버의 개수는 이에 한정되는 것은 아니다. 단말(100)은 컨테이너 배치 알고리즘을 수행하는 프로세서(110)가 포함될 수 있다.
도 2는 도 1에서 단말(100)과 복수의 서버들 중 단말(100)과 연결되어 통신하는 특정 서버, 예컨대(1100)의 상세 구성을 나타낸 것이다. 이와 관련하여, 단말(100)은 도 1에 도시된 바와 같이 제1 서버(1100) 이외에 다른 서버들과 연결되도록 구성될 수 있다.
도 1 및 도 2를 참조하면, 단말(100)은 프로세서(110), 인터페이스(120) 및 메모리(130)를 포함하도록 구성될 수 있다. 서버(1100)도 프로세서(1110), 인터페이스(1120) 및 메모리(1130)를 포함하도록 구성될 수 있다.
프로세서(110)는 복수의 서버들을 포함하는 서버 목록을 생성하고 서버 목록 내의 서버들 중 특정 서버를 선택하는 컨테이너 배치 알고리즘을 수행하도록 구성될 수 있다. 인터페이스(120)는 복수의 서버들(1000)과 인터페이스되어 복수의 서버들(1000) 중 적어도 하나와 데이터를 송신 및 수신하도록 구성될 수 있다. 메모리(130)는 정보를 저장하도록 구성될 수 있다.
프로세서(1110)는 리소스 할당 모듈로 구성되거나 이를 포함하도록 구성될 수 있다. 인터페이스(120)는 단말(100)과 인터페이스되어 컨테이너 생성 요청을 수신하도록 구성될 수 있다. 메모리(130)는 정보를 저장하도록 구성될 수 있다.
한편, 컨테이너 배치 알고리즘을 수행하는 프로세서(110)는 인터페이스(120)ㄹ를 통해 테넌트로부터 100Mbps 네트워크 SLO가 있는 컨테이너를 생성하라는 요청을 수신한다. 그런 다음, 알고리즘에서 3개의 서버 중 사용 가능한 네트워크 대역폭이 100Mbps 이상인 서버 목록을 생성한다. S1과 S2는 서버 목록에 포함되고 두 서버 중 사용 가능한 CPU 리소스가 가장 많은 서버를 선택한다. 그러므로 S1이 최적의 서버로 선택된다. 컨테이너가 S1에 생성되면 S1의 리소스 할당 모듈은 알고리즘에서 컨테이너의 네트워크 SLO를 수신한 다음 컨테이너의 네트워크 성능을 모니터링하고 컨테이너의 CPU 할당을 동적으로 조정하여 100Mbps를 달성할 수 있다.
한편, 본 발명의 컨테이너 배치 알고리즘은 컨테이너 환경에서 리소스 간의 의존성을 고려하기에 적합한 서버를 찾는다. 도 3은 본 발명에 따른 컨테이너 배치 알고리즘을 나타낸다.
도 3을 참조하면, 알고리즘은 사용자가 요청한 네트워크 SLO보다 많은 양의 사용 가능한 네트워크 리소스가 있는 서버 목록을 생성한다 (5~10행). 둘째, 사용 가능한 CPU 리소스의 양을 기준으로 앞서 생성된 서버 목록의 각 서버에 가중치를 할당한다 (15~20행). 알고리즘은 네트워크 SLO를 달성하는 데 필요한 CPU 리소스에 대한 정보가 없기 때문에 가장 높은 가중치 (FW) 를 가진 호스트 서버 (FS) 를 선택하여 컨테이너를 배치한다. 본 발명의 컨테이너 배치 알고리즘은 DRF 기반 스케줄링 알고리즘에 비해 낮은 스케줄링 오버헤드를 제공한다. DRF 기반 스케줄링 알고리즘은 테넌트 수(T) 및 리소스 유형 (R) 에 대한 리소스 할당을 반복한다. 따라서 DRF 기반 알고리즘의 시간 복잡도는 O(R2T) 이며, 테넌트 수와 리소스 유형의 증가에 따라 스케줄링 오버헤드가 증가한다. 반면에 본 발명의 알고리즘은 테넌트 수 또는 리소스 유형에 대한 리소스 할당을 반복하지 않고 컨테이너 배치를 위한 서버 수만큼의 탐색을 수행한다. 따라서, 컨테이너 배치 알고리즘의 최악의 시간 복잡도는 호스트 서버 수인 N에 대하여 O(N)이다. 따라서, DRF를 기반으로 하는 기존 기법들에 비해 본 발명의 기법은 스케줄링 오버헤드를 서버 수준으로 개선한다.
도 1을 참조하면, 리소스 할당 모듈은 컨테이너 배치 알고리즘에서 선정된 서버에서 리소스 간의 의존성을 고려하여 CPU를 할당한다. 이 모듈은 네트워크 SLO를 충족하기 위해 컨테이너에 대한 CPU 할당을 동적으로 조정한다. 테넌트로부터 CPU 리소스 요구사항을 받지 않고 네트워크 대역폭과 같은 네트워크 SLO만 받으므로 리소스 할당 모듈은 호스트 서버에서 네트워크 SLO를 달성하기 위해 적절한 양의 CPU 리소스를 찾으려고 한다. 리소스 할당 모듈은 컨테이너의 네트워크 대역폭을 주기적으로 모니터링하고 대역폭을 네트워크 SLO와 비교한다. 대역폭이 SLO보다 작으면 리소스 할당 모듈은 컨테이너에 대한 CPU 할당을 늘린다.
CPU 할당량의 증가 및 감소의 정도는 수학식 1과 같이 SLO (NS) 와 실제 대역폭 (NP) 의 차이에 비례하도록 폐쇄 루프 제어 알고리즘을 기반으로 하여 설계될 수 있다.
수학식 1에서 CPUprev 및 CPUalloc은 각각 이전 기간과 현재 기간의 CPU 할당을 나타낸다. k는 리소스 할당 모듈의 전체 성능에 영향을 미치는 조정 가능한 매개 변수이다. 예를 들어 k의 값이 큰 경우 CPU 할당을 큰 폭으로 늘려 SLO를 달성하는 데 걸리는 시간을 줄이지만 컨테이너 성능이 크게 변동될 수 있다. 반면에, k의 값이 작은 경우 컨테이너의 성능은 크게 변동하지는 않지만, CPU 할당이 느리게 변경되어 네트워크 SLO로의 수렴이 느려진다. 그러므로 적절한 k 값이 선정함으로써 CPU를 자동으로 할당하여 네트워크 SLO를 달성할 수 있다.
이와 관련하여, 도 1 내지 도 3 및 수학식 1을 참조하여, 본 발명에서 청구하고자 하는 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네워크 시스템에 대해 설명한다. 이와 관련하여, 본 발명에서 청구하고자 하는 사항은 이하의 설명에 한정되는 것은 아니고 전술한 기술적 특징들과 결합될 수 있다.
사용자 단말(100)은 하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하도로 구성된다. 사용자 단말(100)은 복수의 서버들(100) 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하도록 구성된다. 이와 관련하여, 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관된다. 예컨대, 상기 특정 목표 성능은 100Mbps 및 100Mbps를 달성하는 데 필요한 요구 대역폭과 연관될 수 있다.
적어도 하나의 서버(1000)는 네트워크 SLO에 기반하여 상기 컨테이너의 네트워트 성능을 모니터링하도록 구성될 수 있다. 서버(1000)는 상기 모니터링된 네트워크 성능에 기반하여 상기 특정 목표 성능을 달성하도록 상기 컨테이너의 CPU 할당을 동적으로 조정할 수 있다. 한편, 사용자 단말(100)은 생성된 서버 목록에 포함된 적어도 하나의 서버 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버(1100)를 선택할 수 있다.
한편, 사용자 단말(100)은 요청한 네트워크 SLO보다 많은 양의 사용 가능한 네트워크 리소스가 있는 서버 목록을 생성할 수 있다. 또한, 사용자 단말(100)은 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스의 양을 기준으로 서버 목록의 각 서버에 가중치를 할당하여 상기 각 서버를 선택할 수 있다. 예컨대, 도 1에 도시된 바와 같이, 제1 서버(1100, S1) 및 제2 서버(1200, S2)를 선택할 수도 있다.
다른 예로, 사용자 단말(100)은 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스에 대한 정보가 없는 경우, 서버 목록의 각 서버 중 호스트 서버인 제1 서버(1100, S1)를 선택하여 컨테이너를 배치할 수도 있다.
사용자 단말(100)은 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복하지 않고, 컨테이너 배치를 위한 상기 서버 목록 내의 서버 수만큼만 탐색을 수행할 수 있다. 이에 따라, 상기 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복함에 따른 오버헤드 수준이 개선될 수 있다.
서버 목록의 각 서버 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버인 제1 서버(1100)가 선택된 경우, 제1 서버(1100)는 리소스 할당 모듈을 통해 컨테이너의 실제 네트워크 대역폭을 주기적으로 모니터링할 수 있다. 또한, 제1 서버(1100)는 실제 네트워크 대역폭을 상기 네트워크 SLO와 연관된 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 비교할 수 있다. 따라서, 제1 서버(1100)는 실제 네트워크 대역폭이 상기 요구 대역폭보다 작으면 상기 리소스 할당 모듈은 컨테이너에 대한 CPU 할당을 증가시키도록 구성될 수 있다.
제1 서버(1100)는 현재 기간에서의 CPU의 할당(CPUalloc)과 이전 기간에서의 CPU 할당(CPUprev)의 차이를 복수의 서버들로 이루어진 전체 네트워크 성능에 영향을 미치는 조정 가능한 매개 변수(k)에 비례하여 조절할 수 있다. 또한, 제1 서버(1100)는 상기 차이를 상기 이전 기간에서의 CPU 할당(CPUprev), 상기 매개 변수(k) 및 상기 요구 대역폭(Ns)과 상기 실제 네트워크 대역폭(Np)의 차이에 비례하도록 폐쇄 루프 제어를 수행할 수 있다.
일 예로, 사용 가능한 CPU 리소스가 임계 치 이상이고 상기 SLO와 연관된 처리 지연 시간이 임계 시간 이상이라고 판단되면, 제1 서버(1100)의 리소스 할당 모듈은 k 값을 증가시킬 수 있다. 따라서, CPU 리소스가 충분하고 지연 시간 (대기 시간)이 증가하여 지연 민감 트랙픽(delay-sensitive traffic)의 빠른 처리가 필요한 경우, SLO를 달성하는 데 걸리는 시간을 단축시킬 수 있다.
다른 예로, 사용 가능한 CPU 리소스가 상기 임계 치 미만이거나 상기 SLO와 연관된 처리 지연 시간이 상기 임계 시간 미만이라고 판단되면, 제1 서버(1100)의 리소스 할당 모듈은 k 값을 감소시킬 수 있다. 따라서, CPU 리소스가 충분하지 않고 지연 시간 (대기 시간)에 크지 않으면 전체 네트워크 성능에 미치는 영향을 감소시킬 수 있다. 이와 관련하여, 현재 전송해야 할 트래픽이 지연 허용 트랙픽(delay-tolerant traffic)이라고 판단되면 CPU 리소스 및 지연 시간 (대기 시간)을 고려하지 않고 k값을 감소시킬 수 있다.
이상에서는 본 발명의 일 양상에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네트워크 시스템에 대해 설명하였다. 이하에서는 본 발명의 다른 양상에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법에 대해 설명한다. 이와 관련하여, 전술한 기술적 특징, 네트워크 시스템의 구성 및 동작에 대한 모든 설명이 이하의 스케줄링 방법에 적용될 수 있다.
도 4는 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법의 흐름도이다. 도 4를 참조하면, 리소스 간 의존성 스케줄링 방법은 컨테이너 생성 요청 수신 과정(S100), 서버 목록 생성 과정(S200) 및서버 선택 과정(S300)을 포함할 수 있다. 또한, 상기 방법은 네트워크 성능 모니터링 과정(S400), 대역폭 비교 과정(S450) 및 CPU 할당 동적 조정 과정(S500)를 포함하도록 구성될 수 있다. 상기 방법은 도 1의 단말(100) 및 단말(100)과 연동하는 복수의 서버들(1000)에 의해 수행될 수 있다.
컨테이너 생성 요청 수신 과정(S100)에서, 하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신할 수 있다. 서버 목록 생성 과정(S200)에서, 상기 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성할 수 있다. 이와 관련하여, 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관될 수 있다.
서버 선택 과정(S300)에서, 상기 생성된 서버 목록에 포함된 서버들 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버를 선택할 수 있다. 네트워크 성능 모니터링 과정(S400)에서, 상기 제1 서버가 선택되면, 상기 제1 서버의 리소스 할당 모듈이 상기 네트워크 SLO에 기반하여 상기 컨테이너의 네트워트 성능을 모니터링할 수 있다.
서버 목록 생성 과정(S200)에서, 요청한 상기 네트워크 SLO보다 많은 양의 사용 가능한 네트워크 리소스가 있는 서버 목록을 단말이 생성할 수 있다. 서버 목록 생성 과정(S200)에서 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스의 양을 기준으로 상기 서버 목록의 각 서버에 가중치를 할당하여 상기 각 서버를 선택할 수 있다.
다른 예로, 서버 목록 생성 과정(S200)에서 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스에 대한 정보가 없는 경우, 서버 선택 과정에서 단말은 서버 목록의 각 서버 중 호스트 서버인 제1 서버를 선택하여 컨테이너를 배치할 수 있다.
서버 선택 과정(S300)에서, 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복하지 않고, 컨테이너 배치를 위한 상기 서버 목록 내의 서버 수만큼만 탐색을 수행할 수 있다. 이에 따라, 상기 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복함에 따른 오버헤드 수준이 개선될 수 있다.
네트워크 성능 모니터링 과정(S400)에서, 리소스 할당 모듈은 컨테이너의 실제 네트워크 대역폭을 주기적으로 모니터링할 수 있다. CPU 할당 동적 조정 과정(S500)에서 또는 그 이전에 실제 네트워크 대역폭을 상기 네트워크 SLO와 연관된 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 비교하는 대역폭 비교 과정(S450)이 수행될 수 있다.
대역폭 비교 과정(S450)에서, 상기 실제 네트워크 대역폭이 상기 요구 대역폭보다 작은 것으로 판단되면, CPU 할당 동적 조정 과정(S500)에서 리소스 할당 모듈은 컨테이너에 대한 CPU 할당을 증가시킬 수 있다. 반면에, 대역폭 비교 과정(S450)에서, 상기 실제 네트워크 대역폭이 상기 요구 대역폭 이상으로 판단되면, CPU 할당 동적 조정 과정(S500)을 수행하지 않고 네트워크 성능 모니터링 과정(S400)을 통해 네트워크 대역폭을 주기적으로 모니터링할 수 있다.
한편, CPU 할당 동적 조정 과정(S500)에서 수학식 1에 따라 폐쇄 루프 제어를 수행할 수 있다. CPU 할당 동적 조정 과정(S500)에서, 현재 기간에서의 CPU의 할당(CPUalloc)과 이전 기간에서의 CPU 할당(CPUprev)의 차이를 복수의 인자들의 곱에 비례하도록 폐쇄 루프 제어를 수행할 수 있다. 즉. CPU 할당 동적 조정 과정(S500)에서, 상기 차이가 상기 이전 기간에서의 CPU 할당(CPUprev), 상기 복수의 서버들로 이루어진 전체 네트워크 성능에 영향을 미치는 조정 가능한 매개 변수(k) 및 상기 요구 대역폭(Ns)과 상기 실제 네트워크 대역폭(Np)의 차이에 비례하도록 폐쇄 루프 제어를 수행할 수 있다.
이상에서는 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템에 대해 설명하였다. 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법의 기술적 우수성에 대해 설명하면 다음과 같다. 이와 관련하여, 도 5는 대역폭 구성과 스루풋으로 이루어진 서비스 SLO 관점에서 기존 방법 및 본 발명의 스케줄링 방법의 성능을 비교한 것이다. 도 5의 실험 결과와 관련하여, 실험 방법은 4 대의 서버에서 30개의 컨테이너를 120초 동안 실험한 것이다. 또한, 30개의 컨테이너에 네트워크 SLO를 각각 100Mbps, 300Mbps로 설정하여 실험을 진행하였으며, 본 발명은 이러한 실험 방법에 한정되는 것은 아니다. 도 5를 참조하면, 정규화된 스루풋(Normalized throughput)이 1일 때 네트워크 SLO 달성된 것을 의미한다.
실험 결과와 관련하여 도 5를 참조하면, 네트워크 SLO가 300Mbps일 때, 기존 기술에 비해 본 발명에 따를 스케줄링 방법은 약 5% 성능 향상을 보여주고, 편차를 최대 6배 개선할 수 있다. 또한, 네트워크 SLO가 300Mbps일 때, 각 컨테이너에 필요한 CPU가 더 많아지므로 본 발명에 따른 스케줄링 방법은 컨테이너의 CPU를 네트워크 SLO에 맞게 조절할 수 있다. 이에 따라, 본 발명에 따른 스케줄링 방법은 자원 간 의존성을 고려하여 네트워크 SLO 달성률을 향상시킬 수 있다.
한편, 도 6은 서버의 수에 따른 정규화된 스케줄링 시간과 관련하여, 기존 방법 및 본 발명의 스케줄링 방법의 성능을 비교한 것이다.
실험 방법과 관련하여, 각 40 CPU, 1GbE network로 구성된 서버를 100 ~ 200개까지 증가시킬 수 있다. 한편, 서버 수와 함께 기존 기술의 테넌트 수를 N/10, N/5, N 으로 늘렸을 때, 기존 기술과 본 발명의 스케줄링 오버헤드를 비교 (N은 생성된 전체 컨테이너 수)한 것이다.
실험 결과와 관련하여 도 6을 참조하면, 기존 기술은 테넌트 수가 N개인 경우 가장 높은 스케줄링 오버헤드가 발생하며, 본 발명 대비 최대 6배 높은 오버헤드가 발생된다. 본 발명의 스케줄링 오버헤드에 영향을 미치는 요소인 서버 수가 증가하더라도 테넌트 수가 서버 수보다 많은 경우 낮은 스케줄링 오버헤드를 보임을 알 수 있다.
본 발명의 스케줄링 방법의 기술 적용 형태는 다음과 같다. 클라우드 서비스의 컨테이너 오케스트레이션 플랫폼에서 네트워크 SLO의 입력만으로 목표 성능을 달성하여 클라우드 제공자의 서비스 수익의 감소를 방지할 수 있다., 또한, 중앙 컨트롤러를 사용하는 플랫폼의 스케줄링 오버헤드를 개선하여 스케줄링 완료 시간 향상을 위해 적용할 수 있다.
본 발명의 기술이 적용될 수 있는 시장은 클라우드 시스템, 다수의 사용자가 사용하는 클라우드 서비스 시장일 수 있다. 본 발명의 기술을 활용할 수 있는 기업은 Google 클라우드, 마이크로소프트 Azure, AWS등을 활용하여 클라우드 서비스를 제공하는 서비스 업체일 수 있다.
한편, 본 발명에 따른 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템의 기술적 효과는 다음과 같다. 본 발명의 효과는 네트워크 성능 측면과 오버헤드 측면, 2가지로 나눌 수 있다.
 먼저, 네트워크 성능의 이점은 테넌트로부터 네트워크 SLO만 받고 CPU와 네트워크 리소스 간의 의존성을 계산하여 필요한 CPU 리소스를 자동으로 할당함으로써 네트워크 SLO를 달성할 수 있다는 점이다. 기존의 DRF 기반 스케줄링 기법은 테넌트로부터 네트워크 SLO를 달성하기 위해 필요한 CPU 리소스를 함께 받아야 하고, 리소스 간의 의존성에 대한 이해가 없으면 CPU 리소스를 잘못 할당하여 네트워크 SLO를 달성하기 어려워진다는 문제점이 있었다. 본 발명에서는 CPU와 네트워크 리소스 간의 의존성을 고려할 수 있는 서버를 찾고 서버에서 네트워크 SLO를 달성하기 위해 필요한 CPU를 자동으로 조절하여 테넌트의 리소스 간 의존성에 대한 이해 없이도 네트워크 SLO를 달성할 수 있다.
 두 번째로 오버헤드의 이점은 컨테이너 배치와 리소스 할당을 클라우드 수준과 서버 수준으로 나누어 오버헤드를 줄이고, 컨테이너 배치에 필요한 스케줄링 시간을 서버 수준으로 낮춘다는 점이다. 기존의 DRF 기반 스케줄링 기법은 중앙 집중식 컨트롤러에서 컨테이너 배치와 리소스 할당을 수행하여 오버헤드가 높고, 컨테이너 배치시에 모든 테넌트와 리소스에 대해 탐색을 하기 때문에 스케줄링 완료 시간이 늦어진다는 문제점이 있었다. 본 발명에서는 컨테이너 배치를 중앙 집중식 스케줄러에서 수행하고 리소스 할당을 각 서버에서 수행함으로써 오버헤드를 줄이고, 컨테이너 배치 시에는 하나의 리소스에 대해서만 서버를 탐색하기 때문에 스케줄링 완료 시간을 줄일 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능뿐만 아니라 각각의 구성 요소들에 대한 설계 및 파라미터 최적화는 별도의 소프트웨어 모듈로도 구현될 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부(controller) 또는 프로세서(processor)에 의해 실행될 수 있다.

Claims (10)

  1. 컨테이너에 대한 리소스 간 의존성 스케줄링 방법에 있어서, 상기 방법은 단말 및 상기 단말과 연동하는 복수의 서버들에 의해 수행되고,
    하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하는 컨테이너 생성 요청 수신 과정 ;
    상기 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하는 서버 목록 생성 과정 - 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관됨 -;
    상기 생성된 서버 목록에 포함된 서버들 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버를 선택하는 서버 선택 과정;
    상기 제1 서버가 선택되면, 상기 제1 서버의 리소스 할당 모듈이 상기 네트워크 SLO에 기반하여 상기 컨테이너의 네트워트 성능을 모니터링하는 네트워크 성능 모니터링 과정;
    상기 모니터링된 네트워크 성능에 기반하여 상기 특정 목표 성능을 달성하도록 상기 제1 서버의 상기 리소스 할당 모듈이 상기 컨테이너의 CPU 할당을 동적으로 조정하는 CPU 할당 동적 조정 과정을 포함하고,
    상기 네트워크 성능 모니터링 과정에서, 상기 리소스 할당 모듈은 상기 컨테이너의 실제 네트워크 대역폭을 주기적으로 모니터링하고,
    상기 CPU 할당 동적 조정 과정에서, 상기 실제 네트워크 대역폭을 상기 네트워크 SLO와 연관된 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 비교하고, 상기 실제 네트워크 대역폭이 상기 요구 대역폭보다 작으면 상기 리소스 할당 모듈은 컨테이너에 대한 CPU 할당을 증가시키는,
    방법.
  2. 제1 항에 있어서,
    상기 서버 목록 생성 과정에서 상기 단말이 요청한 상기 네트워크 SLO보다 많은 양의 사용 가능한 네트워크 리소스가 있는 서버 목록을 생성하고,
    상기 서버 선택 과정에서 상기 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스의 양을 기준으로 상기 서버 목록의 각 서버에 가중치를 할당하여 상기 각 서버를 선택하는 것을 특징으로 하는, 방법.
  3. 제1 항에 있어서,
    상기 서버 목록 생성 과정에서 상기 단말이 요청한 상기 네트워크 SLO보다 많은 양의 사용 가능한 네트워크 리소스가 있는 서버 목록을 생성하고,
    상기 단말이 상기 네트워크 SLO를 달성하는 데 필요하면서 사용 가능한 CPU 리소스에 대한 정보가 없는 경우, 상기 서버 선택 과정에서 상기 서버 목록의 각 서버 중 호스트 서버인 상기 제1 서버를 선택하여 컨테이너를 배치하는, 방법.
  4. 제1 항에 있어서,
    상기 서버 선택 과정은,
    상기 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복하지 않고, 컨테이너 배치를 위한 상기 서버 목록 내의 서버 수만큼만 탐색을 수행하여, 상기 테넌트의 수 및 리소스 유형 별로 리소스 할당을 반복함에 따른 오버헤드 수준이 개선되는 것을 특징으로 하는, 방법.
  5. 삭제
  6. 제1 항에 있어서,
    상기 CPU 할당 동적 조정 과정에서,
    현재 기간에서의 CPU의 할당(CPUalloc)과 이전 기간에서의 CPU 할당(CPUprev)의 차이를 상기 이전 기간에서의 CPU 할당(CPUprev), 상기 복수의 서버들로 이루어진 전체 네트워크 성능에 영향을 미치는 조정 가능한 매개 변수(k) 및 상기 요구 대역폭(Ns)과 상기 실제 네트워크 대역폭(Np)의 차이에 비례하도록 폐쇄 루프 제어를 수행하는, 방법.
  7. 제6 항에 있어서,
    상기 CPU 할당 동적 조정 과정에서,
    사용 가능한 CPU 리소스가 임계 치 이상이고 상기 SLO와 연관된 처리 지연 시간이 임계 시간 이상이라고 판단되면, 상기 리소스 할당 모듈은 상기 k 값을 증가시켜 상기 SLO를 달성하는 데 걸리는 시간을 단축시키는, 방법.
  8. 제7 항에 있어서,
    상기 CPU 할당 동적 조정 과정에서,
    상기 사용 가능한 CPU 리소스가 상기 임계 치 미만이거나 상기 SLO와 연관된 처리 지연 시간이 상기 임계 시간 미만이라고 판단되면, 상기 리소스 할당 모듈은 상기 k 값을 감소시켜 상기 전체 네트워크 성능에 미치는 영향을 감소시키는, 방법.
  9. 컨테이너에 대한 리소스 간 의존성 스케줄링 방법을 수행하는 네트워크 시스템에 있어서, 상기 방법은 단말 및 상기 단말과 연동하는 복수의 서버들에 의해 수행되고,
    하나 이상의 테넌트로부터 특정 목표 성능을 갖는 네트워크 SLO(Service Level Object)가 있는 컨테이너를 생성하라는 요청을 수신하고, 복수의 서버들 중 가용 네트워크 대역폭이 상기 특정 목표 성능 이상을 달성할 수 있는 서버 목록을 생성하도록 구성된 사용자 단말 - 상기 특정 목표 성능은 데이터 전송 속도 및 상기 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 연관됨 - ; 및
    상기 네트워크 SLO에 기반하여 상기 컨테이너의 네트워트 성능을 모니터링하고, 상기 모니터링된 네트워크 성능에 기반하여 상기 특정 목표 성능을 달성하도록 상기 컨테이너의 CPU 할당을 동적으로 조정하도록 구성된 적어도 하나의 서버를 포함하고,
    상기 사용자 단말은, 상기 생성된 서버 목록에 포함된 적어도 하나의 서버 중 CPU 리소스가 가장 많거나 또는 호스트 서버인 제1 서버를 선택하고,
    상기 적어도 하나의 서버 중 상기 제1 서버의 리소스 할당 모듈은,
    상기 리소스 할당 모듈은 상기 컨테이너의 실제 네트워크 대역폭을 주기적으로 모니터링하고,
    상기 실제 네트워크 대역폭을 상기 네트워크 SLO와 연관된 데이터 전송 속도를 달성하는 데 필요한 요구 대역폭과 비교하고,
    상기 실제 네트워크 대역폭이 상기 요구 대역폭보다 작으면 상기 리소스 할당 모듈은 컨테이너에 대한 CPU 할당을 증가시키고,
    현재 기간에서의 CPU의 할당(CPUalloc)과 이전 기간에서의 CPU 할당(CPUprev)의 차이를 상기 이전 기간에서의 CPU 할당(CPUprev), 상기 복수의 서버들로 이루어진 전체 네트워크 성능에 영향을 미치는 조정 가능한 매개 변수(k) 및 상기 요구 대역폭(Ns)과 상기 실제 네트워크 대역폭(Np)의 차이에 비례하도록 폐쇄 루프 제어를 수행하는,
    네트워크 시스템.
  10. 삭제
KR1020210116349A 2021-09-01 2021-09-01 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템 KR102563329B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210116349A KR102563329B1 (ko) 2021-09-01 2021-09-01 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210116349A KR102563329B1 (ko) 2021-09-01 2021-09-01 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템

Publications (2)

Publication Number Publication Date
KR20230033417A KR20230033417A (ko) 2023-03-08
KR102563329B1 true KR102563329B1 (ko) 2023-08-03

Family

ID=85507935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210116349A KR102563329B1 (ko) 2021-09-01 2021-09-01 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템

Country Status (1)

Country Link
KR (1) KR102563329B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020123848A (ja) * 2019-01-30 2020-08-13 日本電信電話株式会社 ネットワーク性能保証システム及びネットワーク性能保証方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146455B2 (en) * 2019-12-20 2021-10-12 Intel Corporation End-to-end quality of service in edge computing environments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020123848A (ja) * 2019-01-30 2020-08-13 日本電信電話株式会社 ネットワーク性能保証システム及びネットワーク性能保証方法

Also Published As

Publication number Publication date
KR20230033417A (ko) 2023-03-08

Similar Documents

Publication Publication Date Title
US11275609B2 (en) Job distribution within a grid environment
US9141432B2 (en) Dynamic pending job queue length for job distribution within a grid environment
Zhang et al. Guaranteeing deadlines for inter-datacenter transfers
CN108667748B (zh) 一种控制带宽的方法、装置、设备和存储介质
Webb et al. Blender: Upgrading tenant-based data center networking
Guo et al. Falloc: Fair network bandwidth allocation in IaaS datacenters via a bargaining game approach
Mampage et al. Deadline-aware dynamic resource management in serverless computing environments
US20170093747A1 (en) System and Method for Optimizing Resource Utilization in a Clustered or Cloud Environment
Thirumalaiselvan et al. A strategic performance of virtual task scheduling in multi cloud environment
US11838389B2 (en) Service deployment method and scheduling apparatus
Pereira et al. Increasing the efficiency of fog nodes through of priority-based load balancing
Casetti et al. Arbitration among vertical services
Elsharkawey et al. Mlrts: multi-level real-time scheduling algorithm for load balancing in fog computing environment
Marcon et al. Workflow specification and scheduling with security constraints in hybrid clouds
Hamzeh et al. A new approach to calculate resource limits with fairness in kubernetes
KR102563329B1 (ko) 컨테이너에 대한 리소스 간 의존성 스케줄링 방법 및 이를 수행하는 네트워크 시스템
Kavyasri et al. Comparative study of scheduling algorithms to enhance the performance of virtual machines in cloud computing
KR20100069538A (ko) 그리드 컴퓨팅 미들웨어 시스템의 그리드 자원 관리 방법 및 장치
Patil et al. Resource allocation and scheduling in the cloud
Ghanavatinasab et al. SAF: simulated annealing fair scheduling for Hadoop Yarn clusters
Kolhar et al. Storage allocation scheme for virtual instances of cloud computing
US20220231963A1 (en) Resource management device, control circuit, storage medium, and resource management method
Vibha Utilizing Analytical Parameterization for Job Scheduling and Virtual Machine Migration in Cloud Computing
Luo et al. Optimizing Resource Management for Shared Microservices: A Scalable System Design
Xu et al. Adaptive edge service deployment in burst load scenarios using deep reinforcement learning

Legal Events

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