KR20140111672A - 가상 머신 풀에서의 리소스 가격 책정 기법 - Google Patents

가상 머신 풀에서의 리소스 가격 책정 기법 Download PDF

Info

Publication number
KR20140111672A
KR20140111672A KR1020147018931A KR20147018931A KR20140111672A KR 20140111672 A KR20140111672 A KR 20140111672A KR 1020147018931 A KR1020147018931 A KR 1020147018931A KR 20147018931 A KR20147018931 A KR 20147018931A KR 20140111672 A KR20140111672 A KR 20140111672A
Authority
KR
South Korea
Prior art keywords
virtual machine
pool
preemptable
virtual
task
Prior art date
Application number
KR1020147018931A
Other languages
English (en)
Inventor
브래들리 진 칼더
주 왕
바만 베데카
스리람 산카란
마빈 쥬니어 맥넷
프라디프 쿠마르 군다
양 장
샤이암 안토니
카비타 마니바난
헤말 카트리
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20140111672A publication Critical patent/KR20140111672A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0645Rental transactions; Leasing transactions

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따라 스팟 가격 책정 프로세스(spot pricing process)를 통해 클라우드 컴퓨팅 환경 내의 리소스를 할당하기 위한 시스템 및 방법이 제공된다. 스팟 가격 책정 프로세스는 가상 머신이 풀과 연관된 응찰에 기초하여 선점가능 기반으로 풀에 할당되게 한다. 응찰은 선점가능한 가상 머신의 할당을 위한 가격을 결정하도록 사용될 수 있다. 선점가능한 가상 머신은 결정된 가격과 관련해서 제출된 응찰에 적어도 부분적으로 기초하여 풀에 할당될 수 있다.

Description

가상 머신 풀에서의 리소스 가격 책정 기법{PRICING OF RESOURCES IN VIRTUAL MACHINE POOLS}
큰 스케일의 컴퓨터 작업을 수행하는 종래의 방법은 종종 컴퓨팅 플랫폼으로서의 역할을 하기 위한 컴퓨터 하드웨어의 사용자 구매를 필요로 한다. 다수의 일반적인 사용자들이 컴퓨팅 리소스에 대한 일상적인 요구와는 다른 피크 레벨의 컴퓨팅 요구를 갖기 때문에, 이것은 다양한 비효율성을 야기할 수 있다. 피크 리소스 요구를 만족시키기에 충분한 하드웨어를 구매하는 것은 컴퓨팅 리소스의 낮은 이용도를 야기할 수 있다. 이와 달리, 일상적인 이용도 레벨에 하드웨어를 맞추는 것은 일부 원하는 컴퓨터 작업이 실행 불가능한 상황을 발생시킬 수 있다. 보다 최근에는, 프로세싱 속도 및 네트워크 전송 속도의 향상이 클라우드 컴퓨팅 환경으로 하여금 로컬 컴퓨팅 플랫폼에 대한 실행가능한 대안이 되게 하였다.
다양한 실시예에서, 스팟 가격 책정 프로세스(spot pricing process)를 통해 클라우드 컴퓨팅 환경 내의 리소스를 할당하기 위한 시스템 및 방법이 제공된다. 스팟 가격 책정 프로세스는 가상 머신이 풀(pool)과 연관된 응찰에 기초하여 선점가능 기반으로(preemptible basis) 풀에 할당되게 한다. 응찰은 선점가능한 가상 머신의 할당을 위한 가격을 결정하도록 사용될 수 있다. 선점가능한 가상 머신은 결정된 가격과 관련해서 제출된 응찰에 적어도 부분적으로 기초하여 풀에 할당될 수 있다.
본 요약부는 아래의 상세한 설명에서 추가로 기술되는 개념들의 선택을 간략화된 형태로 소개하도록 제공되었다. 본 요약부는 청구된 청구사항의 중요 특성 또는 기본 특성을 식별하기 위한 것이 아니며, 청구된 청구사항의 범주를 결정하는 것을 홀로 돕도록 사용되는 것 또한 아니다.
도 1은 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 2는 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 3은 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 4는 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 5는 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 6은 클라우드 컴퓨팅 환경을 구현하는데에 사용하기 적합한 시스템 또는 구성요소의 예시를 개략적으로 도시한 도면.
도 7 내지 11은 본 발명의 실시예에 따른 클라우드 컴퓨팅 환경 내의 가상 머신 관리의 예시를 개략적으로 도시한 도면.
도 12는 본 발명의 실시예를 수행하기에 적합한 컴퓨팅 디바이스를 개략적으로 도시한 도면.
도 13 내지 15는 본 발명에 따른 프로세스 흐름의 예시를 도시한 도면.
본 발명은 첨부된 도면을 참조하여 아래에서 상세하게 기술되었다.
개요
네트워크 상의 데이터 전송 속도 증가 및 다른 네트워크 특성의 향상으로 인해, 컴퓨팅 리소스가 커다란 네트워크 상에서 분산된 환경에서 큰 스케일의 컴퓨팅 태스크를 수행하는 것이 가능해졌다. 제 1 위치에 있는 사용자는 잡(job) 또는 컴퓨팅 태스크를 컴퓨팅 서비스에 제출할 수 있고, 사용자가 직접적으로 알지 못하는 컴퓨터들의 그룹 상에서 수행되었던 태스크를 가질 수 있다. 사용자의 태스크를 수행하기 위한 컴퓨팅 리소스는 복수의 위치상에 분산될 수 있다. 하나 이상의 위치에 배치된 컴퓨팅 리소스들의 제 1 그룹은 사용자의 컴퓨팅 태스크를 수행하기 위한 데이터 및 그외의 정보를 저장할 수 있는 반면, 동일한 위치에 있거나 서로 다른 하나 이상의 위치들의 세트에 있는 컴퓨팅 리소스들의 제 2 그룹은 컴퓨팅 태스크를 수행하도록 사용될 수 있다.
분산된 다수의 컴퓨팅 리소스에 액세스하는 것은 사용자로 하여금 컴퓨팅 리소스가 어디에 위치되었는지에 대한 걱정 없이 잡 태스크를 수행할 수 있게 한다. 또한 분산된 리소스는 명시된 시간까지 컴퓨팅 태스크를 완료하는 것과 같이 컴퓨팅 태스크에 대한 목표를 만족시키기 위해, 사용되는 리소스의 양을 사용자가 스케일-아웃(또는 스케일-인) 하는 기회를 제공한다. 그러나, 사용자에게 이러한 유연성을 제공하는 것은 분산된 컴퓨팅 리소스의 운영자(또는 소유자)에게 다수의 어려운 문제를 제기한다. 수요를 만족시키기 위해서, 리소스들의 분산된 네트워크의 운영자는 바람직하게는 피크 수요 시간대의 리소스 요구를 만족시키는 이용가능한 충분한 리소스를 가질 것이다.
피크 수요에 충분한 리소스를 갖는 클라우드 컴퓨팅 환경은, 적어도 피크 수요가 아닌 기간 동안, 아마도 항상 이용가능한 초과 가상 머신을 가질 것이다. 초과 가상 머신은 사용자 요구에 기초하여 잡의 스케일-아웃을 허용하기 위한 가상 머신의 비축, 리소스 고장(resource failure)에 대한 보상을 위한 가상 머신의 비축, 또는 단지 피크 수요 동안에는 사용되지만 피크 시간대가 아닐 때에는 분산된 리소스로서 필요하지 않은 가상 머신을 나타낼 수 있다. 이러한 리소스들이 유휴상태에 있도록 하기보다는, 사용자들이 초과 가상 머신에 대한 일시적인 액세스를 위해 응찰할 수 있게 하도록 경매 메커니즘이 사용될 수 있다. 이는 고객에게 더 낮은 비용으로 머신에 대한 액세스를 제공하는 한편, 클라우드 컴퓨팅 운영자로 하여금 피크 수요 및/또는 시스템 리던던시 요건을 만족시키기 위해 요구되는 리소스들의 가치를 최대화할 수 있게 한다.
정의
"계정(account)"은 클라우드 컴퓨팅 환경 내에서 세계적으로 고유하게 식별된 엔티티이다. 실시예에서, 아래에서 논의되는 모든 리소스 및 태스크는 계정의 범주 내에 있다. 전형적으로, 사용자는 클라우드 컴퓨팅 시스템의 리소스를 사용하기 전에 가장 먼저 계정을 생성할 것이다. 계정을 생성한 후에, 사용자는 작업 아이템을 시스템에 제출하고 작업 아이템에 기초하여 잡을 수행하기 위해 리소스를 관리하도록 계정을 사용할 수 있다.
"작업 아이템(work item)"은 클라우드 컴퓨팅 환경 내에서 실행되는 잡의 정적 표현이다. 작업 아이템은 잡 바이너리, 프로세싱될 데이터로의 포인터 및 선택적으로는 잡을 수행하고자 태스크를 시작하기 위한 커맨드 라인을 포함하는 잡의 다양한 측면들을 명시할 수 있다. 또한, 작업 아이템은 재발생(reoccurrence) 스케줄, 우선사항 및 제약을 명시할 수 있다. 예를 들어, 작업 아이템은 매일 5시에 시작되도록 명시될 수 있다.
"잡(job)"은 작업 아이템의 실행중인 인스턴스이다. 잡은 분산된 계산을 수행하기 위해 함께 일하는 태스크들의 컬렉션을 포함한다. 태스크는 클라우드 컴퓨팅 환경 내의 하나 이상의 가상 머신 상에서 실행할 수 있다.
"태스크(task)"는 잡의 근본적인 실행 단위이다. 각 태스크는 가상 머신 상에서 실행한다. 사용자는 각 태스크에 대해 커맨드 라인으로의 추가적인 입력 및 입력 데이터로의 포인터를 명시할 수 있다. 태스크는 태스크의 실행 코스 동안 태스크를 수행하는 가상 머신 상의 작업 디렉토리(working directory) 하에 파일들의 계층을 생성할 수 있다.
"잡 매니저 태스크(JM 태스크)"는 잡 내의 특별한 태스크이다. 잡 매니저 태스크는 선택적이며, 따라서 JM 태스크의 사용 없이 일부 잡이 수행될 수 있다. 잡 매니저 태스크는 잡 내의 모든 태스크에 대해 단일 제어 포인트를 제공하며, 잡에 대한 "마스터" 태스크로서 사용될 수 있다. 만약 잡이 JM 태스크를 갖는다면, 시스템은 잡 내의 제 1 태스크로서 JM 태스크를 시작한다. 그 다음 JM 태스크는 더 많은 태스크를 잡에 제출할 수 있으며, 이들 태스크의 진행을 모니터링하고 언제 다음 태스크 배치(batch)를 제출할지를 제어할 수 있다. 이러한 방식으로, JM 태스크는 잡 내의 모든 태스크의 스케줄링을 조정할 수 있고, 태스크들 사이의 의존성을 관리할 수 있다. 바람직하게는, 만약 잡 매니저 태스크에 대한 노드 또는 가상 머신이 고장 난다면, JM 태스크가 상응하는 잡에 대해 항상 실행되도록 다른 가상 머신 상에서 JM 태스크가 자동으로 재시작된다. 또한, 사용자는 만약 JM 태스크가 완료되면 시스템이 상응하는 잡 내의 모든 태스크를 종료할 수 있다고 시스템에 명시할 수 있다.
가상 머신 풀 및 태스크 테넌트( task tenant )
가상 머신은 프로세싱 능력의 논리 단위를 지칭한다. 가상 머신은 물리적 프로세서와의 일대일 통신연락을 가질 수 있거나, 또는 가상 머신은 복수의 프로세서에 해당할 수 있거나, 또는 가상 머신은 하나 이상의 프로세서 상에서의 프로세싱 시간의 백분율을 나타낼 수 있다. 풀에 할당된 가상 머신은 임의의 주어진 시간에 풀에 대한 하나 이상의 태스크를 수행할 수 있다.
다양한 실시예에서, 잠재적으로 작업 아이템에 기초한 잡을 수행할 수 있는 가상 머신은 사용에 앞서 작업 아이템에 대한 계정과 연관된다. "풀"은 가상 머신들의 논리적 그룹핑(grouping)이다. 작업 아이템은 작업 아이템에 상응하는 잡(들)을 실행하도록, 항상 적어도 하나의 연관된 풀을 갖는다. 각각의 계정은 계정이 자신과 연관된 작업 아이템들을 수행할 때 사용하기 위한 액세스를 갖는 하나 이상의 풀을 생성할 수 있다. 전형적으로 계정은 자신과 연관된 풀에 대한 독점적인 액세스를 갖는다. 풀은 작업 아이템이 사용자에 의해 제출되거나, 또는 작업 아이템이 현존하는 풀과 연관될 수 있을 때 생성될 수 있다. 풀은 잡을 수행하기 위해 시스템에 의해 자동으로 생성될 수 있다. 예를 들어, 하루의 특정한 시간에 실행되는 작업 아이템을 재발생하는 것은 시작 시에 잡을 수행하도록 자동으로 생성된 풀을 가짐으로써 조절될 수 있다. 풀은 그날 작업 아이템의 재발생을 완료한 후에 삭제될 수 있다. 선택적으로, 풀은 사용을 위해 계정에 상응하는 단일 작업 아이템, 단일 잡, 또는 작업 아이템들의 다른 서브셋과 연관될 수 있다.
작업 아이템이 사용자에 의해 제출되면, 작업 아이템은 가상 머신의 하나 이상의 풀과 연관될 수 있다. 가상 머신은 임의의 편리한 방식으로 풀 내에서 조직화될 수 있다. 예를 들어, 모든 가상 머신은 가상 머신에 대한 언더라잉 프로세서의 지리학적 위치와 무관하게 단일 풀 내에 조직화될 수 있다. 다른 옵션은, 풀에 대한 모든 가상 머신들이 주어진 지리학적 위치에 있도록 지리학적 위치에 기초하여 가상 머신들을 조직화하는 것이다. 또 다른 옵션은 다른 변수들(예를 들어, 스토리지 리소스, 네트워크 대기시간, 사용자 위치/선호, 보안 요건)에 대한 접근도와 같은 지리학적 위치 외의 사항에 기반하여 가상 머신을 조직화하는 것이다. 또 다른 옵션은, 작업 아이템 또는 잡이 생성될 때 자동으로 풀을 생성한 다음 작업 아이템 또는 잡이 종료되었을 때 풀을 해체하는 것이다.
가상 머신 풀은 가상 머신을 조직화하기 위한 일 방법을 나타낸다. 가상 머신에 대한 다른 조직 단위는 가상 머신 클러스터이다. 가상 머신 클러스터는 태스크 테넌트 프로세스와 같은 클라우드 환경 내의 프로세스에 의해 함께 관리되는 가상 머신의 그룹을 나타낸다. 가상 머신 클러스터 내의 가상 머신들은 편리한 방식으로 함께 그룹화된 물리적 머신들에 해당할 수 있다. 예를 들어, 가상 머신 클러스터는 미국 또는 미국의 북동부와 같은 동일한 지리학적 영역 내; 시애틀 또는 샌디에이고 카운티와 같은 도시 또는 메트로폴리탄 지역과 같은 동일한 대략적 위치 내; 컴퓨팅 또는 데이터 센터를 형성하는 하나 이상의 접속된 또는 근접한 빌딩들과 같은 동일한 구체적 위치 내에 위치된 물리적 머신들의 그룹에 해당할 수 있다. 다른 옵션은, 클라우드 환경 내의 스토리지의 명시된 부분과의 바람직한 데이터 전송 레이트를 갖는 물리적 머신들의 그룹에 기초하여 가상 머신 클러스터를 형성하는 것이다. 또 다른 옵션은, 주어진 위치에서 물리적 머신에 기초하여 복수의 가상 머신 클러스터를 형성하는 것이다. 가상 머신 풀은 복수의 가상 머신 클러스터에 걸쳐질 수 있다. 태스크 테넌트와 같은 가상 머신 클러스터를 관리하는 프로세스는 가상 머신 풀로부터 가상 머신을 할당 및 할당해제할 수 있다. 태스크 테넌트(또는 가상 머신 클러스터를 관리하는 다른 프로세스)는 또한 가상 머신이 할당된 풀에 상응하는 잡들의 큐(queue)에 기초하여 클러스터 내의 가상 머신 상의 태스크들을 스케줄링할 수 있다. 태스크 테넌트가 가상 머신 풀에 충분한 수를 할당하기 위해 추가적인 머신을 필요로 할 때, 태스크 테넌트는 종합적인(general) 클라우드 컴퓨팅 환경으로부터 추가적인 가상 머신을 획득할 수 있다. 유사하게, 만약 태스크 테넌트가 초과 가상 머신을 갖는다면, 태스크 테넌트는 종합적인 클라우드 컴퓨팅 환경에 초과 머신을 반환할 수 있다.
전용, 스탠바이 및 선점가능 머신
가상 머신이 풀에 할당되었을 때, 가상 머신은 두 가지 타입들 중 하나로서 할당될 수 있다. 가상 머신은 전용 가상 머신 또는 선점가능한 가상 머신으로서 풀에 할당될 수 있다. 가상 머신의 전용 또는 선점가능한 상태는 가상 머신이 풀에 있는 동안 변경될 수도 있다.
"전용(dedicated)" 가상 머신은 풀에 할당된 작업 아이템 또는 잡에 의한 전용 이용을 위해 풀에 할당된 머신이다. 선택적으로, 전용 가상 머신은 풀에 제출된 임의의 작에 일반적으로 이용가능한 것과는 상반되게 하나 이상의 연관된 작업 아이템에 대한 전용 이용을 위해 할당될 수 있다. 가상 머신이 전용 상태를 갖는 동안, 머신은 풀과 연관된 계정에 의해 사용되도록 보유된다. 전용 머신에는 다른 계정으로부터의 리소스가 공급되지 않으며, 다른 계정 대신 잡을 수행하지 않는다.
"선점가능한(preemptible)" 가상 머신은 가상 머신이 해당 풀을 위해 계속 이용가능할 것이 보장되지 않고, 계정 대신 풀 내의 태스크를 현재 수행하고 있는 가상 머신이다. 임의의 풀에서 선점가능한 가상 머신이 이용가능하게 된 경우, 선점가능한 머신이 해당 풀에 추가된다. 그 다음 선점가능한 머신이 공급되어 해당 풀에 대한 잡을 수행하도록 사용된다. 선점가능한 머신은 예로서 (상응하는 계정을 대신하여) 풀이 리소스 경매에서 선점가능한 가상 머신 상의 프로세싱 시간을 차지하는 것과 같은 임의의 편리한 방법에 의해 풀에서 이용가능하게 될 수 있다.
전용 및 선점가능한 가상 머신의 할당에서의 추가적인 요인은 가상 머신에 대한 요청이 특정한 가상 머신 클러스터에 대한 관련성을 포함하는지 여부이다. 가상 머신 클러스터에 대한 관련성(affinity)은 다양한 이유에 기초할 수 있다. 가상 머신 클러스터에 대한 관련성 요청의 일 예시는, 가상 머신 상에서 수행될 잡에 대한 데이터 스토리지로의 개선된 액세스(예컨대 높은 데이터 전송 속도)를 갖는 가상 머신을 가지고자 하는 바람 또는 필요성으로 인한 것이다. 이러한 타입의 스토리지 관련성에 있어서, 관련성 요청은 데이터에 대해 원하는 액세스를 갖는 하나 이상의 가상 머신 클러스터로부터의 가상 머신의 할당을 명시할 수 있다. 이것은 예를 들어 데이터 스토리지 센터에 대한 원하는 물리적 데이터 접속을 갖는 물리적 머신들에 상응하는 가상 머신들의 그룹을 나타낼 수 있다. 다른 타입의 관련성은 잡 관련성이다. 가상 머신에 의해 수행되는 일부 유형의 잡은 동일하거나 유사한 잡 상의 가상 머신 작업 사이의 상당한 양의 통신을 포함할 수 있다. 잡 관련성 상황에서, 가상 머신들 사이에서의 메시지 전달을 용이하게 하기 위해서 잡 상에서 작업중인 모든 가상 머신들이 단일 가상 머신 클러스터(또는 다른 가상 머신 조직 단위) 내에 위치되는 것이 유리할 수 있다. 단일 가상 머신 클러스터로부터 가상 머신을 선택하는 것은 동일한 지리학적 위치 내의 물리적 머신들에 상응하는 가상 머신들을 선택하는 것에 해당할 수 있다.
계정이 사용하도록 선점가능한 가상 머신으로서 이용가능한 가상 머신은 전형적으로 클라우드 컴퓨팅 환경에서 다른 목적을 갖는 가상 머신일 것이다. 예를 들어, 선점가능한 가상 머신의 하나의 소스는 재난 복구 목적을 위한 클라우드 컴퓨팅 환경 소유자/운영자에 의해 공급되는 가상 머신이다. 안정적인 운영을 제공하기 위해, 클라우드 컴퓨팅 환경은 비축되어 있는 가상 머신들의 하나 이상의 그룹을 포함할 수 있다. 이러한 비축 가상 머신은, 프로세서 고장, 네트워크 고장, 또는 더 이상 잡을 수행하기에 적합하지 않은 클라우드 환경의 부분을 발생시키는 임의의 다른 종류의 이벤트로 인해 손실된 리소스를 대체하도록 이용가능하다. 풀에 할당된 하나 이상의 가상 머신이 이벤트로 인해 손실되었을 때, 손실된 머신은 비축 가상 머신을 이용하여 대체될 수 있다. 이는 클라우드 컴퓨팅 환경에서 리소스의 이용가능성을 향상시킨다. 그러나, 고장 상황이 거의 발생하지 것이 바람직하기 때문에, 재난 복구를 위한 비축 머신을 갖는 것은 종종 다수의 가상 머신이 사용되길 기다리는 유휴 상태에 있음을 의미할 것이다. 고장 상황을 처리하도록 지정된 이러한 가상 머신들의 CPU 사이클을 낭비하기보다는, 가상 머신들의 CPU 사이클이 작업 아이템 또는 잡을 실행하도록 선점가능한 가상 머신으로서 풀에 할당될 수 있다. 만약 고장이 발생하여 시스템이 전용 리소스의 요건을 충족시키기 위해 선점가능한 리소스를 가져가야 한다면, 선점가능한 가상 머신이 손실된 또는 고장난 리소스를 대체하는 원래의 목적을 위해 사용될 수 있도록 이러한 가상 머신 상에서 실행중인 선점가능한 잡이 가능한 한 빨리 (아마도 그 즉시) 중단될 것이다.
선점가능한 머신의 다른 소스는 초과 용량 가상 머신이다. 전형적으로, 임의의 네트워크의 피크 부하는 평균 부하와는 다를 것이다. 그 결과, 피크 부하 상황을 처리하기에 충분한 리소스를 갖는 컴퓨팅 환경은 그외에 시간 동안에 이용가능한 초과 리소스를 종종 가질 것이다. 이러한 초과 리소스는 리소스 쿠션(cushion)을 제공한다. 사용자가 추가적인 전용 가상 머신을 요청할 때, 초과 가상 머신이 사용자의 요청을 충족시키도록 사용될 수 있다. 클라우드 컴퓨팅 환경이 전용 머신에 대한 피크 부하보다 작은 부하를 가질 때, 하나 이상의 가상 머신이 자유로울 것이다. 여분의(spare) 용량을 제공하도록 지정된 이러한 가상 머신의 CPU 사이클을 낭비하기보다는, 이러한 가상 머신의 CPU 사이클이 선점가능성에 기반하여 사용자 및 풀에 할당될 수 있다. 전용 가상 머신에 대한 요청의 부하가 증가하면, 이러한 초과 가상 머신 상에서 실행중인 선점가능한 잡이 가능한 한 빨리 (아마도 그 즉시) 중단될 것이다. 이는 선점가능한 가상 머신이 필요시에 추가적인 전용 리소스를 제공하는 원래의 목적을 위해 사용될 수 있게 한다. 추가적으로 또는 이와 달리, 전용 머신에 대한 부하의 일부 증가는 전용 머신에 대해 스케줄링된 요청으로 인한 것일 것이다. 만약 가상 머신이 스케줄링된 시간에 전용 머신으로서 사용되기 위해 이용가능하지 않게 될 것이라면, 가상 머신에 할당된 선점가능한 잡은 선점가능한 잡으로부터 전용 리소스로의 질서있는 트랜지션(transition)을 가능하게 하도록 스케줄링된 시간 이전에 중단될 수 있다.
일부 상황에서, 사용자는 어느 미래의 시간에 다수의 전용 머신에 대한 액세스를 갖기를 원할 수 있다. 이러한 상황에서, 사용자는 하나 이상의 가상 머신을 스탠바이 가상 머신으로서 예약할 수 있다. 가상 머신의 "스탠바이" 예약(standby reservation)은, 미래의 어느 시점에 사용하기 위해 어떠한 풀 또는 계정에 할당될 가상 머신을 해당 풀 또는 계정과 연관하여 예약하는 것이다. 사용을 위해 가상 머신을 공급하는 것은, 단지 충분한 가상 머신 리소스가 클라우드 컴퓨팅 환경 내에서 식별 및/또는 보유되며, 그에 따라 요청시에 가상 머신 리소스가 전용 가상 머신으로의 변환에 이용가능할 것임을 의미할 수 있다. 선택적으로, 스탠바이 머신을 공급하는 것은 가상 머신에 데이터, 실행가능물(executables), 또는 이들의 조합을 공급하는 것도 포함할 수 있다.
스탠바이 가상 머신 예약은 가상 머신의 배정 또는 할당이 아니다. 대신, 스탠바이 가상 머신 예약은 스탠바이 예약과 연관된 사용자 또는 풀에 할당되는 전용 가상 머신으로 변환되도록 유휴 또는 선점가능한 가상 머신에 대한 미래의 권한을 예약한다. 선점가능한 잡은 스탠바이 예약과 연관된 풀 또는 계정, 다른 상이한 풀, 또는 다른 상이한 계정과 연관된 잡일 수 있다. 스탠바이 예약이 풀 또는 계정에 의해 이루어지면, 가상 머신 클러스터로부터의 가상 머신은 해당 풀 또는 계정에 할당되지 않는다. 대신, 충분한 수의 유휴 또는 선점가능한 가상 머신이 이용가능하여 가상 머신 클러스터에 상응하는 스탠바이 예약을 만족시키게 하도록, 계정은 가상 머신 클러스터에 상응하는 스탠바이 예약의 수를 보관한다.
가상 머신 스탠바이 예약은 다양한 이유로 풀과 연관될 수 있다. 스탠바이 머신 예약의 하나의 용도는, 특정한 시간 프레임 동안에만 발생하는 높은 우선순위의 컴퓨터 작업을 갖는 사용자를 위한 용도이다. 예를 들어, 금융 회사는 예를 들어 증권 거래 또는 상품 거래와 같은 하나 이상의 금융 시장의 일과에 대한 분석을 수행하길 원할 수 있다. 금융 시장은 오전 9시30분에 개장하여 오후 4시에 폐장하는 것과 같이 정해진 스케줄로 개장 및 폐장한다. 금융 회사는 분석 또는 시뮬레이션 수행시에 사용하기 위해 금융 시장이 개장되어 있는 시간 동안의 데이터를 종합하길 원할 것이다. 분석의 목적은 다음날 시장이 개장하기 전에 그들의 직원들에게 정보를 제공하는 것이다. 이러한 분석은 다수의 가상 머신을 필요로 할 수 있지만, 가상 머신은 예를 들어 오후 6시부터 다음날 오전 3시30분까지의 시간 사이에만 필요하다. 이러한 시간 동안, 금융 회사는 가상 머신의 이용가능성을 보장받길 원한다. 나머지 시간 동안에는, 금융 회사는 머신을 필요로 하지 않는다. 가상 머신 예약을 금융 회사의 계정과 연관시키는 것이 이러한 목적을 달성시킬 수 있다. 예약 가격을 지불하는 대가로, 금융 회사는 원하는 시간 동안 머신에 대한 이용가능성을 보장받는다. 원하는 시간대 외에는, 가상 머신이 금융 회사 및/또는 다른 사용자에 대한 선점가능한 머신으로서 사용될 수 있다.
스탠바이 예약은 시간 기반 기준 또는 부하 기반 기준에 기초하여 유휴 또는 선점가능한 가상 머신을 사용자에 상응하는 풀에 할당된 전용 머신으로 변환하도록 사용될 수 있다. 일부 상황에서, 스탠바이 예약은 사전결정된 시간 및/또는 날짜에 적어도 부분적으로 기초하여 유휴 또는 선점가능한 가상 머신을 전용 가상 머신으로 변환하게 할 수 있다. 이러한 상황에서, 스탠바이 예약에 기초하여 전용 가상 머신으로 변환되는 선점가능한 가상 머신은, 스케줄링된 이용가능성 이벤트에 앞서 질서정연하게 중단될 수 있다. 이는 시간-기반 기준을 갖는 스탠바이 예약으로서 정의된다. 시간-기반 기준은 부하-기반 문턱값을 정의하도록 사용되는 부하-기반 기준과 대비된다. 부하-기준 문턱값은 하나 이상의 클라우드 리소스의 이용 및/또는 성능에 기초한 문턱값에 상응한다. 바람직하게, 부하-기반 문턱값은 시간-기반 기준의 사용을 제외한다. 시간-기반 기준 및 부하-기반 기준에 추가하여, 스탠바이 예약에 상응하는 하나 이상의 가상 머신을 전용 가상 머신으로 변환하기 위한 또 다른 옵션은 사용자 또는 시스템 관리자로부터의 요청에 기초한다.
스탠바이 예약에 대한 다른 용도는 잡을 스케일-아웃(scaling out) 할 때 향상된 성능을 허용하기 위한 것이다. 예를 들어, 소매점은 휴가에 앞선 쇼핑 시즌 동안 소매업자의 웹사이트를 둘러보고 주문을 하기 위한 온라인 트래픽과 같은 추가적인 온라인 트래픽을 처리하기 위해 클라우드 컴퓨팅 리소스를 사용할 수 있다. 과거의 경험에 기초하여, 소매업자는 소정의 온라인 활동 레벨을 예상하여 상응하는 수의 전용 가상 머신을 예약한다. 그러나, 온라인 활동이 예상보다 큰 경우에, 소매업자는 스탠바이 예약을 통해 추가적인 머신도 예약한다. 그 다음 소매업자는 예상된 활동 레벨보다 높다는 것을 나타내는 하나 이상의 문턱값을 설정할 수 있다. 이러한 문턱값에 도달하면 스탠바이 예약이 유휴 또는 선점가능한 가상 머신을 전용 머신으로 변환하도록 사용될 수 있으며, 그에 따라 소매업자가 자신의 고객이 느린 응답 시간을 겪게 하지 않으면서 추가적인 온라인 트래픽을 처리할 수 있게 한다. 이러한 상황에서, 언제 활동 문턱값에 도달할 것인지 알려지지 않을 수 있기 때문에, 스탠바이 예약은 예측할 수 없는 시간에 전용 머신으로 변환될 수 있다. 활동 문턱값이 되면, 유휴 또는 선점가능한 가상 머신은 스탠바이 예약과 연관된 풀에 할당된 전용 가상 머신으로 변환된다. 만약 선점가능한 태스크가 변환에 앞서 가상 머신 상에서 실행중이라면, 선점가능한 태스크는 가상 머신을 전용 머신으로 변환시키기에 앞서서 중단된다. 선택적으로, 활동 문턱값은 시간-기반 기준을 포함하지 않는다.
스팟 가격 책정에 기초한 선점가능한 머신 할당
전용 머신으로서 풀과 연관되지 않은 클라우드 컴퓨팅 환경 내의 임의의 가상 머신은 잠재적으로 스팟 가격 책정(spot pricing)을 통해 할당에 이용가능하다. 따라서, 스팟 가격 책정을 통해 할당에 이용가능한 가상 머신은, 현재 선점가능한 잡을 실행중인 가상 머신, 재난 복구에 이용하기 위한 가상 머신 및 임의의 다른 초과 또는 유휴 가상 머신을 포함할 수 있다. 선점가능한 가상 머신으로서 할당에 이용가능한 초과 또는 유휴 가상 머신은, 가상 머신 클러스터에 대한 스탠바이 예약 수(count)를 만족시키기 위해 필요한 유휴 가상 머신을 포함할 수 있다.
스팟 가격 책정을 통해 가상 머신을 획득하기 위해서, 계정과 연관된 풀에 대한 명세(specification)는 요구되는 선점가능한 가상 머신의 수의 명시를 포함할 수 있다. 명세는 전형적으로 계정의 사용자가 하나 이상의 선점가능한 가상 머신을 획득하기 위해서 지불할 의지가 있는 가격 또는 응찰(bid)을 추가로 포함할 것이다. 풀에 대한 명세는 응찰의 수에 제한을 두지 않는다. 예를 들어, 풀 명세는 차등적인 응찰들을 포함할 수 있으며, 이때 (더 높은) 제 1 응찰은 두 개의 선점가능한 가상 머신을 획득하도록 제공되고, (중간 범위의) 제 2 응찰은 세 개의 추가적인 선점가능한 가상 머신을 획득하도록 제공되며, (더 낮은) 제 3 응찰은 최종으로 두 개의 선점가능한 가상 머신을 획득하도록 제공된다. 스팟 가격(spot price)에 의존하여, 이러한 응찰 패턴은 사용자가 0개, 2개, 5개, 또는 7개의 선점가능한 가상 머신에 할당되게 할 수 있다.
스팟 가격 책정을 통한 선점가능한 머신의 할당은 주기적으로 발생할 수 있으며, 각 할당의 결과로 할당 기간 동안 선점가능한 머신이 할당된다. 바람직하게는, 하나의 할당 기간 종료가 다음 할당 기간의 시작에 해당하도록, 할당 기간이 연속적일 수 있다. 전형적으로, 스팟 가격은 각 할당 기간의 시작 또는 그 부근에서 재계산된다. 스팟 가격은 할당 기간 동안에는 변경되지 않고 유지된다.
풀은 임의의 시간에 선점가능한 가상 머신에 대한 응찰을 제출할 수 있다. 그러나, 스팟 가격보다 높은 응찰이 응찰에 기초한 선점가능한 머신의 즉각적인 할당을 보장하는 것은 아니다. 만약 풀이 스팟 가격보다 높게 응찰하였고 충분한 가상 머신이 이용가능하면, 요청된 선점가능한 가상 머신이 다음 할당 기간의 시작보다는 늦지 않게 할당될 것이다. 만약 할당 기간 중에 선점가능한 가상 머신에 대해 응찰하였다면, 머신은 오직 초과 가상 머신이 이용가능한 경우에만 즉시 할당될 수 있다. 특히, 더 낮은 가격으로 응찰한 풀에 선점가능한 가상 머신이 이미 할당되었을 수 있다. 할당 기간의 시작시에 다른 풀로부터의 더 높은 응찰이 더 낮은 응찰을 대체할 수 있지만, 할당 기간 중간에는 그렇지 않다. 선점가능한 가상 머신이 할당된 계정은, 오직 전용 머신으로의 변환 또는 재난 복구 머신으로서의 용도와 같은 비-선점가능한 목적을 위해 필요한 가상 머신으로 인해서만 할당 기간 도중에 가상 머신을 잃을 것이다.
할당 기간의 길이는 임의의 편리한 값으로 설정될 수 있다. 예를 들어, 할당 기간은 적어도 약 15분일 수 있거나, 또는 적어도 약 30분일 수 있거나, 또는 다른 편리한 기간일 수 있다. 선택적으로, 할당 기간은 원한다면 하루 중에도 달라질 수 있거나, 주중 대 주말에 따라 달라질 수 있거나, 또는 기간 내의 임의의 다른 변동이 도입될 수 있다. 바람직하게는 할당 기간이 사전결정된 시간에, 예로서 매 30분마다 시작할 수 있다.
선점가능한 가상 머신에 대한 스팟 가격을 결정하기 위한 하나의 옵션은 글로벌 스팟 가격을 결정하는 것이다. 글로벌 스팟 가격을 결정하기 위해서, 클라우드 컴퓨팅 환경 내의 모든 머신 풀로부터의 응찰이 종합된다. 스팟 가격은 할당 기간의 시작시에 이용가능한 가상 머신의 총 수와 비교된다. 그 다음 스팟 가격은 적어도 스팟 가격보다 높은 모든 응찰에 대해 선점가능한 머신을 할당하기 위해 필요한 글로벌 가격으로서 설정될 수 있다. 만약 다수의 응찰이 머신을 할당하기 위한 브레이크 포인트(break point)에 있어서 스팟 가격에서의 응찰이 오직 부분적으로만 만족될 수 있다면, 시장 청산 가격(market clearing price)에서의 응찰이 임의의 편리한 방식으로 처리될 수 있다. 예를 들어, 스팟 가격 또는 그보다 높은 가격에서의 모든 응찰에 대해 요청된 수의 선점가능한 머신이 허락되도록, 스팟 가격이 다음으로 높은 응찰 가격에 설정될 수 있다. 이와 달리, 스팟 가격은 시장 청산 가격과 동일하게 설정될 수 있으며, 이때 시장 청산 가격에서의 응찰은 잠재적으로 요청된 머신들 중 일부만을 수신한다.
스팟 가격이 글로벌하게 설정된다고 해도, 선점가능한 가상 머신의 할당은 태스크 테넌트 레벨 및/또는 가상 머신 풀의 그룹 레벨과 같이 지역적으로 처리된다. 예를 들어, 글로벌하게 결정된 스팟 가격이 태스크 테넌트로 배포될 수 있다. 그 다음 태스크 테넌트는 각각의 태스크 테넌트 내의 이용가능한 가상 머신을 해당 태스크 테넌트에 의해 서브되는 머신 풀에 할당할 수 있다. 할당은 태스크 테넌트 내의 풀로부터의 가장 높은 응찰에 대해 이행함으로써 시작하여, 다음으로 높은 응찰에 대해 이행하는 방식으로 수행될 수 있다. 이러한 프로세스는 스팟 가격보다 높은 응찰이 더 이상 존재하지 않을 때까지, 또는 선점가능한 가상 머신으로서의 할당을 위해 이용가능한 태스크 테넌트 내의 가상 머신이 더 이상 존재하지 않을 때까지 계속될 수 있다.
일부 상황에서, 글로벌 가격이 계산된 시각과 선점가능한 가상 머신의 할당이 발생한 시각 사이에 이용가능한 선점가능 가상 머신 리소스의 수가 변할 수 있다. 만약 이러한 상황이 발생하면, (태스크 테넌트에 의해 관리되는 머신들과 같은) 가상 머신 클러스터는 스팟 가격보다 높은 모든 응찰에 대해 선점가능한 가상 머신을 할당하기에 충분한 가상 머신을 구비하지 않을 수 있다. 이러한 상황에서, 태스크 테넌트는 보다 많은 가상 머신을 추가하기 위해 선택적으로 시도할 수 있다. 만약 다른 태스크 테넌트와 연관되지 않은 클라우드 컴퓨팅 환경 내의 임의의 초과 가상 머신이 이용가능하다면, 이러한 초과 가상 머신이 추가되어 스팟 가격보다 높게 응찰한 선점가능한 가상 머신에 대한 추가 요청을 충족시키도록 사용될 수 있다. 그러나, 저장 영역으로의 유사한 액세스를 갖는 및/또는 동일한 지리학적 위치 내에 있는 추가적인 가상 머신의 부재로 인해, 주어진 가상 머신 클러스터에 포함시키기 적합한 추가적인 가상 머신이 이용가능하지 않을 수도 있다.
또한 태스크 테넌트가 스팟 가격보다 높은 모든 응찰을 충족시키는데에 필요한 것보다 더 많은 선점가능한 가상 머신을 갖는 경우 또한 가능하다. 다시, 선점가능한 가상 머신은 응찰 순서대로 가상 머신 풀에 할당된다. 스팟 가격보다 높은 모든 응찰을 충족시킨 후에, 태스크 테넌트는 남아있는 추가적인 선점가능한 가상 머신을 여전히 가지고 있을 수 있다. 이는 해당 태스크 테넌트가 일부 가상 머신을 다른 태스크 테넌트로의 재할당을 위해서 종합 클라우드 컴퓨팅 환경으로 반환해야만 한다는 표시일 수 있다. 추가적인 선점가능한 가상 머신이 이용가능하다 해도, 스팟 가격보다 낮은 응찰은 선점가능한 가상 머신을 받지 않는다.
선점가능한 가상 머신이 가상 머신 풀에 할당된 후, 선점가능한 가상 머신은 다음 경매까지, 또는 가상 머신이 현재의 이용을 대체(preempt)하는 다른 목적을 위해 요구될 때까지 해당 풀에 할당된 채로 유지된다. 일시적인 이용을 대체하는 용도의 예시는 가상 머신을 전용 머신으로 변환해야 할 필요성 또는 가상 머신을 재난 복구를 위해 사용해야 할 필요성을 포함한다. 선점가능한 가상 머신이 대체될 때, 태스크 테넌트는 적절한 가상 머신을 가장 낮은 응찰부터 가장 높은 응찰의 순서로 대체할 수 있다. 대체를 위한 선점가능한 가상 머신을 식별할 때 고려될 수 있는 다른 요인은, 선점가능한 가상 머신 상에서 잡이 실행되어 온 시간의 길이이다. 다수의 할당 기간 동안 실행되어 온 잡보다는 방금 시작된 잡이 대체를 위한 더 나은 선택이다. 이러한 유형의 요인은, 예를 들어 동일한 응찰가에 기초하여 할당된 선점가능한 잡들에 대한 추가적인 고려사항으로서 사용될 수 있다. 다양한 실시예에서, 만약 계정에 할당된 가상 머신이 할당 기간 중에 대체된다면, 계정은 해당 할당 기간에 대해 요금이 청구되지 않는다. 그러나, 만약 선점가능한 가상 머신이 할당 기간 동안에 자발적으로 할당이 해제된다면, 계정은 사용된 할당 기간의 일부분에 대해 요금이 청구된다.
분산 네트워크 환경 내의 컴퓨팅 리소스 조직화의 예시
클라우드 컴퓨팅 환경의 사용자는 전형적으로 클라우드 컴퓨팅 리소스를 이용하여 잡을 수행하길 원할 것이다. 잡은 전형적으로 클라우드 컴퓨팅 환경을 통해 액세스 가능한 위치 내에 저장된 데이터에 대해 잡을 수행하는 것을 포함할 것이다. 운영자에 클라우드 컴퓨팅 환경을 제공하는 하나의 방법은 이러한 환경을 다수의 층으로서 제공하는 것이다. 도 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에서, 스팟 가격 책정 모듈(460)은 태스크 위치 서비스 마스터의 일부일 수 있는 모듈이다. 스팟 가격 책정 모듈은 각 스팟 기간의 시작시에 시장 가격을 결정하기 위한 책임을 갖는 글로벌 모듈이다. 글로벌 모듈로서, 스팟 가격 책정 모듈(460)은 전형적으로 복수의 풀 서버(431)에 정보를 제공한다. 스팟 가격 책정 모듈(460)은 스팟 가격 책정된 선점가능한 가상 머신에 대한 현재 시장 가격에 동기화하기 위해, 태스크 위치 서비스의 일부인 풀 서버와 박동(heartbeat)을 유지한다.
메트릭 수집 모듈(472)은 풀 서버의 일부일 수 있는 모듈이다. 메트릭 수집 모듈(472)은 풀 서버가 소유하는 상응하는 풀들에 대한 자동 스케일링을 위해 사용되는 메트릭을 수집하는 책임을 갖는다. 이것은 CPU, 네트워크, 큐 통계뿐 아니라 다른 모든 메트릭들의 풀마다의 통계를 포함한다. 이러한 모듈의 출력은 자동 스케일링 모듈(474)로 공급된다. 자동 스케일링 모듈(474) 또한 풀 서버의 일부일 수 있다. 자동 스케일링 모듈은 각 풀과 연관된 자동-스케일링 공식에 기초하여 자동-스케일링 결정을 내리는 책임을 갖는다. 사용자에 의해 제공되는 공식/규칙과 함께 메트릭을 취하여, 각각의 풀에 대한 자동 스케일링 동작을 계산한다. 자동 스케일링 동작(auto scaling action)은 풀에 대해 지정된 가상 머신을 특정 양만큼 증가 또는 감소시키는 것; 풀에 대한 스탠바이 가상 머신을 특정 양만큼 증가 또는 감소시키는 것; 및 풀에 대한 스팟 가격 책정된 또는 선점가능한 가상 머신의 목표 수를 특정 양만큼 증가 또는 감소시키는 것과, 응찰 가격을 업데이트하는 것을 포함할 수 있다. 자동 스케일링 모듈(474)의 출력은 풀 관리 모듈(480)로 공급되며, 풀 관리 모듈(480)은 이러한 명령을 실행하거나 주어진 풀의 크기를 변경시키기 위한 메커니즘을 구현한다. 명령은 풀 크기를 업데이트하기 위한 사용자 요청과 동일한 방식으로 프로세싱될 수 있다. 주어진 스팟 가격에 대해서, 풀 관리 모듈(480)은 현재 시장 가격 및 미지급(outstanding) 응찰에 따라 풀 내의 선점가능한 가상 머신의 할당 및 선점을 제어한다.
도 5는 태스크 테넌트에 대한 구성요소 및 상응하는 책임의 예시를 포함하는, 태스크 테넌트의 실시예의 예시적인 높은 레벨 아키텍처를 도시한다. 전술된 바와 같이, 태스크 테넌트는 가상 머신들의 풀 관리를 도울 수 있다. 도 5에 도시된 실시예에서, 태스크 테넌트는 하나 이상의 태스크 테넌트 프론트 엔드(522)를 포함한다. 태스크 테넌트 프론트 엔드(522)는 태스크 위치 서비스와 태스크 테넌트 사이의 요청을 통과하는 것을 포함하여, 태스크 테넌트와 그의 상응하는 태스크 위치 서비스 사이의 통신에 내부적으로 사용되는 태스크 테넌트 가상 IP 어드레스(524) 뒤에 존재한다.
도 5에 도시된 실시예에서, 태스크 테넌트는 또한 태스크 스케줄러(536)도 포함한다. 태스크 스케줄러(536)는 태스크 테넌트 내에서 로컬 태스크 스케줄링 결정을 내리는 책임을 가질 수 있다. 태스크 스케줄러(536)는 어느 태스크가 자신이 제어하는 각각의 가상 머신 상에서 실행될지를 결정한다. 예를 들어, 사용자에 의해 제출된 작업 아이템 또는 잡은 스케줄링될 태스크들의 리스트를 포함하는 큐(queue)들의 세트를 구비할 수 있다. 태스크 스케줄러(536)는 큐들의 세트로부터 태스크를 취하고, 잡과 연관된 풀 내의 하나 이상의 이용가능한 가상 머신을 선택하며, 이러한 태스크를 스케줄링하기 위해 가상 머신(들)에 접촉한다. 태스크 스케줄러(536)는 또한 잡과 연관된 우선순위 값에 기초하여 스케줄링 결정을 내릴 수도 있다. 또한, 태스크 스케줄러(536)는 태스크 테넌트 내의 가상 머신들을 계속 추적한다. 태스크 스케줄러(536)는 가상 머신을 풀에 할당/가상 머신을 풀로부터 할당해제하기 위해 풀 서버와 작동한다. 또한, 태스크 스케줄러(536)는 모든 가상 머신과의 박동을 유지하고, 이를 통해 풀 멤버십과 관련된 가상 머신과 동기화하며, 가상 머신들의 재시작/리이미징(reimage)을 제어한다. 태스크 스케줄러(536)의 또 다른 기능은 태스크 테넌트의 크기를 파악하는 것일 수 있다. 태스크 테넌트 내의 가상 머신들의 현재 활용에 기초하여, 태스크 테넌트가 자신과 연관된 태스크들을 실행하기 위한 충분한 수의 가상 머신을 구비하도록, 태스크 스케줄러가 태스크 테넌트를 확장 또는 축소할 수 있다. 유사하게, 만약 태스크 테넌트 내에 유휴 상태인 가상 머신이 너무 많다면, 머신들은 데이터 센터 내의 다른 호스팅된 서비스에 의한 사용을 위해 방출될 수 있다.
도 5는 또한 태스크 테넌트와 연관된 복수의 가상 머신을 도시한다. 도 5에 도시된 실시예에서, 각각의 가상 머신은 태스크 가상 머신 에이전트(550)(TVM)를 포함한다. 실시예에서, 태스크 가상 머신 에이전트(550)는 가상 머신 상에서 태스크를 시작하는 것뿐 아니라 태스크에 대한 디렉토리 구조 및 승인을 수립하는 책임을 갖는다. 이것은 또한 (만약 풀이 내부통신을 필요로 한다면) 오직 동일한 풀 내에 있는 가상 머신들 사이에서의 트래픽만을 허용하도록 가상 머신 상의 운영 시스템 방화벽을 구성한다. 앞서 논의된 바와 같이, 태스크 스케줄러(536)는 태스크 가상 머신 에이전트(550)를 통해 가상 머신과의 박동을 유지한다. 이것은 태스크 스케줄러(536)가 가상 머신들의 건강을 모니터링할 뿐 아니라 태스크 가상 머신 에이전트에 대해 풀 멤버십 정보를 동기화할 수 있게 한다.
스팟 가격 책정 플로우 예시
아래에서는 시스템 내에서 스팟 가격 책정이 글로벌 기준으로 구현될 수 있는 방법의 예시를 제공한다. 이러한 예시에서, 세 가지 구성요소 또는 모듈이 글로벌 스팟 가격 책정에 기여한다: 태스크 시스템 외부의 스팟 가격 책정 서비스 또는 태스크 위치 서비스 마스터 내의 모듈과 같은 스팟 가격 책정 모듈; 태스크 위치 서비스 내의 각각의 풀 서버의 일부인 풀 관리 모듈과 같은 풀 관리 모듈; 및 잠재적으로 각각의 태스크 테넌트의 일부인 태스크 스케줄러와 같은 태스크 스케줄러. 서로 다른 구성요소들은 다양한 책임을 가진다. 도 6은 선점가능한 가상 머신 리소스의 글로벌 스팟 가격 책정을 수행하기에 적절한 시스템의 예시를 개략적으로 도시한다. 도 6에 도시된 예시에서, 클라우드 컴퓨팅 환경 내에서 글로벌 스팟 가격을 업데이트하는 것은 적어도 세 가지 프로세스를 포함한다.
도 6에서, 스팟 가격 책정 모듈(660)은 할당 기간과 같은 각각의 스팟 기간의 시작시에 글로벌 시장 가격을 계산하기 위한 책임을 가질 수 있다. 스팟 가격 책정 모듈(660)은 모든 풀 서버(631)에 걸친 스팟 선점가능한 가상 머신 할당의 높은 레벨 브레이크다운(breakdown)을 제공할 수 있지만, 스팟 가격 책정 모듈은 각각의 개별적인 응찰에 대한 상세한 할당 결정에 관련되지 않는다. 시장 가격이 결정된 후에, 스팟 가격 책정 모듈(660)은 가격 히스토리 테이블(670) 및 풀 서버(631)를 업데이트하는 책임을 가질 수 있다. 도 6에 도시된 예시에서, 가격 히스토리 테이블(670)은 글로벌 가격 히스토리 테이블에 해당한다. 가격 히스토리 테이블(670)은 각각의 스팟 기간에 대해 시장 가격을 계속 파악할 수 있다. 스팟 가격 책정 모듈(660)은 가격이 결정되면 이러한 테이블을 업데이트할 수 있다. 스팟 가격 책정 모듈(660)은 또한 태스크 위치 서비스 마스터와 풀 서버 사이의 규칙적인 박동을 통해 풀 서버(631)에 시장 가격 업데이트를 전송할 수 있다. 스팟 가격 책정 모듈(660)은 또한 각각의 태스크 테넌트에 대한 서로 다른 풀 서버들 사이에서 스팟 선점가능한 가상 머신 할당의 초기의 높은 레벨 브레이크다운을 포함할 수 있다.
바람직하게는, 스팟 가격 책정 모듈(660)이 먼저 가격 히스토리 테이블(670)을 업데이트할 수 있다. 그 다음 스팟 가격 책정 모듈(660)은 제 2 단계에서 박동 메시지를 통해 풀 서버(631)를 업데이트할 수 있다. 그 다음 풀 서버는 제 3 프로세스에서 다양한 태스크 테넌트를 업데이트한다. 바람직하게, 가격 업데이트 메시지는 스팟 기간 동안 상응하는 타임스탬프로 태그될 수 있다. 스팟 가격 책정 모듈(660)이 글로벌 모듈이기 때문에, 스팟 가격 책정 모듈은 타임스탬프가 항상 증가한다는 것을 보장할 수 있다. 가격 히스토리 테이블(670)은 항상 진정한 현재 스팟 가격을 보유할 수 있다. 현재 스팟 가격에 대해 확신하지 못하는 풀 서버(631)는 가격 히스토리 테이블(670)을 통해 현재 스팟 가격에 액세스할 수 있다.
가격 히스토리 테이블(670)은 진정한 현재 가격을 보유한다. 새로운 스팟 가격이 설정되었을 때, 스팟 가격 책정 모듈(660)은 가격 히스토리 테이블(670)이 업데이트될 때까지 새로운 가격에 대해 아무에게도 말하지 않을 것이다. 태스크 위치 서비스 마스터는 각각의 풀 서버와의 규칙적인 박동을 갖는다. 다양한 타입의 정보가 각각의 박동 메시지에 포함될 수 있다. 박동 메시지는 현재 스팟 기간의 타임스탬프를 포함할 수 있다. 이러한 타임스탬프는 증가하며, 어떤 스팟 기간이 더 최근인지를 결정하기 위해 연속적인 숫자로서 사용될 수 있다. 박동 메시지는 또한 현재 스팟 기간에 대한 시장 가격을 포함할 수 있다. 또한, 박동 메시지는 가격이 다시 업데이트되는 시간에 해당하는 다음 스팟 기간이 시작할 때까지의 지속시간을 포함할 수 있다. 풀 서버는 만약 태스크 위치 서비스 마스터로부터 정시에 연락을 받지 않는다면 다음 가격 변경을 언제로 예상해야 하는지를 결정하기 위해 이러한 정보를 사용할 수 있다.
만약 스팟 가격 책정 모듈(또는 태스크 위치 서비스 마스터)이 임의의 이유로 동작하지 않는다면, 시스템의 나머지 부분이 올바르게, 기본적으로는 다른 기간을 거치면서 현재 스팟 가격 책정을 확장하여 여전히 작동할 수 있다. 가격 테이블은 업데이트되지 않을 것이며 풀 서버는 효율적으로 현재 스팟 기간을 확장하여 현재 시장 가격을 여전히 사용할 것이다. 스팟 가격 기간은 바람직하게는 고정된 N분 경계를 갖는다. 예를 들어, 만약 30분의 기간이 사용되면, 기간은 1:00-1:30, 1:30-2:00, 2:00-2:30 등일 수 있다. 태스크 위치 서비스 마스터가 복구되면, 만약 기간 시작 시각으로부터 X분 내에 있는 경우 현재 기간에 대해 새로운 스팟 기간을 시작할 수 있다. 만약 X분이 지났다면, 가격을 수정하기 위한 다음 간격이 올 때까지 기다릴 것이다. 그러나 이러한 상황에서, 태스크 위치 서비스 마스터는 여전히 스팟 가격 책정 히스토리 테이블에 새로운 스팟 기간과 함께 변경되지 않은 스팟 가격을 추가할 수 있다. 예를 들어, 현재 스팟 기간의 예상 시작의 처음 5분과 같은 고정된 시간 윈도우 내에서 새로운 스팟 가격이 이용가능하다면, 스팟 가격이 업데이트될 수 있다. 만약 스팟 가격 책정 모듈 및/또는 태스크 위치 서비스 마스터가 늦어서 해당 시간 윈도우를 놓쳤다면, 가격은 다음 스팟 기간까지 변경되지 않고 유지될 수 있다.
각각의 풀 서버(631)는 풀 관리 모듈(680)을 포함할 수 있다. 이러한 예시에서, 풀 관리 모듈(680)은 주어진 풀 내의 예약 및 (스탠바이 가상 머신과 전용 가상 머신 사이의) 변환 요청뿐 아니라 선점가능한 가상 머신을 제거하라는 임의의 명확한 요청을 처리한다. 또한, 스팟 가격 책정을 처리하기 위해서, 풀 관리 모듈은 현재 시장 가격보다 위에 있는 미지급 응찰을 충족시키고, 더 이상은 자격이 주어지지 않은 응찰에 기초한 선점가능한 가상 머신들을 치우는 책임을 가질 수 있다. 풀 관리 모듈(680)은 현재 시장 가격보다 높은 (또는 같은) 미지급된 또는 충족되지 않은 응찰들을 구비하는 풀들의 세트를 파악하는 책임을 가질 수 있다. "미지급(outstanding)"이라는 표현은 요청했던 선점가능한 가상 머신을 아직 모두 수신하지 않은 풀을 의미한다. 그 다음 풀 관리 모듈은 미지급된 응찰을 내림차순으로 충족시키도록 (즉, 더 높은 응찰부터 먼저 충족시킴) 선점가능한 가상 머신을 할당할 수 있다. 또한, 풀 관리 모듈은 현재 시장 가격보다 낮은 응찰을 가진 풀로부터 모든 선점가능한 가상 머신을 선점할 수 있다. 풀 서버(631)는 주어진 태스크 테넌트(615)에 대한 스팟 가격 책정을 통한 할당을 위해 풀 내에서 이용가능한 선점가능 가상 머신들의 목표 수를 설정하는 책임을 갖는다. 풀 서버(631)는 주어진 풀에 대한 태스크 테넌트(615) 내에 할당된 선점가능한 가상 머신의 정확한 수를 추적하지 않는다. 풀 서버(631)에 의해서 설정된 목표에 도달하기 위해 선점가능한 가상 머신을 추가/제거하는 것은 태스크 테넌트(615)에 달려있다.
태스크 스케줄러(636)는 태스크 테넌트(615) 내의 모듈이다. 이러한 예시에서, 태스크 스케줄러(636)는 스팟 가격을 적극적으로 추적하지 않는다. 태스크 스케줄러(636)는 "TenantPoolTable" 또는 주어진 테넌트 내의 각각의 풀에 대한 선점가능한 가상 머신의 목표 수를 추적하는 다른 유사한 데이터 구조를 유지할 수 있다. 태스크 스케줄러(636)가 스팟 가격보다 높은 (또는 낮은) 응찰에 기초한 선점가능한 가상 머신에 대한 풀 거래를 수신할 때, 태스크 스케줄러는 주어진 풀에 대한 선점가능한 가상 머신의 목표 수를 보고하도록 이러한 테이블을 업데이트할 것이며, 풀 서버(631)의 관점으로부터 거래가 완료된다. 태스크 스케줄러는 풀에 대한 선점가능한 가상 머신 수를 목표 수로 이끌기 위한 책임을 갖는다. 전용 가상 머신에 대한 변환의 경우에서, 만약 태스크 테넌트(615)와 연관된 충분한 유휴 가상 머신이 존재하지 않는다면, 태스크 스케줄러(636)는 더 낮은 응찰을 갖는 선점가능한 가상 머신들 중 일부를 선점할 수 있다. 이는 풀 서버(631)에 선점을 통지하지 않고 이루어질 수 있다.
할당 및 선점은 새로운 스팟 기간의 시작뿐 아니라 스팟 기간 동안에도 발생할 수 있다. 스팟 기간의 시작시에, 태스크 위치 서비스 마스터는 각각의 태스크 테넌트에 걸친 풀 서버들 사이에서의 선점가능한 가상 머신 할당의 높은 레벨 브레이크다운을 각각의 풀 서버에 전송한다. 풀 서버는 이러한 정보를 할당 및 선점 결정을 이끌어내도록 사용할 수 있다. 풀 서버는 모든 미지급 응찰뿐 아니라 그들의 제출 시간도 파악한다. 스팟 기간의 시작 전에, 또는 아마도 스팟 기간의 시작과 상이한 컷오프 시간 이전에 제출된 모든 응찰들에 대해서, 풀 서버는 더 낮은 응찰에 앞서 더 높은 응찰이 채워지도록 보장할 수 있다. 그 결과로서, 이전의 기간으로부터 더 낮은 응찰에 기초하여 할당된 일부 선점가능한 가상 머신이 선점될 수 있다. 풀 서버는 또한 필요하지 않은 선점을 조정하여 최소화하도록 태스크 위치 서비스 마스터에 의해 제공된 글로벌 정보를 사용할 수 있다.
태스크 위치 서비스 마스터가 시장 가격을 계산할 때, 서로 다른 풀들과 서로 다른 태스크 테넌트들에 걸친 선점가능한 가상 머신 할당의 높은 레벨 브레이크다운도 계산할 것이다. 이러한 정보는 할당 결정을 돕기 위해서 모든 풀 서버들에 전달된다. 이러한 정보는 태스크 테넌트 내의 각각의 풀 분할 범위에 대한 각각의 통제 및 각각의 응찰 가격에 대한 상세한 선점가능 가상 머신 할당 브레이크다운을 포함할 수 있다. 예를 들어, 동일한 응찰 가격 및 (예를 들어, 내부-통신 또는 스토리지 관련성(affinity) 통제로 인해 어떤 테넌트(들)를 사용해야만 하는지와 같은) 동일한 통제를 갖는 모든 응찰은 태스크 위치 서비스 마스터의 관점으로부터 함께 그룹화될 것이다. 태스크 위치 서비스 마스터는 각각의 풀 분할 범위에 대해 해당 그룹에 상세 배분을 제공한다.
풀 서버는 태스크 위치 서비스 마스터에 의해 제공되는 배분 정보에 기초하여 (마치 모든 가능한 선점가능한 가상 머신이 유휴상태인 것과 같이) 새롭게 배분을 계산할 수 있다. 풀 서버는 또한 각각의 풀에 대해 각 태스크 테넌트 내의 선점가능한 가상 머신의 새로운 목표 수를 결정할 수 있다. 그 다음 업데이트되어야 하는 풀들의 세트를 계산하기 위해 새로운 배분이 현재 배분에 비교될 수 있다. 그 다음 풀 서버는 선점가능한 머신의 수에 대한 새로운 타겟 값을 설정하기 위해 업데이트를 요청하는 풀들에 대한 관련 태스크 테넌트에 접촉한다.
풀 서버가 선점가능한 가상 머신을 배분할 때, 풀 서버는 더 낮은 응찰에 대한 배분을 시도하기 전에 더 높은 응찰에 대한 배분 거래를 시작할 수 있다. 또한 풀 서버는 응찰이 제출된 시간을 파악할 수 있다. 동일한 가격의 두 개의 응찰 중에는, 시간상 더 앞선 응찰이 우선권을 가질 것이다. 풀 서버는 다음 거래를 시작하기 전에 앞선 거래가 종료되기를 기다릴 필요가 없다. 대신, 풀 서버는 응찰들의 다음 세트로 진행하기 전에 상응하는 태스크 테넌트와의 배분 거래를 시작하였음을 보장하기만 하면 된다. 이러한 거래들은 바람직하게는 동시에 수행된다.
할당 기간 동안, 가상 머신이 전용 머신으로서의 할당을 위해 요구되거나 또는 클라우드 컴퓨팅 환경이 재난 복구와 같은 다른 이유로 머신을 필요로 할 때 선점이 발생할 수 있다. 만약 시스템 내에 이용가능한 유휴 가상 머신이 존재하면, 유휴 머신이 전용 가상 머신으로서의 할당을 위해 사용될 수 있다. 만약 추가적인 유휴 가상 머신이 존재하지 않으면, 태스크 테넌트는 더 낮은 응찰에 상응하는 선점가능한 가상 머신을 선점할 수 있다. 선점을 위해 머신에 우선순위를 매기는 다른 옵션은 더 짧은 기간 동안 잡을 실행해온 머신의 선점이 우선권을 갖는 것이다. 이용가능하게 된 더 많은 선점가능한 가상 머신이 존재하며 채워지지 않은 미지급 응찰이 존재할 때 배분이 발생한다. 이러한 경우에, 이용가능한 선점가능 가상 머신은 더 높은 응찰로 시작하여 배분될 수 있다.
바람직하게는, 전용 용도를 위해 가상 머신이 필요할 때 전용 가상 머신이 유휴 가상 머신들의 세트로부터 즉시 획득될 수 있도록, 유휴 가상 머신들의 작은 세트가 리이미징된 채로 유지되어 준비될 수 있다. 태스크 테넌트는 이러한 유휴 가상 머신을 백그라운드에 유지할 것이다. 태스크 테넌트 내의 유휴 가상 머신의 수가 예로서 태스크 테넌트 내의 전용 가상 머신의 1%와 같은 문턱값 아래로 떨어지면, 유휴 가상 머신 수가 제 2 문턱값에 도달할 때까지 태스크 테넌트는 더 낮은 응찰을 갖는 가상 머신을 선점하기 시작할 수 있으며, 이러한 제 2 문턱값은 제 1 문턱값과 동일하거나 다를 수 있다. 태스크 테넌트는 풀 서버를 관련시키지 않고 이러한 선점가능한 가상 머신을 선점할 수 있으며, 이는 선점이 신속하게 이루어지도록 한다.
다른 한편으로, 만약 태스크 스케줄러가 풀 서버에 의해 할당된 모든 풀들에 대한 모든 선점가능한 가상 머신 목표를 이미 충족시켰으며 여전히 제 2 문턱값보다 높은 여분의 유휴 가상 머신이 존재한다면, 태스크 스케줄러는 규칙적인 박동을 통해서 이러한 여분의 유휴 가상 머신들의 수를 풀 서버에 보고할 수 있다. 만약 여분의 유휴 가상 머신들의 수가 제 3 문턱값 위에 있다면, 풀 서버는 이러한 여분 가상 머신을 미지급 응찰에 배분하기 시작할 것이다.
아래에는 스팟 가격 책정에 기초한 선점가능한 가상 머신의 할당을 위한 프로세스 흐름의 높은 레벨 예시를 제공한다. 스팟 기간의 시작시에, (태스크 위치 서비스 마스터 내의 글로벌 스팟 가격 책정 모듈과 같은) 태스크 위치 서비스 마스터는 응찰 및 리소스 이용가능성에 기초하여 스팟 기간에 대한 새로운 시장 가격을 계산한다. 가격이 결정된 후에, 태스크 위치 서비스 마스터는 앞서 기술된 바와 같이 다가오는 스팟 기간에 대한 타임스탬프 및 새로운 가격을 갖는 가격 히스토리 테이블을 업데이트한다. 그 다음 태스크 위치 서비스 마스터는 규칙적인 박동 메시지를 통해 각각의 풀 서버로 스팟 가격을 전송한다. 또한, 태스크 위치 서비스 마스터는 각각의 풀 서버에 대한 선점가능한 가상 머신 배분의 초기 브레이크다운을 전송할 수 있다. 이것은 풀 서버가 배분 결정을 내리는 것을 도울 수 있다. 풀 서버가 태스크 위치 서비스 마스터로부터 메시지를 수신할 때, 풀 서버는 새로운 시장 가격 아래에 있는 모든 선점가능한 머신을 선점하여 자신의 모든 풀들에 대한 미지급 응찰에 선점가능한 가상 머신을 배분하기 시작한다. 특히, 풀 서버는 주어진 풀에 대해 새로운 선점가능한 가상 머신의 목표 수를 설정하라는 커맨드를 태스크 테넌트에 전송한다. 이것은 태스크 테넌트가 선점가능한 가상 머신의 목표 수를 기록하자마자 거래가 완료된다는 점을 제외하면, 전용 가상 머신 수를 설정하는 풀 거래와 유사한 방식으로 수행된다. 그 다음 태스크 스케줄러가 풀로부터 가상 머신을 제거하거나 배분함으로써 가상 머신을 목표 수로 이끌고자 노력할 것이다. 태스크 테넌트 측에서, 선점가능한 가상 머신 배분은 선점가능한 가상 머신이 테넌트 내의 유휴 가상 머신들의 글로벌 세트로부터 획득되며 태스크 스케줄러가 항상 더 높은 응찰에 선점가능한 가상 머신을 먼저 배분한다는 점을 제외하면 전용 가상 머신에 대한 것과 동일한 방식으로 수행된다. 또한, 스팟 기간 동안의 리소스 부족으로 인해(예컨대, 스탠바이 가상 머신으로부터 전용 가상 머신으로의 변환), 태스크 스케줄러는 선점가능한 가상 머신을 선점해야할 수 있다. 이러한 시나리오에서, 더 낮은 응찰을 가진 풀에 상응하는 가상 머신들이 먼저 선점된다.
할당 기간 동안, 풀 서버는 일부 선점가능한 가상 머신이 스팟 가격 책정에 기초한 할당을 위해 이용가능해졌음을 발견할 수 있다. 예를 들어, 일부 전용 가상 머신이 스탠바이 가상 머신으로 변환될 수 있거나, 또는 선점가능한 가상 머신이 사용자에 의해 방출될 수 있다. 풀 서버는 주어진 풀에 대한 선점가능한 가상 머신에 대해 새로운 (더 높은) 목표 수를 설정함으로써 이용가능한 가상 머신을 미지급 응찰에 배분할 수 있으며, 이때 더 높은 응찰이 우선권을 갖는다. 일부 실시예에서, 선점가능한 가상 머신은 다음 스팟 기간이 시작하는 즉시 선점될 수 있기 때문에, 스팟 기간의 마지막 5분 내와 같은 스팟 기간의 마지막에 배분되지 않는다.
클라우드 컴퓨팅 환경 내의 가상 머신들 할당의 예시
아래의 가상적인 예시는 클라우드 컴퓨팅 환경 내의 전용 가상 머신, 스탠바이 가상 머신 및 선점가능한 가상 머신의 동작 및 상호작용을 설명하도록 제공되었다. 이러한 예시에서, 도면과 함께 설명을 단순화하기 위해서 작은 수의 가상 머신이 논의될 것이다. 그러나, 당업자는 본 명세서에 기술된 개념이 임의의 원하는 수의 가상 머신으로 스케일-업 될 수 있음을 인식할 것이다.
아래의 가상적인 예시에서, 다양한 전용 가상 머신, 스탠바이 가상 머신 및 선점가능한 가상 머신의 할당이 기술될 것이다. 상응하는 도면에서, 사용자 Abel에 대한 머신이 A로, 사용자 Charlie에 대한 머신이 C로, 사용자 David에 대한 머신이 D로, 그리고 사용자 Frank에 대한 머신이 F로 표기될 것이다. 일부 머신들은 추가적인 대량 수요자를 나타내도록 L로 표기될 것이다. 가상 머신이 할당된 사용자를 지정하는 것에 추가하여, 가상 머신들은 전용 머신에 대한 명칭(D) 또는 선점가능한 머신에 대한 명칭(P)을 가질 수 있다. 예시 내의 다양한 사용자에 의해 수행되는 잡은, 데이터 마이닝(mining) 및 사업을 위한 관리를 수행하는 것, 과학적 계산을 수행하는 것, 또는 소매 고객 트래픽을 다루는 것과 같은 임의의 타입의 컴퓨팅을 수행하기 위한 잡일 수 있다.
도 7은 두 개의 테스크 테넌트(710, 711) 내의 가상 머신들의 초기 상태의 예시를 도시한다. 태스크 테넌트는 대표적인 것이며, 임의의 편리한 수의 태스크 테넌트가 스팟 가격 책정 모듈(760)로부터 정보를 수신할 수 있다. 유사하게, 각 태스크 테넌트 내에 도시된 가상 머신의 수는 대표적인 것이며, 더 많거나 더 적은 수의 가상 머신이 태스크 테넌트 내에 포함될 수 있다. 태스크 테넌트(710, 711) 내에서, 앞 문자가 동일한 명칭을 갖는 가상 머신은 동일한 풀 내에 있는 머신에 해당한다. 예를 들어, "A(?)" 포맷을 갖는 모든 가상 머신들은 사용자 Abel의 계정과 연관된 풀 내에 있는 것이다.
도 7에서, 스팟 가격 책정을 통해 임의의 가상 머신을 선점가능한 가상 머신으로서 할당하기 이전의 태스크 테넌트(710, 711)의 초기 상태가 도시되었다. 도 7에서, 사용자 Abel, Charles, David 및 Frank는 각각에 할당되어 잡을 실행중인 두 개의 전용 가상 머신을 구비한다. 이들 머신들은 각각 머신(723, 733, 743, 753)으로 도시되었다. 가상 머신(768, 769)은 어떠한 풀에도 할당되지 않은 머신에 해당한다. 또한, 스탠바이 수(793)는 태스크 테넌트(710) 아래에 포함되고 스탠바이 수(794)는 태스크 테넌트(711) 아래에 포함된다. 스탠바이 수(793, 794)는 각각의 태스크 테넌트(710, 711)와 현재 연관된 스탠바이 가상 머신 예약을 나타낸다. 도 7에서, 스탠바이 예약은 각각의 태스크 테넌트(710), 태스크 테넌트(711) 내의 대량 수요자와 연관된 2개의 예약에 해당한다. 이러한 예시에서, 스탠바이 예약은 시스템에 의한 선택에 기초하여 태스크 테넌트와 연관되었다. 만약 스탠바이 예약이 관련성(affinity) 요청의 일부였다면, 대량 수요자는 적절한 관련성을 갖는 명시된 클러스터를 가질 수 있었을 것이고 그에 따라 스탠바이 예약이 연관되었을 수 있을 것이다.
그 다음 스팟 가격 책정 결정이 사용자로부터의 요청에 기초하여 사용자에게 선점가능한 머신을 할당하도록 사용된다. 스팟 가격 책정 모듈은 이용가능한 모든 풀로부터 제공된 응찰들을 수집하여 시간당(또는 다른 가격 책정 기간당) 0.6센트의 스팟 가격을 결정한다. 또한 가격 책정 기간의 일부에 대해 요금 청구가 수행될 수 있다. 스팟 가격은 사용자 Abel, Charles, David 및 Frank로부터의 응찰을 포함하는 선점가능한 머신에 대한 다양한 응찰에 기초한다. 사용자 Abel은 1.5센트의 응찰가로 3개의 선점가능한 머신을 요청한다. 사용자 Charles는 1.3센트의 응찰가로 하나의 선점가능한 가상 머신을 요청하고 0.6센트의 응찰가로 두 번째 선점가능한 가상 머신을 요청한다. 사용자 David는 0.5센트의 응찰가로 세 개의 선점가능한 머신을 요청한다. 사용자 Frank는 1.0센트의 응찰가로 하나의 머신을 요청하고 0.8센트의 응찰가로 다른 세 개의 머신을 요청한다.
응찰에 기초하여, 선점가능한 머신이 사용자들에게 할당된다. 사용자들에 대한 머신의 할당이 도 8에 도시되었다. 태스크 테넌트(711)에서, 선점가능한 머신에 대한 가장 높은 응찰을 갖는 것에 기초하여 세 개의 이용가능한 머신(826)이 Abel에 할당되었다. 이들 머신들은 도 7에서의 세 개의 유휴 머신(769)에 해당한다. 다음으로, 태스크 테넌트(710, 711)는 1.3센트로 하나의 선점가능한 가상 머신에 응찰한 Charles의 요청을 충족시키고자 한다. 태스크 테넌트(711) 내의 하나의 이용가능한 가상 머신(836)이 선점가능한 가상 머신으로서 Charles에게 할당된다.
다음으로, 응찰 가격에 기초하여 가상 머신들에 대한 Frank의 응찰이 후속해서 처리된다. 이들 가상 머신은 이용가능한 가상 머신이 남아있는 태스크 테넌트(710)로부터 할당된다. 하나의 선점가능한 머신에 대해 기간당 1.0센트인 응찰이 가상 머신(856)에 의해 충족된다. 추가적인 세 개의 머신에 대한 0.8센트의 응찰이 가상 머신(857)에 의해 충족된다. Frank의 응찰에 기초하여 가상 머신이 할당된 후에, 다음 할당 기간에 대한 가격과 같거나 그보다 높은 Charles로부터의 하나의 가상 머신에 대한 요청은 여전히 충족되지 않았다. 이러한 요청은 Charles에 대한 풀을 태스크 테넌트(710)로 확장하여 선점가능한 가상 머신(837)을 Charles에게 할당함으로써 충족된다. David의 요청과 연관된 응찰가는 선점가능한 가상 머신의 할당을 위한 스팟 가격보다 낮기 때문에, 0.5센트로 응찰한 세 개의 머신에 대한 David의 요청은 충족되지 않는다. 위의 할당에 기초하여, 가장 낮은 상응하는 응찰가를 갖는 선점가능한 머신은 태스크 테넌트(710) 내에 위치된다. 만약 대량 수요자가 스탠바이 예약을 전용 가상 머신으로 변환하면, 하나의 옵션은 각각의 태스크 테넌트(710, 711)로부터 각각 두 개의 선점가능한 가상 머신을 대량 수요자에 대한 전용 가상 머신으로 변환하는 것일 수 있다. 이는 태스크 테넌트(711) 내의 더 높은 응찰과 연관된 선점가능한 잡이 대체되게 할 수 있다. 바람직하게는 더 낮은 응찰을 희생하여 더 높은 응찰을 만족시키기 위해서, (Charles 또는 Frank에 대한 잡과 같은) 더 낮은 응찰을 갖는 잡을 희생하여 (Abel에 대한 잡과 같은) 더 높은 응찰을 갖는 잡이 태스크 테넌트(710) 내에서 재시작되기 위한 제 2 이동으로 이어질 수 있다. 다른 옵션은 스탠바이 예약이 가장 낮은 응찰에 기초하여 할당된 머신을 갖는 태스크 테넌트와 연관되도록 태스크 테넌트(710, 711)에 걸쳐 스탠바이 예약을 재배분하는 것이다. 이것은 도 8에 도시되었으며, 여기에서 스탠바이 수(793)는 0으로 조정된 반면, 스탠바이 수(794)는 이제 4가 되었다. 스탠바이 수의 변화에 기초하여 머신이 재할당되지 않음을 인지해야 한다.
도 8에서, 선점가능한 응찰이 관련성 요청에 기초하지 않는 예시가 사용되었다. 도 9는 사용자 Charles로부터의 선점가능한 응찰이 Charles에 이미 할당된 선점가능한 가상 머신 또는 다른 전용 가상 머신에 대한 관련성 요청을 포함하는 다른 예시를 도시한다. 이러한 관련성 요청에 기초하여, Charles로부터의 선점가능한 잡 요청은 Charles가 두 개의 전용 가상 머신을 갖는 태스크 테넌트(711)에 대한 관련성을 갖는다. 도 9에서, 위와 동일한 수의 가상 머신이 각각의 사용자 Abel, Charles 및 Frank에게 할당되었다. 그러나, 가상 머신에 대한 할당 결정에서, 태스크 테넌트는 Charles로부터의 관련성 요청을 고려한다. 만약 머신들이 도 8에 기술된 방법으로 할당된다면, 태스크 테넌트(711)에서 오직 하나의 가상 머신만이 Charles에게 이용가능할 것이다. 관련성 요청으로 인해, Charles는 태스크 테넌트(710)로부터의 가상 머신을 사용하지 않을 것이며, 상응하는 응찰 가격이 스팟 가격과 같거나 더 높다고 하더라도 Charles로부터의 요청은 충족되지 않은 채로 남아있게 된다. 이러한 상황을 방지하기 위해서, 태스크 테넌트(710) 내의 하나의 선점가능한 가상 머신(926)이 Abel에게 할당된다. 그 다음 선점가능한 가상 머신(936)이 Charles에게 할당될 수 있다. Abel의 응찰가가 Charles보다 더 높다고 해도, Abel의 요청을 충족시킬 때 Charles로부터의 관련성 요청이 고려된다. 이것은 선점가능한 머신으로부터의 이익 및 활용이 증가되도록 한다. 태스크 테넌트(711)가 이제 가장 낮은 응찰 가격으로 할당된 선점가능한 머신을 포함하기 때문에, 태스크 테넌트(711)에 대한 스탠바이 수(793)는 1인 반면 태스크 테넌트(710)에 대한 스탠바이 수는 3이다.
도 9에 도시된 예시를 계속 참조하면, 이후에 대량 수요자에 대한 4개의 스탠바이 계약이 전용 가상 머신으로 변환하는 트리거 이벤트(trigger event)가 발생한다. 트리거 이벤트는 시간-기반일 수 있거나, 대략 수요자에 의해 사용되고 있는 가상 머신들의 활동 또는 이용도로 인한 부하-기반일 수 있거나, 또는 이들의 조합일 수 있다. 이러한 예시에서, 트리거 이벤트는 활동 또는 부하-기반이며 할당 기간의 중간에 발생한다. 이러한 동일한 할당 기간 동안에, Abel 또한 요청되는 선점가능한 머신의 수를 3개에서 4개로 증가시킨다. Abel로부터의 이러한 증가 요청은 동일한 응찰가를 포함한다.
도 10은 위와 같은 변화의 초기 결과를 도시한다. 대량 수요자에 대한 스탠바이 예약의 변환은 가상 머신(1094)이 대량 수요자에 대한 전용 머신으로 변환되도록 한다. 스탠바이 예약은 가장 낮은 우선권을 가진 선점가능한 잡을 선점함으로써 전용 가상 머신으로 변환된다. 도 10에 도시된 예시에서, 이것은 가장 낮은 연관 응찰을 갖는 잡을 선점하는 것에 해당한다. 도 10에 도시된 예시에서, 스탠바이 수(793, 794)는 가장 낮은 선점가능한 응찰에 기초하여 할당된 가상 머신을 포함하는 태스크 테넌트를 반영하지만, 반드시 그래야만 하는 것은 아니다. 전술된 바와 같이, 스탠바이 예약은 다양한 이유로 인해서 원하는 태스크 테넌트와 연관될 수 있지만, 선점가능한 잡은 전용 머신의 변환 후에 태스크 테넌트들 사이에서 이동될 수 있다. 도 10에서, 가장 낮은 선점가능한 응찰에 상응하는 가상 머신은 0.6센트의 응찰에 기초하여 Charles에게 할당된 가상 머신이다. 이러한 가상 머신은 태스크 테넌트(711) 내의 대량 수요자에 대한 전용 가상 머신(1093)으로 변환된다. 다음으로 가장 낮은 세 개의 응찰은 Frank에게 할당된 태스크 테넌트(710) 내의 선점가능한 가상 머신에 해당한다. 이러한 가상 머신은 대량 수요자에게 할당된 전용 가상 머신(1094)으로 변환된다. 이는 Frank에게 할당된 하나의 선점가능한 가상 머신(856)을 남긴다. Abel이 더 높은 응찰을 가짐에도 불구하고, 스팟 가격 책정 메커니즘은 할당 기간의 시작시에 선점가능한 가상 머신을 재할당하기 위해서만 사용된다. Abel의 요청이 할당 기간 도중에 이루어졌기 때문에, Abel의 요청이 더 높은 응찰을 포함한다 하더라도 Abel의 요청은 Frank에게 할당된 선점가능한 가상 머신을 옮기지 않는다. 또한, 대량 수요자에 대한 스탠바이 예약의 변환으로 인해 태스크 테넌트(710, 711) 모두에 대한 스탠바이 수가 0으로 감소되었다.
도 11은 다음 할당 시간의 시작시에 발생하는 추가적인 변화를 나타낸다. 대량 수요자에 의해 요청된 추가 리소스로 인해, 더 적은 수의 가상 머신이 선점가능한 머신으로서 할당될 수 있다. 이것은 글로벌 스팟 가격을 기간당 11센트로 인상시키는 결과를 가져온다. 도 11에 도시된 바와 같이, 추가 머신에 대한 Abel의 앞선 요청이 이제 가상 머신(1126)에 의해 충족되었다. 태스크 테넌트(710)에서, 글로벌 스팟 가격이 인상되어 Frank의 응찰가가 스팟 가격 아래로 떨어지게 하였고, 따라서 해당 할당 기간 동안 Frank에게 선점가능한 가상 머신이 할당되지 않았다.
추가적인 실시예
위에서 본 발명의 다양한 실시예에 대한 개관이 간략하게 기술되었으며, 이제 가상 머신을 구현하기에 적합한 예시적인 운영 환경이 기술된다. 도면들을 전반적으로 참조하고, 먼저 특히 도 12를 참조하면, 본 발명의 실시예를 구현하기 위한 예시적인 운영 환경이 도시되었고 일반적으로 컴퓨팅 디바이스(1200)로 지정되었다. 그러나 컴퓨팅 디바이스(1200)는 적절한 컴퓨팅 환경의 일 예시이며 본 발명의 용도 또는 기능의 범주에 대한 어떠한 제한을 두기 위한 것은 아니다. 또한 컴퓨팅 디바이스(1200)가 도시된 임의의 하나의 구성요소 또는 구성요소들의 조합과 관련한 어떠한 의존성 또는 필요조건을 갖는 것으로 해석되어서는 안된다.
본 발명의 실시예는 컴퓨터, 또는 PDA 또는 다른 핸드헬드 디바이스와 같은 다른 머신에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능한 명령을 포함하는 컴퓨터 코드 또는 머신-이용가능한 명령의 일반적인 맥락으로 기술될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함하는 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추출 데이터 타입을 구현하는 코드를 지칭한다. 본 발명은 핸드헬드 디바이스, 소비자 전자기기, 범용 컴퓨터, 보다 전문적인 컴퓨팅 디바이스 등을 포함하는 다양한 시스템 구조에서 실현될 수 있다. 본 발명은 또한 통신 네트워크를 통해 링크되는 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다.
도 12를 계속 참조하면, 컴퓨팅 디바이스(1200)는 메모리(1212), 하나 이상의 프로세서(1214), 하나 이상의 선택적 프레젠테이션 구성요소(1216), 입력/출력(I/O) 포트(1218), 선택적 I/O 구성요소(1220) 및 예시적인 파워 서플라이(1222)를 직접 또는 간접적으로 연결하는 버스(1210)를 포함한다. 버스(1210)는 (어드레스 버스, 데이터 버스, 또는 이들의 조합과 같은) 하나 이상의 버스일 수 있는 버스를 나타낸다. 도 12의 다양한 블록들이 명료성을 위해 실선으로 도시되었지만, 현실에서는 기술하는 다양한 구성요소들은 그렇게 명확하지 않으며, 비유적으로 라인들은 보다 정확히는 애매하며 또렷하지 않을 것이다. 예를 들어, 누군가는 디스플레이 디바이스와 같은 프레젠테이션 구성요소를 I/O 구성요소로 간주할 수 있다. 또한, 다수의 프로세스가 메모리를 구비한다. 본 발명의 출원인은 이것이 당업계의 특성임을 인식하며, 도 12의 도면이 단지 본 발명의 하나 이상의 실시예와 관련하여 사용될 수 있는 예시적인 컴퓨팅 디바이스를 나타낸 것임을 반복한다. "워크스테이션", "서버", "랩탑", "핸드헬드 디바이스" 등과 같은 카테고리는 모두 도 12의 범주 내에 고려되며 "컴퓨팅 디바이스"로 지칭되기 때문에, 이들 카테고리들을 구별하지 않는다.
컴퓨팅 디바이스(1200)는 전형적으로 다양한 컴퓨터 판독가능한 매체를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스(1200)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 제거가능 및 제거 불가능한 매체 모두를 포함한다. 예시로서, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이것으로 제한되지는 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 제거 불가능 매체를 포함한다. 컴퓨터 저장 매체는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 삭제가능한 프로그램가능한 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 홀로그래픽 메모리, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그외의 자기 스토리지 디바이스, 또는 원하는 정보를 인코딩하도록 사용될 수 있고 컴퓨팅 디바이스(1200)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 제한되지는 않는다. 실시예에서, 컴퓨터 저장 매체는 실재하는 컴퓨터 저장 매체로부터 선택될 수 있다. 다른 실시예에서, 컴퓨터 저장 매체는 비일시적인 컴퓨터 저장 매체로부터 선택될 수 있다.
통신 매체는 전형적으로 반송파와 같은 변조된 데이터 신호 또는 그외의 전송 메커니즘 내의 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 그외의 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 표현은 신호 내의 정보를 인코딩하는 것과 관련된 방식으로 설정 또는 변경된 하나 이상의 자신의 특징을 갖는 신호를 의미한다. 예시로서, 통신 매체는 유선 네트워크 또는 다이렉트-와이어 접속과 같은 유선 매체 및 음향, RF, 적외선 및 그외의 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 한정되는 것은 아니다. 전술된 것들의 조합 또한 컴퓨터 판독가능한 매체의 범주 내에 포함되어야만 한다.
메모리(1212)는 휘발성 및/또는 비휘발성 메모리의 형태인 컴퓨터 저장 매체를 포함할 수 있다. 메모리는 제거가능한 메모리이거나, 제거 불가능한 메모리이거나, 또는 이들의 조합일 수 있다. 예시적인 하드웨어 디바이스는 고체-상태 메모리, 하드 드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 디바이스(1200)는 메모리(1212) 또는 I/O 구성요소(1220)와 같은 다양한 엔티티로부터 데이터를 판독하는 하나 이상의 프로세서를 포함한다. 프레젠테이션 구성요소(들)(1216)는 사용자 또는 다른 디바이스에게 데이터 표시를 제시한다. 예시적인 프레젠테이션 구성요소는 디스플레이 디바이스, 스피커, 프린팅 구성요소, 진동 구성요소 등을 포함한다.
I/O 포트(1218)는 일부가 내장될 수 있는 I/O 구성요소(1220)를 포함하는 다른 디바이스에 컴퓨팅 디바이스(1200)가 논리적으로 연결되게 할 수 있다. 예시적인 구성요소는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 디바이스 등을 포함할 수 있다.
본 발명의 실시예는, 모든 점에 있어서 제한적이기보다는 예시적인 특정한 실시예와 관련하여 기술되었다. 다른 실시예들이 본 발명의 범주로부터 벗어나지 않고 본 발명이 관련된 업계의 당업자에게 명백해질 것이다.
도 13은 본 발명에 따른 방법의 예시를 나타낸다. 도 13에서, 선점가능한 가상 머신의 할당을 위한 제 1 가격이 수신된다(1310). 수신된 가격은 예를 들어 수신된 가격 및 다양한 가상 머신 풀과 연관된 응찰에 기초하여 선점가능한 가상 머신을 할당하도록 하나 이상의 가상 머신 클러스터에서 사용될 수 있다. 그 다음 하나 이상의 가상 머신 클러스터로부터 복수의 선점가능한 가상 머신이 가상 머신 풀에 할당될 수 있다(1320). 하나 이상의 태스크가 할당된 가상 머신을 사용하여 수행된다(1330). 그 다음 선점가능한 가상 머신의 할당을 위한 제 2 가격이 수신된다(1340). 전형적으로, 이것은 후속하는 할당 기간에서 사용하기 위한 새로운 가격을 수신하는 것에 해당할 수 있다. 하나 이상의 가상 머신 클러스터로부터의 적어도 하나의 가상 머신 및 추가적인 가상 머신 클러스터로부터의 적어도 하나의 가상 머신이 가상 머신 풀에 할당된다(1350). 그 다음 추가적인 가상 머신 클러스터로부터 할당된 가상 머신(들)을 이용하여 하나 이상의 태스크가 수행된다(1360).
도 14는 본 발명에 따른 방법의 다른 예시를 나타낸다. 도 14에서, 선점가능한 가상 머신의 할당을 위한 가격이 수신된다(1410). 제 1 가상 머신 풀과 연관된 제 1 응찰에 기초하여 제 1 가상 머신 클러스터로부터 가상 머신이 제 1 가상 머신 풀에 할당된다(1420). 제 1 응찰은 제 1 가상 머신 클러스터에 대한 관련성을 가진 가상 머신에 대한 요청에 상응한다. 요청 내의 적어도 하나의 가상 머신이 충족되지 않는다(unfulfilled). 제 2 가상 머신 풀과 연관된 제 2 응찰에 기초하여 제 2 가상 머신 클러스터로부터 가상 머신이 제 2 가상 머신 풀에 할당된다(1430). 적어도 제 2 가상 머신 풀에 할당된 가상 머신은 수신된 가격보다는 높지만 제 1 가상 머신 풀에 상응하는 응찰보다는 낮은 응찰 값에 기초하여 할당된다. 그 다음 제 2 가상 머신 풀에 할당된 선점가능한 가상 머신과 같은 할당된 선점가 능한 가상 머신을 이용하여 하나 이상의 태스크가 수행될 수 있다(1440).
도 15는 본 발명에 따른 방법의 또 다른 예시를 나타낸다. 도 15에서, 가상 머신의 할당을 위한 가격이 수신된다(1510). 연관된 제 1 응찰에 기초하여 제 1 복수의 선점가능한 가상 머신이 제 1 가상 머신 풀에 할당된다(1520). 제 2 복수의 선점가능한 가상 머신이 연관된 제 2 응찰에 기초하여 제 2 가상 머신 풀에 할당 된다(1530). 할당된 가상 머신을 이용하여 하나 이상의 태스크가 수행된다(1540). 그 다음 제 1 가상 머신 풀로부터 선점가능한 가상 머신의 수를 증가시키라는 요청이 수신된다(1550). 이러한 요청에 상응하는 응찰은 제 2 가상 머신 풀과 연관된 응찰보다 높다. 제 2 복수의 가상 머신의 할당은 할당 기간의 종료까지 유지된다(1560). 그 다음 제 2 가상 머신 풀로부터의 제 2 복수의 가상 머신으로부터의 적어도 하나의 가상 머신 할당이 제거된다(1570). 제거된 적어도 하나의 가상 머신은 후속하는 할당 기간 동안 제 1 가상 머신 풀에 할당된다(1580).
실시예에서, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법이 제공되었다. 이 방법은 선점가능한 가상 머신의 할당을 위한 제 1 가격을 수신하는 단계와, 수신된 제 1 가격 및 가상 머신 풀과 연관된 제 1 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터 복수의 선점가능한 가상 머신을 가상 머신 풀에 할당하는 단계와, 할당된 복수의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계와, 선점가능한 가상 머신의 할당을 위한 제 2 가격을 수신하는 단계와, 수신된 제 2 가격 및 상기 가상 머신 풀과 연관된 제 2 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터의 적어도 하나의 선점가능한 가상 머신 및 추가적인 가상 머신 클러스터로부터의 적어도 하나의 가상 머신을 가상 머신 풀에 할당하는 단계와, 추가적인 가상 머신 클러스터로부터 할당된 적어도 하나의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계를 포함한다.
다른 실시예에서, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법이 제공되었다. 이 방법은 선점가능한 가상 머신의 할당을 위한 가격을 수신하는 단계와, 수신된 가격 및 제 1 가상 머신 풀과 연관된 제 1 응찰에 기초하여 제 1 가상 머신 클러스터로부터 하나 이상의 선점가능한 가상 머신을 제 1 가상 머신 풀에 할당하는 단계 -제 1 응찰은 제 1 가상 머신 클러스터에 대한 관련성을 포함하는 복수의 선점가능한 가상 머신에 대한 요청에 상응하고, 제 1 가상 머신 클러스터 내의 가상 머신의 할당 후에 복수의 선점가능한 가상 머신에 대한 요청 내의 적어도 하나의 가상 머신이 충족되지 않음- 와, 수신된 가격 및 제 2 가상 머신 풀과 연관된 제 2 응찰에 기초하여 제 2 가상 머신 클러스터로부터의 하나 이상의 선점가능한 가상 머신을 제 2 가상 머신 풀에 할당하는 단계 -제 2 가상 머신 클러스터로부터 할당된 적어도 하나의 가상 머신은, 수신된 가격보다는 높고 제 1 가상 머신 풀과 연관된 제 1 응찰보다는 낮은 응찰에 기초하여 제 2 가상 머신 풀에 할당됨- 와, 제 2 가상 머신 풀 내의 제 2 가상 머신 클러스터로부터 할당된 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계를 포함한다.
또 다른 실시예에서, 클라우드 컴퓨팅 환경 내의 리소스를 제공하는 방법이 제공된다. 이 방법은 선점가능한 가상 머신의 할당을 위한 가격을 수신하는 단계와, 수신된 가격 및 가상 머신 풀과 연관된 제 1 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터 제 1 복수의 선점가능한 가상 머신을 제 1 가상 머신 풀에 할당하는 단계와, 수신된 가격 및 제 2 가상 머신 풀과 연관된 제 2 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터 제 2 복수의 선점가능한 가상 머신을 제 2 가상 머신 풀에 할당하는 단계와, 제 1 복수의 선점가능한 가상 머신 및 제 2 복수의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계와, 제 1 가상 머신 풀로부터 선점가능한 가상 머신의 수를 증가시키라는 요청을 수신하는 단계 -증가 요청은 제 1 가상 머신 풀과 연관된 제 3 응찰에 상응하며, 제 3 응찰은 제 2 가상 머신 풀과 연관된 제 2 응찰보다 높음- 와, 할당 기간의 종료시까지 제 2 복수의 가상 머신의 할당을 유지하는 단계와, 제 2 가상 머신 풀로부터의 제 2 복수의 가상 머신으로부터의 적어도 하나의 가상 머신 할당을 제거하는 단계와, 제거된 적어도 하나의 가상 머신을 후속하는 할당 기간 동안 제 1 가상 머신 풀에 할당하는 단계를 포함한다.
전술된 내용으로부터, 본 발명이 위에서 구조에 대해 명백하고 고유한 다른 장점들과 함께 개진된 모든 목표 및 목적을 이루도록 잘 적응된다는 것을 알 수 있을 것이다.
소정의 특징 및 서브조합들이 이용가능하며, 다른 특징 및 서브조합에 대한 언급 없이 사용될 수 있음이 이해될 것이다. 이것은 특허청구범위에 의해 고려되며 그 범주 내에 포함된다.

Claims (10)

  1. 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법으로서,
    선점가능한 가상 머신(preemptible virtual machine)의 할당을 위한 제 1 가격을 수신하는 단계와,
    상기 수신된 제 1 가격 및 가상 머신 풀(virtual machine pool)과 연관된 제 1 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터의 복수의 선점가능한 가상 머신을 상기 가상 머신 풀에 할당하는 단계와,
    상기 할당된 복수의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계와,
    선점가능한 가상 머신의 할당을 위한 제 2 가격을 수신하는 단계와,
    상기 수신된 제 2 가격 및 상기 가상 머신 풀과 연관된 제 2 응찰에 기초하여 상기 하나 이상의 가상 머신 클러스터로부터의 적어도 하나의 선점가능한 가상 머신과 추가적인 가상 머신 클러스터로부터의 적어도 하나의 선점가능한 가상 머신을 상기 가상 머신 풀에 할당하는 단계와,
    상기 추가적인 가상 머신 클러스터로부터의 할당된 상기 적어도 하나의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 추가적인 가상 머신 클러스터로부터의 가상 머신은 상기 하나 이상의 가상 머신 클러스터에 상응하는 물리적 머신과 분리되어 있는 지리학적 위치에 있는 물리적 머신에 해당하는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    제 2 가상 머신 풀로부터의 요청에 기초하여 상기 하나 이상의 가상 머신 클러스터로부터의 적어도 하나의 가상 머신을 상기 제 2 가상 머신 풀에 할당하는 단계를 더 포함하되,
    상기 요청은 상기 하나 이상의 가상 머신 클러스터 내의 가상 머신 클러스터에 대한 관련성(affinity)을 포함하고,
    상기 추가적인 가상 머신 클러스터로부터의 상기 적어도 하나의 선점가능한 가상 머신을 상기 가상 머신 풀에 할당하는 것은, 상기 하나 이상의 가상 머신 클러스터로부터 적어도 하나의 가상 머신을 상기 제 2 가상 머신 풀에 할당하는 것에 반응하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    복수의 가상 머신 풀에 상응하는 응찰들을 종합하는 단계 -각각의 응찰은 요청된 선점가능한 가상 머신의 수를 포함함- 와,
    선점가능한 가상 머신으로서 할당하도록 이용가능한 가상 머신의 수를 결정하는 단계와,
    상기 종합된 응찰에 기초하여 글로벌 스팟 가격(global spot price)을 계산하는 단계와,
    상기 계산된 글로벌 스팟 가격을 선점가능한 가상 머신의 할당을 위한 가격으로서 상기 복수의 가상 머신 풀에 배포하는 단계를 더 포함하되,
    상기 글로벌 스팟 가격은, 상기 글로벌 스팟 가격보다 높은 응찰에 포함된 요청된 선점가능한 가상 머신의 수가 상기 결정된 이용가능한 가상 머신의 수보다 적거나 같도록 계산되는
    방법.
  5. 컴퓨팅 디바이스에 의해 실행되었을 때, 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법을 수행하는 컴퓨터 이용가능한 명령을 저장하는 하나 이상의 컴퓨터 저장 매체로서,
    상기 방법은,
    선점가능한 가상 머신의 할당을 위한 가격을 수신하는 단계와,
    상기 수신된 가격 및 제 1 가상 머신 풀과 연관된 제 1 응찰에 기초하여 제 1 가상 머신 클러스터로부터의 하나 이상의 선점가능한 가상 머신을 상기 제 1 가상 머신 풀에 할당하는 단계 -상기 제 1 응찰은 상기 제 1 가상 머신 클러스터에 대한 관련성을 포함하는 복수의 선점가능한 가상 머신에 대한 요청에 상응하고, 상기 제 1 가상 머신 클러스터 내의 가상 머신을 할당한 후에 복수의 선점가능한 가상 머신에 대한 상기 요청 내의 적어도 하나의 가상 머신이 충족되지 않음- 와,
    상기 수신된 가격 및 상기 제 2 가상 머신 풀과 연관된 제 2 응찰에 기초하여 제 2 가상 머신 클러스터로부터의 하나 이상의 선점가능한 가상 머신을 제 2 가상 머신 풀에 할당하는 단계 -상기 제 2 가상 머신 클러스터로부터의 적어도 하나의 할당된 가상 머신은, 상기 수신된 가격보다는 높고 상기 제 1 가상 머신 풀과 연관된 상기 제 1 응찰보다는 낮은 응찰에 기초하여 상기 제 2 가상 머신 풀에 할당됨- 와,
    상기 제 2 가상 머신 풀 내의 상기 제 2 가상 머신 클러스터로부터 할당된 상기 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계를 포함하는
    컴퓨터 저장 매체.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 충족되지 않은 가상 머신 요청은 할당 기간 동안 충족되지 않은 채로 남아있으며,
    상기 제 2 가상 머신 클러스터로부터의 상기 적어도 하나의 가상 머신은 상기 할당 기간 동안 할당되지 않는
    컴퓨터 저장 매체.
  7. 제 5 항 또는 제 6 항에 있어서,
    복수의 가상 머신 풀에 상응하는 응찰들을 종합하는 단계 -각각의 응찰은 요청된 선점가능한 가상 머신의 수를 포함함- 와,
    선점가능한 가상 머신으로서 할당하도록 이용가능한 가상 머신의 수를 결정하는 단계와,
    상기 종합된 응찰에 기초하여 글로벌 스팟 가격(global spot price)을 계산하는 단계와,
    상기 계산된 글로벌 스팟 가격을 선점가능한 가상 머신의 할당을 위한 가격으로서 상기 복수의 가상 머신 풀에 배포하는 단계를 더 포함하되,
    상기 글로벌 스팟 가격은, 상기 글로벌 스팟 가격보다 높은 응찰에 포함된 요청된 선점가능한 가상 머신의 수가 상기 결정된 이용가능한 가상 머신의 수보다 적거나 같도록 계산되는
    컴퓨터 저장 매체.
  8. 클라우드 컴퓨팅 환경에서 리소스를 제공하는 방법으로서,
    선점가능한 가상 머신의 할당을 위한 가격을 수신하는 단계와,
    상기 수신된 가격 및 제 1 가상 머신 풀과 연관된 제 1 응찰에 기초하여 하나 이상의 가상 머신 클러스터로부터의 제 1 복수의 선점가능한 가상 머신을 상기 제 1 가상 머신 풀에 할당하는 단계와,
    상기 수신된 가격 및 제 2 가상 머신 풀과 연관된 제 2 응찰에 기초하여 상기 하나 이상의 가상 머신 클러스터로부터의 제 2 복수의 선점가능한 가상 머신을 상기 제 2 가상 머신 풀에 할당하는 단계와,
    상기 제 1 복수의 선점가능한 가상 머신 및 상기 제 2 복수의 선점가능한 가상 머신 상에서 하나 이상의 태스크를 수행하는 단계와,
    상기 제 1 가상 머신 풀로부터 선점가능한 가상 머신의 수를 증가시키라는 요청을 수신하는 단계 -상기 증가 요청은 상기 제 1 가상 머신 풀과 연관된 제 3 응찰에 상응하며, 상기 제 3 응찰은 상기 제 2 가상 머신 풀과 연관된 상기 제 2 응찰보다 높음- 와,
    할당 기간의 종료시까지 상기 제 2 복수의 가상 머신의 할당을 유지하는 단계와,
    상기 제 2 가상 머신 풀로부터의 상기 제 2 복수의 가상 머신으로부터의 적어도 하나의 가상 머신 할당을 제거하는 단계와,
    상기 제거된 적어도 하나의 가상 머신을 후속하는 할당 기간 동안 상기 제 1 가상 머신 풀에 할당하는 단계를 포함하는
    방법.
  9. 제 8 항에 있어서,
    선점가능한 가상 머신의 할당은 할당 기간의 시작시에 수행되고,
    상기 선점가능한 가상 머신의 할당을 위한 가격은 할당 기간의 시작에 앞서 수신되는
    방법.
  10. 제 9 항에 있어서,
    상기 선점가능한 가상 머신 수의 증가는, 상기 선점가능한 가상 머신의 할당을 위한 가격이 수신된 후 상기 후속하는 할당 기간이 시작하기 이전에 상기 제 1 가상 머신 풀에 의해 요청되는
    방법.
KR1020147018931A 2012-01-09 2013-01-07 가상 머신 풀에서의 리소스 가격 책정 기법 KR20140111672A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/346,375 US20130179289A1 (en) 2012-01-09 2012-01-09 Pricing of resources in virtual machine pools
US13/346,375 2012-01-09
PCT/US2013/020447 WO2013106258A1 (en) 2012-01-09 2013-01-07 Pricing of resources in virtual machine pools

Publications (1)

Publication Number Publication Date
KR20140111672A true KR20140111672A (ko) 2014-09-19

Family

ID=48744601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018931A KR20140111672A (ko) 2012-01-09 2013-01-07 가상 머신 풀에서의 리소스 가격 책정 기법

Country Status (6)

Country Link
US (1) US20130179289A1 (ko)
EP (1) EP2802997A4 (ko)
JP (1) JP6254949B2 (ko)
KR (1) KR20140111672A (ko)
CN (2) CN109102213A (ko)
WO (1) WO2013106258A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101720292B1 (ko) * 2015-11-19 2017-03-27 수원대학교산학협력단 서비스 제공자의 수익에 대한 기대값을 이용한 클라우드 서비스 자원할당방법
KR101721644B1 (ko) * 2015-11-19 2017-03-30 수원대학교산학협력단 서비스 사용자의 작업처리시간에 대한 품질과 제공자의 수익을 고려한 클라우드 서비스 자원할당방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
JP5804192B2 (ja) * 2012-03-28 2015-11-04 富士通株式会社 情報処理装置、情報処理方法および情報処理システム
US9069606B2 (en) * 2012-05-08 2015-06-30 Adobe Systems Incorporated Autonomous application-level auto-scaling in a cloud
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
JP6114829B2 (ja) * 2012-09-28 2017-04-12 サイクルコンピューティング エルエルシー 仮想環境における演算インフラストラクチャのリアルタイム最適化
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
US9032400B1 (en) * 2012-10-25 2015-05-12 Amazon Technologies, Inc. Opportunistic initiation of potentially invasive actions
US9384517B2 (en) 2013-03-14 2016-07-05 Google Inc. Rendering
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US10163152B1 (en) * 2013-03-14 2018-12-25 Amazon Technologies, Inc. Notification of computing capacity status
US9349144B1 (en) * 2013-03-14 2016-05-24 Amazon Technologies, Inc. Auction-based requesting of electronic resources
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US20150066553A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for multi-tenant service catalog for a software defined cloud
US10193963B2 (en) * 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US10572412B1 (en) * 2014-03-18 2020-02-25 Amazon Technologies, Inc. Interruptible computing instance prioritization
WO2015157897A1 (zh) 2014-04-14 2015-10-22 华为技术有限公司 一种云计算架构下的容灾数据中心配置方法及装置
RU2568282C2 (ru) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде
US9508095B2 (en) * 2014-06-11 2016-11-29 Fugue, Inc. System and method for optimizing the selection of cloud services based on price and performance
US10097410B2 (en) 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US9992076B2 (en) * 2014-10-15 2018-06-05 Cisco Technology, Inc. Dynamic cache allocating techniques for cloud computing systems
US20160117246A1 (en) * 2014-10-27 2016-04-28 Thomson Licensing Method and apparatus for cross-core covert channel
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
US9794190B2 (en) * 2015-02-16 2017-10-17 International Business Machines Corporation Managing asset deployment for a shared pool of configurable computing resources
WO2016136196A1 (ja) * 2015-02-26 2016-09-01 日本電気株式会社 処理装置、処理装置の制御方法、及び、記録媒体
US11283697B1 (en) 2015-03-24 2022-03-22 Vmware, Inc. Scalable real time metrics management
CN104954461A (zh) * 2015-06-10 2015-09-30 浪潮电子信息产业股份有限公司 可信计算池的应用方法及系统、宿主机及云管理平台
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
US10594562B1 (en) * 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
CN105187246A (zh) * 2015-08-27 2015-12-23 浪潮(北京)电子信息产业有限公司 一种云平台中扩展计算节点的方法和系统
US10438253B2 (en) * 2015-11-29 2019-10-08 International Business Machines Corporation Reuse of computing resources for cloud managed services
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
JP6495840B2 (ja) * 2016-02-10 2019-04-03 日本電信電話株式会社 クラウドリソース選択装置、クラウドリソース選択方法およびプログラム
US10212041B1 (en) 2016-03-04 2019-02-19 Avi Networks Traffic pattern detection and presentation in container-based cloud computing architecture
US10931548B1 (en) 2016-03-28 2021-02-23 Vmware, Inc. Collecting health monitoring data pertaining to an application from a selected set of service engines
JP6891425B2 (ja) * 2016-09-06 2021-06-18 富士フイルムビジネスイノベーション株式会社 情報処理装置、制御方法およびプログラム
US10838767B2 (en) 2016-09-12 2020-11-17 International Business Machines Corporation Distributed computing utilizing a recovery site
US10373284B2 (en) * 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing
CN106874064A (zh) * 2016-12-23 2017-06-20 曙光信息产业股份有限公司 一种虚拟机的管理系统
TWI629604B (zh) * 2017-07-20 2018-07-11 中華電信股份有限公司 Data set transaction and computing resource integration method
US11144325B2 (en) 2017-12-15 2021-10-12 Jpmorgan Chase Bank, N.A. Systems and methods for optimized cluster resource utilization
US10999168B1 (en) 2018-05-30 2021-05-04 Vmware, Inc. User defined custom metrics
EP3857381B1 (en) 2018-10-26 2023-07-12 VMware, Inc. Collecting samples hierarchically in a datacenter
CN109684360A (zh) * 2018-12-05 2019-04-26 深圳光华普惠科技有限公司 一种笑脸金融智能推荐资源快速匹配分池算法
US10949241B2 (en) 2019-03-08 2021-03-16 Google Llc Cost-efficient high-availability multi-single-tenant services
US11290358B2 (en) 2019-05-30 2022-03-29 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US12001866B2 (en) 2019-07-01 2024-06-04 Microsoft Technology Licensing, Llc Harvest virtual machine for utilizing cloud-computing resources
CN112463295B (zh) * 2020-11-23 2022-11-29 北京航空航天大学 一种支持可抢占虚拟机实例的云工作流配置和调度方法
US11811861B2 (en) 2021-05-17 2023-11-07 Vmware, Inc. Dynamically updating load balancing criteria
US11792155B2 (en) 2021-06-14 2023-10-17 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments
US20230232195A1 (en) 2022-01-19 2023-07-20 Vmware, Inc. Collective scaling of applications

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2007323439A (ja) * 2006-06-01 2007-12-13 Nec Corp リソース割当システム、情報処理装置、リソース割当方法及びリソース割当プログラム
US20080189700A1 (en) * 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US20080244607A1 (en) * 2007-03-27 2008-10-02 Vladislav Rysin Economic allocation and management of resources via a virtual resource market
US20100318454A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Function and Constraint Based Service Agreements
US8924982B2 (en) * 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
CN102271145A (zh) * 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
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
US20120159234A1 (en) * 2010-12-15 2012-06-21 Microsoft Corporation Providing resilient services

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101720292B1 (ko) * 2015-11-19 2017-03-27 수원대학교산학협력단 서비스 제공자의 수익에 대한 기대값을 이용한 클라우드 서비스 자원할당방법
KR101721644B1 (ko) * 2015-11-19 2017-03-30 수원대학교산학협력단 서비스 사용자의 작업처리시간에 대한 품질과 제공자의 수익을 고려한 클라우드 서비스 자원할당방법

Also Published As

Publication number Publication date
WO2013106258A1 (en) 2013-07-18
JP6254949B2 (ja) 2017-12-27
US20130179289A1 (en) 2013-07-11
EP2802997A4 (en) 2015-08-19
CN109102213A (zh) 2018-12-28
CN104160387A (zh) 2014-11-19
JP2015511341A (ja) 2015-04-16
EP2802997A1 (en) 2014-11-19

Similar Documents

Publication Publication Date Title
US11922198B2 (en) Assignment of resources in virtual machine pools
KR20140111672A (ko) 가상 머신 풀에서의 리소스 가격 책정 기법
KR101994506B1 (ko) Paas 자원들, 작업들 및 스케줄링의 분리 기법
KR101976234B1 (ko) Paas 계층적 스케줄링 및 자동 스케일링 기법
US20130179894A1 (en) Platform as a service job scheduling
US9479382B1 (en) Execution plan generation and scheduling for network-accessible resources
US9985848B1 (en) Notification based pricing of excess cloud capacity
US10748084B2 (en) Dynamic modification of interruptibility settings for network-accessible resources
Sampaio et al. Enhancing reliability of compute environments on Amazon EC2 spot instances

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application