KR20230062566A - 엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성 - Google Patents

엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성 Download PDF

Info

Publication number
KR20230062566A
KR20230062566A KR1020237008346A KR20237008346A KR20230062566A KR 20230062566 A KR20230062566 A KR 20230062566A KR 1020237008346 A KR1020237008346 A KR 1020237008346A KR 20237008346 A KR20237008346 A KR 20237008346A KR 20230062566 A KR20230062566 A KR 20230062566A
Authority
KR
South Korea
Prior art keywords
node
pool
nodes
node pool
infrastructure
Prior art date
Application number
KR1020237008346A
Other languages
English (en)
Inventor
알퐁스 쿠리안
찬드라세카르 파수풀레티
아르판 쿠마르 아스타나
푸쉬프라즈 어그래월
후마윤 무크타르 칸
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20230062566A publication Critical patent/KR20230062566A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

클라우드 컴퓨팅 시스템은 클라우드 컴퓨팅 시스템의 엣지 존(edge zone)의 인프라 노드(infrastructure node) 및 컴퓨팅 노드의 할당을 동적으로 관리한다. 엣지 존은 제1 인프라 노드 수와 제2 컴퓨팅 노드 수로 시작한다. 엣지 존이 고객 워크로드(workload)를 실행할 때, 클라우드 컴퓨팅 시스템은 인프라 노드가 과잉 사용되거나 과소 사용되는지 여부를 판단한다. 인프라 노드가 과소 사용되는 경우, 클라우드 컴퓨팅 시스템은 인프라 노드를 컴퓨팅 노드에 재할당한다. 인프라 노드가 과잉 사용되는 경우, 클라우드 컴퓨팅 시스템은 컴퓨팅 노드를 인프라 노드에 재할당한다. 이러한 방식으로, 클라우드 컴퓨팅 시스템은 엣지 존을 지원하는 데 사용되는 리소스(인프라 노드)와 고객 워크로드를 실행하는 데 사용되는 리소스(컴퓨팅 노드) 간에 최적의 균형을 동적으로 유지한다. 즉, 클라우드 컴퓨팅 시스템은 필요한 인프라를 유지하면서 고객 워크로드를 실행하기 위한 엣지 존 리소스의 사용을 지속적으로 극대화한다.

Description

엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성
클라우드 컴퓨팅 시스템은 원격으로 액세스할 수 있는 컴퓨팅 디바이스 또는 리소스의 집합을 의미할 수 있다. 달리 말하면, 클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 서비스(예를 들어, 스토리지(storage), 데이터베이스, 네트워킹, 소프트웨어, 애플리케이션, 처리 또는 분석)를 제공하는 것으로 설명될 수 있다. 클라이언트는 클라이언트 디바이스를 통해 클라우드 컴퓨팅 시스템에 액세스할 수 있다. 클라우드 컴퓨팅 시스템은 클라이언트에 서비스를 제공하는 리소스를 포함할 수 있다. 이러한 리소스에는 프로세서, 메모리, 스토리지 및 네트워킹 하드웨어가 포함될 수 있다.
클라우드 컴퓨팅 시스템은 서로 다른 지리적 장소에 위치할 수 있는 다수의 데이터 센터를 포함할 수 있다. 각 데이터 센터에는 많은 서버가 포함될 수 있다. 서버는 물리적 컴퓨터 시스템일 수 있다. 클라우드 컴퓨팅 시스템은 서버에서 가상 머신을 실행할 수 있다. 가상 머신은, 별개의 컴퓨터 시스템을 에뮬레이트(emulate)하지만 서버에서 다른 가상 머신과 함께 실행될 수 있는 프로그램일 수 있다. 물리적 컴퓨터와 마찬가지로 가상 머신에는 운영 체제와 애플리케이션이 포함될 수 있다.
데이터 센터는 대규모 인구 밀집 지역 및 클라우드 컴퓨팅 시스템에 액세스하는 클라이언트로부터 멀리 떨어져 위치할 수 있다. 클라이언트와 데이터 센터 사이의 거리로 인해, 클라이언트가 클라우드 컴퓨팅 시스템에 액세스하거나 클라우드 컴퓨팅 시스템에서 워크로드(workload)를 실행할 때 레이턴시(latency)가 발생할 수 있다.
본 개시의 일 양태에 따르면, 클라이언트에 서비스를 제공하는 클라우드 컴퓨팅 시스템이 개시된다. 이 클라우드 컴퓨팅 시스템은 제1 노드 세트를 포함하는 데이터 센터를 포함한다. 데이터 센터는 클라이언트의 제2 지리적 위치와 다른 제1 지리적 위치를 갖는다. 이 클라우드 컴퓨팅 시스템은 또한 제2 노드 세트를 포함하는 엣지 존(edge zone)을 포함한다. 엣지 존은 제3 지리적 위치를 가진다. 제2 지리적 위치는 제1 지리적 위치보다 제3 지리적 위치에 더 가깝다. 제1 노드 세트의 수는 제2 노드 세트의 수보다 많다. 제2 노드 세트는, 클라이언트의 워크로드(workload)를 수행하기 위한 제1 노드 풀(pool) 및 클라이언트의 워크로드를 수행하는 것 이외의 서비스를 제공하기 위한 제2 노드 풀을 포함한다. 이 클라우드 컴퓨팅 시스템은 또한 제2 노드 풀에 대한 상태 정보 및 사용량 정보를 수신하는 노드 풀 관리자를 포함한다. 노드 풀 관리자는 또한, 상태 정보 및 사용량 정보에 기초하여, 제1 노드 풀과 제2 노드 풀 사이에서 노드를 재프로비저닝(re-provision)하도록 결정한다. 노드 풀 관리자는 또한 상기 결정에 기초하여, 노드가 재프로비저닝되게 한다.
제2 노드 풀은 엣지 존의 올바른 작동 또는 엣지 존에서 호스팅되는 가상 머신의 올바른 작동을 지원하는 보조 서비스를 제공할 수 있다.
상태 정보는 제2 노드 풀의 리소스의 상태를 나타낼 수 있다. 사용량 정보는 제2 노드 풀의 사용량을 나타낼 수 있다. 노드 풀 관리자는, 제2 노드 풀이 과잉 사용되거나 과소 사용되는 경우 제1 노드 풀과 제2 노드 풀 사이에서 노드를 재프로비저닝하도록 결정할 수 있다.
노드 풀 관리자는 최대 임계값을 포함할 수 있고, 노드 풀 관리자는, 제2 노드 풀이 최대값 이상으로 작동하고 있는 경우 노드를 제1 노드 풀에서 제2 노드 풀로 재프로비저닝하도록 결정할 수 있다.
노드 풀 관리자는 제2 노드 풀의 현재 작동 용량에 기초하여, 제2 노드 풀이 최대 임계값 이상으로 작동하고 있는지 여부를 판단할 수 있다.
노드 풀 관리자는 최대 임계값 및 과잉 사용 기간을 포함할 수 있다. 노드 풀 관리자는, 제2 노드 풀이 과잉 사용 기간 동안 최대 임계값 이상으로 작동한 경우 노드를 제1 노드 풀에서 제2 노드 풀로 재프로비저닝하도록 결정할 수 있다.
노드 풀 관리자는 최소 임계값을 포함할 수 있고, 노드 풀 관리자는, 제2 노드 풀이 최소 임계값 이하로 작동하고 있는 경우 노드를 제2 노드 풀에서 제1 노드 풀로 재프로비저닝하도록 결정할 수 있다.
노드 풀 관리자는 최소 임계값 및 과소 사용 기간을 포함할 수 있고, 노드 풀 관리자는, 제2 노드 풀이 과소 사용 기간 동안 최소 임계값 이하로 작동한 경우 노드를 제2 노드 풀에서 제1 노드 풀로 재프로비저닝하도록 결정할 수 있다.
노드 풀 관리자는 데이터 센터에 위치할 수 있다.
제2 노드 세트는 스토리지(storage) 서비스를 제공하기 위한 제3 노드 풀을 포함할 수 있다.
엣지 존의 클라이언트의 워크로드와 상호 작용하는 클라이언트의 레이턴시(latency)는 데이터 센터의 클라이언트의 다른 워크로드와 상호 작용하는 클라이언트의 레이턴시보다 작을 수 있다.
본 개시의 다른 양태에 따르면, 엣지 존의 제1 노드 풀과 제2 노드 풀 사이에서 노드를 재할당하기 위한 방법이 개시된다. 엣지 존은 클라우드 컴퓨팅 시스템의 일부이고, 클라우드 컴퓨팅 시스템의 데이터 센터에 의해 관리되며, 데이터 센터와 다른 지리적 위치를 가진다. 이 방법은, 제1 노드 풀 및 제2 노드 풀에 대한 상태 정보를 수신하는 단계를 포함한다. 제1 노드 풀은 클라이언트에 대한 워크로드를 실행하고, 제2 노드 풀은 클라이언트에 대한 워크로드 실행 이외의 서비스를 제공한다. 이 방법은 또한 제2 노드 풀에 대한 사용량 정보를 수신하는 단계를 포함한다. 이 방법은 또한, 상태 정보 및 사용량 정보에 기초하여, 제1 노드 풀과 제2 노드 풀 사이에서 노드들의 할당을 수정하도록 결정하는 단계를 포함한다. 제1 노드 풀과 제2 노드 풀 사이에서 노드들의 할당을 수정하는 것은 노드를 제1 노드 풀에서 제2 노드 풀로 재할당하거나 노드를 제2 노드 풀에서 제1 노드 풀로 재할당하는 것을 포함한다. 이 방법은 또한 상기 결정에 기초하여, 제1 노드 풀과 제2 노드 풀 사이에서 노드들의 할당의 수정을 야기하는 단계를 포함한다.
제1 노드 풀과 제2 노드 풀 사이에서 노드들의 할당을 수정하도록 결정하는 단계는, 제2 노드 풀이 과잉 사용되거나 과소 사용된다는 판단에 추가로 기초할 수 있다.
이 방법은, 상태 정보 및 사용량 정보에 기초하여, 선택된 노드를 제1 노드 풀에서 제2 노드 풀로 재프로비저닝하도록 결정하는 단계를 더 포함할 수 있다. 이 방법은 또한 선택된 노드를 제1 노드 풀에서 제2 노드 풀로 재프로비저닝하는 것을 야기하는 단계를 포함할 수 있다.
이 방법은, 제1 노드 풀에 대한 실행 정보를 수신하는 단계, 및 상태 정보 및 실행 정보에 기초하여, 재프로비저닝을 위해, 선택된 노드를 제1 노드 풀로부터 선택하는 단계를 더 포함할 수 있다.
선택된 노드를 제1 노드 풀로부터 선택하는 단계는, 선택된 노드가 클라이언트에 대한 워크로드 중 임의의 워크로드를 실행하고 있는지 여부를 판단하는 단계를 포함할 수 있다.
선택된 노드를 제1 노드 풀로부터 선택하는 단계는, 노드가 제1 노드 풀의 다른 노드들과 비교할 때 클라이언트에 대한 워크로드 중 가장 적은 수의 워크로드를 실행하고 있는지 여부를 판단하는 단계를 포함할 수 있다.
이 방법은, 선택된 노드에서 실행 중인 임의의 워크로드를 제1 노드 풀의 하나 이상의 다른 노드로 마이그레이션(migrate)하는 단계를 더 포함할 수 있다.
본 개시의 다른 양태에 따르면, 컴퓨팅 시스템으로 하여금 엣지 존에 포함된 인프라 노드들에 대한 상태 정보를 수신하게 하도록 하나 이상의 프로세서에 의해 실행 가능한 명령을 포함하는 컴퓨터 판독 가능 매체가 개시된다. 엣지 존은 클라우드 컴퓨팅 시스템의 일부이다. 클라우드 컴퓨팅 시스템은 엣지 존과 분리된 데이터 센터를 포함한다. 엣지 존은 데이터 센터에 비해 클라이언트에 더 가깝다. 이 명령은 또한 인프라 노드들에 대한 사용량 정보를 수신하도록 하나 이상의 프로세서에 의해 실행 가능하다. 이 명령은 또한, 상태 정보 및 사용량 정보에 기초하여, 인프라 노드들이 과잉 사용 기간 동안 최대 용량 비율을 초과하여 작동했다고 판단하도록 하나 이상의 프로세서에 의해 실행 가능하다. 이 명령은 또한, 인프라 노드들이 과잉 사용 기간 동안 최대 용량 비율을 초과하여 작동했다는 판단에 기초하여, 인프라 노드들 중 하나의 인프라 노드가 컴퓨팅 노드로서 재프로비저닝되게 하도록 하나 이상의 프로세서에 의해 실행 가능하다. 이 명령은 또한, 상태 정보 및 사용량 정보에 기초하여, 인프라 노드들이 과소 사용 기간 동안 최소 용량 비율 미만으로 작동했다고 판단하도록 하나 이상의 프로세서에 의해 실행 가능하다. 이 명령은 또한, 인프라 노드들이 과소 사용 기간 동안 최소 용량 비율 미만으로 작동했다는 판단에 기초하여, 엣지 존의 노드가 인프라 노드들에 추가되게 하도록 하나 이상의 프로세서에 의해 실행 가능하다.
이 컴퓨터 판독 가능 매체는 명령을 더 포함할 수 있고, 이 명령은, 컴퓨팅 시스템으로 하여금 상태 정보 및 사용량 정보에 기초하여, 인프라 노드가 상기 인프라 노드들 중에서 재프로비저닝을 위한 최상의 노드라고 판단하도록 하나 이상의 프로세서에 의해 실행 가능하다. 이 명령은 또한 인프라 노드에서 실행 중인 서비스를 인프라 노드들의 하나 이상의 다른 노드로 마이그레이션하도록 하나 이상의 프로세서에 의해 실행 가능할 수 있다.
[발명의 내용]은 [발명을 실시하기 위한 구체적인 내용]에서 추가로 기술되는 개념들 중 선택된 몇몇을 단순화된 형태로 소개하기 위해 제공된다. [발명의 내용]은 청구 대상의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니며 청구 대상의 범위를 결정하는 보조 수단으로서 사용되지도 않는다.
추가적인 특징 및 이점은 하기의 설명에서 기술된다. 본 개시의 특징 및 이점은 첨부된 청구범위에 명확하게 특정된 시스템 및 방법을 통해 실현되고 획득될 수 있다. 본 개시의 특징은 이하의 설명 및 첨부된 청구범위로부터 보다 명백해지거나 이하에 기재된 바와 같이 개시된 발명의 대상의 실시를 통해 알 수 있다.
본 개시의 전술한 특징 및 기타 특징을 얻을 수 있는 방식을 설명하기 위해, 보다 구체적인 설명이, 첨부된 도면에 도시된 구체적인 실시예를 참조하여 제공된다. 이해를 돕기 위해, 첨부 도면 전체에 걸쳐 동일한 구성요소는 동일한 참조부호로 표기된다. 도면은 일부 예시적인 실시예를 도시하며, 이들 실시예는 첨부된 도면을 사용하여 더욱 구체적이고 상세하게 기술 및 설명된다.
도 1은, 데이터 센터 및 엣지 존을 포함하고 클라이언트에 서비스를 제공하는 예시적인 클라우드 컴퓨팅 시스템을 도시한다.
도 2는 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀을 갖는 엣지 존을 포함하는 예시적인 클라우드 컴퓨팅 시스템을 도시한다.
도 3a 내지 3c는, 사용량 정보 및 상태 정보에 기초하여 컴퓨팅 노드 풀과 인프라 노드 풀 사이에서 노드가 동적으로 재프로비저닝되는 엣지 존을 도시한다.
도 4는 컴퓨팅 노드 풀과 인프라 노드 풀 사이에서 노드를 동적으로 재할당하기 위한 예시적인 방법을 도시한다.
도 5는 컴퓨팅 디바이스 내에 포함될 수 있는 특정 구성요소를 도시한다.
본 개시는 클라우드 컴퓨팅 시스템의 일부인 엣지 존에서 노드의 할당을 동적으로 수정하기 위한 시스템 및 방법에 관한 것이다. 노드는 인프라 노드 풀(엣지 존의 올바른 작동에 중요한 보조 서비스를 호스팅할 수 있음)과 컴퓨팅 노드 풀(클라이언트 워크로드를 실행할 수 있음) 사이에서 이동될 수 있다. 엣지 존은, 엣지 존에서 실행되는 워크로드를 갖는 클라이언트와 지리적으로 가까운 위치에 상주할 수 있다. 엣지 존에서 클라이언트 워크로드를 호스팅하는 것은, 클라우드 컴퓨팅 시스템의 데이터 센터에서 워크로드를 호스팅하는 것보다, 컴퓨팅 집약적이고 레이턴시에 민감한 워크로드에 대해 더 나은 레이턴시 프로필(profile)을 제공할 수 있다. 그러나, 엣지 존에는 데이터 센터보다 훨씬 적은 수의 노드가 포함될 수 있다. 클라이언트 워크로드를 실행하기 위한 엣지 존 노드의 사용을 극대화하기 위해, 인프라 노드가 과소하게 사용되고 있을 때, 클라우드 컴퓨팅 시스템은 인프라 노드가 컴퓨팅 노드가 되도록 동적으로 재프로비저닝할 수 있다. 마찬가지로, 엣지 존의 올바른 작동을 보장하기 위해, 인프라 노드가 과잉으로 사용되고 있을 때, 클라우드 컴퓨팅 시스템은 컴퓨팅 노드가 인프라 노드가 되도록 재프로비저닝할 수 있다. 이러한 방식으로, 클라우드 컴퓨팅 시스템은 엣지 존을 지원하는 데 사용되는 리소스와 클라이언트의 워크로드를 실행하는 데 사용되는 리소스 간에 최적의 균형을 유지할 수 있다.
클라우드 컴퓨팅 시스템은 원격으로 액세스할 수 있는 컴퓨팅 디바이스 또는 리소스의 집합을 의미할 수 있다. 클라우드 컴퓨팅 시스템은 클라이언트에 컴퓨팅 서비스를 제공할 수 있다. 예를 들어, 클라이언트는 로컬 디바이스를 사용하여 클라우드 컴퓨팅 시스템에서 호스팅되는 애플리케이션에 원격으로 액세스할 수 있다. 애플리케이션은 클라이언트의 워크로드일 수 있다. 워크로드는 실행할 개별 작업량, 실행할 수 있는 코드 모음(예를 들어, 애플리케이션), 개별 서비스(예를 들어, 웹 서버, 데이터베이스 또는 컨테이너(container)) 또는 컴퓨팅 리소스의 개별 집합일 수 있다. 고객 워크로드는 고객이 배포하거나 고객이 전송하거나 고객의 요청에 따라 실행 중인 워크로드일 수 있다.
클라우드 컴퓨팅 시스템은 서로 다른 지리적 장소에 위치한 다수의 데이터 센터를 포함할 수 있다. 각 데이터 센터에는 다수의 서버가 포함될 수 있다. 서버는 물리적 컴퓨터 시스템일 수 있다. 서버에는 (가상 머신과 같은) 다수의 가상 컨테이너가 포함될 수 있다. 각 가상 컨테이너는 클라이언트에 서비스를 제공하거나 클라이언트의 애플리케이션을 호스팅하거나 클라이언트의 워크로드를 실행할 수 있다.
데이터 센터는 대규모 인구 밀집 지역 및 클라우드 컴퓨팅 시스템에 액세스하는 클라이언트로부터 멀리 떨어져 위치할 수 있다. 데이터 센터는 운영하는 데 상당한 양의 전력이 필요한 대규모 부동산 단지일 수 있다. 인구 밀도가 낮은 지역에서는 토지가 더 많이 이용 가능하고 더 저렴할 수 있다. 마찬가지로, 인구 밀도가 낮은 지역에서는 전력이 더 저렴하고 전력에 대한 접근이 용이할 수 있다. 클라이언트와 데이터 센터 간의 거리로 인해 클라이언트가 클라우드 컴퓨팅 시스템 및 클라우드 컴퓨팅 시스템에서 호스팅되는 서비스(예를 들어, 클라이언트 워크로드)에 액세스할 때 레이턴시가 발생할 수 있다. 레이턴시는, 클라이언트가 클라우드 컴퓨팅 시스템에 정보를 제공하는 제1 시간 및 클라이언트가 클라우드 컴퓨팅 시스템으로부터 응답을 받는 제2 시간으로부터의 지연의 양일 수 있다.
레이턴시를 줄이기 위해, 클라우드 컴퓨팅 시스템은 엣지 존을 포함할 수 있다. 엣지 존은 데이터 센터보다 물리적 크기가 훨씬 작을 수 있다. 예를 들어, 엣지 존에는 1개 내지 20개의 랙(rack)이 포함될 수 있는 반면 데이터 센터에는 수천 개의 랙이 포함될 수 있다. 엣지 존은 클라우드 컴퓨팅 시스템의 일부일 수 있으며 클라우드 컴퓨팅 시스템의 보안 네트워크 및 백본(backbone)을 통해 데이터 센터에 연결될 수 있다. 그러나, 엣지 존은 클라우드 컴퓨팅 시스템의 사용자에 더 가까이 위치할 수 있다. 예를 들어, 엣지 존은 대규모 인구 밀집 지역(예를 들어, 미국 뉴욕시), 클라이언트의 위치(예를 들어, 클라이언트의 사무실 건물) 또는 클라이언트와 데이터 센터(예를 들어, 이동통신사의 데이터 센터) 사이의 중간 위치에 위치할 수 있다. 엣지 존은 엣지 존에서 실행되는 애플리케이션과 사용자 간에 안전하고 신뢰할 수 있는 고대역폭 연결을 제공할 수 있다. 엣지 존은 풀 세트(full set)의 클라우드 컴퓨팅 서비스를 제공할 수 있다. 엣지 존은 클라우드 컴퓨팅 시스템의 운영자가 소유하고 운영할 수 있다. 클라이언트는, 일반적으로 클라이언트가 클라우드 컴퓨팅 시스템에 대해 사용하는 것과 동일한 도구 세트 및 동일한 포털(portal)을 사용하여 서비스를 관리하고 이를 엣지 존에 배포할 수 있다.
엣지 존이 클라이언트의 위치에 배치될 때, 엣지 존은 컴퓨팅 및 스토리지 서비스와 같은 워크로드에 대한 저레이턴시(low-latency) 액세스를 가능하게 할 수 있다. 엣지 존을 통해, 고객은 독립 소프트웨어 공급업체(independent software vendor, ISV)의 애플리케이션 및 가상화된 네트워크 기능(virtualized network function, VNF)을 온프레미스(on-premise)의 가상 머신 및 컨테이너와 함께 클라우드 컴퓨팅 시스템에 의해 관리되는 애플리케이션으로서 배포할 수 있다. 이러한 VNF에는 모바일 패킷 코어, 라우터, 방화벽 및 SD-WAN 장비가 포함될 수 있다. 엣지 존에는 클라이언트가 클라우드 컴퓨팅 시스템 포털을 통해 VNF 및 애플리케이션의 수명 주기를 관리할 수 있는 클라우드 네이티브 오케스트레이션(cloud-native orchestration) 솔루션이 포함될 수 있다. 엣지 존은 또한 사설 모바일 네트워크(사설 LTE, 사설 5G)를 실행하고, 방화벽과 같은 보안 기능을 구현하고, 동일한 엣지 존 장비에서 소프트웨어 정의 광역 네트워크(software-defined networking in a wide-area network, SD-WAN) 장비를 사용하여 여러 지사(branch)와 클라우드 컴퓨팅 시스템에 걸쳐 클라이언트의 온프레미스 네트워크를 확장할 수 있고, 이를 클라우드 컴퓨팅 시스템을 통해 관리할 수 있다.
클라이언트는 워크로드(예를 들어, 가상 머신, 컨테이너, 애플리케이션 및 기타 클라우드 컴퓨팅 서비스)를 엣지 존에 배포하고, 데이터 센터를 거치지 않고 이러한 워크로드와 상호 작용할 수 있다(예를 들어, 이러한 워크로드에 데이터를 제공하고 해당 워크로드로부터 데이터를 수신함). 결과적으로, 엣지 존은 특정 애플리케이션의 저레이턴시 및 고처리량(high-throughput) 요구 사항을 데이터 센터보다 훨씬 더 잘 충족할 수 있다. 엣지 존에 대한 몇 가지 사용 사례 시나리오의 예에는, 로봇 공학의 실시간 명령 및 제어, 인공 지능 및 머신 러닝을 통한 실시간 분석 및 추론, 머신 비전(machine vision), 혼합 현실 및 가상 데스크톱 인프라(virtual desktop infrastructure, VDI) 시나리오를 위한 원격 렌더링, 몰입형 멀티플레이어 게임, 미디어 스트리밍 및 콘텐츠 전달, 및 감시 및 보안이 포함될 수 있다.
엣지 존은 상이한 노드 범주 또는 풀을 포함할 수 있다. 노드의 범주에는 컴퓨팅 노드(클라이언트의 워크로드가 가상화된 환경에서 실행됨), 스토리지 노드(매니지드 디스크(managed disk), 블롭(blob), 운영 체제 이미지 등이 상주함) 및 인프라 노드(엣지 존에 중요하고 엣지 존에 로컬이어야 하는 특정 보조 서비스가 실행됨)가 포함될 수 있다. 적절한 수의 인프라 노드를 보유하는 것이 엣지 존에 중요할 수 있다. 인프라 노드가 이용 불가하거나 엣지 존에서 실행되는 워크로드의 수요를 충족할 충분한 용량을 가지지 않는 경우, 엣지 존에 배포된 가상 머신은 원활하게 또는 예상대로 작동하지 못할 수 있다.
인프라 노드가 엣지 존에 중요하더라도 인프라 노드는 클라이언트의 워크로드를 실행하는 데 사용될 수 있는 노드의 수를 줄인다. 상술한 바와 같이, 엣지 존에는 제한된 수의 노드가 있다. 즉, 인프라 노드 수가 증가함에 따라 컴퓨팅 노드로서 기능하기 위해 사용될 수 있는 노드 수가 감소한다. 인프라 노드 수가 많으면 엣지 존의 컴퓨팅 밀도가 낮아진다. 클라이언트는 엣지 존이 가능한 한 높은 컴퓨팅 밀도를 갖는 것을 선호할 수 있다. 클라이언트 만족도를 향상시키기 위해, 클라우드 컴퓨팅 시스템은 최적의 인프라 노드 수를 유지하기 위해 현재 상황에 기초하여 엣지 존의 인프라 노드 수를 동적으로 조정할 수 있다. 최적의 인프라 노드 수는 엣지 존에서 실행되는 워크로드를 지원하기에 충분한 최소 인프라 노드 수일 수 있다. 인프라 노드의 상태와 인프라 노드의 사용률에 기초하여, 클라우드 컴퓨팅 시스템은 컴퓨팅 노드 풀에 노드를 가감하여 인프라 노드 수를 자동으로 증가 및 감소시킬 수 있다. 클라우드 컴퓨팅 시스템은 인프라 노드에 우선 순위를 부여하고, 사용 가능한 정상 인프라 노드의 수가 충분하도록 보장하되 가능한 경우 엣지 존의 컴퓨팅 밀도를 향상시키기 위해 인프라 노드를 컴퓨팅 노드 풀로 이동시킬 수 있다.
엣지 존은 인프라 노드 풀에 할당된 사전 정의된 노드 수로 시작할 수 있다. 나머지 노드들은 컴퓨팅 노드 풀 및 스토리지 노드 풀을 포함하는 다른 노드 풀에 할당될 수 있다. 엣지 존이 작동함에 따라, 인프라 모니터는 인프라 노드 풀의 사용률을 나타내는 다양한 원격 측정 데이터를 인프라 노드 풀로부터 수집할 수 있다. 인프라 모니터는 인프라 노드 풀의 사용량과 관련하여 머신 풀 관리자를 업데이트할 수 있다. 머신 풀 관리자는 인프라 노드 풀이 과잉으로 사용되고 있다고 판단할 수 있다(높은 수요로 인해 또는 서비스를 제공할 수 없는 인프라 노드 풀의 비정상 머신으로 인해). 예를 들어, 머신 풀 관리자는, 인프라 노드 풀의 정상 노드가 사전 결정된 임계 용량 비율을 초과하여 실행되고 있다고 판단할 수 있다. 이러한 판단을 내릴 때 머신 풀 관리자는, 인프라 노드 풀로 이동할 컴퓨팅 노드 풀의 최상의 노드를 식별하고, 노드 관리자로 하여금 최상의 노드를 인프라 노드 풀로 이동시키고 재프로비저닝하도록 요청할 수 있다. 마찬가지로, 머신 풀 관리자가 인프라 노드 풀이 과소하게 사용되는 것을 확인하면, 머신 풀 관리자는 인프라 노드 풀에서 노드를 선택하고 해당 노드를 컴퓨팅 노드 풀에 추가하여 엣지 존에서 컴퓨팅 용량을 늘릴 수 있다.
데이터 센터에서는, 인프라 노드 풀과 컴퓨팅 노드 풀 사이에서 이리저리 왔다갔다하며 노드를 동적으로 재할당하는 것이 필요하지 않을 수 있는데, 데이터 센터가 (그 크기로 인해) 컴퓨팅 노드 풀과 인프라 노드 풀에 많은 여유 노드를 포함할 수 있기 때문이다. 여유 노드는 노드가 비정상일 때 백업 용량으로 사용되거나, 추가 용량이 필요할 때 확장을 위한 추가 용량으로 사용될 수 있다. 그러나, 한정된 수의 노드를 포함할 수 있는 엣지 존에서 컴퓨팅 노드 풀과 인프라 노드 풀은 예비 노드를 포함하지 않을 수 있다. 개시된 시스템 및 방법을 적용하면 클라우드 컴퓨팅 시스템이 엣지 존의 한정된 리소스를 효율적으로 관리할 수 있다. 개시된 시스템 및 방법은, 리소스를 인프라 워크로드에 과잉 할당하지 않으면서 인프라 노드 풀에서 중요한 인프라 워크로드에 대해 적절한 수의 노드가 사용 가능하도록 보장할 수 있다. 인프라 워크로드에 필요하지 않은 노드는 고객 워크로드를 실행하는 데 사용될 수 있다. 이러한 방식으로, 클라우드 컴퓨팅 시스템은 현재 인프라 수요에 기초하여 엣지 존에서 최대 컴퓨팅 밀도를 유지할 수 있다.
인프라 노드 풀과 컴퓨팅 노드 풀 사이에서 노드 할당을 동적으로 자동으로 조정하는 것은 엣지 존의 가용 컴퓨팅 능력을 극대화하는 것 이상의 이점을 가질 수 있다. 자동 노드 대체 가능성은 엣지 존에서 하베스트(harvest) 가상 머신 기능을 인에이블(enable)할 수 있다. 하베스트 가상 머신은, 리소스 가용성에 따라 크기가 확장 및 축소되고 가용 리소스가 최소량 미만일 때 종료되는 우선 순위가 낮은 가상 머신일 수 있다. 따라서, 동적 노드 할당을 통해, 고객은 과소하게 사용되는 인프라 노드 풀에서 수집된 잉여 노드(이후 인프라 노드 풀에 다시 할당될 수 있음)를 사용하여 엣지 존에서 우선 순위가 낮은 배치(batch) 워크로드를 실행할 수 있다. 자동 노드 대체 가능성은 엣지 존의 안정성을 높일 수 있다. 인프라 노드는 엣지 존의 운영에 중요할 수 있다. 인프라 노드 풀의 노드가 비정상 상태가 되면 클라우드 컴퓨팅 시스템은 비정상 노드를 정상 노드로 교체할 수 있다. 자동 노드 대체 가능성은 또한 엣지 존의 자동 미세 조정을 허용할 수 있다. 엣지 존은 엣지 존이 실행하고 있는 워크로드 유형에 기초하여 자체적으로 미세 조정할 수 있다. 보다 컴퓨팅 집약적인 엣지 존은 최소 수의 인프라 노드를 유지할 수 있다. 대조적으로, 네트워크 I/O 집약적인 워크로드가 많은 엣지 존은 더 많은 수의 인프라 노드를 유지할 수 있다.
도 1은 예시적인 클라우드 컴퓨팅 시스템(100)을 도시한다. 클라우드 컴퓨팅 시스템(100)은 데이터 센터(102a, 102b), 엣지 존(110a, 110b) 및 클라이언트 포털(108)을 포함할 수 있다.
클라우드 컴퓨팅 시스템(100)은 원격으로 액세스할 수 있는 컴퓨팅 디바이스 또는 리소스의 집합일 수 있다. 클라우드 컴퓨팅 시스템(100)은 (인터넷과 같은) 네트워크(114)를 통해 클라이언트(116a, 116b)에 컴퓨팅 서비스를 제공할 수 있다.
데이터 센터(102a, 102b)는 많은 서버(머신 또는 노드로 지칭될 수 있음)를 포함하는 대형 부동산 단지일 수 있다. 서버는 물리적 컴퓨터 시스템일 수 있다. 서버는 (가상 머신과 같은) 다수의 가상 컨테이너를 포함할 수 있다. 다수의 가상 컨테이너는 클라이언트(116a, 116b)와 같은 클라이언트에 대한 워크로드를 실행할 수 있다. 가상 컨테이너는 또한 클라이언트(116a, 116b)의 워크로드로 간주될 수 있다. 클라이언트(116a, 116b)는 클라이언트 포털(108)을 사용하여 클라우드 컴퓨팅 시스템(100)에 액세스하고 클라우드 컴퓨팅 시스템(100)이 워크로드를 배포하도록 요청할 수 있다. 클라이언트(116a, 116b)는 클라이언트 포털(108)을 통해 워크로드를 배포하기 위한 영역을 지정할 수 있다. 클라이언트(116a, 116b)는 클라이언트 포털(108)을 통해 워크로드를 배포하기 위한 엣지 존(110a, 110b)을 지정할 수 있다.
데이터 센터(102a, 102b)에 위치한 노드는 제어 평면 노드(104a, 104b) 및 데이터 평면 노드(106a, 106b)로 분류될 수 있다. 데이터 평면 노드(106a, 106b)는 클라이언트에 대한 워크로드를 실행할 수 있다. 제어 평면 노드(104a, 104b)는 클라이언트에 대한 워크로드를 실행하지 않을 수 있지만 대신 데이터 평면 노드(106a, 106b)를 관리할 수 있다. 예를 들어, 제어 평면 노드(104a, 104b) 내의 제어 평면 노드는 배포되고 실행될 필요가 있는 워크로드의 통지를 수신할 수 있다. 제어 평면 노드는 워크로드를 실행할 특정 데이터 평면 노드를 선택할 수 있고 워크로드를 실행할 해당 특정 데이터 평면 노드 상의 특정 가상 머신을 선택할 수 있다.
데이터 센터(102a, 102b)에 위치한 모든 노드 중 데이터 평면 노드(106a, 106b)의 비율이 제어 평면 노드(104a, 104b)의 비율 보다 더 높을 수 있다. 예를 들어, 데이터 평면 노드(106a, 106b)는 데이터 센터(102a, 102b)에 위치한 모든 노드의 80% 내지 90%일 수 있다. 그럼에도 불구하고, 제어 평면 노드(104a, 104b)는 데이터 센터(102a, 102b)에 대한 큰 오버헤드(overhead) 비용일 수 있다. 예를 들어, 데이터 센터(102a)는 2,000개의 노드가 제어 평면 노드(104a)에 속할 것을 요구할 수 있다.
데이터 센터(102a)는 데이터 센터(102b)의 지리적 위치와 다른 지리적 위치를 가질 수 있다. 데이터 센터(102a, 102b)는 넓은 면적의 토지와 많은 양의 전력을 필요로 할 수 있기 때문에, 데이터 센터(102a, 102b)는 대규모 인구 밀집 지역 및 클라우드 컴퓨팅 시스템(100)에 액세스하는 클라이언트(116a, 116b)로부터 멀리 떨어져 위치할 수 있다. 그 결과, 클라이언트(116a, 116b)는 클라우드 컴퓨팅 시스템(100) 및 데이터 센터(102a, 102b)에 위치한 노드에서 호스팅되는 서비스 및 애플리케이션에 액세스할 때 레이턴시를 경험할 수 있다. 예를 들어, 데이터 센터(102a)가 클라이언트(116a)로부터 멀리 떨어져 있다고 가정한다. 클라이언트(116a)가 클라우드 컴퓨팅 시스템(100)으로 하여금 애플리케이션을 데이터 센터(102a)에 배포하게 한다고 가정한다. 이 후, 클라이언트(116a)가 애플리케이션에 처리를 위한 데이터를 전송한다고 가정한다. 애플리케이션은 데이터에 대한 계산을 수행하고 계산 결과를 다시 클라이언트(116a)로 전송할 수 있다. 클라이언트(116a)와 데이터 센터(102a) 사이의 거리가 멀기 때문에 데이터가 데이터 센터(102a)로 이동하는 데 오랜 시간이 걸릴 수 있고, 결과가 클라이언트(116a)로 이동하는 데 오랜 시간이 걸릴 수 있다. 이 시간은 최소 100ms일 수 있다.
그러나, 클라이언트(116a, 116b)는, 클라우드 컴퓨팅 시스템(100)이 저레이턴시로 서비스를 제공할 것을 요구할 수 있다. 즉, 클라이언트(116a, 116b)는, 데이터 센터(102a, 102b)가 클라이언트(116a, 116b)로부터 멀리 위치할 때 가능한 응답 시간보다 클라우드 컴퓨팅 시스템(100)으로부터 더 빠른 응답 시간을 요구하는 로컬 워크로드를 가질 수 있다. 클라이언트(116a, 116b)는, 클라이언트(116a, 116b)와 데이터 센터(102a, 102b) 사이의 물리적 거리가 허용할 수 있는 것보다 더 빠르게 데이터 센터(102a, 102b)와 데이터를 송수신할 필요가 있을 수 있다.
클라이언트(116a, 116b)가 저레이턴시 계산 및 액세스를 요구하는 워크로드에 대해 클라우드 컴퓨팅 시스템(100)을 사용하도록 허용하기 위해, 클라우드 컴퓨팅 시스템(100)은 엣지 존(110a, 110b)을 포함할 수 있다. 엣지 존(110a, 110b)은 데이터 센터(102a, 102b)와 다른 물리적 위치에 있을 수 있다. 특히, 엣지 존(110a, 110b)은 데이터 센터(102a, 102b)에 비해 클라이언트(116a, 116b)에 훨씬 더 가깝게 위치할 수 있다. 예를 들어, 데이터 센터(102b)가 미국 웨스트 버지니아주에 위치하고, 클라이언트(116b)가 미국 뉴욕주 뉴욕시에 위치한 사무실 공간을 가진 컨설팅 회사라고 가정한다. 클라이언트(116b)가 클라우드 컴퓨팅 시스템(100)에서 호스팅되는 실시간 분석 및 추론 서비스 또는 애플리케이션에 액세스해야 한다고 가정한다. 이 경우, 엣지 존(110b)은 클라이언트(116b)의 사무실 공간 내에 위치할 수 있다. 그 결과, 클라이언트(116b)는, 클라이언트(116b)가 데이터 센터(102b)에서 호스팅되는 애플리케이션에 워크로드를 배포할 수 있는 것보다 훨씬 더 낮은 레이턴시로 엣지 존(110b)에서 호스팅되는 애플리케이션에 워크로드를 배포할 수 있다(그리고 애플리케이션으로부터 통신을 수신할 수 있음).
엣지 존(110a, 110b)은 데이터 평면 노드(112a, 112b)를 포함할 수 있다. 엣지 존(110a, 110b)은 데이터 평면 노드(112a, 112b)를 사용하여 애플리케이션을 호스팅하고 클라이언트(116a, 116b)의 워크로드를 실행할 수 있다. 엣지 존(110a, 110b)에서 호스팅되는 애플리케이션 및 워크로드는 데이터 센터(102a, 102b)에서 호스팅되는 애플리케이션보다 클라이언트(116a, 116a)에 훨씬 더 가까울 수 있기 때문에, 클라이언트(116a, 116b)는, 데이터 센터(102a, 102b)에서 호스팅되는 애플리케이션에 대해 가능한 것보다 훨씬 더 낮은 레이턴시로, 엣지 존(110a, 110b)에서 호스팅되는 애플리케이션 및 워크로드로에 액세스하고 이들로부터 정보를 수신할 수 있다. 엣지 존(110a, 110b)은 데이터 센터(102a, 102b)보다 훨씬 더 적은 수의 데이터 평면 노드를 포함할 수 있다. 예를 들어, 엣지 존(110a, 110b)은 각각 1개 내지 20개의 랙을 포함할 수 있는 반면 데이터 센터(102a, 102b)는 각각 수천 개의 랙을 포함할 수 있다.
데이터 센터(102a, 102b)와 달리, 엣지 존(110a, 110b)은 제어 평면 노드를 포함하지 않을 수 있다. 대신에, 데이터 센터(102a, 102b)에 위치한 제어 평면 노드(104a, 104b)는 엣지 존(110a, 110b)에 위치한 데이터 평면 노드(112a, 112b)를 관리할 수 있다. 제어 평면 노드(104a, 104b)는 보안 채널을 통해 엣지 존(110a, 110b)의 데이터 평면 노드(112a, 112b)에 연결될 수 있다. 이러한 방식으로, 클라이언트(116a, 116b)는 데이터 평면 노드(112a, 112b)를 관리하거나 데이터 평면 노드(112a, 112b)를 관리하는 노드에 대해 물리적 공간 및 전력을 제공할 필요 없이 저레이턴시 계산을 수신할 수 있다.
엣지 존(110a, 110b)에 제어 평면 노드를 배치하는 대신 제어 평면 노드(104a, 104b)를 사용하여 엣지 존(110a, 110b)에 위치한 데이터 평면 노드(112a, 112b)를 관리하면 클라이언트(116a, 116b)가 엣지 존(110a, 110b)을 보다 효율적으로 사용할 수 있다. 클라이언트(116a, 116b)가 현장에서 엣지 존(110a, 110b)을 가질 수 있고 엣지 존(110a, 110b)의 냉각 및 전원 공급을 담당할 수 있으므로, 클라이언트(116a, 116b)는 엣지 존(110a, 110b)에서, 클라이언트(116a, 116b)의 워크로드를 실행하는 가능한 한 많은 노드를 원할 수 있다. 데이터 평면 노드(112a, 112b)의 관리를 제어 평면 노드(104a, 104b)에 아웃소싱함으로써 클라이언트(116a, 116b)는 제어 평면 노드를 저장, 전력 공급 또는 냉각할 필요 없이 저레이턴시 계산을 얻을 수 있다.
엣지 존(110a, 110b)이 제어 평면 노드를 포함하지 않을 수 있지만, 엣지 존(110a, 110b)은 데이터 평면 노드(112a, 112b)의 일부 노드가 클라이언트 워크로드 실행 이외의 기능을 수행할 것을 요구할 수 있다. 이러한 기능에는 클라이언트 워크로드 실행을 지원하는 서비스를 제공하는 것과 클라이언트 워크로드를 실행하는 가상 머신 및 애플리케이션을 호스팅하는 것이 포함될 수 있다. 예를 들어, 데이터 평면 노드(112a, 112b)는 3개의 상이한 범주의 노드를 포함할 수 있다. 먼저, 데이터 평면 노드(112a, 112b)는 애플리케이션을 호스팅하고 클라이언트(116a, 116b)의 워크로드를 실행하기 위한 컴퓨팅 노드를 포함할 수 있다. 두 번째로, 데이터 평면 노드(112a, 112b)는 엣지 존(110a, 110b)에 중요한 보조 서비스를 제공하기 위한 인프라 노드를 포함할 수 있다. 제어 평면 노드와 달리 인프라 노드는 엣지 존(110a, 110b)에 로컬일 필요가 있을 수 있다. 세 번째로, 데이터 평면 노드(112a, 112b)는 클라이언트(116a, 116b)의 데이터를 저장하기 위한 스토리지 노드를 포함할 수 있다. 스토리지 노드는 데이터 저장 및 데이터 입력 및 출력을 위해 설계 및 최적화될 수 있기 때문에 컴퓨팅 노드 및 인프라 노드와 다른 하드웨어 구성을 가질 수 있다. 그러나, 컴퓨팅 노드와 인프라 노드는 유사한 하드웨어 구성을 가질 수 있다.
엣지 존(110a, 110b)은 한정된 수의 노드를 포함할 수 있고 클라이언트(116a, 116b)는 워크로드 실행 전용 노드의 비중이 가능한 한 높을 것을 원할 수 있기 때문에, 클라우드 컴퓨팅 시스템(100)은 인프라 노드로 프로비저닝되는 데이터 평면 노드(112a, 112b)의 수를 최적화하고자 할 수 있다. 클라우드 컴퓨팅 시스템(100)은 초기에 사전 정의된 수의 데이터 평면 노드(112a, 112b)를 인프라 노드로 지정할 수 있다. 엣지 존(110a, 110b)이 작동을 시작한 후, 클라우드 컴퓨팅 시스템(100)은 인프라 노드의 사용량 및 상태를 추적하기 위해 원격 측정 데이터를 수집할 수 있다.
클라우드 컴퓨팅 시스템(100)은 원격 측정 데이터에 기초하여 인프라 노드가 과잉으로 사용됨을 감지할 수 있다(이는 인프라 노드가 사전 결정된 임계 용량 비율을 초과하여 작동하고 있음을 의미할 수 있음). 높은 수요 또는 필요한 작업을 수행할 수 없는 비정상 머신으로 인해 인프라 노드가 과잉으로 사용될 수 있다. 인프라 노드가 과잉으로 사용되는 경우, 클라우드 컴퓨팅 시스템(100)은 인프라 노드로 재프로비저닝될 수 있는 컴퓨팅 노드를 식별하고 이 컴퓨팅 노드를 인프라 노드로 재할당할 수 있다.
클라우드 컴퓨팅 시스템(100)은 원격 측정 데이터에 기초하여 인프라 노드가 과소하게 사용됨을 감지할 수 있다(인프라 노드가 사전 결정된 임계 용량 비율 미만으로 작동하고 있는 경우 발생할 수 있음). 인프라 노드가 과소하게 사용될 때, 클라우드 컴퓨팅 시스템(100)은 컴퓨팅 노드로 재프로비저닝될 수 있는 인프라 노드를 식별하고 이 인프라 노드가 컴퓨팅 노드가 되도록 재할당할 수 있다.
인프라 노드를 지속적으로 모니터링하고 현재 상황에 기초하여 인프라 노드와 컴퓨팅 노드 사이에서 노드를 동적으로 재할당함으로써, 클라우드 컴퓨팅 시스템(100)은 지속적으로 엣지 존(110a, 110b)으로 하여금 클라이언트 워크로드의 실행을 위해 최대 데이터 평면 노드(112a, 112b) 수를 사용하게 할 수 있다.
도 2는 클라우드 컴퓨팅 시스템(200)의 일 예이다. 클라우드 컴퓨팅 시스템(200)은 데이터 센터(202) 및 엣지 존(210)을 포함할 수 있다. 데이터 센터(202)는 엣지 존(210)으로부터 먼 거리에 위치할 수 있다. 데이터 센터(202)는 엣지 존(210)보다 훨씬 더 많은 양의 컴퓨팅 리소스를 가질 수 있다. 도 2에 도시된 클라우드 컴퓨팅 시스템(200)은 단일 데이터 센터 및 단일 엣지 존만을 보여주지만, 클라우드 컴퓨팅 시스템(200)은 다수의 데이터 센터 및 다수의 엣지 존을 포함할 수 있다.
엣지 존(210)은 노드를 포함할 수 있다. 노드는 적어도 3개의 노드 풀, 즉 컴퓨팅 노드 풀(228), 인프라 노드 풀(230) 및 스토리지 노드 풀(232) 사이에 분산될 수 있다. 컴퓨팅 노드 풀(228)은 클라이언트 워크로드를 실행하는 하나 이상의 노드를 포함할 수 있다. 컴퓨팅 노드 풀(228)은 가상화된 환경에서 워크로드를 실행할 수 있다. 인프라 노드 풀(230)은, 엣지 존(210)을 지원하고 엣지 존(210)에 로컬이어야 하는 보조 서비스를 제공하는 하나 이상의 노드를 포함할 수 있다. 스토리지 노드 풀(232)은 매니지드 디스크(managed disk), 블롭(blob) 및 운영 체제 이미지를 포함하는 하나 이상의 노드를 포함할 수 있다. 엣지 존(210)의 각 노드는 임의의 특정 시점에서 하나의 노드 풀에만 속할 수 있다. 엣지 존(210)의 각 노드는 자신이 속한 노드 풀이 담당하는 서비스만을 수행하도록 제한될 수 있다. 예를 들어, 컴퓨팅 노드 풀(228)에 할당된 노드는 인프라 노드 풀(230)이 담당하는 서비스를 제공하도록 할당되지 않을 수 있다.
데이터 센터(202)는 제어 평면(204)을 포함할 수 있다. 제어 평면(204)은 하나 이상의 노드를 포함할 수 있다. 도 2에는 도시되지 않았지만, 데이터 센터(202)는 데이터 평면 노드를 포함하는 데이터 평면을 포함할 수 있다. 제어 평면(204)은 클라우드 컴퓨팅 시스템(200)을 제어할 수 있다. 제어 평면(204)은 엣지 존(210)에 위치한 노드를 포함하는 데이터 평면 노드를 관리할 수 있다. 제어 평면(204)은 할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226)를 포함할 수 있다. 도 2에서는 할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226)가 데이터 센터(202) 내에 위치하는 것으로 도시되지만, 다른 설계에서는 할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226) 중 하나 이상이 엣지 존(210)에 위치할 수 있다. 할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226) 각각과 관련하여 설명된 기능은, 다른 설계에서 할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226) 중 임의의 것에 의해 수행될 수 있다.
할당 관리자(218)는 컴퓨팅 노드 풀(228)의 모든 노드에 대한 가시성을 가질 수 있다. 할당 관리자(218)는 워크로드가 실행되어야 하는 컴퓨팅 노드 풀(228)(또는 스토리지 노드 풀(232))의 노드를 결정할 수 있다. 할당 관리자(218)는 워크로드를 할당하기 위한 하나 이상의 모델을 사용할 수 있다. 하나 이상의 모델은 효율성, 조각 모음 및 최소 재할당을 보장할 수 있다. 할당 관리자(218)는 워크로드가 실행되어야 하는 위치에 관해 머신 풀 관리자(220)에 알릴 수 있다. 워크로드(예를 들어, 가상 머신 또는 애플리케이션)가 컴퓨팅 노드 풀(228)에 배포되면 클라이언트는 할당 관리자(218)를 거치지 않고 워크로드와 상호 작용할 수 있다. 예를 들어, 클라이언트는 데이터를 할당 관리자(218) 또는 데이터 센터(202)로 전송하지 않고 처리를 위한 데이터를 워크로드에 보낼 수 있다. 이러한 방식으로, 엣지 존(210)은 클라이언트의 워크로드 및 클라우드 컴퓨팅 서비스에 대한 저레이턴시 액세스를 허용할 수 있다.
머신 풀 관리자(220)(노드 풀 관리자로 지칭될 수 있음)는 컴퓨팅 노드 풀(228), 인프라 노드 풀(230) 및 스토리지 노드 풀(232)의 노드를 포함하는 엣지 존(210)의 노드를 관리할 수 있다. 머신 풀 관리자(220)는 엣지 존(210)의 노드에 대한 완전한 가시성 및 완전한 제어를 가질 수 있다. 머신 풀 관리자(220)는 노드 풀 간에 노드를 이동시킬 수 있다(예를 들어, 인프라 노드 풀(230)에서 컴퓨팅 노드 풀(228)로). 대안적으로, 머신 풀 관리자(220)는 노드 관리자(226)로 하여금 노드 풀 간에 노드를 이동시키도록 할 수 있다. 노드 풀 간에 노드를 이동시키는 것은 노드의 물리적 위치를 이동시키는 것을 수반하지 않을 수 있다. 대신 노드 이동에는 하나의 풀에서 노드를 제거하고 이 노드를 다른 풀에 할당하는 것이 포함될 수 있다. 따라서, 제1 노드 풀에서 제2 노드 풀로 노드를 이동시키는 것은 소프트웨어를 통해 달성될 수 있다. 머신 풀 관리자(220)는 특정 풀의 노드 할당을 조정하지 않도록 설계될 수 있다. 예를 들어, 머신 풀 관리자(220)는 스토리지 노드 풀(232)의 노드 할당을 조정하지 않도록 설계될 수 있다. 이는 스토리지 노드 풀의 노드가 컴퓨팅 노드 풀(228) 및 인프라 노드 풀(230)의 노드와 다른 하드웨어 구성을 갖기 때문일 수 있다.
할당 관리자(218) 또는 머신 풀 관리자(220)는 하나의 노드 풀에서 다른 노드 풀로 노드를 이동시킬지 여부를 결정할 수 있다. 할당 관리자(218) 또는 머신 풀 관리자(220)는 하나의 노드 풀에서 다른 노드 풀로 노드를 이동시킬지 여부를 결정하는 데 있어 하나 이상의 규칙을 적용할 수 있다. 할당 관리자(218) 또는 머신 풀 관리자(220)는, 노드 풀 간에 노드를 이동시킬지 여부를 결정하는 데 사용하기 위한 데이터를 예컨대 노드 모니터(224), 인프라 모니터(222), 머신 풀 관리자(220) 및 할당 관리자(218)로부터 수신할 수 있다. 할당 관리자(218) 또는 머신 풀 관리자(220)는 하나의 노드 풀에서 다른 노드 풀로 이동시킬 노드 풀의 노드를 결정할 수 있다. 할당 관리자(218) 또는 머신 풀 관리자(220)는 이동시킬 노드를 결정하는 데 있어 하나 이상의 규칙을 적용할 수 있다. 할당 관리자(218) 또는 머신 풀 관리자(220)는 이동시킬 노드를 결정할 때 노드 모니터(224), 인프라 모니터(222) 및 할당 관리자(218)로부터 수신된 데이터를 사용할 수 있다.
인프라 모니터(222)는 인프라 노드 풀(230)의 노드의 사용량을 추적할 수 있다. 인프라 모니터(222)는 인프라 노드 풀(230)의 모든 노드로부터 CPU 활성 시간 및 네트워크 I/O와 같은 원격 측정 데이터를 수집하고 인프라 노드 풀(230)의 노드의 사용량을 판단할 수 있다. 인프라 모니터(222)는 인프라 노드 풀(230)의 용량이 얼마나 사용되고 있는지 판단할 수 있다. 인프라 모니터(222)는 인프라 노드 풀(230)의 사용량을 머신 풀 관리자(220)에 보고할 수 있다. 인프라 모니터(222)에 의해 수집된 데이터는 엣지 존(210)의 노드가 하나의 노드 풀에서 다른 노드 풀로 이동되어야 하는지 여부를 결정하는 데 사용될 수 있다.
노드 모니터(224)는 엣지 존(210)의 각 노드의 상태를 추적할 수 있다. 노드 모니터(224)는 엣지 존(210)의 노드로부터 펄스(pulse) 포인트를 수집할 수 있다. 노드 모니터(224)는 엣지 존(210)의 노드의 리소스의 상태에 대한 정보를 수집할 수 있다. 노드 모니터(224)는, CPU가 어떻게 실행되고 있는지, 디스크가 제대로 작동하고 있는지 여부, 네트워크 I/O가 어떻게 작동하고 있는지, 디스크 I/O가 어떻게 작동하고 있는지에 관한 정보를 수집할 수 있다. 노드 모니터(224)는 노드 상태를 머신 풀 관리자(220)에 보고할 수 있다. 노드 모니터(224)에 의해 수집된 데이터는 엣지 존(210)의 노드가 하나의 노드 풀에서 다른 노드 풀로 이동되어야 하는지 여부를 결정하는 데 사용될 수 있다.
노드 관리자(226)는 노드의 수명 주기를 관리할 수 있다. 노드 관리자(226)는 노드를 프로비저닝하고, 노드에 ID를 할당하고(노드를 특정 노드 풀에 할당하는 것을 포함할 수 있음) 올바른 바이너리(binary) 및 데이터를 롤 아웃(roll out)할 수 있다. 노드 관리자(226)는 머신 풀 관리자(220)로부터 엣지 존(210)에서의 노드 관리에 관한 명령을 수신할 수 있다.
할당 관리자(218), 머신 풀 관리자(220), 인프라 모니터(222), 노드 모니터(224) 및 노드 관리자(226)는 컴퓨팅 노드 풀(228)과 인프라 노드 풀(230) 사이에서 노드를 동적으로 재할당하기 위해 함께 작동할 수 있다. 할당 관리자(218)는 초기에 엣지 존(210)의 제1 사전 정의된 수의 노드(또는 제1 사전 정의된 노드 비율)를 컴퓨팅 노드 풀(228)에 할당하고, 엣지 존(210)의 제2 사전 정의된 수의 노드(또는 제2 사전 정의된 노드 비율)를 인프라 노드 풀(230)로 할당할 수 있다. 엣지 존(210)이 워크로드를 실행할 때, 인프라 모니터(222)는 인프라 노드 풀(230)로부터 사용량 정보(다양한 원격 측정 데이터를 포함할 수 있음)를 수신할 수 있다. 유사하게, 노드 모니터(224)는 컴퓨팅 노드 풀(228) 및 인프라 노드 풀(230)로부터, 컴퓨팅 노드 풀(228) 및 인프라 노드 풀(230)의 노드의 상태에 관한 상태 정보를 수신할 수 있다. 인프라 모니터(222)는 인프라 노드 풀(230)의 사용량에 관한 사용량 정보 또는 업데이트를 머신 풀 관리자(220)에 제공할 수 있다. 노드 모니터(224)는 엣지 존(210)의 노드의 상태에 관한 상태 정보 또는 업데이트를 머신 풀 관리자(220)에 제공할 수 있다.
머신 풀 관리자(220)는 인프라 모니터(222) 및 노드 모니터(224)로부터 수신된 정보(예를 들어, 사용량 정보 및 상태 정보)를 분석하여 인프라 노드 풀(230)이 과잉으로 사용되는지 여부를 판단할 수 있다. 인프라 노드 풀(230)이 (높은 수요 또는 인프라 노드 풀(230)의 비정상 노드로 인해) 사전 결정된 임계 사용량을 초과하여 작동하고 있는 경우, 머신 풀 관리자(220)는 인프라 노드 풀(230)이 과잉으로 사용된다고 판단할 수 있다. 대안적으로, 인프라 노드 풀(230)이 사전 결정된 기간 동안 사전 결정된 임계 사용량을 초과하여 작동한 경우, 머신 풀 관리자(220)는 인프라 노드 풀(230)이 과잉으로 사용된다고 판단할 수 있다. 인프라 노드 풀(230)이 과잉으로 사용된다고 머신 풀 관리자(220)가 판단하면, 머신 풀 관리자(220)는 컴퓨팅 노드 풀(228)에서 인프라 노드 풀(230)로 마이그레이션할 최상의 노드를 식별할 수 있다. 최상의 노드는, 컴퓨팅 노드 풀(228)에서 충분히 정상인 노드 중에서 가장 적은 양의 워크로드를 실행하고 있는 노드일 수 있다. 대안으로, 최상의 노드는 임의의 정상 노드일 수 있다. 머신 풀 관리자(220)는 최상의 노드를 인프라 노드 풀(230)로 이동 및 재프로비저닝하도록 노드 관리자(226)에 지시할 수 있다. 최상의 노드를 재프로비저닝하는 것의 일부로서, 머신 풀 관리자(220)는 최상의 노드에서 실행되고 있는 모든 워크로드를 컴퓨팅 노드 풀(228)의 하나 이상의 다른 노드로 이동시킬 수 있다.
최상의 노드 선택에 관한 예로서, 노드가 컴퓨팅 노드 풀(228)에서 인프라 노드 풀(230)로 이동될 필요가 있다고 머신 풀 관리자(220)가 판단한다고 가정한다. 컴퓨팅 노드 풀(228)의 2개 이상의 노드가 인프라 노드 풀(230)로 이동할 후보라고 가정한다. 이 2개 이상의 노드는 충분히 정상이기 때문에 후보일 수 있다. 머신 풀 관리자(220)는 노드에서 실행 중인 고객 워크로드가 없는 노드를 재프로비저닝하는 것을 선호할 수 있다. 모든 노드가 실행 중인 고객 워크로드를 갖는 경우, 머신 풀 관리자(220)는 노드에서 실행 중인 고객 워크로드의 수 또는 크기가 가장 작은 노드를 선호할 수 있다. 머신 풀 관리자(220)가 이러한 선호를 가지는 이유는, 컴퓨팅 노드 풀(228)의 노드가 인프라 노드 풀(230)로 재프로비저닝될 때 해당 노드에서 실행 중인 모든 고객 워크로드가 컴퓨팅 노드 풀(228)의 하나 이상의 다른 노드로 마이그레이션되어야 할 수 있기 때문일 수 있다. 워크로드를 마이그레이션하는 것은 데이터 센터(202)의 제어 평면(204)과의 통신을 요구할 수 있다. 제어 평면(204)은 가상 머신을 해당 노드에서 하나 이상의 다른 노드로 이동시킬 수 있다. 그런 다음, 제어 평면(204)은 인프라 노드 풀(230)에 해당 노드의 제어를 제공할 수 있다.
머신 풀 관리자(220)는 인프라 모니터(222) 및 노드 모니터(224)로부터 수신된 정보(예를 들어, 사용량 정보 및 상태 정보)를 분석하여 인프라 노드 풀(230)이 과소하게 사용되는지 여부를 판단할 수 있다. 인프라 노드 풀(230)이 사전 결정된 임계 사용량 미만으로 작동하고 있는 경우, 머신 풀 관리자(220)는 인프라 노드 풀(230)이 과소하게 사용되는 것으로 판단할 수 있다. 대안적으로, 인프라 노드 풀(230)이 사전 결정된 기간 동안 사전 결정된 임계 사용량 미만으로 작동한 경우, 머신 풀 관리자(220)는 인프라 노드 풀(230)이 과소하게 사용된다고 판단할 수 있다. 머신 풀 관리자(220)가 인프라 노드 풀(230)이 과소하게 사용된다고 판단하면, 머신 풀 관리자(220)는 인프라 노드 풀(230)에서 컴퓨팅 노드 풀(228)로 마이그레이션할 최상의 노드를 식별할 수 있다. 최상의 노드는, 가장 적은 양의 서비스를 호스팅하고 있는 노드일 수 있다. 머신 풀 관리자(220)는 최상의 노드를 컴퓨팅 노드 풀(228)로 이동 및 재프로비저닝하도록 노드 관리자(226)에 지시할 수 있다. 최상의 노드를 재프로비저닝하는 것의 일부로서, 머신 풀 관리자(220)는 최상의 노드에서 실행되고 있는 모든 서비스를 인프라 노드 풀(230)의 하나 이상의 다른 노드로 이동시킬 수 있다.
도 3a 내지 도 3c는 예시적인 엣지 존(310)을 도시한다. 엣지 존(310)은 클라우드 컴퓨팅 시스템에 속할 수 있다. 클라우드 컴퓨팅 시스템은 할당 관리자, 머신 풀 관리자, 인프라 모니터, 노드 모니터 및 노드 관리자를 포함할 수 있다. 엣지 존(310)은 랙(334a), 랙(334b) 및 랙(334c)을 포함할 수 있다. 랙(334a)은 노드(336a)(노드(336a-1), 노드(336a-2), 노드(336a-3), 노드(336a-4), 노드(336a-5), 노드(336a-6), 노드(336a-7), 노드(336a-8), 노드(336a-9) 및 노드(336a-10)를 포함할 수 있음)를 포함할 수 있다. 랙(334b)은 노드(336b)(노드(336b-1), 노드(336b-2), 노드(336b-3), 노드(336b-4), 노드(336b-5), 노드(336b-6), 노드(336b-7), 노드(336b-8), 노드(336b-9) 및 노드(336b-10)를 포함할 수 있음)를 포함할 수 있다. 랙(334c)은 노드(336c)(노드(336c-1), 노드(336c-2), 노드(336c-3), 노드(336c-4), 노드(336c-5), 노드(336c-6), 노드(336c-7), 노드(336c-8), 노드(336c-9) 및 노드(336c-10)를 포함할 수 있음)를 포함할 수 있다. 엣지 존(310)은 3개의 랙을 포함하지만, 다른 엣지 존 설계는 더 적거나 더 많은 랙을 포함할 수 있다. 엣지 존(310)은 데이터 센터보다 적은 수의 랙을 포함할 수 있다.
각각의 노드(336)는 노드 풀에 할당될 수 있다. 노드 풀에는 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀이 포함될 수 있다. 도 3a 내지 도 3c에서, 컴퓨팅 노드 풀에 포함된 노드는 검정색일 수 있고, 인프라 노드 풀에 포함된 노드는 흰색일 수 있고, 스토리지 노드 풀에 포함된 노드는 사선을 가질 수 있다. 각 노드 풀은, 노드 풀에 할당될 수 있는 정의된 의무, 태스크 또는 서비스 세트를 가질 수 있다. 노드 풀의 정의된 의무, 태스크 또는 서비스 세트에 포함되지 않은 의무, 태스크 또는 서비스를 해당 노드 풀에 할당할 수 없을 수 있다. 각 노드 풀의 정의된 의무, 태스크 또는 서비스 세트 간에 중복이 있을 수 있다. 대안적으로, 각 노드 풀의 정의된 의무, 태스크 또는 서비스 세트 간에 중복이 없을 수 있다. 컴퓨팅 노드 풀에는 고객 워크로드를 호스팅하는 것 및 고객 워크로드를 실행하는 것을 포함하는 제1 정의된 의무 세트가 있을 수 있다. 제1 정의된 의무 세트는, 엣지 존(310)의 작동 또는 엣지 존(310)에서 호스팅되는 가상 머신의 올바른 작동을 지원하는 보조 서비스를 제공하는 것을 포함하지 않을 수 있다. 인프라 노드 풀은, 엣지 존(310)의 작동 및 엣지 존(310)에서 호스팅되는 가상 머신의 올바른 작동을 지원하는 보조 서비스를 제공하는 것을 포함하는 제2 정의된 의무 세트를 가질 수 있다. 제2 정의된 의무 세트에는 고객 워크로드를 호스팅하는 것 또는 고객 워크로드를 실행하는 것이 포함되지 않을 수 있다. 도 3a 내지 도 3c는 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀 사이에 할당된 노드(336)를 도시하지만, 다른 설계는 다른 유형, 범위 및 개수의 노드 풀을 가질 수 있다.
도 3a는 시간 t0에서의 엣지 존(310)을 도시할 수 있다. 시간 t0은 엣지 존(310)의 수명 주기 중 임의의 시점일 수 있다. 예를 들어, 시간 t0은 엣지 존(310)의 초기 구성에 있을 수 있다. 대안적으로, 시간 t0은 엣지 존(310)의 초기 구성 이후의 일정 기간일 수 있다.
시간 t0에서, 노드(336)는 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀 간의 제1 할당을 가질 수 있다. 시간 t0에서, 컴퓨팅 노드 풀은 노드(336a-1), 노드(336a-2), 노드(336a-3), 노드(336a-5), 노드(336a-6), 노드(336a-7), 노드(336a-8), 노드(336b-2), 노드(336b-3), 노드(336b-5), 노드(336b-6), 노드(336b-7), 노드(336b-8), 노드(336b-9) 및 노드(336b-10)를 포함할 수 있다. 시간 t0에서, 인프라 노드 풀은 노드(336a-4), 노드(336a-9), 노드(336a-10), 노드(336b-1), 노드(336b-4), 노드(336c-3) 및 노드(336c-4)를 포함할 수 있다. 시간 t0에서, 스토리지 노드 풀은 노드(336c-1), 노드(336c-2), 노드(336c-5), 노드(336c-6), 노드(336c-7), 노드(336c-8), 노드(336c-9) 및 노드(336c-10)를 포함할 수 있다.
시간 t0에서, 인프라 모니터는 인프라 노드 풀의 노드(즉, 노드(336a-4), 노드(336a-9), 노드(336a-10), 노드(336b-1), 노드(336b-4), 노드(336c-3) 및 노드(336c-4))로부터 사용량 정보를 수신할 수 있다. 사용량 정보는 인프라 노드 풀의 노드의 사용률을 나타낼 수 있다. 사용량 정보는, 인프라 노드 풀에 할당된 서비스를 제공하는 데 사용되고 있는 인프라 노드 풀의 리소스의 비율을 나타낼 수 있다. 인프라 노드 모니터는 인프라 노드 풀의 각 노드로부터 사용량 정보를 수신하거나 전체 인프라 노드 풀에 대한 집계된 사용량 정보를 수신할 수 있다. 사용량 정보는 인프라 노드 풀의 정상 노드에만 해당될 수 있다. 예를 들어, 사용량 정보에 인프라 노드 풀이 80% 용량으로 작동하고 있다고 표시된다고 가정한다. 이는 인프라 노드 풀의 정상 노드가 80% 용량으로 작동하고 있음을 의미할 수 있다. 대안적으로, 사용량 정보는, 비정상 노드 또는 비작동 노드를 포함하여 인프라 노드 풀의 모든 노드가 서비스를 제공할 수 있다고 가정할 수 있다. 예를 들어, 사용량 정보에 인프라 노드 풀이 80% 용량으로 작동하고 있다고 표시된다고 가정한다. 또한, 인프라 노드 풀의 노드 중 하나가 비정상이라고 가정한다. 이 경우, 비정상 노드가 서비스를 제공하고 있지 않을 수 있으므로 인프라 노드 풀의 정상 노드는 실제로 80% 보다 큰 용량으로 작동하고 있을 수 있다.
시간 t0에서, 노드 모니터는 노드(336)로부터 상태 정보를 수신할 수 있다. 상태 정보는 노드(336)의 상태 또는 노드(336)의 리소스의 상태를 나타낼 수 있다. 상태 정보는 노드(336)의 서비스 제공 능력을 나타낼 수 있다. 상태 정보는 각 노드(336)의 설계된 작동 용량에 대비한 각 노드(336)의 현재 작동 용량을 나타낼 수 있다. 노드 모니터는 각 노드(336)로부터 상태 정보를 수신할 수 있거나 집계된 상태 정보를 수신할 수 있다. 상태 정보는 각 노드의 서비스 수행 능력을 나타낼 수 있다.
시간 t0에서, 머신 풀 관리자는 인프라 모니터로부터 사용량 정보를 수신하고 노드 모니터로부터 상태 정보를 수신할 수 있다. 머신 풀 관리자는 사용량 정보 및 상태 정보를 분석하여 컴퓨팅 노드 풀과 인프라 노드 풀 사이에서 노드를 재할당할지 여부를 결정할 수 있다. 머신 풀 관리자는 컴퓨팅 노드 풀과 인프라 노드 풀 사이에서 노드를 재할당할지 여부를 결정하기 위해 하나 이상의 규칙을 사용할 수 있다. 하나 이상의 규칙은 사전 결정된 최대 임계값, 사전 결정된 최소 임계값, 사전 결정된 과잉 사용 기간 및 사전 결정된 과소 사용 기간을 포함할 수 있다.
사전 결정된 최대 임계값은 인프라 노드 풀의 용량의 최대 사용 비율 또는 최대 비율일 수 있다. 머신 풀 관리자는 노드를 컴퓨팅 노드 풀에서 인프라 노드 풀로 재프로비저닝할지 여부를 결정할 때 사전 결정된 최대 임계값을 사용할 수 있다. 인프라 노드 풀이 사전 결정된 최대 임계값 이상으로 작동하고 있는 경우, 머신 풀 관리자는 컴퓨팅 노드 풀에서 인프라 노드 풀로 노드를 재프로비저닝해야 한다고 결정할 수 있다. 예를 들어, 사전 결정된 최대 임계값은 75%일 수 있고, 인프라 노드 풀이 용량의 75% 이상으로 작동하고 있는 경우 머신 풀 관리자는 컴퓨팅 노드 풀에서 인프라 노드 풀로 노드를 재프로비저닝해야 한다고 결정할 수 있다.
사전 결정된 최대 임계값은, 인프라 노드 풀의 현재 및 가용 용량의 최대 사용률 또는 현재 및 가용 용량의 최대 비율일 수 있다. 사전 결정된 최대 임계값은 인프라 노드 풀의 정상 리소스 또는 정상 노드의 최대 사용률일 수 있다. 사전 결정된 최대 임계값은 인프라 노드 풀의 현재 작동 용량에 기초하여 적용될 수 있다. 인프라 노드 풀이 사전 결정된 최대 임계값 이상으로 작동하고 있는지 여부를 판단할 때, 머신 풀 관리자는 인프라 노드 풀의 노드로부터 수신된 상태 정보를 사용하여 인프라 노드 풀의 현재 작동 용량을 결정할 수 있다. 머신 풀 관리자는 인프라 노드 풀의 노드로부터 수신된 사용량 정보를 사용하여 인프라 노드 풀이 인프라 노드 풀의 현재 작동 용량의 사전 결정된 최대 임계값 이상으로 작동하고 있는지 여부를 판단할 수 있다. 예를 들어, 사전 결정된 최대 임계값은 80%일 수 있다. 인프라 노드 풀이 인프라 노드 풀의 현재 작동 용량의 80% 이상으로 작동하고 있는 경우, 머신 풀 관리자는 컴퓨팅 노드 풀에서 인프라 노드 풀로 노드를 재프로비저닝해야 한다고 결정할 수 있다. 인프라 노드 풀에 비정상 노드 또는 비정상 리소스가 포함된 경우, 인프라 노드 풀의 현재 작동 용량은 인프라 노드 풀의 원래 작동 용량 또는 설계된 작동 용량보다 작을 수 있다.
사전 결정된 최소 임계값은 인프라 노드 풀의 용량의 최소 사용 비율 또는 최소 비율일 수 있다. 머신 풀 관리자는 인프라 노드 풀에서 컴퓨팅 노드 풀로 노드를 재프로비저닝할지 여부를 결정할 때 사전 결정된 최소 임계값을 사용할 수 있다. 인프라 노드 풀이 사전 결정된 최소 임계값 이하로 작동하고 있는 경우, 머신 풀 관리자는 인프라 노드 풀에서 컴퓨팅 노드 풀로 노드를 재프로비저닝해야 한다고 결정할 수 있다. 예를 들어, 사전 결정된 최소 임계값은 30%일 수 있다. 인프라 노드 풀이 용량의 30% 이하로 작동하고 있는 경우, 머신 풀 관리자는 컴퓨팅 노드 풀에서 인프라 노드 풀로 노드를 재프로비저닝해야 한다고 결정할 수 있다.
사전 결정된 최소 임계값은 인프라 노드 풀의 현재 및 가용 용량의 최소 사용률 또는 현재 및 가용 용량의 최소 비율일 수 있다. 사전 결정된 최소 임계값은 인프라 노드 풀의 정상 리소스 또는 정상 노드의 최소 사용률일 수 있다. 사전 결정된 최소 임계값은 인프라 노드 풀의 현재 작동 용량에 기초하여 적용될 수 있다. 인프라 노드 풀이 사전 결정된 최소 임계값 이하로 작동하고 있는지 여부를 결정할 때, 머신 풀 관리자는 인프라 노드 풀의 노드로부터 수신된 상태 정보를 사용하여 인프라 노드 풀의 현재 작동 용량을 결정할 수 있다. 머신 풀 관리자는 인프라 노드 풀의 노드로부터 수신된 사용량 정보를 사용하여 인프라 노드 풀이 인프라 노드 풀의 현재 작동 용량의 사전 결정된 최소 임계값 이하로 작동하고 있는지 여부를 판단할 수 있다. 예를 들어, 사전 결정된 최소 임계값은 30%일 수 있다. 인프라 노드 풀이 인프라 노드 풀의 현재 작동 용량의 30% 이하로 작동하고 있는 경우, 머신 풀 관리자는 노드를 인프라 노드 풀에서 컴퓨팅 노드 풀로 재프로비저닝해야 한다고 결정할 수 있다.
사전 결정된 과잉 사용 기간은 정의된 기간일 수 있다. 머신 풀 관리자는 노드를 컴퓨팅 노드 풀에서 인프라 노드 풀로 재프로비저닝할지 여부를 결정할 때 사전 결정된 과잉 사용 기간을 사용할 수 있다. 인프라 노드 풀이 사전 결정된 과잉 사용 기간 동안 사전 결정된 최대 임계값 이상으로 작동하고 있는 경우, 머신 풀 관리자는 노드를 컴퓨팅 노드 풀에서 인프라 노드 풀로 재프로비저닝해야 한다고 결정할 수 있다.
사전 결정된 과소 사용 기간은 정의된 기간일 수 있다. 머신 풀 관리자는 노드를 인프라 노드 풀에서 컴퓨팅 노드 풀로 재프로비저닝할지 여부를 결정할 때 사전 결정된 과소 사용 기간을 사용할 수 있다. 인프라 노드 풀이 사전 결정된 과소 사용 기간 동안 사전 결정된 최소 임계값 이하로 작동하고 있는 경우, 머신 풀 관리자는 노드를 인프라 노드 풀에서 컴퓨팅 노드 풀로 재프로비저닝해야 한다고 결정할 수 있다.
시간 t0에서, 머신 풀 관리자는 실행 정보를 수신할 수 있다. 실행 정보에는 컴퓨팅 노드 풀의 각 노드에서 실행되는 가상 머신 및 워크로드에 관한 정보가 포함될 수 있다. 실행 정보는 가상 머신 및 워크로드의 수, 가상 머신 및 워크로드의 크기, 워크로드를 실행하는 데 사용되고 있는 리소스의 양 또는 비율, 가상 머신 및 워크로드 전용 리소스의 양, 워크로드의 완료까지 남은 시간 및 워크로드의 우선 순위를 나타낼 수 있다.
머신 풀 관리자는 인프라 노드 풀과 컴퓨팅 노드 풀 사이에서 재프로비저닝할 노드를 선택할 때 실행 정보 및 상태 정보를 분석할 수 있다. 머신 풀 관리자는 하나 이상의 선택 규칙을 사용하여 재프로비저닝할 노드를 선택할 수 있다. 컴퓨팅 노드를 인프라 노드로 재프로비저닝하는 경우, 하나 이상의 선택 규칙은, 컴퓨팅 노드 풀의 노드 중에서 가장 적은 수의 워크로드를 호스팅하고 있거나, 가장 작은 크기의 워크로드를 호스팅하고 있거나, 가장 낮은 우선 순위의 워크로드를 실행하고 있거나, 가장 낮은 용량으로 작동하고 있거나, 워크로드 실행에 가장 적은 양의 리소스를 사용하고 있거나, 가상 머신 또는 워크로드에 가장 적은 양의 리소스를 사용하고 있는 노드를 선택하는 것을 우선시할 수 있다. 인프라 노드를 컴퓨팅 노드로 재프로비저닝하는 경우, 하나 이상의 선택 규칙은, 인프라 노드 풀의 노드 중에서 가장 낮은 용량으로 작동하고 있거나, 가장 덜 중요한 서비스 세트를 호스팅하고 있거나, 서비스 제공에 최소한의 리소스를 사용하고 있는 노드를 선택하는 것을 우선시할 수 있다.
예를 들어, 시간 t0은 엣지 존(310)이 0이 아닌 시간 동안 작동한 이후의 시간이라고 가정한다. 컴퓨팅 노드 풀에서 인프라 노드 풀로 노드를 재할당할지 여부를 결정하기 위한 제1 규칙이 머신 풀 관리자에 포함되어 있다고 가정한다. 제1 규칙은, 인프라 노드 풀이 사전 결정된 과잉 사용 기간 동안 사전 결정된 최대 임계값 이상으로 작동한 경우 머신 풀 관리자가 컴퓨팅 노드를 인프라 노드가 되도록 재프로비저닝할 것을 규정한다고 가정한다. 사전 결정된 최대 임계값은 현재 용량의 80%이고(인프라 노드 풀의 노드 상태 고려) 사전 결정된 과잉 사용 기간은 10분이라고 가정한다. 노드(336a-10)가 비정상이고 서비스를 제공할 수 없음을 나타내는 상태 정보를 머신 풀 관리자가 수신한다고 가정한다. 노드(336a-4)가 80% 용량으로 작동하고 있고, 노드(336a-9)가 85% 용량으로 작동하고 있고, 노드(336b-1)가 75% 용량으로 작동하고 있고, 노드(336b-4)가 90% 용량으로 작동하고 있고, 노드(336c-3)가 70% 용량으로 작동하고 있고, 노드(336c-4)가 80% 용량으로 작동하고 있음을 나타내는 사용량 정보를 머신 풀 관리자가 수신한다고 가정한다. 이들 노드가 사전 결정된 과잉 사용 기간 동안 해당 용량으로 작동했음을 나타내는 사용량 정보를 머신 풀 관리자가 수신했다고 가정한다. 노드(336a-4), 노드(336a-9), 노드(336b-1), 노드(336b-4), 노드(336c-3) 및 노드(336c-4)가 동일한 현재 용량을 갖는다고 가정한다. 머신 풀 관리자는 상태 정보 및 사용량 정보에 기초하여 제1 규칙이 만족되었다고 판단할 수 있다.
머신 풀 관리자에는 인프라 노드 풀에 재프로비저닝할 컴퓨팅 노드를 선택하기 위한 제2 규칙이 포함된다고 가정한다. 제2 규칙은 워크로드 수가 가장 적은 컴퓨팅 노드를 재프로비저닝할 것을 규정한다고 가정한다. 노드(336a-1)가 3개의 워크로드를 실행하고 있고, 노드(336a-2)가 10개의 워크로드를 실행하고 있고, 노드(336a-3)가 2개의 워크로드를 실행하고 있고, 노드(336a-5)가 5개의 워크로드를 실행하고 있고, 노드(336a-6)가 5개의 워크로드를 실행하고 있고, 노드(336a-7)가 3개의 워크로드를 실행하고 있고, 노드(336a-8)가 3개의 워크로드를 실행하고 있고, 노드(336b-2)가 6개의 워크로드를 실행하고 있고, 노드(336b-3)가 3개의 워크로드를 실행하고 있고, 노드(336b-5)가 6개의 워크로드를 실행하고 있고, 노드(336b-6)가 4개의 워크로드를 실행하고 있고, 노드(336b-7)가 3개의 워크로드를 실행하고 있고, 노드(336b-8)가 5개의 워크로드를 실행하고 있고, 노드(336b-9)가 4개의 워크로드를 실행하고 있고, 노드(336b-10)가 6개의 워크로드를 실행하고 있음을 나타내는 실행 정보를 머신 풀 관리자가 수신한다고 가정한다. 실행 정보 및 제2 규칙에 기초하여, 머신 풀 관리자는 컴퓨팅 노드 풀에서 인프라 노드 풀로 이동시킬 노드(336a-3)를 선택할 수 있다. 머신 풀 관리자는, 노드(336a-3)를 컴퓨팅 노드 풀에서 인프라 노드 풀로 이동시키고 노드(336a-3)에서 현재 실행 중인 2 개의 워크로드를 노드(336a-1), 노드(336a-2), 노드(336a-5), 노드(336a-6), 노드(336a-7), 노드(336a-8), 노드(336b-2), 노드(336b-3), 노드(336b-5), 노드(336b-6), 노드(336b-7), 노드(336b-8), 노드(336b-9) 또는 노드(336b-10) 중 하나 이상으로 마이그레이션하도록 노드 관리자에 지시할 수 있다.
도 3b는 시간 ti에서의 엣지 존(310)을 도시할 수 있다. 시간 ti는 시간 t0 이후일 수 있다. 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀 간의 노드(336)의 할당은, 노드(336a-3)가 컴퓨팅 노드 풀에서 인프라 노드 풀로 재프로비저닝되었을 수 있다는 점을 제외하고 시간 t0에서의 할당과 동일할 수 있다.
예를 들어, 머신 풀 관리자에는 노드를 인프라 노드 풀에서 컴퓨팅 노드 풀로 재할당할지 여부를 결정하기 위한 제3 규칙이 포함된다고 가정한다. 제3 규칙은, 인프라 노드 풀이 사전 결정된 과소 사용 기간 동안 사전 결정된 최소 임계값 이하로 작동한 경우 머신 풀 관리자가 인프라 노드를 컴퓨팅 노드 풀로 재프로비저닝할 것을 규정한다고 가정한다. 사전 결정된 최소 임계값은 현재 용량의 30%이고 사전 결정된 과소 사용 기간은 10분이라고 가정한다. 인프라 노드 풀의 모든 노드가 정상임을 나타내는(이는 노드(336a-10)의 리소스가 복구 또는 교체되었음을 의미할 수 있음) 상태 정보를 머신 풀 관리자가 수신한다고 가정한다. 노드(336a-3)가 10% 용량으로 작동하고 있고, 노드(336a-4)가 50% 용량으로 작동하고 있고, 노드(336a-9)가 20% 용량으로 작동하고 있고, 노드(336a-10)가 20% 용량으로 작동하고 있고, 노드(336b-1)가 30% 용량으로 작동하고 있고, 노드(336b-4)가 10% 용량으로 작동하고 있고, 노드(336c-3)가 30% 용량으로 작동하고 있고, 노드(336c-4)가 5% 용량으로 작동하고 있음을 나타내는 사용량 정보를 머신 풀 관리자가 수신한다고 가정한다. 이들 노드가 사전 결정된 과소 사용 기간 동안 해당 용량으로 작동했음을 나타내는 사용량 정보를 머신 풀 관리자가 수신했다고 가정한다. 노드(336a-3), 노드(336a-4), 노드(336a-9), 노드(336a-10), 노드(336b-1), 노드(336b-4), 노드(336c-3) 및 노드(336c-4)가 모두 동일한 현재 용량을 갖는다고 가정한다. 머신 풀 관리자는 상태 정보 및 사용량 정보에 기초하여, 제3 규칙이 만족되었다고 판단할 수 있다.
머신 풀 관리자에는 컴퓨팅 노드 풀에 재프로비저닝할 인프라 노드를 선택하기 위한 제4 규칙이 포함된다고 가정한다. 제4 규칙은 최저 용량에서 작동하고 있는 인프라 노드를 재프로비저닝할 것을 규정한다고 가정한다. 제4 규칙은 또한 랙(334c)의 인프라 노드(노드(336c-3) 및 노드(336c-4))가 재프로비저닝되지 않을 수 있음을 규정한다고 가정한다. 사용량 정보 및 제4 규칙에 기초하여, 머신 풀 관리자는 노드(336a-3) 및 노드(336b-4) 중 어느 하나를 선택하여 인프라 노드 풀에서 컴퓨팅 노드 풀로 이동시킬 수 있다. 머신 풀 관리자는 노드(336b-4)를 컴퓨팅 노드 풀로 재프로비저닝하도록 노드 관리자에 지시할 수 있다.
도 3c는 시간 t2에서의 엣지 존(310)을 도시할 수 있다. 시간 t2는 시간 ti 이후일 수 있다. 컴퓨팅 노드 풀, 인프라 노드 풀 및 스토리지 노드 풀 간의 노드(336) 할당은, 노드(336b-4)가 인프라 노드 풀에서 컴퓨팅 노드 풀로 재프로비저닝되었을 수 있다는 점을 제외하고 시간 ti에서의 할당과 동일할 수 있다.
도 4는 엣지 존의 노드 풀 간에 노드를 동적으로 할당하기 위한 예시적인 방법(400)을 도시한다.
방법(400)은 엣지 존의 노드에 대한 상태 정보를 수신하는 단계(402)를 포함할 수 있다. 상태 정보는 노드 및 노드의 리소스의 상태를 나타낼 수 있다. 상태 정보는 노드의 현재 동작 용량을 나타낼 수 있다.
방법(400)은 엣지 존의 인프라 노드 풀에 대한 사용량 정보를 수신하는 단계(404)를 포함할 수 있다. 사용량 정보는 인프라 노드 풀의 리소스 및 노드 사용률을 나타낼 수 있다. 인프라 노드 풀의 리소스 및 노드는 인프라 노드 풀과 연관된 사전 정의된 서비스 세트에 포함된 서비스만 수행하도록 할당될 수 있다.
방법(400)은 엣지 존의 컴퓨팅 노드 풀에 대한 실행 정보를 수신하는 단계(406)를 포함할 수 있다. 실행 정보는 컴퓨팅 노드 풀의 리소스 및 노드 사용률을 나타낼 수 있다. 실행 정보는 컴퓨팅 노드 풀의 노드에 워크로드 및 가상 머신이 있음을 나타낼 수 있다. 컴퓨팅 노드 풀의 리소스 및 노드는 컴퓨팅 노드 풀과 연관된 사전 정의된 서비스 세트에 포함된 서비스만 수행하도록 할당될 수 있다.
방법(400)은 인프라 노드 풀이 과잉으로 사용되는지 여부를 판단하는 단계(408a)를 포함할 수 있다. 인프라 노드가 과잉으로 사용되는지 여부를 판단하는 단계(408a)는 상태 정보 및 사용량 정보에 기초할 수 있다. 인프라 노드 풀이 과잉으로 사용되는지 여부를 판단하는 단계(408a)는 상태 정보 및 사용량 정보에 하나 이상의 규칙을 적용하는 것을 포함할 수 있다. 하나 이상의 규칙은 사전 결정된 최대 임계값 및 사전 결정된 과잉 사용 기간을 포함할 수 있다.
인프라 노드 풀이 과잉으로 사용되는 경우, 방법(400)은 컴퓨팅 노드 풀에서 노드를 선택하는 단계(410) 및 해당 노드를 컴퓨팅 노드 풀에서 인프라 노드 풀로 이동시키는 단계(412)를 포함할 수 있다. 노드를 선택하는 단계(410)는 실행 정보 및 상태 정보에 기초하여 노드를 선택하는 것을 포함할 수 있다. 노드를 선택하는 단계(410)는 실행 정보 및 상태 정보에 하나 이상의 선택 규칙을 적용하는 것을 포함할 수 있다. 하나 이상의 선택 규칙은, 컴퓨팅 노드 풀의 노드 중에서 가장 적은 수의 워크로드를 실행하고 있거나 가장 적은 수의 가상 머신을 호스팅하고 있는 노드를 선택하는 것을 우선시할 수 있다. 하나 이상의 선택 규칙은 정상이거나 정상 리소스의 임계 비율을 갖는 노드를 선택하는 것을 우선시할 수 있다.
방법(400)은 인프라 노드 풀이 과소하게 사용되는지 여부를 판단하는 단계(408b)를 포함할 수 있다. 인프라 노드 풀이 과소하게 사용되는지 여부를 판단하는 단계(408b)는 상태 정보 및 사용량 정보에 기초할 수 있다. 인프라 노드 풀이 과소하게 사용되는지 여부를 판단하는 단계(408b)는 상태 정보 및 사용량 정보에 하나 이상의 규칙을 적용하는 것을 포함할 수 있다. 하나 이상의 규칙은 사전 결정된 최소 임계값 및 사전 결정된 과소 사용 기간을 포함할 수 있다.
인프라 노드 풀이 과소하게 사용되는 경우, 방법(400)은 인프라 노드 풀에서 노드를 선택하는 단계(414) 및 노드가 인프라 노드 풀에서 컴퓨팅 노드 풀로 이동되도록 하는 단계(416)를 포함할 수 있다. 노드를 선택하는 단계(414)는 사용량 정보 및 상태 정보에 기초하여 노드를 선택하는 것을 포함할 수 있다. 노드를 선택하는 단계(410)는 사용량 정보에 하나 이상의 선택 규칙을 적용하는 것을 포함할 수 있다. 하나 이상의 선택 규칙은, 인프라 노드 풀의 노드 중에서 리소스를 가장 적게 사용하고 있는 노드를 선택하는 것을 우선시할 수 있다. 하나 이상의 선택 규칙은 정상이거나 정상 리소스의 임계 비율을 갖는 노드를 선택하는 것을 우선시할 수 있다.
이제 도 5를 참조한다. 하나 이상의 컴퓨팅 디바이스(500)는 본 명세서에 개시된 기술의 적어도 일부 양태를 구현하는 데 사용될 수 있다. 도 5는 컴퓨팅 디바이스(500) 내에 포함될 수 있는 특정 구성요소를 도시한다.
컴퓨팅 디바이스(500)는 프로세서(501) 및 프로세서(501)와 전자적으로 통신하는 메모리(503)를 포함한다. 명령(505) 및 데이터(507)는 메모리(503)에 저장될 수 있다. 명령(505)은, 본 명세서에 개시된 방법, 단계, 동작, 작업 또는 기타 기능 중 일부 또는 이들 모두를 구현하기 위해 프로세서(501)에 의해 실행될 수 있다. 명령(505)을 실행하는 것은 메모리(503)에 저장된 데이터(507)의 사용을 수반할 수 있다. 달리 명시되지 않는 한, 본 명세서에 기술된 모듈 및 구성요소의 모든 다양한 예는, 메모리(503)에 저장되고 프로세서(501)에 의해 실행되는 명령(505)으로서 부분적으로 또는 전체적으로 구현될 수 있다. 본 명세서에 기술된 데이터의 모든 다양한 예는, 메모리(503)에 저장되고 프로세서(501)에 의한 명령(505)의 실행 동안 사용되는 데이터(507) 중에 있을 수 있다.
도 5의 컴퓨팅 디바이스(500)에는 단 하나의 프로세서(501)만이 도시되어 있지만, 대안적인 구성에서 프로세서의 조합(예를 들어, Advanced RISC(Reduced Instruction Set Computer) Machine(ARM) 및 디지털 신호 프로세서(digital signal processor, DSP))이 사용될 수 있다.
컴퓨팅 디바이스(500)는 또한 다른 전자 디바이스와 통신하기 위한 하나 이상의 통신 인터페이스(509)를 포함할 수 있다. 통신 인터페이스(들)(509)는 유선 통신 기술, 무선 통신 기술, 또는 이 둘 모두를 기반으로 할 수 있다. 통신 인터페이스(509)의 일부 예에는 USB(Universal Serial Bus), 이더넷 어댑터, IEEE(Institute of Electrical and Electronics Engineers) 802.11 무선 통신 프로토콜에 따라 작동하는 무선 어댑터, Bluetooth® 무선 통신 어댑터, 및 적외선(IR) 통신 포트가 포함된다.
컴퓨팅 디바이스(500)는 또한 하나 이상의 입력 디바이스(511) 및 하나 이상의 출력 디바이스(513)를 포함할 수 있다. 입력 디바이스(511)의 일부 예에는 키보드, 마우스, 마이크, 원격 제어 디바이스, 버튼, 조이스틱(joystick), 트랙볼(trackball), 터치패드 및 라이트 펜(lightpen)이 포함된다. 일반적으로 컴퓨팅 디바이스(500)에 포함되는 출력 디바이스(513)의 한가지 특정 유형은 디스플레이 디바이스(515)이다. 본 명세서에 개시된 실시예와 함께 사용되는 디스플레이 디바이스(515)는 액정 디스플레이(LCD), 발광 다이오드(LED), 가스 플라즈마, 전자발광, 웨어러블(wearable) 디스플레이 등과 같은 임의의 적합한 이미지 투영 기술을 이용할 수 있다. 메모리(503)에 저장된 데이터(507)를 디스플레이 디바이스(515)에 표시되는 텍스트, 그래픽 및/또는 동영상(적절한 경우)으로 변환하기 위한 디스플레이 제어기(517)도 제공될 수 있다. 컴퓨팅 디바이스(500)는 또한 스피커, 프린터 등과 같은 다른 유형의 출력 디바이스(513)를 포함할 수 있다.
컴퓨팅 디바이스(500)의 다양한 구성요소는 하나 이상의 버스에 의해 서로 결합될 수 있으며, 버스에는 전원 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등이 포함될 수 있다. 명료함을 위해, 다양한 버스가 도 5에서 버스 시스템(510)으로 도시된다.
특정 방식으로 구현되는 것으로 구체적으로 기재되지 않는 한, 본 명세서에 개시된 기술은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 모듈, 구성요소 등으로 기재된 모든 기능은 통합 논리 디바이스에서 함께 구현되거나 개별적이지만 상호 운용 가능한 논리 디바이스로 각각 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기술은, 적어도 하나의 프로세서에 의해 실행될 때 본 명세서에 기재된 단계, 동작, 작업 또는 다른 기능의 일부 또는 전부를 수행하는 컴퓨터 실행 가능 명령이 저장된 비일시적 컴퓨터 판독 가능 매체에 의해 적어도 부분적으로 구현될 수 있다. 명령은 루틴, 프로그램, 개체, 구성요소, 데이터 구조 등으로 조직화될 수 있으며, 이들은 특정 작업을 수행하고/하거나 특정 데이터 유형을 구현할 수 있고 다양한 실시예에서 원하는 대로 결합 또는 분산될 수 있다.
"프로세서"라는 용어는 범용 단일 또는 다중 칩 마이크로프로세서(예를 들어, Advanced RISC(Reduced Instruction Set Computer) Machine(ARM)), 특수 목적 마이크로프로세서(예를 들어, 디지털 신호 프로세서(DSP)), 마이크로컨트롤러, 프로그램 가능 게이트 어레이 등을 의미할 수 있다. 프로세서는 중앙 처리 유닛(CPU)일 수 있다. 일부 실시예에서, 본 명세서에 개시된 기술의 일부 또는 전부를 구현하기 위해 프로세서의 조합(예를 들어, ARM 및 DSP)이 사용될 수 있다.
"메모리"라는 용어는 전자 정보를 저장할 수 있는 임의의 전자 구성요소를 지칭할 수 있다. 예를 들어, 메모리는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 자기 디스크 저장 매체, 광 저장 매체, RAM의 플래시 메모리 디바이스, 다양한 유형의 스토리지 클래스(storage class) 메모리, 프로세서에 포함된 온보드 메모리, EPROM(erasable programmable readonly memory), EEPROM(electrically erasable programmable read-only memory), 레지스터 및 이들의 조합 등으로 구현될 수 있다.
본 명세서에 기술된 방법의 단계, 동작 및/또는 작업은 청구항의 범위를 벗어나지 않는 선에서 서로 교체될 수 있다. 즉, 기술되는 방법의 올바른 작동을 위해 단계, 동작 및/또는 작업의 특정 순서가 요구되지 않는 한, 특정 단계, 동작 및/또는 작업의 순서 및/또는 사용은 청구항의 범위를 벗어나지 않는 선에서 수정될 수 있다.
"결정(determining)"(및 이의 문법적 변형)이라는 용어는 매우 다양한 동작을 포함할 수 있다. 예를 들어, "결정"은 계산, 연산, 처리, 도출, 조사, 검색(예를 들어, 테이블, 데이터베이스 또는 다른 데이터 구조에서 검색), 확인 등을 포함할 수 있다. 또한, "결정"은 수신(예를 들어, 정보 수신), 액세스(예를 들어, 메모리의 데이터를 액세스) 등을 포함할 수 있다. 또한, "결정"은 해결, 선정, 선택, 설정 등을 포함할 수 있다.
"포함하는(comprising, including)" 및 "갖는(having)"이라는 용어는 포괄적인 것으로 의도되며 나열된 구성요소 이외의 추가 구성요소가 존재할 수 있음을 의미한다. 또한, 본 개시의 "일 실시예(one embodiment, an embodiment)"에 대한 언급은 기재된 특징을 포함하는 추가적인 실시예의 존재를 배제하는 것으로 해석되지 않아야함을 이해해야 한다. 예를 들어, 본 명세서의 일 실시예와 관련하여 설명된 임의의 구성요소 또는 특징은 호환되는 경우 본 명세서에 설명된 임의의 다른 실시예의 임의의 구성요소 또는 특징과 결합 가능할 수 있다.
본 개시는 그 사상이나 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구현될 수 있다. 기술된 실시예는 예시적인 것으로 간주되어야 하고 한정적이 아닌 것으로 간주되어야 한다. 따라서, 본 개시의 범위는 전술한 설명보다는 첨부된 청구항들에 의해 나타내어진다. 청구항들의 의미 및 균등 범위 내에서 발생하는 변경은 청구항들의 범위 내에 포함된다.

Claims (19)

  1. 클라이언트에 서비스를 제공하는 클라우드 컴퓨팅 시스템으로서,
    제1 노드 세트를 포함하는 데이터 센터 ― 상기 데이터 센터는 상기 클라이언트의 제2 지리적 위치와 상이한 제1 지리적 위치를 가짐 ―,
    제2 노드 세트를 포함하는 엣지 존(edge zone) ― 상기 엣지 존은 제3 지리적 위치를 가지고, 상기 제2 지리적 위치는 상기 제1 지리적 위치보다 상기 제3 지리적 위치에 더 가깝고, 상기 제1 노드 세트의 수는 상기 제2 노드 세트의 수보다 많고, 상기 제2 노드 세트는, 상기 클라이언트의 워크로드(workload)를 수행하기 위한 제1 노드 풀(a first pool of nodes), 및 상기 클라이언트의 상기 워크로드를 수행하는 것 이외의 서비스를 제공하기 위한 제2 노드 풀을 포함함 ―, 및
    상기 제1 노드 풀 및 상기 제2 노드 풀에 대한 상태 정보 및 상기 제2 노드 풀에 대한 사용량 정보를 수신하고, 상기 상태 정보 및 상기 사용량 정보에 기초하여 상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 노드를 재프로비저닝(re-provision)하도록 결정하고, 상기 결정에 기초하여 상기 노드를 재프로비저닝되게 하는 노드 풀 관리자 ― 상기 제2 노드 풀은 상기 엣지 존의 올바른 작동 또는 상기 엣지 존에서 호스팅되는 가상 머신의 올바른 작동을 지원하는 보조 서비스를 제공함 ―를 포함하는,
    클라우드 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 상태 정보는 상기 제2 노드 풀의 리소스의 상태를 나타내고, 상기 사용량 정보는 상기 제2 노드 풀의 사용량을 나타내며, 상기 노드 풀 관리자는, 상기 제2 노드 풀이 과잉 사용되거나 과소 사용되는 경우 상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 상기 노드를 재프로비저닝하도록 결정하는,
    클라우드 컴퓨팅 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 노드 풀 관리자는 최대 임계값을 포함하고, 상기 노드 풀 관리자는, 상기 제2 노드 풀이 상기 최대 임계값 이상으로 작동하고 있는 경우 상기 노드를 상기 제1 노드 풀에서 상기 제2 노드 풀로 재프로비저닝하도록 결정하는,
    클라우드 컴퓨팅 시스템.
  4. 제3항에 있어서,
    상기 노드 풀 관리자는 상기 제2 노드 풀의 현재 작동 용량에 기초하여 상기 제2 노드 풀이 상기 최대 임계값 이상으로 작동하고 있는지 여부를 판단하는,
    클라우드 컴퓨팅 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 노드 풀 관리자는 최대 임계값 및 과잉 사용 기간을 포함하고, 상기 노드 풀 관리자는, 상기 제2 노드 풀이 상기 과잉 사용 기간 동안 상기 최대 임계값 이상으로 작동한 경우 상기 노드를 상기 제1 노드 풀에서 상기 제2 노드 풀로 재프로비저닝하도록 결정하는,
    클라우드 컴퓨팅 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 노드 풀 관리자는 최소 임계값을 포함하고, 상기 노드 풀 관리자는, 상기 제2 노드 풀이 상기 최소 임계값 이하로 작동하고 있는 경우 상기 노드를 상기 제2 노드 풀에서 상기 제1 노드 풀로 재프로비저닝하도록 결정하는,
    클라우드 컴퓨팅 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 노드 풀 관리자는 최소 임계값 및 과소 사용 기간을 포함하고, 상기 노드 풀 관리자는, 상기 제2 노드 풀이 상기 과소 사용 기간 동안 상기 최소 임계값 이하로 작동한 경우 상기 노드를 상기 제2 노드 풀에서 상기 제1 노드 풀로 재프로비저닝하도록 결정하는,
    클라우드 컴퓨팅 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 노드 풀 관리자는 상기 데이터 센터에 위치하는,
    클라우드 컴퓨팅 시스템.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제2 노드 세트는 스토리지(storage) 서비스를 제공하기 위한 제3 노드 풀을 포함하는,
    클라우드 컴퓨팅 시스템.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 엣지 존의 상기 클라이언트의 상기 워크로드와 상호 작용하는 상기 클라이언트의 레이턴시(latency)는 상기 데이터 센터의 상기 클라이언트의 다른 워크로드와 상호 작용하는 상기 클라이언트의 레이턴시보다 작은,
    클라우드 컴퓨팅 시스템.
  11. 엣지 존(edge zone)의 제1 노드 풀(pool)과 제2 노드 풀 사이에서 노드들을 재할당하기 위한 방법으로서,
    상기 엣지 존은 클라우드 컴퓨팅 시스템의 일부이고, 상기 클라우드 컴퓨팅 시스템의 데이터 센터에 의해 관리되고, 상기 데이터 센터와 다른 지리적 위치를 가지며,
    상기 방법은,
    상기 제1 노드 풀 및 상기 제2 노드 풀에 대한 상태 정보를 수신하는 단계 ― 상기 제1 노드 풀은 클라이언트에 대한 워크로드(workload)를 실행하고, 상기 제2 노드 풀은 상기 클라이언트에 대한 상기 워크로드의 실행 이외의 서비스를 제공함 ―,
    상기 제2 노드 풀에 대한 사용량 정보를 수신하는 단계,
    상기 상태 정보 및 상기 사용량 정보에 기초하여, 상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 노드들의 할당을 수정하도록 결정하는 단계 ― 상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 상기 노드들의 상기 할당을 수정하는 것은, 노드를 상기 제1 노드 풀에서 상기 제2 노드 풀로 재할당하는 것 또는 노드를 상기 제2 노드 풀에서 상기 제1 노드 풀로 재할당하는 것을 포함함―, 및
    상기 결정에 기초하여, 상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 상기 노드들의 상기 할당의 수정을 야기하는 단계를 포함하고,
    상기 제2 노드 풀은 상기 엣지 존의 올바른 작동 또는 상기 엣지 존에서 호스팅되는 가상 머신의 올바른 작동을 지원하는 보조 서비스를 제공하는,
    방법.
  12. 제11항에 있어서,
    상기 제1 노드 풀과 상기 제2 노드 풀 사이에서 노드들의 상기 할당을 수정하도록 결정하는 상기 단계는, 상기 제2 노드 풀이 과잉 사용되거나 과소 사용된다는 판단에 추가로 기초하는,
    방법.
  13. 제11항 또는 제12항에 있어서,
    상기 상태 정보 및 상기 사용량 정보에 기초하여, 선택된 노드를 상기 제1 노드 풀에서 상기 제2 노드 풀로 재프로비저닝(re-provision)하도록 결정하는 단계, 및
    상기 선택된 노드를 상기 제1 노드 풀에서 상기 제2 노드 풀로 재프로비저닝하는 것을 야기하는 단계를 더 포함하는,
    방법.
  14. 제13항에 있어서,
    상기 제1 노드 풀에 대한 실행 정보를 수신하는 단계, 및
    상기 상태 정보 및 상기 실행 정보에 기초하여, 재프로비저닝을 위해, 상기 제1 노드 풀로부터 상기 선택된 노드를 선택하는 단계를 더 포함하는,
    방법.
  15. 제13항 또는 제14항에 있어서,
    상기 제1 노드 풀로부터 상기 선택된 노드를 선택하는 상기 단계는, 상기 선택된 노드가 상기 클라이언트에 대한 상기 워크로드 중 임의의 워크로드를 실행하고 있는지 여부를 판단하는 단계를 포함하는,
    방법.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 노드 풀로부터 상기 선택된 노드를 선택하는 상기 단계는, 상기 노드가 상기 제1 노드 풀의 다른 노드들과 비교할 때 상기 클라이언트에 대한 상기 워크로드 중 가장 적은 수의 워크로드를 실행하고 있는지 여부를 판단하는 단계를 포함하는,
    방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 선택된 노드에서 실행되는 임의의 워크로드를 상기 제1 노드 풀의 하나 이상의 다른 노드로 마이그레이션(migrate)하는 단계를 더 포함하는,
    방법.
  18. 컴퓨터 판독 가능 매체로서,
    상기 컴퓨터 판독 가능 매체는 명령을 포함하고, 상기 명령은 하나 이상의 프로세서에 의해 실행 가능하여 컴퓨팅 시스템으로 하여금,
    엣지 존(edge zone)에 포함된 인프라 노드(infrastructure node)들에 대한 상태 정보를 수신하고 ― 상기 엣지 존은 클라우드 컴퓨팅 시스템의 일부이고, 상기 클라우드 컴퓨팅 시스템은 상기 엣지 존과 분리된 데이터 센터를 포함하며, 상기 엣지 존은 상기 데이터 센터에 비해 클라이언트에 더 가까움 ―,
    상기 인프라 노드들에 대한 사용량 정보를 수신하고,
    상기 상태 정보 및 상기 사용량 정보에 기초하여, 상기 인프라 노드들이 과잉 사용 기간 동안 최대 용량 비율을 초과하여 작동했다고 판단하고,
    상기 인프라 노드들이 상기 과잉 사용 기간 동안 상기 최대 용량 비율을 초과하여 작동했다는 상기 판단에 기초하여, 상기 인프라 노드들 중 하나의 인프라 노드가 컴퓨팅 노드로서 재프로비저닝(re-provision)되게 하고,
    상기 상태 정보 및 상기 사용량 정보에 기초하여, 상기 인프라 노드들이 과소 사용 기간 동안 최소 용량 비율 미만으로 작동했다고 판단하고,
    상기 인프라 노드가 상기 과소 사용 기간 동안 상기 최소 용량 비율 미만으로 작동했다는 상기 판단에 기초하여, 상기 엣지 존의 노드가 상기 인프라 노드들에 추가되게 하는,
    컴퓨터 판독 가능 매체.
  19. 제18항에 있어서,
    명령을 더 포함하되, 상기 명령은 하나 이상의 프로세서에 의해 실행 가능하여 상기 컴퓨팅 시스템으로 하여금,
    상기 상태 정보 및 상기 사용량 정보에 기초하여, 상기 인프라 노드가 상기 인프라 노드들 중에서 재프로비저닝을 위한 최상의 노드라고 판단하고,
    상기 인프라 노드에서 실행 중인 서비스를 상기 인프라 노드들 중 하나 이상의 다른 노드로 마이그레이션(migrate)하게 하는,
    컴퓨터 판독 가능 매체.
KR1020237008346A 2020-09-11 2021-09-10 엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성 KR20230062566A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NL2026456A NL2026456B1 (en) 2020-09-11 2020-09-11 Automatic node fungibility between compute and infrastructure nodes in edge zones
NL2026456 2020-09-11
PCT/US2021/049947 WO2022056312A1 (en) 2020-09-11 2021-09-10 Automatic node fungibility between compute and infrastructure nodes in edge zones

Publications (1)

Publication Number Publication Date
KR20230062566A true KR20230062566A (ko) 2023-05-09

Family

ID=72886154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237008346A KR20230062566A (ko) 2020-09-11 2021-09-10 엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성

Country Status (12)

Country Link
US (1) US20230367654A1 (ko)
EP (1) EP4211557A1 (ko)
JP (1) JP2023541607A (ko)
KR (1) KR20230062566A (ko)
CN (1) CN116075809A (ko)
AU (1) AU2021340717A1 (ko)
BR (1) BR112023002692A2 (ko)
CA (1) CA3190966A1 (ko)
IL (1) IL301136A (ko)
MX (1) MX2023002701A (ko)
NL (1) NL2026456B1 (ko)
WO (1) WO2022056312A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230102795A1 (en) * 2021-09-30 2023-03-30 International Business Machines Corporation Automatic selection of nodes on which to perform tasks
US20240028441A1 (en) * 2022-07-21 2024-01-25 Vmware, Inc. Propagating fault domain topology to nodes in a distributed container orchestration system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10164852B2 (en) * 2015-12-31 2018-12-25 Microsoft Technology Licensing, Llc Infrastructure management system for hardware failure remediation
US10838803B2 (en) * 2018-09-26 2020-11-17 International Business Machines Corporation Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers
US11146455B2 (en) * 2019-12-20 2021-10-12 Intel Corporation End-to-end quality of service in edge computing environments

Also Published As

Publication number Publication date
AU2021340717A1 (en) 2023-05-04
CA3190966A1 (en) 2022-03-17
MX2023002701A (es) 2023-04-03
BR112023002692A2 (pt) 2023-04-04
US20230367654A1 (en) 2023-11-16
EP4211557A1 (en) 2023-07-19
JP2023541607A (ja) 2023-10-03
IL301136A (en) 2023-05-01
WO2022056312A1 (en) 2022-03-17
CN116075809A (zh) 2023-05-05
NL2026456B1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
US11102281B2 (en) Tool for managing and allocating resources in a clustered computing environment
EP3507692B1 (en) Resource oversubscription based on utilization patterns in computing systems
US11106508B2 (en) Elastic multi-tenant container architecture
KR20220006490A (ko) 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법
US9690608B2 (en) Method and system for managing hosts that run virtual machines within a cluster
CN111399970B (zh) 一种预留资源管理方法、装置和存储介质
CN111966500A (zh) 资源调度方法、装置、电子设备及存储介质
CN110221920B (zh) 部署方法、装置、存储介质及系统
US11909603B2 (en) Priority based resource management in a network functions virtualization (NFV) environment
US11467874B2 (en) System and method for resource management
KR20230062566A (ko) 엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성
CN108132827B (zh) 一种网络切片资源映射方法、相关设备及系统
Nardelli et al. Multi-level elastic deployment of containerized applications in geo-distributed environments
US11093288B2 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
CN117480494A (zh) 改进虚拟计算环境中资源分配的协调容器调度
Kulkarni et al. Context aware VM placement optimization technique for heterogeneous IaaS cloud
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
Marchese et al. Network-aware container placement in cloud-edge kubernetes clusters
Baresi et al. PAPS: A serverless platform for edge computing infrastructures
KR20210041295A (ko) 클라우드 컴퓨팅 환경에서 가상화 자원 분배 시스템
Doan et al. Reusing sub-chains of network functions to support mec services
Sadia et al. A priority based dynamic resource mapping algorithm for load balancing in cloud
WO2022177455A1 (en) Method and system for optimizing resource and traffic management of a computer execution environment in a vran
EP3096227A1 (en) Resource allocation method in distributed clouds
Tarahomi et al. New approach for reducing energy consumption and load balancing in data centers of cloud computing