KR102361929B1 - 동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리 - Google Patents

동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리 Download PDF

Info

Publication number
KR102361929B1
KR102361929B1 KR1020207013074A KR20207013074A KR102361929B1 KR 102361929 B1 KR102361929 B1 KR 102361929B1 KR 1020207013074 A KR1020207013074 A KR 1020207013074A KR 20207013074 A KR20207013074 A KR 20207013074A KR 102361929 B1 KR102361929 B1 KR 102361929B1
Authority
KR
South Korea
Prior art keywords
slots
electronic device
slot
compute
compute instance
Prior art date
Application number
KR1020207013074A
Other languages
English (en)
Other versions
KR20200065044A (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 아마존 테크놀로지스, 인크.
Publication of KR20200065044A publication Critical patent/KR20200065044A/ko
Application granted granted Critical
Publication of KR102361929B1 publication Critical patent/KR102361929B1/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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • 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/72Admission control; Resource allocation using reservation actions during connection setup
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 기법이 기재된다. 플릿 재구성 서비스가 전자 디바이스가 다른 컴퓨트 인스턴스를 실행할 수 있으면서, 컴퓨터 인스턴스를 실행하도록 이용 가능한 호스트 전자 디바이스의 슬롯의 런타임 재구성을 수행하여, 컴퓨트 인스턴스 실행에 이용 가능한 전자 디바이스의 유형 및/또는 슬롯 개수를 동적으로 변경할 수 있다.

Description

동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리
관련 출원의 교차-참조
이 출원은 본 명세서에 참조로서 포함되는 2017년 11월 10일자 미국 정규특허출원 번호 15/809,884의 이익을 주장한다.
많은 회사 및 그 밖의 다른 조직이 다수의 컴퓨팅 시스템을 상호연결하여 이들의 작업, 가령, (가령, 로컬 네트워크의 일부로서) 함께 위치하거나 복수의 개별 지리적 위치에 위치하는 (가령, 하나 이상의 사설 또는 공개 중간 네트워크를 통해 연결된) 컴퓨팅 시스템에 의한 작업을 지원할 수 있는 컴퓨터 네트워크를 운영한다. 예를 들어, 상당한 개수의 상호연결된 컴퓨팅 시스템을 하우징하는 데이터 센서가 흔해졌다, 가령, 단일 조직에 의해 이를 대신하여 운영되는 개인 데이터 센서, 및 고객에게 컴퓨팅 자원을 제공하기 위해 사업체로서 개체에 의해 운영되는 공개 데이터 센터가 있다. 일부 공개 데이터 센터 운영자는 다양한 소비자가 소유하는 하드웨어에 대한 네트워크 액세스, 파워, 및 보안 설치 시설을 제공하며, 반면에 그 밖의 다른 공개 데이터 센서 운영자는 이들의 고객에 의해 사용되도록 이용 가능한 하드웨어 자원을 또한 포함하는 "풀 서비스"를 제공한다. 그러나, 일반적인 데이터 센터의 규모 및 범위가 증가했기 때문에, 물리 컴퓨팅 자원을 프로비저닝, 관리(administering), 및 관리(managing)하는 작업이 점점 더 복잡해졌다.
상품 하드웨어에 대한 가상화 기법의 도래가, 다양한 요구를 갖는 다수의 고객에 대한 대규모 컴퓨팅 자원을 관리하여 다양한 컴퓨팅 자원이 다수의 고객에 의해 효율적으로 안전하게 공유될 수 있도록 하는 것과 관련하여 이점을 제공했다. 예를 들어, 가상화 기법은 단일 물리 컴퓨팅 머신에 의해 호스팅되는 하나 이상의 가상 머신을 각각의 사용자에게 제공함으로써 단일 물리 컴퓨팅 머신이 다수의 사용자 사이에서 공유되게 할 수 있으며, 이때, 각각의 이러한 가상 머신은 사용자에게 이들이 주어진 하드웨어 컴퓨팅 자원의 유일한 운영자 및 관리자라는 착시를 제공하면서, 또한 다양한 가상 머신들 간에 애플리케이션 격리 및 보안을 더 제공하는 개별적인 논리 컴퓨팅 시스템으로서 동작하는 소프트웨어 시뮬레이션이다. 또한, 일부 가상화 기법은 둘 이상의 물리적 자원에 걸쳐 있는 가상 자원, 가령, 복수의 개별 물리 컴퓨팅 시스템에 걸쳐 있는 복수의 가상 프로세서를 갖는 단일 가상 머신을 제공할 수 있다. 또 다른 예를 들면, 가상화 기법은 각각의 사용자에게 복수의 데이터 저장 디바이스에 분산될 수 있는 가상화된 데이터 저장소를 제공함으로써 데이터 저장 하드웨어가 복수의 사용자 간에 공유될 수 있도록 할 수 있으며, 이때, 각각의 이러한 가상화된 데이터 저장소는 사용자에게 이들이 데이터 저장 자원의 유일한 운영자 및 관리자라는 착시를 제공하는 개별적인 논리 데이터 저장소로서 동작한다.
본 개시에 따른 다양한 실시예가 도면을 참조하여 기재될 것이다:
도 1은 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 환경을 도시하는 다이어그램이다.
도 2는 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리에 대한 플릿 재구성 서비스 및 클라우드 관리자를 포함하는 예시적 동작 및 메시징을 보여주는 다이어그램이다.
도 3은 일부 실시예에 따라 동적 호스트 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리의 일부로서 사용될 수 있는 예시적 데이터를 도시하는 다이어그램이다.
도 4는 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 동작을 도시하는 흐름도이다.
도 5는 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 복수의 작업자를 포함하는 동작을 도시하는 조합된 흐름 및 시퀀스도이다.
도 6는 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 동작을 도시하는 흐름도이다.
도 7은 일부 실시예에 따르는 예시적 제공자 네트워크 환경을 도시한다.
도 8은 일부 실시예에 따르는 저장 가상화 서비스 및 하드웨어 가상화 서비스를 고객에게 제공하는 예시적 제공자 네트워크의 블록도이다.
도 9는 일부 실시예에서 사용될 수 있는 예시적 컴퓨터 시스템을 도시하는 블록도이다.
동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 방법, 장치, 시스템, 및 비일시적 컴퓨터-판독형 매체의 다양한 실시예가 기재된다. 일부 실시예에 따라, 제공자 네트워크의 고객이 동일한 호스트 전자 디바이스 상에서 동시에 실행될 수 있는 상이한 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스(compute instance)를 런칭할 수 있다. 일부 실시예에서, 컴퓨트 인스턴스 실행을 위해 이용 가능한 전자 디바이스의 슬롯의 유형 및/또는 개수를 동적으로 변경하기 위해, 전자 디바이스가 다른 컴퓨트 인스턴스를 실행하는 중일 수 있는 동안 플릿 재구성 서비스가 호스트 전자 디바이스의 런타임 재구성을 수행한다.
일부 실시예에서, 이종 호스트 전자 디바이스를 구현하는 제공자 네트워크가 상이한 유형의 컴퓨트 인스턴스에 대한 수요의 변경에 유연하게 적응함으로써 수용량의 더 큰 이용 가능성을 제공할 수 있다. 또한, 일부 실시예가 공통 장애 시나리오에 의해 모두 영향 받을 수 있는 유사한 위치에 유사한 유형의 컴퓨트 인스턴스를 배치할 필요성을 감소 또는 제거함으로써, 호스트 전자 디바이스의 자원 이용률을 증가시키거나, 요청된 컴퓨트 인스턴스를 런칭하기 위한 위치의 이용 불가 때문에 실패된 배치 요청의 등장을 줄이거나, 및/또는 고객에 대한 증가된 장애 허용 범위(fault tolerance)를 제공할 수 있다.
대규모 제공자 네트워크에서, 컴퓨트 인스턴스 실행의 형태로 컴퓨팅 자원을 제공하는 것(가령, 가상 머신(VM) 인스턴스 및/또는 컨테이너 실행)에 대한 공통 접근법이 고객이 특정 유형의 컴퓨트 인스턴스를 런칭할 수 있게 하는 것을 포함한다. 예를 들어, 상이한 사용 경우를 수용하도록 최적화된 복수의 인스턴스 패밀리가 제공될 수 있다. 하나의 예를 들면, 각각의 인스턴스 패밀리가 프로세싱, 메모리, 스토리지, 네트워킹 등, 제공자 네트워크의 고객에게 그들의 필요에 대한 자원의 적절한 혼합을 선택할 수 있는 유연성을 가능하게 하는 수용량 또는 능력의 다양한 조합을 제공할 수 있다. 또한, 각각의 인스턴스 패밀리는 고객이 자신의 자원을 필요에 따라 스케일링할 수 있게 하는 컴퓨트 인스턴스의 특정 자원의 상이한 양 또는 특성을 갖는 다수의 상이한 인스턴스 "크기"를 포함할 수 있다. 따라서, 인스턴스 유형이 계산 인스턴스의 자원의 특정 구성일 수 있으며, 따라서 인스턴스 유형은 인스턴스 패밀리(가령, 프로세싱-최적화된 계산 인스턴스) 및 패밀리의 특정 크기(가령, 프로세싱, 메모리, 스토리지, 네트워킹 등의 특정 양)의 조합일 수 있다.
이들 컴퓨트 인스턴스를 구현하기 위해, 제공자 네트워크는 많은 수의 전자 디바이스를 컴퓨트 인스턴스가 실행될 수 있는 호스트로서 역할 하도록 프로비저닝할 수 있으며, 이때, 각각의 전자 디바이스는 특정 유형의 컴퓨트 인스턴스에 대해 하나 이상의 "슬롯"을 제공하도록 구성될 수 있다. 전자 디바이스가 단 하나의 유형의 컴퓨트 인스턴스만 호스팅하도록 네트워크를 구성함으로써, 제공자 네트워크는 단순히 구성될 수 있고 전자 디바이스의 특성은 한 유형의 컴퓨트 인스턴스의 알려진 숫자를 지원하도록 단도직입적으로 선택될 수 있다.
그러나 이러한 방식에 의해서는 상이한 인스턴스 유형에 대한 수용량의 "자유" 풀을 유지할 필요성이 있을 수 있다. 또한, 특정 인스턴스 유형에 대한 수요가 가용 풀 수용량을 초과할 때, 고객은 이 유형의 인스턴스를 즉시 런칭하지 못할 수 있다. 대신, "리빌드(rebuild)" 프로세스가 수행되어 추가 풀 수용량을 추가할 수 있으며, 이때, 상이한 인스턴스 유형을 지원하도록 구성된 빈 호스트 전자 디바이스(즉, 어떠한 고객의 컴퓨트 인스턴스도 현재 실행하고 있지 않은 디바이스)가 식별되고 요구되는 상이한 인스턴스 유형을 지원하도록 재구성될 수 있다. 이러한 리빌드 프로세스는 특정 시점에서 존재하지 않을 수 있는 빈 디바이스만 리빌드해야 할 필요성 때문에 시간 소모적일 수 있고, 즉시 수행되지 못할 수도 있다.
따라서, 본 명세서에 개시된 실시예는 대규모 제공자 네트워크가 상이하 인스턴스 유형들을 동시에 호스팅할 수 있는 이종 호스트 전자 디바이스를 이용할 수 있도록 할 수 있다. 일부 실시예에서, 상이한 인스턴스 크기에 대한 요구를 충족시키기 위해 완전히 빈 호스트를 찾을 필요성이 없을 수 있다. 대신, 기존 고객 인스턴스가 방해되지 않고 계속 실행될 수 있으면서, 하나의 유형의 인스턴스를 실행시키는 호스트 전자 디바이스가 상이한 유형의 또 다른 인스턴스를 지원하도록 재구성될 수 있다. 덧붙여 일부 실시예에서, 호스트 전자 디바이스 플릿 중 일부가, 가령, 예측 모델 또는 휴리스틱을 기초로, "오프라인" 방식으로 구성되어, 수요가 발생하기 전에 이용 가능한 컴퓨트 인스턴스 슬롯의 양 및 유형을 관리할 수 있다. 따라서, 컴퓨트 인스턴스의 요청된 유형에 대한 불충분한 수용량으로 인한 고객 런칭 요청의 거절 경우는 감소하면서, 호스트 전자 디바이스의 플릿의 수용량이 대체 가능해질 수 있고 수용량 사용의 효율이 증가될 수 있다. 일부 실시예에서, 이종 호스트 전자 디바이스의 이용률이 제공자 네트워크의 고객에게 완전히 보이지 않을 수 있지만, 고객은 높은 수요가 있을 때에도 더 우수한 시스템 가용성(가령, 더 적어진 불충분한 수용량 예외)을 겪을 것이다. 또한, 일부 실시예에서, 컴퓨트 인스턴스를 더 밀접하게 "패킹(packing)"하여 고객에게 동일한 양의 서비스를 제공하는 데 필요한 전자 디바이스의 수(그리고 따라서 하드웨어, 전기, 관리 등의 양)를 감소시킬 수 있음으로써, 제공자 네트워크의 호스트 전자 디바이스가 더 완전히 활용될 수 있다. 덧붙여, 호스트 전자 디바이스 상에서 복수의 유형의 컴퓨트 인스턴스를 실행함으로써, 공통 컴퓨트 인스턴스의 대형 플릿이 하나의 공통 호스트 디바이스 상에 배치될 가능성이 낮아질 것이다. 따라서, 특정 호스트 디바이스가 갖는 임의의 문제가 고객의 애플리케이션의 전체 티어에 영향을 미치지 않을 가능성이 높으며 - 티어로서 역할 하는 복수의 동종 컴퓨트 인스턴스가 하나의 공통 디바이스에 배치되는 경우 발생됐을 수 있음 - , 개선된 장애 허용 범위를 통해 고객에 대한 증가된 안정성을 더 제공할 수 있다.
도 1은 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 환경을 도시하는 다이어그램이다. 본 명세서에서 기재될 때, 실시예는 제공자 네트워크(100)에서 구현될 수 있다. 제공자 네트워크(100)는 자신의 사용자에게 다양한 유형의 컴퓨팅-관련 자원, 가령, 컴퓨트 자원(가령, 컴퓨트 인스턴스를 실행시키거나, 배치 작업(batch job)을 실행시키거나, 서버 프로비저닝 없이 코드를 실행시키는 것), 데이터/스토리지 자원(가령, 객체 스토리지, 블록-레벨 스토리지, 데이터 아카이빙 스토리지), 네트워크-관련 자원(가령, 컴퓨트 자원의 그룹을 포함하는 가상 네트워크, CDN(content delivery network), DNS(Domain Name Service)를 구성하는 것), 애플리케이션 자원(가령, 데이터베이스, 애플리케이션 빌드/배포 서비스) 등 중 하나 이상을 이용할 수 있는 능력을 제공한다. 이들 및 그 밖의 다른 컴퓨팅 자원이 컴퓨트 인스턴스, 데이터 객체를 저장할 수 있는 스토리지 가상화 서비스 등을 실행시킬 수 있는 서비스, 가령, 하드웨어 가상화 서비스(142)로서 제공될 수 있다. 제공자 네트워크(100)의 사용자(또는 "고객")가 고객 계정과 연관된 하나 이상의 사용자 계정을 이용할 수 있지만, 이들 용어는 사용 맥락에 따라 다소 상호 교환 가능하게 사용될 수 있다. 사용자(102)는 하나 이상의 인터페이스(108)를 통해, 가령, 제공자 네트워크(100)의 API 엔드포인트로의 API(application programming interface) 콜을 이용하여, 웹사이트 또는 애플리케이션으로 구현되는 콘솔의 사용으로부터 도출된 HTTP(HyperText Transfer Protocol) 메시지 등을 통해, 하나 이상의 중간 네트워크(106)(가령, 인터넷)에 걸친 전자 디바이스(104)를 이용해 제공자 네트워크(100)와 대화할 수 있다. 인터페이스(108)는 고객으로 더 가시적 또는 "직접" 제안될 수 있는 서비스를 지원하고 활성화하는 "백엔드" 서비스를 포함하는 제공자 네트워크(100)의 제어 플레인(122)의 일부이거나 이의 프론트-엔드로서 역할 할 수 있다.
이들 및 그 밖의 다른 컴퓨팅 자원 서비스를 제공하기 위해, 제공자 네트워크(100)는 종종 가상화 기법에 의존한다. 예를 들어, 가상화 기법이 사용자에게 컴퓨트 인스턴스를 제어 또는 이용하는 능력(가령, 기저 호스트 O/S 외에 더 운영되거나 운영되지 않을 수 있는 하이퍼바이저를 이용해 동작하는 게스트 운영 체제(O/S), VM 내에서 동작하거나 동작하지 않을 수 있는 컨테이너, 기저 하이퍼바이저 없이 "베어 메탈" 하드웨어 상에서 실행될 수 있는 인스턴스를 이용하는 VM)을 제공하도록 사용될 수 있으며, 이때 하나 또는 복수의 컴퓨트 인스턴스가 단일 "호스트" 전자 디바이스를 이용해 구현될 수 있다. 따라서, 사용자(102)는 다양한 컴퓨팅 작업을 수행하도록 서비스 제공자 시스템에 의해 호스팅되는 컴퓨트 인스턴스를 직접 이용하거나, (일반적으로, 사용자가 관련된 기저 컴퓨트 인스턴스(들)의 임의의 제어 또는 지식을 갖지 않고) 컴퓨트 인스턴스를 이용해 코드를 실행시키는 서비스 제공자 시스템에 의해 실행될 코드를 제출함으로써 컴퓨트 인스턴스를 간접 이용할 수 있다. 따라서 제공자 네트워크(100)는 상이한 능력을 갖는 복수의 상이한 유형을 가질 수 있는 복수의 전자 디바이스(134A-134C)를 포함한다.
도 1에서, 세 개의 전자 디바이스(134A-134C)가 도시되어 있지만, 대규모 제공자 네트워크(100)에서 복수의 지리적 위치에 위치할 수 있는 수 백, 수 천, 수 만, 또는 더 많은 개수의 전자 디바이스(134A-134C)가 존재할 수 있다. 덧붙여, 이 예시에서, 세 개의 상이한 컴퓨트 인스턴스 유형 - 소형, 중형, 및 대형이라고 지칭됨 - 이 제공되지만, 제공자 네트워크(100)에서 사용되는 상당히 더 많거나 더 적은 유형의 컴퓨트 인스턴스 유형이 존재할 수 있다.
이 예시에서, "시간 1"에서 제1 전자 디바이스(134A)가 8개의 "소형" 인스턴스 유형 슬롯(137A-137H)을 초기에 포함하는 것으로 나타나며, 여기서, 이들 슬롯 중 2개가 2개의 유형 "소형" 컴퓨트 인스턴스(136A-136B)에 의해 사용된다. 마찬가지로, 제2 전자 디바이스(134B)가 4개의 "중형" 인스턴스 유형 슬롯(139A-139D)을 초기에 포함하는 것으로 도시되며, 여기서, 이들 슬롯 중 3개가 유형 "중형" 컴퓨트 인스턴스(138A-138C)에 의해 사용된다. 마지막으로, 제3 전자 디바이스(134C)가 2개의 "대형" 인스턴스 유형 슬롯(141A-141B)을 초기에 포함하는 것으로 도시되며, 여기서, 이들 슬롯 중 하나가 유형 "대형" 컴퓨트 인스턴스(140A)에 의해 사용된다. 이 경우 각각의 전자 디바이스(134A-134C)가 시작 시에 동종 유형의 컴퓨터 인스턴스를 호스팅하는 것으로 도시되지만, 이는 요건 또는 심지어 일반적인 경우로도 해석되지 않으며 대신 이해의 편의를 위해 제공된 것이다. 그러나 일부 실시예에서 이 시나리오는 전자 디바이스(134A-134C)의 동종 플릿(즉, 각각 하나씩의 인스턴스 유형만 지원)이 한 번에 복수의 유형의 컴퓨트 인스턴스를 지원할 수 있는 이종 플릿이 되는 것으로 제 위치로 이주되는 경우일 수 있다.
일부 실시예에서, 제공자 네트워크(100)는 전자 디바이스(134A-134C) 중 일부를 재구성함으로써 자신의 가용 컴퓨트 인스턴스 수용량을 관리할 수 있다. 예를 들어, 일부 실시예에서, 제공자 네트워크(100)는 제공자 네트워크(100)의 컴퓨트 인스턴스의 이전 이용 히스토리의 분석을 기초로 어느 유형의 컴퓨트 인스턴스가 특정 시간에서 고객에 의해 희망될 수 있는지를 가리키는 모델을 구성할 수 있는 예측 서비스(120)를 포함한다. 예를 들어, 예측 서비스(120)는 시간의 흐름에 따른 이전 컴퓨트 인스턴스 이용 - 가령, 가령, 컴퓨터 인스턴스를 런칭하기 위한 요청이 수신된 때, 이들 요청에 의해 추구되는 컴퓨트 인스턴스의 유형, 컴퓨트 인스턴스가 런칭된 때, 런칭될 때의 컴퓨트 인스턴스의 유형, 컴퓨트 인스턴스가 사용된 기간 등을 기술하는 데이터를 획득할 수 있고, 미래의 수용량 수요를 예측하기 위한 통계 및/또는 머신 학습 모델을 생성할 수 있다. 예측 서비스(120)는, 동그라미 'A'에서, 특정 유형의 컴퓨트 인스턴스 중 얼마나 많은 컴퓨트 인스턴스가 (가까운) 미래에 한 번에 필요할지를 지시하는 "풀 타깃(pool target)"을 포함하는 예측 데이터(128)를 생성하도록 생성된 모델을 이용하고 이 예측 데이터(128)를 플릿 재구성 서비스(116)로 제공할 수 있다. 일부 실시예에서, 플릿 재구성 서비스(116)는 수용량의 자유 풀의 복수의 상이한 유형의 "슬롯"을 빌드, 재-할당, 및 관리한다.
일부 실시예에서, 예측 데이터(128)를 획득하기 위해, 플릿 재구성 서비스(116)는 예측 데이터(128)에 대한 요청(가령, 예측 서비스(120)와 연관된 엔드포인트로의 HTTP 요청)을 전송하고, 이는 대응하는 HTTP 응답 메시지에 담겨 예측 서비스(120)에 의해 되 전송된다. 그러나 또 다른 실시예에서, 예측 서비스(120)는 예측 데이터(128)를 플릿 재구성 서비스(116)가 액세스할 수 있는 공통-액세스 가능한 저장 위치(가령, 공유 스토리지 또는 메모리 위치, 메시지 큐) 등으로 게시(또는 저장)할 수 있다.
동그라미 'B'에서, 플릿 재구성 서비스(116)는 제공자 네트워크(100) 내 컴퓨트 인스턴스 슬롯의 현재 가용성(또는 "초과") 현재 수용량 정보를 획득할 수 있다. 예를 들어, 플릿 재구성 서비스(116)는 제공자 네트워크(100)의 또 다른 서비스, 가령, 클라우드 관리자(CM)(112), 정보 배포/게시 서비스, CM 데이터 저장소(124) 등에게 질의하거나, 공유 스토리지/메모리 위치에서 룩업(lookup)을 수행하여, 다양한 가용성 자원을 식별하는 수용량 정보(가령, 하나 이상의 컴퓨트 인스턴스 유형 각각에 대한 가용 슬롯의 카운트)를 획득할 수 있다.
예측 데이터(128) 및 현재 수용량 정보를 이용해, 플릿 재구성 서비스(116)는 둘을 비교하여, 가용 수용량(가령, 슬롯)이 예측 데이터(128)에 따른 컴퓨트 인스턴스 유형에 대한 예측 수용량보다 작은 (컴퓨트 인스턴스 유형에 대응하는) 임의의 풀을 식별할 수 있다. 임의의 식별된 컴퓨트 인스턴스 유형 가용성 결핍의 경우, 플릿 재구성 서비스(116)가 제공자 네트워크(100) 내 가용 슬롯의 재구성을 수행하여, 임의의 식별된 결핍을 제거하도록 시도할 수 있다.
예를 들어, 도 1에 도시된 예시에서, 우리는 예측 서비스(120)가, 예측 데이터(128)에서, 미래에 하나의 추가 소형 슬롯이 필요하고, 2개의 추가 중형 슬롯이 필요하며, 0개의 추가 대형 슬롯이 필요할 것임을 지시한다고 규정한다. 그러나, 다양한 실시예에서, 예측 데이터(128)가 다양한 방식으로 표현될 수 있으며, 따라서 필요할 것으로 예상되는 (이용되는 기존 슬롯을 포함하는) 슬롯의 총 개수, 필요할 것으로 예상되는 (이용되는 기존 슬롯을 제외한) 슬롯의 추가 개수 등을 가리킬 수 있다.
또한, 우리는 현재 가용성이 6개의 소형 슬롯(가령, 소형 슬롯(137C-137H))이 이용 가능하고, 하나의 중형 슬롯(가령, 중형 슬롯(139D))이 이용 가능하며, 하나의 대형 슬롯(가령, 대형 슬롯(141B))이 이용 가능하다고 지시한다고 규정한다.
이 경우, 플릿 재구성 서비스(116)는 결핍이 예상되는 하나의 컴퓨팅 인스턴스 유형의 슬롯 풀을 식별 할 수 있다 - 즉, 슬롯의 중간 컴퓨팅 인스턴스 풀은 2개의 추가 슬롯을 필요로 한다고 예상되는 반면, 하나의 그러한 슬롯만이 이용 가능하다.
일부 실시예에서, 플릿 재구성 서비스(116)는 이러한 예상된 결핍을 검출하고 슬룻 재구성 작업을 통해 이를 제거할 수 있다. 예를 들어, 플릿 재구성 서비스(116)는 기존 가용 슬롯의 분석을 수행하여, 적어도 하나의 추가 "중형" 슬롯을 제공하도록 재구성될 수 있는 하나 이상의 가용 슬롯을 식별할 수 있다.
예를 들어, 일부 실시예에서, 플릿 재구성 서비스(116)는 특정한 양의 다른 유형의 슬롯이 조합되어 중형 슬롯을 생성하거나, 및/또는 또 다른 유형의 슬롯이 중형 슬롯 - 및 중형 슬롯이거나 아닐 수 있는 그 밖의 다른 가능한 슬롯으로 분할될 수 있음을 결정할 수 있다.
예를 들어, "시간 2"에서 "옵션 1"과 관련하여 도시된 바와 같이, 플릿 재구성 서비스(116)는 - 사전 구성된 변환 규칙에 따라, 및/또는 관련된 유형의 컴퓨트 인스턴스의 필요한 자원/특성의 동적 분석에 따라 - 2개의 소형 슬롯(137G-137H)이 제거된 경우, 중형 슬롯(가령, 새 중형 슬롯(139E))이 생성될 수 있음을 결정할 수 있다. 또 다른 예를 들면, "시간 2"에서 "옵션 2"와 관련하여 도시된 바와 같이, 플릿 재구성 서비스(116)는 하나의 대형 슬롯(141B)이 제거된 경우, 선택사항으로서, 또 다른 새 중형 슬롯(139G) 또는 아마도 2개의 소형 슬롯(137I-137J)과 함께, 중형 슬롯(가령, 새 중형 슬롯(139F))이 생성될 수 있다고 결정할 수 있다. 따라서 이들 옵션 중 (적어도) 하나를 따름으로써, 예상된 결핍이 제거될 수 있는데, 가령, 새 중형 슬롯(139E)을 생성함으로써 기존 중형 슬롯(139D)과 함께, 새 중형 슬롯(139F)을 생성함으로써 기존 중형 슬롯(139D)과 함께, 또는 그 밖의 다른 방식으로 적어도 2개의 슬롯이 이용 가능해 진다.
일부 실시예에서 이들 2개의 옵션 중 단 하나만 구현될 수 있지만, 또 다른 실시예에서 아마도 그 밖의 다른 가용 슬롯 풀 목표 - 가령, 특정 양의 가용 컴퓨트 인스턴스 유형 슬롯의 임계 개수를 항상 유지, 특정 유형의 컴퓨트 인스턴스 슬롯의 최대 개수를 항상 유지 등을 충족시키기 위해 두 옵션 모두를 따를 수 있다.
재구성을 수행하기 위해, 플릿 재구성 서비스(116)는 제공자 네트워크(100)의 특정 구현을 기초로 다양한 상이한 유형의 동작을 수행할 수 있다. 예를 들어, 일부 실시예에서, 플릿 재구성 서비스(116)는 다양한 제어 메시지(130)를 (동그라미 'B1'에서, 가령, CM(112)으로) 전송하여, (가령, 업데이트 메시지(132)를 통해) 변경된 가용 슬롯 특성을 반영하도록 자원 및 슬롯 데이터(126)의 세트가 업데이트되게 할 수 있다. 선택된 하나 이상의 전자 디바이스(134A-134C)가 (동그라미 'B2'에서) 재구성됨으로써, 가령, 하나 이상의 전자 디바이스(134A-134C)의 슬롯의 이용 또는 비-이용을 검증함으로써, 플릿 재구성 서비스(116)는 또한 직접 또는 간접적으로(가령, CM(112)으로 명령어를 발행함으로써) 다양한 동작을 수행할 수 있다. 일부 실시예에 따르는 예시적 동작을 기술하는 추가 상세사항이 도 2와 관련하여 본 명세서에서 차후에 제공될 것이다.
제공자 네트워크(100)에서 동적 관리된 - 그리고 재구성된 - 컴퓨트 인스턴스 슬롯을 이용해, 추가 컴퓨트 인스턴스에 대한 추가 수요가 더 빠르고 더 용이하게 제공될 수 있다. 예를 들어, 2개의 추가 "중형" 유형 컴퓨트 인스턴스 슬롯이 필요하다고 예상된 예시를 계속 들면, 우리는 플릿 재구성 서비스(116)가 적어도 2개의 "가용" 또는 자유로운 중형 컴퓨트 인스턴스 유형 슬롯이 존재함을 도출하도록 앞서 기재된 "옵션 1" 또는 "옵션 2" 중 적어도 하나를 따랐다고 가정한다.
그 후, 런칭될 2개의 중형 컴퓨트 인스턴스를 찾는 (전자 디바이스(104)로부터의) 배치 요청(150)이 동그라미 '1'에서 제공자 네트워크(100)의 인터페이스(108)에서 수신될 수 있다. 요청 - 또는 요청이 요구하는 것을 식별하는 유사한 메시지 - 이 제어 평면(122)으로 전달될 수 있다. 예를 들어, 수용량 관리 서비스가 요청을 검사하고, 2개의 중형 컴퓨트 인스턴스가 구해짐을 검증하고, 가용 중형 컴퓨트 인스턴스의 풀에서 룩업을 수행하여, 적어도 2개의 이러한 중형 슬롯이 이용 가능한지 여부를 결정할 수 있다. 그렇지 않은 경우, 요청(150)은 거부될 수 있다(가령, 불충분한 수용량을 가리키는 대응하는 응답이 전자 디바이스(104)로 되 전송될 수 있다). 그러나 이 경우 플릿 재구성 서비스(116)의 일부에 대한 선험적 재구성(a priori reconfiguration) 때문에 적어도 2개의 자유로운 중형 컴퓨트 인스턴스 유형 슬롯이 존재하며, 따라서 요청(150)이 서비스되고 CM(112)으로 전달될 수 있다.
동그라미 '2'에서, CM(112)은 배치를 위한 배치 동작을 시작할 수 있고, 동그라미 '3'에서 2개의 중형 컴퓨트 인스턴스에 대한 배치 위치를 식별할 수 있는 배치 서비스(114)로 배치 요청을 발행할 수 있다. 예를 들어, 배치 서비스(114)는 시스템의 현재 수용량에 대한 가시성을 가져서(가령, 자원 및 슬롯 데이터(126)로 직접 또는 간접 액세스할 수 있어서), 가용 중형 슬롯을 식별하고 특정 배치 규칙 및/또는 비즈니스 로직을 적용하여, 가용 중형 슬롯 중 희망 중형 컴퓨트 인스턴스를 배치하는 슬롯을 선택할 수 있다.
각각의 선택된 배치 위치(또는 슬롯)에 대해, 배치 서비스(114)는 CM(112)으로 하나 이상의 자원 벡터를 포함하는 배치 데이터를 반환할 수 있으며, 이때, 각각이 컴퓨트 인스턴스가 배치될 호스트 전자 디바이스 내 특정 자원 세트를 식별한다. 예를 들어, 2개의 비-균일 메모리 액세스(NUMA: non-uniform memory access) 노드(가령, 동일한 연결 속도를 갖는 메모리에 의한 프로세싱 능력의 "슬라이스") - "N1" 및 "N2" - 및 2 테라바이트(TB)의 하드 디스크를 갖는 전자 디바이스를 고려할 수 있다. 이 구성으로부터, 자원 벡터의 몇 가지 단순화된 예시: <N1, 0-1 TB>, <N2, 1-2 TB>, 및 <N1, N2, 0-2TB>가 이하에서 제공된다. 또 다른 예를 들면, 자원 벡터는 NUMA 노드 식별자, 프로세싱 능력, 및 메모리를 포함할 수 있으며, 또 다른 예로서 자원 벡터가 (가령, 프로세싱 및/또는 메모리에 추가로) 컴퓨트 인스턴스 및/또는 전자 디바이스와 연관된 다수의 방화벽 규칙, 가용 대역폭의 양, 가용 네트워킹 "버스트"의 양, 가용 그래픽 처리 장치(GPU)의 식별자 및/또는 가속 디바이스(가령, 전체의 일부, 또는 어드레스 범위), 영속 스토리지의 양, 디스크 쓰기/읽기를 위한 대역폭 등을 포함할 수 있다. 자원 벡터가 다양한 상이한 유형의 포맷, 가령, JSON(JavaScript Object Notation), XML(Extensible Markup Language) 등으로 표현될 수 있다.
(일부 실시예에서 슬롯-관련 정보를 포함할 수 있는) 이 자원 벡터는 CM(112)으로 반환될 수 있으며, 이는 동그라미 '4'에서 자원 벡터(아마도 지원 정보도 함께)를 중형 컴퓨트 인스턴스의 런칭을 위한 속성의 모음의 일부로서 인스턴스 관리 서비스(118)로 전송할 수 있다.
인스턴스 관리 서비스(118)는 자원 벡터 정보(일부 실시예에서, 그 내부의 슬롯 정보와 함께)를 식별하고, 컴퓨트 인스턴스가 희망 슬롯에서 동그라미 '5'에서 런칭될 수 있게 한다.
예를 들어, 일부 실시예에서, 인스턴스 관리 서비스(118)는 호스트 전자 디바이스의 일부인 (하나 이상의 프로세서, 로컬 메모리, 물리 네트워크 인터페이스 등을 포함할 수 있는) 오프로드 카드(offload card)가 특정 희망 슬롯 위치에서 필요한 컴퓨트 인스턴스를 런칭하게 할 수 있다. 오프로드 카드는 예를 들어, 전자 디바이스의 전통적인 CPU를 이용해 실행되는 하이퍼바이저에 독립적으로 또는 하이퍼바이저와 조합되어 호스트 전자 디바이스 상에서 실행되는 가상 머신 컴퓨트 인스턴스를 관리할 수 있는 가상화 관리자(virtualization manager)를 구현할 수 있다. 예를 들어, 일부 실시예에서, 오프로드 카드에 의해 구현되는 가상화 관리자가 가상 머신을 개시 및/또는 종료할 수 있으며, 따라서 하이퍼바이저가 이들 작업을 수행할 필요성을 제거할 수 있고, 이로써, 하이퍼바이저와 자원을 경쟁할 필요가 없음으로써 가상 머신 자체의 성능이 개선될 수 있다. 대안으로, 일부 실시예에서, 인스턴스 관리 서비스(118)가 대안으로 (가령, VM 관리 서버를 통해) 하이퍼바이저와 대화하여, 컴퓨트 인스턴스가 런칭될 수 있게 할 수 있다.
플릿 재구성 서비스(116)의 일부 상에서 호스트 전자 장치의 재구성에 대한 추가 상세사항을 위해, 우리는 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리에 대한 플릿 재구성 서비스 및 CM을 포함하는 예시적 동작 및 메시징을 보여주는 다이어그램인 도 2를 다시 참조한다.
도 1과 유사하게, 예측 데이터(128) 및 수용량 정보(202)가 동그라미 '1'에서 플릿 재구성 서비스(116)에 의해 획득될 수 있고(여기서, CM(112)으로부터 획득된 것처럼 보이지만, 수용량 정보(202)의 다른 자원이 사용될 수 있음), 동그라미 '2'에서, 플릿 재구성 서비스(116)가 (도 1과 관련하여 기재된 바와 같이) "옵션 1"을 따를 것이라고 결정하는데, 이는 2개의 소형 슬롯(137G-137H)이 제거될 것이며 하나의 새 중형 슬롯(139E)이 생성될 것임을 의미한다.
이 실시예에서, 플릿 재구성 서비스(116)가 동그라미 '3A'에 의해 반영된 제1 제어 메시지(130)를 전송하여 전자 디바이스(134A)를 격리하고, 이로써 CM(112)은 동그라미 3B에서 (가령, CM 데이터 저장소(124)에서) 디바이스를 격리되는 것으로 설정하기 위한 업데이트를 (업데이트 메시지(132)를 통해) 수행할 수 있다. 일부 실시예에서, "격리된" 전자 디바이스가 컴퓨트 인스턴스 배치/런칭에 대한 슬롯을 선택할 때(가령, 배치 서비스(114)에 의해) 상기 전자 디바이스가 고려 대상에서 제거되게 하지만, 이 상태는 상기 디바이스에서 실행되는 기존 컴퓨트 인스턴스를 포함하는 동작 - 가령, 고객에 의해 개시된 작업흐름, 가령, 인스턴스의 종료, 인스턴스의 볼륨의 추가 또는 분리 등을 막지 않는다. 따라서 전자 디바이스를 격리 상태로 배치함으로써, 기존 "자유" 슬롯이 자유로 유지되어야 하며 디바이스 상의 기존 활동이 영향 받지 않고 계속될 수 있는 동안 자유 재구성 서비스(116)의 결정이 이들 슬롯의 상태 변경으로 인해 오염되지 않을 것이다.
선택사항으로, 동그라미 '4'에서, 플릿 재구성 서비스(116)가 재구성될 2개의 선택된 슬롯(137G-137H)이 엄밀히 "비어 있다" - 즉, 거기서 실행되는 기존 컴퓨트 인스턴스 실행을 갖지 않는다고 검증(204)할 수 있다. 이 체크가 일부 시스템에서 엄격히 필수는 아닐 수 있지만, 이 체크는 어떠한 기존 사용자 작업부하도 부정적으로 영향 받지 않을 것이라는 추가 세이프가드로서 빠르게 수행될 수 있다. 일부 실시예에서, 검증(204)을 수행하기 위해, 플릿 재구성 서비스(116)는 하나 이상의 명령어를 (가령, 하나 이상의 제어 메시지(130)를 통해) CM(112)으로 발행하여, 2개의 선택된 슬롯(137G-137H)이 비어 있는지 여부를 결정할 수 있다. 예를 들어, CM(112)은 각각의 슬롯의 추적된 상태를 분석 및/또는 (가령, CM 데이터 저장소(124)로부터) 컴퓨트 인스턴스 런칭 및/또는 종료의 히스토리를 분석하여, 선택된 슬롯(137G-137H)이 각각의 런칭과 매칭되는 종료를 갖는지 여부를 결정할 수 있다.
동그라미 '5A'에서, 플릿 재구성 서비스(116)는 2개의 슬롯을 등록 해제하기 위한 또 다른 제어 메시지(130)(가령, "DeregisterSlot" 메시지)를 전송하며, 이 메시지는 CM(112)이 동그라미 '5B'에서 2개의 슬롯을 제거하기 위한 업데이트를 수행하게 한다. 예를 들어, 2개의 슬롯을 제거하는 것은 2개의 슬롯에 대해 (도 3과 관련하여 본 명세서의 이하에서 기재될 바와 같이) "슬롯" 및/또는 "슬롯 정보" 데이터를 제거하는 것을 포함할 수 있다. 일부 실시예에서, 2개의 슬롯을 제거하는 것은 전자 디바이스의 총 슬롯의 개수를 조절(여기서, 감소)하는 것, 2개의 슬롯에 대응하는 가용 슬롯의 개수를 조절(여기서, "소형" 컴퓨트 인스턴스 가용성 풀을 2만큼 감소)하는 것 등을 더 포함할 수 있다.
동그라미 '6A'에서, 플릿 재구성 서비스(116)가 새 슬롯을 추가하기 위한 또 다른 제어 메시지(130)(가령, "RegisterSlot" 메시지)를 전송하며, 이 메시지는 CM(112)이 동그라미 '6B'에서 슬롯을 추가하기 위한 업데이트를 수행하게 한다. 예를 들어, 슬롯을 추가하는 것은 (도 3과 관련하여 이하에서 기재될 바와 같이) 새 슬롯에 대한 "슬롯" 및/또는 "슬롯 정보" 데이터를 추가하는 것을 포함할 수 있다. 일부 실시예에서, 슬롯의 추가는 전자 디바이스의 총 슬롯의 개수를 조절(여기서, 추가)하는 것, 슬롯에 대응하는 가용 슬롯의 개수를 조절(여기서, "중형" 컴퓨트 인스턴스 가용성 풀을 1만큼 증가)하는 것 등을 더 포함할 수 있다.
일부 실시예에서, 동그라미 '5A' 및 '5B'의 "등록 해제" 작업이, 동일한 트랜잭션의 일부로서, 동그라미 '6A' 및 '6B'의 "등록" 작업과 함께 수행될 수 있다. 예를 들어, 동그라미 '5A'에서 2개의 슬롯이 등록 해제될 것이고 하나의 새 슬롯이 등록될 것을 가리키는 단일 제어 메시지(130)가 전송되어, 하나의 트랜잭션의 일부로서, 하나 이상의 업데이트 메시지(132)가 2개의 슬롯을 제거하고, 새 슬롯을 추가하며, 선택사항으로서 디바이스 슬롯 정보를 업데이트할 수 있다.
동그라미 '7A'에서, 플릿 재구성 서비스(116)가 또 다른 제어 메시지(130)를 전송하여 디바이스를 격리 해제할 수 있으며, 이로써 동그라미 '7B'에서 CM(112)이 디바이스를 "생산(production)"으로 다시 설정함으로써 디바이스를 격리 해제하기 위한 업데이트를 수행할 수 있다. 이때, 배치 서비스(114)에 의해 전자 디바이스는 다시 새 컴퓨트 인스턴스의 배치/런칭에 대해 선택될 수 있고, 2개의 현재-제거된 슬롯이 고려 대상으로부터 제거되는 동안 "새" 슬롯이 노출된다.
일부 실시예에서 사용될 수 있는 자원 및 슬롯 데이터(126)의 예시를 위해, 우리는 일부 실시예에 따라 동적 호스트 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리의 일부로서 사용될 수 있는 예시적 데이터를 도시하는 다이어그램인 도 3을 다시 참조한다.
일부 실시예에서, CM 데이터 저장소(124)가 하나 이상의 제어 평면 개체를 통해 - 직접 또는 간접적으로 - 액세스될 수 있는 데이터베이스를 포함한다. CM 데이터 저장소(124)가 앞서 기재된 바와 같이, 자원 벡터의 모음(또는 테이블)(302), 슬롯 크기의 모음(304), "슬롯 정보"의 모음(306), 및/또는 슬롯의 모음(308) 중 하나 이상을 포함할 수 있는 자원 및 슬롯 데이터(126)를 포함할 수 있다.
자원 벡터(302)의 각각의 항목(또는 행, 레코드 등)이 본 명세서에 기재된 바와 같이 자원 벡터(RV) 식별자(ID) 및 정규화된, 인코딩된 자원 벡터를 포함할 수 있다. 마찬가지로, 슬롯 크기(304)의 각각의 항목이 슬롯 크기(SS) ID 및 슬롯의 특정 "크기" 또는 "유형"을 가리키는 정규화된 슬롯 크기 값을 포함할 수 있다.
일부 실시예에서, 자원 및 슬롯 데이터(126)는 "슬롯 정보"(306) 모음을 포함하며, 여기서 각각의 항목은 (제공자 네트워크 내 특정 호스트 전자 디바이스를 고유하게 식별하는) 전자 디바이스 식별자, 및 상기 전자 디바이스의 맥락 내에서 고유한 슬롯 번호를 포함한다. 일부 실시예에서, 각각의 항목은 특정 슬롯 크기를 식별하기 위해 선택적으로 (가령, 외래 키 관계, 단순 참조 등을 통해) 사용될 수 있는 SS ID를 더 포함할 수 있다. 일부 실시예에서, 각각의 항목은 슬롯의 특성을 기재하는 (자원 벡터(302)의) 특정 자원 벡터를 통해 식별하도록 사용될 수 있는 RV ID를 더 포함할 수 있다.
일부 실시예에서, 자원 및 슬롯 데이터(126)가 이용되는 슬롯을 계속 파악하는 "슬롯"(308) 구조를 포함하며, 이때, 각각의 항목은 필드, 가령, 호스트 전자 디바이스 식별자, 슬롯 번호 식별자, 및 하나 이상의 이용 값, 가령, 슬롯에서 컴퓨트 인스턴스에 의해 이용되는 네트워크 어드레스, 상기 슬롯 내 컴퓨트 인스턴스의 인스턴스 식별자, 및/또는 값의 그 밖의 다른 임의의 수를 포함할 수 있다.
따라서, 다양한 실시예에서, 이 자원 및 슬롯 데이터(126)가 본 명세서에 기재된 동작에 대한 유용한 정보를 결정하도록 사용될 수 있다. 예를 들어, 일부 실시예에서, 슬롯 정보(306) 항목 중 슬롯(308) 구조 내 대응하는 항목을 갖지 않는 것들을 선택함으로써 제공자 네트워크에서 가용 슬롯이 식별될 수 있다. 또 다른 예를 들면, 슬롯의 현재 이용이 슬롯(308) 구조에게 질의함으로써 결정될 수 있다. 물론, 자원 및 슬롯 데이터(126)의 그 밖의 다른 많은 사용 및 유형이 다양한 실시예에서 사용될 수 있다.
일부 실시예에 따른 동적 호스트 디바이스 인스턴스 유형 재구성을 이용한 제공자 네트워크에서의 수용량 관리를 위한 예시적 동작(400)이 도 4의 흐름도에서 도시된다. 동작(400)(또는 본 명세서에 기재된 그 밖의 다른 프로세스, 또는 변형 및/또는 이들의 조합) 중 일부 또는 전부가 실행형 명령으로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에서 수행되고 하나 이상의 프로세서 상에서 집합적으로 실행되는 코드(가령, 실행 명령, 하나 이상의 컴퓨터 프로그램, 또는 하나 이상의 애플리케이션)로서, 하드웨어에 의해, 또는 이들의 조합에 의해 구현된다. 상기 코드는 예를 들어, 하나 이상의 프로세서에 의해 실행 가능한 명령을 포함하는 컴퓨터 프로그램의 형태로 컴퓨터-판독형 저장 매체 상에 저장된다. 컴퓨터-판독형 매체는 비-일시적(non-transitory)이다. 일부 실시예에서, 동작(400) 중 하나 이상(또는 전부)가 그 밖의 다른 도면의 제어 평면 또는 플릿 재구성 서비스에 의해 수행된다.
동작(400)은, 블록(405)에서, 컴퓨트 인스턴스 풀 타깃을 획득하는 것을 포함한다. 블록(405)은 컴퓨트 인스턴스 풀 타깃을 예측 서비스로부터 예측 데이터의 일부로서 컴퓨트 인스턴스 풀 타깃을 획득하는 플릿 재구성 서비스에 의해 수행될 수 있다. 획득하는 것은 예측 데이터에 대해 요청 메시지를 전송하는 것 및 예측 데이터를 포함하는 응답 메시지를 수신하는 것, (예측 서비스에 의해 예측 데이터가 배치된) 메시지 큐로부터 예측 데이터를 판독하는 것 등을 포함할 수 있다. 일부 실시예에서, 예측 데이터는 히스토리 컴퓨트 인스턴스 이용 정보를 기초로 예측 서비스에 의해 생성되었고, 컴퓨터 인스턴스의 하나 이상의 "유형" 각각에 대해, 다가오는 시점(또는 시간 범위)에서 이용될 것으로 예상되는 유형의 컴퓨트 인스턴스의 총량(또는 추가 양)을 지시하는 컴퓨트 인스턴스 풀 타깃을 포함할 수 있다.
동작(400)은, 블록(410)에서, 현재 가용성 정보(가령, 하나 이상의 컴퓨트 인스턴스 유형에 대한 슬롯의 현재 가용성)를 획득하는 단계를 포함한다. 블록(405)은 플릿 재구성 서비스에 의해 수행될 수 있고 이용 가능한 하나 이상의 컴퓨트 인스턴스 유형의 슬롯의 현재 개수를 (가령, CM을 통해) 직접 또는 간접적으로 획득하는 것을 포함할 수 있다. 이 데이터는 CM 데이터 저장소에 의해 저장되는 자원 및 슬롯 데이터로부터 획득될 수 있다.
블록(415)에서, 동작(400)은 컴퓨트 인스턴스 풀이 균형 상태인지 여부를 결정하는 것을 포함한다. 블록(415)은 플릿 재구성 서비스에 의해 수행될 수 있고, 각각의 컴퓨트 인스턴스 유형에 대해, (현재 가용성 정보로부터의) 슬롯의 가용 개수가 (컴퓨트 인스턴스 풀 타깃에 따르는) 해당 유형의 슬롯의 예측 개수 이상인지 여부를 결정하는 것을 포함할 수 있다. 일부 실시예에서, 블록(415)은 각각의 컴퓨트 인스턴스 유형에 대해, 슬롯의 가용 개수가 해당 유형의 슬롯의 예측 개수보다 적어도 임계 양(가령, 1, 2, 5, 10 등)만큼 더 많은 슬롯을 포함하는지 여부를 결정하는 것을 포함할 수 있다.
모든 컴퓨트 인스턴스 유형이 균형 상태라고 식별된 경우, 흐름은 예(YES) 분기에 따라 계속될 수 있으며 종료되거나, 일부 시점에서, 동작(400)을 다시 시작할 수 있다. 컴퓨트 인스턴스 유형 중 하나 이상이 균형 상태가 아니라고 식별된 경우, 흐름은 블록(420)에서 아니오(NO) 분기에 따라 계속될 수 있다.
블록(420)에서, 동작(400)은 희망 슬롯을 생성하는 데 사용될 수 있는 가용 슬롯을 갖는 "후보" 전자 디바이스의 리스트를 결정하는 것을 포함한다. 일부 실시예에서, 블록(420)은 플릿 재구성 서비스가 CM(112)으로(또는 CM 데이터 저장소(124)로 직접) 가용 슬롯을 갖는 전자 디바이스의 리스트를 반환하기 위한 요청을 전송함으로써 수행된다.
블록(425)에서, 동작(400)은 (가령, 예상 수요에 따라 컴퓨트 인스턴스 풀의 "균형"을 이루기 위해) 생성되기로 희망되는 슬롯의 유형 및 추가되기로 희망되는 각각의 유형의 슬롯의 개수를 결정하는 것을 포함한다. 블록(425)은 플릿 재구성 서비스에 의해 수행될 수 있고, 블록(410)과 함께 또는 이 블록 후에, 하나의 예시로서, 슬롯 유형의 현재 가용성을 초과하는 풀 타깃으로부터 (슬롯 유형의) 희망 개수를 갖는 슬롯 유형을 식별하고, 이들 값들 간 차이를 하나의 슬롯 유형에 대한 슬롯의 희망 개수로서 결정함으로써 수행될 수 있다.
재구성되도록 이용 가능한 하나 이상의 슬롯을 갖는 하나 이상의 후보 전자 디바이스 각각에 대해, 동작의 세트가 수행될 수 있다. 이들 동작은 단일 개체(가령, 스레드, 프로세스, 또는 컴퓨트 유닛)에 의해 수행될 수 있는 것으로 도시되지만, 일부 실시예에서, 이들 동작은 복수의 개체를 이용해 병렬로 수행될 수 있다. 동작은 후보 전자 디바이스의 세트의 각각이 처리될 때까지, 또는 (가령, 블록(425)으로부터) 희망 슬롯의 모든 희망 유형 및 개수가 생성될 때까지 수행된다.
후보 전자 디바이스 중 선택된 것으로, 블록(435)에서, 전자 디바이스가 격리(isolate)된다. 블록(435)은 전자 디바이스를 격리하기 위한 요청 메시지를 수신자 서비스(가령, CM)로 전송하는 것을 포함할 수 있으며, 상기 수신자 서비스는 데이터 저장소가 상기 디바이스가 격리되며, 따라서 (격리 상태로 유지되는 동안) 이에 따라 컴퓨트 인스턴스가 런칭되거나 런칭되도록 지정되게 할 자격이 없음을 반영하도록 업데이트되게 한다. 따라서 일부 실시예에서 상기 전자 디바이스는 그 밖의 다른 요청에 대해 컴퓨트 인스턴스를 런칭하기 위한 가능한 배치 위치로서 고려되는 대상에서 제거된다. 이때, 전자 디바이스의 그 밖의 다른 기존 컴퓨트 인스턴스가 영향 없이 계속 동작할 수 있고, 연관된 고객이 이 프로세스 전체에서 이들 컴퓨트 인스턴스를 계속 사용할 수 있다.
선택사항으로서, 블록(440)에서, 동작(400)은 재구성될 슬롯의 비-이용을 검증하는 것을 포함한다. 블록(440)은 플릿 재구성 서비스에 의해 수행될 수 있고, 컴퓨트 인스턴스가 슬롯에서 실행 중인지 여부를 가리킬 슬롯에 대한 정보에 대해, VM 관리 서버, 하이퍼바이저 등에게 질의하는 것을 포함할 수 있다. 일부 실시예에서, 블록(440)은 CM에 의해 부분적으로 수행되며, 이는 각각의 슬롯의 상태를 추적하는 데이터 구조에서의 룩업을 수행하는 것, 또는 CM이 전자 디바이스로, CM이 슬롯이 이용되고 있는지 여부를 결정할 수 있게 하는 요청을 전송하는 것을 포함할 수 있다.
블록(445)에서, 동작(400)은 슬롯 중 이용 지원되지 않는 임의의 것이 존재하는지 여부를 결정하는 것을 선택적으로 포함한다. 블록(445)은 플릿 재구성 서비스에 의해 수행될 수 있고, 블록(440)의 검증을 기초로 할 수 있다. 예를 들어, 검증으로부터 반환된 결과 데이터가 임의의 컴퓨트 인스턴스가 슬롯에서 실행되는지 여부를 가리킬 수 있고, 따라서 블록(445)은 결과 데이터를 분석하여 이에 해당되는지 여부를 결정하는 것을 포함할 수 있다. 해당되는 경우, 흐름이 블록(460)으로 계속될 수 있으며, 여기서 전자 디바이스는 격리로부터 해제되고, 흐름은, 가령, 또 다른 전자 디바이스를 분석하고 블록(435)을 시작하는 등으로 되돌아 갈 수 있다.
그렇지 않은 경우, 동작(400)은 블록(447)에서 전자 디바이스의 슬롯 중 이용 가능한 임의의 것이 조합되거나 분할(또는 "재구성")되어 희망 슬롯을 생성할 수 있는지 여부를 결정하는 것으로 계속된다. 예를 들어, 제1 컴퓨트 인스턴스 유형(가령, "대형")에 대해, 블록(447)은 특정 전자 디바이스에서 (가령, 대형 슬롯으로) 집합적으로 대체될 수 있는 제2 컴퓨트 인스턴스 유형의 그룹(가령, 16개의 "초소형(extra-small)" 컴퓨트 인스턴스 슬롯, 또는 2개의 "중형" 컴퓨트 인스턴스 슬롯)을 식별하는 것을 포함할 수 있다. 또 다른 예를 들면, 제1 컴퓨트 인스턴스 유형(가령, "중형")에 대해, 블록(447)은 특정 전자 디바이스에서 제1 컴퓨트 인스턴스 유형에 대한 슬롯을 산출하도록 대체될 수 있는 제2 컴퓨트 인스턴스 유형의 그룹(가령, 2개의 "소형" 컴퓨트 인스턴스 슬롯) 및/또는 제3 인스턴스 유형(가령, 하나의 "대형" 또는 하나의 "초대형(xlarge)")을 식별하는 것을 포함할 수 있다.
일부 실시예에서, 블록(447)은 슬롯이 재구성될 수 있는지 여부 및 어떻게 재구성되는지를 결정할 때 슬롯의 특성을 고려할 수 있다. 예를 들어, 일부 실시예에서, NUMA 경계가 고려될 수 있는데, 가령, 상이한 NUMA 노드에서의 슬롯이, 일부 시나리오에서 조합되어 "대형" 슬롯을 형성할 수 있다. 따라서 일부 실시예가 NUMA 노드들 간에 걸쳐 있는 가능한 슬롯을 "생성"하도록 시도하지 않을 수 있는데, 이는 이러한 슬롯에 배치될 컴퓨트 인스턴스에 대한 성능이 감소될 수 있기 때문이다. 일부 실시예에서, 슬롯이 재구성될 수 있는 방식을 결정할 때 그 밖의 다른 컴퓨터 아키텍처 특징이 유사하게 고려될 수 있다. 예를 들어, 특정 스토리지 또는 메모리(가령, L2 캐시 및/또는 L3 캐시, 또는 이들의 섹션, 메모리 뱅크 등)가 특정 슬롯과 연관될 수 있고, 따라서 일부 시나리오에서 상이한 메모리 위치(가령, 캐시)와 연관된 2개의 슬롯이 상이한 유형의 슬롯을 산출하기 위해 조합되지 않을 수 있다. 따라서, 일부 실시예는 특정 유형의 컴퓨트 인스턴스를 지원하기 위한 최적 아키텍처를 갖는 슬롯을 생성하는 재구성 프로세스를 이용할 수 있다. 일부 실시예에서, 블록(447)에서의 결정은 NUMA 경계가 앞서 기재된 바와 같이 존중됨을 먼저 보장하고, 그 후 캐시 라인을 공유하는 프로세서를 갖는 슬롯을 찾도록 시도하는 것을 포함한다.
하나 이상의 기존 슬롯이 하나 이상의 희망 슬롯으로 대체되도록 식별될 때, 동작의 흐름은 블록(450)으로 계속되어 기존 슬롯을 등록 해제한다. 블록(450)은 플릿 재구성 서비스에 의해 수행될 수 있으며, 슬롯을 하나 이상의 이들 슬롯의 식별자를 포함하는 등록 해제하기 위한 제어 메시지를 전송하여, 하나 이상의 슬롯(및/또는 "슬롯 정보") 항목이 CM 데이터 저장소의 자원 및 슬롯 데이터에서 제거(또는 수정)되게 하는 것을 포함할 수 있다. 블록(455)에서, 동작(400)은 새 희망 슬롯을 등록하는 것을 포함한다. 블록(455)은 플릿 재구성 서비스에 의해 수행될 수 있고, 각각의 슬롯에 대한 자원 벡터를 포함할 수 있는 하나 이상의 슬롯을 등록하기 위한 제어 메시지를 전송하여, 하나 이상의 슬롯(및/또는 "슬롯 정보" 및/또는 자원 벡터) 항목이 CM 데이터 저장소의 자원 및 슬롯 데이터에 삽입되게 하는 것을 포함할 수 있다. 일부 실시예에서, 블록(450 및 455)은 단일 "트랜잭션" 동작으로서 수행될 수 있고, 따라서 이들 블록 중 하나 또는 둘 모두가 수행되거나 (일부 장애의 경우) 수행되지 않을 것이다.
이때, 선택사항으로서 흐름은 블록(447)으로 되 돌아 가서 전자 디바이스 중 그 밖의 다른 가용 슬롯이 나머지 희망 슬롯 유형을 만족시키도록 재구성될 수 있는지 여부를 결정할 수 있다. 이 구성은 특정 희망 슬롯에 대해 재구성될 수 있는 슬롯의 세트가 검출되자마자 재구성이 즉시 발생하는 그리디 알고리즘 접근법(greedy algorithmic approach) 하에서 사용될 수 있다. 그러나 또 다른 실시예에서, 블록(447)의 일부로서 하나 또는 복수의 희망 슬롯을 만족시키도록 재구성될 수 있는 모든 가능한 존재하는 슬롯을 식별하기 위한 더 완전한 분석이 수행될 수 있고, 따라서 블록(450 및 455)은 복수의 슬롯에 대해 수행될 수 있다.
특정 전자 디바이스에 대한 프로세스를 완료하면, 블록(460)에서 동작(400)은 전자 디바이스를 격리 해제하는 것을 포함한다. 블록(460)은 플릿 재구성 서비스에 의해 수행될 수 있으며, 전자 디바이스를 격리 해제하기 위한 요청 메시지를 수신자 서비스(가령, CM)으로 전송하여, 디바이스가 더는 격리되지 않고(가령, "생산" 상태로 복귀) 따라서 다시 컴퓨트 인스턴스가 런칭되게 할 수 있도록 선택될 자격이 있음을 반영하도록 데이터 저장소가 업데이트되게 한다. 그 후 흐름은 되돌아 가며 추가 슬롯이 생성되기가 희망되고 추가 후보 전자 디바이스가 존재하는 경우, 또 다른 후보 전자 디바이스가 선택될 수 있고 블록(435-460)이 다시 수행될 수 있다.
도 4의 이들 동작(400)은, 물론, 상이한 환경에서 상이한 방식으로 수행될 수 있고, 더 많거나, 더 적거나, 및/또는 상이한 동작을 포함할 수 있다. 예를 들어, 도 5는 일부 실시예에 따라 동적 호스트 디바이스 유형 재구성을 통해 제공자 네트워크에서 효율적인 수용량 관리를 수행하기 위해 적어도 부분적으로 병렬로 작업하는 복수의 작업자(500A-500B)를 도시하는 조합된 흐름 및 시퀀스 도이다. 이들 동작 중 일부는 유사한 도면 부호를 통해 지시되는 바와 같이 도 4의 동작과 적어도 개념적으로(기술적이지는 않아도) 유사하지만, 이러한 동작은 상이한 시간에서, 상이한 개체에 의해, 그 밖의 다른 방식으로, 수행될 수 있다.
이 예시에서, 플릿 재구성 서비스(116)는 복수의 개체 - 여기서, 하나의 마스터(502) 및 2개의 작업자(500A-500B)를 이용한다. 이들 개체 각각은 개별 애플리케이션, 스레드, 프로세스, 함수, 컴퓨트 인스턴스 등일 수 있고 일부 또는 모든 개체가 공통 또는 상이한 전자 디바이스에 의해 동일하거나 상이한 위치, 데이터 센터 등에서 실행될 수 있다. 이 경우, 2개의 작업자(500A-500B)가 사용되는 것으로 도시되지만, 다른 실시예에서 더 많거나 더 적은 작업자가 사용될 수 있다. 마찬가지로, 이 실시예에서, 작업자(500A-500B)와 별개인 마스터(502) 개체가 사용되는 것으로 도시되지만, 일부 실시예에서, 작업자들 중 하나(가령, 작업자(500A))가 또한 마스터(502) 역할도 할 수 있다.
도 5에 도시된 바와 같이, 플릿 재구성 서비스(116)의 마스터(502)(가령, 제어 서버/애플리케이션)가, 블록(425)에서, 어느 유형의 슬롯이 희망되는지, 그리고 희망되는 각각의 유형의 슬롯의 개수를 결정할 수 있다. 예를 들어, 마스터(502)는 컴퓨트 인스턴스 풀 타깃 정보 및/또는 현재 가용성 정보를 획득하고 본 명세서에 기재된 바와 같이 이 둘을 비교하여 차이를 식별할 수 있다. 마스터(502)는 메시지(550)(또는 명령/명령어)의 세트를 하나 이상의 작업자 - 이 경우, 작업자(500A 및 500B)에게 전송하지만, 더 많거나 더 적은 작업자가 사용될 수 있고 일부 실시예에서, 마스터(502) 자체가 작업자 중 하나(500A) 역할을 할 수 있다.
메시지(550)의 수신 후, 제1 작업자(500A) 및 제2 작업자(500B) 각각이, 가능한 슬롯 유형 및 이들 유형의 슬롯의 개수를 식별하기 위한 동작의 세트를 시작할 수 있으며, 이러한 동작의 세트는 연관된 전자 디바이스(또는 "호스트")가 재구성을 통해 제공할 수 있다. 이들 동작은 작업자들 간에 병렬로 전체적으로 또는 부분적으로 수행될 수 있다. 예를 들어, 각각의 작업자가 전자 디바이스의 지정 세트, 가령, 하나 이상의 지정 랙의 디바이스, 하나 이상의 데이터 센터의 디바이스, 하나 이상의 유형의 디바이스 등과 연관될 수 있다(또는 "통제할 수 있다"). 따라서 각각의 작업자는, 전자 디바이스를 격리하기 위한 요청 메시지를 전송하여, 디바이스가 격리되고 따라서 새 컴퓨트 인스턴스가 그 곳에서 런칭되거나 런칭되도록 지정되게 할 자격이 없음을 반영하도록 데이터 저장소 또는 데이터 구조가 업데이트되게 하는 것을 포함할 수 있는 블록(435A-435B)에서 전자 디바이스의 연관된 세트를 격리할 수 있다.
하나 이상의 전자 디바이스를 격리하면, 각각의 작업자는 블록(410A-410B)에서 디바이스의 이들 연관된 세트에 대한 현재 가용성 정보(가령, 가용 슬롯의 개수 및 유형)를 획득할 수 있고, 블록(504A-504B)에서 전자 디바이스의 연관된 세트의 가용 슬롯의 가능한 재구성을 결정할 수 있다. 예를 들어, 작업자는 가용 슬롯 중 어느 것이 나머지 슬롯과 통합되어 "대형" 슬롯 유형에 대해 "대형" 슬롯을 형성할 수 있는지 및/또는 가용 슬롯 중 어느 것이 "소형" 슬롯 유형에 대해 "소형" 슬롯을 형성하기 위해 분할될 수 있는지를 결정할 수 있다. 예를 들어, 4개의 자유 "중형" 슬롯을 식별하면, 작업자는 4개의 자유 "중형" 슬롯이 하나의 "초대형" 슬롯, 또는 2개의 "대형" 슬롯, 또는 1개의 "대형" 슬롯과 8개의 "소형" 슬롯 등으로 통합될 수 있다고 결정할 수 있다. 특히, 일부 실시예에서, 이 완전 결정(exhaustive determination)이 극히 짧은 시간 내에 가용 슬롯으로 가능한 모든 가능한 재구성을 식별할 수 있다. 일부 실시예에서, 결정은 앞서 기재된 바와 같이 슬롯 유형 및 슬롯의 기본 컴퓨트 아키텍처의 특정 특성을 고려할 수 있어서, 가령, 새로 생성된 슬롯이 NUMA 경계에 걸쳐 있지 않음을 보장 및/또는 새로 생성된 슬롯이 동일한 또는 유사한 컴퓨터 아키텍처 지원(가령, 메모리) 등을 이용함을 보장할 수 있다.
그 후 작업자는 메시지(552)를 통해 가능한 재구성 데이터를 마스터(502)로 전송할 수 있고, 상기 마스터(502)는 슬롯 유형의 희망 양 및 이의 개수를 충족하기 위해 모든 작업자에 의해 통제되는 모든 전자 디바이스에 걸쳐 어느 슬롯 또는 슬롯들이 구성되어야 하는지를 결정할 수 있다. 마스터는 수신된 가능한 재구성 데이터에 추가로 다양한 유형의 정보 중 임의의 것을 이용해 이 결정을 내릴 수 있다. 예를 들어, 마스터(502)는 특정 유형의 슬롯을 다양한 위치(가령, 랙, 네트워크, 데이터 센터, 지리적 영역)에 분산시키고, (가령, 특정 위치에서의 특정 슬롯에 대한 예측된 수요로 인해) 다양한 위치의 특정 유형의 슬롯을 통합 등을 하기를 원할 수 있다.
따라서 마스터(502)는 재구성 할당 메시지(554)를 작업자(500A-500B)에게 전송하여, 작업자에게 재구성을 수행할 방식에 대해 명령할 수 있다. 예를 들어, 제1 작업자(500A)에게 전송된 재구성 할당 메시지(554)가 작업자(500A)가 2개의 상이한 전자 호스트 디바이스 상에서 슬롯을 재구성할 것을 지시할 수 있고, 작업자(500A)는, 이에 따라 각각의 디바이스에 대해, 임의의 필요한 슬롯을 등록 해제하며, 새 슬롯을 등록함으로써(하나의 동작 또는 2개의 동작 중 일부일 수 있는 블록(450A/455A)에서), 이들 슬롯을 대체하고, 블록(510A)에서 연관된 전자 디바이스의 "제1" 세트를 격리 해제할 수 있다. 마찬가지로, 타 작업자 - 가령, 작업자(500B) - 는 자신 고유의 "제2" 세트의 연관된 전자 디바이스로 유사한 동작을 수행할 수 있으며, 이 동작은 전체적으로 또는 부분적으로 타 작업자의 재구성과 병렬로 수행될 수 있다.
또 다른 동작 세트가, 일부 실시예에 따르는 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 동작(600)을 도시하는 흐름도인, 도 6에 도시되어 있다. 일부 실시예에서, 동작(600) 중 하나 이상(또는 전부)가 다른 도면의 제어 평면에 의해 수행된다.
특히, 블록(605/610/615)이 다른 도면의 플릿 재구성 서비스에 의해 수행될 수 있고, 동작의 동적 재할당 단계(650)의 일부로서 수행될 수 있다. 동작의 동적 재할당 단계(650)가 "오프라인" 방식으로 발생할 수 있고 따라서 컴퓨트 인스턴스를 런칭하기 위한 임의의 특정 요청에 응답하여 직접 발생하지 않을 수 있다.
동작(600)은, 블록(605)에서, 제공자 네트워크 내 제1 컴퓨트 인스턴스 유형에 대한 가용 슬롯의 개수가 제1 컴퓨트 인스턴스 유형에 대한 필요 슬롯의 개수 미만임을 결정하는 것을 포함한다. 각각의 슬롯은 호스트 전자 디바이스에 의해 제공될 수 있는 컴퓨팅 자원의 조합일 수 있다.
동작(600)은, 블록(610)에서, 제2 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해, 전자 디바이스의 제1 하나 이상의 슬롯을 등록 해제하는 것을 포함한다. 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 대응하는 하나 이상의 컴퓨트 인스턴스가 실행되는 하나 이상의 그 밖의 다른 슬롯을 더 포함한다. 일부 실시예에서, 제1 하나 이상의 슬롯을 등록 해제하는 것은 전자 디바이스의 식별자 및 제1 하나 이상의 슬롯 중 하나의 슬롯의 식별자를 포함하는 슬롯 등록 해제 메시지를 전송하는 것을 포함한다.
동작(600)은, 블록(615)에서, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해, 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 것을 포함한다. 일부 실시예에서, 제1 하나 이상의 슬롯은 복수의 슬롯을 포함하고, 제2 하나 이상의 슬롯은 하나의 슬롯을 포함하지만, 또 다른 실시예에서, 제1 하나 이상의 슬롯은 하나의 슬롯을 포함하고, 제2 하나 이상의 슬롯은 복수의 슬롯을 포함한다. 일부 실시예에서, 제2 하나 이상의 슬롯을 등록하는 것은 전자 디바이스의 식별자 및 상기 하나 이상의 슬롯 중 하나의 슬롯의 하나 이상의 특성을 기술하는 자원 벡터를 포함하는 슬롯 등록 요청 메시지를 전송하는 것을 포함한다. 일부 실시예에서, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 것은 제2 하나 이상의 슬롯 중 제1 슬롯에 대한 슬롯 정보 데이터 구조에 레코드를 삽입하는 것을 포함하며, 상기 레코드는 전자 디바이스의 식별자, 전자 디바이스의 맥락 내에서 고유한 슬롯 번호의 식별자, 및 자원 벡터의 식별자를 포함하고, 자원 벡터는 제1 슬롯의 하나 이상의 특성을 기술한다.
일부 실시예에서, 블록(610 및 615)은 원자적으로 수행되는 단일 트랜잭션 동작으로 조합된다.
일부 실시예에서, 동작(600)은, 블록(610)에서 제1 하나 이상의 슬롯을 등록 해제하기 전에, 전자 디바이스를 격리 상태로 두는 것을 더 포함한다. 격리 상태 동안, 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하지만, 추가 컴퓨트 인스턴스가 여기에 배치되게 할 수 없다. 또한, 블록(615)에서 제2 하나 이상의 슬롯을 등록한 후, 동작(600)은 전자 디바이스를 격리 상태로부터 해제하는 것을 더 포함한다.
일부 실시예에서, 전자 디바이스를 격리 상태로 배치한 후, 동작(600)은 제1 하나 이상의 슬롯이 임의의 컴퓨트 인스턴스를 실행하는 중이 아님을 검증하는 것을 더 포함한다. 일부 실시예에서, 전자 디바이스를 격리 상태로 둔 후 전자 디바이스를 격리 상태로부터 해제하기 전, 동작(600)은 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스 중 적어도 하나를 포함하는 동작을 수행하기 위한 요청을 수신하는 것, 및 상기 동작을 수행하는 것을 더 포함한다. 동작은, 예를 들어, 하나 이상의 컴퓨트 인스턴스 중 적어도 하나를 종료하는 것, 하나 이상의 컴퓨트 인스턴스 중 적어도 하나로 볼륨을 연결(attach) 또는 분리(detach)하는 것 등을 포함할 수 있다.
동작(600)은 블록(615)에서 등록된 "새" 제2 하나 이상의 슬롯을 이용할 수 있는 블록(620/625)을 포함하는 제2 배치 단계(655)를 더 포함할 수 있다. 이 제2 배치 단계(655)는 "인라인"일 수 있고 따라서 컴퓨트 인스턴스를 런칭하기 위한 요청을 포함할 수 있다.
동작(600)은, 블록(620)에서, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 런칭하기 위한 요청을 수신하는 것을 포함한다. 블록(620)은, 예를 들어, 제공자 네트워크의 인터페이스에 의해, 제공자 네트워크의 제어 평면에 의해, 제공자 네트워크의 CM 등에 의해, 수행될 수 있다.
일부 실시예에서, 동작(600)은 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대한 슬롯을 선택하기 위한 요청을 배치 서비스로 전송하는 것, 배치 서비스로부터 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에 대응하며 제2 하나 이상의 슬롯 중 상기 하나의 슬롯에 하나 이상의 특성을 기술하는 자원 벡터를 포함하는 응답을 수신하는 것, 및 자원 벡터를 기초로 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯을 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대한 배치 위치로서 식별하는 것을 더 포함한다.
동작(600)은, 블록(625)에서, 전자 디바이스가 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하면서, 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에서 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 실행하는 것을 더 포함한다. 블록(620)은, 예를 들어, 제공자 네트워크의 제어 평면에 의해, 제공자 네트워크의 인스턴스 관리 서비스 등에 의해, 메시지/명령어를 통해 수행되어, 컴퓨트 인스턴스가 실행되게 할 수 있다.
더 상세히는, 도 7이 일부 실시예에 따르는 예시적 제공자 네트워크 환경을 도시한다. 제공자 네트워크(700)는 고객이 하나 이상의 데이터 센터 내 제공자 네트워크 내에서 디바이스 상에서 구현되는 가상화된 자원, 비제한적 예를 들면, 계산 및 스토리지 자원의 인스턴스(712)를 구매, 대여, 또는 그 밖의 다른 방식으로 획득할 수 있게 하는 하나 이상의 가상화 서비스(710)를 통해 자원 가상화를 고객에게 제공할 수 있다. 로컬 인터넷 프로토콜(IP) 어드레스(716)가 자원 인스턴스(712)와 연관될 수 있으며, 로컬 IP 어드레스는 제공자 네트워크(700) 상의 자원 인스턴스(712)의 내부 네트워크 어드레스이다. 일부 실시예에서, 제공자 네트워크(700)는 또한 고객이 제공자(700)로부터 획득할 수 있는 공개 IP 어드레스(714) 및/또는 공개 IP 어드레스 범위(가령, IPv4(Internet Protocol version 4) 또는 IPv6(Internet Protocol version 6) 어드레스)를 더 제공할 수 있다.
종래 방식으로, 제공자 네트워크(700)가, 가상화 서비스(710)를 통해, 서비스 제공자의 고객(가령, 클라이언트 네트워크(750A)를 운영하는 고객)이 고객에게 할당 또는 배정된 적어도 일부 공개 IP 어드레스(714)를 고객에게 할당된 특정 자원 인스턴스(712)와 동적으로 연관시킬 수 있게 할 수 있다. 제공자 네트워크(700)는 또한 고객이 고객에게 할당된 하나의 가상화된 컴퓨팅 자원 인스턴스(712)에 이전에 매핑된 공개 IP 어드레스(714)를 고객에게 역시 할당된 또 다른 가상화된 컴퓨팅 자원 인스턴스(712)로 리매핑(remap)하는 것을 가능하게 할 수 있다. 서비스 제공자에 의해 제공된 가상화된 컴퓨팅 자원 인스턴스(712) 및 공개 IP 어드레스(714)를 이용해, 서비스 제공자의 고객, 가령, 고객 네트워크(750A)의 운영자가, 예를 들어, 고객-특정적 애플리케이션을 구현하고 고객의 애플리케이션을 중간 네트워크(intermediate network)(740), 가령, 인터넷으로 제공할 수 있다. 그런 다음 중간 네트워크(740) 상의 또 다른 네트워크 개체(720)는 고객 네트워크(750A)에 의해 게시된 도착지 공개 IP 어드레스(714)로 트래픽을 생성할 수 있고, 트래픽이 서비스 제공자 데이터 센터로 라우팅되며, 데이터 센터에서 네트워크 섭스트레이트(network substrate)를 통해, 도착지 공개 IP 어드레스(714)로 현재 매핑된 가상화된 컴퓨팅 자원 인스턴스(712)의 로컬 IP 어드레스(716)로 라우팅된다. 유사하게, 가상화된 컴퓨팅 자원 인스턴스(712)로부터의 응답 트래픽이 네트워크 섭스트레이트를 통해 다시 중간 네트워크(740)로 그리고 출발지 개체(720)로 라우팅될 수 있다.
본 명세서에서 사용될 때, 로컬 IP 어드레스는 제공자 네트워크 내 자원 인스턴스의 내부 네트워크 어드레스를 지칭한다. 로컬 IP 어드레스는 제공자 네트워크 내에서만 변이될 수 있다. 제공자 네트워크 외부에서 기원하는 네트워크 트래픽은 로컬 IP 어드레스로 직접 라우팅되지 않고, 대신, 트래픽은 자원 인스턴스의 로컬 IP 어드레스로 매핑되는 공개 IP 어드레스를 이용한다. 제공자 네트워크는 공개 IP 어드레스를 로컬 IP 어드레스로 그리고 그 반대로의 매핑을 수행하기 위해 NAT(network address translation) 또는 유사한 기능을 제공하는 네트워킹 디바이스 또는 기기를 포함할 수 있다.
공개 IP 어드레스는 서비스 제공자 또는 고객에 의해 자원 인스턴스에 할당된 인터넷 변이 가능한 네트워크 어드레스이다. 공개 IP 어드레스로 라우팅되는 트래픽이, 예를 들어, 1:1 NAT를 통해 변환되고, 자원 인스턴스의 각자의 로컬 IP 어드레스로 전달된다.
일부 공개 IP 어드레스는 제공자 네트워크 인프라구조에 의해 특정 자원 인스턴스로 할당될 수 있으며, 이들 공개 IP 어드레스는 표준 공개 IP 어드레스, 또는 단순히 표준 IP 어드레스라고 지칭될 수 있다. 일부 실시예에서, 표준 IP 어드레스의 자원 인스턴스의 로컬 IP 어드레스로의 매핑이 모든 자원 인스턴스 유형에 대해 디폴트 런칭 구성이다.
적어도 일부 공개 IP 어드레스가 제공자 네트워크(700)의 고객에게 할당되거나 고객에 의해 획득될 수 있으며, 그런 다음 고객은 자신의 할당된 공개 IP 어드레스를 고객에게 할당된 특정 자원 인스턴스로 할당할 수 있다. 이들 공개 IP 어드레스는 고객 공개 IP 어드레스라고 지칭되거나, 단순히 고객 IP 어드레스라고 지칭될 수 있다. 표준 IP 어드레스의 경우에서처럼 제공자 네트워크(700)에 의해 자원 인스턴스로 할당되는 대신, 고객 IP 어드레스가 고객에 의해, 가령, 서비스 제공자에 의해 제공된 API를 통해 자원 인스턴스로 할당될 수 있다. 표준 IP 어드레스와 다르게, 고객 IP 어드레스는 고객 계정으로 할당되고 필요에 따라 또는 희망에 따라 각자의 고객에 의해 또 다른 자원 인스턴스로 리매핑될 수 있다. 고객 IP 어드레스는 특정 자원 인스턴스가 아니라 고객의 계정과 연관되고, 고객은 고객이 이를 해제하기를 선택할 때까지 상기 IP 어드레스를 제어한다. 종래의 정적 IP 어드레스와 다르게, 고객의 공개 IP 어드레스를 고객의 계정과 연관된 임의의 자원 인스턴스로 리매핑함으로써, 고객 IP 어드레스는 고객이 자원 인스턴스 또는 가용성 구역 장애를 마스킹하게 할 수 있다. 고객 IP 어드레스는, 예를 들어, 고객이 고객 IP 주소를 재배치 자원 인스턴스로 리매핑함으로써 고객의 자원 인스턴스 또는 소프트웨어의 문제를 해결할 수 있게 한다.
도 8은 일부 실시예에 따르는 저장 가상화 서비스 및 하드웨어 가상화 서비스를 고객에게 제공하는 예시적 제공자 네트워크의 블록도이다. 하드웨어 가상화 서비스(820)는 복수의 계산 자원(824)(가령, VM)을 고객에게 제공한다. 계산 자원(824)은 예를 들어 제공자 네트워크(800)의 고객에게(가령, 고객 네트워크(850)를 구현하는 고객에게) 대여될 수 있다. 각각의 계산 자원(824)에는 하나 이상의 로컬 IP 어드레스가 제공될 수 있다. 제공자 네트워크(800)는 계산 자원(824)의 로컬 IP 어드레스로부터 공개 인터넷 도착지로, 그리고 공개 인터넷 출발지로부터 계산 자원(824)의 로컬 IP 어드레스로 패킷을 라우팅하도록 구성될 수 있다.
제공자 네트워크(800)는 예를 들어 로컬 네트워크(856)를 통해 중간 네트워크(840)로 연결된 고객 네트워크(850)에게 중간 네트워크(840) 및 제공자 네트워크(800)로 연결된 하드웨어 가상화 서비스(820)를 통해 가상 컴퓨팅 시스템(892)을 구현하기 위한 능력을 제공할 수 있다. 일부 실시예에서, 하드웨어 가상화 서비스(820)는 고객 네트워크(850)가 가령, 콘솔(894)(가령, 웹-기반 애플리케이션, 자립형 애플리케이션, 모바일 애플리케이션 등)을 통해 하드웨어 가상화 서비스(820)에 의해 제공되는 기능을 액세스할 때 이용하는 하나 이상의 API(802), 가령, 웹 서비스 인터페이스를 제공할 수 있다. 일부 실시예에서, 제공자 네트워크(800)에서, 각각의 가상 컴퓨팅 시스템(892)은 고객 네트워크(850)에서, 고객 네트워크(850)로 대여되거나 그 밖의 다른 방식으로 제공되는 계산 자원(824)에 대응할 수 있다.
가상 컴퓨팅 시스템(892) 및/또는 또 다른 고객 디바이스(890)의 인스턴스로부터 (가령, 콘솔(894)을 통해) 고객은 스토리지 가상화 서비스(810)의 기능을, 가령, 하나 이상의 API(802)를 통해, 액세스하여, 제공자 네트워크(800)에 의해 제공되는 가상 데이터 저장소(816)로부터 데이터를 액세스 및 여기로 데이터를 저장할 수 있다. 일부 실시예에서, 가상화된 데이터 저장소 게이트웨이(도시되지 않음)가 고객 네트워크(850)에서 제공되어, 적어도 일부 데이터, 가령, 빈번하게 액세스되거나 핵심적인 데이터를 로컬하게 캐싱할 수 있고, 가상화된 데이터 저장 서비스(810)와 하나 이상의 통신 채널을 통해 통신하여 로컬 캐시로부터 새 또는 수정된 데이터를 업로드할 수 있음으로써, 데이터의 주 저장소(가상화된 데이터 저장소(816))가 유지될 수 있다. 일부 실시예에서, 사용자는 가상 컴퓨팅 시스템(892) 및/또는 또 다른 고객 디바이스(890)를 통해, 로컬 가상화된 스토리지(898)로서 사용자에게 나타나는 가상 데이터 저장소(816) 볼륨을 장착 및 액세스할 수 있다.
도 8에 도시되지 않지만, 가상화 서비스(들)가 또한 API(802)를 통해 제공자 네트워크(800) 내 자원 인스턴스로부터 액세스될 수 있다. 예를 들어, 고객, 기기 서비스 제공자, 또는 그 밖의 다른 개체가 API(802)를 통해 제공자 네트워크(800) 상의 각자의 가상 네트워크 내로부터 가상화 서비스를 액세스하여, 상기 가상 네트워크 또는 또 다른 가상 네트워크 내 하나 이상의 자원 인스턴스의 할당을 요청할 수 있다.
예시적 시스템
일부 실시예에서, 본 명세서에 기재된 바와 같이, 동적 호스트 디바이스 인스턴스 유형 재구성을 이용하는 제공자 네트워크에서의 수용량 관리를 위한 기법 중 일부 또는 전체를 구현하는 시스템이 하나 이상의 컴퓨터-액세스 가능한 매체, 가령, 도 9에 도시된 컴퓨터 시스템(900)을 포함하거나 이를 액세스하도록 구성된 범용 컴퓨터 시스템을 포함할 수 있다. 도시된 실시예에서, 컴퓨터 시스템(900)은 입/출력(I/O) 인터페이스(930)를 통해 시스템 메모리(920)에 연결된 하나 이상의 프로세서(910)를 포함한다. 컴퓨터 시스템(900)은 I/O 인터페이스(930)에 연결된 네트워크 인터페이스(940)를 더 포함한다. 도 9는 컴퓨터 시스템(900)을 단일 컴퓨팅 디바이스로서 도시하지만, 다양한 실시예에서, 컴퓨터 시스템(900)은 하나의 컴퓨팅 디바이스 또는 단일 컴퓨터 시스템(900)으로서 함께 동작하도록 구성된 임의의 개수의 컴퓨팅 디바이스를 포함할 수 있다.
다양한 실시예에서, 컴퓨터 시스템(900)은 하나의 프로세서(910)를 포함하는 유니프로세서 시스템, 또는 복수의(가령, 2, 4, 8, 또는 또 다른 적합한 개수의) 프로세서(910)를 포함하는 멀티프로세서 시스템일 수 있다. 프로세서(910)는 명령을 실행할 수 있는 임의의 적합한 프로세서일 수 있다. 예를 들어, 다양한 실시예에서, 프로세서(910)는 다양한 ISA(instruction set architecture) 중 임의의 것, 가령, x86, ARM, PowerPC, SPARC, 또는 MIPS ISAs, 또는 임의의 다른 적합한 ISA을 구현하는 범용 또는 임베디드 프로세서일 수 있다. 멀티프로세서 시스템에서, 각각의 프로세서(910)는 동일한 ISA를 공통으로, 그러나 필수는 아니도록, 구현할 수 있다.
시스템 메모리(920)는 프로세서(들)(910)에 의해 액세스 가능한 명령 및 데이터를 저장할 수 있다. 다양한 실시예에서, 시스템 메모리(920)는 RAM(random-access memory), SRAM(static RAM), SDRAM(synchronous dynamic RAM), 비휘발성/플래시-유형 메모리, 또는 그 밖의 다른 임의의 유형의 메모리를 이용해 구현될 수 있다. 도시된 실시예에서, 제공자 네트워크 환경에서 가상 네트워크를 리사이징하기 위해 앞서 기재된 방법, 기법 및 데이터와 같은 하나 이상의 희망 기능을 구현하는 프로그램 명령 및 데이터가 코드(925) 및 데이터(926)로서 시스템 메모리(920) 내에 저장되는 것으로 도시되어 있다.
하나의 실시예에서, I/O 인터페이스(930)는 프로세서(910), 시스템 메모리(920), 및 디바이스 내 임의의 주변 디바이스, 가령, 네트워크 인터페이스(940) 또는 그 밖의 다른 주변 인터페이스 간에 I/O 트래픽을 조화시키도록 구성될 수 있다. 일부 실시예에서, I/O 인터페이스(930)는 하나의 컴포넌트(예를 들어, 시스템 메모리(920))로부터의 데이터 신호를 다른 컴포넌트(가령, 프로세서(910))에 의해 사용되기에 적합한 포맷으로 변환하기 위한 임의의 필수 프로토콜, 타이밍, 또는 그 밖의 다른 데이터 변환을 수행할 수 있다. 일부 실시예에서, I/O 인터페이스(930)는 예를 들어 PCI(Peripheral Component Interconnect) 버스 표준 또는 USB(Universal Serial Bus) 표준의 변형과 같은 다양한 유형의 주변 장치 버스를 통해 연결된 디바이스에 대한 지원을 포함할 수 있다. 일부 실시예에서, I/O 인터페이스(930)의 기능은 예를 들어 노스 브릿지 및 사우스 브릿지와 같은 둘 이상의 개별 컴포넌트로 분할될 수 있다. 또한, 일부 실시예에서, I/O 인터페이스(930), 가령, 시스템 메모리(920)에 대한 인터페이스의 기능의 일부 또는 전부가 프로세서(910)에 직접 포함될 수 있다.
하나의 예를 들면, 일부 실시예에서 컴퓨터 시스템(900)은 컴퓨팅 인스턴스를 호스팅하는 호스트 전자 디바이스일 수 있고, 본 명세서에 기재된 바와 같이 I/O 인터페이스(930)를 이용해 연결되는 하나 이상의 오프로드 카드(970)(하나 이상의 프로세서(975)를 포함하고, 가능하면 하나 이상의 네트워크 인터페이스(940)를 포함함)를 포함 할 수 있다. 일부 실시예에서, 하나 이상의 오프로드 카드(970)는 예를 들어, 컴퓨터 시스템(900)의 전통적인 프로세서(910A-910N)를 이용해 실행되는 하이퍼바이저와 독립적으로 또는 하이퍼바이저와 조합하여, 호스트 전자 디바이스 상에서 실행되는 가상 머신 컴퓨트 인스턴스를 관리할 수 있는 가상화 관리자를 실행시킬 수 있다.
네트워크 인터페이스(940)는 컴퓨터 시스템(900)과 네트워크 또는 네트워크들(950)에 부착된 다른 디바이스(960), 가령, 도 1에 도시된 다른 컴퓨터 시스템 또는 디바이스 간에 데이터가 교환되게 하도록 구성될 수 있다. 다양한 실시예에서, 네트워크 인터페이스(940)는 예를 들어 임의의 적합한 유선 또는 무선 일반적인 데이터 네트워크, 가령, 이더넷 네트워크의 유형을 통한 통신을 지원할 수 있다. 또한, 네트워크 인터페이스(940)는 원격통신/전화 네트워크, 가령, 아날로그 음성 네트워크 또는 디지털 광섬유 통신 네트워크를 통한 통신, SAN(storage area network), 가령, 광섬유 채널 SAN을 통한 통신, 또는 I/O 임의의 그 밖의 다른 적합한 유형의 네트워크 및/또는 프로토콜을 통한 통신을 지원할 수 있다.
일부 실시예에서, 시스템 메모리(920)는 제공자 네트워크 환경에서 고객에 의해 호스팅되는 엔드포인트를 제공하기 위해 도 1에 대해 앞서 기재된 바와 같이 프로그램 명령 및 데이터를 저장하도록 구성된 컴퓨터 액세스 가능 매체의 하나의 실시예일 수 있다. 그러나, 또 다른 실시예에서, 프로그램 명령 및/또는 데이터는 상이한 유형의 컴퓨터 액세스 가능 매체에서 수신, 전송, 또는 저장될 수 있다. 일반적으로 말하면, 컴퓨터 액세스 가능한 매체는 I/O 인터페이스(930)를 통해 컴퓨터 시스템(900)에 연결된 비-일시적 저장 매체 또는 메모리 매체, 가령, 자기 또는 광학 매체, 가령, 디스크 또는 DVD/CD를 포함할 수 있다. 비-일시적 컴퓨터 액세스 가능 저장 매체는 또한, 컴퓨터 시스템(900)의 일부 실시예에 시스템 메모리(920) 또는 또 다른 유형의 메모리로서 포함될 수 있는 임의의 휘발성 또는 비-휘발성 매체, 가령, RAM(예를 들어, SDRAM, DDR(double data rate) SDRAM, SRAM 등), ROM(read only memory) 등을 포함할 수 있다. 또한, 컴퓨터 액세스 가능 매체는 통신 매체, 가령, 네트워크 및/또는 무선 링크를 통해 전달되는, 가령, 네트워크 인터페이스(940)를 통해 구현될 수 있는 전송 매체 또는 신호, 가령, 전기, 전자파, 또는 디지털 신호를 포함할 수 있다.
다양한 실시예는 컴퓨터 액세스 가능 매체 상에서 상기 기재에 따라 구현되는 명령 및/또는 데이터를 수신, 전송, 또는 저장하는 것을 더 포함할 수 있다. 일반적으로 말하면, 컴퓨터 액세스 가능 매체는 저장 매체 또는 메모리 매체, 가령, 자기 또는 광학 매체, 가령, 디스크 또는 DVD/CD-ROM, 휘발성 또는 비-휘발성 매체, 가령, RAM(가령, SDRAM, DDR, RDRAM, SRAM 등), ROM 등 뿐 아니라, 통신 매체, 가령, 네트워크 및/또는 무선 링크를 통해 전송되는 전송 매체 또는 신호, 가령, 전기, 전자기, 또는 디지털 신호까지 포함할 수 있다.
상기의 기재에서, 다양한 실시예가 설명된다. 설명을 위해, 특정 구성 및 세부 사항이 실시예의 완전한 이해를 제공하기 위해 제공된다. 그러나, 특정 세부 사항 없이도 실시예가 실시될 수 있음이 해당 분야의 통상의 기술자에게 자명할 것이다. 또한, 기재되는 실시예를 모호하게 하지 않기 위해 공지된 특징들은 생략되거나 단순화될 수 있다.
점선 경계(예를 들어, 큰 파선, 작은 파선, 점선 및 점)를 갖는 브라켓 텍스트 및 블록은 본 명세서에서 일부 실시예에 추가 특징을 추가하는 선택사항적 동작을 설명하기 위해 사용된다. 그러나, 이러한 표기는 이들이 유일한 옵션 또는 선택적인 동작임을 의미하거나, 및/또는 특정 실시예에서 실선 블록이 선택적인 것이 아님을 의미하는 것으로 여겨져서는 안 된다.
접미 문자가 있는 참조 번호(예를 들어, 134A-134C, 136A-136B)가 다양한 실시예에서 참조된 개체의 하나 또는 복수의 인스턴스가 있을 수 있음을 가리키기 위해 사용될 수 있고, 복수의 인스턴스가 있을 때, 각각이 동일할 필요는 없으며 다신 공통적인 방식으로 일반적인 특성 또는 동작을 공유할 수 있다. 또한, 사용된 특정 접미사는 특정하게 달리 지시되지 않는 한 특정 양의 개체가 존재한다는 것을 의미하는 것은 아니다. 따라서, 동일하거나 상이한 접미 문자를 사용하는 2개의 개체는 다양한 실시예에서 동일한 수의 인스턴스를 가질 수도 있고 갖지 않을 수도 있다.
"하나의 실시예", "실시예", "예시적인 실시예"등은 언급될 때, 기재된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있음을 가리키며, 모든 실시예가 특정 특징, 구조, 또는 특성을 반드시 포함할 수 있는 것을 가리키지는 않는다. 또한, 이러한 구문이 반드시 동일한 실시예를 지칭하는 것이 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 설명될 때, 다른 실시예와 관련하여 그러한 특징, 구조 또는 특성이 발생하는 것은, 명시적으로 기재되는지 여부와 무관하게, 해당 분야의 통상의 기술자의 지식 범위 내에 있다.
개시된 기법의 적어도 일부 실시예가 다음의 항목과 관련하여 기재될 수 있다:
1. 컴퓨터로 구현되는 방법으로서,
제공자 네트워크에서 복수의 가상 머신 유형 각각에 대해 필요 슬롯의 개수를 획득하는 단계,
제공자 네트워크에서 복수의 가상 머신 유형 각각에 대해 가용 슬롯의 개수를 획득하는 단계,
필요 슬롯의 개수 및 가용 슬롯의 개수를 적어도 부분적으로 기초로 하여, 제공자 네트워크에서 생성되도록 희망되는 하나 이상의 가상 머신 유형 각각에 대한 슬롯 개수를 결정하는 단계,
복수의 작업자 개체 각각에 의해 슬롯 재구성 동작 세트를 1회 이상 병렬로 수행하는 단계 - 복수의 작업자 개체 중 하나의 개체에 대해 슬롯 재구성 동작 세트는
제2 가상 머신 유형의 가상 머신에 대해 전자 디바이스의 제1 하나 이상의 슬롯을 등록 해제하고 제1 가상 머신 유형의 가상 머신에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 것 - 전자 디바이스는 제2 가상 머신 유형의 대응하는 하나 이상의 가상 머신이 실행되는 하나 이상의 다른 슬롯을 더 포함함 - ,
제1 가상 머신 유형의 가상 머신을 런칭하기 위한 요청을 수신하는 것, 및
전자 디바이스가 제2 가상 머신 유형의 하나 이상의 가상 머신을 계속 실행하면서, 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에서 제1 가상 머신 유형의 가상 머신을 실행하는 것 을 포함함 - 을 포함하는, 컴퓨터로 구현되는 방법.
2. 제1항목에 있어서, 작업자 개체 중 하나에 대해 슬롯 재구성 동작 세트는
제1 하나 이상의 슬롯의 등록 해제 전에, 전자 디바이스를 격리 상태로 두는 것 - 격리 상태로 두는 동안 전자 디바이스는 제2 가상 머신 유형의 하나 이상의 가상 머신을 계속 실행하지만 추가 가상 머신은 배치되게 할 수 없음 - , 및
제2 하나 이상의 슬롯을 등록한 후, 전자 디바이스를 격리 상태로부터 해제하는 것을 더 포함하는, 컴퓨터로 구현되는 방법.
3. 제2항목에 있어서, 작업자 개체 중 하나에 대해 슬롯 재구성 동작 세트는
전자 디바이스를 격리 상태로 둔 후, 제1 하나 이상의 슬롯이 어떠한 가상 머신도 실행하는 중이 아님을 검증하는 것을 더 포함하는, 컴퓨터로 구현되는 방법.
4. 컴퓨터로 구현되는 방법으로서,
제공자 네트워크 내 제1 컴퓨트 인스턴스 유형에 대한 가용 슬롯의 개수가 제1 컴퓨트 인스턴스 유형에 대한 필요 슬롯의 개수보다 적음을 결정하는 단계,
제2 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제1 하나 이상의 슬롯을 등록 해제하고, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 단계 - 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 대응하는 하나 이상의 컴퓨트 인스턴스가 실행되는 하나 이상의 다른 슬롯을 더 포함함 - ,
제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 런칭하기 위한 요청을 수신하는 단계, 및
전자 디바이스가 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하면서 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에서 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 실행하는 단계
를 포함하는, 컴퓨터로 구현되는 방법.
5. 제4항목에 있어서, 제1 하나 이상의 슬롯은 복수의 슬롯을 포함하며, 상기 복수의 슬롯은 제2 하나 이상의 슬롯으로 통합되며, 제2 하나 이상의 슬롯은 단일 슬롯을 포함하는, 컴퓨터로 구현되는 방법.
6. 제4항목 내지 제5항목 중 어느 한 항목에 있어서, 제1 하나 이상의 슬롯은 단일 슬롯을 포함하고, 제2 하나 이상의 슬롯은 복수의 슬롯을 포함하는, 컴퓨터로 구현되는 방법.
7. 제4항목 내지 제6항 중 어느 한 항목에 있어서,
제1 하나 이상의 슬롯을 등록 해제하기 전에, 전자 디바이스를 격리 상태(isolation)로 두는 단계 - 격리 상태에 있는 동안 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하지만 추가 컴퓨트 인스턴스가 배치되게는 할 수 없음 - , 및
제2 하나 이상의 슬롯을 등록한 후, 전자 디바이스를 격리 상태에서 해제하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
8. 제7항목에 있어서,
전자 디바이스를 격리 상태로 둔 후, 제1 하나 이상의 슬롯이 어떠한 컴퓨트 인스턴스도 실행하지 않는 중임을 검증하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
9. 제7항목에 있어서,
전자 디바이스를 격리 상태로 둔 후 전자 상태를 격리 상태로부터 해제하기 전, 전자 디바이스 상에서 실행되는 제2 컴퓨트 인스턴스 유형의 상기 하나 이상의 컴퓨트 인스턴스 중 적어도 하나의 컴퓨트 인스턴스를 포함하는 동작을 수행하기 위한 요청을 수신하는 단계, 및
상기 동작을 수행하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
10. 제4항목 내지 제9항목 중 어느 한 항목에 있어서, 제1 하나 이상의 슬롯의 등록 해지 및 제2 하나 이상의 슬롯의 등록은 제1 작업자 개체에 의해 제1 재구성 동작 세트의 일부로서 수행되며, 제2 작업자 개체는 제1 재구성 동작 세트와 병렬로 제2 재구성 동작 세트를 수행하는, 컴퓨터로 구현되는 방법.
11. 제10항목에 있어서, 제2 재구성 동작 세트는 제3 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 제2 전자 디바이스의 제3 하나 이상의 슬롯을 등록 해제하는 것 및 제4 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 제2 전자 디바이스의 제4 하나 이상의 슬롯을 등록하는 것을 포함하는, 컴퓨터로 구현되는 방법.
12. 제4항목 내지 제11항목 중 어느 한 항목에 있어서,
제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 슬롯을 선택하기 위한 요청을 배치 서비스로 전송하는 단계,
전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에 대응하는, 제2 하나 이상의 슬롯 중 상기 하나의 슬롯의 하나 이상의 특성을 기술하는 자원 벡터를 포함하는 응답을 상기 배치 서비스로부터 수신하는 단계, 및
상기 자원 벡터를 기초로 전자 디바이스의 제2 하나 이상의 슬롯 중 상기 하나의 슬롯을 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대한 배치 위치로서 식별하는 단계
를 더 포함하는, 컴퓨터로 구현되는 방법.
13. 제4항목 내지 제12항목 중 어느 한 항목에 있어서, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 단계는
제2 하나 이상의 슬롯 중 제1 슬롯에 대해 슬롯 정보 데이터 구조에 레코드를 삽입하는 단계 - 상기 레코드는 전자 디바이스의 식별자, 전자 디바이스의 맥락 내에서 고유한 슬롯 번호의 식별자, 및 자원 벡터의 식별자를 포함하고, 자원 벡터는 제1 슬롯의 하나 이상의 특성을 기술함 -
를 포함하는, 컴퓨터로 구현되는 방법.
14. 시스템으로서,
고객을 대신하여 컴퓨트 인스턴스를 구현하기 위해 복수의 전자 디바이스를 포함하는 제공자 네트워크의 하드웨어 가상화 서비스, 및
하나 이상의 전자 디바이스에 의해 구현된 제공자 네트워크의 제어 평면
을 포함하며, 상기 제어 평면은 명령을 포함하고, 상기 명령은 실행될 때 제어 평면으로 하여금:
제공자 네트워크에서 하나 이상의 컴퓨트 인스턴스 유형 각각에 대해 복수의 슬롯이 생성될 것임을 결정하게 하고,
복수의 전자 디바이스 중 둘 이상을 가용 슬롯을 가진다고 식별하게 하며,
복수의 작업자 개체 각각에 의해 슬롯 재구성 동작 세트를 1회 이상 병렬로 수행하게 하여, 둘 이상의 전자 디바이스의 가용 슬롯 중 일부를 등록 해제하고 둘 이상의 전자 디바이스에 대해 추가 슬롯을 등록하여, 하나 이상의 컴퓨트 인스턴스 유형 각각에 대해 상기 복수의 슬롯을 생성하게 하며, 둘 이상의 전자 디바이스는 슬롯 재구성 동작 세트 전체에서 대응하는 하나 이상의 컴퓨트 인스턴스가 계속 실행되는 하나 이상의 다른 슬롯을 더 포함하는, 시스템.
15. 제14항목에 있어서, 슬롯 재구성 동작 세트들 중 하나의 세트는 복수의 슬롯을 등록 해제하고 둘 이상의 전자 디바이스 중 제1 전자 디바이스에서 단일 슬롯을 등록하는 것을 포함하는, 시스템.
16. 제15항목에 있어서, 슬롯 재구성 동작 세트들 중 다른 한 세트는 단일 슬롯을 등록 해제하고 둘 이상의 전자 디바이스 중 제2 전자 디바이스에서 복수의 슬롯을 등록하는 것을 포함하는, 시스템.
17. 제15항목에 있어서, 슬롯 재구성 동작 세트들 중 한 세트는
복수의 슬롯의 등록 해제 전에, 제1 전자 디바이스를 격리 상태로 두는 것 - 격리 상태에 있는 동안 제1 전자 디바이스는 하나 이상의 컴퓨트 인스턴스를 계속 실행하지만 추가 컴퓨트 인스턴스는 배치되게 할 수 없음 - , 및
단일 슬롯의 등록 후, 제1 전자 디바이스를 격리 상태로부터 해제하는 것을 더 포함하는, 시스템.
18. 제17항목에 있어서, 슬롯 재구성 동작 세트들 중 하나의 세트는
제1 전자 디바이스를 격리 상태로 둔 후, 복수의 슬롯이 어떠한 컴퓨트 인스턴스도 실행하고 있지 않음을 검증하는 것을 더 포함하는, 시스템.
19. 제17항목에 있어서, 제1 전자 디바이스를 격리 상태로 둔 후 제1 전자 디바이스를 격리 상태로부터 해제하기 전, 명령은 더 실행되어 제어 평면으로 하여금,
제1 전자 디바이스 상에서 실행되는 상기 하나 이상의 컴퓨트 인스턴스 중 적어도 하나의 컴퓨트 인스턴스를 포함하는 동작을 수행하기 위한 요청을 수신하게 하고,
상기 동작을 수행하게 하는, 시스템.
20. 제14항목 내지 제19항목 중 어느 한 항목에 있어서,
제어 평면은 가용 슬롯들 중 하나의 슬롯을 등록 해제하기 위해 상기 하나의 슬롯을 갖는 전자 디바이스의 식별자 및 상기 하나의 슬롯의 식별자를 포함하는 슬롯 등록 해제 요청 메시지를 전송하는, 시스템.
명세서와 도면은 한정이 아니라 설명으로 간주되어야 한다. 그러나 청구범위에서 제공되는 본 개시의 더 넓은 사상 및 범위 내에서 다양한 수정 및 변형이 이뤄질 수 있음이 자명할 것이다.

Claims (15)

  1. 컴퓨터로 구현되는 방법으로서,
    제공자 네트워크 내 제1 컴퓨트 인스턴스 유형에 대한 가용 슬롯의 개수가 제1 컴퓨트 인스턴스 유형에 대한 필요 슬롯의 개수보다 적음을 결정하는 단계,
    제2 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 위해 이용 가능한 전자 디바이스의 제1 하나 이상의 슬롯을 등록 해제하고, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 단계 - 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 대응하는 하나 이상의 컴퓨트 인스턴스가 실행되는 하나 이상의 다른 슬롯을 더 포함함 - ,
    제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 런칭하기 위한 요청을 수신하는 단계, 및
    전자 디바이스가 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하면서 전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에서 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스를 실행하는 단계
    를 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 제1 하나 이상의 슬롯은 복수의 슬롯을 포함하며, 상기 복수의 슬롯은 제2 하나 이상의 슬롯으로 통합되며, 제2 하나 이상의 슬롯은 단일 슬롯을 포함하는, 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 제1 하나 이상의 슬롯은 단일 슬롯을 포함하고, 제2 하나 이상의 슬롯은 복수의 슬롯을 포함하는, 컴퓨터로 구현되는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    제1 하나 이상의 슬롯을 등록 해제하기 전에, 전자 디바이스를 격리 상태(isolation)로 두는 단계 - 격리 상태에 있는 동안 전자 디바이스는 제2 컴퓨트 인스턴스 유형의 하나 이상의 컴퓨트 인스턴스를 계속 실행하지만 추가 컴퓨트 인스턴스가 배치되게는 할 수 없음 - , 및
    제2 하나 이상의 슬롯을 등록한 후, 전자 디바이스를 격리 상태에서 해제하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 전자 디바이스를 격리 상태로 둔 후, 제1 하나 이상의 슬롯이 어떠한 컴퓨트 인스턴스도 실행하지 않는 중임을 검증하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  6. 제4항에 있어서,
    전자 디바이스를 격리 상태로 둔 후 전자 디바이스를 격리 상태로부터 해제하기 전,
    전자 디바이스 상에서 실행되는 제2 컴퓨트 인스턴스 유형의 상기 하나 이상의 컴퓨트 인스턴스 중 적어도 하나의 컴퓨트 인스턴스를 포함하는 동작을 수행하기 위한 요청을 수신하는 단계, 및
    상기 동작을 수행하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 제1 하나 이상의 슬롯의 등록 해제 및 제2 하나 이상의 슬롯의 등록은 제1 작업자 개체에 의해 제1 재구성 동작 세트의 일부로서 수행되며, 제2 작업자 개체는 제1 재구성 동작 세트와 병렬로 제2 재구성 동작 세트를 수행하는, 컴퓨터로 구현되는 방법.
  8. 제7항에 있어서, 제2 재구성 동작 세트는 제3 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 제2 전자 디바이스의 제3 하나 이상의 슬롯을 등록 해제하는 것 및 제4 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 제2 전자 디바이스의 제4 하나 이상의 슬롯을 등록하는 것을 포함하는, 컴퓨터로 구현되는 방법.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서,
    제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 슬롯을 선택하기 위한 요청을 배치 서비스로 전송하는 단계,
    전자 디바이스의 제2 하나 이상의 슬롯 중 하나의 슬롯에 대응하는, 제2 하나 이상의 슬롯 중 상기 하나의 슬롯의 하나 이상의 특성을 기술하는 자원 벡터를 포함하는 응답을 상기 배치 서비스로부터 수신하는 단계, 및
    상기 자원 벡터를 기초로 전자 디바이스의 제2 하나 이상의 슬롯 중 상기 하나의 슬롯을 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대한 배치 위치로서 식별하는 단계
    를 더 포함하는, 컴퓨터로 구현되는 방법.
  10. 제1항 내지 제3항 중 어느 한 항에 있어서, 제1 컴퓨트 인스턴스 유형의 컴퓨트 인스턴스에 대해 전자 디바이스의 제2 하나 이상의 슬롯을 등록하는 단계는
    제2 하나 이상의 슬롯 중 제1 슬롯에 대해 슬롯 정보 데이터 구조에 레코드를 삽입하는 단계 - 상기 레코드는 전자 디바이스의 식별자, 전자 디바이스 내에서 상기 제1 슬롯을 고유하게 식별하는 슬롯 번호의 식별자, 및 자원 벡터의 식별자를 포함하고, 자원 벡터는 제1 슬롯의 하나 이상의 특성을 기술함 - 를 포함하는, 컴퓨터로 구현되는 방법.
  11. 시스템으로서,
    고객을 대신하여 컴퓨트 인스턴스를 구현하기 위해 복수의 전자 디바이스를 포함하는 제공자 네트워크의 하드웨어 가상화 서비스, 및
    하나 이상의 전자 디바이스에 의해 구현된 제공자 네트워크의 제어 평면
    을 포함하며, 상기 제어 평면은 명령을 포함하는 컴퓨터 프로그램에 의해 구현되고, 상기 명령은 실행될 때 제어 평면으로 하여금:
    제공자 네트워크에서 하나 이상의 컴퓨트 인스턴스 유형 각각에 대해 복수의 슬롯이 생성될 것임을 결정하게 하고,
    복수의 전자 디바이스 중 둘 이상을 가용 슬롯을 가진다고 식별하게 하며,
    복수의 작업자 개체 각각에 의해 슬롯 재구성 동작 세트를 1회 이상 병렬로 수행하게 하여, 둘 이상의 전자 디바이스의 가용 슬롯 중 일부를 등록 해제하고 둘 이상의 전자 디바이스에 대해 추가 슬롯을 등록하여, 하나 이상의 컴퓨트 인스턴스 유형 각각에 대해 상기 복수의 슬롯을 생성하게 하며, 둘 이상의 전자 디바이스는 슬롯 재구성 동작 세트 전체에서 대응하는 하나 이상의 컴퓨트 인스턴스가 계속 실행되는 하나 이상의 다른 슬롯을 더 포함하는, 시스템.
  12. 제11항에 있어서, 슬롯 재구성 동작 세트들 중 하나의 세트는 복수의 슬롯을 등록 해제하고 둘 이상의 전자 디바이스 중 제1 전자 디바이스에서 단일 슬롯을 등록하는 것을 포함하는, 시스템.
  13. 제12항에 있어서, 슬롯 재구성 동작 세트들 중 다른 한 세트는 단일 슬롯을 등록 해제하고 둘 이상의 전자 디바이스 중 제2 전자 디바이스에서 복수의 슬롯을 등록하는 것을 포함하는, 시스템.
  14. 제12항에 있어서, 슬롯 재구성 동작 세트들 중 한 세트는
    복수의 슬롯의 등록 해제 전에, 제1 전자 디바이스를 격리 상태로 두는 것 - 격리 상태에 있는 동안 제1 전자 디바이스는 하나 이상의 컴퓨트 인스턴스를 계속 실행하지만 추가 컴퓨트 인스턴스는 배치되게 할 수 없음 - , 및
    단일 슬롯의 등록 후, 제1 전자 디바이스를 격리 상태로부터 해제하는 것을 더 포함하는, 시스템.
  15. 제14항에 있어서, 슬롯 재구성 동작 세트들 중 하나의 세트는
    제1 전자 디바이스를 격리 상태로 둔 후, 복수의 슬롯이 어떠한 컴퓨트 인스턴스도 실행하고 있지 않음을 검증하는 것을 더 포함하는, 시스템.
KR1020207013074A 2017-11-10 2018-11-09 동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리 KR102361929B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/809,884 2017-11-10
US15/809,884 US10684894B2 (en) 2017-11-10 2017-11-10 Capacity management in provider networks using dynamic host device instance model reconfigurations
PCT/US2018/060175 WO2019094829A1 (en) 2017-11-10 2018-11-09 Capacity management in provider networks using dynamic host device instance model reconfigurations

Publications (2)

Publication Number Publication Date
KR20200065044A KR20200065044A (ko) 2020-06-08
KR102361929B1 true KR102361929B1 (ko) 2022-02-14

Family

ID=64477314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207013074A KR102361929B1 (ko) 2017-11-10 2018-11-09 동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리

Country Status (7)

Country Link
US (2) US10684894B2 (ko)
EP (1) EP3707608A1 (ko)
JP (1) JP6993057B2 (ko)
KR (1) KR102361929B1 (ko)
CN (1) CN111316242B (ko)
AU (1) AU2018365063B2 (ko)
WO (1) WO2019094829A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684894B2 (en) 2017-11-10 2020-06-16 Amazon Technologies, Inc. Capacity management in provider networks using dynamic host device instance model reconfigurations
US11106551B1 (en) * 2018-04-30 2021-08-31 Amazon Technologies, Inc. Compute capacity reservations for disaster recovery scenarios
US11360795B2 (en) 2019-03-28 2022-06-14 Amazon Technologies, Inc. Determining configuration parameters to provide recommendations for optimizing workloads
US11372663B2 (en) 2019-03-28 2022-06-28 Amazon Technologies, Inc. Compute platform recommendations for new workloads in a distributed computing environment
US11385920B2 (en) * 2019-03-28 2022-07-12 Amazon Technologies, Inc. Compute platform optimization over the life of a workload in a distributed computing environment
KR102695802B1 (ko) * 2019-06-28 2024-08-19 아마존 테크놀로지스, 인크. 클라우드 제공자 서브스트레이트 익스텐션의 가상화 블록 저장 서버
US11372711B2 (en) 2019-06-29 2022-06-28 Intel Corporation Apparatus and method for fault handling of an offload transaction
CN110389843B (zh) * 2019-07-29 2022-04-15 广东浪潮大数据研究有限公司 一种业务调度方法、装置、设备及可读存储介质
US11886912B2 (en) * 2020-10-19 2024-01-30 Salesforce Inc. Multi substrate public cloud big data jobs as a service
CN112434917B (zh) * 2020-11-09 2023-06-27 西安交通大学 一种面向服务的孪生制造车间系统重构方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468535B1 (en) 2008-09-23 2013-06-18 Gogrid, LLC Automated system and method to provision and allocate hosting resources
US20150106805A1 (en) 2013-10-15 2015-04-16 Cisco Technology, Inc. Accelerated instantiation of cloud resource
US20170026309A1 (en) 2012-05-10 2017-01-26 Amazon Technologies, Inc. Automated reconfiguration of shared network resources

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424094B2 (en) * 2009-06-01 2016-08-23 International Business Machines Corporation Server consolidation using virtual machine resource tradeoffs
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
EP2497224A4 (en) * 2009-11-06 2014-01-29 Ericsson Telefon Ab L M SYSTEM AND METHOD FOR COMMUNICATING WEB APPLICATIONS
US8601483B2 (en) * 2011-03-22 2013-12-03 International Business Machines Corporation Forecasting based service for virtual machine reassignment in computing environment
US20120260259A1 (en) 2011-04-06 2012-10-11 Microsoft Corporation Resource consumption with enhanced requirement-capability definitions
JP5370946B2 (ja) 2011-04-15 2013-12-18 株式会社日立製作所 リソース管理方法及び計算機システム
US9411648B2 (en) * 2012-06-28 2016-08-09 Rackspace Us, Inc. Flexible resource configuration management for computing clusters
US10552774B2 (en) 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
JP5945512B2 (ja) 2013-02-13 2016-07-05 株式会社日立製作所 計算機システム、及び仮想計算機管理方法
JP5626937B1 (ja) 2013-06-04 2014-11-19 日本電信電話株式会社 リソース提供装置、リソース提供方法、およびリソース提供システム
US9870268B2 (en) 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
CN104254133B (zh) * 2014-09-15 2018-02-06 北京交通大学 一种用于工业无线网络的时隙管理方法及时隙调度算法
US9495192B2 (en) * 2014-09-30 2016-11-15 Vmware, Inc. NUMA I/O aware network queue assignments
KR101952651B1 (ko) * 2015-05-11 2019-05-22 삼성에스디에스 주식회사 분산 컴퓨팅 환경을 위한 고유 식별자 생성 방법 및 그 장치
US10684894B2 (en) 2017-11-10 2020-06-16 Amazon Technologies, Inc. Capacity management in provider networks using dynamic host device instance model reconfigurations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468535B1 (en) 2008-09-23 2013-06-18 Gogrid, LLC Automated system and method to provision and allocate hosting resources
US20170026309A1 (en) 2012-05-10 2017-01-26 Amazon Technologies, Inc. Automated reconfiguration of shared network resources
US20150106805A1 (en) 2013-10-15 2015-04-16 Cisco Technology, Inc. Accelerated instantiation of cloud resource

Also Published As

Publication number Publication date
US10684894B2 (en) 2020-06-16
CN111316242A (zh) 2020-06-19
WO2019094829A1 (en) 2019-05-16
US20190146850A1 (en) 2019-05-16
KR20200065044A (ko) 2020-06-08
EP3707608A1 (en) 2020-09-16
JP6993057B2 (ja) 2022-01-13
US11461149B1 (en) 2022-10-04
AU2018365063B2 (en) 2021-04-29
CN111316242B (zh) 2021-07-30
JP2021502643A (ja) 2021-01-28
AU2018365063A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
KR102361929B1 (ko) 동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리
US11368385B1 (en) System and method for deploying, scaling and managing network endpoint groups in cloud computing environments
US10320674B2 (en) Independent network interfaces for virtual network environments
US20210397494A1 (en) Functional tuning for cloud based applications and connected clients
US8448171B2 (en) Communications between virtual machines that have been migrated
US10394475B2 (en) Method and system for memory allocation in a disaggregated memory architecture
US9448901B1 (en) Remote direct memory access for high availability nodes using a coherent accelerator processor interface
US11196640B2 (en) Releasing and retaining resources for use in a NFV environment
US20170359304A1 (en) Address management in an overlay network environment
US11397622B2 (en) Managed computing resource placement as a service for dedicated hosts
US10593009B1 (en) Session coordination for auto-scaled virtualized graphics processing
US10656966B1 (en) Deep-inspection weighted round robin of multiple virtualized resources
US11416306B1 (en) Placement to optimize heterogeneous physical host utilization
US10951479B1 (en) User controlled fault domains
US9559910B2 (en) Locating virtual machine(s) within virtual networks
US9547540B1 (en) Distributed operating system functions for nodes in a rack
US9923865B1 (en) Network address management
US11036537B1 (en) On demand capacity management in provider networks using type-agnostic resources
US11323524B1 (en) Server movement control system based on monitored status and checkout rules

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant