KR20140027518A - 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치 - Google Patents

클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20140027518A
KR20140027518A KR1020147002115A KR20147002115A KR20140027518A KR 20140027518 A KR20140027518 A KR 20140027518A KR 1020147002115 A KR1020147002115 A KR 1020147002115A KR 20147002115 A KR20147002115 A KR 20147002115A KR 20140027518 A KR20140027518 A KR 20140027518A
Authority
KR
South Korea
Prior art keywords
data center
virtual resource
allocation
resources
virtual
Prior art date
Application number
KR1020147002115A
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 KR20140027518A publication Critical patent/KR20140027518A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

가상 자원 할당 능력이 개시된다. 가상 자원 할당 능력은 클라우드 환경(110) 안의 가상 자원들의 프로비저닝을 지원하도록 구성된다. 클라우드 환경 내 가상 자원들의 프로비저닝은 클라우드 환경 내 가상 자원들의 프로비저닝을 요청하는 사용자 가상 자원 요청을 수신하는 단계, 클라우드 환경 내 가상 자원들의 할당을 특정하는 가상 자원 할당 정보를 판단하는 단계, 및 가상 자원 할당 정보를 이용하여 클라우드 환경 내 가상 자원들을 프로비저닝하는 단계를 포함한다. 요청된 가상 자원들의 클라우드 환경 내 할당은 가상 자원들이 호스팅될 클라우드 환경의 데이터센터들(111)로의 가상 자원들의 할당, 보다 구체적으로, 가상 자원들이 호스팅될 클라우드 환경의 데이터센터들 안의 물리적 자원들로의 가상 자원들의 할당을 포함한다. 가상 자원들은 가상 프로세서 자원들, 가상 메모리 자원들 등을 포함할 수 있다. 물리적 자원들은 프로세서 자원들(115), 저장 자원들 등(가령, 클라우드 환경의 데이터센터들의 랙들(112)의 블레이드 서버들(114)의 물리적 자원들)을 포함할 수 있다.

Description

클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치{METHOD AND APPARATUS FOR ASSIGNMENT OF VIRTUAL RESOURCES WITHIN A CLOUD ENVIRONMENT}
본 발명은 일반적으로 가상 자원들의 할당에 관한 것으로서, 특히 그러나 비배타적으로 클라우드 환경 내 가상 자원들의 할당에 관한 것이다.
클라우드 환경을 통한 클라우드 컴퓨팅의 사용은 그 인기가 계속 높아지고 있다. 클라우드 환경은 클라우드 컴퓨팅 사용자들을 위한 가상 자원들을 호스팅 하는 데 사용되는 물리적 자원들을 포함한다. 클라우드 컴퓨팅 사용자로부터의 가상 자원 요청에 따라, 요청된 가상 자원들이 클라우드 컴퓨팅에서 사용자에 의해 사용되기 위한 클라우드 환경의 물리적 자원들(가령, 하나 이상의 데이터센터들에 위치된 하나 이상의 서버들) 상에서 프로비저닝된다.
선행 기술의 다양한 결함들은 클라우드 환경 안에 가상 자원들을 할당하기 위한 실시예들에 의해 해결된다.
일 실시예에서, 장치는 프로세서 및 메모리를 포함하고, 프로세서는 가상 자원들에 대한 요청을 수신하고 - 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제약들을 포함함 -, 클라우드 환경과 관련된 관리 정보를 수신하고, 요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제약들 및 관리 정보를 이용하여 클라우드 환경 내 요청된 가상 자원들의 할당을 결정하도록 구성된다.
일 실시예에서, 컴퓨터 판독 가능 저장 매체는 컴퓨터에 의해 실행 시 컴퓨터로 하여금 가상 자원들에 대한 요청을 수신하는 단계와 - 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제약들을 포함함 -, 클라우드 환경과 관련된 관리 정보를 수신하는 단계와, 요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제약들 및 관리 정보를 이용하여 클라우드 환경 내 요청된 가상 자원들의 할당을 결정하는 단계를 포함하는 방법을 수행하도록 한다.
일 실시예에서, 방법은 가상 자원들에 대한 요청을 수신하는 단계와 - 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제약들을 포함함 -, 클라우드 환경과 관련된 관리 정보를 수신하는 단계와, 요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제약들 및 관리 정보를 이용하여 클라우드 환경 내 요청된 가상 자원들의 할당을 결정하는 단계를 위해 프로세서 및 메모리를 사용하는 것을 포함한다.
본 명세서의 가르침은 첨부된 도면들과 함께 이하의 상세한 설명을 고려함으로써 용이하게 파악될 수 있다.
도 1은 클라우드 환경의 물리적 자원들로의 VM들의 자동 할당을 지원하도록 구성된 시스템의 일 실시예를 도시한다.
도 2는 VM들에 대한 사용자 요청에 따라 클라우드 환경의 데이터센터들 안에 VM들을 프로비저닝하기 위한 방법의 일 실시예를 도시한다.
도 3은 클라우드 환경의 데이터센터들 안에 VM들을 프로비저닝하는 데 사용할 데이터센터들 안의 물리적 자원들로의 VM들의 할당을 결정하기 위한 방법의 일 실시예를 도시한다.
도 4a 및 4b는 VM들이 할당되어야 할 데이터센터들의 집합을 결정하도록 구성된 프로세스들을 도시한다.
도 5는 VM들이 할당되어야 할 랙들, 블레이드들 및 CPU들에 대해 구성된 프로세스를 도시한다.
도 6은 본 명세서에 기술된 기능들을 수행하는 데 사용하기 적합한 컴퓨터의 고차 블록도를 도시한다.
이해를 용이하게 하기 위해서, 도면들에 공통되는 동일한 구성요소들을 지칭하기 위해 가능한 경우 동일한 참조 부호들을 사용하였다.
일반적으로, 다양한 다른 능력들이 또한 본 명세서에서 제시될 수 있지만, 가상 자원 할당 능력이 본 명세서에서 도시되고 설명된다.
적어도 일부 실시예들에서 가상 자원 할당 능력은 클라우드 환경 내 물리적 자원들로의 가상 자원들의 자동적인 할당을 제공한다. 가상 자원들은 가상 컴퓨팅 자원들, 가상 저장 자원들 등뿐 아니라 이들의 다양한 조합들을 포함할 수 있다. 물리적 자원들은 프로세서 자원들(가령, 데이터센터들의 랙들의 블레이드 서버들의 중앙 처리 유닛들(CPUs)), 저장 자원들 등을 포함할 수 있다.
적어도 일부 실시예들에서 가상 자원 할당 능력은 가상 자원들에 대한 사용자 요청에 응하여 클라우드 환경 내 물리적 자원들로의 가상 자원들의 자동적인 할당을 제공한다. 적어도 일부 실시예들에서 가상 자원들에 대한 사용자 요청이 수신되고, 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당이 결정되며, 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당에 기반하여 가상 자원들이 클라우드 환경 안에 프로비저닝된다. 가상 자원들에 대한 사용자 요청은 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당을 결정하기 위한 입력으로서 사용될 수 있는 가상 자원 요청 정보(가령, 요청된 가상 자원들의 양, 가상 자원 할당 제약들 등)를 포함할 수 있다. 결정된 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당은 사용자 자원 할당 정보(가령, 요청된 가상 자원들이 위치하는 데이터센터들의 선택, 요청된 가상 자원들이 위치하는 데이터센터들 안의 기기의 선택 등)를 이용하여 특정될 수 있다. 다른 다양한 타입의 정보(가령, 데이터센터들 사이의 연결성과 관련된 네트워크 토폴로지 및/또는 상태 정보, 데이터센터 토폴로지 및/또는 상태 정보 등)가 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당을 결정하기 위해 사용될 수 있다는 것을 알아야 한다. 다른 다양한 타입의 정보(가령, 가상 자원들이 호스팅되어야 하는 랙들/블레이드 서버들/CPU들의 선택, 가상 자원들이 호스팅되어야 하는 특정 랙들/블레이드 서버들/CPU들에 대한 특정 가상 자원들의 매핑 등)가 클라우드 환경의 물리적 자원들로의 가상 자원들의 할당을 특정하는 데 사용될 수 있다는 것을 알아야 한다.
적어도 일부 실시예들에서 가상 자원 할당 능력은 클라우드 환경의 성능을 개선(가령, 네트워크 자원들의 활용을 개선)하려는 방식 및 가상 자원들을 이용하는 사용자 애플리케이션(들)의 성능을 개선하려는(가령, 통신 지연 감소, 복원성 향상 등) 방식으로 클라우드 환경 내 물리적 자원들로의 가상 자원들의 자동화된 할당을 제공한다.
본 명세서에서는 가상 자원들이 가상 머신들(VMs)이고 가상 자원들이 블레이드 서버들의 프로세서들인 실시예들의 맥락 안에서 주로 도시되고 기술되지만, 가상 자원 할당 능력은 다른 다양한 타입의 가상 자원들의 할당을 결정하고/거나 다른 다양한 타입의 물리적 자원들로의 할당을 결정하는 데 사용될 수 있다는 것을 알아야 한다.
도 1은 클라우드 환경의 물리적 자원들로의 VM들의 자동 할당을 지원하도록 구성된 시스템의 일 실시예를 도시한다.
시스템(100)은 클라우드 환경(110), 클라우드 관리 시스템(CMS)(120), 네트워크 관리 시스템(NMS)(130), 클라우드 자동화 시스템(CAS)(140), 및 통신 네트워크(CN)(150)를 포함한다.
클라우드 환경(110)은 가상 자원들을 호스팅하도록 구성된 물리적 자원들을 포함한다. 물리적 자원들은 가상 자원들을 호스팅하도록 구성된 서버들 및 다른 타입의 물리적 자원들을 포함할 수 있다. 가상 자원들은 가상 머신들(VMs), 가상 저장부들(VS) 등뿐 아니라 이들의 다양한 조합들을 포함할 수 있다.
클라우드 환경(110)은 복수의 데이터센터들(1111-111D)(집합적으로, 데이터센터들(111))을 포함한다.
데이터센터들(111)은 데이터센터 자원들(가령, 컴퓨팅 자원들, 통신 자원들 등)을 포함한다. 데이터센터들(111)은 통신 네트워크(150)를 통해 통신하도록 구성되며, 그에 따라 서로 통신할 수 있다. 데이터센터들(111)은 지리적으로 분산될 수 있다.
데이터센터들(111)은 각각 가상 자원들을 호스팅하도록 구성된 물리적 자원들을 포함한다. 각각의 데이터센터(111)는 복수의 랙들(1121-112R)(집합적으로 랙들(112)을 포함한다. 각각의 랙(112)은 복수의 블레이드 서버들(1141-114B)(집합적으로 블레이드 서버들(114))을 포함한다. 각각의 블레이드 서버(114)는 복수의 CPU들(1151-115C)(집합적으로 CPU들(115))을 포함한다. 각각의 CPU(115)는 하나 이상의 관련 CPU 코어들(명료성의 목적으로 생략됨)을 가질 수 있다. CPU들은 VM들을 호스팅하도록 구성된다. 데이터센터들(111) 안의 랙들(112), 블레이드 서버들(114) 및 CPU들(115)의 통상적 구성 및 동작은 당업자에 의해 파악될 수 있을 것이다. 모든 적절한 타입, 개수 및/또는 구성의 랙들(112), 블레이드 서버들(114) 및 CPU들(115)이 데이터센터들(111) 중 어느 하나 안에서 사용될 수 있다는 것을 알아야 한다. 본 명세서에서는 특정 개수의 데이터센터들(111), 랙들(112), 블레이드 서버들(114) 및 CPU들(115)과 관련하여 주로 도시 및 기술되고 있지만, 다른 모든 적절한 개수의 데이터센터들(111), 랙들(112), 블레이드 서버들(114) 및 CPU들(115)이 클라우드 환경(110) 안에서 사용될 수 있다는 것을 알아야 한다(가령, 클라우드 환경(110)은 하나 이상의 데이터센터들(111)을 포함할 수 있고, 각각의 데이터센터(111)는 하나 이상의 랙들(112)을 포함할 수 있고, 각각의 랙은 하나 이상의 블레이드 서버들(114)을 포함할 수 있으며, 각각의 블레이드 서버(114)는 하나 이상의 CPU들(115)을 포함할 수 있다).
데이터센터들(111)은 각각 데이터센터 내 통신 및 데이터센터 간 통신을 지원하도록 구성된 데이터센터 통신 자원들을 포함한다.
데이터센터(111)의 데이터센터 통신 자원들은 계층적으로 구성된다(그러나 다른 타입의 구성이 사용될 수도 있다는 것을 알아야 한다).
동일한 블레이드 서버(114)의 CPU들(115)은 직접(가령, 어떤 스위치를 거치지 않고) 통신할 수 있다.
동일한 랙(112)의 블레이드 서버들(114)의 CPU들(115)은 랙(112)과 관련된 TOR(top-of-rack) 스위치(113)(예를 들어 랙들(1121-112R)과 각기 관련된 TOR 스위치들(1131-113R))를 통해 통신할 수 있다.
상이한 랙들(112)의 블레이드 서버들(114)의 CPU들(115)은 하나 이상의 스위치들(114)(통상적으로 집합자 스위치들이라 칭함) 및/또는 라우터들(117)을 통해 통신할 수 있다. 예시적 데이터센터(1111)에서, 예컨대 랙들(112)의 인접 쌍들이 집합자 스위치들(116)에 연결된다(예시된 것으로서 랙들(1121 및 1122)의 TOR 스위치들(1131 및 1132)이 집합자 스위치(1161)에 연결되고, 마찬가지로 랙(112R)이 집합자 스위치(116A)에 연결됨). 간결성을 목적으로 집합자 스위치들(116)(제1계층 집합자 스위치들이라 지칭함)은 데이터센터 내 제2계층 집합자 스위치들과 연결될 수 있다(가령, 제1계층 집합자 스위치들(116)의 집합들은 각각이 제2계층 집합자 스위치와 연결되는 둘 이상의 인접 집합자 스위치들(116)을 포함하고, 제2계층 집합자 스위치들의 집합들은 각각이 제3계층 집합자 스위치와 연결되는 둘 이상의 인접 집합자 스위치들(116)을 포함하는 식으로 이어짐). 이러한 맥락에 따라 랙들(112)과 집합자 스위치들(116)은 계층 구조로 구성될 수 있다. 결과적으로 데이터센터(111) 내 랙들(112) 안의 블레이드 서버들(114)의 CPU들(115) 사이의 대기시간(latency)은 랙들(112) 및 집합자 스위치들(116)로 구성된 계층적 트리 구조 안의 랙들(112)의 위치들에 좌우되고 (따라서 사용자에게 프로비저닝되는 VM들 간 통신 대기시간은 요청된 VM들이 프로비저닝되는 데이터센터(111)의 물리적 자원들에 좌우된다).
데이터센터(111)의 데이터센터 통신 자원들은 통신의 국지성을 전제로 배열된다. 각각의 데이터센터(111) 내에서의 통신들의 상당 부분이 같은 랙(114)의 CPU들(115) 간에 있을 것이라는 추정이 있을 수 있다. 데이터센터(111) 안의 CPU들(115) 간 거리가 늘어날수록, CPU들(115) 간 가용 통신 대역폭은 감소된다. 결국, 데이터센터(111) 안에서 프로비저닝되는 요구된 VM들(프로비저닝되면 데이터센터 내 통신 자원들을 통해 서로 통신할 것임)의 가용 통신 대역폭은 적어도 부분적으로, 요구된 VM들이 프로비저닝되는 데이터센터(111)의 CPU(115)에 좌우된다. 비슷한 맥락에서, 데이터센터(111)의 전체적 효율성 역시 적어도 부분적으로, 요구된 VM들이 데이터센터(111) 안에서 프로비저닝되는 CPU들(115)에 좌우된다. 결과적으로, 클라우드 환경(110) 안에서 호스팅하는 데 허용될 수 있는 사용자 요청들의 수 역시, 적어도 부분적으로, 요구된 VM들이 데이터센터들(111) 안에서 각기 프로비저닝되는 CPU들(115)에 좌우된다.
데이터센터(111)의 랙들(112)은 라우터(117)(및 옵션으로서 도시된 것과 같은 하나 이상의 계층들의 집합자 스위치들(116))를 통해 데이터센터(111) 밖과 통신한다.
데이터센터 통신 자원들의 통상적 구성 및 동작은 당업자에 의해 파악될 수 있다.
데이터센터들(111) 중 어느 하나 안의 데이터센터 내 통신들 및 데이터센터 간 통신들을 지원하기 위해, 모든 적절한 타입들, 개수들 및/또는 구성들의 스위치들(가령, TOR 스위치들(113), 집합자 스위치들(116) 등) 및/또는 라우터들(가령, 라우터(117))이 사용될 수 있다는 것을 알아야 한다.
CMS(120)는 클라우드 환경(110)의 관리를 위한 관리 기능들을 제공하도록 구성된다. 통상적으로 클라우드 환경을 위한 클라우드 관리 시스템에 의해 제공되는 관리 기능들은 당업자에 의해 파악될 수 있을 것이다. CMS(120)는 클라우드 환경(110)의 관리와 관련된 클라우드 관리 정보를 보유한다. CMS(120)는 사용자 요청들에 따라 클라우드 환경(110)의 물리적 자원들로의 VM들의 할당을 결정 시 사용될 클라우드 관리 정보를 CAS(140)에 제공한다. 클라우드 관리 정보는 데이터센터들(111) 각각과 관련된 데이터센터 자원 정보(가령, 현재 이용 가능한 자원들, 앞으로 이용가능하다고 예상되는 자원들, 자원들의 현재의 할당, 앞으로 예상되는 자원들의 할당, 자원들의 타입들, 자원들의 구성, 자원들의 사양 등), 데이터센터들(111) 각각과 관련된 데이터센터 토폴로지 정보(가령, 각각의 랙 안에서의 연결성, 랙들 사이의 연결성 등과 관련됨), 데이터센터들(111) 각각과 관련된 데이터센터 상태 정보(가령, 자원 상태 정보, 연결성 상태 정보 등) 등뿐 아니라 이들의 다양한 조합들을 포함할 수 있다.
NMS(130)는 CN(150)의 관리를 위한 관리 기능들을 제공하도록 구성된다. 통신 네트워크를 위한 네트워크 관리 시스템에 의해 통상적으로 제공되는 관리 기능들은 당업자에 의해 파악될 수 있을 것이다. NMS(130)는 CN(150)의 관리와 관련된 네트워크 관리 정보를 보유한다. NMS(130)는 사용자 요청들에 따라 클라우드 환경(110)의 물리적 자원들로의 VM들의 할당을 결정 시 사용될 네트워크 관리 정보를 CAS(140)에 제공한다. 네트워크 관리 정보는 네트워크 토폴로지 정보, 네트워크 상태 정보 등뿐 아니라 이들의 다양한 조합들을 포함할 수 있다.
CAS(140)는 VM들에 대한 사용자 요청에 따라, 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정하도록 구성된다.
CAS(140)는 클라우드 환경(110) 안에서 VM들의 프로비저닝을 요청하는 사용자 VM 요청을 수신하도록 구성된다. 사용자 VM 요청은 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정할 때 CAS(140)에 의해 사용될 사용자 VM 요청 정보를 포함한다. 사용자 VM 요청 정보는 요청된 다수의 VM들을 포함한다. 사용자 VM 요청 정보는 또한 요청된 VM들 사이의 통신을 위한 통신 요건들을 포함할 수 있다. 사용자 VM 요청 정보는 또한 하나 이상의 VM 할당 제한들(가령, VM 배치 제한들, 통신 제한들, VM 복원 제한들, VM 타입 제한들 등 중 하나 이상)을 포함할 수 있다. VM 할당 제한들은 랙(112)마다 할당될 VM들의 최대 개수, 랙(112)마다 할당될 VM들의 최소 개수, 데이터센터(111)마다 사용될 랙들(112)의 최대 개수(가령, 랙 간 트래픽을 줄이기 위하여), 데이터센터(111)마다 사용될 랙들(112)의 최소 개수(가령, 복원을 위해), 데이터센터(111)마다 할당될 VM들의 최대 개수(가령, 복원을 위해), 데이터센터(111)마다 할당될 VM들의 최소 개수(가령, 데이터센터 간 트래픽을 줄이기 위해), 사용될 데이터센터들(111)의 최대 개수(가령, 데이터센터 간 트래픽을 줄이기 위해), 사용될 데이터센터들(111)의 최소 개수(가령, 복원을 위해), 할당될 VM들의 타입들에 기반하여 사용될 블레이드 서버들(114)의 타입들 등 중 하나 이상뿐 아니라 이들의 다양한 조합들을 포함할 수 있다. 사용자 VM 요청 정보는 클라우드 환경(110) 안에서 요청된 VM들의 할당을 결정할 때 사용하기 적합한 어떤 다른 정보를 포함할 수 있다.
CAS(140)는 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정할 때 CAS(140)에 의해 사용될 관리 정보를 수신하도록 구성된다. 예를 들어 CAS(140)는 CMS(120)로부터의 클라우드 관리 정보, NMS(130)로부터의 네트워크 관리 정보 등을 포함하는 관리 정보를 수신할 수 있다.
CAS(140)는 사용자 VM 요청과 함께 수신된 사용자 VM 요청 정보, 시스템(100)의 일부와 관련된 관리 정보 등뿐 아니라 이들의 다양한 조합들을 이용하여, 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정할 수 있다.
CAS(140)는 자원 사용을 줄이고(가령, 데이터센터들(111) 안의 랙 간 통신을 줄이고 데이터센터들(111) 사이의 데이터센터 간 통신을 줄임) 일단 VM들이 클라우드 환경(110) 안에 프로비저닝되면 그들을 사용할 사용자 애플리케이션(들)에 개선된 성능을 제공하기 위한 방식으로 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정하도록 구성될 수 있다. 데이터센터들(111) 안에서의 랙 간 통신의 감소는 VM들이 할당되는 데이터센터(111)의 랙들(112)의 개수를 줄이고, 가능한 경우 상대적으로 서로 가까운 랙들(112)에 VM들을 할당하는 등의 동작을 통해 지원될 수 있다. 데이터센터들(111) 사이의 데이터센터 간 통신의 감소는 VM들이 할당되는 데이터센터들(111)의 개수를 줄이고, 데이터센터들(111) 사이의 통신 기능들에 대한 지식에 기반하여 데이터센터들(111)에 VM들을 할당하고, 데이터센터들(111) 간 트래픽 및 VM들이 일단 클라우드 환경(110)에 프로비저닝되면 그들을 이용하는 것으로 예상되는 클라이언트(들)의 클라이언트 위치(들)에 대한 지식에 기반하여 데이터센터들(111)에 VM들을 할당하는 등의 동작을 통해 지원될 수 있다.
CAS(140)는 사용자 VM 요청의 하나 이상의 다른 특징들(가령, 탄력성, 고장 내성 등)에 기반하여 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정하도록 구성될 수 있다. 예를 들어 CAS(140)는 성장의 여지(가령, 사용자가 향후 하나 이상의 추가 VM들을 추가해야 하거나 추가하고 싶어하는 경우)를 보장하기 위한 방식으로 VM들을 할당하도록 구성될 수 있다. 예를 들어 CAS(140)는 고장 시나리오들을 고려하여 VM들을 할당함으로써, 결과적 VM들의 할당이 클라우드 환경(110) 및/또는 CN(150)에서의 고장들로부터의 빠른 복구를 가능하게 하도록 구성될 수 있다.
CAS(140)가 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 결정하는 방식은 도 2-6의 참조를 통해 보다 잘 이해될 수 있다.
CAS(140)는 VM 할당 정보를 이용하여 클라우드 환경(110)의 물리적 자원들로 요청된 VM들의 할당을 특정할 수 있다. VM 할당 정보는 요청된 VM들이 배치될 데이터센터들의 식별자, 요청된 VM들이 배치될 데이터센터들 안의 장치의 식별자(가령, 각각의 VM이 배치되어야 하는 랙(112), 블레이드 서버(114) 및 CPU(115)(및 옵션으로서 코어) 등과 관련됨)를 포함한다. VM 할당 정보는 또한 요청된 VM들 사이의 연결성을 프로비저닝할 때 사용하도록 구성된 네트워크 구성 정보를 포함할 수 있다.
CAS(140)는 관련 데이터베이스(141) 안에 다양한 타입의 정보를 보유할 수 있다. 예를 들어 CAS(140)와 관련된 데이터베이스(141)는 CAS(140)에 의해 수신된 정보(가령, 사용자 VM 요청 정보, 관리 정보 등), CAS(140)에 의해 결정된 VM 할당 정보 등뿐 아니라 이들의 다양한 조합들을 저장할 수 있다.
CAS(140)는 VM 할당 정보에 기반하여 클라우드 환경(110) 안에 요청된 VM들의 프로비저닝에 참여하도록 구성된다. 일 실시예에서 CAS(140)는 VM 할당 정보에 기반하여 (가령, VM 할당 정보에 기반한 관련 VM 프로비저닝 요청들의 생성 및 클라우드 환경(110)에 대한 VM 프로비저닝 요청들의 준비를 통해) 클라우드 환경(110) 안에서 요청된 VM들의 프로비저닝을 수행하도록 구성된다. 일 실시예에서 CAS(140)는 가령, VM 할당 정보에 기반하여 클라우드 환경(110) 안에서 요청된 VM들을 프로비저닝할 때 하나 이상의 관리 시스템들에 의해 사용될 하나 이상의 관리 시스템들(가령, CMS(120), NMS(130) 등 중 하나 이상)로 사용자 VM 요청을 위한 VM 할당 정보를 제공함으로써, VM 할당 정보에 기반하여 클라우드 환경(110) 안에서 요청된 VM들의 프로비저닝을 개시하도록 구성된다.
CAS(140)는 가상 자원 할당 능력을 지원하는 다양한 다른 기능들을 수행하도록 구성될 수 있다.
CN(150)은 데이터센터들(111) 간 통신을 지원하는 데 적합한 모든 타입의 통신 네트워크일 수 있다. 예를 들어 CN(150)은 공공 데이터 네트워크(가령, 인터넷), 하나 이상의 데이터 네트워크들 등뿐 아니라 이들의 다양한 조합들 중 하나 이상을 이용하여 제공될 수 있다.
도 2는 VM들에 대한 사용자 요청에 따라 클라우드 환경의 데이터센터들 안에 VM들을 프로비저닝하기 위한 방법의 일 실시예를 도시한다. 여기서는 순차적으로 수행되는 것으로 묘사 및 기술되고 있지만, 방법(200)의 단계들은 동시 발생적으로, 그리고/또는 표현된 것과는 다른 순서로 수행될 수 있다는 것을 알아야 한다.
방법(200)은 단계 210에서 시작한다. 방법(200)은 모든 적절한 조건이나 트리거에 따라 시작될 수 있다.
단계 220에서 클라우드 환경 안에서 VM들의 프로비저닝을 요청하는 사용자 VM 요청이 수신된다. 사용자 VM 요청은 사용자 VM 요청 정보를 포함한다. 사용자 VM 요청 정보는 사용자에 의해 요청된 다수의 VM들을 포함한다. 사용자 VM 요청 정보는 또한 요청된 VM들 사이의 통신을 위한 통신 요건들을 포함할 수 있다. 사용자 VM 요청 정보는 또한 하나 이상의 VM 할당 제한들(가령, VM 배치 제한들, 통신 제한들, VM 복원 제한들 등 중 하나 이상)을 포함할 수 있다. 사용자 VM 요청 정보는 데이터센터들 안에서 요청된 VM들의 배치를 결정할 때 사용하기 적합한 어떤 다른 정보를 포함할 수 있다.
단계 230에서, 데이터센터들 안에서 요청된 VM들의 할당이 결정된다. 데이터센터들 안에서 요청된 VM들의 할당은 사용자 VM 요청 정보, 네트워크 관리 정보, 데이터센터 관리 정보 등뿐 아니라 이들의 다양한 조합들을 이용하여 결정된다. 데이터센터들 안에서 요청된 VM들의 할당은 VM 할당 정보를 이용하여 특정될 수 있다. VM 할당 정보는 요청된 VM들이 배치될 데이터센터들의 식별자, 요청된 VM들이 배치될 데이터센터들 안의 장치의 식별자(가령, 각각의 VM이 배치되어야 하는 랙, 블레이드 서버 및 CPU(옵션으로서 코어) 등과 관련됨)를 포함한다. VM 할당 정보는 또한 요청된 VM들 사이의 연결성을 프로비저닝할 때 사용하도록 구성된 네트워크 구성 정보를 포함할 수 있다. 일 실시예에서, 데이터센터들 안에서 요청된 VM들의 할당은 도 3과 관련하여 도시 및 기술된 것과 같이 결정된다.
단계 240에서, 요청된 VM들은 VM 할당 정보를 이용하여 클라우드 환경 안에 프로비저닝된다. 클라우드 환경 안에서 요청된 VM들의 프로비저닝은 어떤 적절한 방식에 따라(가령, 요청된 VM들이 할당될 데이터센터들로 전송된 프로비저닝 메시지들을 이용하여) 수행될 수 있다.
방법(200)은 단계 250에서 종료된다.
도 3은 클라우드 환경의 데이터센터들 안에 VM들을 프로비저닝할 때 사용하기 위해 데이터센터들 안의 VM들의 할당을 결정하기 위한 방법의 일 실시예들 도시한다. 여기서는 순차적으로 수행되는 것으로 묘사 및 기술되고 있지만, 방법(300)의 단계들은 동시 발생적으로, 그리고/또는 표현된 것과는 다른 순서로 수행될 수 있다는 것을 알아야 한다.
방법(300)은 단계 310에서 시작한다.
단계 320에서 요청된 VM들에 대한 데이터센터들의 집합이 결정된다.
데이터센터들의 집합은 요청된 VM들이 할당될 하나 이상의 데이터센터들을 포함한다. 데이터센터들의 집합은 클라우드 환경의 이용 가능한 데이터센터들 중 하나 이상을 포함한다. 하나의 데이터센터는 요청된 VM들 모두를 호스팅하기 충분한 용량을 가지지 못할 수 있고, 나아가 하나의 데이터센터 안에 요청된 VM들 전부를 호스팅하기 충분한 용량이 있다고 하더라도, 사용자는 복원성을 개선하기 위해 여러 데이터센터들에 대해 요청된 VM들을 배포하고 싶어할 수 있다는 것을 알아야 한다.
데이터센터들의 집합은 사용자 VM 요청 정보를 이용하여 결정될 수 있다. 데이터센터들의 집합은 네트워크 관리 정보, 데이터센터 관리 정보 등뿐 아니라 이들의 다양한 조합들을 이용하여 결정될 수 있다. 데이터센터들의 집합은 데이터센터들의 집합을 결정할 때 사용하기 적합한 어떤 다른 정보를 이용하여 결정될 수 있다.
일 실시예에서, 데이터센터들의 집합은 (1) 데이터센터들의 집합 내 데이터센터들의 개수를 최소화하고 (2) 요청된 VM들의 배치와 관련된 데이터센터 간 트래픽을 줄이기 위한(또한 그에 따라 소비되는 네트워크 대역폭을 최소화하기 위한) 방식으로 결정된다.
일 실시예에서, 데이터센터들의 집합은 어떤 두 데이터센터들 사이의 (1) 최대 거리(가령, 홉(hop) 카운트)를 최소화하고 (2) 하나 이상의 제한(가령, VM들의 요망 개수의 이용가능성, 각각의 데이터센터 안에 배치되는 VM들의 최소 및/또는 최대 개수 등)을 받는 이용 가능한 데이터센터들의 부분집합을 선택함으로써 결정된다. 이러한 조건들을 만족시키는 데이터센터들의 부분집합은 서브 그래프 선택 문제(본 명세서에서 데이터센터 선택 문제 MINDIAMETER로 지칭됨)로서 보여질 수 있다는 것을 알아야 하며, 그에 대한 설명은 다음과 같다.
이용 가능한 데이터센터들의 집합을 그래프(G)라고 표현하자. 그래프 G=(V, E)는 정점들(V)과 간선들(E)로 이루어진다. 정점들(V)은 데이터센터들에 해당한다. 정점들(V)은 그와 관련된 정점 중량들(w)을 가지며, 여기서 정점(V)의 중량(w)은 데이터센터 내 이용 가능한 VM들의 개수에 해당한다. 그래프는 완전 그래프이며, 여기서 간선들(E)은 데이터센터들을 연결하는 통신 경로들(가령, 인터넷 및/또는 어떤 다른 관련 패킷 네트워크들 경유)에 해당한다. 간선들(E)은 그와 관련된 간선 중량들이나 길이들(I)을 가지며, 여기서 두 데이터센터들 사이의 간선(E)의 길이(I)는 데이터센터들 사이의 거리(가령, 홉들의 개수)에 해당한다.
일 실시예에서, 초기 그래프 G는 사용자 VM 요청을 통해 특정될 수 있는 하나 이상의 VM 할당 제한들에 기반하여 수정될 수 있다. 사용자 VM 요청이 데이터센터 안에 배치될 수 있는 최대 개수의 VM들에 대한 제한을 포함하면, 정점들(V)의 중량들은 그 제한보다 클 수 없다(즉, 제한보다 큰 중량들을 가진 정점들은 그래프로부터 제거된다). 사용자 VM 요청이 데이터센터 안에 배치될 수 있는 최소 개수의 VM들에 대한 제한을 포함하면, 정점들(V)의 중량들은 그 제한보다 적을 수 없다(즉, 제한보다 적은 중량들을 가진 정점들은 그래프로부터 제거된다).
s가 사용자 VM 요청을 통해 요청된 VM들의 개수를 나타낸다고 하자. 일 실시예에서 데이터센터 선택 문제 MINDIAMETER(s)는 그 중량들의 합이 최소한 s이고 최소 지름(즉, 정점들 간 어떤 가장 짧은 거리의 최대 길이)을 가지는 G의 서브 그래프를 찾는 것에 해당한다. 원래의 그래프 G가 완전 그래프이므로, 선택된 정점들에 의해 유도된 서브 그래프 역시 완전하다는 것을 알아야 한다. 이와 같이, 일 실시예에서 데이터센터 선택 문제 MINDIAMETER(s)는 가장 긴 간선의 길이가 최소인 서브 그래프를 찾는 것에 해당한다.
데이터센터 선택 문제 MINDIAMETER(s)는 NP 하드(NP-hard)이며 모든
Figure pct00001
에 대해
Figure pct00002
안에 근사될 수 없다는 것을 알아야 한다. 데이터센터 선택 문제 MINDIAMETER(s)는 최대 사이즈의 클릭(clique)을 찾는 것인 최대 클릭(clique) 문제로부터 감소될 수 있다는 것을 더 알아야 한다. 그러한 감소는 다음과 같다. 최대 클릭 문제의 예인 G=(V, E)를 고려하면, 최소 지름 서브 그래프 문제들의 예가 생성된다. 새로운 완전 그래프 G'=(V', E', w, l)가 생성된다. G'의 정점들은 G의 정점들과 동일하며, 일(1)의 중량을 가진다. G 안의 두 정점들 u 및 v 사이에 어떤 간선이 존재하면, G'의 대응하는 정점들 사이의 간선의 길이가 일(1)이 된다; 그렇지 않으면, 해당 정점들 사이의 간선의 길이는 이(2)가 된다. 이 그래프 안의 간선들은 삼각 부등식을 만족한다. G의 서브 대응하는 서브 그래프가 클릭인 경우 및 그런 경우에만, G'의 서브 그래프는 일(1)의 지름을 가진다. 이것은 G가 사이즈 k의 클릭을 가지는 경우, G'의 대응 정점들이 중량 k 및 지름 일(10)의 서브 그래프를 형성하는 데 이용될 수 있기 때문이다. 마찬가지로, G'가 중량 k 및 지름 1의 서브 그래프를 가지는 경우, G의 대응 정점들은 사이즈 k의 클릭을 형성한다. G의 서브 대응하는 서브 그래프가 클릭인 경우 및 그런 경우에만, G'의 서브 그래프는 일(1)의 지름을 가진다. 그에 따라, 최대 클릭 문제에 대한 해법은 사이즈 s 및 지름 일(1)의 서브 그래프가 존재하는 최대
Figure pct00003
을 찾음으로써 찾아질 수 있다.
다시 한번, 데이터센터 선택 문제 MINDIAMETER(s)는 P=NP가 아닌 경우 모든
Figure pct00004
에 대해 팩터
Figure pct00005
안에 근사될 수 없다는 것을 알아야 한다. 데이터센터 선택 문제 MINDIAMETER(s)를 위한
Figure pct00006
근사 프로세스가 존재하는 경우, 최대 클릭 문제는 다음과 같이 해소될 수 있다. 사이즈 k의 클릭을 찾기 위해, 감소를 이용하는 중량 k에 대한 MINDIAMETER 문제를 생성한다. 사이즈 k의 클릭이 존재하면, 지름 일(1)의 데이터센터 선택 문제 MINDIAMETER(s)를 위한 서브 그래프가 존재한다. 그러한 클릭이 존재하지 않으면, 데이터센터 선택 문제 MINDIAMETER(s)의 지름은 적어도 이(2)가 된다. 그러므로, 데이터센터 선택 문제 MINDIAMETER(s)에 대한
Figure pct00007
프로세스가 지름이 이(2) 미만인 서브 그래프로 돌아가면, 오리지널 그래프 G 안에 사이즈 k의 클릭이 존재한다.
일 실시예에서 최소 지름 서브 그래프 문제(즉, 데이터센터 선택 문제 MINDIAMETER(s))를 해소하기 위한 근사 프로세스가 제공된다. 일 실시예에서, 프로세스에 의해 출력된 서브 그래프의 지름은 최적의 서브 그래프의 지름의 기껏해야 두 배이다. 근사 프로세스에서, 삼각 부등식은 그래프 안의 간선 중량들에 대해서도 유지된다고 추정된다. 간선의 길이가 해당 데이터센터들 사이의 경로 길이에 해당하기 때문에 이 문제의 설정 시 삼각 부등식이 유효하다는 것을 알아야 한다. 세 개의 데이터센터들 사이에 삼각 부등식 위반이 존재하는 경우, 삼각 부등식에 대한 부합은 보다 긴 간선을 강제하여 보다 짧은 간선들에 의해 형성되는 경로를 취하도록 함으로써 여전히 유지될 수 있다.
일 실시예에서 최소 지름 서브 그래프 문제를 해소하기 위한 근사 프로세스는 여기서 FindMinStar(G, v, s) 프로세스(도 4a에 도시 및 기술됨) 및 MinDiameterGraph(G, s) 프로세스(도 4b에 도시 및 기술됨)로 지칭되는 두 개의 프로세스들로서 구현되며, 이에 대한 설명은 다음과 같다. 기본적으로 별개의 프로세스들로서 도시 및 기술되고 있지만, 이 프로세스들은 기술된 기능들을 제공하기 위해 실행될 수 있는 더 적거나 더 많은 프로세스들로서 구현될 수 있다는 것을 알아야 한다. 또한, 프로세스들의 특정 구현예들(가령, 특정 변수들, 특정 프로세스들의 단계들의 구성 등)과 관련하여 도시되고 기술되고 있지만, 이러한 프로세스들은 기술된 기능들을 제공하는 데 적합한 어떤 다른 방식으로 구현될 수 있다는 것을 알아야 한다.
여기에 기술된 바와 같이, 도 4a의 FindMinStar(G, v, s) 프로세스(410) 및 도 4b의 MinDiameterGraph(G, s) 프로세스(420)는 VM들이 할당될 데이터센터들의 집합을 결정하도록 구성된다.
도 4a에 도시된 바와 같이, FindMinStar(G, v, s) 프로세스(410)는 정점 v를 포함하는 적어도 s인 중량의 서브 그래프를 찾도록 구성된다. 정점 v를 중심으로 하는 스타 토폴로지는 스타 토폴로지의 중량이 적어도 s가 될 때까지 증가하는 길이 순으로 노드들을 v에 추가함으로써 찾아진다. 최종 서브그래프는 스타 안의 노드들에 의해 유발된 간선들을 추가함으로써 형성된다. FindMinStar(G, v, s) 프로세스(410)는 또한 노드들이 추가될 때 지름을 유지함으로써 결과적인 서브 그래프의 지름을 산출한다(노드가 추가될 때, 서브그래프의 지름이 그 노드에 의해 유발된 간선들의 길이가 현재의 지름보다 클 경우에만 변화할 수 있다는 제한을 받음).
도 4b에 도시된 바와 같이, MinDiameterGraph(G, s) 프로세스(420)는 정점들 각각에 대해 FindMinStar(G,v,s) 프로세스(410)를 일으킴으로써 적어도 s인 중량의 서브그래프를 찾도록 구성된다. MinDiameterGraph(G, s) 프로세스(420)는 그런 다음 최소의 지름을 가진 서브그래프를 선택한다.
FindMinStar(G,v,s) 프로세스(410)는 v에 따르기 마련인 어떤 간선의 길이가 최소인 적어도 s인 중량의 서브그래프를 찾는다. FindMinStar(G,v,s) 프로세스(410)는 정점 v를 그 서브그래프에 먼저 더한다. 그런 다음 FindMinStar(G,v,s) 프로세스(410)는 서브그래프 안의 정점들의 중량의 합이 s가 될 때까지, v에 인접한 정점들을 간선 중량들의 증가 순으로 더한다. 그에 따라 FindMinStar(G,v,s) 프로세스(410)는 v에 따르기 마련인 간선들에 대해 최소 간선 중량들을 가지는 서브그래프를 찾는다.
MinDiameterGraph(G, s) 프로세스(420)는 지름이 기껏해야 최적인 것의 2 배인, 적어도 s인 중량의 서브그래프를 찾는다. MinDiameterGraph(G, s) 프로세스(420)는 G의 정점들 각각에 대해 FindMinStar(G,v,s) 프로세스(410)를 일으켜서 최소의 지름을 가지는 것을 선택한다. v'가 FindMinStar(G,v,s) 프로세스(410)에 의해 도출된 그래프 G'의 지름이 최소인 노드라고 하고, I'가 그 서브그래프 G' 안의 v'에 따르기 마련인 가장 긴 간선의 길이라고 하자. 간선 길이들은 삼각 부등식을 따르고 G'는 완전 그래프이므로, G' 안의 어떤 간선의 길이는 기껏해야 2I'이고, 따라서 G'의 지름은 기껏해야 2I'이다.
데이터센터 선택 문제 MINDIAMETER(s)와 관련하여, 그 데이터센터 선택 문제 MINDIAMETER(s)를 해결하기 위한 근사 프로세스가 2-근사 프로세스라는 것을 알아야 한다. Gopt가 데이터센터 선택 문제 MINDIAMETER(s)에 대한 최적의 해법이라고 하자. I"는 Gopt의 가장 긴 간선이라고 하자. u" 및 v"는 I"의 종점들이라고 하자. Gopt의 간선들이 삼각 부등식을 만족하기 때문에, Gopt 안에서 u" 및 v" 사이의 최단 거리는 I"이다. 그러므로 Gopt의 지름은 적어도 I"가 된다. 이제 MinDiameterGraph(G, s) 프로세스(420)를 실행하는 동안 FindMinStar(G,v,s) 프로세스(410)에 의해 도출되는 그래프 G"를 고려하자. 상술한 바와 같이, G" 상의 v"에 따르는 간선들의 길이들은 기껏해야 I"이다. G"의 지름이 기껏해야 2I"이므로, MinDiameterGraph(G, s) 프로세스(420)에 의해 도출되는 서브그래프(즉, G')의 지름은 기껏해야 2I"가 된다. 따라서 데이터센터 선택 문제 MINDIAMETER(s)를 해소하기 위한 근사 프로세스는 2-근사 프로세스이다.
이제 도 3으로 돌아가면, 요청된 VM들에 대한 데이터센터들의 집합에 대한 결정이 다른 방식들로(가령, 다른 정보를 이용하고, 다른 조건들을 만족하기 위한 방식으로, 다른 프로세스들을 이용하는 등뿐 아니라 이들의 다양한 조합들을 통해) 수행될 수 있다는 것을 알아야 한다.
단계 330에서, 데이터센터들의 집합 내 데이터센터들에 대해 요청된 VM들의 할당이 결정된다.
요청된 VM들의 데이터센터들의 집합 내 데이터센터들로의 할당은 데이터센터들의 집합의 각각의 데이터센터들마다 그 데이터센터에 할당될 요청된 VM들의 개수를 특정한다. 요청된 VM들의 데이터센터들의 집합 내 데이터센터들로의 할당이 반드시, VM들이 할당될 데이터센터들의 장치나(단계 340에서 결정) VM들 중 어느 것이 데이터센터들 중 어느 것에 할당되는가(단계 350에서 결정)를 특정할 필요는 없다는 것을 알아야 한다.
요청된 VM들은 사용자 VM 요청 정보, 네트워크 관리 정보, 데이터센터 관리 정보 등뿐 아니라 이들의 다양한 조합들 중 하나 이상을 이용하여 데이터센터들의 집합 내 데이터센터들에 할당될 수 있다. 일 실시예에서, 요청된 VM들은 데이터센터 간 트래픽을 최소화하려는 방식으로 데이터센터들의 집합 내 데이터센터들에 할당된다. 일 실시예에서, 요청된 VM들은 사용자 VM 요청 시 특정된 하나 이상의 VM 할당 제한들에 따라 데이터센터들의 집합 내 데이터센터들로 할당된다. 일 실시예에서, 예컨대, 사용자 VM 요청 정보가 서로 다른 타입의 VM들을 서로 다른 데이터센터들로 할당하는 것과 관련된 VM 타입 제한을 포함하는 실시예에서, 요청된 VM들은 VM 타입 제한에 기반하여 데이터센터들의 집합 내 데이터센터들로 할당된다.
일 실시예에서, 요청된 VM들은 데이터센터들로의 VM들의 할당을 위해 구성된 VM 할당 프로세스를 이용하여 데이터센터들의 집합 내 데이터센터들에 할당된다. 일반적으로 VM 할당 프로세스의 목적은 그래프를 같은 사이즈의 부분들로 나누어 그 그래프의 부분들 사이에 소수의 연결들이 존재하도록(그에 따라 요청된 VM들을 지원하는 데 요구되는 네트워크 통신 자원들을 최소화하도록) 하는 것이다. 그러나, 이중분할 그래프를 두 개의 동일한 부분들로 나누는 가장 간단한 경우(통상적으로 그래프 양분 문제라고도 불림)조차도 NP 하드이다. 거기에 더하여, 관련 문제가 그래프를 K개의 부분들로 분할하고 각각의 부분의 사이즈 또한 입력으로서 특정되는 것이 목적인 K 컷(K-cut) 문제이다.
VM 할당 프로세스에서, 사용자 VM 요청은 분할되어야 하는 그래프로서 보여질 수 있다. 그래프의 노드들은 VM들을 나타내고, 그래프의 링크들은 링크들에 의해 연결되는 VM들의 쌍들 사이에서 요청되는 상대적 대역폭을 나타낸다. 그래프의 각각의 구간은 동일한 데이터센터에 할당될 VM들의 집합을 나타낸다. 각각의 구간의 사이즈는 VM들을 호스팅하기 위해 데이터센터에서 이용 가능한 자원들의 양으로 상한되어야 한다. 전통적인 그래프 분할 문제와 달리, 이 문제는 각각의 구간 안에서의 정확한 노드들의 개수를 특정할 수 없고, 그보다는 오직 각각의 구간 안에서의 최대 노드들을 특정한다는 것이다. 이것은, 어떤 지점에서, 사용자에 의해 요청된 VM들의 개수보다 클라우드 환경 내 VM들을 호스팅 하는 데 이용 가능한 자원들이 더 많이 존재할 수 있기 때문이다. 결과적으로 VM 할당 프로세스는 VM들을 호스팅하는 데 이용 가능한 최대 자원들을 가지는 데이터센터(들) 안에서 VM들을 할당함으로써 (데이터센터들 간) 통신을 최적화할 수 있다. VM들의 데이터센터들로의 할당에 있어서, 데이터센터 간 통신 비용은 데이터센터들 간 통신 라우팅에 좌우된다. 따라서 애플리케이션의 통신 비용을 최소화하기 위해, 데이터센터 구간들 간 통신 거리가 고려된다.
VM 할당 프로세스와 관련하여, 문제는 다음과 같이 일반화될 수 있다. 간선 중량의 할당 w:E-->V을 이용한 그래프 G=(V,E) 및 구간들 i 및 j 사이의 거리가 d(i,j)인 구간 용량들 k1, k2,...의 집합을 고려한다. V를
Figure pct00008
Figure pct00009
가 되도록 해체 집합들 C1, C2..., Cm로 분할한다.
VM 할당 프로세스와 관련하여, 개별 사용자 요청들이 증가적 방식으로 개별 처리되거나, 서로 다른 사용자 요청들의 노드들 사이에 어떤 간선들도 포함하지 않는 대형 분할 그래프를 형성하도록 모든 여러 요청들이 결합될 수 있다는 것을 알아야 한다.
VM 할당 프로세스와 관련하여, 그래프 분할 문제는 NP 하드이고, 양호한(가령, 일정한) 근사를 보장하는 프로세스들은 존재하지 않는다는 것을 알아야 한다.
일 실시예에서 VM 할당 프로세스는 그리디 휴리스틱스(greedy heuristics) 프로세스로서 구현된다.
일 실시예에서 VM 할당 프로세스는 한 번에 한 데이터센터를 선택한다. 데이터센터들은 어떤 적절한 순서로 선택될 수 있고(가령, 사용자 VM 요청에 특정된 하나 이상의 VM 할당 제한들 등뿐 아니라 이들의 다양한 조합들에 기반하여 VM들을 호스팅하기 위해 이용 가능한 자원들의 최대량을 가진 데이터센터가 선택되도록 각각의 선택이 수행됨) 가능한 많은 VM들을 선택된 데이터센터에 할당한다. VM 할당 프로세스는 파라미터(가령, 입/출력 대역폭, 이웃들의 수 등)의 최대값을 가진 VM을 선택하며 선택된 VM을 선택된 데이터센터에 할당한다. 선택된 VM은 선택된 데이터센터에 할당된 VM들의 집합인 집합 C에 추가된다. VM 할당 프로세스들은 이제 C의 이웃들 모두를 고려하여 C로/로부터의 최대 트래픽을 가진 VM을 선택하며, 선택된 VM을 집합 C에 추가한다. 이 프로세스는 선택된 데이터센터에 대한 조건이 만족될 때까지(가령, 선택된 데이터센터의 가용 자원들 모두가 소진되었고, 선택된 데이터센터에 대해 데이터센터 당 최대량 제한이 만족되는 등) 반복될 수 있다. 그런 다음 VM 할당 프로세스는 다음 데이터센터를 선택하고, 다음으로 선택된 그 데이터센터 및 아직 어떤 데이터센터에도 할당된 적이 없던(즉, V-C) 나머지 VM들의 그래프에 대한 프로세스를 반복한다.
일 실시예에서 VM 할당 프로세스는 어떤 노드들을 교환함으로써 변형된다. VM 할당 프로세스는 서로 다른 구간들에 존재하는 노드들의 쌍들을 고려한다. VM 프로세스는 고려된 노드들의 교환이 해법을 개선하는지(가령, 보다 적은 데이터센터 간 대역폭을 덜 사용하는지) 여부를 판단할 수 있다. VM 프로세스는 구간들 사이의 노드를 (가령, 현재의 구간으로부터 이용 가능한 용량을 가진 다른 구간으로) 이동하는 것이 해법을 개선하는지 개선하지 않는지 여부를 판단할 수 있다. VM 할당 프로세스는 고려된 움직임들 중 하나 이상을 선택하고 선택된 움직임(들)을 행한다. 이 프로세스는 (가령, 문턱 개수의 움직임들이 행해질 때까지, 모든 움직임들이 고려되고 VM 할당 시 더 이상의 개선이 없을 때까지 등등) 반복될 수 있다는 것을 알아야 한다.
단계 340에서, 데이터센터들의 집합 내 각각의 데이터센터에 대해, 해당 데이터센터에 할당되도록 요청된 VM들을 호스팅하는 데 사용될 해당 데이터센터의 물리적 자원들이 선택된다.
데이터센터 내 물리적 자원들의 선택은 데이터센터에 할당되는 VM들을 호스팅하는 데 사용될 데이터센터의 랙(들)에 대한 선택을 포함할 수 있다. 데이터센터 내 물리적 자원들의 선택은 선택된 랙(들) 상의 블레이드 서버(들)에 대한 선택을 더 포함할 수 있다. 데이터센터 내 물리적 자원들의 선택은 선택된 랙(들)의 선택된 블레이드 서버(들) 상의 CPU(들)에 대한 선택을 더 포함할 수 있다. 데이터센터 내 물리적 자원들의 선택은 선택된 랙(들)의 선택된 블레이드 서버(들)의 선택된 CPU(들) 상의 코어(들)에 대한 선택을 더 포함할 수 있다. 이러한 맥락에서, 데이터센터 내 물리적 자원들의 선택에 사용되는 프로세스는 본 명세서에서 보다 일반적으로, 장치 선택 프로세스, 머신 선택 프로세스 및/또는 물리적 자원 선택 프로세스라고 불릴 수 있다. 물리적 자원들의 선택은 데이터센터의 선택된 물리적 자원들에 대해 데이터센터로 할당될 VM들의 매핑을 반드시 특정하는 것은 아니라는 것(단계 350에 결정될 수 있음)을 알아야 한다.
데이터센터의 물리적 자원들의 선택은 데이터센터 내 VM들 사이의 랙 간 트래픽을 최소화하는 방식으로 수행될 수 있다. 이것은 데이터센터에 할당된 VM들 사이의 긴 통신 경로들을 방지하는 경향이 있을 수 있고, 그에 따라 데이터센터 내 VM들 사이의 통신 시 긴 대기시간을 방지할 수 있고 데이터센터 내 자원들(가령, 통신 자원들)의 사용을 줄일 수 있다.
이것은 보다 큰 데이터센터들(가령, 수백 개의 랙들, 수천 개의 랙들, 또는 훨씬 더 많은 랙들을 가진 것들)에서의 통신 지연의 상당한 감소를 지원하며, 이때 상대적으로 서로 가까이 위치하지 않는 랙들 사이의 모든 통신들은 여러 개수/레벨의 집합 스위치들을 거쳐야 할 수 있다.
데이터센터의 물리적 자원들의 선택은 탄력성을 제공하도록 하는 방식으로 수행될 수 있다.
데이터센터의 물리적 자원들의 선택은 VM들이 요청되는 사용자 애플리케이션(들)의 데이터센터 활용성 및 성능을 개선할 수 있다는 것을 알아야 한다.
일 실시예에서, 선택된 데이터센터의 랙(들)의 선택은 랙 선택 프로세스(가령, 요청된 VM들에 대한 랙(들)이 선택되는 머신 선택 프로세스의 구현 예)를 이용하여 수행된다.
일 실시예에서, 랙 선택 프로세스는 데이터센터들의 선택을 위해 사용되는 데이터센터 선택 프로세스의 변형된 버전으로서 구현된다. 일 실시예에서, 랙 선택 프로세스는 랙들 사이의 최대 거리를 최소화하도록 구성된 2-근사 프로세스이다. 이 실시예에서 그래프의 정점들은 랙들을 나타내며, 각각의 랙에 대해 그 랙의 관련 중량은 데이터센터에 할당된 VM들을 지원하기 위해 랙에서 이용 가능한 자원들의 양을 나타낸다.
데이터센터의 토폴로지가 계층적 네트워크인 일 실시예에서, 랙 선택 프로세스는 랙 선택 문제에 대한 최적의 해법을 결정할 수 있다. 토폴로지는 트리 토폴로지라고 간주될 수 있으며, 이 경우 트리의 루트 노드는 최상위 계층 스위치나 스위치들(가령, 데이터센터로/로부터의 연결성을 제공하는 라우터)을 나타내고, 루트 노드의 자식 노드들은 스위치들(가령, 최상위 레벨 집합 스위치들)의 네트워크 계층을 나타내는 식으로 랙들을 나타내는 리프(leaf) 노드까지 내려간다. 이 트리에서 리프 노드들 모두는 같은 레벨 상에 있다는 것을 알아야 한다. 이 트리는 각각의 랙마다, 데이터센터에 할당되는 VM들을 지원하는 데 이용 가능한 랙의 지원들의 양을 가리키는 레벨들을 포함하도록 증대된다.
일 실시예에서, 랙(들)의 블레이드 서버(들)의 선택은 블레이드 서버 선택 프로세스(가령, 요청된 VM들에 대한 랙(들) 및 블레이드 서버(들)이 선택되는 머신 선택 프로세스의 구현 예)를 이용하여 수행된다. 일 실시예에서, 블레이드 서버 선택 프로세스는 랙 선택 프로세스의 변형된 버전으로서 구현되며, 여기서 트리의 리프 노드들은 블레이드 서버 레벨을 나타내며 리프 노드들의 부모 노드들은 랙들을 나타낸다.
일 실시예에서, 랙(들)의 블레이드 서버(들)의 CPU(들)선택은 CPU 선택 프로세스를 이용(가령, 요청된 VM들에 대한 랙(들), 블레이드 서버(들), 및 CPU(들)이 선택되는 머신 선택 프로세스의 구현 예 이용)하여 수행된다. 일 실시예에서, CPU 선택 프로세스는 랙 선택 프로세스의 변형된 버전으로서 구현되며, 여기서 트리의 리프 노드들은 CPU 레벨을 나타내고, CPU 노드들은 블레이드 서버를 나태내며, 블레이드 서버 노드들의 부모 노드들은 랙들을 나타낸다.
상술한 바와 같이, 머신 선택 프로세스는 데이터센터에 대해, 데이터센터에 할당되는 VM들이 할당될 데이터센터 안의 머신(들)을 선택하기 위해 실행될 수 있다.
일 실시예에서, 머신 선택 프로세스는 VM들이 할당되는 주어진 데이터센터에 대해, 데이터센터에 할당되는 어떤 두 개의 VM들 사이의 최대 통신 거리를 최소화하도록 구성된다. 이것은 리프들 상의 라벨들의 합이 적어도 요구된 VM들의 목표 개수인 최소 높이의 루트화된 서브 트리를 찾는 것으로 변환될 수 있다. 데이터센터 선택 프로세스에서처럼, 머신 선택 프로세스는 하나 이상의 VM 할당 제한들(가령, 랙마다 할당될 수 있는 VM들의 최대 개수, 랙마다 할당될 수 있는 VM들의 최소 개수 등)을 참작할 수 있다. VM 할당 제한(들)에 따라 랙(들)을 나타내는 노드(들)의 중량(들)을 변경함으로써 이러한 타입들의 VM 할당 제한들이 고려될 수 있다.
일 실시예에서 머신 선택 프로세스는 (도 5에 도시 및 기술된) FindMinHeightTree(T, r, s) 프로세스로서 구현된다.
도 5에 도시된 바와 같이, FindMinHeightTree(T, r, s) 프로세스(500)는 주어진 데이터센터에 대해, 그 데이터센터에 할당된 VM들을 호스팅하기 위해 사용되어야 할 데이터센터의 물리적 자원들을 선택하도록 구성된다. s를 데이터센터 안에 할당될 VM들의 개수라고 하자. T를 데이터센터 자원들(가령, 컴퓨팅 자원들, 네트워크 자원들 등)의 트리 표현이라고 하자. 이하의 두 변수들은 T 안에서 각각의 노드와 관련된다: (1) 노드 v에서 루팅되는 VM들을 지원하는 데 사용가능한 데이터센터 자원들의 양을 나타내는 weight(v) 및 (2) 노드의 높이를 나타내는 height(v). 리프 노드들만의 중량 변수들이 초기화된다. FindMinHeightTree(T, r, s) 프로세스(500)는 리프 노드들이 적어도 s의 누적 중량을 가지며 최소 높이를 가지는, r에서 루팅된 서브트리를 찾는다. FindMinHeightTree(T, r, s) 프로세스(500)는 해당 트리의 차례에 따른 횡단을 수행하고, 각각의 노드의 높이 및 중량뿐 아니라 적어도 s의 중량을 가진 최소 높이 서브트리의 루트를 유지한다.
이제 도 3으로 돌아가면, 데이터센터들의 물리적 자원들에 대한 선택이 다른 방식들로(가령, 다른 정보를 이용하고, 다른 조건들을 만족하기 위한 방식으로, 다른 프로세스들을 이용하는 등뿐 아니라 이들의 다양한 조합들을 통해) 수행될 수 있다는 것을 알아야 한다.
단계 350에서, 각각의 요청된 VM에 대해, 요청된 VM이 할당되는 데이터센터의 물리적 자원들로 요청된 VM의 할당이 결정된다.
데이터센터의 물리적 자원들로의 VM의 할당은 VM이 호스팅되어야 할 랙, 블레이드 서버 및 CPU(및 옵션으로서 CPU 상의 코어)로의 VM의 할당을 포함한다.
요청된 VM들은 사용자 VM 요청 정보, 데이터센터 관리 정보 등뿐 아니라 이들의 다양한 조합들 중 하나 이상을 이용하여 VM이 호스팅되어야 하는 데이터센터의 물리적 자원들로 할당될 수 있다. 일 실시예에서, VM이 호스팅되어야 할 데이터센터의 물리적 자원들로의 VM의 할당은 데이터센터 안에서의 랙 간 트래픽을 최소화하는 방식으로 수행될 수 있다. 일 실시예에서, VM이 호스팅되어야 할 데이터센터의 물리적 자원들로의 VM의 할당은 사용자 VM 요청에 특정된 하나 이상의 VM 할당 제한들에 따라 수행될 수 있다. 일 실시예에서, 예컨대, 사용자 VM 요청 정보가 서로 다른 타입의 VM들을 서로 다른 데이터센터들로 할당하는 것과 관련된 VM 타입 제한을 포함하는 실시예에서, VM이 호스팅되어야 하는 데이터센터의 물리적 자원들로의 VM의 할당은 VM 타입 제한에 기반하여 수행될 수 있다.
일 실시예에서, VM이 호스팅되어야 할 데이터센터의 물리적 자원들로의 VM의 할당은 데이터센터들의 물리적 자원들로의 VM들의 할당을 위해 구성된 VM 할당 프로세스를 이용하여 수행될 수 있다. 일반적으로 VM 할당 프로세스의 목적은 그래프를 같은 사이즈의 부분들로 나누어 그 그래프의 부분들 사이에 소수의 연결들이 존재하도록(그에 따라 요청된 VM들이 데이터센터 안에서 호스팅되도록 지원하는 데 요구되는 데이터센터 통신 자원들을 최소화하도록) 하는 것이다. 그러나, 이중분할 그래프를 두 개의 동일한 부분들로 나누는 가장 간단한 경우(통상적으로 그래프 양분 문제라고도 불림)조차도 NP 하드이다. 거기에 더하여, 관련 문제가 그래프를 K개의 부분들로 분할하고 각각의 부분의 사이즈 또한 입력으로서 특정되는 것이 목적인 K 컷(K-cut) 문제이다.
VM 할당 프로세스에서, 사용자 VM 요청은 분할되어야 하는 그래프로서 보여질 수 있다. 그래프의 노드들은 VM들을 나타내고, 그래프의 링크들은 링크들에 의해 연결되는 VM들의 쌍들 사이에서 요청되는 상대적 대역폭을 나타낸다. 그래프의 각각의 구간은 동일한 랙에 할당될 VM들의 집합을 나타낸다. 각각의 구간의 사이즈는 VM들을 호스팅하기 위해 랙에서 이용 가능한 자원들의 양으로 상한되어야 한다. 전통적인 그래프 분할 문제와 달리, 이 문제는 각각의 구간 안에서의 정확한 노드들의 개수를 특정할 수 없고, 그보다는 오직 각각의 구간 안에서의 최대 노드들을 특정한다는 것이다. 이것은, 어떤 지점에서, 사용자에 의해 요청된 VM들의 개수보다 클라우드 환경 내 VM들을 호스팅하는 데 이용 가능한 자원들이 더 많이 존재할 수 있기 때문이다. 결과적으로 VM 할당 프로세스는 VM들을 호스팅하는 데 이용 가능한 최대 자원들을 가지는 랙(들) 안에서 VM들을 할당함으로써 (랙들 간) 통신을 최적화할 수 있다. 데이터센터 내 VM들의 할당을 위해, 랙들 사이에서의 데이터센터 간 통신 비용은 데이터센터의 스위칭 계층 구조 상의 랙들의 근접성에 좌우될 수 있다. 따라서 애플리케이션의 통신 비용을 최소화하기 위해, 랙 구간들 간 통신 거리가 고려된다.
VM 할당 프로세스와 관련하여, 문제는 다음과 같이 일반화될 수 있다. 간선 중량의 할당 w:E-->N을 이용한 그래프 G=(V,E) 및 구간들 i 및 j 사이의 거리가 d(i,j)인 구간 용량들 k1, k2,...의 집합을 고려한다. V를
Figure pct00010
Figure pct00011
가 되도록 해체 집합들 C1, C2..., Cm로 분할한다.
VM 할당 프로세스와 관련하여, 개별 사용자 요청들이 증가적 방식으로 개별 처리되거나, 서로 다른 사용자 요청들의 노드들 사이에 어떤 간선들도 포함하지 않는 대형 분할 그래프를 형성하도록 모든 여러 요청들이 결합될 수 있다는 것을 알아야 한다.
VM 할당 프로세스와 관련하여, 그래프 분할 문제는 NP 하드이고, 양호한(가령, 일정한) 근사를 보장하는 프로세스들은 존재하지 않는다는 것을 알아야 한다.
일 실시예에서 VM 할당 프로세스는 그리디 휴리스틱스(greedy heuristics) 프로세스로서 구현된다.
일 실시예에서 VM 할당 프로세스는 한 번에 한 랙을 선택한다. 랙들은 어떤 적절한 순서로 선택될 수 있고(가령, 사용자 VM 요청에 특정된 하나 이상의 VM 할당 제한들 등뿐 아니라 이들의 다양한 조합들에 기반하여 VM들을 호스팅하기 위해 이용 가능한 자원들의 최대량을 가진 랙이 선택되도록 각각의 선택이 수행됨) 가능한 많은 VM들을 선택된 랙에 할당한다. VM 할당 프로세스는 파라미터(가령, 입/출력 대역폭, 이웃들의 수 등)의 최대값을 가진 VM을 선택하며 선택된 VM을 선택된 랙에 할당한다. 선택된 VM은 선택된 랙에 할당된 VM들의 집합인 집합 C에 추가된다. VM 할당 프로세스들은 이제 C의 이웃들 모두를 고려하여 C로/로부터의 최대 트래픽을 가진 VM을 선택하며, 선택된 VM을 집합 C에 추가한다. 이 프로세스는 선택된 랙의 이용 가능한 자원들 모두가 소진될 때까지 반복된다. 그런 다음 VM 할당 프로세스는 다음 랙(VM들을 호스팅하기 위해 이용 가능한 자원들의 최대량을 가지는 랙)을 선택하고, 다음으로 선택된 그 랙 및 아직 할당된 적이 없던(즉, V-C) 나머지 VM들의 그래프에 대한 프로세스를 반복한다.
일 실시예에서 VM 할당 프로세스는 어떤 노드들을 교환함으로써 변형된다. VM 할당 프로세스는 서로 다른 구간들에 존재하는 노드들의 쌍들을 고려한다. VM 프로세스는 고려된 노드들의 교환이 해법을 개선하는지(가령, 보다 적은 랙 간 대역폭을 덜 사용하는지) 여부를 판단할 수 있다. VM 프로세스는 구간들 사이의 노드를 (가령, 현재의 구간으로부터 이용 가능한 용량을 가진 다른 구간으로) 이동하는 것이 해법을 개선하는지 개선하지 않는지 여부를 판단할 수 있다. VM 할당 프로세스는 고려된 움직임들 중 하나 이상을 선택하고 선택된 움직임(들)을 행한다. 이 프로세스는 (가령, 문턱 개수의 움직임들이 행해질 때까지, 모든 움직임들이 고려되고 VM 할당 시 더 이상의 개선이 없을 때까지 등등) 반복될 수 있다는 것을 알아야 한다.
방법(300)은 360 단계에서 종료된다.
본 명세서에서는 가상 자원들이 가상 머신들(VMs)이고 가상 자원들이 블레이드 서버들의 프로세서들인 실시예들의 맥락 안에서 주로 도시되고 기술되지만, 가상 자원 할당 능력은 다른 다양한 타입의 가상 자원들의 할당을 결정하고/거나 다른 다양한 타입의 물리적 자원들로의 할당을 결정하는 데 사용될 수 있다는 것을 알아야 한다. 그에 따라, VM들의 할당에 고유한 여기에 사용되는 다양한 용어들은 가상 자원들의 할당에 대한 언급들로서 보다 일반적으로 읽혀질 수 있다. 예를 들어 VM들 및 VM 할당에 대한 여기에서의 언급들은 각기 가상 자원들 및 가상 자원 할당으로서 보다 일반적으로 읽혀질 수 있다. 예를 들어 여기에서, VM 할당 중에 사용되는 VM 할당 제한들(가령, VM 배치 제한들, VM 통신 제한들, VM 복원 제한들, VM 타입 제한들 등)에 대한 언급들은 가상 자원 할당 중에 사용되는 가상 자원 할당 제한들(가령, 가상 자원 배치 제한들, 가상 자원 통신 제한들, 가상 자원 복원 제한들, 가상 자원 타입 제한들 등)으로서 보다 일반적으로 읽혀질 수 있다. 다른 다양한 VM 고유 용어들 역시 비슷한 방식으로 보다 일반적으로 읽혀질 수 있다는 것을 알아야 한다.
도 6은 본 명세서에 기술된 기능들을 수행하는 데 사용하기 적합한 컴퓨터의 고차 블록도를 도시한다.
도 6에 도시된 바와 같이, 컴퓨터(600)는 프로세서 요소(602)(가령, 중앙 처리 유닛(CPU) 및/또는 다른 적절한 프로세서(들)) 및 메모리(604)(가령, RAM(random access memory), ROM(read only memory) 등)를 포함한다. 컴퓨터(600)는 또한 협력 모듈/프로세스(605) 및/또는 다양한 입출력 장치들(606)(가령, 사용자 입력 장치(키보드, 키패드, 마우스 등과 같은 것), 사용자 출력 장치(디스플레이, 스피커 등과 같은 것), 입력 포트, 출력 포트, 수신기, 송신기 및 저장 장치들(가령, 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브, 컴팩트 디스크 드라이브 등))을 포함할 수 있다.
여기 묘사되고 기술된 기능들은 소프트웨어(가령, 하나 이상의 프로세서들 상의 소프트웨어의 구현을 통해) 및/또는 하드웨어(가령, 범용 컴퓨터, 하나 이상의 ASIC(application specific integrated circuit) 및/또는 어떤 다른 하드웨어 균등물들을 이용)로 구현될 수 있다는 것을 예상할 수 있다.
여기에 도시 및 기술된 기능들은 특수용 컴퓨터를 구현하기 위해 범용 컴퓨터 상에서 실행하기 위한 소프트웨어로(가령, 하나 이상의 프로세서들에 의한 실행을 통해) 구현될 수 있고/있거나 하드웨어로(가령, 범용 컴퓨터, 하나 이상의 ASIC(application specific integrated circuit) 및/또는 어떤 다른 하드웨어 균등물들을 이용하여) 구현될 수 있다.
일 실시예에서, 협력 프로세스(605)는 여기에서 논의된 기능들을 구현하기 위해 메모리(604) 안에 로딩되고 프로세서(602)에 의해 실행될 수 있다. 따라서, 협력 프로세스(605)(관련 데이터 구조들을 포함)는 컴퓨터 판독 가능 저장 매체, 가령 RAM 메모리, 자기 또는 광학 드라이브나 디스켓 등에 저장될 수 있다.
도 6에 도시된 컴퓨터(600)는 일반 구조 및 여기에 기술된 기능 요소들 및/또는 여기에 기술된 기능 요소들의 부분들을 구현하는 데 적합한 기능을 제공한다는 것을 예상할 수 있을 것이다. 예를 들어 컴퓨터(600)는 블레이드 서버(114), CMS(120), NMS(130) 및 CAS(140) 중 하나 이상을 구현하는 데 적합한 일반 구조 및 기능을 제공한다.
여기서 소프트웨어 방법들로서 논의된 단계들 중 일부는 하드웨어 안에서, 이를테면, 다양한 방법의 단계들을 수행하기 위해 프로세서와 공동 작업하는 회로부로서 구현될 수 있음이 예상될 수 있을 것이다. 여기 기술된 기능들/요소들의 일부는 컴퓨터 명령어들이 컴퓨터에 의해 처리될 때, 여기 기술된 방법들 및/또는 기법들이 유발되거나 제공되도록 컴퓨터의 동작을 적응시키는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 본 발명의 방법들을 이끌어내는 명령어들은 고정되거나 탈부착 가능한 매체에 저장되거나, 방송이나 다른 신호 보유 매체에서 데이터 스트림을 통해 전송되거나, 명령어들에 따라 동작하는 컴퓨팅 기기 내 메모리 안에 저장될 수 있다.
다양한 실시예들의 양태들이 청구범위 안에 특정된다. 다양한 실시예들의 그러한 양태 및 다른 양태들이 아래에 번호 매김한 조항들 안에서 특정된다.
1. 프로세서 및 메모리를 포함하고,
프로세서는
가상 자원들에 대한 요청을 수신하고 - 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제한들을 포함함;
클라우드 환경과 관련된 관리 정보를 수신하고;
요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제한들, 및 관리 정보를 이용하여 클라우드 환경 안에 요청된 가상 자원들의 할당을 결정하도록 구성되는 장치.
2. 제1항에서, 가상 자원들은 가상 머신들 및 가상 저장 자원들 중 적어도 하나를 포함하는 장치.
3. 제1항에서, 클라우드 환경은 복수의 데이터센터들을 포함하고, 관리 정보는
클라우드 환경의 데이터센터들 사이의 데이터센터 간 통신과 관련된 네트워크 관리 정보와;
데이터센터들 중 적어도 하나에 대해, 데이터센터와 관련된 관리 정보를 포함하는 클라우드 관리 정보 중 적어도 하나를 포함하는 장치.
4. 제1항에 있어서, 하나 이상의 가상 자원 할당 제한들은 랙마다 할당될 가상 자원들의 최대량, 랙마다 할당될 가상 자원들의 최소 개수, 데이터센터마다 사용될 랙들의 최대 개수, 데이터센터마다 사용될 랙들의 최소 개수, 데이터센터마다 할당될 가상 자원들의 최대량, 데이터센터마다 할당될 가상 자원들의 최소량, 사용될 데이터센터들의 최대 개수, 및 사용될 데이터센터들의 최소 개수 중 적어도 하나를 포함하는 장치.
5. 제1항에 있어서, 클라우드 환경 내 요청된 가상 자원들의 할당을 결정하는 것은
클라우드 환경 안에서 이용 가능한 데이터센터들의 집합으로부터, 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 것과;
가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 것과;
가상 자원들이 할당될 데이터센터들의 집합의 적어도 하나의 데이터센터에 대해, 데이터센터로 할당될 가상 자원들을 호스팅하기 위해 데이터센터의 물리적 자원들을 선택하는 것과;
가상 자원들 중 적어도 하나에 대해, 가상 자원이 할당될 데이터센터의 물리적 자원들로의 가상 자원들의 할당을 결정하는 것을 포함하는 장치.
6. 제5항에 있어서, 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 것은
클라우드 환경을 그래프로서 나타내는 것과 - 그래프는 이용 가능한 데이터센터들을 나타내고 그와 관련된 복수의 중량을 가지는 복수의 정점들을 포함하고, 그래프는 이용 가능한 데이터센터들 사이의 복수의 통신 경로들을 나타내고 그와 관련된 복수의 길이를 가지는 복수의 간선들을 포함함 -;
적어도 요구된 가상 자원들의 양에 해당하는 중량들의 합 및 최소 지름을 가지는 그래프의 서브 그래프를 결정하는 것과;
서브 그래프로부터 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 것을 포함하는 장치.
7. 제5항에 있어서, 가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 것은
가상 자원들에 대한 요청을 그래프로서 나타내는 것과 - 그래프는 가상 자원들을 나타내는 복수의 정점들 및 복수의 간선들을 포함하고, 복수의 간선들은 간선에 의해 연결되는 가상 자원들 사이의 상대적 대역폭을 나타냄 -;
그래프를 복수의 구간들로 분할함으로써 분할된 그래프를 형성하는 것과 - 분할된 그래프의 각각의 구간은 동일한 개별 데이터센터 안에 스케줄링되어야 하는 가상 자원들의 개별 집합을 나타내고, 분할된 그래프의 각각의 구간은 개별 데이터센터 안에서 이용 가능한 가상 자원들의 양으로 상한되는 그와 관련된 사이즈를 가짐 -;
분할된 그래프를 이용하여 가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 것을 포함하는 장치.
8. 제5항에 있어서, 데이터센터로 할당될 가상 자원들을 호스팅하기 위한 데이터센터의 물리적 자원들을 선택하는 것은
데이터센터를 트리 토폴로지로서 나타내는 것과 - 트리 토폴로지는 데이터센터의 자원들을 나타내는 복수의 노드들을 포함하고, 트리 토폴로지의 노드들 각각은 노드에서 루팅되는 가상 자원들의 양을 나타내는 그와 관련된 중량을 가지고, 트리 토폴로지의 노드들 각각은 트리 토폴로지 안에서의 노드의 높이를 나타내는 그와 관련된 높이를 가지며, 복수의 노드들은 데이터센터의 각기 복수의 랙들, 블레이드 서버들 또는 프로세서들을 나타내는 복수의 리프 노드들을 포함함 -;
리프 노드들이 적어도 데이터센터에 할당될 가상 자원들의 양에 해당하는 누적 중량 및 최소 높이를 가지는 트리 토폴로지의 서브 트리를 결정하는 것과;
서브트리로부터 데이터센터로 할당될 가상 자원들을 호스팅하기 위한 데이터센터의 물리적 자원들을 결정하는 것을 포함하는 장치.
9. 제5항에 있어서, 가상 자원이 할당될 데이터센터의 물리적 자원들로의 가상 자원들의 할당을 결정하는 것은
가상 자원이 할당될 데이터센터의 랙을 선택하는 것과;
가상 자원이 할당될 데이터센터의 선택된 랙의 블레이드 서버를 선택하는 것과;
가상 자원이 할당될 데이터센터의 선택된 랙의 선택된 블레이드 서버의 중앙 처리 유닛(CPU)을 선택하는 것을 포함하는 장치.
10. 제1항에 있어서, 프로세서는
클라우드 환경 내 요청된 가상 자원들의 결정된 할당에 기반하여, 클라우드 환경 내 가상 자원들의 프로비저닝을 개시하도록 더 구성되는 장치.
11. 컴퓨터에 의해 실행될 때, 컴퓨터가 어떤 방법을 수행하도록 하는 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체에 있어서, 방법은
가상 자원들에 대한 요청을 수신하되, 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제한들을 포함하는 단계와;
클라우드 환경과 관련된 관리 정보를 수신하는 단계와;
요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제한들, 및 관리 정보를 이용하여 클라우드 환경 안에 요청된 가상 자원들의 할당을 결정하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
12. 제11항에서, 가상 자원들은 가상 머신들 및 가상 저장 자원들 중 적어도 하나를 포함하는 컴퓨터 판독 가능 저장 매체.
13. 제11항에서, 클라우드 환경은 복수의 데이터센터들을 포함하고,
관리 정보는
클라우드 환경의 데이터센터들 사이의 데이터센터 간 통신과 관련된 네트워크 관리 정보와;
데이터센터들 중 적어도 하나에 대해, 데이터센터와 관련된 관리 정보를 포함하는 클라우드 관리 정보 중 적어도 하나를 포함하는 컴퓨터 판독 가능 저장 매체.
14. 제11항에 있어서, 하나 이상의 가상 자원 할당 제한들은 랙마다 할당될 가상 자원들의 최대량, 랙마다 할당될 가상 자원들의 최소 개수, 데이터센터마다 사용될 랙들의 최대 개수, 데이터센터마다 사용될 랙들의 최소 개수, 데이터센터마다 할당될 가상 자원들의 최대량, 데이터센터마다 할당될 가상 자원들의 최소량, 사용될 데이터센터들의 최대 개수, 및 사용될 데이터센터들의 최소 개수 중 적어도 하나를 포함하는 컴퓨터 판독 가능 저장 매체.
15. 제11항에 있어서, 클라우드 환경 내 요청된 가상 자원들의 할당을 결정하는 단계는
클라우드 환경 안에서 이용 가능한 데이터센터들의 집합으로부터, 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 단계와;
가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 단계와;
가상 자원들이 할당될 데이터센터들의 집합의 적어도 하나의 데이터센터에 대해, 데이터센터로 할당될 가상 자원들을 호스팅하기 위해 데이터센터의 물리적 자원들을 선택하는 단계와;
가상 자원들 중 적어도 하나에 대해, 가상 자원이 할당될 데이터센터의 물리적 자원들로의 가상 자원들의 할당을 결정하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
16. 제15항에 있어서, 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 단계는
클라우드 환경을 그래프로서 나타내되, 그래프는 이용 가능한 데이터센터들을 나타내고 그와 관련된 복수의 중량을 가지는 복수의 정점들을 포함하고, 그래프는 이용 가능한 데이터센터들 사이의 복수의 통신 경로들을 나타내고 그와 관련된 복수의 길이를 가지는 복수의 간선들을 포함하는 단계와;
적어도 요구된 가상 자원들의 양에 해당하는 중량들의 합 및 최소 지름을 가지는 그래프의 서브 그래프를 결정하는 단계와;
서브 그래프로부터 가상 자원들이 할당될 데이터센터들의 집합을 결정하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
17. 제15항에 있어서, 가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 단계는
가상 자원들에 대한 요청을 그래프로서 나타내는 단계와 - 그래프는 가상 자원들을 나타내는 복수의 정점들 및 복수의 간선들을 포함하고, 복수의 간선들은 간선에 의해 연결되는 가상 자원들 사이의 상대적 대역폭을 나타냄 -;
그래프를 복수의 구간들로 분할함으로써 분할된 그래프를 형성하는 단계와 - 분할된 그래프의 각각의 구간은 동일한 개별 데이터센터 안에 스케줄링되어야 하는 가상 자원들의 개별 집합을 나타내고, 분할된 그래프의 각각의 구간은 개별 데이터센터 안에서 이용 가능한 가상 자원들의 양으로 상한되는 그와 관련된 사이즈를 가짐 -;
분할된 그래프를 이용하여 가상 자원들이 할당될 데이터센터들의 집합으로의 가상 자원들의 할당을 결정하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
18. 제15항에 있어서, 데이터센터로 할당될 가상 자원들을 호스팅하기 위한 데이터센터의 물리적 자원들을 선택하는 단계는
데이터센터를 트리 토폴로지로서 나타내는 단계와 - 트리 토폴로지는 데이터센터의 자원들을 나타내는 복수의 노드들을 포함하고, 트리 토폴로지의 노드들 각각은 노드에서 루팅되는 가상 자원들의 양을 나타내는 그와 관련된 중량을 가지고, 트리 토폴로지의 노드들 각각은 트리 토폴로지 안에서의 노드의 높이를 나타내는 그와 관련된 높이를 가지며, 복수의 노드들은 데이터센터의 각기 복수의 랙들, 블레이드 서버들 또는 프로세서들을 나타내는 복수의 리프 노드들을 포함함 -;
리프 노드들이 적어도 데이터센터에 할당될 가상 자원들의 양에 해당하는 누적 중량 및 최소 높이를 가지는 트리 토폴로지의 서브 트리를 결정하는 단계와;
서브트리로부터 데이터센터로 할당될 가상 자원들을 호스팅하기 위한 데이터센터의 물리적 자원들을 결정하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
19. 제15항에 있어서, 가상 자원이 할당될 데이터센터의 물리적 자원들로의 가상 자원들의 할당을 결정하는 단계는
가상 자원이 할당될 데이터센터의 랙을 선택하는 단계와;
가상 자원이 할당될 데이터센터의 선택된 랙의 블레이드 서버를 선택하는 단계와;
가상 자원이 할당될 데이터센터의 선택된 랙의 선택된 블레이드 서버의 중앙 처리 유닛(CPU)을 선택하는 단계를 포함하는 컴퓨터 판독 가능 저장 매체.
20. 제11항에 있어서, 방법은
클라우드 환경 내 요청된 가상 자원들의 결정된 할당에 기반하여, 클라우드 환경 내 가상 자원들의 프로비저닝을 개시하는 단계를 더 포함하는 컴퓨터 판독 가능 저장 매체.
21. 방법으로서,
가상 자원들에 대한 요청을 수신하는 단계와 - 요청은 요청된 가상 자원들의 양 및 하나 이상의 가상 자원 할당 제한들을 포함함 -;
클라우드 환경과 관련된 관리 정보를 수신하는 단계와;
요청된 가상 자원들의 양, 하나 이상의 가상 자원 할당 제한들, 및 관리 정보를 이용하여 클라우드 환경 안에 요청된 가상 자원들의 할당을 결정하는 단계를 포함하는 방법.
본 발명의 가르침들을 포함하는 다양한 실시예들이 여기서 상세히 도시되고 기술되었지만, 당업자는 이 가르침들이 여전히 포함되는 다른 많은 변형된 실시예들을 쉽게 고안할 수 있을 것이다.

Claims (10)

  1. 장치로서
    프로세서 및 메모리를 포함하되,
    상기 프로세서는
    가상 자원에 대한 요청을 수신하고 - 상기 요청은 요청된 가상 자원의 양 및 하나 이상의 가상 자원 할당 제한을 포함함 -,
    클라우드 환경과 관련된 관리 정보를 수신하고,
    상기 요청된 가상 자원의 양, 상기 하나 이상의 가상 자원 할당 제한, 및 상기 관리 정보를 이용하여 상기 클라우드 환경 내 상기 요청된 가상 자원의 할당을 결정하도록 구성되는
    장치.
  2. 제 1 항에서,
    상기 클라우드 환경은 복수의 데이터센터를 포함하고,
    상기 관리 정보는
    상기 클라우드 환경의 데이터센터 사이의 데이터센터 간 통신과 관련된 네트워크 관리 정보와,
    상기 데이터센터 중 적어도 하나에 대해, 상기 데이터센터와 관련된 관리 정보를 포함하는 클라우드 관리 정보 중 적어도 하나를 포함하는
    장치.
  3. 제 1 항에 있어서,
    상기 하나 이상의 가상 자원 할당 제한은, 랙마다 할당될 가상 자원의 최대량, 랙마다 할당될 가상 자원의 최소 개수, 데이터센터마다 사용될 랙의 최대 개수, 데이터센터마다 사용될 랙의 최소 개수, 데이터센터마다 할당될 가상 자원의 최대량, 데이터센터마다 할당될 가상 자원의 최소량, 사용될 데이터센터의 최대 개수, 및 사용될 데이터센터의 최소 개수 중 적어도 하나를 포함하는
    장치.
  4. 제 1 항에 있어서,
    상기 클라우드 환경 내 상기 요청된 가상 자원의 할당을 결정하는 것은,
    상기 클라우드 환경 안에서 이용 가능한 데이터센터의 집합으로부터, 상기 가상 자원이 할당될 데이터센터의 집합을 결정하는 것과,
    상기 가상 자원이 할당될 상기 데이터센터의 집합으로의 상기 가상 자원의 할당을 결정하는 것과,
    상기 가상 자원이 할당될 상기 데이터센터의 집합의 적어도 하나의 데이터센터에 대해, 상기 데이터센터로 할당될 상기 가상 자원을 호스팅하기 위해 상기 데이터센터의 물리적 자원을 선택하는 것과,
    상기 가상 자원 중 적어도 하나에 대해, 상기 가상 자원이 할당될 상기 데이터센터의 상기 물리적 자원으로의 상기 가상 자원의 할당을 결정하는 것을 포함하는
    장치.
  5. 제 4 항에 있어서,
    상기 가상 자원이 할당될 상기 데이터센터의 집합을 결정하는 것은,
    상기 클라우드 환경을 그래프로서 나타내는 것과 - 상기 그래프는 상기 이용 가능한 데이터센터를 나타내고 그와 관련된 복수의 중량을 가지는 복수의 정점을 포함하고, 상기 그래프는 상기 이용 가능한 데이터센터 사이의 복수의 통신 경로를 나타내고 그와 관련된 복수의 길이를 가지는 복수의 간선(edge)을 포함함 -,
    적어도 요구된 상기 가상 자원의 양에 해당하는 중량의 합 및 최소 지름을 가지는 상기 그래프의 서브 그래프를 결정하는 것과,
    상기 서브 그래프로부터 상기 가상 자원이 할당될 상기 데이터센터의 집합을 결정하는 것을 포함하는
    장치.
  6. 제 4 항에 있어서,
    상기 가상 자원이 할당될 상기 데이터센터의 집합으로의 상기 가상 자원의 할당을 결정하는 것은,
    가상 자원에 대한 상기 요청을 그래프로서 나타내는 것과 - 상기 그래프는 상기 가상 자원들을 나타내는 복수의 정점들 및 복수의 간선들을 포함하고, 상기 복수의 간선들은 상기 간선에 의해 연결되는 상기 가상 자원들 사이의 상대적 대역폭을 나타냄 -,
    상기 그래프를 복수의 구간으로 분할함으로써 분할된 그래프를 형성하는 것 - 상기 분할된 그래프의 각각의 구간은 동일한 개별 데이터센터 안에 스케줄링되어야 하는 상기 가상 자원의 개별 집합을 나타내고, 상기 분할된 그래프의 각각의 구간은 상기 개별 데이터센터 안에서 이용 가능한 가상 자원의 양으로 상한되는 관련된 사이즈를 가짐 -,
    상기 분할된 그래프를 이용하여 상기 가상 자원이 할당될 상기 데이터센터의 집합으로의 상기 가상 자원의 할당을 결정하는 것을 포함하는
    장치.
  7. 제 4 항에 있어서,
    상기 데이터센터로 할당될 상기 가상 자원을 호스팅하기 위한 상기 데이터센터의 물리적 자원을 선택하는 것은,
    상기 데이터센터를 트리 토폴로지로서 나타내는 것 - 상기 트리 토폴로지는 상기 데이터센터의 자원을 나타내는 복수의 노드를 포함하고, 상기 트리 토폴로지의 상기 노드의 각각은 상기 노드에서 루팅되는 가상 자원의 양을 나타내는 관련된 중량을 가지고, 상기 트리 토폴로지의 상기 노드의 각각은 상기 트리 토폴로지 안에서의 상기 노드의 높이를 나타내는 관련된 높이를 가지며, 상기 복수의 노드는 상기 데이터센터의 각기 복수의 랙, 블레이드 서버 또는 프로세서를 나타내는 복수의 리프 노드를 포함함 - 과,
    리프 노드가 적어도 상기 데이터센터에 할당될 상기 가상 자원의 양에 해당하는 누적 중량 및 최소 높이를 가지는 상기 트리 토폴로지의 서브 트리를 결정하는 것과,
    상기 서브트리로부터 상기 데이터센터로 할당될 상기 가상 자원을 호스팅하기 위한 상기 데이터센터의 물리적 자원을 결정하는 것을 포함하는
    장치.
  8. 제 4 항에 있어서,
    상기 가상 자원이 할당될 상기 데이터센터의 물리적 자원으로의 상기 가상 자원의 할당을 결정하는 것은,
    상기 가상 자원이 할당될 상기 데이터센터의 랙을 선택하는 것과,
    상기 가상 자원이 할당될 상기 데이터센터의 상기 선택된 랙의 블레이드 서버를 선택하는 것과,
    상기 가상 자원이 할당될 상기 데이터센터의 상기 선택된 랙의 상기 선택된 블레이드 서버의 중앙 처리 유닛(CPU)을 선택하는 것을 포함하는
    장치.
  9. 컴퓨터에 의해 실행될 때, 상기 컴퓨터가 방법을 수행하도록 하는 명령어를 저장하는 컴퓨터 판독 가능 저장 매체로서,
    상기 방법은
    가상 자원에 대한 요청을 수신하는 단계 - 상기 요청은 요청된 가상 자원의 양 및 하나 이상의 가상 자원 할당 제한을 포함함 - 와,
    클라우드 환경과 관련된 관리 정보를 수신하는 단계와,
    상기 요청된 가상 자원의 양, 상기 하나 이상의 가상 자원 할당 제한, 및 상기 관리 정보를 이용하여 상기 클라우드 환경 내 상기 요청된 가상 자원의 할당을 결정하는 단계를 포함하는
    컴퓨터 판독 가능 저장 매체.
  10. 프로세서 및 메모리를 이용하여,
    가상 자원에 대한 요청을 수신하는 것 - 상기 요청은 요청된 가상 자원의 양 및 하나 이상의 가상 자원 할당 제한을 포함함 - 과,
    클라우드 환경과 관련된 관리 정보를 수신하는 것과,
    상기 요청된 가상 자원의 양, 상기 하나 이상의 가상 자원 할당 제한, 및 상기 관리 정보를 이용하여 상기 클라우드 환경 내 상기 요청된 가상 자원의 할당을 결정하는 것을 포함하는
    방법.
KR1020147002115A 2011-07-27 2012-06-18 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치 KR20140027518A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/191,599 US9317336B2 (en) 2011-07-27 2011-07-27 Method and apparatus for assignment of virtual resources within a cloud environment
US13/191,599 2011-07-27
PCT/US2012/042864 WO2013015905A1 (en) 2011-07-27 2012-06-18 Method and apparatus for assignment of virtual resources within a cloud environment

Publications (1)

Publication Number Publication Date
KR20140027518A true KR20140027518A (ko) 2014-03-06

Family

ID=46513831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002115A KR20140027518A (ko) 2011-07-27 2012-06-18 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US9317336B2 (ko)
EP (1) EP2737401A1 (ko)
JP (1) JP2014522036A (ko)
KR (1) KR20140027518A (ko)
CN (1) CN103797463A (ko)
WO (1) WO2013015905A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160111150A (ko) * 2015-03-16 2016-09-26 한국전자통신연구원 분산 클라우드 센터를 통합 관리하기 위한 장치
KR20190126406A (ko) * 2017-04-18 2019-11-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 자원 요청을 처리하는 방법 및 장치
US10904107B2 (en) 2017-11-10 2021-01-26 Bespin Global Inc. Service resource management system and method thereof
KR20220041575A (ko) * 2020-09-25 2022-04-01 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2568672A1 (en) * 2011-08-24 2013-03-13 Alcatel Lucent Method for managing network resources within a plurality of datacenters
WO2013028193A1 (en) * 2011-08-25 2013-02-28 Empire Technology Development, Llc Quality of service aware captive aggregation with true datacenter testing
US9722866B1 (en) * 2011-09-23 2017-08-01 Amazon Technologies, Inc. Resource allocation to reduce correlated failures
US10387201B2 (en) * 2012-06-26 2019-08-20 Vmware, Inc. Storage performance-based virtual machine placement
US8930416B2 (en) 2012-08-13 2015-01-06 Hulu, LLC Job dispatcher of transcoding jobs for media programs
US9298512B2 (en) * 2012-08-25 2016-03-29 Vmware, Inc. Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
FR2996018A1 (fr) * 2012-09-27 2014-03-28 France Telecom Dispositif et procede de gestion de l'acces a un ensemble de ressources informatiques et reseaux mis a la disposition d'une entite par un systeme informatique en nuage
US8938541B2 (en) 2012-10-29 2015-01-20 Ericsson Ab Method and system to allocate bandwidth in cloud computing networks
US20140201642A1 (en) * 2013-01-12 2014-07-17 Lyatiss, Inc. User interface for visualizing resource performance and managing resources in cloud or distributed systems
US9639502B1 (en) * 2013-01-16 2017-05-02 Veritas Technologies Llc Techniques for managing computing resources
US20160006617A1 (en) * 2013-03-07 2016-01-07 Hewlett-Packard Development Company, L.P. Cloud application bandwidth modeling
US9065734B2 (en) 2013-03-08 2015-06-23 Telefonaktiebolaget L M Ericsson (Publ) Network bandwidth allocation in multi-tenancy cloud computing networks
US20140282578A1 (en) * 2013-03-14 2014-09-18 Justin S. Teller Locality aware work stealing runtime scheduler
US9292349B2 (en) * 2013-03-15 2016-03-22 International Business Machines Corporation Detecting deployment conflicts in heterogenous environments
US9298511B2 (en) * 2013-03-15 2016-03-29 International Business Machines Corporation Resolving deployment conflicts in heterogeneous environments
US9621425B2 (en) 2013-03-27 2017-04-11 Telefonaktiebolaget L M Ericsson Method and system to allocate bandwidth for heterogeneous bandwidth request in cloud computing networks
US20140317616A1 (en) * 2013-04-23 2014-10-23 Thomas P. Chu Cloud computing resource management
KR20150011250A (ko) * 2013-07-22 2015-01-30 한국전자통신연구원 클라우드 센터 관리 방법 및 그 시스템
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
EP2879049A4 (en) * 2013-10-23 2015-07-15 Huawei Tech Co Ltd METHOD, SYSTEM AND DEVICE FOR PRODUCING A VIRTUAL MACHINE
US9471391B1 (en) 2013-11-20 2016-10-18 Google Inc. Aggregating resource requests
US20150163157A1 (en) * 2013-12-09 2015-06-11 Alcatel-Lucent Usa Inc. Allocation and migration of cloud resources in a distributed cloud system
US9866496B2 (en) * 2013-12-11 2018-01-09 Citrix Systems, Inc. Methods and systems for allocating and de-allocating delivery groups across multiple server farms
WO2015103560A2 (en) * 2014-01-06 2015-07-09 Siaras,Inc. Architecture and method for cloud provider selection and projection
US10079744B2 (en) 2014-01-31 2018-09-18 Hewlett Packard Enterprise Development Lp Identifying a component within an application executed in a network
EP3126996A4 (en) * 2014-04-03 2017-12-27 Strato Scale Ltd. Virtual-machine placement based on information from multiple data centers
US9385934B2 (en) * 2014-04-08 2016-07-05 International Business Machines Corporation Dynamic network monitoring
KR101884549B1 (ko) * 2014-06-06 2018-08-29 인터내셔널 비지네스 머신즈 코포레이션 하드웨어 멀티스레딩 파라미터를 사용한 가상 머신을 위한 호스트의 선택
WO2015186088A1 (en) * 2014-06-06 2015-12-10 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
US9384027B2 (en) 2014-06-06 2016-07-05 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
US9400672B2 (en) 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
US9304805B2 (en) 2014-06-06 2016-04-05 Interinational Business Machines Corporation Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors
US9367384B2 (en) 2014-06-12 2016-06-14 International Business Machines Corporation Admission control based on the end-to-end availability
US9680920B2 (en) 2014-09-08 2017-06-13 International Business Machines Corporation Anticipatory resource allocation/activation and lazy de-allocation/deactivation
US9405581B2 (en) 2014-09-08 2016-08-02 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
US9367344B2 (en) 2014-10-08 2016-06-14 Cisco Technology, Inc. Optimized assignments and/or generation virtual machine for reducer tasks
US9946832B2 (en) * 2014-11-13 2018-04-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Optimized placement design of network and infrastructure components
US9747136B2 (en) * 2014-12-09 2017-08-29 Vmware, Inc. Methods and systems that allocate cost of cluster resources in virtual data centers
FR3030962B1 (fr) * 2014-12-19 2018-04-13 Airbus Operations Systeme de communication d'un aeronef
US9524328B2 (en) 2014-12-28 2016-12-20 Strato Scale Ltd. Recovery synchronization in a distributed storage system
JPWO2016121005A1 (ja) * 2015-01-27 2017-09-21 株式会社日立製作所 管理計算機および計算機システムの管理方法
EP3096227A1 (en) * 2015-05-19 2016-11-23 Institut Mines-Telecom / Telecom Sudparis Resource allocation method in distributed clouds
US9846589B2 (en) 2015-06-04 2017-12-19 Cisco Technology, Inc. Virtual machine placement optimization with generalized organizational scenarios
US9894165B2 (en) 2015-09-16 2018-02-13 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for decentralized service placement in a resource pool
US9794370B2 (en) * 2015-11-09 2017-10-17 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for distributed network-aware service placement
CN105490959B (zh) * 2015-12-15 2019-04-05 上海交通大学 基于拥塞规避的非均匀带宽虚拟数据中心嵌入实现方法
CN105590321B (zh) * 2015-12-24 2018-12-28 华中科技大学 一种基于块的子图构建及分布式图处理方法
US10187290B2 (en) * 2016-03-24 2019-01-22 Juniper Networks, Inc. Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures
US10474374B2 (en) 2016-05-24 2019-11-12 Samsung Electronics Co., Ltd. Method and apparatus for storage device latency/bandwidth self monitoring
US10437486B2 (en) 2016-05-24 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for tenant-aware storage sharing platform
US11194517B2 (en) 2016-05-24 2021-12-07 Samsung Electronics Co., Ltd. Method and apparatus for storage device latency/bandwidth self monitoring
US10439881B2 (en) 2016-05-24 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for predicting storage distance
CN106095564A (zh) * 2016-05-26 2016-11-09 浪潮(北京)电子信息产业有限公司 一种资源分配方法及系统
US10305745B2 (en) * 2016-06-20 2019-05-28 Vmware, Inc. Method and system for creating and managing aggregation service hierarchies
CN109863517B (zh) 2016-10-05 2023-08-01 莫克斯网络有限责任公司 基于rfid的机架清单管理系统
US10186067B2 (en) * 2016-10-25 2019-01-22 Aspeed Technology Inc. Method and apparatus for generating panoramic image with rotation, translation and warping process
US11150950B2 (en) * 2016-12-01 2021-10-19 Vmware, Inc. Methods and apparatus to manage workload domains in virtual server racks
US10476748B2 (en) 2017-03-01 2019-11-12 At&T Intellectual Property I, L.P. Managing physical resources of an application
US20180262563A1 (en) * 2017-03-07 2018-09-13 Microsoft Technology Licensing, Llc Availability management operations in a distributed computing system
US10225140B2 (en) 2017-04-26 2019-03-05 Oracle International Corporation Portable instance provisioning framework for cloud services
US10382291B2 (en) 2017-04-26 2019-08-13 Oracle International Corporation Provisioning framework for binding related cloud services
CN109032751B (zh) * 2017-06-12 2022-02-11 华为技术有限公司 一种虚拟机部署方法及omm虚拟机
US20190068466A1 (en) * 2017-08-30 2019-02-28 Intel Corporation Technologies for auto-discovery of fault domains
US10938771B2 (en) * 2017-12-23 2021-03-02 Dell Products, L.P. Determining physical locations of devices in a data center
US10791168B1 (en) 2018-05-21 2020-09-29 Rafay Systems, Inc. Traffic aware network workload management system
CN108881506A (zh) * 2018-06-04 2018-11-23 华为技术有限公司 一种基于多可用分区az的域名解析方法及装置
US11329886B2 (en) 2018-09-28 2022-05-10 Arista Networks, Inc. Automatic classification of network devices in a network
US11328462B1 (en) * 2018-11-30 2022-05-10 United Services Automobile Association (Usaa) Visualization tool for server management and method of use
CN109637278A (zh) * 2019-01-03 2019-04-16 青岛萨纳斯智能科技股份有限公司 大数据教学实验实训平台
US11102087B2 (en) * 2019-04-05 2021-08-24 At&T Intellectual Property I, L.P. Service deployment for geo-distributed edge clouds
CN110287025A (zh) * 2019-06-19 2019-09-27 深圳前海微众银行股份有限公司 一种资源分配方法、装置及设备
JP7177106B2 (ja) * 2020-01-31 2022-11-22 Kddi株式会社 連携型仮想ネットワーク割当方法および装置
US20210349764A1 (en) * 2020-05-05 2021-11-11 Acronis International Gmbh Systems and methods for optimized execution of program operations on cloud-based services
CN113835823A (zh) * 2020-06-23 2021-12-24 中兴通讯股份有限公司 资源调度方法和装置、电子设备、计算机可读存储介质
US11212171B1 (en) 2020-06-30 2021-12-28 Oracle International Corporation Customer self-service cloud application provisioning
US11665068B2 (en) * 2020-08-27 2023-05-30 Oracle International Corporation Techniques for allocating capacity in cloud-computing environments
CN112115367B (zh) * 2020-09-28 2024-04-02 北京百度网讯科技有限公司 基于融合关系网络的信息推荐方法、装置、设备和介质
CN112600708A (zh) * 2020-12-14 2021-04-02 国网河南省电力公司信息通信公司 一种网络切片下时延敏感的虚拟网络资源分配方法
US11936757B1 (en) 2022-04-29 2024-03-19 Rafay Systems, Inc. Pull-based on-demand application deployment to edge node
US20230401098A1 (en) * 2022-06-08 2023-12-14 International Business Machines Corporation Provisional resource scheduling in a cloud computing environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291424B2 (en) * 2007-11-27 2012-10-16 International Business Machines Corporation Method and system of managing resources for on-demand computing
US10025627B2 (en) * 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
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
US9207993B2 (en) * 2010-05-13 2015-12-08 Microsoft Technology Licensing, Llc Dynamic application placement based on cost and availability of energy in datacenters
US20120317249A1 (en) * 2011-06-13 2012-12-13 Salsburg Michael A Methods and systems for extreme capacity management

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160111150A (ko) * 2015-03-16 2016-09-26 한국전자통신연구원 분산 클라우드 센터를 통합 관리하기 위한 장치
KR20190126406A (ko) * 2017-04-18 2019-11-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 자원 요청을 처리하는 방법 및 장치
US10904107B2 (en) 2017-11-10 2021-01-26 Bespin Global Inc. Service resource management system and method thereof
KR20220041575A (ko) * 2020-09-25 2022-04-01 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템

Also Published As

Publication number Publication date
JP2014522036A (ja) 2014-08-28
US20130031559A1 (en) 2013-01-31
US9317336B2 (en) 2016-04-19
WO2013015905A1 (en) 2013-01-31
CN103797463A (zh) 2014-05-14
EP2737401A1 (en) 2014-06-04

Similar Documents

Publication Publication Date Title
KR20140027518A (ko) 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치
US11704144B2 (en) Creating virtual machine groups based on request
CN112187545B (zh) 一种网络切片的部署方法及装置
JP6751780B2 (ja) アクセラレーション・リソース処理方法及び装置
Alicherry et al. Network aware resource allocation in distributed clouds
US9999030B2 (en) Resource provisioning method
US8478878B2 (en) Placement of virtual machines based on server cost and network cost
US9465641B2 (en) Selecting cloud computing resource based on fault tolerance and network efficiency
CN110463140B (zh) 计算机数据中心的网络服务水平协议
US20150341223A1 (en) Automatic placement of clients in a distributed computer system based on at least physical network topology information
JP6470426B2 (ja) リソース割当装置及びリソース割当方法
US10938688B2 (en) Network costs for hyper-converged infrastructures
CN115176227A (zh) 分布式存储系统中的主数据放置
Di et al. Efficient online virtual network mapping using resource evaluation
US20210409343A1 (en) Network controller
CN113055448B (zh) 一种元数据管理方法及装置
JP6669807B2 (ja) 計算機システムおよび計算機
KR101787448B1 (ko) 단일 데이터 센터 클라우드 컴퓨팅 환경에서의 확률적 가상 네트워크 요청 방법, 이를 이용한 요청 수신 장치, 이를 이용한 자원 할당 방법, 자원 할당 장치, 이를 수행하는 프로그램 및 기록매체
Nguyen et al. Location-aware dynamic network provisioning
Paulraj et al. Route aware virtual machine migration in cloud datacenter
Jin et al. Service entity network virtualization architecture and model
Marcon et al. IoNCloud: exploring application affinity to improve utilization and predictability in datacenters
Bairley et al. An application aware approach to scalable online placement of data center workloads
CN111885140A (zh) 一种基于Flannel网络的云应用混布方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application