KR102005595B1 - 가상 머신 풀 내의 리소스의 할당 기법 - Google Patents

가상 머신 풀 내의 리소스의 할당 기법 Download PDF

Info

Publication number
KR102005595B1
KR102005595B1 KR1020147018922A KR20147018922A KR102005595B1 KR 102005595 B1 KR102005595 B1 KR 102005595B1 KR 1020147018922 A KR1020147018922 A KR 1020147018922A KR 20147018922 A KR20147018922 A KR 20147018922A KR 102005595 B1 KR102005595 B1 KR 102005595B1
Authority
KR
South Korea
Prior art keywords
virtual machine
task
pool
virtual
preemptable
Prior art date
Application number
KR1020147018922A
Other languages
English (en)
Other versions
KR20140111671A (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 KR20140111671A publication Critical patent/KR20140111671A/ko
Application granted granted Critical
Publication of KR102005595B1 publication Critical patent/KR102005595B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따르면 클라우드 컴퓨팅 환경 내의 리소스를 할당하고 연관시키기 위한 시스템 및 방법이 제공된다. 클라우드 컴퓨팅 환경 내의 가상 머신들은 전용 머신, 스탠바이 머신, 또는 선점가능한 머신으로서 사용자에 상응하는 풀에 할당되거나 풀과 연관될 수 있다. 이러한 다양한 상태들은 원하는 레벨의 리소스를 보유하는 능력을 사용자에게 제공하는 한편, 클라우드 컴퓨팅 환경의 운영자가 리소스 활용도를 향상시킬 수 있게 한다.

Description

가상 머신 풀 내의 리소스의 할당 기법{ASSIGNMENT OF RESOURCES IN VIRTUAL MACHINE POOLS}
큰 스케일의 컴퓨터 작업을 수행하는 종래의 방법은 종종 컴퓨팅 플랫폼으로서의 역할을 하기 위한 컴퓨터 하드웨어의 사용자 구매를 필요로 한다. 다수의 일반적인 사용자들이 컴퓨팅 리소스에 대한 일상적인 요구와는 다른 피크 레벨의 컴퓨팅 요구를 갖기 때문에, 이것은 다양한 비효율성을 야기할 수 있다. 피크 리소스 요구를 만족시키기에 충분한 하드웨어를 구매하는 것은 컴퓨팅 리소스의 낮은 이용도를 야기할 수 있다. 이와 달리, 일상적인 이용도 레벨에 하드웨어를 맞추는 것은 일부 원하는 컴퓨터 작업이 실행 불가능한 상황을 발생시킬 수 있다. 보다 최근에는, 프로세싱 속도 및 네트워크 전송 속도의 향상이 클라우드 컴퓨팅 환경으로 하여금 로컬 컴퓨팅 플랫폼에 대한 실행가능한 대안이 되게 하였다.
다양한 실시예에서, 클라우드 컴퓨팅 환경 내의 리소스를 할당하고 연관시키기 위한 시스템 및 방법이 제공된다. 클라우드 컴퓨팅 환경 내의 가상 머신들은 전용 머신, 스탠바이 머신, 또는 선점가능한 머신으로서 사용자에 상응하는 풀에 할당되거나 풀과 연관될 수 있다. 이러한 다양한 상태들은 원하는 레벨의 리소스를 보유하는 능력을 사용자에게 제공하는 한편, 클라우드 컴퓨팅 환경의 운영자가 리소스 활용도를 향상시킬 수 있게 한다.
본 요약부는 아래의 상세한 설명에서 추가로 기술되는 개념들의 선택을 간략화된 형태로 소개하도록 제공되었다. 본 요약부는 청구된 청구사항의 중요 특성 또는 기본 특성을 식별하기 위한 것이 아니며, 청구된 청구사항의 범주를 결정하는 것을 홀로 돕도록 사용되는 것 또한 아니다.
도 1은 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 2는 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 3은 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 4는 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 5 내지 9는 본 발명의 실시예에 따라 하나 이상의 가상 머신들의 풀을 관리하는 예시를 개략적으로 도시한 도면.
도 10은 본 발명의 실시예를 수행하기에 적합한 컴퓨팅 디바이스를 개략적으로 도시한 도면.
도 11 내지 13은 본 발명에 따른 프로세스 흐름의 예시를 도시한 도면.
본 발명은 첨부된 도면을 참조하여 아래에서 상세하게 기술되었다.
개요
네트워크 상의 데이터 전송 속도 증가 및 다른 네트워크 특성의 향상으로 인해, 컴퓨팅 리소스가 커다란 네트워크 상에서 분산된 환경에서 큰 스케일의 컴퓨팅 태스크를 수행하는 것이 가능해졌다. 제 1 위치에 있는 사용자는 잡(job) 또는 컴퓨팅 태스크를 컴퓨팅 서비스에 제출할 수 있고, 사용자가 직접적으로 알지 못하는 컴퓨터들의 그룹 상에서 수행되었던 태스크를 가질 수 있다. 사용자의 태스크를 수행하기 위한 컴퓨팅 리소스는 복수의 위치상에 분산될 수 있다. 하나 이상의 위치에 배치된 컴퓨팅 리소스들의 제 1 그룹은 사용자의 컴퓨팅 태스크를 수행하기 위한 데이터 및 그외의 정보를 저장할 수 있는 반면, 동일한 위치에 있거나 서로 다른 하나 이상의 위치들의 세트에 있는 컴퓨팅 리소스들의 제 2 그룹은 컴퓨팅 태스크를 수행하도록 사용될 수 있다.
분산된 다수의 컴퓨팅 리소스에 액세스하는 것은 사용자로 하여금 컴퓨팅 리소스가 어디에 위치되었는지에 대한 걱정 없이 잡 태스크를 수행할 수 있게 한다. 또한 분산된 리소스는 명시된 시간까지 컴퓨팅 태스크를 완료하는 것과 같이 컴퓨팅 태스크에 대한 목표를 만족시키기 위해, 사용되는 리소스의 양을 사용자가 스케일-업(또는 스케일-다운) 하는 기회를 제공한다. 그러나, 사용자에게 이러한 유연성을 제공하는 것은 분산된 컴퓨팅 리소스의 운영자(또는 소유자)에게 다수의 어려운 문제를 제기한다. 수요를 만족시키기 위해서, 리소스들의 분산된 네트워크의 운영자는 바람직하게는 피크 수요 시간대의 리소스 요구를 만족시키는 이용가능한 충분한 리소스를 가질 것이다.
정의
"계정(account)"은 클라우드 컴퓨팅 환경 내에서 세계적으로 고유하게 식별된 엔티티이다. 실시예에서, 아래에서 논의되는 모든 리소스 및 태스크는 계정의 범주 내에 있다. 전형적으로, 사용자는 클라우드 컴퓨팅 시스템의 리소스를 사용하기 전에 가장 먼저 계정을 생성할 것이다. 계정을 생성한 후에, 사용자는 작업 아이템을 시스템에 제출하고 작업 아이템에 기초하여 잡을 수행하기 위해 리소스를 관리하도록 계정을 사용할 수 있다.
"작업 아이템(work item)"은 클라우드 컴퓨팅 환경 내에서 실행되는 잡의 정적 표현이다. 작업 아이템은 잡 바이너리, 프로세싱될 데이터로의 포인터 및 선택적으로는 잡을 수행하고자 태스크를 시작하기 위한 커맨드 라인을 포함하는 잡의 다양한 측면들을 명시할 수 있다. 또한, 작업 아이템은 재발생(reoccurrence) 스케줄, 우선사항 및 제약을 명시할 수 있다. 예를 들어, 작업 아이템은 매일 5시에 시작되도록 명시될 수 있다.
"잡(job)"은 작업 아이템의 실행중인 인스턴스이다. 잡은 분산된 계산을 수행하기 위해 함께 일하는 태스크들의 컬렉션을 포함한다. 태스크는 클라우드 컴퓨팅 환경 내의 하나 이상의 가상 머신 상에서 실행할 수 있다.
"태스크(task)"는 잡의 근본적인 실행 단위이다. 각 태스크는 가상 머신 상에서 실행한다. 사용자는 각 태스크에 대해 커맨드 라인으로의 추가적인 입력 및 입력 데이터로의 포인터를 명시할 수 있다. 태스크는 태스크의 실행 코스 동안 태스크를 수행하는 가상 머신 상의 작업 디렉토리(working directory) 하에 파일들의 계층을 생성할 수 있다.
"잡 매니저 태스크(JM 태스크)"는 잡 내의 특별한 태스크이다. 잡 매니저 태스크는 선택적이며, 따라서 JM 태스크의 사용 없이 일부 잡이 수행될 수 있다. 잡 매니저 태스크는 잡 내의 모든 태스크에 대해 단일 제어 포인트를 제공하며, 잡에 대한 "마스터" 태스크로서 사용될 수 있다. 만약 잡이 JM 태스크를 갖는다면, 시스템은 잡 내의 제 1 태스크로서 JM 태스크를 시작한다. 그 다음 JM 태스크는 더 많은 태스크를 잡에 제출할 수 있으며, 이들 태스크의 진행을 모니터링하고 언제 다음 태스크 배치(batch)를 제출할지를 제어할 수 있다. 이러한 방식으로, JM 태스크는 잡 내의 모든 태스크의 스케줄링을 조정할 수 있고, 태스크들 사이의 의존성을 관리할 수 있다. 바람직하게는, 만약 잡 매니저 태스크에 대한 노드 또는 가상 머신이 고장 난다면, JM 태스크가 상응하는 잡에 대해 항상 실행되도록 다른 가상 머신 상에서 JM 태스크가 자동으로 재시작된다. 또한, 사용자는 만약 JM 태스크가 완료되면 시스템이 상응하는 잡 내의 모든 태스크를 종료할 수 있다고 시스템에 명시할 수 있다.
가상 머신
가상 머신은 프로세싱 능력의 논리 단위를 지칭한다. 가상 머신은 물리적 프로세서와의 일대일 통신연락을 가질 수 있거나, 또는 가상 머신은 복수의 프로세서에 해당할 수 있거나, 또는 가상 머신은 하나 이상의 프로세서 상에서의 프로세싱 시간의 백분율을 나타낼 수 있다. 풀에 할당된 가상 머신은 임의의 주어진 시간에 풀에 대한 하나 이상의 태스크를 수행할 수 있다.
다양한 실시예에서, 잠재적으로 작업 아이템에 기초한 잡을 수행할 수 있는 가상 머신은, 사용에 앞서 작업 아이템에 대한 계정(즉, 사용자)에 상응하는 적어도 하나의 풀에 할당된다. "풀"은 가상 머신들의 논리적 그룹핑(grouping)이다. 작업 아이템은 작업 아이템에 상응하는 잡(들)을 실행하도록, 항상 적어도 하나의 연관된 풀을 갖는다. 각각의 계정은 계정이 자신과 연관된 작업 아이템들을 수행할 때 사용하기 위한 액세스를 갖는 하나 이상의 풀을 생성할 수 있다. 전형적으로 계정은 자신과 연관된 풀에 대한 독점적인 액세스를 갖는다. 풀은 작업 아이템이 사용자에 의해 제출되거나, 또는 작업 아이템이 현존하는 풀과 연관될 수 있을 때 생성될 수 있다. 풀은 잡을 수행하기 위해 시스템에 의해 자동으로 생성될 수 있다. 예를 들어, 하루의 특정한 시간에 실행되는 작업 아이템을 재발생하는 것은 시작 시에 잡을 수행하도록 자동으로 생성된 풀을 가짐으로써 조절될 수 있다. 풀은 그날 작업 아이템의 재발생을 완료한 후에 삭제될 수 있다. 선택적으로, 풀은 사용을 위해 계정에 상응하는 단일 작업 아이템, 단일 잡, 또는 작업 아이템들의 다른 서브셋과 연관될 수 있다.
작업 아이템이 사용자에 의해 제출되면, 작업 아이템은 가상 머신의 하나 이상의 풀과 연관될 수 있다. 가상 머신은 임의의 편리한 방식으로 풀 내에서 조직화될 수 있다. 예를 들어, 모든 가상 머신은 가상 머신에 대한 언더라잉 프로세서의 지리학적 위치와 무관하게 단일 풀 내에 조직화될 수 있거나 또는 할당될 수 있다. 다른 옵션은, 풀에 대한 모든 가상 머신들이 주어진 지리학적 위치에 있도록 지리학적 위치에 기초하여 가상 머신들을 조직화하는 것이다. 또 다른 옵션은 다른 변수들(예를 들어, 스토리지 리소스, 네트워크 대기시간, 사용자 위치/선호, 보안 요건)에 대한 접근도와 같은 지리학적 위치 외의 사항에 기반하여 가상 머신을 조직화하는 것이다. 또 다른 옵션은, 작업 아이템 또는 잡이 생성될 때 자동으로 풀을 생성한 다음 작업 아이템 또는 잡이 종료되었을 때 풀을 해체하는 것이다.
가상 머신 풀은 가상 머신을 조직화하기 위한 일 방법을 나타낸다. 가상 머신에 대한 다른 조직 단위는 가상 머신 클러스터이다. 가상 머신 클러스터는 태스크 테넌트 프로세스와 같은 클라우드 환경 내의 프로세스에 의해 함께 관리되는 가상 머신의 그룹을 나타낸다. 가상 머신 클러스터 내의 가상 머신들은 편리한 방식으로 함께 그룹화된 물리적 머신들에 해당할 수 있다. 예를 들어, 가상 머신 클러스터는 미국 또는 미국의 북동부와 같은 동일한 지리학적 영역 내; 시애틀 또는 샌디에이고 카운티와 같은 도시 또는 메트로폴리탄 지역과 같은 동일한 대략적 위치 내; 컴퓨팅 또는 데이터 센터를 형성하는 하나 이상의 접속된 또는 근접한 빌딩들과 같은 동일한 구체적 위치 내에 위치된 물리적 머신들의 그룹에 해당할 수 있다. 다른 옵션은, 클라우드 환경 내의 스토리지의 명시된 부분과의 바람직한 데이터 전송 레이트를 갖는 물리적 머신들의 그룹에 기초하여 가상 머신 클러스터를 형성하는 것이다. 또 다른 옵션은, 주어진 위치에서 물리적 머신에 기초하여 복수의 가상 머신 클러스터를 형성하는 것이다. 가상 머신 풀은 복수의 가상 머신 클러스터에 걸쳐질 수 있다. 태스크 테넌트와 같은 가상 머신 클러스터를 관리하는 프로세스는 가상 머신 풀로부터 가상 머신을 할당 및 할당해제할 수 있다. 태스크 테넌트(또는 가상 머신 클러스터를 관리하는 다른 프로세스)는 또한 가상 머신이 할당된 풀에 상응하는 잡들의 큐(queue)에 기초하여 클러스터 내의 가상 머신 상의 태스크들을 스케줄링할 수 있다. 태스크 테넌트가 가상 머신 풀에 충분한 수를 할당하기 위해 추가적인 머신을 필요로 할 때, 태스크 테넌트는 종합적인(general) 클라우드 컴퓨팅 환경으로부터 추가적인 가상 머신을 획득할 수 있다. 유사하게, 만약 태스크 테넌트가 초과 가상 머신을 갖는다면, 태스크 테넌트는 종합적인 클라우드 컴퓨팅 환경에 초과 머신을 반환할 수 있다.
전용, 스탠바이 및 선점가능 머신
가상 머신이 풀에 할당되었을 때, 가상 머신은 두 가지 타입들 중 하나로서 할당될 수 있다. 가상 머신은 전용 가상 머신 또는 선점가능한 가상 머신으로서 풀에 할당될 수 있다. 가상 머신의 전용 또는 선점가능한 상태는 가상 머신이 풀에 있는 동안 변경될 수도 있다.
"전용(dedicated)" 가상 머신은 풀에 할당된 작업 아이템 또는 잡에 의한 전용 이용을 위해 풀에 할당된 머신이다. 선택적으로, 전용 가상 머신은 풀에 제출된 임의의 잡에 일반적으로 이용가능한 것과는 상반되게 하나 이상의 연관된 작업 아이템에 대한 전용 이용을 위해 할당될 수 있다. 가상 머신이 전용 상태를 갖는 동안, 머신은 풀과 연관된 계정에 의해 사용되도록 보유된다. 전용 머신에는 다른 계정으로부터의 리소스가 공급되지 않으며, 다른 계정 대신 잡을 수행하지 않는다.
"선점가능한(preemptible)" 가상 머신은 가상 머신이 해당 풀에 할당되어 계속 이용가능할 것이 보장되지 않고, 계정 대신 풀 내의 태스크를 현재 수행하고 있는 가상 머신이다. 임의의 풀에서 선점가능한 가상 머신이 이용가능하게 된 경우, 선점가능한 머신이 해당 풀에 할당된다. 그 다음 선점가능한 머신이 공급되어 해당 풀에 대한 잡을 수행하도록 사용된다. 선점가능한 머신은 예로서 (상응하는 계정을 대신하여) 풀이 리소스 경매에서 선점가능한 가상 머신 상의 프로세싱 시간을 차지하는 것과 같은 임의의 편리한 방법에 의해 풀에서 이용가능하게 될 수 있다.
전용 및 선점가능한 가상 머신의 할당에서의 추가적인 요인은 가상 머신에 대한 요청이 특정한 가상 머신 클러스터에 대한 친화성(affinity)을 포함하는지 여부이다. 가상 머신 클러스터에 대한 친화성은 다양한 이유에 기초할 수 있다. 가상 머신 클러스터에 대한 친화성 요청의 일 예시는, 가상 머신 상에서 수행될 잡에 대한 데이터 스토리지로의 개선된 액세스(예컨대 높은 데이터 전송 속도)를 갖는 가상 머신을 가지고자 하는 바람 또는 필요성으로 인한 것이다. 이러한 타입의 스토리지 친화성에 있어서, 친화성 요청은 데이터에 대해 원하는 액세스를 갖는 하나 이상의 가상 머신 클러스터로부터의 가상 머신의 할당을 명시할 수 있다. 이것은 예를 들어 데이터 스토리지 센터에 대한 원하는 물리적 데이터 접속을 갖는 물리적 머신들에 상응하는 가상 머신들의 그룹을 나타낼 수 있다. 다른 타입의 친화성은 잡 친화성이다. 가상 머신에 의해 수행되는 일부 유형의 잡은 동일하거나 유사한 잡 상의 가상 머신 작업 사이의 상당한 양의 통신을 포함할 수 있다. 잡 친화성 상황에서, 가상 머신들 사이에서의 메시지 전달을 용이하게 하기 위해서 잡 상에서 작업중인 모든 가상 머신들이 단일 가상 머신 클러스터(또는 다른 가상 머신 조직 단위) 내에 위치되는 것이 유리할 수 있다. 단일 가상 머신 클러스터로부터 가상 머신을 선택하는 것은 동일한 지리학적 위치 내의 물리적 머신들에 상응하는 가상 머신들을 선택하는 것에 해당할 수 있다.
계정이 사용하도록 선점가능한 가상 머신으로서 이용가능한 가상 머신은 전형적으로 클라우드 컴퓨팅 환경에서 다른 목적을 갖는 가상 머신일 것이다. 예를 들어, 선점가능한 가상 머신의 하나의 소스는 재난 복구 목적을 위한 클라우드 컴퓨팅 환경 소유자/운영자에 의해 공급되는 가상 머신이다. 안정적인 운영을 제공하기 위해, 클라우드 컴퓨팅 환경은 비축되어 있는 가상 머신들의 하나 이상의 그룹을 포함할 수 있다. 이러한 비축 가상 머신은, 프로세서 고장, 네트워크 고장, 또는 더 이상 잡을 수행하기에 적합하지 않은 클라우드 환경의 부분을 발생시키는 임의의 다른 종류의 이벤트로 인해 손실된 리소스를 대체하도록 이용가능하다. 풀에 할당된 하나 이상의 가상 머신이 이벤트로 인해 손실되었을 때, 손실된 머신은 비축 가상 머신을 이용하여 대체될 수 있다. 이는 클라우드 컴퓨팅 환경에서 리소스의 이용가능성을 향상시킨다. 그러나, 고장 상황이 거의 발생하지 않는 것이 바람직하기 때문에, 재난 복구를 위한 비축 머신을 갖는 것은 종종 다수의 가상 머신이 사용되길 기다리는 유휴 상태에 있음을 의미할 것이다. 고장 상황을 처리하도록 지정된 이러한 가상 머신들의 CPU 사이클을 낭비하기보다, 가상 머신들의 CPU 사이클이 작업 아이템 또는 잡을 실행하도록 선점가능한 가상 머신으로서 풀에 할당될 수 있다. 만약 고장이 발생하여 시스템이 전용 리소스의 요건을 충족시키기 위해 선점가능한 리소스를 가져가야 한다면, 선점가능한 가상 머신이 손실된 또는 고장난 리소스를 대체하는 원래의 목적을 위해 사용될 수 있도록 이러한 가상 머신 상에서 실행중인 선점가능한 잡이 가능한 한 빨리 (아마도 그 즉시) 중단될 것이다.
선점가능한 머신의 다른 소스는 초과 용량 가상 머신이다. 전형적으로, 임의의 네트워크의 피크 부하는 평균 부하와는 다를 것이다. 그 결과, 피크 부하 상황을 처리하기에 충분한 리소스를 갖는 컴퓨팅 환경은 그외에 시간 동안에 이용가능한 초과 리소스를 종종 가질 것이다. 이러한 초과 리소스는 리소스 쿠션(cushion)을 제공한다. 사용자가 추가적인 전용 가상 머신을 요청할 때, 초과 가상 머신이 사용자의 요청을 충족시키도록 사용될 수 있다. 클라우드 컴퓨팅 환경이 전용 머신에 대한 피크 부하보다 작은 부하를 가질 때, 하나 이상의 가상 머신이 자유로울 것이다. 여분의(spare) 용량을 제공하도록 지정된 이러한 가상 머신의 CPU 사이클을 낭비하기보다는, 이러한 가상 머신의 CPU 사이클이 선점가능성이 기반하여 사용자 및 풀에 할당될 수 있다. 전용 가상 머신에 대한 요청의 부하가 증가하면, 이러한 초과 가상 머신 상에서 실행중인 선점가능한 잡이 가능한 한 빨리 (아마도 그 즉시) 중단될 것이다. 이는 선점가능한 가상 머신이 필요시에 추가적인 전용 리소스를 제공하는 원래의 목적을 위해 사용될 수 있게 한다. 추가적으로 또는 이와 달리, 전용 머신에 대한 부하의 일부 증가는 전용 머신에 대해 스케줄링된 요청으로 인한 것일 것이다. 만약 가상 머신이 스케줄링된 시간에 전용 머신으로서 사용되기 위해 이용가능하지 않게 될 것이라면, 가상 머신에 할당된 선점가능한 잡은 선점가능한 잡으로부터 전용 리소스로의 질서있는 트랜지션(transition)을 가능하게 하도록 스케줄링된 시간 이전에 중단될 수 있다.
일부 상황에서, 사용자는 어느 미래의 시간에 다수의 전용 머신에 대한 액세스를 갖기를 원할 수 있다. 이러한 상황에서, 사용자는 하나 이상의 가상 머신을 스탠바이 가상 머신으로서 예약할 수 있다. 가상 머신의 "스탠바이" 예약(standby reservation)은, 미래의 어느 시점에 사용하기 위해 어떠한 풀 또는 계정에 할당될 가상 머신을 해당 풀 또는 계정과 연관하여 예약하는 것이다. 사용을 위해 가상 머신을 공급하는 것은, 단지 충분한 가상 머신 리소스가 클라우드 컴퓨팅 환경 내에서 식별 및/또는 보유되며, 그에 따라 요청시에 가상 머신 리소스가 전용 가상 머신으로의 변환에 이용가능할 것임을 의미할 수 있다. 선택적으로, 스탠바이 머신을 공급하는 것은 가상 머신에 데이터, 실행가능물(executables), 또는 이들의 조합을 공급하는 것도 포함할 수 있다.
스탠바이 가상 머신 예약은 가상 머신의 배정 또는 할당이 아니다. 대신, 스탠바이 가상 머신 예약은 스탠바이 예약과 연관된 사용자 또는 풀에 할당되는 전용 가상 머신으로 변환되도록 유휴 또는 선점가능한 가상 머신에 대한 미래의 권한을 예약한다. 선점가능한 잡은 스탠바이 예약과 연관된 풀 또는 계정, 다른 상이한 풀, 또는 다른 상이한 계정과 연관된 잡일 수 있다. 스탠바이 예약이 풀 또는 계정에 의해 이루어지면, 가상 머신 클러스터로부터의 가상 머신은 해당 풀 또는 계정에 할당되지 않는다. 대신, 충분한 수의 유휴 또는 선점가능한 가상 머신이 이용가능하여 가상 머신 클러스터에 상응하는 스탠바이 예약을 만족시키게 하도록, 계정은 가상 머신 클러스터에 상응하는 스탠바이 예약의 수를 보관한다.
가상 머신 스탠바이 예약은 다양한 이유로 풀과 연관될 수 있다. 스탠바이 머신을 위한 하나의 용도는, 특정한 시간 프레임 동안에만 발생하는 높은 우선순위의 컴퓨터 작업을 갖는 사용자를 위한 용도이다. 예를 들어, 금융 회사는 예를 들어 증권 거래 또는 상품 거래와 같은 하나 이상의 금융 시장의 일과에 대한 분석을 수행하길 원할 수 있다. 금융 시장은 오전 9시30분에 개장하여 오후 4시에 폐장하는 것과 같이 정해진 스케줄로 개장 및 폐장한다. 금융 회사는 분석 또는 시뮬레이션 수행시에 사용하기 위해 금융 시장이 개장되어 있는 시간 동안의 데이터를 종합하길 원할 것이다. 분석의 목적은 다음날 시장이 개장하기 전에 그들의 직원들에게 정보를 제공하는 것이다. 이러한 분석은 다수의 가상 머신을 필요로 할 수 있지만, 가상 머신은 예를 들어 오후 6시부터 다음날 오전 3시30분까지의 시간 사이에만 필요하다. 이러한 시간 동안, 금융 회사는 가상 머신의 이용가능성을 보장받길 원한다. 나머지 시간 동안에는, 금융 회사는 머신을 필요로 하지 않는다. 가상 머신 예약을 금융 회사의 계정과 연관시키는 것이 이러한 목적을 달성시킬 수 있다. 예약 가격을 지불하는 대가로, 금융 회사는 원하는 시간 동안 머신에 대한 이용가능성을 보장받는다. 원하는 시간대 외에는, 가상 머신이 금융 회사 및/또는 다른 사용자에 대한 선점가능한 머신으로서 사용될 수 있다.
스탠바이 예약은 시간 기반 기준 또는 부하 기반 기준에 기초하여 유휴 또는 선점가능한 가상 머신을 사용자에 상응하는 풀에 할당된 전용 머신으로 변환하도록 사용될 수 있다. 일부 상황에서, 스탠바이 예약은 사전결정된 시간 및/또는 날짜에 적어도 부분적으로 기초하여 유휴 또는 선점가능한 가상 머신을 전용 가상 머신으로 변환하게 할 수 있다. 이러한 상황에서, 스탠바이 예약에 기초하여 전용 가상 머신으로 변환되는 선점가능한 가상 머신은, 스케줄링된 이용가능성 이벤트에 앞서 질서정연하게 중단될 수 있다. 이는 시간-기반 기준을 갖는 스탠바이 예약으로서 정의된다. 시간-기반 기준은 부하-기반 문턱값을 정의하도록 사용되는 부하-기반 기준과 대비된다. 부하-기준 문턱값은 하나 이상의 클라우드 리소스의 이용 및/또는 성능에 기초한 문턱값에 상응한다. 바람직하게, 부하-기반 문턱값은 시간-기반 기준의 사용을 제외한다. 시간-기반 기준 및 부하-기반 기준에 추가하여, 스탠바이 예약에 상응하는 하나 이상의 가상 머신을 전용 가상 머신으로 변환하기 위한 또 다른 옵션은 사용자 또는 시스템 관리자로부터의 요청에 기초한다.
스탠바이 예약에 대한 다른 용도는 잡을 스케일-아웃(scaling out) 할 때 향상된 성능을 허용하기 위한 것이다. 예를 들어, 소매점은 휴가에 앞선 쇼핑 시즌 동안 소매업자의 웹사이트를 둘러보고 주문을 하기 위한 온라인 트래픽과 같은 추가적인 온라인 트래픽을 처리하기 위해 클라우드 컴퓨팅 리소스를 사용할 수 있다. 과거의 경험에 기초하여, 소매업자는 소정의 온라인 활동 레벨을 예상하여 상응하는 수의 전용 가상 머신을 예약한다. 그러나, 온라인 활동이 예상보다 큰 경우에, 소매업자는 스탠바이 예약을 통해 추가적인 머신도 예약한다. 그 다음 소매업자는 예상된 활동 레벨보다 높다는 것을 나타내는 하나 이상의 문턱값을 설정할 수 있다. 이러한 문턱값에 도달하면 스탠바이 예약이 유휴 또는 선점가능한 가상 머신을 전용 머신으로 변환하도록 사용될 수 있으며, 그에 따라 소매업자가 자신의 고객이 느린 응답 시간을 겪게 하지 않으면서 추가적인 온라인 트래픽을 처리할 수 있게 한다. 이러한 상황에서, 언제 활동 문턱값에 도달할 것인지 알려지지 않을 수 있기 때문에, 스탠바이 예약은 예측할 수 없는 시간에 전용 머신으로 변환될 수 있다. 활동 문턱값이 되면, 유휴 또는 선점가능한 가상 머신은 스탠바이 예약과 연관된 풀에 할당된 전용 가상 머신으로 변환된다. 만약 선점가능한 태스크가 변환에 앞서 가상 머신 상에서 실행중이라면, 선점가능한 태스크는 가상 머신을 전용 머신으로 변환시키기에 앞서서 중단된다. 선택적으로, 활동 문턱값은 시간-기반 기준을 포함하지 않는다.
분산 네트워크 환경 내의 컴퓨팅 리소스 조직화의 예시
클라우드 컴퓨팅 환경의 사용자는 전형적으로 클라우드 컴퓨팅 리소스를 이용하여 잡을 수행하길 원할 것이다. 잡은 전형적으로 클라우드 컴퓨팅 환경을 통해 액세스 가능한 위치 내에 저장된 데이터에 대해 잡을 수행하는 것을 포함할 것이다. 운영자에 클라우드 컴퓨팅 환경을 제공하는 하나의 방법은 이러한 환경을 다수의 층으로서 제공하는 것이다. 도 1은 클라우드 컴퓨팅 환경 내에서 태스크를 수행하기에 적합한 시스템의 예시를 개략적으로 나타낸다. 도 1의 시스템은 태스크 런타임 층(110), 제3자 태스크 런타임 층(120), 리소스 관리 층(130) 및 스케줄링 및 실행 층(140)을 포함한다.
도 1에 도시된 실시예에서, 태스크 런타임 층(110)은 사용자(105)로부터의 태스크를 위해 실행 환경 및 보안 컨텍스트를 마련하는 책임을 맡는다. 태스크 런타임 층(110)은 또한 태스크를 시작하고 태스크의 상태를 모니터할 수 있다. 태스크 런타임 층(110)은 각각의 가상 머신 상에서 실행하는 시스템 에이전트의 형태를 취할 수 있다. 태스크 런타임 층은 또한 사용자들의 태스크 익스큐터블(executable)들로 링크될 수 있는 런타임 라이브러리를 포함할 수 있다. 태스크 런타임 층(110)의 일부로서 런타임 라이브러리를 구비하는 것은, 잠재적으로 시스템 에이전트에 의해 실행되는 태스크에 보다 풍부한 능력을 제공할 수 있다. 런타임 라이브러리의 예시는, 태스크들 사이에서의 신속한 통신을 허용하기 위한 하나 이상의 효율적인 통신 라이브러리; 다른 가상 머신 및/또는 다른 태스크로부터의 파일을 읽는 것을 지원하기 위한 효율적인 원격 파일 액세스 라이브러리; 태스크의 (예로서, 블랍(binary large object, BLOB)으로의) 체크포인트(checkpoint) 및 재개(resume)를 허용하기 위한 체크포인트 라이브러리; 로깅(logging) 라이브러리; 및 가상 머신들의 풀 내에서 주어진 태스크를 수행하는 가상 머신들에 걸쳐 사용되는 분산 파일 시스템을 제공하기 위한 라이브러리를 포함한다.
제3자 태스크 런타임 층(120)은 추가적인 런타임이 구축되어 태스크 런타임 층(110)의 맨 위에서 실행될 수 있게 한다. 제3자 태스크 런타임 층(120)은 또한 잡에 대한 태스크의 실행을 조정하기 위한 추가적인 성능을 제공할 수 있다. 예시는 가상 머신들의 풀 내에서 주어진 태스크를 수행하는 가상 머신들에 걸쳐 사용되는 분산 파일 시스템을 제공하기 위한 라이브러리로의 MapReduce 런타임을 포함할 수 있다. 이것은 사용자로 하여금 사용자의 잡 또는 태스크에 대해 맞춤화된 방식으로 클라우드 컴퓨팅 환경을 조직화할 수 있도록 한다. 일부 실시예에서, 잡 관리자 태스크는 사용자가 클라우드 컴퓨팅 리소스를 실행 및/또는 제어하게 하고자 제3자 런타임 층을 이용할 수 있게 하는 것을 용이하게 할 수 있다.
리소스 관리 층(130)은 클라우드 컴퓨팅 환경에서 이용가능한 컴퓨팅 리소스의 관리를 다룬다. 하나의 옵션은 리소스 관리 층(130)이 세 개의 서로 다른 레벨에서 리소스를 관리하는 것이다. 제 1 레벨에서, 리소스 관리 층(130)은 잡(즉, 작업 아이템의 실행)과 연관된 가상 머신의 할당 및 할당해제뿐 아니라 태스크와 연관된 각각의 가상 머신 상에 저장된 파일들을 관리한다. 제 2 레벨에서, 잡과 연관된 가상 머신은 머신들의 풀로 그룹화될 수 있다. 풀은 하나 이상의 잡 및/또는 작업 아이템과 연관된 가상 머신을 포함할 수 있다. 실시예에 따라, 단일 풀은 예를 들어 하나의 데이터 센터 내의 모든 가상 머신 클러스터, 하나의 지리학적 영역 내의 복수의 데이터 센터에 걸친 복수의 가상 머신 클러스터, 또는 복수의 지리학적 영역 내의 데이터 센터들에 걸친 복수의 가상 머신 클러스터와 같은 복수의 가상 머신 클러스터에 걸쳐질 수 있다. 단일 풀은 수백만과 같은 다수의 가상 머신을 포함할 수 있다. 가상 머신은 예컨대 수십억에 이르는 다수의 풀 내에 포함될 수 있다. 제 3 레벨에서, 리소스 관리 층은 주어진 풀들의 그룹 내의 잡 또는 작업 아이템과의 연관을 위해 이용가능한 가상 머신의 양을 관리한다. 이것은 시스템의 현재 부하에 기초하여 사용되는 컴퓨트 리소스의 양의 동적 조정을 가능하게 한다. 또한, 현재의 풀들의 그룹에 의해 사용되고 있지 않은 가상 머신들은 다른 풀들의 그룹으로의 편입을 위해 클라우드 컴퓨팅 환경으로 다시 방출될 수 있다.
도 1에 도시된 실시예에서, 스케줄링 및 실행 층(140)은 사용자에 의해 수행되는 작업 아이템, 잡 및 태스크를 관리한다. 스케줄링 및 실행 층(140)은 스케줄링에 대한 결정을 내리고 잡 및 태스크를 시작하는 것뿐 아니라 고장 시에 재시도하는 것을 담당한다. 이러한 스케줄링 및 실행 층(140)은 다양한 레벨에서 잡 및/또는 태스크를 관리하기 위한 구성요소를 포함할 수 있다.
전술된 층은 복수의 지리학적 위치에서 프로세서들을 포함하는 클라우드 컴퓨팅 환경에서 구현될 수 있다. 도 2는 서로 다른 위치에 있는 프로세서들이 단일 클라우드 컴퓨팅 아키텍처 내에서 통합될 수 있는 방법의 예시를 개략적으로 도시한다.
도 2에서, 하나 이상의 태스크 테넌트(215)는 가상 머신들의 풀을 관리하도록 사용될 수 있다. 태스크 테넌트(215)는 가상 머신들의 세트를 유지할 수 있다. 하나 이상의 사용자의 잡은 가상 머신들의 하나 이상의 풀의 일부로서 태스크 테넌트(215) 내의 가상 머신 상에서 실행할 수 있다. 하나 이상의 태스크 테넌트(215)는 주어진 지리학적 영역 내에서 사용될 수 있다. 태스크 테넌트(215)가 책임지는 일은 가상 머신들의 세트를 유지시키는 것과 태스크 테넌트 내의 리소스 활용에 기초하여 태스크 테넌트를 동적으로 확장 또는 축소시키는 것을 포함할 수 있다. 이는 태스크 테넌트(215)가 증가된 고객 수요를 수용하도록 태스크 테넌트 내의 가상 머신들의 수를 증가시킬 수 있게 한다. 또한 이것은 가상 머신이 다른 고객을 위한 서비스를 처리하는 데이터 센터 내의 다른 호스팅된 서비스에 할당될 수 있도록 태스크 테넌트(215)가 사용되지 않는 가상 머신을 방출하는 것을 허용한다. 태스크 테넌트(215)가 책임지는 또 다른 일은 풀 할당/할당해제/관리 로직의 일부를 구현하는 것일 수 있다. 이것은 가상 머신이 고객을 위한 태스크와 연관된 풀에 할당되는 방식을 결정하는 것에 태스크 테넌트(215)가 참여하도록 허용한다. 태스크 테넌트(215)는 또한 태스크 테넌트 내의 가상 머신들 상의 태스크의 스케줄링 및 실행도 책임질 수 있다.
도 2에 도시된 실시예에서, 복수의 태스크 테넌트(215)를 제어하는 하나 이상의 태스크 위치 서비스(225)가 제공된다. 복수의 태스크 테넌트(215)는 주어진 지리학적 영역 내의 모든 태스크 테넌트, 전세계로부터의 다양한 태스크 테넌트, 또는 임의의 다른 편리한 태스크 테넌트의 그룹에 상응할 수 있다. 도 2에서, "미국 북부" 및 "미국 남부"로 분류된 영역을 서비스하는 태스크 위치 서비스(225)가 도시되었다. 태스크 위치 서비스(225)가 맡은 책임은 주어진 지리학적 영역에 대한 태스크 계정의 관리를 포함할 수 있다. 태스크 위치 서비스(225)는 또한 사용자가 클라우드 컴퓨팅 환경과 상호작용할 수 있게 하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있다. 이러한 API는 주어진 지리학적 영역 내의 태스크 테넌트에 걸친 가상 머신들의 풀, 풀 관리 로직 및 풀 관리 로직의 조직화와 연관된 핸들링 API를 포함할 수 있다. API는 또한 사용자에 의해 제출된 태스크를 처리하는 것뿐 아니라, 그러한 사용자 태스크와 연관된 작업 아이템 또는 잡을 유지, 스케줄링 및 종료하기 위한 API를 포함할 수 있다. API는 지리학적 영역 내의 모든 작업 아이템, 잡, 태스크 및 풀들에 대한 통계 수집, 종합 및 보고를 위한 API를 추가로 포함할 수 있다. 또한, API는 가상 머신에 대한 스팟 시장에 기초하여 이용가능한 가상 머신을 사용자에게 단기간 동안 선점가능한 가상 머신으로서 경매하는 것을 허용하기 위한 API를 포함할 수 있다. 또한 API는 사용량을 측정하여 요금청구 지원을 제공하기 위한 API도 포함할 수 있다.
태스크 위치 서비스(225)는 글로벌 위치 서비스(235)에 의해 함께 링크될 수 있다. 글로벌 위치 서비스(235)는 태스크 위치 서비스 테넌트(225)와 함께 태스크 계정들을 관리하는 것을 포함하는 계정 관리 및 계정 생성을 책임질 수 있다. 만약 중대한 데이터 센터 재난이 발생하는 경우, 이는 재난 복구에 대한 책임과 작업 아이템 및 잡의 이용가능성에 대한 책임을 포함한다. 이것은 데이터 센서가 어떠한 이유로 인해서 이용가능하지 않을 때 다른 위치에서 작업 아이템 또는 잡을 실행하는 것을 포함할 수 있다. 이것은 또한 고객이 자신의 작업 아이템, 잡 및 풀을 하나의 데이터 센터로부터 다른 데이터 센터로 이동할 수 있게 하는 것을 포함할 수 있다. 전형적으로 오직 하나의 활성화된 글로벌 위치 서비스(235)가 존재할 것이다. 이러한 활성화된 글로벌 위치 서비스(235)는 다양한 태스크 위치 서비스(225)뿐 아니라 (도시되지 않은) 데이터 스토리지를 관리하기 위한 서비스 구성요소와 통신한다. 글로벌 위치 서비스는 글로벌 계정 네임스페이스(namespace)(237)를 유지할 수 있다.
도 2의 시스템의 동작의 예시로서, 가상 고객 또는 사용자(217)가 글로벌 위치 서비스(235)에 의해 제공되는 인터페이스를 통해 태스크 계정을 생성할 수 있다. 이 예시에서, 가상 고객은 Sally로 지칭된다. 태스크 계정을 생성하라는 사용자 요청은 계정이 생성되어야만 하는 지리학적 영역을 선택적으로 명시할 수 있다. 이러한 예시에서, Sally는 미국 북부 지역과 연관된 계정을 요청한다. 이에 응답하여, 글로벌 위치 서비스(235)는 계정을 생성하도록 요청된 지리학적 영역(미국 북부)에 해당하는 태스크 위치 서비스(225)에 접촉한다. 만약 지역이 요청되지 않으면, 태스크 계정은 요청하는 사용자와 연관된 위치에 기초하는 것과 같이 임의의 편리한 방법에 의해 선택된 지역 내에 생성될 수 있다. 글로벌 위치 서비스(235)는 또한 계정의 재난 복구 카피가 생성되도록 적어도 미국 남부와 같은 다른 지역에도 접촉한다. 선택적으로, 미국 남부가 재난 복구를 위한 시스템 대체작동(failover) 지역으로서의 역할을 하도록 Sally가 요청할 수 있거나, 또는 미국 남부가 임의의 편리한 방법에 의해 시스템을 통해 자동으로 할당될 수 있다. 태스크 위치 서비스(225)는 자신의 지리학적 영역 내에 있는 모든 계정에 대한 모든 정보를 유지한다. 미국 북부 및 미국 남부에 대한 태스크 위치 서비스(225) 내에 계정을 성공적으로 생성한 후에, 글로벌 위치 서비스(235)는 미국 북부에 대한 태스크 위치 서비스(225)의 가상 IP 어드레스로 포인팅하기 위해 Sally의 계정에 대한 태스크 서비스 엔드포인트(endpoint)를 등록한다. 예로서, 미국 북부 내의 태스크 위치 서비스(225)의 가상 IP 어드레스에 "sally.task.core.windows.net"과 같은 호스트네임을 맵핑하도록 도메인 네임 서비스(DNS) 기록이 생성될 수 있다. 이것은 Sally에 대한 태스크 계정의 생성을 완료한다. 만약 미래에 데이터 센서 재난이 발생하면, 글로벌 위치 서비스(235)가 미국 남부로 포인팅하기 위한 DNS 기록을 업데이트할 수 있다.
계정이 생성된 후에, 고객인 Sally는 계정에 액세스할 수 있으며, 호스트네임 "sally.task.core.windows.net"에 대응되는 클라우드 컴퓨팅 환경과 상호작용하도록 API에 액세스하라는 요청을 전송할 수 있다. 예를 들어, Sally는 새로운 작업 아이템 또는 태스크를 생성하라는 요청을 발행하기 위해 API에 액세스할 수 있다. 그 다음 DNS 서버가 호스트네임을 리졸브(resolve)할 수 있으며 요청은 올바른 태스크 위치 서비스 테넌트(225)에 라우팅될 것이다. 이러한 예시에서, 요청은 이러한 요청을 프로세싱하여 요청된 작업 아이템, 잡, 또는 태스크를 생성하는 미국 북부에 대한 태스크 위치 서비스 테넌트(225)로 라우팅된다.
도 3은 태스크 위치 서비스에 대한 가능한 구성을 도시한다. 도 3에 도시된 구성에서, 태스크 위치 서비스는 하나 이상의 계정 서버(321)를 포함할 수 있다. 계정 서버는 생성, 삭제, 또는 속성(property) 업데이트를 포함하는 주어진 지리학적 영역 내의 계정들에 대한 계정 관리를 처리한다. 계정 프론트 엔드(322)는 계정 서비스를 위한 프론트 엔드 노드로서의 역할을 한다. 계정 프론트 엔드(322)는 도면에 도시된 바와 같이 계정 가상 IP 어드레스(324) 뒤에 있다. 계정 프론트 엔드(322)는 계정을 생성 또는 삭제하라는 API 요청과 같은 글로벌 위치 서비스로부터 들어오는 계정 API 요청을 프로세싱한다.
도 3의 구성은 또한 하나 이상의 풀 서버(331)도 포함한다. 풀 서버(331)는 주어진 지리학적 영역 내의 가상 머신들의 풀들에 대한 풀 관리 및 풀 거래(transaction)를 처리한다. 풀 서버(331)는 풀 생성, 삭제 및 속성 업데이트를 처리한다. 풀 서버(331)는 또한 복수의 태스크 테넌트에 걸친 높은 레벨 가상 머신 할당 알고리즘을 관리한다. 가상 머신 할당은 주어진 사용자에 대한 스토리지와 가상 머신의 접속성을 고려할 수 있다. 또한 풀 서버는 가상 머신들의 할당과 관련된 다른 태스크들도 수행할 수 있다.
도 3의 구성은 또한 하나 이상의 작업 아이템 또는 잡 스케줄러(WIJ)(336)를 포함한다. WIJ 스케줄러(336)는 작업 아이템 및 잡의 생성, 삭제 및 업데이트를 처리한다. 또한, 만약 작업 아이템 또는 잡이 시작 또는 종료될 때 사용자가 풀들의 자동 생성 및/또는 파기(destruction)를 요청하였다면, WIJ 스케줄러(336)는 작업 아이템 또는 잡과 연관된 풀들의 생성 및 삭제를 개시할 수 있다. WIJ 스케줄러(336)는 또한 스케일링을 위한 포괄적인 분할 메커니즘을 사용한다. 실시예에서, 각각의 태스크 위치 서비스 내에 복수의 WIJ 스케줄러(336)가 존재하며, 각각의 WIJ 스케줄러는 다양한 작업 아이템을 처리한다.
풀 서버(331) 및 WIJ 스케줄러(336)는 태스크 위치 서비스 프론트 엔드(338)를 통해서 사용자로부터의 요청을 수신한다. 태스크 위치 서비스 프론트 엔드(338)는 또한 사용자로부터의 요청을 프로세싱하기 위해 상응하는 구성요소를 호출하는 책임을 갖는다. 태스크 위치 서비스 프론트 엔드(338)는 도면에 도시된 바와 같이 WA 태스크 가상 IP 어드레스(334) 뒤에 존재한다.
도 3의 구성은 태스크 위치 서비스 마스터(342)를 더 포함한다. 실시예에서, 태스크 위치 서비스 마스터(342)는 두 개의 주요한 책임을 갖는다. 첫째, 태스크 위치 서비스 마스터(342)는 태스크 위치 서비스(225) 내의 상응하는 서버에 대한 분할 로직을 구현하기 위한 마스터 시스템으로서의 역할을 한다. 또한, 태스크 위치 서비스 마스터(342)는 태스크 위치 서비스의 전체 지리학적 영역에 대해 각 스팟 기간의 시작시에 선점가능한 가상 머신에 대한 새로운 시장 가격을 계산하는 책임을 가질 수 있다. 이것은 풀 서버 및 태스크 테넌트로부터 현재 응찰 및 리소스 이용가능성 정보를 수집할 수 있으며, 그에 따라 새로운 시장 가격을 계산할 수 있다. 이와 달리, 태스크 위치 서비스 마스터는 스팟 가격 시장 서비스에 응찰 및 리소스 이용가능성 정보를 전송할 수 있다. 또한 지리학적 영역 내의 모든 태스크 테넌트에 걸친 선점가능한 가상 머신에 대해 풀 서버로의 높은 레벨 할당 지침(guidance)을 만든다.
컴퓨팅 환경의 양상 및 활동을 추적하기 위해서, 태스크 위치 서비스 마스터(342)는 하나 이상의 통계 종합 서버(355)와 통신할 수 있다. 통계 종합 서버는 태스크, 잡, 작업 아이템 및 풀에 대한 상세한 통계를 수집하여 종합하는 책임을 갖는다. 시스템 내의 다른 구성요소는 태스크 및 가상 머신에 대한 매우 정제된(fine-grained) 통계를 방출한다. 통계 종합 서버는, 태스크 레벨 또는 가상 머신 레벨 통계로부터의 이러한 매우 정제된 통계를 작업 아이템, 계정 레벨 및/또는 풀 레벨 통계로 종합한다. 통계는 API를 통해 사용하도록 노출될 수 있다. 또한, 통계 종합 서버는 요금 청구에 사용하기 위해 각 계정에 대한 시간별 측정 기록을 생성하는 책임을 가질 수 있다.
도 4는 태스크 테넌트에 대한 구성요소 및 상응하는 책임의 예시를 포함하는, 태스크 테넌트의 실시예의 예시적인 높은 레벨 아키텍처를 도시한다. 전술된 바와 같이, 태스크 테넌트는 가상 머신들의 풀 관리를 도울 수 있다. 도 4에 도시된 실시예에서, 태스크 테넌트는 하나 이상의 태스크 테넌트 프론트 엔드(422)를 포함한다. 태스크 테넌트 프론트 엔드(422)는 태스크 위치 서비스와 태스크 테넌트 사이의 요청을 통과하는 것을 포함하여, 태스크 테넌트와 그의 상응하는 태스크 위치 서비스 사이의 통신에 내부적으로 사용되는 태스크 테넌트 가상 IP 어드레스(424) 뒤에 존재한다.
도 4에 도시된 실시예에서, 태스크 테넌트는 또한 태스크 스케줄러(436)도 포함한다. 태스크 스케줄러(436)는 태스크 테넌트 내에서 로컬 태스크 스케줄링 결정을 내리는 책임을 가질 수 있다. 태스크 스케줄러(436)는 어느 태스크가 자신이 제어하는 각각의 가상 머신 상에서 실행될지를 결정한다. 예를 들어, 사용자에 의해 제출된 작업 아이템 또는 잡은 스케줄링될 태스크들의 리스트를 포함하는 큐(queue)들의 세트를 구비할 수 있다. 태스크 스케줄러(436)는 큐들의 세트로부터 태스크를 취하고, 잡과 연관된 풀 내의 하나 이상의 이용가능한 가상 머신을 선택하며, 이러한 태스크를 스케줄링하기 위해 가상 머신(들)에 접촉한다. 태스크 스케줄러(436)는 또한 잡과 연관된 우선순위 값에 기초하여 스케줄링 결정을 내릴 수도 있다. 또한, 태스크 스케줄러(436)는 태스크 테넌트 내의 가상 머신들을 계속 추적한다. 태스크 스케줄러(436)는 가상 머신을 풀에 할당/가상 머신을 풀로부터 할당해제하기 위해 풀 서버와 작동한다. 또한, 태스크 스케줄러(436)는 모든 가상 머신과의 박동을 유지하고, 이를 통해 풀 멤버십과 관련된 가상 머신과 동기화하며, 가상 머신들의 재시작/리이미징(reimage)을 제어한다. 태스크 스케줄러(436)의 또 다른 기능은 태스크 테넌트의 크기를 파악하는 것일 수 있다. 태스크 테넌트 내의 가상 머신들의 현재 활용에 기초하여, 태스크 테넌트가 자신과 연관된 태스크들을 실행하기 위한 충분한 수의 가상 머신을 구비하도록, 태스크 스케줄러가 태스크 테넌트를 확장 또는 축소할 수 있다. 유사하게, 만약 태스크 테넌트 내에 유휴 상태인 가상 머신이 너무 많다면, 머신들은 데이터 센터 내의 다른 호스팅된 서비스에 의한 사용을 위해 방출될 수 있다.
도 4는 또한 태스크 테넌트와 연관된 복수의 가상 머신을 도시한다. 도 4에 도시된 실시예에서, 각각의 가상 머신은 태스크 가상 머신 에이전트(450)(TVM)를 포함한다. 실시예에서, 태스크 가상 머신 에이전트(450)는 가상 머신 상에서 태스크를 시작하는 것뿐 아니라 태스크에 대한 디렉토리 구조 및 승인을 수립하는 책임을 갖는다. 이것은 또한 (만약 풀이 내부통신을 필요로 한다면) 오직 동일한 풀 내에 있는 가상 머신들 사이에서의 트래픽만을 허용하도록 가상 머신 상의 운영 시스템 방화벽을 구성한다. 앞서 논의된 바와 같이, 태스크 스케줄러(436)는 태스크 가상 머신 에이전트(450)를 통해 가상 머신과의 박동을 유지한다. 이것은 태스크 스케줄러(436)가 가상 머신들의 건강을 모니터링할 뿐 아니라 태스크 가상 머신 에이전트에 대해 풀 멤버십 정보를 동기화할 수 있게 한다.
클라우드 컴퓨팅 환경 내의 잡들의 실행 예시
아래의 가상적인 예시는 클라우드 컴퓨팅 환경 내의 전용 가상 머신, 스탠바이 가상 머신 및 선점가능한 가상 머신의 동작 및 상호작용을 설명하도록 제공되었다. 이러한 예시에서, 도면과 함께 설명을 단순화하기 위해서 작은 수의 가상 머신이 논의될 것이다. 그러나, 당업자는 본 명세서에 기술된 개념이 임의의 원하는 수의 가상 머신으로 스케일-업 될 수 있음을 인식할 것이다.
Abel이라는 이름의 사용자는 클라우드 컴퓨팅 환경에서 잡을 실행하기 위한 계정을 갖는다. 잡은 데이터 마이닝(mining) 및 사업을 위한 관리를 수행하는 것, 과학적 계산을 수행하는 것, 또는 소매 고객 트래픽을 다루는 것과 같은 임의의 타입의 컴퓨팅을 수행하기 위한 잡일 수 있다. 초기 요청에서, Abel은 5개의 전용 머신 및 3개의 스탠바이 머신을 요청한다. 이러한 예시에서, 계산은 스토리지 내에 보관된 데이터를 연관시켰으며, Abel은 Abel의 데이터에 대한 스토리지 서버와의 더 나은 접속성 및/또는 더 높은 통신 속도를 갖는 머신을 선호한다고 표시한다.
도 5는 Abel의 요청을 만족시키도록 머신을 할당 및 연관시키는 예시를 나타낸다. 도 5에서, 두 개의 서로 다른 태스크 테넌트(510, 511) 내의 가상 머신들이 도시되었다. 태스크 테넌트(510)는 더 높은 데이터 전송 레이트 및/또는 Abel의 데이터가 저장된 스토리지(520)와의 향상된 접속성에 해당하는 다른 특징을 갖는다. Abel과 같이 향상된 접속성을 이용하길 사용자는 태스크 테넌트(510)에 대한 친화성(affinity)을 갖는 요청을 제출할 수 있다. 도 5는 태스크 테넌트(510, 511) 내의 각 9개의 가상 머신을 도시한다. 도 5에 도시된 가상 머신은 대표적인 것이며, 임의의 편리한 수의 추가적인 머신이 태스크 테넌트(510) 또는 태스크 테넌트(511)에 의해 관리될 수 있다.
도 5에서, 태스크 테넌트 내에 있는 여러 상태의 머신들을 볼 수 있다. 사용자에 상응하는 풀에 할당된 가상 머신은 명칭 (?)D에 의해 표시된 전용 머신 또는 (?)P에 의해 표시된 선점가능한 머신일 수 있다. 또한, 태스크 테넌트 내의 머신들은 유휴 상태일 수 있다. 각각의 태스크 테넌트는 또한 태스트 테넌트와 연관된 요청된 스탠바이 예약의 수를 파악하는 카운트를 포함한다. 만약 스탠바이 예약이 특정한 태스크 테넌트(또는 다른 가상 머신 클러스터)에 대한 친화성을 갖는 요청의 일부가 아니라면, 스탠바이 예약은 임의의 편리한 태스크 테넌트와 연관될 수 있다. 선택적으로, 글로벌 카운트 및/또는 사용자당 카운트가 스탠바이 예약의 수를 파악하도록 사용될 수 있다. 이러한 글로벌 카운트 및/또는 사용자당 카운트는 태스크 테넌트에 대한 스탠바이 예약을 파악하는 것에 추가로 또는 그 대신 사용될 수 있다. 태스크 테넌트에 대한 친화성을 갖는 스탠바이 예약에 대해서, 태스크 테넌트와 연관된 스탠바이 예약을 파악하는 것이 바람직하다.
도 5에서, Abel에 의해 요청된 5개의 전용 가상 머신이 태스크 테넌트(510) 내의 이용가능한 가상 머신으로부터 할당된다. 이러한 전용 머신은 도 5에서 참조번호(531)에 의해 표시되었으며, Abel-전용을 나타내도록 명칭 A(D)를 포함한다. 가상 머신(546)은 사용자 David와 연관된 전용 머신-D(D)이다. 도 5에 도시된 초기 구성에서, 세 개의 남아있는 가상 머신(557)은 유휴 상태이다. Abel에 상응하는 풀에 대한 세 개의 스탠바이 예약은 스탠바이 카운트(517)에 의해서 파악된다. Abel에 대한 스탠바이 예약은 태스크 테넌트에 대한 요청된 친화성으로 인해 태스크 테넌트(510)와 연관된다. 태스크 테넌트(511)는 하나 이상의 다른 사용자에게 전용 머신으로서 할당된 2개의 머신(562)을 포함한다. 이러한 머신들은 R(D)로서 표기되었다. 태스크 테넌트(511) 내의 남아있는 가상 머신(558)은 유휴 상태이다. 다른 사용자로부터의 스탠바이 예약으로 인해, 태스크 테넌트(511)에 대한 스탠바이 카운트(518)는 7이다. 태스크 테넌트(511)에 대한 스탠바이 카운트는 태스크 테넌트(511)에 대한 친화성을 갖는 스탠바이 예약을 나타낼 수 있거나, 또는 스탠바이 카운트는 태스크 테넌트(511)와 스탠바이 예약의 명목상 연관을 반영할 수 있으며, 그에 따라 일부 태스크 테넌트가 모든 현재의 스탠바이 예약을 만족시키도록 충분한 수의 비-전용 머신을 보유하기 위한 책임을 갖는다.
Abel의 계정에 가상 머신을 할당한 후에, Abel에 의해 제출된 임의의 작업 아이템이 전용 머신(531) 상에서 수행된다. 만약 작업 아이템이 없다면, 전용 가상 머신은 유휴 상태로 남아있게 된다.
소정의 기간 후에, 사용자 Baker 및 Oliver가 일부 추가적인 컴퓨팅 리소스를 사용하도록 결정한다. 추가적인 리소스를 사용하는 시기는 긴급하지 않으며, 따라서 Baker 및 Oliver는 각각 5개의 선점가능한 가상 머신을 요청한다. 다음 할당 기간 동안, Oliver 및 Baker로부터 제공된 응찰은 요청된 5개의 선점가능한 가상 머신의 할당을 얻기에 충분하다. 이러한 예시에서, Oliver에 의해 제공된 응찰은 Baker에 의해 제공된 응찰보다 높다. 이는 Oliver에 대한 선점가능한 머신이 Baker에 대한 선점가능한 머신보다 더 높은 우선권을 갖는 결과를 가져온다. 도 6은 사용자 Oliver가 이제 태스크 테넌트(510, 511) 내에 선점가능한 머신 O(P)로서 할당된 가상 머신(672, 673)을 갖는다는 것을 나타낸다. 이러한 머신은 Oliver에 상응하는 풀에 할당된다. 유사하게, 태스크 테넌트(511) 내의 가상 머신(677)은 B(P)에 의해 표시되는 바와 같이 Baker에 상응하는 풀에 할당된다.
도 7은 스탠바이 예약을 전용 가상 머신으로 변환하라는 Abel에 의한 요청 후에 Abel에게 할당된 가상 머신에 대한 구성의 예시를 나타낸다. 가상 머신(546)은 David에게 전용 머신으로서 할당되었으며, 따라서 Abel로부터의 추가 전용 머신에 대한 요청에 의해 영향을 받지 않는다. 대신, Oliver에게 할당되었던 태스크 테넌트(510)로부터의 세 개의 선점가능한 가상 머신이 Abel에게 할당되는 전용 가상 머신(733)으로 변환된다. Abel이 모든 스탠바이 예약을 전용 가상 머신으로 변환하였고 추가적인 스탠바이 예약을 요청하지 않았기 때문에, 태스크 테넌트(510)에 대한 스탠바이 카운트는 0으로 감소된다.
도 7에 도시된 예시에서, Oliver에게 할당된 태스크 테넌트(510) 내의 가상 머신들은 Abel에 의해 요청된 친화성으로 인해 선점되도록 선택되었다. 그러나, 선점가능한 가상 머신에 대한 Oliver의 응찰이 Baker보다 더 높았으며, 이는 선점가능한 가상 머신에 대한 더 높은 우선권이 Oliver에게 할당되게 한다. 선점가능한 가상 머신에 대한 Oliver의 더 높은 우선권을 복구하기 위해서, 세 개의 가상 머신이 태스크 테넌트(511)로부터 Oliver에게 할당될 수 있다. 전형적으로 하나의 풀로부터 다른 풀에 있는 선점가능한 머신으로의 선점가능한 머신의 할당 변경은 새로운 할당 기간의 시작시에 발생한다. 그러나, 전용 가상 머신에 대한 Abel의 요청에 의한 Oliver의 이동으로 인해, 태스크 테넌트(511) 내의 선점가능한 머신이 할당 기간의 종료를 기다리지 않고 Oliver에게 재할당될 수 있다. 이것은 머신(874)을 선점가능한 가상 머신으로서 Oliver에게 할당함으로써 도 8에 나타내어졌다. 이러한 예시에서, Oliver에게 재할당된 가상 머신은 가장 낮은 우선권을 갖는 가상 머신을 선택함으로써 선택될 수 있다. 가장 낮은 우선권을 갖는 가상 머신은 유휴 상태인 가상 머신, 가장 낮은 응찰에 상응하는 선점가능한 가상 머신, 또는 그외의 이유로 가장 낮은 우선권을 갖는 선점가능한 가상 머신을 나타낼 수 있다.
다수의 원하는 컴퓨터 잡을 완료한 후에, Abel은 컴퓨팅 리소스를 원래의 레벨로 복구시키길 원한다. 수동으로 또는 자동으로, Abel은 5개의 전용 머신 및 3개의 스탠바이 머신으로 리소스의 감소를 요청한다. 이러한 감소 요청의 결과가 도 9에 개략적으로 도시되었다. Abel에 의해 요청된 전용 리소스의 감소는 이용가능한 가상 머신 수의 증가를 발생시킨다. 이것은 가상 머신(978)에 의해 표시된 바와 같이 선점가능한 머신에 대한 Baker의 요청 중 남아있는 부분이 충족되게 한다. 태스크 테넌트(510)에 대한 스탠바이 카운트는 태스크 테넌트(510)에 대한 친화성을 갖는 Abel에 의해 요청된 스탠바이 예약을 반영하기 위해 다시 3으로 증가된다.
추가적인 실시예
위에서 본 발명의 다양한 실시예에 대한 개관이 간략하게 기술되었으며, 이제 가상 머신을 구현하기에 적합한 예시적인 운영 환경이 기술된다. 도면들을 전반적으로 참조하고, 먼저 특히 도 10를 참조하면, 본 발명의 실시예를 구현하기 위한 예시적인 운영 환경이 도시되었고 일반적으로 컴퓨팅 디바이스(1000)로 지정되었다. 그러나 컴퓨팅 디바이스(1000)는 적절한 컴퓨팅 환경의 일 예시이며 본 발명의 용도 또는 기능의 범주에 대한 어떠한 제한을 두기 위한 것은 아니다. 또한 컴퓨팅 디바이스(1000)가 도시된 임의의 하나의 구성요소 또는 구성요소들의 조합과 관련한 어떠한 의존성 또는 필요조건을 갖는 것으로 해석되어서는 안된다.
본 발명의 실시예는 컴퓨터, 또는 PDA 또는 다른 핸드헬드 디바이스와 같은 다른 머신에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능한 명령을 포함하는 컴퓨터 코드 또는 머신-이용가능한 명령의 일반적인 맥락으로 기술될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함하는 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추출 데이터 타입을 구현하는 코드를 지칭한다. 본 발명은 핸드헬드 디바이스, 소비자 전자기기, 범용 컴퓨터, 보다 전문적인 컴퓨팅 디바이스 등을 포함하는 다양한 시스템 구조에서 실현될 수 있다. 본 발명은 또한 통신 네트워크를 통해 링크되는 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다.
도 10를 계속 참조하면, 컴퓨팅 디바이스(1000)는 메모리(1012), 하나 이상의 프로세서(1014), 하나 이상의 선택적 프레젠테이션 구성요소(1016), 입력/출력(I/O) 포트(1018), 선택적 I/O 구성요소(1020) 및 예시적인 파워 서플라이(1022)를 직접 또는 간접적으로 연결하는 버스(1010)를 포함한다. 버스(1010)는 (어드레스 버스, 데이터 버스, 또는 이들의 조합과 같은) 하나 이상의 버스일 수 있는 버스를 나타낸다. 도 10의 다양한 블록들이 명료성을 위해 실선으로 도시되었지만, 현실에서는 기술하는 다양한 구성요소들은 그렇게 명확하지 않으며, 비유적으로 라인들은 보다 정확히는 애매하며 또렷하지 않을 것이다. 예를 들어, 누군가는 디스플레이 디바이스와 같은 프레젠테이션 구성요소를 I/O 구성요소로 간주할 수 있다. 또한, 다수의 프로세스가 메모리를 구비한다. 본 발명의 출원인은 이것이 당업계의 특성임을 인식하며, 도 10의 도면이 단지 본 발명의 하나 이상의 실시예와 관련하여 사용될 수 있는 예시적인 컴퓨팅 디바이스를 나타낸 것임을 반복한다. "워크스테이션", "서버", "랩탑", "핸드헬드 디바이스" 등과 같은 카테고리는 모두 도 10의 범주 내에 고려되며 "컴퓨팅 디바이스"로 지칭되기 때문에, 이들 카테고리들을 구별하지 않는다.
컴퓨팅 디바이스(1000)는 전형적으로 다양한 컴퓨터 판독가능한 매체를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스(1000)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 제거가능 및 제거 불가능한 매체 모두를 포함한다. 예시로서, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이것으로 제한되지는 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 제거 불가능 매체를 포함한다. 컴퓨터 저장 매체는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 삭제가능한 프로그램가능한 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 홀로그래픽 메모리, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그외의 자기 스토리지 디바이스, 또는 원하는 정보를 인코딩하도록 사용될 수 있고 컴퓨팅 디바이스(1000)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 제한되지는 않는다. 실시예에서, 컴퓨터 저장 매체는 실재하는 컴퓨터 저장 매체로부터 선택될 수 있다. 다른 실시예에서, 컴퓨터 저장 매체는 비일시적인 컴퓨터 저장 매체로부터 선택될 수 있다.
통신 매체는 전형적으로 반송파와 같은 변조된 데이터 신호 또는 그외의 전송 메커니즘 내의 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 그외의 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 표현은 신호 내의 정보를 인코딩하는 것과 관련된 방식으로 설정 또는 변경된 하나 이상의 자신의 특징을 갖는 신호를 의미한다. 예시로서, 통신 매체는 유선 네트워크 또는 다이렉트-와이어 접속과 같은 유선 매체 및 음향, RF, 적외선 및 그외의 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 한정되는 것은 아니다. 전술된 것들의 조합 또한 컴퓨터 판독가능한 매체의 범주 내에 포함되어야만 한다.
메모리(1012)는 휘발성 및/또는 비휘발성 메모리의 형태인 컴퓨터 저장 매체를 포함할 수 있다. 메모리는 제거가능한 메모리이거나, 제거 불가능한 메모리이거나, 또는 이들의 조합일 수 있다. 예시적인 하드웨어 디바이스는 고체-상태 메모리, 하드 드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 디바이스(1000)는 메모리(1012) 또는 I/O 구성요소(1020)와 같은 다양한 엔티티로부터 데이터를 판독하는 하나 이상의 프로세서를 포함한다. 프레젠테이션 구성요소(들)(1016)는 사용자 또는 다른 디바이스에게 데이터 표시를 제시한다. 예시적인 프레젠테이션 구성요소는 디스플레이 디바이스, 스피커, 프린팅 구성요소, 진동 구성요소 등을 포함한다.
I/O 포트(1018)는 일부가 내장될 수 있는 I/O 구성요소(1020)를 포함하는 다른 디바이스에 컴퓨팅 디바이스(1000)가 논리적으로 연결되게 할 수 있다. 예시적인 구성요소는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 디바이스 등을 포함할 수 있다.
본 발명의 실시예는, 모든 점에 있어서 제한적이기보다는 예시적인 특정한 실시예와 관련하여 기술되었다. 다른 실시예들이 본 발명의 범주로부터 벗어나지 않고 본 발명이 관련된 업계의 당업자에게 명백해질 것이다.
도 11은 본 발명에 따른 방법의 예시를 도시한다. 도 11에서, 제 1 사용자에 상응하는 제 1 가상 머신 풀과 연관된 가상 머신의 하나 이상의 스탠바이 예약에 대한 요청이 수신된다(1110). 하나 이상의 선점가능한 가상 머신이 제 2 사용자에 상응하는 제 2 가상 머신 풀에 할당된다(1120). 제 2 가상 머신 풀에 대한 하나 이상의 태스크가 할당된 선점가능한 가상 머신 상에서 수행된다(1130). 그 다음 부하-기반 문턱값이 만족되었음이 결정된다. 부하-기반 문턱값은 제 1 가상 머신 풀에 할당된 전용 머신으로 스탠바이 예약을 전환하기 위한 문턱값에 해당한다. 제 2 가상 머신 풀에 할당된 적어도 하나의 선점가능한 가상 머신이 선점을 위해 선택된다(1150). 이러한 선택은 예를 들어 더 짧은 시간의 길이 동안 태스크를 수행하였거나 가장 낮은 응찰과 연관된 것과 같이 가장 낮은 우선권을 갖는 선택된 가상 머신에 기초할 수 있다. 이에 더하여 또는 이와 달리, 선택은 제 2 가상 머신 풀에 할당된 머신을 포함하는 가상 머신 클러스터에 대한 제 1 가상 머신 풀에 대한 친화성에 기초할 수 있다. 친화성은 예를 들어 동일한 (또는 소수의) 가상 머신 클러스터 내의 제 1 가상 머신 풀 내의 가상 머신을 갖기 위한 친화성에 기초하거나 데이터 저장 위치로의 가상 머신 클러스터의 향상된 접속성에 기초할 수 있다. 적어도 하나의 선택된 가상 머신 상의 태스크 수행이 중단된다(1160). 적어도 하나의 선택된 가상 머신이 전용 가상 머신으로서 제 1 가상 머신 풀에 할당된다(1170).
도 12는 본 발명에 따른 방법의 다른 예시를 나타낸다. 도 12에서, 사용자에 상응하는 가상 머신 풀과 연관된 가상 머신의 스탠바이 예약의 수가 파악된다(1210). 제 1 양만큼의 전용 가상 머신의 수 및 제 2 양만큼의 스탠바이 예약의 수를 증가시키라는 사용자로부터의 요청이 수신된다(1220). 선택적으로, 요청은 사용자로부터의 복수의 통신 및/또는 복수의 자동으로 트리거되는 메시지의 형태일 수 있다. 하나 이상의 스탠바이 예약 중 적어도 하나는 가상 머신 풀에 할당된 전용 가상 머신으로 변환된다(1230). 하나 이상의 추가 스탠바이 예약이 가상 머신 풀과 연관되며(1240), 연관된 추가적인 스탠바이 예약의 수는 제 2 양만큼의 요청된 증가를 획득하기에 충분하다. 하나 이상의 태스크가 적어도 하나의 변환된 전용 가상 머신을 이용하여 가상 머신 풀에 대해 수행된다(1250).
도 13은 본 발명에 따른 방법의 또 다른 예시를 나타낸다. 도 13에서, 제 1 가상 머신 클러스터로부터의 제 1 가상 머신이 선점가능한 가상 머신으로서 제 1 가상 머신 풀에 할당된다(1310). 할당은 할당 기간 동안 이루어질 수 있다. 제 2 가상 머신 클러스터로부터의 제 2 가상 머신 또한 할당 기간 동안 선점가능한 가상 머신으로서 제 2 가상 머신 풀에 할당된다(1320). 하나 이상의 태스크가 제 1 선점가능한 가상 머신 및 제 2 선점가능한 가상 머신 상에서 수행된다(1330). 제 1 선점가능한 가상 머신 상의 하나 이상의 태스크는 제 2 선점가능한 가상 머신 상의 태스크보다 더 높은 우선권을 갖는다. 그 다음 하나 이상의 전용 가상 머신에 대한 요청이 제 3 가상 머신 풀로부터 수신된다(1340). 그 다음 제 1 선점가능한 가상 머신이 제 3 가상 머신 풀에 할당된 전용 가상 머신으로 변환된다(1350). 제 2 선점가능한 가상 머신의 할당은 제 2 가상 머신 풀로부터 제거된다(1360). 그 다음 제 2 선점가능한 가상 머신이 제 1 가상 머신 풀에 할당된다(1370). 그 다음 제 1 가상 머신 풀에 대한 적어도 하나의 태스크가 제 2 선점가능한 가상 머신 상에서 개시된다(1380). 적어도 하나의 태스크가 할당 기간의 종료에 앞서 개시된다.
실시예에서, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법이 제공된다. 이 방법은, 제 1 사용자에 상응하는 제 1 가상 머신 풀(virtual machine pool)과 연관된 가상 머신에 대한 하나 이상의 스탠바이 예약(standby reservation) 요청을 제 1 사용자로부터 수신하는 단계와, 제 2 사용자에 상응하는 제 2 가상 머신 풀에 하나 이상의 선점가능한 가상 머신(preemptible virtual machine)을 할당하는 단계와, 할당된 선점가능한 가상 머신을 이용하여 제 2 가상 머신 풀에 대해 하나 이상의 태스크를 수행하는 단계와, 제 1 가상 머신 풀에 대한 적어도 하나의 스탠바이 예약의 변환을 위한 부하-기반 문턱값(load-based threshold)이 만족되었음을 결정하는 단계와, 제 2 가상 머신 풀과 연관된 응찰 가격 및 선점가능한 가상 머신 상에서 태스크를 수행한 시간의 길이 중 적어도 하나에 기초하여 제 2 가상 머신 풀에 할당된 적어도 하나의 선점가능한 가상 머신을 선점(preemption)을 위해 선택하는 단계와, 적어도 하나의 선택된 가상 머신 상에서의 태스크 수행을 중단하는 단계와, 제 1 가상 머신 풀에 적어도 하나의 선택된 가상 머신을 전용 가상 머신(dedicated virtual machine)으로서 할당하는 단계를 포함한다.
다른 실시예에서, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법이 제공된다. 이 방법은, 사용자에 상응하는 가상 머신 풀과 연관된 가상 머신에 대한 스탠바이 예약 수를 파악하는 단계와, 사용자로부터 가상 머신 풀에 할당된 전용 머신의 제 1 수량만큼의 증가 및 가상 머신 풀과 연관된 스탠바이 예약 수의 제 2 수량만큼의 증가 요청을 수신하는 단계와, 하나 이상의 스탠바이 예약 중 적어도 하나를 가상 머신 풀에 할당된 전용 가상 머신으로 변환하는 단계와, 하나 이상의 추가적인 스탠바이 예약을 가상 머신 풀과 연관시키는 단계 -상기 추가적인 스탠바이 예약의 수는 스탠바이 예약 수를 제 2 수량만큼 증가시키는 것을 달성하기에 충분함- 와, 적어도 하나의 변환된 전용 가상 머신을 이용하여 가상 머신 풀에 대한 하나 이상의 태스크를 수행하는 단계를 포함한다.
또 다른 실시예에서, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법이 제공된다. 이 방법은, 할당 기간 동안 선점가능한 가상 머신으로서 제 1 가상 머신 클러스터로부터의 제 1 가상 머신을 제 1 가상 머신 풀에 할당하는 단계와, 할당 기간 동안 선점가능한 가상 머신으로서 제 2 가상 머신 클러스터로부터의 제 2 가상 머신을 제 2 가상 머신 풀에 할당하는 단계와, 제 1 선점가능한 가상 머신 및 제 2 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계 -상기 제 1 선점가능한 가상 머신 상의 하나 이상의 태스크는 제 2 선점가능한 가상 머신 상의 하나 이상의 태스크보다 높은 우선권을 가짐- 와, 하나 이상의 전용 가상 머신에 대한 요청을 제 3 가상 머신 풀로부터 수신하는 단계 -상기 요청은 제 1 가상 머신 클러스터에 대한 친화성을 포함함- 와,
상기 제 1 선점가능한 가상 머신을 제 3 가상 머신 풀에 할당된 전용 가상 머신으로 변환하는 단계와, 제 2 가상 머신 풀로부터의 제 2 선점가능한 가상 머신의 할당을 제거하는 단계와, 제 1 가상 머신 풀에 제 2 선점가능한 가상 머신을 할당하는 단계와, 할당 기간의 종료 이전에 제 2 선점가능한 가상 머신 상에서 제 1 가상 머신 풀에 대한 적어도 하나의 태스크를 개시하는 단계를 포함한다.
전술된 내용으로부터, 본 발명이 위에서 구조에 대해 명백하고 고유한 다른 장점들과 함께 개진된 모든 목표 및 목적을 이루도록 잘 적응된다는 것을 알 수 있을 것이다.
소정의 특징 및 서브조합들이 이용가능하며, 다른 특징 및 서브조합에 대한 언급 없이 사용될 수 있음이 이해될 것이다. 이것은 특허청구범위에 의해 고려되며 그 범주 내에 포함된다.

Claims (10)

  1. 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법으로서,
    제 1 사용자에 대응하는 제 1 가상 머신 풀(virtual machine pool)과 연관된 가상 머신 중 하나 이상의 가상 머신에 대한 스탠바이 예약(standby reservation) 요청을 상기 제 1 사용자로부터 수신하는 단계와,
    제 2 사용자에 대응하는 제 2 가상 머신 풀에 하나 이상의 선점가능한 가상 머신(preemptible virtual machine)을 할당하는 단계와,
    상기 할당된 선점가능한 가상 머신을 이용하여, 상기 제 2 가상 머신 풀에서 수행되도록 주어진 하나 이상의 태스크를 수행하는 단계와,
    상기 제 1 가상 머신 풀의 스탠바이 예약된 적어도 하나의 가상 머신을 전용 가상 머신(dedicated virtual machine)으로 변환하기 위한 부하 기반 문턱값(load-based threshold)이 만족되었음을 결정하는 단계와,
    상기 결정하는 단계에 응답하여, 상기 제 2 가상 머신 풀과 연관된 선점가능한 가상 머신의 할당을 얻기 위한 응찰 가격(bid price) 및 선점가능한 가상 머신 상에서 태스크를 수행하기 위한 시간의 길이 중 적어도 하나에 기초하여 상기 제 2 가상 머신 풀에 할당된 적어도 하나의 선점가능한 가상 머신을 선점(preemption)을 위해 선택하는 단계와,
    상기 적어도 하나의 선택된 가상 머신 상에서의 태스크 수행을 중단하는 단계와,
    상기 적어도 하나의 선택된 가상 머신을 전용 가상 머신으로서 상기 제 1 가상 머신 풀에 할당하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 제 1 가상 머신 풀과 연관된 가상 머신 중 스탠바이 예약된 가상 머신의 수를 추적하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 하나 이상의 가상 머신에 대한 스탠바이 예약 요청은 하나 이상의 가상 머신 클러스터에 대한 친화성(affinity)을 갖는 요청을 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 하나 이상의 가상 머신 클러스터에 대한 친화성은 상기 제 1 가상 머신 풀에 할당된 가상 머신과의 접속성에 근거한 친화성 및 스토리지에 대한 접속성에 근거한 친화성 중 적어도 하나를 포함하는
    방법.
  5. 제 3 항에 있어서,
    상기 적어도 하나의 선점가능한 가상 머신을 선점을 위해 선택하는 단계는 상기 하나 이상의 가상 머신 클러스터로부터 적어도 하나의 선점가능한 가상 머신을 선택하는 단계를 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 부하 기반 문턱값이 만족되었다는 결정에 응답하여 적어도 하나의 유휴(idle) 가상 머신을 전용 가상 머신으로서 상기 제 1 가상 머신 풀에 할당하는 단계를 더 포함하되,
    상기 적어도 하나의 유휴 가상 머신의 할당은 상기 적어도 하나의 선택된 가상 머신의 할당 이전에 발생하는
    방법.
  7. 제 1 항에 있어서,
    상기 부하 기반 문턱값은 시간 기반 기준을 포함하지 않는
    방법.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 선택된 가상 머신 상에서의 태스크의 수행은 할당 기간의 종료 이전에 중단되며,
    상기 방법은, 상기 할당 기간의 종료 이전에 상기 제 1 가상 머신 풀에 대한 적어도 하나의 태스크를 상기 적어도 하나의 선택된 가상 머신 상에서 개시하는 단계를 더 포함하는
    방법.
  9. 제 1 항에 있어서,
    상기 적어도 하나의 선택된 가상 머신은 제 1 가상 머신 클러스터로부터의 가상 머신이며, 상기 제 1 가상 머신 풀에 할당된 하나 이상의 머신은 상기 제 1 가상 머신 클러스터와는 상이한 가상 머신 클러스터로부터의 가상 머신인
    방법.
  10. 삭제
KR1020147018922A 2012-01-09 2013-01-07 가상 머신 풀 내의 리소스의 할당 기법 KR102005595B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/346,416 2012-01-09
US13/346,416 US8904008B2 (en) 2012-01-09 2012-01-09 Assignment of resources in virtual machine pools
PCT/US2013/020443 WO2013106257A1 (en) 2012-01-09 2013-01-07 Assignment of resources in virtual machine pools

Publications (2)

Publication Number Publication Date
KR20140111671A KR20140111671A (ko) 2014-09-19
KR102005595B1 true KR102005595B1 (ko) 2019-07-30

Family

ID=48744742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018922A KR102005595B1 (ko) 2012-01-09 2013-01-07 가상 머신 풀 내의 리소스의 할당 기법

Country Status (6)

Country Link
US (4) US8904008B2 (ko)
EP (2) EP3223156A1 (ko)
JP (2) JP2015507281A (ko)
KR (1) KR102005595B1 (ko)
CN (1) CN104040526B (ko)
WO (1) WO2013106257A1 (ko)

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8966027B1 (en) * 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8744367B2 (en) * 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
US8620870B2 (en) 2010-09-30 2013-12-31 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US9220066B2 (en) 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9116633B2 (en) 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
WO2014032287A1 (zh) * 2012-08-31 2014-03-06 华为技术有限公司 中央处理器资源分配方法和计算节点
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20140181044A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to identify uncharacterized and unprotected virtual machines
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9544348B2 (en) * 2013-01-04 2017-01-10 Google Inc. Cloud-based rendering
US9384517B2 (en) 2013-03-14 2016-07-05 Google Inc. Rendering
US9804890B1 (en) * 2013-02-15 2017-10-31 Amazon Technologies, Inc. Termination policies for scaling compute resources
US11669441B1 (en) 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9984206B2 (en) * 2013-03-14 2018-05-29 Volcano Corporation System and method for medical resource scheduling in a distributed medical system
US9323552B1 (en) * 2013-03-14 2016-04-26 Amazon Technologies, Inc. Secure virtual machine memory allocation management via dedicated memory pools
US9507540B1 (en) 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US9740422B1 (en) * 2013-03-14 2017-08-22 EMC IP Holding Company LLC Version-based deduplication of incremental forever type backup
US9634958B2 (en) 2013-04-02 2017-04-25 Amazon Technologies, Inc. Burst capacity for user-defined pools
US9645840B2 (en) * 2013-04-02 2017-05-09 Amazon Technologies, Inc. User-defined pools
US10025610B2 (en) * 2013-04-30 2018-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Availability management of virtual machines hosting highly available applications
US9665386B2 (en) 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US9400718B2 (en) 2013-08-02 2016-07-26 Sanovi Technologies Pvt. Ltd. Multi-tenant disaster recovery management system and method for intelligently and optimally allocating computing resources between multiple subscribers
US20150066553A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for multi-tenant service catalog for a software defined cloud
US9923837B2 (en) * 2013-08-29 2018-03-20 Ericsson Ab Method and system to allocate bandwidth based on task deadline in cloud computing networks
GB2518894A (en) * 2013-10-07 2015-04-08 Ibm A method and a system for operating programs on a computer cluster
US10193963B2 (en) * 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US10216758B2 (en) * 2013-10-24 2019-02-26 Vmware, Inc. Multi-tenant production and test deployments of Hadoop
US10476760B2 (en) 2013-10-30 2019-11-12 Oracle International Corporation System and method for placement logic in a cloud platform environment
US20150121373A1 (en) * 2013-10-30 2015-04-30 Alistair Black User Privacy Systems And Methods
US9298485B2 (en) 2013-11-19 2016-03-29 International Business Machines Corporation Maintaining virtual machines for cloud-based operators in a streaming application in a ready state
US10366102B2 (en) 2014-02-19 2019-07-30 Snowflake Inc. Resource management systems and methods
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9594584B2 (en) * 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
WO2015157897A1 (zh) 2014-04-14 2015-10-22 华为技术有限公司 一种云计算架构下的容灾数据中心配置方法及装置
RU2568282C2 (ru) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде
US9459892B2 (en) 2014-05-05 2016-10-04 International Business Machines Corporation Optimization of virtual machines
CN105335207B (zh) 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US10547562B2 (en) 2014-07-31 2020-01-28 Hewlett Packard Enterprise Development Lp Cloud resource pool
US10452837B1 (en) 2014-09-26 2019-10-22 Amazon Technologies, Inc. Inbound link handling
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9830193B1 (en) * 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US20160117246A1 (en) * 2014-10-27 2016-04-28 Thomson Licensing Method and apparatus for cross-core covert channel
JP6506534B2 (ja) * 2014-11-07 2019-04-24 三星ディスプレイ株式會社Samsung Display Co.,Ltd. 有機電界発光素子用材料及びこれを用いた有機電界発光素子
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
CN105786587B (zh) * 2014-12-23 2019-11-26 华为技术有限公司 一种虚拟机vm的伸缩方法和设备
US9929969B1 (en) * 2014-12-31 2018-03-27 VCA IP Holding Company LLC Tenant-based management system and method for distributed computing environments
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
CN105022668B (zh) * 2015-04-29 2020-11-06 腾讯科技(深圳)有限公司 一种作业调度方法及系统
EP3304303B1 (en) 2015-06-03 2021-06-09 Telefonaktiebolaget LM Ericsson (PUBL) Allocating or announcing availability of a software container
US10848574B2 (en) 2015-06-11 2020-11-24 Microsoft Technology Licensing, Llc Computing resource management system
US9948711B2 (en) 2015-06-15 2018-04-17 International Business Machines Corporation Allocating and managing cloud computing resources for disaster recovery
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
EP3113026B1 (en) * 2015-06-29 2019-07-24 aicas GmbH Automatic memory management using a memory management unit
US10505869B2 (en) 2015-08-04 2019-12-10 International Business Machines Corporation Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization
CN106453457B (zh) 2015-08-10 2019-12-10 微软技术许可有限责任公司 云计算平台内的多优先级服务实例分配
US10223140B2 (en) 2015-08-25 2019-03-05 Futurewei Technologies, Inc. System and method for network function virtualization resource management
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10162682B2 (en) * 2016-02-16 2018-12-25 Red Hat, Inc. Automatically scaling up physical resources in a computing infrastructure
US10148675B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Block-level forensics for distributed computing systems
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10142290B1 (en) * 2016-03-30 2018-11-27 Amazon Technologies, Inc. Host-based firewall for distributed computer systems
US10178119B1 (en) 2016-03-30 2019-01-08 Amazon Technologies, Inc. Correlating threat information across multiple levels of distributed computing systems
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10333962B1 (en) 2016-03-30 2019-06-25 Amazon Technologies, Inc. Correlating threat information across sources of distributed computing systems
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10528374B2 (en) 2016-08-25 2020-01-07 International Business Machines Corporation Volume management by virtual machine affiliation auto-detection
US10108459B2 (en) 2016-09-12 2018-10-23 Bmc Software, Inc. System and method to dynamically allocate varying processing capacity entitlements based on workload importance
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US20180109469A1 (en) 2016-10-17 2018-04-19 International Business Machines Corporation Systems and methods for controlling process priority for efficient resource allocation
US10616317B2 (en) * 2016-11-10 2020-04-07 Trilliant Networks, Inc. Method and system for affinity load balancing
US10331479B2 (en) 2017-01-13 2019-06-25 Microsoft Technology Licensing, Llc Computing on transient resources
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US10715403B2 (en) * 2017-04-11 2020-07-14 Nerdio, Inc. Scalable, standardized I.T. deployment platform
US11500663B1 (en) * 2017-06-07 2022-11-15 Amazon Technologies, Inc. Predictive virtual machine launch-based capacity management
KR102263361B1 (ko) * 2017-06-15 2021-06-11 한국전자통신연구원 다중 클라우드 기반의 클라우드 브로커리지 서비스 제공 장치 및 그 방법
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10565021B2 (en) * 2017-11-30 2020-02-18 Microsoft Technology Licensing, Llc Automated capacity management in distributed computing systems
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
CN108366095A (zh) * 2018-01-16 2018-08-03 厦门集微科技有限公司 一种软件即服务平台
US11762706B1 (en) 2018-02-01 2023-09-19 Vmware, Inc. Computing environment pooling
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
JP7166765B2 (ja) * 2018-02-28 2022-11-08 富士フイルム株式会社 アプリケーション提供装置、アプリケーション提供方法、およびアプリケーション提供プログラム
US10970125B2 (en) * 2018-05-31 2021-04-06 Microsoft Technology Licensing, Llc Dynamic compute resource assignment and scalable computing environment generation for live environments
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11500685B2 (en) * 2018-07-24 2022-11-15 Citrix Systems, Inc. Mixed instance catalogs
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
CN111158962B (zh) * 2018-11-07 2023-10-13 中移信息技术有限公司 一种异地容灾方法、装置、系统、电子设备及存储介质
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US20200174844A1 (en) * 2018-12-04 2020-06-04 Huawei Technologies Canada Co., Ltd. System and method for resource partitioning in distributed computing
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US10817046B2 (en) 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US20210004387A1 (en) * 2019-07-03 2021-01-07 Hewlett Packard Enterprise Development Lp Changing the number of replicas of a pod based on size of message queue
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
CN112698908A (zh) * 2019-10-23 2021-04-23 阿里巴巴集团控股有限公司 云计算资源的伸缩处理方法及装置、存储介质及处理器
CN110865872B (zh) * 2019-11-14 2022-07-08 北京京航计算通讯研究所 基于资源合理化应用的虚拟化集群资源调度系统
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
WO2021108435A1 (en) * 2019-11-27 2021-06-03 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11907764B2 (en) * 2020-05-20 2024-02-20 GE Precision Healthcare LLC Managing computer resources for clinical applications
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11797351B2 (en) * 2021-04-28 2023-10-24 Salesforce, Inc. High-availability continuous delivery of datacenter builds on cloud computing platforms
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN113472956A (zh) * 2021-09-03 2021-10-01 北京健康之家科技有限公司 一种云手机管理方法及装置
CN114416274A (zh) * 2021-10-18 2022-04-29 徐州医科大学 一种虚拟资源管理系统及其方法
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
KR102424596B1 (ko) * 2022-03-30 2022-07-28 주식회사 클라우드시스템즈 애플리케이션 가상화 서비스 제공 방법
US11928513B1 (en) 2022-12-28 2024-03-12 International Business Machines Corporation Cloud affinity based on evaluation of static and dynamic workload characteristics
CN117891618B (zh) * 2024-03-15 2024-05-24 杭州宇泛智能科技有限公司 人工智能模型训练平台的资源任务处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090594A (ja) 2009-10-26 2011-05-06 Hitachi Ltd サーバ管理装置およびサーバ管理方法
US20110214124A1 (en) 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for generating cross-cloud computing appliances
US20110225229A1 (en) 2010-03-11 2011-09-15 Yahoo! Inc. Distributed publish/subscribe system

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062037A (en) 1988-10-24 1991-10-29 Ibm Corp. Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
US5392430A (en) 1992-10-30 1995-02-21 International Business Machines Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system
US5832262A (en) 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
KR19990013427A (ko) 1997-07-15 1999-02-25 포만제프리엘 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물
US6223202B1 (en) 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US7290009B1 (en) * 1999-08-25 2007-10-30 The Trustees Of Columbia University In The City Of New York System and method for allocating resources using spot market and derivative market techniques
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US6865591B1 (en) 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
JP2002041305A (ja) 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US6985951B2 (en) 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US7337226B2 (en) 2002-05-10 2008-02-26 Oracle International Corporation Method and mechanism for implementing dynamic sizing of session pools
US7395334B2 (en) 2003-04-25 2008-07-01 International Business Machines Corporation System for determining unreturned standby resource usage
US7596790B2 (en) 2003-08-29 2009-09-29 Intel Corporation Allocating computing resources in a distributed environment
US8560671B1 (en) * 2003-10-23 2013-10-15 Netapp, Inc. Systems and methods for path-based management of virtual servers in storage network environments
JP2007519103A (ja) 2004-01-08 2007-07-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチプロセッサシステムにおけるリソース管理
JP2005266917A (ja) 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
US7177878B2 (en) 2004-04-13 2007-02-13 International Business Machines Corporation Simple persistence mechanism for server based web applications
JP4308086B2 (ja) 2004-05-31 2009-08-05 富士通株式会社 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法
US7739685B2 (en) 2005-01-06 2010-06-15 International Business Machines Corporation Decoupling a central processing unit from its tasks
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
CA2637980A1 (en) 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP2007323439A (ja) 2006-06-01 2007-12-13 Nec Corp リソース割当システム、情報処理装置、リソース割当方法及びリソース割当プログラム
US8151277B2 (en) 2007-05-15 2012-04-03 Dynatrace Software Gmbh Method and system for dynamic remote injection of in-process agents into virtual machine based applications
JP5262724B2 (ja) 2007-01-11 2013-08-14 日本電気株式会社 プロビジョニングシステム、方法、及び、プログラム
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US8380880B2 (en) 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
US20080244607A1 (en) 2007-03-27 2008-10-02 Vladislav Rysin Economic allocation and management of resources via a virtual resource market
US8065676B1 (en) 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
KR101040117B1 (ko) 2007-12-13 2011-06-09 한국전자통신연구원 다중 시스템 워크로드 관리 시스템 및 방법
US8930946B1 (en) 2008-02-14 2015-01-06 Google Inc. Leasing prioritized tasks
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US8112526B2 (en) 2008-06-24 2012-02-07 International Business Machines Corporation Process migration based on service availability in a multi-node environment
US20100042670A1 (en) 2008-08-13 2010-02-18 Electronic Data Systems Corporation Integrated development engine for a cloud computing environment
US8434087B2 (en) 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
US7870044B2 (en) 2008-10-02 2011-01-11 Verizon Patent And Licensing Inc. Methods, systems and computer program products for a cloud computing spot market platform
US10095533B1 (en) * 2008-10-06 2018-10-09 Veritas Technologies Llc Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment
US10025627B2 (en) 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US8291414B2 (en) 2008-12-11 2012-10-16 International Business Machines Corporation Shared resource service provisioning using a virtual machine manager
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8751627B2 (en) 2009-05-05 2014-06-10 Accenture Global Services Limited Method and system for application migration in a cloud
US9201485B2 (en) * 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US20100318454A1 (en) 2009-06-16 2010-12-16 Microsoft Corporation Function and Constraint Based Service Agreements
US8112659B2 (en) 2009-06-19 2012-02-07 Oracle International Corporation Reducing recovery time for business organizations in case of disasters
US8261275B2 (en) 2009-06-29 2012-09-04 Oracle America, Inc. Method and system for heuristics-based task scheduling
CA2674402C (en) 2009-07-31 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Optimizing on demand allocation of virtual machines using a stateless preallocation pool
US20110078303A1 (en) 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US20110113426A1 (en) 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
EP2510437A1 (en) 2009-12-11 2012-10-17 Deutsche Telekom AG Computer cluster and method for providing a disaster recovery functionality for a computer cluster
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US8631403B2 (en) 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US8924982B2 (en) * 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
US8762997B2 (en) 2010-01-12 2014-06-24 Nec Laboratories America, Inc. Constraint-conscious optimal scheduling for cloud infrastructures
US8301746B2 (en) * 2010-01-26 2012-10-30 International Business Machines Corporation Method and system for abstracting non-functional requirements based deployment of virtual machines
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
US8464255B2 (en) * 2010-03-12 2013-06-11 Microsoft Corporation Managing performance interference effects on cloud computing servers
US8271814B2 (en) 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
US9342801B2 (en) 2010-03-29 2016-05-17 Amazon Technologies, Inc. Managing committed processing rates for shared resources
EP2553638B1 (en) 2010-03-29 2018-07-18 Amazon Technologies, Inc. Managing committed request rates for shared resources
US8738745B1 (en) 2010-03-31 2014-05-27 Amazon Technologies, Inc. Managing use of intermediate destination hardware devices for provided computer networks
US9116731B2 (en) 2010-04-07 2015-08-25 Accenture Global Services Limited Cloud reference model framework
US8606897B2 (en) 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US8667171B2 (en) 2010-05-28 2014-03-04 Microsoft Corporation Virtual data center allocation with bandwidth guarantees
CN102271145A (zh) 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
US8656387B2 (en) 2010-06-17 2014-02-18 Gridcentric Inc. Method and system for workload distributing and processing across a network of replicated virtual machines
US9329947B2 (en) 2010-06-22 2016-05-03 Red Hat Israel, Ltd. Resuming a paused virtual machine without restarting the virtual machine
US8887163B2 (en) 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
US8739170B1 (en) 2010-06-30 2014-05-27 Amazon Technologies, Inc. Managing requests for computing capacity
US20120011077A1 (en) * 2010-07-12 2012-01-12 Bhagat Bhavesh C Cloud Computing Governance, Cyber Security, Risk, and Compliance Business Rules System and Method
CN101938416B (zh) 2010-09-01 2012-08-08 华南理工大学 一种基于动态重配置虚拟资源的云计算资源调度方法
US8533103B1 (en) 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
CN102307208B (zh) * 2010-09-25 2014-08-06 广东电子工业研究院有限公司 基于云计算的虚拟机运行控制装置及其运行控制方法
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US9237194B2 (en) 2010-11-05 2016-01-12 Verizon Patent And Licensing Inc. Load balancer and firewall self-provisioning system
JP5845571B2 (ja) 2010-11-30 2016-01-20 富士通株式会社 計算システムおよび計算システム管理方法
US20120159234A1 (en) 2010-12-15 2012-06-21 Microsoft Corporation Providing resilient services
US8918784B1 (en) * 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
US10678602B2 (en) * 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US8639595B1 (en) 2011-03-10 2014-01-28 Amazon Technologies, Inc. Statistically cost-following accounting model for dedicated resources
US8806015B2 (en) * 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US20120311575A1 (en) 2011-06-02 2012-12-06 Fujitsu Limited System and method for enforcing policies for virtual machines
US9015708B2 (en) 2011-07-28 2015-04-21 International Business Machines Corporation System for improving the performance of high performance computing applications on cloud using integrated load balancing
US20130061220A1 (en) * 2011-09-06 2013-03-07 Xerox Corporation Method for on-demand inter-cloud load provisioning for transient bursts of computing needs
US9038063B2 (en) * 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US8856797B1 (en) 2011-10-05 2014-10-07 Amazon Technologies, Inc. Reactive auto-scaling of capacity
US20130091376A1 (en) 2011-10-05 2013-04-11 International Business Machines Corporation Self-repairing database system
US9229749B2 (en) 2011-10-31 2016-01-05 Cisco Technology, Inc. Compute and storage provisioning in a cloud environment
US20130145004A1 (en) * 2011-12-05 2013-06-06 International Business Machines Corporation Provisioning using presence detection
US8966085B2 (en) 2012-01-04 2015-02-24 International Business Machines Corporation Policy-based scaling of computing resources in a networked computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090594A (ja) 2009-10-26 2011-05-06 Hitachi Ltd サーバ管理装置およびサーバ管理方法
US20110214124A1 (en) 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for generating cross-cloud computing appliances
US20110225229A1 (en) 2010-03-11 2011-09-15 Yahoo! Inc. Distributed publish/subscribe system

Also Published As

Publication number Publication date
US10241812B2 (en) 2019-03-26
EP2802998A1 (en) 2014-11-19
US11922198B2 (en) 2024-03-05
CN104040526B (zh) 2017-12-01
US20190278622A1 (en) 2019-09-12
US20220156098A1 (en) 2022-05-19
KR20140111671A (ko) 2014-09-19
EP3223156A1 (en) 2017-09-27
US20150067682A1 (en) 2015-03-05
EP2802998B1 (en) 2020-03-18
US11194604B2 (en) 2021-12-07
WO2013106257A1 (en) 2013-07-18
JP2018055707A (ja) 2018-04-05
US8904008B2 (en) 2014-12-02
JP2015507281A (ja) 2015-03-05
CN104040526A (zh) 2014-09-10
US20130179574A1 (en) 2013-07-11
EP2802998A4 (en) 2016-01-27

Similar Documents

Publication Publication Date Title
US11922198B2 (en) Assignment of resources in virtual machine pools
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
KR101994506B1 (ko) Paas 자원들, 작업들 및 스케줄링의 분리 기법
KR101976234B1 (ko) Paas 계층적 스케줄링 및 자동 스케일링 기법
US11263084B2 (en) Saving program execution state
US20130179894A1 (en) Platform as a service job scheduling
US9280390B2 (en) Dynamic scaling of a cluster of computing nodes

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant