KR20090018905A - 작업 부하 특징화에 기초한 호스트에의 가상 머신 전개를 위한 방법 - Google Patents

작업 부하 특징화에 기초한 호스트에의 가상 머신 전개를 위한 방법 Download PDF

Info

Publication number
KR20090018905A
KR20090018905A KR1020087027627A KR20087027627A KR20090018905A KR 20090018905 A KR20090018905 A KR 20090018905A KR 1020087027627 A KR1020087027627 A KR 1020087027627A KR 20087027627 A KR20087027627 A KR 20087027627A KR 20090018905 A KR20090018905 A KR 20090018905A
Authority
KR
South Korea
Prior art keywords
candidate
host
deployed
resources
resource
Prior art date
Application number
KR1020087027627A
Other languages
English (en)
Other versions
KR101432838B1 (ko
Inventor
브라이언 엠. 왈럿
르네 안토니오 베가
로버트 깁슨
로버트 엠. 프라이스
윌리암 엘. 샤이델
파벨 에이. 다우어노브
존 모르간 오슬레이크
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20090018905A publication Critical patent/KR20090018905A/ko
Application granted granted Critical
Publication of KR101432838B1 publication Critical patent/KR101432838B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

후보 호스트에 후보 VM을 전개할지의 여부를, 상기 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 VM에 의해 요구되는 리소스들을 고려하여 판정하기 위해, 상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅(sub-rating)이 계산되고, 상기 리소스에 대한 서브레이팅은 상기 후보 VM이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응한다. 그 후, 상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 VM을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅이 계산된다. 상기 후보 호스트에 대한 레이팅은 그의 레이팅에 기초하여 상기 후보 호스트에 상기 후보 VM을 전개할지를 판정하는 선택기에 제공된다.
가상 머신(VM), 후보 호스트, 서브레이팅, 레이팅

Description

작업 부하 특징화에 기초한 호스트에의 가상 머신 전개를 위한 방법{DEPLOYING VIRTUAL MACHINE TO HOST BASED ON WORKLOAD CHARACTERIZATIONS}
본 발명은 가상 머신의 작업 부하의 특징화(characterization)뿐만 아니라 복수의 호스트들 각각의 작업 부하의 특징화에 기초하여 가상 머신을 위한 호스트를 선택하는 것에 관한 것이다. 유사하게, 본 발명은 물리 머신의 작업 부하의 특징화뿐만 아니라 전형적인 호스트의 작업 부하의 특징화에 기초하여, 해당 물리 머신이 가상 머신으로서 가상화되어야 하는지 또는 가상화될 수 있는지를 판정하는 것에 관한 것이다.
이해되는 바와 같이, 가상 머신('VM')은 하드웨어 시스템을 에뮬레이트할 목적으로 컴퓨팅 장치 등(즉, '호스트')에서 동작하는 소프트웨어 구성(software construct) 등이다. 반드시 그런 것은 아니지만, 전형적으로, VM은 애플리케이션 등이고, 사용 애플리케이션 등을 인스턴스화(instantiate)하는 한편 그와 동시에 그러한 사용 애플리케이션을 그러한 호스트 장치로부터 또는 그러한 호스트 상의 다른 애플리케이션들로부터 분리시키기 위해 호스트 상에서 이용될 수 있다. 하나의 전형적인 상황에서, 호스트는 복수의 전개된 VM들을 수용할 수 있고, 각 VM은 호스트로부터 이용 가능한 리소스들에 의하여 어떤 소정의 기능을 수행한다. 특 히, 각 VM은, 비록 가상의 형태이기는 하지만, 어느 점으로 보아도 컴퓨팅 머신이고, 따라서 그의 사용 애플리케이션과 외부 세계 모두에게는 그렇게 보여진다.
반드시 그런 것은 아니지만, 전형적으로, 호스트는 그의 각 VM을 개별 파티션에 전개한다. 그러한 호스트는 감독(overseer) 애플리케이션 또는 '하이퍼바이저(hypervisor)'로서 작용하는 VM 모니터 등을 갖는 가상화 층을 포함할 수 있고, 그 가상화 층은 호스트의 각 VM의 감독상의 국면들을 감독하고 및/또는 다른 식으로 관리하고, 각 VM과 외부 세계 사이의 가능한 링크로서 작용한다.
VM의 하나의 특징은 가상 구성으로서의 VM은 마음대로 정지 및 재기동될 수 있고, 또한 VM은 정지되는 즉시 파일 등의 방식으로 저장 및 검색될 수 있다는 것이다. 특히, 특정 컴퓨팅 장치 상에서 인스턴스화된 VM은 깔끔하게 패키징될 수 있는 특이한 소프트웨어 구성인데, 왜냐하면 그 소프트웨어 구성은 VM에 관한 운영 데이터 및 상태 정보를 포함한, 그 VM에 관한 모든 데이터를 포함하기 때문이다. 그 결과, 제1 호스트 상의 VM은 제1 호스트에서 그 VM을 정지하고, 그 정지된 VM을 제2 호스트에 이동시키고, 그 이동된 VM을 제2 호스트에서 재기동하는 등에 의해 제2 호스트로 이동 또는 '이주(migrate)'될 수 있다. 더 일반적으로는, VM은 유사하게 제1 플랫폼으로부터 제2 플랫폼으로 이주될 수 있고, 그 플랫폼들은 상이한 호스트들, 동일한 호스트의 상이한 구성들 등을 나타낸다. 후자의 경우에, 이해되는 바와 같이, 컴퓨팅 장치는, 예를 들면, 추가의 메모리가 추가되고, 프로세서가 변경되고, 추가의 입력 장치가 제공되고, 선택 장치가 제거되는 등의 경우에 상이한 구성을 가질 수 있다.
VM들에 의한 가상화는 비교적 강력한 컴퓨터 시스템이 독립적인 분리된 VM들의 컬렉션에 대한 호스트로서 작용할 수 있도록 하기 위해 이용될 수 있다. 그러므로, 호스트 상의 VM들은 동일한 하드웨어 플랫폼 상에 공존하고 마치 각 VM이 호스트로부터 및 호스트에 의하여 이용 가능한 리소스들에 배타적으로 액세스할 수 있는 것처럼 동작한다. 따라서, 가상화는 각 호스트의 최적의 사용을 가능하게 하고, 또한 요구, 필요, 요건, 용량, 이용 가능성, 및 다른 전형적인 제약들에 기초하여 호스트들/플랫폼들의 세트 사이에 VM들의 이주를 가능하게 한다.
가상화는 또한 각각이 애플리케이션을 동작시키는 물리 머신들을 갖는 사용자가 그러한 애플리케이션들을 호스트들의 세트에 통합함으로써 전체 하드웨어 요구를 감소시키는 것을 가능하게 한다. 따라서, 단지 하나의 예로서, 각각이 서버 등으로서 작용하는 복수의 물리 머신들을 갖는 사용자는 각 물리 서버은 VM으로 가상화될 수 있고, 복수의 그러한 VM들은 단일 호스트 상에 존재할 수 있다는 것을 알 수 있다. 비록 다양하게 변화하기는 하지만, 그러한 VM들에 의하여 단일 호스트가 5개 또는 10개 또는 그보다 많은 물리 머신들의 등가물을 수용할 수 있다는 얘기는 들리지 않는다. 요약하면, 가상화로 인해 사용자는 현존 하드웨어를 훨씬 더 높은 비율로 이용함으로써 그 하드웨어를 보다 충분히 이용할 수 있다. 사실, 전형적인 사용자는 물리 서버들을 전개할 때 평균적으로 이용 가능한 하드웨어 리소스들의 약 15 퍼센트만 이용할 수 있으므로, 그러한 이용의 3배, 4배, 및 어쩌면 심지어 5배 및 6배의 증가를 제공하고, 물론 VM들을 수용하는 것과 관련된 예약 용량(reserve capacity) 및 오버헤드(overhead)를 허용하기 위해 가상화가 이용될 수 있다.
보다 구체적으로, 전형적인 사용자는 기반 하드웨어를 충분히 이용하지 않는 다양한 작업 부하들을 실행하는 다수의 서버 머신 등을 갖는다. 더욱이, 하드웨어의 일부는 수명의 끝에 접근하고 있고 현존 하드웨어가 충분히 이용되지 않는 경우 그 하드웨어를 보다 최신의, 보다 빠른 시스템으로 업그레이드하는 것을 정당화하는 것은 곤란할 수 있다. 따라서 사용자는 가상화를 이용하여 서버 머신 등을 VM들로서 호스트들의 세트로 통합하는 해법을 가능하게 하는 것으로부터 이익을 얻을 것이다. 그러나, 중요하게는, 그러한 사용자는 어느 가상 머신 등을 가상화할지를 선택하고, 또한 어느 호스트가 각 VM을 수용할지를 선택함에 있어서 그를 안내할 수 있는 관리 도구를 필요로 한다.
환언하면, 사용자는 서버 머신 등을 VM들로서 호스트들의 세트 상에 배치함에 있어서 그를 안내할 수 있는 관리 도구를 필요로 한다. 일반적으로, 전개(deployment)는 정의된 작업 부하를 그 작업을 지원하는 호환 가능한 물리 리소스들의 세트에 효율적으로 매칭시키는 것을 다룬다. 만일 전개가 비효율적거나 리소스 대 요건의 호환되지 않는 매칭을 허용한다면, 하드웨어 이용을 최적화하는 목적은 비록 달성하기가 불가능하지는 않을지라도 곤란하게 된다. 따라서, 본 발명은 호환 가능한 효율적인 전개를 용이하게 하고 네트워킹, 저장소, 라이센싱, 계산 능력, 메모리 등을 포함하는 리소스 요건들을 고려한다.
<발명의 요약>
본 발명에서는, 후보 VM 및 이 후보 VM이 잠재적으로 전개될 후보 호스트 컴 퓨팅 장치(호스트)에 관한 시스템 및 방법이 제공된다. 그러한 시스템 및 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 VM에 의해 요구되는 리소스들을 고려하여, 상기 후보 호스트에 상기 후보 VM을 전개할지를 판정하는 데 도움을 주기 위한 것이다.
상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅(sub-rating)이 계산되고, 상기 리소스에 대한 서브레이팅은 상기 후보 VM이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응한다. 그 후, 상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 VM을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅이 계산된다. 각 후보 호스트에 대한 레이팅은 그의 레이팅에 기초하여 상기 후보 호스트에 상기 후보 VM을 전개할지를 판정하는 선택기에 제공된다. 상기 후보 VM의 전개를 위한 상기 후보 호스트의 선택이 수신되고, 상기 후보 VM에 의해 요구되는 상기 선택된 호스트의 리소스들은 상기 후보 VM이 상기 선택된 호스트에 전개될 때까지 예약된다. 그 후, 상기 후보 VM은 상기 선택된 호스트에 전개된다.
본 발명의 실시예들에 대한 다음의 상세한 설명뿐만 아니라, 전술한 요약은, 첨부된 도면들과 함께 읽힐 때 더 잘 이해될 것이다. 발명을 예시할 목적으로, 도면들에는 현재 선호되는 실시예들이 도시되어 있다. 그러나, 이해되는 바와 같이, 본 발명은 도시된 바로 그 배열들 및 수단들에 제한되지 않는다.
도 1은 본 발명 및/또는 그의 부분들의 양태들이 통합될 수 있는 범용 컴퓨 터 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에서 호스트들(14)의 세트 중의 잠재적으로 임의의 호스트에 각각 전개될, 가상 머신들(VM들)이거나 가상 머신들로서 가상화될 수 있는 물리 머신들 등의 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따라서 하나 이상의 호스트들에 전개될 도 2의 하나 이상의 VM들을 평가하기 위한 시스템을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따라서 하나 이상의 호스트들에 전개될 도 2의 하나 이상의 VM들을 평가하기 위해 도 3의 시스템과 관련하여 수행되는 주요 단계들을 나타내는 흐름도이다.
도 5는 VM에 의해 이용되는 도 2의 호스트의 리소스의 표현을 나타내는, 특히 VM(12)이 호스트에 전개된 후에 자유로 남아 있는 리소스의 퍼센트 이용에 도 4의 서브레이팅이 어떻게 대응하는지를 나타내는 블록도이다.
도 6은 본 발명의 실시예들에 따라서 도 3의 시스템과 관련하여 이용될 수 있는 리소스에 관하여 이용 데이터를 생성하기 위해 샘플 데이터를 수집하는 데 수행되는 주요 단계들을 나타내는 흐름도이다.
컴퓨터 환경
도 1 및 다음의 설명은 본 발명 및 그의 부분들이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간략한 일반 설명을 제공하기 위한 것이다. 필수적인 것은 아니지만, 본 발명은 일반적으로 클라이언트 워크스테이션 또는 서버 등의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 본 발명 및/또는 그의 부분들은, 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는, 다른 컴퓨터 시스템 구성들과 함께 실시될 수도 있다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 양쪽 모두에 위치할 수 있다.
도 1에 도시된 바와 같이, 예시적인 범용 컴퓨팅 시스템은, 처리 장치(121), 시스템 메모리(122), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(121)에 연결시키는 시스템 버스(123)를 포함하는, 퍼스널 컴퓨터, 서버 등의, 종래의 컴퓨팅 장치를 포함한다. 시스템 버스(123)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 시스템 메모리는 판독 전용 메모리(ROM)(124) 및 랜덤 액세스 메모리(RAM)(125)를 포함한다. 시동 중과 같은 때에, 퍼스널 컴퓨터(120) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(126)은 ROM(124)에 저장되어 있다.
퍼스널 컴퓨터(120)는 하드 디스크(도시 생략)에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(127), 이동식 자기 디스크(129)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(128), CD-ROM 또는 기타 광 매체 등의 이동식 광 디스크(131)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(130)를 포함한다. 하드 디스크 드라이브(127), 자기 디스크 드라이브(128), 및 광 디스크 드라이브(130)는 각각 하드 디스크 드라이브 인터페이스(132), 자기 디스크 드라이브 인터페이스(133), 및 광 디스크 드라이브 인터페이스(134)에 의해 시스템 버스(123)에 접속된다. 상기 드라이브들 및 이들과 관련된 컴퓨터 판독가능 매체는, 퍼스널 컴퓨터(120)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 비휘발성 저장을 제공한다.
여기에서 설명된 예시적인 환경은 하드 디스크, 이동식 자기 디스크(129), 및 이동식 광 디스크(131)를 이용하지만, 컴퓨터가 액세스할 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 예시적인 운영 환경에서 이용될 수 있다. 그러한 다른 유형의 매체는 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등을 포함한다.
운영 체제(135), 하나 이상의 애플리케이션 프로그램(136), 기타 프로그램 모듈(137) 및 프로그램 데이터(138)를 포함한, 다수의 프로그램 모듈들이 하드 디스크, 자기 디스크(129), 광 디스크(131), ROM(124) 또는 RAM(125) 상에 저장될 수 있다. 사용자는 키보드(140) 및 포인팅 장치(142) 등의 입력 장치를 통해 명령 및 정보를 퍼스널 컴퓨터(120)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 직렬 포트 인터페이스(146)를 통해 처리 장치(121)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스에 의해 접속될 수도 있다. 모니터(147) 또는 다른 유형의 디스플레이 장치도 비디오 어댑터(148) 등의 인터페이스를 통해 시스템 버스(123)에 접속된다. 모니터(147) 외에, 퍼스널 컴퓨터는 통상적으로 스피커 및 프린터 등의 기타 주변 출력 장치(도시 생략)를 포함한다. 도 1의 예시적인 시스템은 또한 호스트 어댑터(155), SCSI(Small Computer System Interface) 버스(156), 및 그 SCSI 버스(156)에 접속된 외부 저장 장치(162)를 포함한다.
퍼스널 컴퓨터(120)는 원격 컴퓨터(149)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(149)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 퍼스널 컴퓨터(120)와 관련하여 상술된 구성요소들의 다수 또는 그 전부를 포함한다(비록 도 1에서는 메모리 저장 장치(150)만이 예시되어 있지만). 도 1에 도시된 논리적 접속은 LAN(local area network)(151) 및 WAN(wide area network)(152)을 포함한다. 그러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 퍼스널 컴퓨터(120)는 네트워크 인터페이스 또는 어댑터(153)를 통해 LAN(151)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 퍼스널 컴퓨터(120)는 통상적으로 인터넷과 같은 WAN(152)을 통해 통신을 설정하기 위한 모뎀(154) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(154)은 직렬 포트 인터페이스(146)를 통해 시스템 버스(123)에 접속된다. 네트워크화된 환경에서, 퍼스널 컴퓨터(120) 또는 그의 일부와 관련하여 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
호스트 및 가상 머신
이제 도 2를 참조하면, 본 발명은 적절한 방식으로 호스트들(14)의 세트 중의 잠재적으로 임의의 호스트에 각각 전개될, 가상 머신들(VM들)이거나 가상 머신들로서 가상화될 수 있는 물리 머신들(10) 등의 컨텍스트에서 특별히 적용될 수 있다는 것을 알 수 있다. 여기서 물리 머신(10) 등, VM(12), 및 호스트(14)는 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 서버 머신 등, VM, 및 호스트일 수 있다는 것에 유의한다. 그러한 서버 머신, VM, 및 호스트는 관련 업계에 알려져 있거나 명백할 것이므로 이미 제공된 것 이상으로 여기서 상세히 설명될 필요가 없다.
위에서 설명된 바와 같이, 각 VM(12)은 호스트(14)에 전개될 때 대응하는 물리 머신(10) 등을 에뮬레이트하는 소프트웨어 구성 등이다. 따라서, VM(12)은 호스트(14)의 리소스들을 이용하여 서버 또는 다른 사용 애플리케이션 등을 인스턴스화하는 한편 그와 동시에 그러한 사용 애플리케이션을 그러한 호스트(14) 및 그러한 호스트(14) 상의 다른 애플리케이션들로부터 분리시킬 수 있다. 도시된 바와 같이, 호스트(14)는 복수의 전개된 VM들(12)을 수용할 수 있고, 각 VM(12)은 독립적으로 어떤 소정의 기능을 수행한다. 예를 들면, 호스트(14)에 전개된 VM들(12) 중 적어도 일부는 데이터 서버로서 작용할 수있고, 그러한 VM들(12) 중 적어도 일부는 호스트(14)에 연결된 네트워크(16)에 관하여 네트워크 서버로서 작용할 수 있고, 그러한 VM들(12) 중 적어도 일부는 메일 서버로서 작용할 수 있고, 그러한 VM들(12) 중 적어도 일부는 유지 관리 기능, 데이터 수집, 하드웨어 모니터링, 오류 정정, 파일 관리 등을 포함한 저레벨 기능들을 수행할 수 있다. 특히, 각 VM(12)은, 비록 가상의 형태이기는 하지만, 어느 점으로 보아도 컴퓨팅 머신이다.
호스트(14) 자체는 데스크톱 컴퓨터, 랩톱 컴퓨터, 핸드헬드 컴퓨터, 데이터 어시스턴트(data assistant), 메인프레임 컴퓨터, 또는 VM들(12) 중 하나 이상을 호스팅하는 데 필요한 기능 및 용량을 갖는 임의의 다른 유형의 컴퓨팅 장치 등의 적절한 컴퓨팅 장치일 수 있다. 그러나, 각 VM은 호스트(14)로부터 상당한 메모리, I/O 동작, 저장소 용량, 및 프로세서 용량을 요구할 수 있다는 것을 염두에 두고, 또한 호스트(14)는 언제라도 동시에 2개, 5개, 10개, 20개 또는 그 이상의 VM들(12)을 수용할 것으로 기대될 수 있다는 것을 염두에 두고, 호스트(14)는 사실상 그러한 VM들(12)을 수용할 수 있기 위해서는 아마도 상당한 능력 및 리소스들을 가져야 할 것이다.
각 물리 머신(10) 등에 관련하여, 각 VM(12)은 대부분 통상적으로 서버와 같은 물리 머신(10)에 대응하지만, 본 발명의 정신 및 범위에서 벗어나지 않고 사실상 임의의 유형의 물리 컴퓨팅 장치에 대응할 수 있다. 따라서, 물리 머신(10)으로서 서버에 더하여, 각 VM(12)은 임의의 다른 유형의 애플리케이션-유형 물리 머신에 대응할 수 있고, 그러한 애플리케이션-유형 물리 머신은, 임의의 유지 관리 머신, 데이터 수집 머신, 하드웨어 모니터링 머신, 오류 정정 머신, 파일 관리 머신 등을 포함하지만, 이들에 제한되는 것은 아니다. 또한, 각 VM(12)은 또한 워드 프로세서, 스프레드시트 분석기, 메일 애플리케이션, 데이터베이스 애플리케이션, 드로잉 애플리케이션, 콘텐트 렌더링 애플리케이션 등을 포함한 임의의 서브-머신 레벨 애플리케이션(sub-machine level application)에 대응할 수 있다.
가상 머신 전개의 평가
물리 머신(10) 등을 가상화할지를 결정함에 있어서 사용자는 일반적으로 (1) 물리 머신(10)이 가상화를 위한 수락할 만한 후보인지를 판정하고, (2) 양호한 후보에 대하여, 그 물리 머신(10)을 가상 머신(VM)(12)으로 변환한다. 물리 머신(10)을 VM(12)으로 변환하는 것은 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 수행될 수 있다. 물리 머신(10)을 VM(12)으로 변환하는 것은 관련 업계에 알려져 있거나 명백할 것이므로, 그에 대한 상세에 대해서는 제공된 것을 제외하고는 여기서 상세히 설명될 필요가 없다.
어쨌거나, 일단 물리 머신(10)에 대응하는 VM(12)이 생성되면, (3) 그 VM이 효율적인 및/또는 다른 식으로 수락할 만한 방식으로 전개될 수 있는 호스트들(14)로서 하나 이상의 후보 호스트(14)가 식별되고, (4) 그 후 그러한 VM(12)은 후보 호스트들(14) 중 선택된 호스트에 전개될 수 있다. 특히, 본 발명은 단계 (1) 및 (3)에서 수행되는 판정에 도움을 주기 위해 이용될 수 있다. 즉, 본 발명은 물리 머신(10)의 작업 부하의 특징화뿐만 아니라 전형적인 호스트(14)의 작업 부하의 특징화에 기초하여 물리 머신(10)이 VM(12)으로서 가상화되고 호스트(14)에 전개되어야 하는지 또는 VM(12)으로서 가상화되어 호스트(14)에 전개될 수 있는지를 판정하는 데 이용될 수 있는 시스템을 제공한다. 또한, 그 동일한 도구는 다시 VM(12)의 특징화뿐만 아니라 각 후보 호스트(14)의 작업 부하의 특징화에 기초하여 하나 이상의 후보 호스트(14)가 VM(12)에 대하여 수락할 만한지를 판정하는 데 이용될 수 있다.
이제 도 3을 참조하면, 본 발명을 수행하기 위한 시스템이 도시되어 있다. 그러한 시스템에서는, 도시된 바와 같이, 평가기(18)가 후보 VM(12)의 모델 및 적어도 하나의 후보 호스트(14)에 관한 데이터를 수신하여 각 후보 호스트(14)가 그 위에 전개되는 후보 VM(12)을 수용하는 용량을 갖고 있는지를 판정한다. 여기서 물리 머신(10)이 VM(12)으로서 가상화되고 호스트(14)에 전개되어야 하는지 또는 VM(12)으로서 가상화되어 호스트(14)에 전개될 수 있는지를 판정하는 것과 관련하여, 후보 VM(12)은 가상화된 물리 머신(10)의 특징화인 반면, 단일 후보 호스트(14)는 VM(12)이 전개될 호스트(14)를 특징화하도록 의도된 복합 호스트(composite host)(14)이다. 그러한 특징화된 호스트(14)는 상황이 기술하는 바와 같이 평균 호스트(average host), 최적의 이용 가능한 호스트(best available host), 고평균 호스트(high average host) 등일 수 있다. 하나 이상의 후보 호스트(14)가 VM(12)에 대하여 수락할 만한지를 판정하는 것과 관련하여, 후보 VM(12)은 복수의 후보 호스트들(14) 중 임의의 호스트에 전개될 VM(12)이다.
어느 경우든, 평가기(18)는 후보 VM(12)에 대하여 후보 VM(12)에 대한 참조 프로세서 구성, 및 그 후보 VM(12)에 대한 판정된 작업 부호 특징화를 포함하는 모델 데이터를 수신한다. 그러한 참조 프로세서 구성은 예를 들면 후보 VM(12)이 이용 가능한 특정 리소스들과 함께 특정 속도에서 동작하는 특정 프로세서를 갖는다는 것일 수 있다. 후보 VM(12)은 통상적으로 참조 프로세서 구성과 관련하여 그러한 VM(12)의 작업 부하를 실행하는 데 필요한 용량을 지정하고, 예를 들면 그 VM(12)이 특정 참조 프로세서 상에서 초래할 프로세서 이용을 지정할 수 있는 관련 모델 데이터를 갖는다.
그러한 작업 부하 특징화는 다양한 요소들에 기초할 수 있고, 그러므로 프로세서(예컨대, 이용되는 퍼센티지), 메모리(이용 가능한 양, 시간 단위당 판독수 및 기입수 등), 저장소 용량(이용 가능한 양, 시간 단위당 판독수 및 기입수 등), 네트워크(16)(이용 가능한 대역폭, 시간 단위당 판독수 및 기입수 등) 등의, 후보 VM(12)의 상이한 리소스들의 이용에 관련하여 작업 부하의 특징화를 포함할 수 있다. 물론, 그러한 작업 부하 특징화는 본 발명의 정신 및 범위에서 벗어나지 않고, 하드웨어에 포함된 소프트웨어 버전 등과 같은 비이용 요소들을 포함한, 다른 요소들에 기초할 수 있다.
또한, 작업 부하 특징화는 본 발명의 정신 및 범위에서 벗어나지 않고 상이한 표현으로 지정될 수 있다. 그와 관련하여, 작업 부하는 상이한 리소스들에 대하여 상이한 단위들로 지정될 수 있다는 것에 유의한다. 예를 들면, 프로세서 부하는 퍼센티지 이용으로서 지정될 수 있는 반면 네트워크 부하는 1초당 바이트수의 네트워크 트래픽의 표현으로 지정될 수 있다. 또한 저장소 부하는 시간 단위당 VM(12)에 의해 수행되는 I/O 동작들 및 바이트의 수를 포함하는 저장소 처리량 사양(storage throughput specification)을 포함할 수 있다는 것에 유의한다. 또한 네트워크 트래픽은 대역폭에 의존하지 않을 수 있기 때문에 네트워크 부하는 반드시 대역폭으로서 지정되지 않을 수도 있다는 것에 유의한다. 마지막으로 작업 부하는 물리 리소스들의 표현으로 지정될 수 있다. 그러나, 어쨌거나, 작업 부하가 특징화되고, 평가기(18)는 그러한 특징화된 작업 부하를 아래에서 설명되는 계산들에 적합한 형태로 적절히 변환한다. 그러한 변환들은 관련 업계에 알려져 있거나 명백할 것이므로 제공된 것 이외에 여기서 상세히 설명될 필요가 없다.
이해되는 바와 같이, 후보 VM(12)은 가상 디바이스이므로, 후보 VM(12)에 관련한 프로세서 구성 및 작업 특징화는 사실상 가상 구성 및 특징화이다. 그럼에도 불구하고, 그러한 가상 구성 및 작업 부하 특징화는 적어도 작업 부하 특징화의 요소들에 관련하여, 각 후보 호스트(14)로부터 요구되는 리소스들을 판정하는 데 적용될 수 있다. 일반적으로, 본 발명에서, 평가기(18)는 후보 VM(12)이든 후보 물리 머신(10)이든 간에 작업 부호의 표현을 입력으로서 수취한다. 어느 경우든, 작업 부하는 도 3에 도시되어 있는 데이터 수집기(20), 데이터 인터페이스(22) 등에 의해 획득된 데이터에 따라 평가기(18)에 기술된다. 도 3에 관련하여 그러한 데이터는 반드시 후보 물리 머신(10)으로부터 도출된 후보 VM(12)으로부터 도출될 필요는 없고 대신에 후보 물리 머신(10)으로부터 직접 도출될 수 있다는 것에 유의한다.
유사한 방식으로, 평가기(18)는 또한 각 후보 호스트(14)에 대하여 그 후보 호스트(14)에 대한 실제 프로세서 구성, 및 각 후보 호스트(14)에 대한 실제 작업 부하 특징화를 포함하는 모델 데이터를 수신한다. 전과 유사하게, 그러한 실제 프로세서 구성은 예를 들면 후보 호스트(14)는 후보 VM(12)을 그러한 후보 호스트(14)에 전개하기 전에 이용 가능한 특정 리소스들을 가지고 특정 속도에서 동작하는 특정 프로세서를 갖는다는 것일 수 있다. 여기서, 실제 작업 부하 특징화는 후보 VM(12)의 작업 부하 특징화와 동일한 요소들에 기초하고, 그러므로 프로세서, 메모리, 저장소 용량, 네트워크(16) 등의, 후보 호스트(14)의 상이한 리소스들의 이용에 관련하여 실제 작업 부하의 특징화를 포함할 수 있다.
각 후보 호스트(14) 및 후보 VM(12)에 관련하여 작업 부하 특징화의 요소들에 대한 데이터의 적어도 일부는 후보 호스트(14)가 운영하고 있는, 또는 VM(12)이 운영하고 있는, 또는 VM(12)에 대응하는 물리 머신이 운영하고 있는 데이터 수집기(20)에 의하여 이력 기준으로(on a historical basis) 획득될 수 있다는 것에 유의한다. 이해되는 바와 같이, 그러한 이력 데이터 수집기(20)는 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 동작할 수 있다. 그러한 데이터를 수집하는 하나의 방법이 아래에서 설명된다. 그러한 이력 데이터 수집기(20)는 관련 업계에 알려져 있거나 명백할 것이므로 여기서 특별히 상세히 설명될 필요가 없다.
또한 각 후보 호스트(14)에 관련하여 작업 부하 특징화의 요소들에 대한 실제 데이터의 적어도 일부는 후보 호스트(14)가 운영하고 있는 데이터 인터페이스(22)에 의하여 후보 호스트(14)로부터 현재 데이터로서 획득될 수 있다는 것에 유의한다. 이해되는 바와 같이, 그러한 데이터 인터페이스(22)는 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 동작할 수 있다. 그러한 인터페이스(22)는 관련 업계에 알려져 있거나 명백할 것이므로 여기서 특별히 상세히 설명될 필요가 없다. 또한 적어도 일부 상황에서 후보 VM(12)에 관련하여 적어도 일부 현재 데이터를 획득하기 위해 유사한 데이터 인터페이스(22)가 이용될 수 있다는 것에 유의한다. 예를 들면, 그러한 인터페이스(22)는 후보 VM(12)에 대응하는 물리 머신(10)으로부터, 또는 동작 중에 후보 VM(12)이 어떤 호스트(14) 상에 이미 존재한다면 그 후보 VM(12)으로부터 그러한 현재 데이터를 수집할 수 있다.
대체로, 본 발명의 일 실시예에서, 평가기(18)는 각 후보 호스트(14)에 관련하여 후보 VM(12)이 그러한 호보 호스트(14)에 전개될 수 있는지를 특징화하고, 만일 그렇다면 그 후보 호스트(14)가 후보 VM(12)을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 출력하도록 동작한다. 일반적으로, 그러한 레이팅은 그 구성들 및 작업 부하 특징화들에 기초하여 후보 호스트(14)가 그 위에 전개되는 후보 VM(12)을 수용할 용량을 갖고 있는지를 반영하고, 만일 그렇다면 얼마만큼의 용량인지를 상대적인 표현으로 반영한다. 예를 들면, 레이팅은 0에서 5까지의 수로서 출력될 수 있고, 여기서 0은 용량이 없음을 의미하고, 5는 최대 용량을 의미하고, 중간 값들은 중간의 상대적인 양의 용량을 의미한다.
본 발명의 일 실시예에서, 평가기(18)는 하드 요건들 및 소프트 요건들에 기초하여 동작한다. 하드 요건은 후보 호스트(14)에 전개될 후보 VM(12)에 대하여 만족되어야 하는 요건으로서 정의될 것이다. 예를 들면, 후보 VM(12)이 후보 호스트(14) 상에서 2 기가바이트의 저장소 공간을 필요로 하고 후보 호스트(14)가 이용 가능한 1 기가바이트만 갖고 있다면, 후보 VM(12)은 그러한 후보 호스트(14)에 전개되지 않아야 한다. 일반적으로, 하드 요건들은 각 후보 호스트(14)로부터 데이터 인터페이스(22)에 의해 획득된 실제 데이터에 기초하여 평가된다. 그러한 하드 요건들의 예들은 일반적으로 위에서 제시된 작업 부하 요소들에 관한 용량을 따르고, 따라서 다음을 포함할 수 있지만 이에 제한되는 것은 아니다:
- 프로세서 용량 ― 후보 호스트(14)는 후보 VM(12)의 요건들을 만족시키기 위해 충분한 퍼센티지 프로세서 이용 가능성을 가져야 하고, 또한 다중-프로세서 후보 VM(12)은 가상화 소프트웨어의 적절한 버전을 실행하는 후보 호스트(14) 상에서만 실행될 수 있다;
- 저장소 용량 ― 후보 호스트(14)는 후보 VM(12)을 저장하고 그를 지원하기 위해 충분한 자유 저장소 공간 및 관련 저장소 리소스들을 가져야 한다;
- 메모리 용량 ― 후보 호스트(14)는 후보 VM(12)이 전개되어 실행될 수 있도록 충분한 메모리를 가져야 한다;
- 네트워크 용량 ― 후보 호스트(14)는 후보 VM(12)의 요구에 따라 네트워크(16)에 액세스하기 위해 이용 가능한 충분한 네트워크 대역폭을 가져야 한다.
상기한 것들 전부가 사실상 모든 상황에서 하드 요건이 아닐 수도 있다는 것에 유의한다. 하나의 예를 들면, 프로세서 용량의 경우, 충분한 용량의 부족으로부터 열화된 성능이 수락할 만하다고 간주된다면, 프로세서 용량은 하드 요건일 필요가 없다. 다른 예를 들면, 네트워크 용량의 경우, 충분한 용량의 부족으로부터 열화된 성능이 수락할 만하다고 간주된다면, 네트워크 용량도 마찬가지로 하드 요건일 필요가 없다.
소프트 요건은 임의의 특정 후보 호스트(14)에 전개되는 후보 VM(12)으로부터 양호한 또는 수락할 만한 레벨의 성능을 달성하기 위해 만족되어야 하는 요건으로서 정의될 것이다. 즉, 소프트 요건은 만족되어야 하지만, 그렇지 않다 할지라도 전개된 후보 VM(12)은 서비스 레벨이 열화되기는 하지만 여전히 동작할 것이다.
후보 VM(12)에 관련하여 각 후보 호스트(14)에 대한 전술한 레이팅을 생성하기 전에, 이제 도 4를 참조하면, 본 발명의 일 실시예에서의 평가기는 다음을 포함하는 기능들을 수행한다:
- 후보 VM(12)의 프로세서 이용을 후보 호스트(14)의 프로세서의 등가의 프로세서 이용으로 스케일 조정(rescaling)한다(단계 401). 예를 들면, 만일 후보 VM(12)이 그의 프로세서의 20%를 요구하지만 후보 호스트(14)의 프로세서가 더 빠르다고 확인되면, 후보 VM(12)은 대신에 그러한 후보 호스트(14)의 그러한 프로세서의 8%만을 요구하는 경우가 될 수 있다. 이해되는 바와 같이, 그 후, 후보 VM(12)에 의해 요구되는 프로세서 이용을 후보 호스트로부터 이용 가능한 프로세서 이용과 등가의 단위로 비교하기 위해 스케일 조정이 필요하다. 이해되는 바와 같이, 그러한 스케일 조정은 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 평가기(18)에 의해 수행될 수 있다. 예를 들면, 후보 VM(12)의 프로세서 및 후보 호스트(14)의 프로세서의 등가의 랭킹들을 참조할 수 있다. 프로세서의 성능 랭킹은 데이터 수집기(20)로부터 평가기(18)에 의해 수신된 모델 데이터의 일부가 아닐 수 있다. 대신에, 평가기(18)는 성능 랭킹들을 포함하는 프로세서 구성들의 라이브러리를 유지할 수 있다. 만일 그 라이브러리가 평가 중인 프로세서를 포함하고 있지 않다면, 그러한 프로세서에 대한 랭킹은 라이브러리 내의 유사한 프로세서 구성들의 랭킹들을 고려하는 알고리즘을 이용하여 근사치가 구해질 수 있다.
- 가상화 오버헤드(virtualization overhead)에 대하여 고려한다(account for)(단계 403). 특히, 물리 머신(10)이 VM(12)으로 가상화되는 경우, VM(12)을 수용하는 호스트(14)는 그 VM(12)에 대한 용량만이 아니라 그러한 VM(12)을 가상화하는 것과 관련된 여분의 작업 또는 '오버헤드'에 대한 용량도 갖고 있어야 한다. 그러한 오버헤드는 어떤 VM(12)에서나 지워지고 장치 에뮬레이션, 리소스 파티셔닝, 및 VM(12)의 가상화를 실시하기 위해 소비되어야 하는 다른 리소스들로부터 생긴다. 이해되는 바와 같이, 오버헤드의 양은 후보 VM(12)과 관련될 수 있는 작업 부하의 유형에 따라서 달라진다. 예를 들면, 후보 VM(12)이 네트워크(16)에의 액세스를 요구한다면, 오버헤드는 가상 네트워크 요청을 실제 요청으로 변환하는 데 소비되어야 한다. 유사하게, 후보 VM(12)이 저장소에의 액세스를 요구한다면, 오버헤드는 디스크 요청을 실제 요청으로 변환하는 데 소비되어야 한다. 어쨌거나, 오버헤드는 후보 VM(12)이 수행할 작업의 유형, 기대되는 디스크 요청의 수, 기대되는 네트워크 요청의 수, 기대되는 그래픽 요청의 수, 메모리 액세스의 수, 프로세서 예외(processor exceptions)의 수, 실행 프로세서의 수 등의 적절한 요소들에 기초하여 평가기(18)에 의해 특징화될 수 있다. 이해되는 바와 같이, 그 후, 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 평가기(18)에 의해 오버헤드에 대한 평가가 수행된다.
- 스케일 조정 및 오버헤드에 대한 평가 후에 후보 호스트(14) 상에서 후보 VM(12)의 실행을 시뮬레이트한다(단계 405). 특히, 평가기(18)는 후보 호스트(14) 상에 전개되어 동작하는 후보 VM(12)에 적어도 대략 대응하는 이용 파라미터들을 갖는 '더미' VM(12)을 후보 호스트(14) 상에 배치하여 후보 호스트(14)가 그러한 더미 VM(12)을 무난하게 수용하는지를 판정한다. 그러한 더미 VM(12)에 의한 그러한 시뮬레이션은 후보 호스트(14)가 적어도 더미 VM(12)에 의해 나타내어지는 후보 VM(12)을 실제로 수용할 수 있는지를 확인하려는 시도로 수행된다. 본질적으로, 더미 VM(12)을 후보 호스트(14) 상에 배치하는 것은 더미 VM(12)에 의한 후보 VM(12)의 리소스 요건들을 후보 호스트(14) 상의 현재 리소스 이용과 결합하여 후보 VM(12)을 후보 호스트(14) 상에 배치함으로써 생길 자원 이용으로 귀결된다.
후보 호스트(14) 상에 배치된 더미 VM(12)은 실제로 전개될 수도 있고 또는 다르게는 개념적으로 전개될 수도 있다는 것에 유의한다. 특히 후자의 경우에 관련하여, 더미 VM(12)을 실제로 배치/전개하는 것은, 그러한 더미 VM(12)이 후보 호스트(14)에 있는 실제 리소스들을 이용할 것이고, 그러므로 어쩌면 실제 작업을 수행하고 있는 그러한 후보 호스트(14)에 있는 다른 VM들(12) 등에 영향을 미칠 수 있으므로, 수락할 수 없을 수 있다. 대신에, 계산에 의한 개념적인 전개가 수행될 수 있고, 그것을 함에 있어서는 후보 VM(12)의 성능 요건들 및 후보 호스트(14)의 성능 특징들을 결합하여 그러한 후보 VM(12)이 전개된 후보 호스트(14)에서의 이용을 추정(project)할 것이다.
전술한 가상화 오버헤드에 관련하여, 그러한 오버헤드는 가변적이고 후보 VM(12)의 작업 부하 유형에 따라 달라지므로, 본 발명의 일 실시예에서는, 작업 부하의 각 유형마다 하나씩, 벤치마크 작업 부하들의 고정된 세트가 정의될 수 있다는 것에 더 유의해야 할 것이다. 그러한 작업 부하 유형들 및 대응하는 벤치마크들은, 데이터베이스 서버, 웹 서버, 및 터미널 서버를 포함할 수 있지만, 이들에 제한되는 것은 아니다. 각 작업 부하 유형은 그 작업 부하 유형과 관련된 프로세서, 메모리, 저장소, 및 네트워크 오버헤드의 추정을 가능하게 하는 특정 특징화를 갖는다. 일반적으로, 보다 많은 저장소 집약적(storage-intensive) 및 네트워크 집약적(network-intensive) 작업 부하들은 그러한 리소스들을 가상화하는 비용 때문에 보다 많은 프로세서 오버헤드를 초래한다.
가상화 오버헤드의 추정은 더 세련될 수 있다는 것에 유의한다. 특히, 프로세서 비용은 후보 VM(12)과 후보 호스트(14) 간에 전송되는 네트워크 및 디스크 IO의 단일 바이트와 관련될 수 있다. 만일 데이터 수집기(20)로부터 수신된 모델 데이터가 디스크 및 네트워크 IO 작업 부하를 포함한다면, 평가기(18)는 단일 바이트에 대한 프로세서 비용을 그러한 작업 부하 데이터에 적용하여 총 프로세서 오버헤드를 획득할 수 있다. 프로세서 비용이 평가 중인 프로세서와는 다른 프로세서로부터 획득되는 경우에, 그 비용은 단계 401에서 설명된 것과 유사한 방식으로 스케일 조정될 수 있다. 그러한 스케일 조정은 각종의 프로세서 구성들에 걸쳐서 가상화 오버헤드를 모델링하기 위해 요구되는 수고를 덜어준다.
위에서 설명된 각 후보 호스트(14)에 대한 평가기(18)의 출력은 후보 VM(12)에 의해 요구되는 리소스들 및 후보 호스트(14)에서 후보 VM(12)을 가상화하기 위해 요구되는 오버헤드를 고려하여, 후보 호스트(14)가 후보 VM(12)을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅이다. 본 발명의 일 실시예에서, 그러한 레이팅은 다음의 방식으로 평가기(18)에 의해 계산된다.
먼저, 전술한 하드 요건들 중 임의의 것이 만족되지 않아 후보 호스트(14)가 이용 가능한 필요한 리소스들을 충분히 갖고 있지 않다면, 레이팅은 0이다. 또한, 후보 호스트(14)에서의 후보 VM(12)에 의한 임의의 리소스의 이용으로 인해 후보 호스트(14)가 그러한 리소스의 이용에 대하여 설정된 임계치를 초과하게 되면, 레이팅은 0이다(단계 407). 아래에서 더 상세히 설명되는 바와 같이, 후보 호스트(14)에 있는 각 리소스는 그를 초과한 이용은 권장되지 않는 소정의 이용 임계치를 갖는다. 따라서, 사실상 그러한 임계치는 기대되는 이용 상황들 이상을 처리하기 위해 후보 호스트(14)가 이용할 수 있어야 할 리소스의 예약을 정의한다. 만일 후보 VM(12)으로 인해 후보 호스트(14)가 하드 요건 또는 임계치를 위배하기 때문에 레이팅이 0으로 설정되면, 프로세스는 여기서 정지한다. 그렇지 않다면, 레이팅에 대한 값을 계산함으로써 프로세스는 계속된다(단계 409).
본 발명의 일 실시예에서는, 후보 호스트(14)에 있는 몇 개의 리소스들 각각에 대하여 서브레이팅(sub-rating)이 계산된다(단계 411). 그러한 리소스들은 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 리소스들일 수 있고, 예를 들면, 프로세서 이용, 메모리 이용, 저장소 이용, 네트워크 이용 등일 수 있다.
각 리소스에 대한 서브레이팅은 그 리소스에 대하여 설정된 임계치, 수집된 데이터에 기초하여 그 리소스에 대하여 계산된 퍼센트 이용, 및 그 리소스에 할당된 가중치에 기초하여 다음과 같이 계산된다:
서브레이팅 = (임계치 - 퍼센트 이용) × 가중치
임계치 및 가중치는 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 요소들에 기초하여 관리자 등에 의해 선택될 수 있다. 위에서 설명된 임계치인, 임계치는 퍼센티지로서 표현될 수 있고 리소스에 대하여 정의된 전술한 예약에 대응한다. 그러한 예약은 어느 정도 임의대로 정의될 수 있지만, 일반적으로 상황 하에서 여분의 용량의 합당한 완충(cushion)을 제공하도록 설정되어야 한다. 예로서, 만일 리소스가 후보 호스트(14)에 있는 저장소라면, 예약은 후보 호스트(14)에 있는 저장소 용량의 20 퍼센트로서 정의될 수 있고, 그 경우 임계치는 80 퍼센트이다. 유사하게, 15 퍼센트의 예약은 예를 들면 임계치를 85 퍼센트로서 설정할 것이다. 가중치는 전체 레이팅을 계산할 때 다른 리소스들에 비하여 리소스에 보다 많은 강조 또는 보다 적은 강조를 제공하도록 작용한다. 따라서, 만일 모든 리소스들이 동일한 중요도를 갖는다고 간주된다면, 그러한 리소스들에는 모두 동일한 가중치, 즉 예를 들면 5가 주어질 수 있다. 유사하게, 만일 하나의 리소스가 다른 것보다 2배 중요하다고 간주된다면, 그 하나의 리소스에는 다른 것의 가중치의 2배의 가중치가 주어질 수 있다. 즉, 예를 들면 그 하나의 리소스에는 6이 주어지고 다른 것에는 3이 주어질 수 있다.
임계적으로, 리소스에 대한 퍼센트 이용은, 경우에 따라서, 데이터 수집기(22) 및/또는 데이터 인터페이스(22)에 의해 수집된 대응하는 데이터에 기초하여 계산되고, 그러한 데이터는, 역시 경우에 따라서, 단계 401 및 403에서 스케일 조정되고 및/또는 오버헤드에 대하여 조정되었을 수 있다. 평가기(18)에 의해 수행되는 그러한 퍼센트 이용을 계산하는 것은 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 적절한 방식으로 수행될 수 있다. 일반적으로, 후보 호스트(14)의 임의의 특정 리소스에 대하여 계산되는 퍼센트 이용은 후보 VM(12)이 그 위에 전개되는 동안, 그리고 그 후보 호스트(14)가 후보 VM(12)가 전개되기 전에 수행된 모든 다른 기능들을 수행하고 있는 동안 그 후보 호스트(14)에 의해 리소스가 퍼센티지로서 얼마만큼 이용되는지를 나타낸다. 따라서, 예로서, 만일 후보 VM(12) 전에 후보 호스트(14)가 이용 가능한 네트워크 용량의 20 퍼센트를 이용하고 있었다면, 그리고 후보 VM(12)의 전개 후에 그 후보 호스트(14)가 그러한 이용 가능한 네트워크 용량의 45%를 이용할 것이라고 추정된다면(즉, 추가의 25 퍼센트는 후보 VM(12)에 기인한다), 후보 호스트(14)에 대한 네트워크 리소스들의 퍼센트 이용은 45 퍼센트 값이다.
그래프로, 퍼센트 이용은 도 5에 나타내어져 있다. 특히, 도시된 바와 같이, 어떤 특정 리소스에 대하여, 후보 VM(12)이 그 위에 전개되기 전에 후보 호스트는 25%로 제시되어 있는 기존 호스트 이용을 갖고, 이는 모든 다른 호스트 동작들뿐만 아니라 그러한 후보 호스트(14)에 이미 전개된 다른 VM들(12)을 나타낸다. 후보 VM(12)을 전개한 후에, 도시된 바와 같이, 후보 VM(12)에 의한 추가의 이용은 40 퍼센트로 판정되었고, 결과적으로 총 퍼센트 이용은 65 퍼센트이다. 그러한 리소스에 대하여, 도시된 바와 같이, 20 퍼센트의 예약이 설정되었고, 그 결과 임계치는 80 퍼센트(100-20)이고, 후보 VM(12)을 전개한 후에는 리소스의 15 퍼센트가 자유로 남아 있게 된다(80-65). 따라서, 그러한 리소스에 대한 서브레이팅은, 80 퍼센트 임계치에서 65 퍼센트 총 이용을 뺀 것으로, 자유로 남아 있는 15 퍼센트에, 어떤 값이든 그 리소스에 대하여 설정된 가중치를 곱한 것이 될 것이다. 결국, 그 후, 임의의 리소스의 퍼센트 이용은 그러한 리소스를 갖는 후보 호스트(14)에 후보 VM(12)이 전개된 후에 자유로 남아 있는 리소스의 퍼센트에 가장 가깝게 대응한다.
어쨌거나, 일단 후보 호스트(14)의 각 고려되는 리소스에 대하여 서브레이팅이 계산되면, 그러한 서브레이팅들은 결합되어 다음과 같이 후보 호스트(14)에 대한 레이팅으로 귀결된다(단계413):
레이팅 = 서브레이팅들의 합/서브레이팅들의 가중치들의 합/정규화 값
레이팅에 대한 계산에 .5와 같은 추가 값이 가산되어 레이팅이 그러한 추가 값보다 결코 작지 않도록 한다는 것에 유의한다. 그러한 레이팅은 또한 가장 가까운 0.5로 반올림될 수 있고, 그 결과 0과 5와 같은 최대 값 사이의 수가 된다. 이해되는 바와 같이, 정규화 값은 레이팅의 범위를 0과 최대 값들 사이에 제한하도록 선택된다. 예를 들면 서브레이팅들의 합/서브레이팅들의 가중치들의 합이 최대 값을 갖고 최대 레이팅이 5라면, 정규화 값은 100/5인 20일 것이다.
물론, 각 후보 호스트(14)에 대한 레이팅 및 그의 서브레이팅들은 또한 본 발명의 정신 및 범위에서 벗어나지 않고 임의의 다른 적절한 방식으로 계산될 수 있다. 이 경우, 물론 레이팅은 후보 호스트(14)가 그 위에 전개되는 후보 VM(12)을 얼마나 잘 수용할 수 있는지의 합당한 표현을 나타낸다고 가정하고, 그 후보 호스트(14)에 이미 전개된 모든 다른 VM들(12) 및 그 후보 호스트(14)에 의해 이미 수행된 다른 동작들을 고려한다. 예를 들면, 여기서 레이팅은 사실상 후보 VM(12)이 그 위에 전개된 후에 후보 호스트(14)가 얼마만큼의 자유 리소스들을 가질 것인지를 강조하지만, 그러한 레이팅은 대신에 그 후보 호스트(14)에서 그러한 리소스들이 얼마만큼 이용되는지를 강조할 수도 있다.
평가기(18)가 후보 VM(12)에 대하여 각 후보 호스트(14)에 대한 레이팅을 계산한 후에, 평가기는 그 레이팅들을 관리자 등에게 제공하고(단계 415), 그 후 관리자는 레이팅된 후보 호스트들(14) 중에서 선택할 수 있다(단계 417). 여기서 관리자는 아마도 2가지 전개 전략들 ― 부하 균형 조정(load balancing) 및 리소스 이용 중 하나에 기초하여 후보 호스트들(14) 중에서 선택할 것이라는 것에 유의한다. 부하 균형 조정에 있어서, 관리자는 그러한 전개 후에 가장 많은 리소스들(즉, 자유 리소스들)을 갖는 후보 호스트들(14) 상에 후보 VM(12)을 전개하려고 함으로써, 궁극적으로 VM들(12)을 전개하는 모든 호스트들(14)이 균형 조정된 방식으로 대략 동일한 부하를 가지고 그렇게 하도록 한다. 이와 대조적으로, 리소스 이용에 있어서, 관리자는 각 호스트(14)의 이용을 최대화하려고 하고, 따라서 그러한 전개 후에 가장 적은 리소스들(예를 들면, 자유 리소스들)을 갖는 후보 호스트(14)에 후보 VM(12)를 전개하기를 원할 것이다.
따라서, 부하 균형 조정은 전개 후에 모든 호스트들이 균등하게 이용되는 상태로 두려고 하는 반면, 리소스 이용은 계속 나아가서 다음 호스트(14)를 이용하여 시작하려고 하기 전에 하나의 호스트(14) 상의 모든 이용 가능한 리소스들을 사용하려고 한다. 이해되는 바와 같이, 그 후, 위에서 계산된 레이팅은 후보 호스트(14)의 자유 리소스들을 강조하므로, 부하 균형 조정을 수행하는 관리자는 아마도 후보 VM(12)을 전개하기 위한 최고 레이팅된 후보 호스트(14), 즉 비교해서 말하면, 정의상으로 그러한 전개 후에 가장 많은 자유 리소스들을 가질, 후보 호스트(14)를 선택할 것이다. 이와 대조적으로, 리소스 이용을 수행하는 관리자는 아마도 후보 VM(12)을 전개하기 위한 제로가 아닌 최저 레이팅된 후보 호스트(14), 즉 비교해서 말하면, 정의상으로 그러한 전개 후에 가장 적은 자유 리소스들을 가질, 후보 호스트(14)를 선택할 것이다.
일단 후보 호스트(14)가 선택되면, 아마도 생성되어 선택된 호스트(14)에 전개되는 예약 VM(12)을 경유하여 선택된 호스트(14)에서 리소스들의 예약이 행해질 수 있다(단계 419). 이해되는 바와 같이, 예약 VM(12)은 어떠한 실질적 기능 또는 내용도 없는 '껍데기(shell)' VM이다. 그러한 예약 VM(12)은 후보 VM(12)의 하드웨어 구성 및 리소스 요건들을 기술하지만 후보 VM(12)의 메모리, 데이터, 및 저장소는 생략한다. 이해되는 바와 같이, 그 후, 예약 VM(12)은 후보 VM(12)의 전개가 실제로 가능하다는 중요한 확인을 제공한다. 이는 특히 특정 전개 요건들은 기반 가상화 소프트웨어에만 알려지고 평가기(18)에는 알려지지 않을 수 있고, 전개 요건들은 상이한 버전들, 릴리스들, 또는 상이한 벤더들의 가상화 시스템들 간에 서로 다를 수 있기 때문이다. 또한, 전형적인 VM(12)은, 아마도 몇 기가바이트 정도 또는 그 이상으로, 비교적 클 수 있고, 그러한 VM(12)을, 특히 저속 네트워크(16)를 통하여, 호스트(14)에 복사하려면 더 많은 시간이 걸리지는 않을지라도 수 시간은 걸릴 수 있다. 따라서, 예약 VM(12)은 훨씬 더 빨리 전개되고 그러므로 후보 VM(12)이 실제로 선택된 호스트(14)에 전개되고 있는(단계 421) 시간 동안에 후보 VM(12)에 대한 호스트 리소스들을 예약하도록 작용한다. 단계 416에서와 같은 리소스들의 예약은 또한 추가의 전개들이 리소스들에 관하여 무엇을 이용할지를 고려하도록 선택된 호스트(14)로부터 리소스 이용을 데빗(debit)함으로써 이루어질 수도 있다는 것에 유의한다.
지금까지 본 발명은 개별 후보 호스트들(14)에 관하여 설명되었지만, 그러한 발명은 또한 유사한 방식으로 호스트 그룹들 등에 관련하여 실시될 수도 있다. 이해되는 바와 같이, 호스트 그룹은 호스트들(14)의 컬렉션이고, 그러한 호스트 그룹에 특정 후보 VM(12)이 사실상 전개된다면 그 호스트들 중 어느 것이라도 그 특정 후보 VM(12)을 수용할 수 있다. 그러나, 호스트 그룹에 대한 리소스들은 약간 상이한 방식으로, 예를 들면, 호스트 그룹을 대표하는 평균에 기초하여, 또는 호스트 그룹의 집합적 표현에 기초하여, 또는 그 그룹의 최소 준비된(least-provisioned) 호스트(14) 등에 기초하여 특징화될 수 있다는 것에 유의한다.
또한, 지금까지 본 발명은 호스트(14)에 전개될 후보 VM(12)에 관하여 설명되었지만, 그러한 발명은 또한 하나의 호스트(14)에 이미 전개되었지만 후보 호스트(14)로 이주되는 후보 VM(12)에 관련하여 실시될 수도 있다. 이해되는 바와 같이, 그러한 경우 비록 후보 VM(12)에 관한 일부 데이터가 약간 상이한 소스들로부터 얻어질 수 있다 하더라도 동일한 평가 절차가 일어나고, 후보 VM(12)의 전개는 그 후보 VM(12)을 상기 하나의 호스트(14)로부터 선택된 호스트(14)로 이주시킴으로써 달성된다.
유사하게, 지금까지 본 발명은 개별 후보 VM들(12)에 관하여 설명되었지만, 그러한 발명은 또한 후보 호스트 그룹에뿐만 아닐, 후보 호스트(14)에 전개될 복수의 후보 VM들(12)에 관련하여 실시될 수도 있다. 다대일 전개는 단지 하나의 VM(12) 대신에 다수의 VM들(12)의 추가에 기초한 후보 호스트(14)의 가상적 이용의 평가를 포함한다. 이해되는 바와 같이, 그 후, 복수의 후보 VM들(12)에 대한 리소스들이 집합적으로 표현된다.
특히, 다대다 전개는 더 복잡하다. 다대다 전개를 수행하는 계산상 덜 집약적인 방법은 단순히 VM들(12)의 임의의 순서화(ordering)를 고르고 그러한 순서화에 기초하여 전개하는 것이다. 그러나, VM들(12)의 상이한 순서화가 보다 나은 전체 전개의 결과를 가져올 수도 있으므로 전역적으로 최적의 전개는 달성되지 않는다. 순서화를 개선하기 위해 발견적 방법(heuristic)이 적용될 수 있다 ― 예를 들면, 순서화는 다양한 리소스들의 이용의 가중 집계에 기초하여 선택되는 가장 큰 VM(12)으로부터 가장 작은 VM(12)까지에 기초할 수 있다. 물론, 충분히 최적의 해법은 VM들(12)의 모든 가능한 순서화를 시도하는 것이겠지만, 그러한 해법은 아마도 계산상 비용이 엄청날 뿐만 아니라 대체로 불필요할 것이다. 이는 전술한 발견적 방법이 아마도 수락할 만한 결과를 생성하기 때문이다.
위에서 설명한 바와 같이, 후보 호스트(14)에의 후보 VM(12)의 전개를 특징화하는 레이팅을 결정하는 프로세스는 이미 가상화된 VM(12)에 관련해서만이 아니라 가상화를 위한 후보인 물리 머신(10)에 관련해서도 이용될 수 있다. 그러므로, 하나 이상의 후보 호스트들(14)에 대하여 평가기(18)에 의해 단 하나의 후보 VM(12)이 평가되었다. 그러나, 평가기(18)는 특정 후보 호스트(14)에 대하여, 또는 이용 가능한 후보 호스트들(14)의 대표에 대하여, 또는 복수의 후보 호스트들(14)에 대하여 복수의 후보 VM들(12)을 평가할 수도 있다는 것에 유의한다. 처음 2개의 경우, 평가기(18)는 사실상 복수의 후보 VM들(12) 중 어느 것이 후보 호스트(14)에 전개되기에 가장 적합한지를 판정하기 위해 이용되는 반면, 세 번째 경우 평가기(18)는 복수의 후보 VM들(12) 중 어느 것이 후보 호스트들(14) 중 어느 것에 전개되기에 가장 적합한지를 판정하기 위해 이용될 것이다. 따라서 특히 처음 2개의 경우에 관련하여, 평가기(18)는 가상화되어 후보 호스트(14)에 전개될 대응하는 VM들(12)에 의해 대표되는 복수의 후보 물리 머신들(10) 중에서 선택하기 위해 이용될 수 있다.
평가기(18)를 위한 후보 VM(12), 후보 호스트(14)의 데이터
위에서 언급된 바와 같이, 후보 VM(12)이 물리 머신(10)으로부터 이미 가상화되었는지 아직 가상화되지 않았는지에 따라서, 평가기(18)에 제공되어 평가기(18)에 의해 이용되는 후보 VM(12)에 대한 데이터는 상이한 소스들로부터 유래할 수 있다. 후보 VM(12)은 완전히 새로운 것이고 어떤 물리 머신(10)에도 기초하지 않을 수 있고, 그 경우 관리자 등은 프로세서, 메모리, 네트워크, 및 저장소 리소스 등을 포함하는 예상되는 리소스들에 기초하여 그러한 후보 VM의 데이터를 정의할 수 있다. 그 상기, 물리 머신(10)으로부터 유래된 후보 VM(12)에 대한 데이터 및 후보 호스트(14)에 대한 데이터는, 그러한 후보 VM(12) 및 후보 호스트(14)를 평가기(18)에게 더 정확하게 나타내기 위해, 물리 머신(10) 및 후보 호스트(14)로부터 각각 획득되는 구성 정보 및 성능 데이터로부터 유래될 수 있다.
특히 VM(12) 또는 호스트(14)에 대한 이용 가능한 성능 데이터에 관련하여, 그러한 데이터는 본 발명의 정신 및 범위에서 벗어나지 않고 데이터 수집기(20) 및 데이터 인터페이스(22)에 의하여 임의의 적절한 방식으로 샘플 등으로서 수집되어 집계될 수 있고, 이 경우 그러한 집계는 특히 이용의 합당한 표현을 생성한다고 추정한다. 특히, 리소스 이용은 일반적으로 비교적 낮지만 바쁜 시간에는 비교적 높다고 이해하면, 평균 이용은 그러한 이용에 대한 특별히 양호한 표현은 아니다. 대신에, 본 발명의 일 실시예에서, 이용은 비교적 높은 이용의 평균으로서 표현된다. 따라서, 샘플링된 데이터를 집계하여 그러한 평균 높은 이용을 생성하는 것은 다수의 시간 계층에 걸쳐서 수행될 수 있다. 특히, 각 계층에서는, 샘플링된 데이터의 다수의 최고 값들이 평균된다.
예를 들면, 이제 도 6을 참조하면, 특정 이용 데이터가 3개의 계층, 즉 매시간, 매일, 매주 데이터를 각각 나타내는 제1, 제2, 및 제3 계층으로 구성되는 경우일 수 있고, 여기서,
- 제1 계층의 매시간 데이터는 이용 데이터의 매시간 샘플들로 선택되고(단계 601),
- 제2 계층의 매일 데이터는 제1 계층의 매시간 데이터의 집계, 특히 그러한 매시간 데이터 중 3개의 가장 높은 샘플들의 평균이고(단계 603),
- 제3 계층의 매주 데이터는 제2 계층의 매일 데이터의 집계, 특히 그러한 매일 데이터 중 3개의 가장 높은 샘플들의 평균이고(단계 605),
- 평가기(18)에 의해 이용될 데이터의 최종 값은 제3 계층의 매주 데이터의 집계, 특히 그러한 매주 데이터 중 3개의 가장 높은 샘플들의 평균이다(단계 607).
물론, 본 발명의 정신 및 범위에서 벗어나지 않고 최종 값을 생성하기 위해 임의의 수의 계층 및 계층마다의 임의의 다른 집계 방법이 이용될 수 있다.
결론
본 발명과 관련하여 수행되는 프로세스들을 달성하는 데 필요한 프로그래밍은 비교적 간단하고 관련 프로그래밍 업계에 명백할 것이다. 따라서, 그러한 프로그래밍은 여기에 첨부되지 않는다. 본 발명의 정신 및 범위에서 벗어나지 않고 본 발명을 달성하기 위해 임의의 특정 프로그래밍이 이용될 수 있다.
상기 설명에서, 본 발명은 관리자 등이 물리 머신들(10) 등을 VM들(12)로서 호스트들 상에 전개할 수 있게 하는 새롭고 유익한 시스템 및 방법을 포함한다는 것을 알 수 있다. 그러한 시스템 및 방법은 정의된 작업 부하를 그 작업 부하를 지원하는 호환 가능한 물리 리소스들의 세트에 효율적으로 매칭시킴으로써, 네트워킹, 저장소, 프로세서 능력, 메모리 등을 포함하는 리소스 요건들을 고려하여 호환 가능한 효율적인 전개를 용이하게 한다. 그러므로, 본 발명은 개시된 특정 실시예들에 제한되지 않고, 첨부된 청구항들에 의해 정의된 본 발명의 정신 및 범위 내의 변형들을 포함한다.

Claims (20)

  1. 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치(호스트)에 관한 방법으로서,
    상기 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 VM에 의해 요구되는 리소스들을 고려하여 상기 후보 VM을 상기 후보 호스트에 전개할지를 판정하는 데 도움을 주기 위한 것이고, 상기 방법은,
    상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅(sub-rating)을 계산하는 단계 - 상기 리소스에 대한 서브레이팅은 상기 후보 VM이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응함 - ;
    상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 VM을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 계산하는 단계;
    상기 후보 호스트에 대한 레이팅을 선택기에 제공하는 단계 - 상기 선택기는 상기 후보 호스트의 레이팅에 기초하여 상기 후보 호스트에 상기 후보 VM을 전개할지를 판정하기 위한 것임 - ;
    상기 후보 VM의 전개를 위한 상기 후보 호스트의 선택을 수신하는 단계;
    상기 후보 VM이 상기 선택된 호스트에 전개될 때까지 상기 후보 VM에 의해 요구되는 상기 선택된 호스트의 리소스들을 예약하는 단계; 및
    상기 후보 VM을 상기 선택된 호스트에 전개하는 단계
    를 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후 보 호스트 컴퓨팅 장치에 관한 방법.
  2. 제1항에 있어서, 만일 상기 후보 VM의 전개를 위한 상기 후보 호스트가 비교적 높은 레이팅을 갖고 있고 상기 선택기가 복수의 호스트들에 걸쳐서 복수의 VM들의 부하 균형 조정(load balancing)을 수행하려고 하고 있다면 상기 선택기는 상기 후보 호스트를 선택하고, 여기서 상기 비교적 높은 레이팅은 상기 후보 VM의 전개 후에 남아 있는 비교적 높은 양의 리소스들을 갖는 후보 호스트에 대응하고, 만일 상기 후보 VM의 전개를 위한 상기 후보 호스트가 제로가 아닌 비교적 낮은 레이팅을 갖고 있고 상기 선택기가 상기 후보 호스트 상에서 복수의 VM들의 리소스 이용을 수행하려고 하고 있다면 상기 선택기는 상기 후보 호스트를 선택하고, 여기서 상기 비교적 낮은 레이팅은 상기 후보 VM의 전개 후에 남아 있는 비교적 낮은 양의 리소스들을 갖는 후보 호스트에 대응하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  3. 제1항에 있어서, 각 리소스에 대한 서브레이팅을, 그 리소스에 대하여 설정된 임계치, 수집된 데이터에 기초하여 그 리소스에 대하여 계산된 이용, 및 그 리소스에 할당된 가중치에 기초하여,
    서브레이팅 = (임계치 - 퍼센트 이용) × 가중치
    로서 계산하는 단계를 포함하고,
    상기 임계치는 상기 리소스에 대한 용량의 완충(cushion)을 제공하기 위해 상기 후보 호스트에서 상기 리소스에 대하여 정의된 예약에 대응하고, 각 리소스에 대응하는 상기 가중치는 다른 리소스들에 비하여 리소스에 상기 리소스에 대한 상대적인 강조를 제공하고, 상기 리소스에 대한 상기 이용은 상기 후보 VM 및 임의의 다른 VM들이 그 위에 전개되어 있는 동안 상기 후보 호스트에 의해 상기 리소스가 얼마만큼 이용되는지를 나타내는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  4. 제3항에 있어서, 상기 이용은 상기 후보 VM을 상기 후보 호스트에 전개하기 전의 기존 호스트 이용 및 상기 후보 호스트에 전개된 후의 상기 후보 VM으로부터의 호스트 이용을 포함하고, 상기 임계치는 상기 예약 이외의 상기 리소스의 양인, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  5. 제3항에 있어서, 상기 서브레이팅들 및 각각의 가중치들로부터,
    레이팅 = 서브레이팅들의 합/서브레이팅들의 가중치들의 합/정규화 값
    으로서 상기 레이팅을 계산하는 단계를 포함하고,
    상기 정규화 값은 상기 레이팅의 범위를 0과 최대 값 사이에 제한하도록 선택되는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  6. 제1항에 있어서, 상기 리소스들은 프로세서 이용, 메모리 이용, 저장소 이용, 및 네트워크 이용을 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  7. 제1항에 있어서, 상기 리소스들은 프로세서 이용을 포함하고, 상기 후보 VM의 프로세서 이용을 상기 후보 호스트의 등가의 프로세서 이용으로 스케일 조정(rescaling)하는 단계를 더 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  8. 제1항에 있어서, 적어도 하나의 리소스에 대하여 그러한 리소스에 관한 가상화 오버헤드에 대하여 고려하는 단계를 더 포함하고, 여기서 상기 가상화 오버헤드는 상기 후보 호스트 상에서 상기 후보 VM을 가상화하는 것과 관련된 상기 리소스의 추가의 이용을 나타내는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  9. 제1항에 있어서, 적어도 상기 후보 호스트 상에 전개되어 동작하는 상기 후보 VM에 대응하는 이용 파라미터들을 갖는 더미(dummy) VM을 상기 후보 호스트 상에 배치하여 상기 후보 호스트가 그러한 더미 VM을 무난하게 수용하는지를 판정하도록 시뮬레이트하는 것에 의하여 상기 후보 호스트 상에서의 상기 후보 VM의 실행을 시뮬레이트함으로써, 상기 후보 호스트가 적어도 상기 더미 VM에 의해 나타내어 지는 상기 후보 VM을 실제로 수용할 수 있는지를 확인하는 단계를 더 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  10. 제1항에 있어서, 만일 임의의 특정 리소스에 관하여 상기 호보 호스트가 이용 가능한 상기 리소스를 충분히 갖고 있지 않다면 상기 후보 호스트에 대한 상기 레이팅을 0으로 설정하는 단계를 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  11. 제10항에 있어서, 만일 상기 후보 호스트에서의 상기 후보 VM에 의한 상기 특정 리소스의 이용으로 인해 상기 후보 호스트가 그러한 리소스의 이용에 대하여 설정된 임계치를 초과하게 되면 상기 후보 호스트에 대한 상기 레이팅을 0으로 설정하는 단계를 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  12. 제1항에 있어서, 상기 후보 VM 및 복수의 후보 호스트 컴퓨팅 장치들(호스트들) - 이들 중 어느 하나에 상기 후보 VM이 잠재적으로 전개될 것임 - 에 관하여, 상기 방법은 각 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 VM에 의해 요구되는 리소스들을 고려하여 상기 후보 VM을 어느 후보 호스트에 전개할지를 판정하는 데 도움을 주기 위한 것이고, 상기 방법은, 각 후보 호스트에 대하여,
    상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅을 계산하는 단계 - 상기 리소스에 대한 서브레이팅은 상기 후보 VM이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응함 - ; 및
    상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 VM을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 계산하는 단계
    를 포함하고,
    상기 방법은 각 후보 호스트에 대한 레이팅을 선택기에 제공하는 단계를 더 포함하고, 상기 선택기는 상기 후보 VM의 전개를 위해 상기 후보 호스트들 중 하나를 그의 레이팅에 기초하여 선택하기 위한 것인, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  13. 제1항에 있어서, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 그룹에 관하여, 상기 호스트 그룹은 호스트들의 컬렉션이고, 그러한 호스트 그룹에 상기 후보 VM이 사실상 전개된다면 상기 호스트들 중 어느 하나가 상기 후보 VM을 수용할 수 있는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  14. 제1항에 있어서, 복수의 후보 VM들 및 상기 후보 호스트 - 상기 복수의 후보 VM들 중 어느 하나가 상기 후보 호스트에 잠재적으로 전개됨 - 에 관하여, 상기 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 각 후보 VM에 의해 요구되 는 리소스들을 고려하여 상기 후보 호스트에 어느 후보 VM을 전개할지를 판정하는 데 도움을 주기 위한 것이고, 상기 방법은, 각 후보 VM에 대하여,
    상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅을 계산하는 단계 - 상기 리소스에 대한 서브레이팅은 상기 후보 VM이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응함 - ; 및
    상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 VM을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 계산하는 단계
    를 포함하고,
    상기 방법은 각 후보 VM에 대한 레이팅을 선택기에 제공하는 단계를 더 포함하고, 상기 선택기는 상기 후보 호스트에의 전개를 위해 상기 후보 VM들 중 하나를 그의 레이팅에 기초하여 선택하기 위한 것인, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  15. 제1항에 있어서, 상기 후보 VM으로 잠재적으로 가상화될 후보 물리 머신 및 상기 후보 VM이 잠재적으로 전개될 상기 후보 호스트에 관하여, 상기 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 VM에 의해 요구되는 리소스들을 고려하여 상기 후보 물리 머신을 상기 후보 VM으로 가상화하여 상기 후보 VM을 상기 후보 호스트에 전개할지를 판정하는 데 도움을 주기 위한 것인, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  16. 제1항에 있어서, 임의의 특정 리소스에 대한 상기 서브레이팅을 상기 특정 리소스에 관하여 수집된 이용 데이터에 기초하여 계산하는 단계를 포함하고, 상기 이용 데이터는 상기 후보 VM 및 임의의 다른 VM들이 상기 후보 호스트 상에 전개되는 동안 상기 후보 호스트에 의해 상기 리소스가 얼마만큼 이용되는지를 나타내고,
    상기 이용 데이터의 매시간 샘플들로서 제1 계층의 데이터를 선택하고;
    상기 제1 계층의 상기 매시간 데이터로부터 그러한 매시간 데이터 중 3개의 가장 높은 샘플들을 평균함으로써 집계된 매일 데이터로서 제2 계층의 데이터를 선택하고;
    상기 제2 계층의 상기 매일 데이터로부터 그러한 매일 데이터 중 3개의 가장 높은 샘플들을 평균함으로써 집계된 매주 데이터로서 제3 계층의 데이터를 선택하고;
    상기 제3 계층의 상기 매주 데이터로부터 그러한 매주 데이터 중 3개의 가장 높은 샘플들을 평균함으로써 집계된 것으로서 최종 값을 계산함으로써,
    비교적 더 높은 이용을 강조하도록 집계된 샘플링된 데이터를 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  17. 제1항에 있어서, 상기 선택된 호스트의 리소스들을 예약하는 단계는 상기 선택된 호스트 상에 예약 VM을 전개하는 단계를 포함하고, 상기 예약 VM은 실질적 기 능 및 내용이 없지만 상기 후보 VM이 상기 선택된 호스트에 전개될 때까지 상기 후보 VM에 의해 요구되는 상기 선택된 호스트의 리소스들을 보유하는 VM인, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  18. 제1항에 있어서, 상기 후보 VM은 다른 호스트에 전개되고, 상기 후보 VM을 전개하는 단계는 상기 후보 VM을 상기 다른 호스트로부터 상기 선택된 호스트로 이주시키는 단계를 포함하는, 후보 가상 머신(VM) 및 상기 후보 VM이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  19. 후보 물리 머신 및 상기 후보 물리 머신이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치(호스트)에 관한 방법으로서,
    상기 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 상기 후보 물리 머신에 의해 요구되는 리소스들을 고려하여 상기 후보 물리 머신을 상기 후보 호스트에 전개할지를 판정하는 데 도움을 주기 위한 것이고, 상기 방법은,
    상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅을 계산하는 단계 - 상기 리소스에 대한 서브레이팅은 상기 후보 물리 머신이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응함 - ;
    상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 물리 머신을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 계산하는 단계;
    상기 후보 호스트에 대한 레이팅을 선택기에 제공하는 단계 - 상기 선택기는 상기 후보 호스트의 레이팅에 기초하여 상기 후보 호스트에 상기 후보 물리 머신을 전개할지를 판정하기 위한 것임 - ;
    상기 후보 VM의 전개를 위한 상기 후보 호스트의 선택을 수신하는 단계;
    상기 후보 물리 머신이 상기 선택된 호스트에 전개될 때까지 상기 후보 VM에 의해 요구되는 상기 선택된 호스트의 리소스들을 예약하는 단계; 및
    상기 후보 물리 머신을 그의 가상화된 버전으로서 상기 선택된 호스트에 전개하는 단계
    를 포함하는, 후보 물리 머신 및 상기 후보 물리 머신이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
  20. 제19항에 있어서, 복수의 후보 물리 머신들 및 상기 후보 호스트 - 상기 복수의 후보 물리 머신들 중 어느 하나가 상기 후보 호스트에 잠재적으로 전개됨 - 에 관하여, 상기 방법은 상기 후보 호스트로부터 이용 가능한 리소스들 및 각 후보 물리 머신에 의해 요구되는 리소스들을 고려하여 상기 후보 호스트에 어느 후보 물리 머신을 전개할지를 판정하는 데 도움을 주기 위한 것이고, 상기 방법은, 각 후보 물리 머신에 대하여,
    상기 후보 호스트로부터 이용 가능한 몇 개의 리소스들 각각에 대한 서브레이팅을 계산하는 단계 - 상기 리소스에 대한 서브레이팅은 상기 후보 물리 머신이 상기 후보 호스트에 전개된 후에 자유로운 상기 리소스의 양에 대응함 - ; 및
    상기 계산된 서브 레이팅들로부터 상기 후보 호스트가 상기 후보 물리 머신을 얼마나 잘 수용할 수 있는지를 특징화하는 레이팅을 계산하는 단계
    를 포함하고,
    상기 방법은 각 후보 물리 머신에 대한 레이팅을 선택기에 제공하는 단계를 더 포함하고, 상기 선택기는 상기 후보 호스트에의 전개를 위해 상기 후보 물리 머신들 중 하나를 그의 레이팅에 기초하여 선택하기 위한 것인, 후보 물리 머신 및 상기 후보 물리 머신이 잠재적으로 전개될 후보 호스트 컴퓨팅 장치에 관한 방법.
KR1020087027627A 2006-05-18 2007-02-15 작업 부하 특징화에 기초한 호스트에의 가상 머신 배치를 위한 방법 KR101432838B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/437,142 US20070271560A1 (en) 2006-05-18 2006-05-18 Deploying virtual machine to host based on workload characterizations
US11/437,142 2006-05-18
PCT/US2007/004188 WO2007136437A1 (en) 2006-05-18 2007-02-15 Deploying virtual machine to host based on workload characterizations

Publications (2)

Publication Number Publication Date
KR20090018905A true KR20090018905A (ko) 2009-02-24
KR101432838B1 KR101432838B1 (ko) 2014-08-26

Family

ID=38713348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087027627A KR101432838B1 (ko) 2006-05-18 2007-02-15 작업 부하 특징화에 기초한 호스트에의 가상 머신 배치를 위한 방법

Country Status (13)

Country Link
US (1) US20070271560A1 (ko)
EP (1) EP2024847A4 (ko)
JP (1) JP5162579B2 (ko)
KR (1) KR101432838B1 (ko)
CN (1) CN101449258B (ko)
AU (1) AU2007254462B2 (ko)
BR (1) BRPI0711752A8 (ko)
CA (1) CA2649714A1 (ko)
MX (1) MX2008014537A (ko)
MY (1) MY149953A (ko)
RU (1) RU2433459C2 (ko)
TW (1) TWI470551B (ko)
WO (1) WO2007136437A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101239290B1 (ko) * 2012-07-23 2013-03-06 (주)엔텍 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법
KR101341254B1 (ko) * 2012-01-04 2013-12-12 주식회사 엘지유플러스 가상 머신 구동 시스템 및 그 제어방법
KR101495862B1 (ko) * 2011-05-18 2015-03-13 한국전자통신연구원 제로 클라이언트를 지원하는 가상화 서버 및 가상 머신 관리 방법
US9459897B2 (en) 2012-10-31 2016-10-04 Samsung Sds Co., Ltd. System and method for providing data analysis service in cloud environment
KR101669567B1 (ko) * 2015-04-27 2016-10-27 울산과학기술원 가상 머신의 배치를 관리하는 방법
KR20200061393A (ko) * 2017-09-29 2020-06-02 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체

Families Citing this family (262)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924524B2 (en) * 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US7823152B2 (en) * 2006-06-06 2010-10-26 International Business Machines Corporation System and method for collaborative hosting of applications, virtual machines, and data objects
US8782671B2 (en) * 2006-07-26 2014-07-15 Hewlett-Packard Development Company, L. P. Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
US8032882B2 (en) * 2006-07-26 2011-10-04 Hewlett-Packard Development Company, L.P. System and method for controlling aggregate CPU usage by virtual machines and driver domains
US8209695B1 (en) * 2006-07-28 2012-06-26 Hewlett-Packard Development Company, L.P. Reserving resources in a resource-on-demand system for user desktop utility demand
US9092250B1 (en) * 2006-10-27 2015-07-28 Hewlett-Packard Development Company, L.P. Selecting one of plural layouts of virtual machines on physical machines
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US20080172671A1 (en) * 2007-01-11 2008-07-17 International Business Machines Corporation Method and system for efficient management of resource utilization data in on-demand computing
US9043391B2 (en) 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
US8176486B2 (en) * 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
US20100030877A1 (en) * 2007-02-23 2010-02-04 Mitsuru Yanagisawa Virtual server system and physical server selecting method
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
US8561061B2 (en) * 2007-05-14 2013-10-15 Vmware, Inc. Adaptive dynamic selection and application of multiple virtualization techniques
US20090007099A1 (en) * 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8046694B1 (en) 2007-08-06 2011-10-25 Gogrid, LLC Multi-server control panel
US20090049024A1 (en) * 2007-08-14 2009-02-19 Ncr Corporation Dynamic query optimization between systems based on system conditions
US8108857B2 (en) * 2007-08-29 2012-01-31 International Business Machines Corporation Computer program product and method for capacity sizing virtualized environments
US8127296B2 (en) * 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
JP5010492B2 (ja) * 2008-01-31 2012-08-29 株式会社東芝 通信装置、方法及びプログラム
WO2009108344A1 (en) * 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8935701B2 (en) * 2008-03-07 2015-01-13 Dell Software Inc. Unified management platform in a computer network
JP4577384B2 (ja) * 2008-03-14 2010-11-10 日本電気株式会社 管理マシン、管理システム、管理プログラム、および、管理方法
US9363143B2 (en) 2008-03-27 2016-06-07 International Business Machines Corporation Selective computation using analytic functions
US7882219B2 (en) * 2008-03-27 2011-02-01 International Business Machines Corporation Deploying analytic functions
US20090248722A1 (en) * 2008-03-27 2009-10-01 International Business Machines Corporation Clustering analytic functions
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US20090320020A1 (en) * 2008-06-24 2009-12-24 International Business Machines Corporation Method and System for Optimising A Virtualisation Environment
US9081624B2 (en) * 2008-06-26 2015-07-14 Microsoft Technology Licensing, Llc Automatic load balancing, such as for hosted applications
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
WO2010024027A1 (ja) * 2008-08-28 2010-03-04 日本電気株式会社 仮想サーバシステム及び物理サーバ選択方法
US8458717B1 (en) 2008-09-23 2013-06-04 Gogrid, LLC System and method for automated criteria based deployment of virtual machines across a grid of hosting resources
US8572608B2 (en) 2008-10-22 2013-10-29 Vmware, Inc. Methods and systems for converting a related group of physical machines to virtual machines
JP4839361B2 (ja) * 2008-11-11 2011-12-21 株式会社日立製作所 仮想マシン移動管理サーバおよび仮想マシン移動方法
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US10025627B2 (en) 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US8751654B2 (en) * 2008-11-30 2014-06-10 Red Hat Israel, Ltd. Determining the graphic load of a virtual desktop
US8918761B1 (en) 2008-12-05 2014-12-23 Amazon Technologies, Inc. Elastic application framework for deploying software
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8464267B2 (en) * 2009-04-10 2013-06-11 Microsoft Corporation Virtual machine packing method using scarcity
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
JP5315128B2 (ja) * 2009-05-25 2013-10-16 株式会社日立製作所 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法
US9424094B2 (en) 2009-06-01 2016-08-23 International Business Machines Corporation Server consolidation using virtual machine resource tradeoffs
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8489744B2 (en) * 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
US8694638B2 (en) * 2009-06-29 2014-04-08 Red Hat Israel Selecting a host from a host cluster to run a virtual machine
WO2011002946A1 (en) * 2009-06-30 2011-01-06 Citrix Systems, Inc. Methods and systems for selecting a desktop execution location
JP5375403B2 (ja) * 2009-07-23 2013-12-25 富士通株式会社 仮想マシン移動制御プログラム,仮想マシン移動制御方法および仮想マシン移動制御装置
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8495629B2 (en) * 2009-09-24 2013-07-23 International Business Machines Corporation Virtual machine relocation system and associated methods
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US8533711B2 (en) 2009-11-30 2013-09-10 Red Hat Israel, Ltd. Method and system for adjusting a selection algorithm for selecting a candidate host with a highest memory sharing history value with a target virtual machine from amongst a set of host machines that have a standard deviation of memory sharing history with the virtual machine below a threshold amount
US8832683B2 (en) * 2009-11-30 2014-09-09 Red Hat Israel, Ltd. Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine
US8327060B2 (en) * 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8589921B2 (en) * 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
US8887172B2 (en) * 2009-12-31 2014-11-11 Microsoft Corporation Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds
WO2011086824A1 (ja) * 2010-01-12 2011-07-21 日本電気株式会社 マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US20110202640A1 (en) * 2010-02-12 2011-08-18 Computer Associates Think, Inc. Identification of a destination server for virtual machine migration
US9122538B2 (en) 2010-02-22 2015-09-01 Virtustream, Inc. Methods and apparatus related to management of unit-based virtual resources within a data center environment
US9027017B2 (en) 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
CN102214117B (zh) * 2010-04-07 2014-06-18 中兴通讯股份有限公司南京分公司 虚拟机管理方法、系统及虚拟机管理服务器
US8495512B1 (en) 2010-05-20 2013-07-23 Gogrid, LLC System and method for storing a configuration of virtual servers in a hosting system
US8738333B1 (en) 2010-05-25 2014-05-27 Vmware, Inc. Capacity and load analysis in a datacenter
US8392625B2 (en) * 2010-06-25 2013-03-05 Intel Corporation Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system
US8826292B2 (en) 2010-08-06 2014-09-02 Red Hat Israel, Ltd. Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines
JP5417287B2 (ja) * 2010-09-06 2014-02-12 株式会社日立製作所 計算機システム、及び、計算機システムの制御方法
US8560544B2 (en) 2010-09-15 2013-10-15 International Business Machines Corporation Clustering of analytic functions
JP5352890B2 (ja) * 2010-09-24 2013-11-27 株式会社日立製作所 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9384029B1 (en) * 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
US8418185B2 (en) * 2010-10-19 2013-04-09 International Business Machines Corporation Memory maximization in a high input/output virtual machine environment
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8738972B1 (en) 2011-02-04 2014-05-27 Dell Software Inc. Systems and methods for real-time monitoring of virtualized environments
CN102646052B (zh) * 2011-02-16 2016-01-27 中国移动通信集团公司 一种虚拟机部署方法、装置及系统
JP5708013B2 (ja) * 2011-02-22 2015-04-30 富士通株式会社 仮想マシンの配置変更方法、仮想マシンの配置変更装置、及び、仮想マシンの配置変更プログラム
WO2012117453A1 (ja) * 2011-03-03 2012-09-07 株式会社日立製作所 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法
JP5652718B2 (ja) * 2011-03-11 2015-01-14 日本電気株式会社 バッチ処理制御装置、バッチ処理制御方法およびバッチ処理制御プログラム
US8566838B2 (en) 2011-03-11 2013-10-22 Novell, Inc. Techniques for workload coordination
US8806484B2 (en) 2011-04-18 2014-08-12 Vmware, Inc. Host selection for virtual machine placement
US9069890B2 (en) * 2011-04-20 2015-06-30 Cisco Technology, Inc. Ranking of computing equipment configurations for satisfying requirements of virtualized computing environments based on an overall performance efficiency
JP5729466B2 (ja) 2011-04-20 2015-06-03 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
WO2012155947A1 (en) * 2011-05-13 2012-11-22 Telefonaktiebolaget L M Ericsson (Publ) Allocation of virtual machines in datacenters
US8661182B2 (en) * 2011-05-26 2014-02-25 Vmware, Inc. Capacity and load analysis using storage attributes
JP5566342B2 (ja) * 2011-06-08 2014-08-06 株式会社エヌ・ティ・ティ・データ コンピュータシステム、仮想マシンデータ配置方法およびプログラム
WO2013019185A1 (en) 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating virtual machines
US8909785B2 (en) 2011-08-08 2014-12-09 International Business Machines Corporation Smart cloud workload balancer
EP2745248A4 (en) 2011-08-16 2015-06-17 Cirba Inc SYSTEM AND METHOD FOR DETERMINING AND VISUALIZING EFFECTS AND RISKS IN COMPUTER ENVIRONMENTS
WO2013029051A2 (en) 2011-08-25 2013-02-28 to fuVIRTUSTREAM, INC. Systems and methods of host-aware resource management involving cluster-based resource pools
US9495222B1 (en) 2011-08-26 2016-11-15 Dell Software Inc. Systems and methods for performance indexing
CN102279771B (zh) * 2011-09-02 2013-07-10 北京航空航天大学 一种虚拟化环境中自适应按需资源分配的方法及系统
US9722866B1 (en) * 2011-09-23 2017-08-01 Amazon Technologies, Inc. Resource allocation to reduce correlated failures
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US8850442B2 (en) * 2011-10-27 2014-09-30 Verizon Patent And Licensing Inc. Virtual machine allocation in a computing on-demand system
TWI533146B (zh) * 2011-11-10 2016-05-11 財團法人資訊工業策進會 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
TWI456502B (zh) * 2011-12-01 2014-10-11 Univ Tunghai 虛擬機叢集之動態資源分配方法
US8863141B2 (en) 2011-12-14 2014-10-14 International Business Machines Corporation Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history
US9292350B1 (en) 2011-12-15 2016-03-22 Symantec Corporation Management and provisioning of virtual machines
TWI452518B (zh) * 2011-12-21 2014-09-11 Inventec Corp 虛擬機器的配置方法與使用其之伺服器系統
CN103176847A (zh) * 2011-12-26 2013-06-26 英业达集团(天津)电子技术有限公司 虚拟机的分配方法
CN102591702B (zh) * 2011-12-31 2015-04-15 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US9110729B2 (en) 2012-02-17 2015-08-18 International Business Machines Corporation Host system admission control
TWI459296B (zh) * 2012-02-21 2014-11-01 Hon Hai Prec Ind Co Ltd 增加伺服器的虛擬機配置數量的方法
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
WO2013128836A1 (ja) * 2012-03-02 2013-09-06 日本電気株式会社 仮想サーバ管理装置及び仮想サーバの移動先決定方法
CN103309723B (zh) * 2012-03-16 2016-08-10 山东智慧生活数据系统有限公司 虚拟机资源整合系统及方法
JP5737789B2 (ja) * 2012-03-22 2015-06-17 株式会社日立ソリューションズ 仮想マシン運用監視システム
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8843935B2 (en) * 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9092269B2 (en) * 2012-06-21 2015-07-28 Microsoft Technology Licensing, Llc Offloading virtual machine flows to physical queues
US9043787B2 (en) * 2012-07-13 2015-05-26 Ca, Inc. System and method for automated assignment of virtual machines and physical machines to hosts
US20140019964A1 (en) * 2012-07-13 2014-01-16 Douglas M. Neuse System and method for automated assignment of virtual machines and physical machines to hosts using interval analysis
US9152443B2 (en) * 2012-07-13 2015-10-06 Ca, Inc. System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing
US8825550B2 (en) * 2012-08-23 2014-09-02 Amazon Technologies, Inc. Scaling a virtual machine instance
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9135048B2 (en) * 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
IN2015DN02823A (ko) * 2012-09-20 2015-09-11 Amazon Tech Inc
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9183033B2 (en) * 2012-12-06 2015-11-10 Industrial Technology Research Institute Method and system for analyzing root causes of relating performance issues among virtual machines to physical machines
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
CN103885831B (zh) * 2012-12-19 2017-06-16 中国电信股份有限公司 虚拟机宿主机的选择方法与装置
CN104981782B (zh) * 2013-02-01 2019-03-26 日本电气株式会社 用于控制资源的系统、控制模式生成装置
US9465630B1 (en) * 2013-02-20 2016-10-11 Ca, Inc. Assigning dynamic weighted variables to cluster resources for virtual machine provisioning
US20140344808A1 (en) * 2013-05-20 2014-11-20 International Business Machines Corporation Dynamically modifying workload patterns in a cloud
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
CA2915181A1 (en) * 2013-06-14 2014-12-18 Cirba Inc. System and method for determining capacity in computer environments using demand profiles
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
US9207976B2 (en) 2013-08-13 2015-12-08 International Business Machines Corporation Management of prioritizing virtual machines in an operating environment
CN103514046B (zh) * 2013-09-24 2017-04-26 华为技术有限公司 一种虚拟机放置方法及集群管理服务器
US9389970B2 (en) * 2013-11-01 2016-07-12 International Business Machines Corporation Selected virtual machine replication and virtual machine restart techniques
CN104683408A (zh) * 2013-11-29 2015-06-03 中国科学院深圳先进技术研究院 OpenStack云计算管理平台建立虚拟机实例的方法和系统
WO2015087449A1 (ja) * 2013-12-13 2015-06-18 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US9641385B1 (en) * 2013-12-16 2017-05-02 Amazon Technologies, Inc. Dynamic system configuration in a virtual environment
CN104714846B (zh) * 2013-12-17 2018-06-05 华为技术有限公司 资源处理方法、操作系统及设备
CN103902384B (zh) * 2014-03-28 2017-08-11 华为技术有限公司 为虚拟机分配物理机的方法及装置
WO2015163877A1 (en) * 2014-04-24 2015-10-29 Hewlett-Packard Development Company, L.P. Placing virtual machines on physical hardware to guarantee bandwidth
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9940167B2 (en) 2014-05-20 2018-04-10 Red Hat Israel, Ltd. Identifying memory devices for swapping virtual machine memory pages
US9116767B1 (en) 2014-06-06 2015-08-25 International Business Machines Corporation Deployment pattern monitoring
US11093279B2 (en) 2014-06-09 2021-08-17 International Business Machines Corporation Resources provisioning based on a set of discrete configurations
US9544367B2 (en) * 2014-06-16 2017-01-10 Verizon Patent And Licensing Inc. Automated server cluster selection for virtual machine deployment
US9286001B2 (en) * 2014-06-30 2016-03-15 Microsoft Licensing Technology Llc Effective range partition splitting in scalable storage
CN104133727A (zh) * 2014-08-08 2014-11-05 成都致云科技有限公司 基于实时资源负载分配的方法
US9092376B1 (en) 2014-08-29 2015-07-28 Nimble Storage, Inc. Methods and systems for ordering virtual machine snapshots
US9778990B2 (en) 2014-10-08 2017-10-03 Hewlett Packard Enterprise Development Lp Methods and systems for concurrently taking snapshots of a plurality of virtual machines
US9992304B2 (en) * 2014-10-13 2018-06-05 At&T Intellectual Property I, L.P. Relocation of applications to optimize resource utilization
US9727252B2 (en) 2014-11-13 2017-08-08 Hewlett Packard Enterprise Development Lp Methods and systems for optimal snapshot distribution within a protection schedule
WO2016090485A1 (en) 2014-12-09 2016-06-16 Cirba Ip Inc. System and method for routing computing workloads based on proximity
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US11182713B2 (en) 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize operating system license costs in a virtual data center
CN106033373B (zh) * 2015-03-11 2019-09-27 苏宁易购集团股份有限公司 一种云计算平台中虚拟机资源调度方法和调度系统
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9965309B2 (en) * 2015-03-23 2018-05-08 Empire Technology Development Llc Virtual machine placement
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
CN106325999A (zh) * 2015-06-30 2017-01-11 华为技术有限公司 一种分配宿主机资源的方法和装置
US10310883B2 (en) * 2015-07-06 2019-06-04 Purdue Research Foundation Integrated configuration engine for interference mitigation in cloud computing
US11403099B2 (en) * 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9857871B2 (en) 2015-09-04 2018-01-02 Sony Interactive Entertainment Inc. Apparatus and method for dynamic graphics rendering based on saccade detection
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9959146B2 (en) * 2015-10-20 2018-05-01 Intel Corporation Computing resources workload scheduling
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10303488B2 (en) 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10275239B2 (en) 2016-03-30 2019-04-30 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10915333B2 (en) 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10372205B2 (en) 2016-03-31 2019-08-06 Sony Interactive Entertainment Inc. Reducing rendering computation and power consumption by detecting saccades and blinks
US10401952B2 (en) 2016-03-31 2019-09-03 Sony Interactive Entertainment Inc. Reducing rendering computation and power consumption by detecting saccades and blinks
US10169846B2 (en) 2016-03-31 2019-01-01 Sony Interactive Entertainment Inc. Selective peripheral vision filtering in a foveated rendering system
US10192528B2 (en) 2016-03-31 2019-01-29 Sony Interactive Entertainment Inc. Real-time user adaptive foveated rendering
CN105955826A (zh) * 2016-05-10 2016-09-21 广东睿江云计算股份有限公司 一种云主机系统中服务质量的控制方法及装置
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
CN107479950B (zh) * 2016-06-08 2021-03-05 阿里巴巴集团控股有限公司 一种虚拟机调度方法、设备及系统
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10540196B2 (en) * 2016-07-01 2020-01-21 Intel Corporation Techniques to enable live migration of virtual environments
JP6511023B2 (ja) * 2016-08-22 2019-05-08 日本電信電話株式会社 仮想マシン管理装置およびデプロイ可否判断方法
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US9740465B1 (en) 2016-11-16 2017-08-22 Vector Launch Inc. Orchestration of software application deployment in a satellite platform
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
US10552272B2 (en) * 2016-12-14 2020-02-04 Nutanix, Inc. Maintaining high availability during N-node failover
CN108241531A (zh) * 2016-12-23 2018-07-03 阿里巴巴集团控股有限公司 一种在集群中为虚拟机分配资源的方法和装置
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10296367B2 (en) * 2017-02-03 2019-05-21 Microsoft Technology Licensing, Llc Resource management for virtual machines in cloud computing systems
US10942760B2 (en) 2017-02-03 2021-03-09 Microsoft Technology Licensing, Llc Predictive rightsizing for virtual machines in cloud computing systems
US10423455B2 (en) 2017-02-03 2019-09-24 Microsoft Technology Licensing, Llc Method for deploying virtual machines in cloud computing systems based on predicted lifetime
US10887176B2 (en) * 2017-03-30 2021-01-05 Hewlett Packard Enterprise Development Lp Predicting resource demand in computing environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US20190068466A1 (en) * 2017-08-30 2019-02-28 Intel Corporation Technologies for auto-discovery of fault domains
CN107643939A (zh) * 2017-09-14 2018-01-30 郑州云海信息技术有限公司 一种分配虚拟机的方法及系统
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10904090B2 (en) * 2018-01-26 2021-01-26 Nutanix, Inc. Virtual machine placement based on network communication patterns with other virtual machines
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
JP7115213B2 (ja) * 2018-10-19 2022-08-09 富士フイルムビジネスイノベーション株式会社 情報処理システムおよび認証システム
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US10735278B1 (en) * 2019-03-12 2020-08-04 Pivotal Software, Inc. Service availability metrics
US11442763B2 (en) 2019-04-26 2022-09-13 Dell Products L.P. Virtual machine deployment system using configurable communication couplings
US11263037B2 (en) 2019-08-15 2022-03-01 International Business Machines Corporation Virtual machine deployment
US11080083B1 (en) 2019-08-28 2021-08-03 Juniper Networks, Inc. Providing physical host hardware state information to virtual machines deployed on the physical host
US11586567B2 (en) 2020-01-07 2023-02-21 Vmware, Inc. Techniques for virtualizing PF-VF mailbox communication in SR-IOV devices
US11544097B2 (en) * 2020-01-07 2023-01-03 Vmware, Inc. Dynamic reconfiguration of virtual devices for migration across device generations
CN111563451B (zh) * 2020-05-06 2023-09-12 浙江工业大学 基于多尺度小波特征的机械通气无效吸气努力识别方法
US11307889B2 (en) 2020-05-28 2022-04-19 International Business Machines Corporation Schedule virtual machines
US11886926B1 (en) * 2020-12-10 2024-01-30 Amazon Technologies, Inc. Migrating workloads between computing platforms according to resource utilization
US11593180B2 (en) 2020-12-15 2023-02-28 Kyndryl, Inc. Cluster selection for workload deployment
US20220237049A1 (en) * 2021-01-26 2022-07-28 Vmware, Inc. Affinity and anti-affinity with constraints for sets of resources and sets of domains in a virtualized and clustered computer system
US20220237048A1 (en) * 2021-01-26 2022-07-28 Vmware, Inc. Affinity and anti-affinity for sets of resources and sets of domains in a virtualized and clustered computer system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2536304B2 (ja) * 1990-12-12 1996-09-18 日本電気株式会社 ジョブ終了時間予測システム
KR100649799B1 (ko) * 1998-03-23 2006-11-24 썬 마이크로시스템즈, 인코포레이티드 고속 서브-클레스 검사 및 서브-타입 검사를 컴퓨터에 의해 구현하는 방법 그 시스템
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US8375127B1 (en) * 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
JP2001094629A (ja) * 1999-09-21 2001-04-06 Canon Inc ネットワーク接続装置及びその制御方法ならびに記録媒体
US6985937B1 (en) * 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
JP2001350707A (ja) * 2000-06-06 2001-12-21 Hitachi Ltd 情報処理システム、記憶装置の割り当て方法
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6957435B2 (en) * 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
US7548975B2 (en) * 2002-01-09 2009-06-16 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7725434B2 (en) * 2003-04-15 2010-05-25 At&T Intellectual Property, I, L.P. Methods, systems, and computer program products for automatic creation of data tables and elements
US7644408B2 (en) * 2003-04-25 2010-01-05 Spotware Technologies, Inc. System for assigning and monitoring grid jobs on a computing grid
US7478393B2 (en) * 2003-04-30 2009-01-13 International Business Machines Corporation Method for marketing to instant messaging service users
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
TWI253251B (en) * 2003-09-19 2006-04-11 Inst Information Industry Network address port translation gateway providing fast query and replacement for virtual host service, and the method thereof
US7437730B2 (en) * 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system
JP2005309644A (ja) * 2004-04-20 2005-11-04 Hitachi Ltd リソース制御方法及びそのシステム
US7979863B2 (en) * 2004-05-21 2011-07-12 Computer Associates Think, Inc. Method and apparatus for dynamic CPU resource management
US20060005190A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for implementing an operating system in a virtual machine environment
GB2416878B (en) * 2004-08-06 2008-05-14 Univ Surrey Resource management in grid computing
US8095928B2 (en) * 2004-10-06 2012-01-10 Hewlett-Packard Development Company, L.P. Method of forming virtual computer cluster within shared computing environment
GB2419701A (en) * 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
US7668703B1 (en) * 2005-06-07 2010-02-23 Hewlett-Packard Development Company, L.P. Determining required capacity for a resource
US20070204266A1 (en) * 2006-02-28 2007-08-30 International Business Machines Corporation Systems and methods for dynamically managing virtual machines

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101495862B1 (ko) * 2011-05-18 2015-03-13 한국전자통신연구원 제로 클라이언트를 지원하는 가상화 서버 및 가상 머신 관리 방법
US9063793B2 (en) 2011-05-18 2015-06-23 Electronics And Telecommunications Research Institute Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes
KR101341254B1 (ko) * 2012-01-04 2013-12-12 주식회사 엘지유플러스 가상 머신 구동 시스템 및 그 제어방법
KR101239290B1 (ko) * 2012-07-23 2013-03-06 (주)엔텍 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법
US9459897B2 (en) 2012-10-31 2016-10-04 Samsung Sds Co., Ltd. System and method for providing data analysis service in cloud environment
KR101669567B1 (ko) * 2015-04-27 2016-10-27 울산과학기술원 가상 머신의 배치를 관리하는 방법
KR20200061393A (ko) * 2017-09-29 2020-06-02 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체

Also Published As

Publication number Publication date
RU2433459C2 (ru) 2011-11-10
CA2649714A1 (en) 2007-11-29
TWI470551B (zh) 2015-01-21
US20070271560A1 (en) 2007-11-22
EP2024847A1 (en) 2009-02-18
EP2024847A4 (en) 2009-08-12
BRPI0711752A8 (pt) 2017-01-17
AU2007254462A1 (en) 2007-11-29
JP2009537894A (ja) 2009-10-29
KR101432838B1 (ko) 2014-08-26
CN101449258A (zh) 2009-06-03
AU2007254462B2 (en) 2011-09-29
JP5162579B2 (ja) 2013-03-13
MY149953A (en) 2013-11-15
TW200818020A (en) 2008-04-16
MX2008014537A (es) 2008-11-27
RU2008145502A (ru) 2010-05-27
BRPI0711752A2 (pt) 2012-01-03
CN101449258B (zh) 2012-03-28
WO2007136437A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
KR101432838B1 (ko) 작업 부하 특징화에 기초한 호스트에의 가상 머신 배치를 위한 방법
US11204793B2 (en) Determining an optimal computing environment for running an image
US10666516B2 (en) Constraint-based virtual network function placement
US9871856B2 (en) Resource allocation diagnosis on distributed computer systems
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US8423646B2 (en) Network-aware virtual machine migration in datacenters
WO2009029496A1 (en) Virtualization planning system
US11055568B2 (en) Method and system that measure application response time
Wood Improving data center resource management, deployment, and availability with virtualization
CN111061561A (zh) 云计算管理平台的全阶段负载分担综合优化方法
Liu et al. SLA-driven container consolidation with usage prediction for green cloud computing
JP2023538938A (ja) 共用可能なアプリケーションスナップショットの為のコンパイル化戦略
US8429218B2 (en) Process restart on a compute node
Mendes et al. Oversubscribing micro-clouds with energy-aware containers scheduling
Aqasizade et al. Kubernetes in Action: Exploring the Performance of Kubernetes Distributions in the Cloud
Hyder et al. Power Aware Virtual Machine Migration for Resource Allocation in Cloud
LU500944B1 (en) Automated recovery of stranded resources within a cloud computing environment
US20220232069A1 (en) Actor-and-data-grid-based distributed applications
Qiu et al. Poux: Performance optimization strategy for cloud platforms based on user experience
CN117032953A (zh) 一种提升vdi远程桌面性能的方法
CN117992180A (zh) 一种异构云计算资源统一算力测算的方法和系统
Medeiros et al. Performance evaluation of lossless file compression in the cloud: a study based on Eucalyptus platform
Kaur et al. Minimizing Virtual Machine Migration for Efficient Resource Management in Green Clouds
Sui et al. Virtual Machine Scheduling Model Based on Energy and Interference Awareness in Cloud Environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee