KR20120002989A - 최적화된 가상 장치 마이그레이션 메커니즘 - Google Patents

최적화된 가상 장치 마이그레이션 메커니즘 Download PDF

Info

Publication number
KR20120002989A
KR20120002989A KR1020117023522A KR20117023522A KR20120002989A KR 20120002989 A KR20120002989 A KR 20120002989A KR 1020117023522 A KR1020117023522 A KR 1020117023522A KR 20117023522 A KR20117023522 A KR 20117023522A KR 20120002989 A KR20120002989 A KR 20120002989A
Authority
KR
South Korea
Prior art keywords
host
devices
virtual
mapping
host devices
Prior art date
Application number
KR1020117023522A
Other languages
English (en)
Other versions
KR101654395B1 (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 KR20120002989A publication Critical patent/KR20120002989A/ko
Application granted granted Critical
Publication of KR101654395B1 publication Critical patent/KR101654395B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Abstract

가상 장치 관리 시스템이 가상 장치들을 덜 효율적인 호스트들로부터 좀더 효율적인 호스트들로 이동시키기 위해 삼 단계 마이그레이션 분석을 수행할 수 있다. 많은 경우들에서, 마이그레이션은 비효율적인 호스트 장치들로 하여금 가동 중단되게 하여 데이터센터 또는 다른 사용자들에게 전체 에너지 비용을 감소시킬 수 있다. 마이그레이션 분석은 가상 장치들을 통합하고 호스트 장치들을 자유롭게할 때, 제 1 통합, 로드 밸런싱, 그리고 제 2 통합을 수행하는 단계를 포함할 수 있다. 마이그레이션 분석은 또한 용량을 확장시킬 때, 제 1 로드 밸런싱, 통합, 그리고 제 2 로드 밸런싱을 수행하는 단계를 포함할 수 있다.

Description

최적화된 가상 장치 마이그레이션 메커니즘{OPTIMIZED VIRTUAL MACHINE MIGRATION MECHANISM}
가상 장치(virtual machine)는 컴퓨터 장치의 컴퓨터 소프트웨어적 구현이고, 이때 가상 장치는 물리적 컴퓨터처럼 프로그램들을 실행할 수 있다. 가상 장치들은 수많은 호스트 장치들이 운용될 수 있는 데이터센터들 안에서 널리 이용된다. 컴퓨터 리소스들을 관리하기 위해서, 많은 데이터 센터들은 서버 컴퓨터들을 가상 장치들로 실행시키며, 이는 기상 장치들이 한 호스트 장치로부터 다른 호스트 장치로 이동될 수 있기 때문이다.
많은 데이터센터들은 순환적 단위(cyclical basis)로 운용되고, 이때 수요는 하루 중 특정 시기 또는 일주일 중에 특정한 날에 집중될 수 있다. 수요이 적은 기간 동안에, 가상 장치는 특정 호스트 장치들에 통합되어(consolidated) 다른 호스트 장치들이 가동 중단(turned off) 또는 절전 모드(reduced power mode)에서 가동될 수 있게 한다.
많은 경우들에서, 데이터센터는 많은 전력량을 소모한다. 컴퓨터 작업량이 감소된 기간 동안 하드웨어 가동 중단을 통해서, 데이터센터는 상당한 전기 비용을 감소할 수 있다.
가상 장치들을 호스트 장치들에 배치하는 방법은 복잡한 패킹(packing) 문제일 수 있다.
가상 장치 관리 시스템은 가상 장치들을 저효율의 호스트로부터 고효율의 호스트로 이동시키는 삼 단계(phase) 마이그레이션 분석(migration analysis)을 수행할 수 있다. 많은 경우들에서, 마이그레이션은 저효율 호스트 장치로 하여금 전력을 낮추도록 하여 데이터센터 또는 다른 사용자의 전체적 에너지 비용을 절감하도록 할 수 있다. 마이그레이션 분석은 제 1 통합(consolidation), 로드 밸런싱(load balancing), 그리고 가상 장치들을 통합시키고 호스트 장치들을 자유롭게 하는 제 2 통합을 수행하는 단계를 포함할 수 있다. 마이그레이션 분석은 또한 제 1 로드 밸런싱, 통합, 그리고 용량이 확장될 때 제 2 로드 밸런싱을 수행하는 단계를 포함할 수 있다.
이 요약은 상세한 설명에서 자세하게 서술될 내용들의 개념들 중 선정된 것을 간략한 형식으로 소개하기 위해 제공된다. 이 요약은 청구되는 내용의 주된 특징 또는 핵심적 특징을 식별하기 위한 의도가 아닐 뿐만 아니라 청구되는 내용의 범위를 한정하기 위한 의도 또한 아니다.
도면에서,
도 1은 가상 장치들을 관리하는 시스템을 보여주는 실시예의 다이어그램의 도시이다.
도 2는 통합을 수행하는 방법을 보여주는 실시예의 플로우차트의 도시이다.
도 3은 로드 밸런싱을 수행하는 방법을 보여주는 실시예의 플로우차트의 도시이다.
도 4는 효율성을 판단하고 데이터를 수집하는 방법을 보여주는 실시예의 플로우차트의 도시이다.
도 5는 통합 방법을 보여주는 실시예의 플로우차트의 도시이다.
도 6은 로드 밸런싱 방법을 보여주는 실시예의 플로우차트의 도시이다.
효율성 중심의 최적화 방법(efficiency driven optimization process)은 데이터센터 또는 가상 장치들을 위한 호스트 장치들의 다른 그룹들 내의 용량의 증대 또는 감축을 위한 삼 단계 마이그레이션 분석을 수행할 수 있다. 많은 경우들에서, 가상 장치들의 통합 또는 로드 밸런싱을 위한 삼 단계 마이그레이션 분석은 가상 장치들로 하여금 저효율의 호스트 장치들로부터 보다 효율적인 호스트 장치들로의 이동을 유발할 수 있고, 보다 효율적인 호스트 장치의 가동과 저효율 호스트 장치의 가동 중단을 포함할 수 있다.
삼 단계 마이그레이션 분석은 호스트 장치들에 대한 효율성 지수(efficiency score)의 판단 근거가 되는 데이터를 수집하는 단계를 포함할 수 있다. 효율성 지수는 전력 강하(powering down)의 대상 후보들을 식별하는데 사용될 수 있고, 그 후보들의 가상 장치들은 제 1 통합 과정 내에서 다른 호스트들로의 이동이 시도될 수 있다. 제 1 통합 과정 동안에, 가상 장치들의 배치에 있어서 높은 임계 값(threshold)이 사용될 수 있다.
통합 과정의 제 2단계에서, 로드 밸런싱 작업이 과부하 된 호스트 장치들에 대하여 수행될 수 있다. 일부 경우들에서, 로드 밸런싱 작업은 가상 장치들의 일부를 받아들이기 위해 하나 또는 그 이상의 호스트들을 가동시키는 결과를 야기할 수 있다. 새로 가동되는 호스트들은 보다 효율적인 호스트들 중에서 선택될 수 있다.
통합 과정의 제 3단계에서, 제 2 통합 작업은 임의의 잠재적으로 충분히 활용되지 않은 호스트 장치들을 식별하도록 수행될 수 있다. 제 2 통합 작업에서, 호스트 장치들이 과부하 되지 않도록 가상 장치들을 배치함에 있어서 낮은 임계 값이 사용될 수 있다.
로드 밸런싱 작업은 통합 작업과 유사한 방식으로 운용할 수 있다. 로드 밸런싱 작업의 제 1단계에서, 가상 장치들이 배치될 수 있는 호스트 장치들을 식별하기 위해 낮은 임계 값이 사용될 수 있다. 임의의 새로운 호스트 장치들이 가장 효율적인 호스트 장치들 중에서 선택될 수 있다. 제 2단계는 통합 단계일 수 있고, 제 3단계는 높은 임계 값을 가진 제 2 로드 밸런싱 작업일 수 있다.
최적화 과정은 호스트 장치상의 가상 장치의 현재 상태를 고려할 수 있고, 가상 장치의 움직임 또는 스래싱(thrashing)을 최소화할 수 있다. 더 나아가, 최적화 과정은 가상 장치들을 비효율적인 호스트 장치로부터 보다 효율적인 호스트 장치들로 이동시키는 것을 촉진할 수 있다.
상세한 설명과 청구항들 전체에서, 용어 "호스트(host)"는 가상 장치가 실행될 수 있는 물리적 하드웨어 플랫폼을 지칭하는데 사용된다. 일부 실시예들에서, 경량의 운용 시스템(lightweight operating system)은 호스트 상에서 실행될 수 있고, 하나 또는 그 이상의 가상 장치들을 지원할 수 있다. 일부 실시예들에서, 수십 또는 수천 개의 가상 장치들이 하나의 물리적 호스트 장치상에서 실행될 수 있다.
용어 "호스트(host)"는 가상 장치가 실행될 수 있는 임의의 종류의 하드웨어 플랫폼일 수 있다. 일부 경우들에서, 하드웨어 플랫폼은 전문화된 프로세서들, 메모리, 디스크 저장부, 그리고 가상 장치들을 실행하도록 전문적으로 설계된 네트워크 연결일 수 있다. 다른 경우들에서, 호스트는 통상적인 데스크톱 또는 서버 컴퓨터, 또는 휴대 전화, 랩톱 컴퓨터, 또는 다른 장치와 같은 휴대 장치일 수 있다. 상세한 설명의 목적상, 많은 예시들이 데이터센터 애플리케이션들을 포함하나, 당업자는 많은 다른 구현들이 가능함을 인지할 것이다.
상세한 설명 내내 같은 참조 번호들은 도면의 서술 전반에 걸쳐서 동일한 요소들을 나타낸다.
요소들이 "연결(connected)" 또는 "결합(coupled)"되었다고 언급될 때, 요소들은 직접적으로 연결 또는 결합되거나 하나 또는 그 이상의 중개 요소들(intervening elements)이 존재할 수 있다. 그와 대조적으로, 요소들이 "직접 연결(directly connected)" 또는 "직접 결합(directly coupled)"되었다고 언급될 때는 중개 요소들이 존재하지 않는다.
발명은 장치들, 시스템들, 방법들, 및/또는 컴퓨터 프로그램 제품들로 구현될 수 있다. 그래서 발명 내용의 일부 또는 전부는 하드웨어 및/또는 소프트웨어(펌웨어, 레지던트 소프트웨어(resident software), 마이크로코드(microcode), 상태 장치들(state machines), 게이트 어레이들(gate arrays), 등을 포함)로 구현될 수 있다. 더 나아가, 발명은 명령 실행 시스템에 의해 사용되는 또는 관련되는 매체에 구현된 컴퓨터 사용 가능(computer-usable) 또는 컴퓨터 판독 가능한(computer-readable) 프로그램 코드를 포함하는 컴퓨터 사용 가능 또는 컴퓨터 판독 가능한 저장 매체의 형식을 가질 수 있다. 이 문서의 내용에서, 컴퓨터 사용 가능 또는 컴퓨터 판독 가능한 매체는 명령 실행 시스템, 장치, 또는 기기에 의해 사용되는 또는 관련되는 프로그램을 포함, 저장, 의사 전달, 전파, 또는 전송할 수 있는 임의의 매체일 수 있다.
컴퓨터 사용 가능 또는 컴퓨터 판독 가능한 매체는, 예를 들면 전기적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치, 기기, 또는 전파 매체 등을 포함하나 이에 한정되지 않는다. 예시적 형태로서, 한정적 의미 없이, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체와 통신 매체로 구성될 수 있다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현될 수 있는 휘발성과 비휘발성, 이동식과 고정식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부 또는 다른 자기 저장 장치들, 또는 원하는 정보를 저장하는데 사용될 수 있고 명령 실행 시스템에 의해 접속될 수 있는 임의의 다른 매체를 포함할 수 있고 이에 한정되지 않는다. 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체는 예를 들면 종이 또는 다른 매체의 광학 스캐닝을 통해서 전기적으로 프로그램을 캡쳐할 수 있도록 종이 또는 프로그램이 프린트되고, 그 뒤에 컴파일되고, 해석되고, 그렇지 않았다면 필요한 경우에 적절한 방법으로 프로세스 되고 그 뒤에 컴퓨터 메모리 안에 저장되는 다른 적절한 매체일 수 있음에 주의한다.
통신 매체는 일반적으로 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 반송파(carrier wave) 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 안의 다른 데이터들로 구현되고 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 신호 내의 정보가 인코드 되도록 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 일 예로서, 통신 매체는 유선 네트워크 또는 직접 유선(direct-wired) 접속과 같은 유선 매체와, 음향, 무선 주파수, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되지는 않는다. 또한, 상기 매체의 임의의 조합도 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
발명이 컴퓨터 실행 가능 명령의 일반 콘텍스트(general context) 안에 구현될 수 있고, 실시예는 하나 또는 그 이상의 시스템들, 컴퓨터들, 또는 다른 장치들에 의해 실행되는 프로그램 모듈로 구성될 수 있다. 일반적으로, 프로그램 모듈들을 특정 작업을 수행하거나 특정 압축 데이터 형식들을 구현하는 루틴들(routines), 프로그램들, 객체들, 요소들, 리소스들, 데이터 구조들 등을 포함한다. 일반적으로, 프로그램 모듈들의 기능은 다양한 실시예들 안에서 필요에 따라 병합 또는 분산될 수 있다.
도 1은 가상 장치들을 관리하는 시스템을 보여주는 실시예(100)의 다이어그램이다. 실시예(100)는 여러 호스트 장치들 상에서 가상 장치들을 관리하는 시스템의 단순화된 예시이다.
도 1의 다이어그램은 시스템의 기능 요소들을 도시한다. 일부 경우들에서, 요소는 하드웨어 요소, 소프트웨어 요소, 또는 하드웨어와 소프트웨어의 결합일 수 있다. 일부 요소들은 애플리케이션 레벨 소프트웨어(application level software)일 수 있고, 다른 요소들을 운용 시스템 레벨 요소(operating system level component)일 수 있다. 어떤 경우에, 한 구성요소와 다른 구성요소 간의 연결이 2개 이상의 구성요소가 하나의 하드웨어 플랫폼상에서 동작하고 있는 근접 연결(close connection)일 수 있다. 다른 경우에, 연결이 장거리에 걸쳐 있는 네트워크 연결을 통해 이루어질 수 있다. 각각의 실시예는 기술된 기능들을 달성하기 위해 서로 다른 하드웨어, 소프트웨어, 및 상호연결 아키텍처를 사용할 수 있다.
실시예(100)는 많은 호스트 장치들을 포함할 수 있는 데이터센터의 예시이고, 각각의 호스트 장치는 복수의 가상 장치들을 실행할 수 있다. 가상 장치들은 장치의 소프트웨어 버젼일 수 있다. 큰 데이터센터 환경 안에서, 서버 컴퓨터들은 가상 장치들로 구현될 수 있다. 수요(demand)가 감소하면, 가상 장치들은 다른 호스트들의 출력이 낮아지거나 감소된 에너지 상태에서 운용되도록 일부 호스트 장치들로 통합될 수 있다. 수요가 늘어나면, 호스트들은 가동될 수 있고 가상 장치들은 사용 가능한 상태인 호스트들 사이에 분산될 수 있다. 가상 장치들을 사용 가능한 호스트들에 분산하는 과정이 로드 밸런싱으로 알려져 있다.
데이터센터의 전체 로드가 감소할 때, 일부 호스트 장치들이 충분히 활용되지 못할 수 있다. 불충분하게 활용되는 호스트들은 그 호스트 상의 가상 장치들이 다른 호스트들로 이동하고, 그 호스트가 운용 중단되는 과정을 통해서 통합될 수 있다. 일반적으로, 통합 액션(consolidation action)은 여러 호스트 장치들이 충분히 활용되지 못하는 경우에 발생할 수 있다.
통합할 호스트를 선택할 때, 호스트의 활용 여부와 관계없이 비효율적인 호스트가 선택될 수 있다. 선택된 호스트 상의 가상 장치들이 그 호스트를 떠나고 나서, 호스트는 운용이 중단되거나 감소된 전력 모드에서 운용될 수 있다.
데이터센터의 전체 로드가 증가할 때, 일부 호스트들은 과부하될 수 있다. 과부하된 호스트들은 가상 장치를 과부하된 호스트로부터 과부하되지 않은 다른 운용 호스트들로 이동시킴으로써 로드 밸런스 될 수 있다. 일부 경우들에서, 자신을 스스로를 과부하시키지 않고 가상 장치를 받아들일 수 있는 다른 호스트들이 없을 수도 있다. 이런 경우에는, 새로운 호스트들이 가동이 개시되도록 인식될 수 있고 가상 장치는 새 호스트로 이동될 수 있다.
로드 밸런싱 도중에 가동을 개시할 호스트를 선택할 때, 효율적인 호스트가 선택될 수 있다.
호스트의 효율성은 호스트에 의해 공급된 리소스를 소모된 출력으로 나누어서 판단될 수 있다. 많은 실시예들에서, 리소스는 CPU 용량일 수 있고, 다른 실시예들에서는 다른 리소스들을 사용할 수도 있다.
많은 경우들에서, 호스트들은 다른 용량들 및 다른 능력들을 가질 수 있다. 호스트 상에서 사용 가능한 리소스들은 소비 가능한 리소스들과 소비 가능하지 않은 리소스들로 분류될 수 있다.
소비 가능한 리소스는 가상 장치에 의해 소비되는 것으로 다른 가상 장치들 또는 호스트 운용 시스템과 공유될 수 없다. 소비 가능한 리소스의 예로는 RAM(random access memory)을 들 수 있다. 각각의 가상 장치는 가상 장치에 배치된 RAM의 전용 용량을 가질 수 있고, 그 RAM은 다른 가상 장치들에 의해서는 사용되지 않는다. 다른 예시로는 디스크 공간 또는 다른 저장부를 들 수 있다.
일부 경우들에서, 소비 가능한 리소스는 다양한 요소 리소스들의 총체(summation)로 간주될 수 있다. 예를 들면, 하드 디스크 리소스는 디스크 읽기 속도, 디스크 쓰기 속도, 그리고 용량의 총체로 간주될 수 있다.
소비 불가능한 리소스는 가상 장치들 또는 호스트 운용 시스템에 의해서 공유될 수 있는 리소스일 수 있다. 그 예로는 호스트 장치상에서 사용 가능한 여러 프로세서들을 들 수 있다. 일부 가상 장치들은 둘, 넷, 또는 그 이상의 프로세서들 또는 코어들(cores)을 사용하여 가동될 수 있다. 가상 장치가 네 개의 프로세서들을 사용하지만, 다른 가상 장치들 또는 호스트 운용 시스템 또한 동일한 프로세서들을 사용할 수 있다.
바이너리(binary) 리소스는 소비 불가능한 리소스들의 부분 집합일 수 있다. 바이너리 리소스는 호스트 상에 존재하거나 존재하지 않는 리소스일 수 있다. 예를 들면, 호스트는 그래픽 프로세서 또는 특정 가상 장치에 의해 사용될 수 있는 다른 특성들을 가질 수도 있고 또는 가지지 않을 수도 있다.
다양한 리소스들이 이 상세한 설명에서 가상 장치들을 호스트들 상에 배치할 때 고려하는 다양한 측면들(dimensions)로 논의될 수 있다. "측면들(dimensions)"은 리소스들 또는 호스트의 효율성을 평가하는데 고려될 수 있는 임의의 다른 요소를 포함하도록 의도된다. 일부 경우들에서, 측면들은 호스트 상의 사용 가능하거나 가상 장치에 의해 사용되는 리소스에 대응되지 않을 수 있다.
데이터센터(104) 내에서, 랙(rack)(108)은 복수의 호스트 장치들을 포함할 수 있다. 일반적인 데이터센터는 복수의 블레이드 서버들(blade servers)(112)을 포함하는 블레이드 인클로져(blade enclosure)를 가지는 랙들을 가질 수 있다. 일부 랙들은 독립된 서버들(114), 저장 장치들(116), 그리고 전력 공급원(118)을 포함할 수 있다. 많은 경우들에서, 랙 또는 랙들의 그룹은 쿨링 시스템들, 파워 컨디셔닝 유닛들(power conditioning units), 방해받지 않는 전력 공급원(uninterruptible power supplies), 그리고 다른 요소들을 가질 수 있다. 큰 데이터센터 내에서는, 수백 개 또는 수천 개의 랙들이 존재할 수 있고, 이들 다수는 다른 설정들을 가질 수 있다.
많은 리소스들이 여러 호스트 장치들 사이에서 공유될 수 있다. 리소스들이 공유될 때, "비용" 또는 리소스들의 전력 사용량은 복수의 호스트들 사이에서 분배될 수 있고, 그리고 호스트들은 매우 효율적일 수 있다. 매우 적은 수의 호스트들이 리소스를 공유할 때, 호스트는 매우 비효율적이 될 수 있다. 호스트들은 다른 호스트가 가동 중단되어 그렇지 않았더라면 공유되었을 리소스들을 적은 수의 실행 중인 호스트들이 소비하게 되는 경우에 비효율적이 될 수 있다.
데이터센터를 예로 사용하면, 기기의 랙(rack of equipment)은 전력 공급, 쿨링, 또는 다른 서비스들과 같은 서비스를 랙 전체에 제공하는 기기들을 가질 수 있다. 랙 내의 한 서버만 운용가능할지라도, 랙에 기반한 서비스들은 가동될 수 있다. 이런 경우에서, 단일 서버 또는 호스트 장치는 랙에 기반한 전력 공급원의 전력 소비, 랙 쿨링(rack cooling), 또는 다른 서비스들이 복수의 호스트 장치들 사이에서 공유되지 않기 때문에 상당히 비효율적일 수 있다.
다른 예시 안에서, 블레이드 인클로져는 전력, 네트워크 접속, 쿨링 또는 다른 서비스들을 복수의 블레이드들에게 제공할 수 있다. 블레이드 인클로져는 인클로져 안에서 가동되는 단일 블레이드 서버를 지원하는 경우에도 완전 가동될 수 있다. 이런 경우에, 블레이드 인클로져의 전력 소비는 운용 호스트 장치에 기인되어호스트를 비효율적으로 만든다.
데이터센터 내 장치들을 통합화할 때, 비효율적인 호스트들은 가상 장치들을 다른 장치들로 이동하는 것에 의해 가동 중단하도록 식별될 수 있다. 로드 밸런싱을 할 때, 효율적인 호스트들은 가동 개시되어 가상 장치들을 수신하도록 고려될 수 있다.
호스트의 효율은 호스트에 의해 제공된 리소스를 호스트에 의해 소비된 전력으로 나누는 방식으로 판단될 수 있다. 호스트에 의해 소비된 전력은 공유 장치들에 의해 소비된 전력을 공유된 장치들을 사용하는 호스트들의 수로 나눈 값으로 계산될 수 있다. 상술 된 블레이드 인클로져의 예 안에서, 블레이드 인클로져에 의해 소비된 전력은 인클로져 안에서 가동되는 블레이드 서버들 사이에서 나눠질 수 있다. 만약에 블레이드 인클로져가 열 개의 서버들을 가지고 있고 열 개의 서버 모두가 가동중이라면, 블레이드 인클로져에 의해 소비되는 전력은 10으로 나누어질 수 있고 각각의 호스트에 기인될 수 있다. 만약에 동일한 블레이드 인클로져가 오직 한 개의 운용 서버를 가진다면, 블레이드 인클로져에 의해 소비된 전체 전력은 서버에 기인한 것일 수 있다.
많은 실시예들 안에서, 호스트의 효율성은 호스트에 의해 소비되는 전력에 의해 리소스를 측정하는 것으로 나타날 수 있다. 일반적인 실시예는 CPU 용량을 소비된 전력으로 나눌 수 있다. 호스트에 의해 소비된 전력은 공유된 전력 공급원, 공유된 쿨링 리소스들, 또는 다른 공유된 장치들과 같은 공유된 장치들에 의해 호스트에게 기인된 임의의 소비를 포함할 수 있다.
다른 실시예들에서, 호스트의 효율성은 디스크 용량, 네트워크 용량, 또는 다른 리소스들의 측정해서 전력 소비량으로 나누는 것으로 나타날 수 있다. 일부 실시예들은 효용성을 판단을 위한 부족 리소스들을 식별하기 위해서 리소스들을 분석할 수 있다. 이런 경우들에서, 리소스는 분석마다 달라질 수 있다.
일부 실시예들에서, 많은 배치 시나리오들이 우선되는 시나리오를 식별하기 위해서 시뮬레이션 되고 분석될 수 있다. 이런 실시예에서, 수천 또는 수백만의 시나리오들이 시뮬레이션 되고 시나리오들에 점수들이 배정될 수 있다. 점수는 구현될 수 있는 우선되는 시나리오를 선택하는데 사용될 수 있다.
실시예(100)는 데이터센터 환경 안의 가상 장치들을 관리하는 시스템의 예시이다. 가상 장치 관리자(102)는 다양한 소프트 장치들에 의해 복수의 가상 장치들(106)이 실행될 수 있는 데이터 센터(104)를 체계화하는 장치일 수 있다.
가상 장치 관리자(102)는 하드웨어 플랫폼상에서 가동되는 애플리케이션일 수 있다. 가상 장치 관리자(102)는 하드웨어 요소들(122) 상에서 가동되는 소프트웨어 요소들(120)로 구성될 수 있다. 하드웨어 요소들(122)은 프로세서, RAM(126), 디스크 또는 다른 저장부(128), 그리고 네트워크 연결(130)을 포함할 수 있다. 일부 실시예들 안에서, 하드웨어 요소들(122)의 일부 또는 전부가 가상현실화될 수 있다.
가상 장치 관리자(102)는 데이터 수집부(132), 분석 엔진(134), 배치 서비스(136), 경보 시스템(alert system)을 포함한다. 데이터 수집부(132)는 호스트 장치들과 가상 장치들로부터 다양한 측면들의 상황을 수집할 수 있다. 분석 엔진(134)는 호스트들 상의 가상 장치 세트를 위한 배치를 결정할 수 있고 배치 서비스(136)는 가상 장치를 지정된 호스트들로 옮길 수 있다. 경보 시스템(138)은 통합화 또는 로드 밸런싱 작업이 수행될 수 있는 조건들을 식별할 수 있다.
데이터 수집부(132)는 호스트들에 의해 공급되고 가상 장치들에 의해 요구되는 측면들 또는 리소스들의 데이터를 수집할 수 있다. 수요와 공급 정보는 다양한 측면들의 부족(scarcity)를 판단하는데 사용될 수 있고, 이는 호스트들 상의 가상 장치들의 다양한 배치들을 결정하기 위해서 배치 관리자(134)에 의해 이용될 수 있다.
분석 엔진(134)는 많은 다른 배치 설정들을 평가할 수 있다. 각각의 배치 설정은 특정 호스트 장치상에서 실행되는 특정 가상 장치들의 세트일 수 있다. 일부 실시예들에서, 수천, 수백만, 또는 그 이상의 배치 설정들이 평가될 수 있다. 각각의 배치 설정들에 대해서, 최적화 매개 변수를 위해서 점수들이 컴퓨팅 될 수 있다. 예를 들면, 각각의 설정은 전력 소비 점수를 가질 수 있고, 이로부터 최적화된 설정이 선택될 수 있다.
도 2는 가상 장치들의 통합화를 수행하는 방법을 보여주는 실시예(200)의 플로우차트를 도시한다. 실시예(200)는 실시예(100)에서 도시된 것과 같은 가상 장치 관리자(102)에 의해 수행될 수 있는 방법의 간략화된 예시이다.
다른 실시예들은 유사한 기능들을 완수하기 위해 다른 조합, 추가적 또는 적은 단계들을 사용할 수 있고 다른 명명법(nomenclature) 또는 용어를 사용할 수 있다. 일부 실시예들에서, 다양한 작업들 또는 작업들의 세트가 다른 작업들과 병렬적으로 수행될 수 있고, 이는 동기적 또는 비동기적 방식으로 수행될 수 있다. 여기서 선택된 단계들은 간소화된 형식으로 작업들의 일부 원칙들을 도시하기 위해서 선택되었다.
실시예(200)는 통합화 루틴을 수행하는 한 가지 방법을 도시한다. 통합은 하나 또는 그 이상의 호스트 장치들이 불충분하게 활용되고 있을 때 개시될 수 있으며, 프로세스는 가상 장치들을 호스트 장치로부터 다른 장치들로 이동시킬 수 있다.
많은 경우들에서, 통합 과정은 하나 또는 그 이상의 호스트 장치들로 하여금 전력을 낮추게 할 수 있다. 일반적으로, 통합은 데이터센터의 전체 로드가 감소할 때 발생하고, 많은 경우들에서, 여러 호스트 장치들이 불충분하게 활용될 수 있다. 불충분한 활용은 호스트에서 가동되는 하나 또는 그 이상의 가상 장치들이 많지 않은 호스트 리소스들을 소비해서 호스트 리소스들의 대부분을 미사용상태로 남겨둘 때 발생할 수 있다.
통합 과정은 느슨한 제약 조건들(constraints)을 사용하는 제 1 통합 작업을 수행할 수 있고, 그 뒤에 중간의 제약 조건들을 사용하는 로드 밸런싱 작업을 수행하고, 그리고 그 뒤에 엄격한 제약 조건들을 사용하는 제 2 통합작업을 수행할 수 있다.
제약 조건들은 임계 값 또는 호스트의 용량을 나타내는 다른 매개 변수들일 수 있다. 예를 들면, 데이터센터는 일반적으로 용량의 80%에서 호스트들을 가동할 수 있다. 80% 용량 지수를 선택함으로서, 호스트는 과부하되지 않고 로드 변동(fluctuations)에 대응이 가능할 수 있다.
다른 데이터센터들은 많은 다른 요소들에 기초해서 다른 제약들을 설정할 수 있다. 데이터센터 로드들이 비교적 일정하고 예측가능한 경우들에 있어서, 통상의 용량 지수는 85%, 90%, 또는 그보다 더 높은 값과 같이 높은 수치를 가질 수 있다. 일부 경우들에서, 데이터센터 로드들은 휘발성일 수 있고, 이에 의해 관리자로 하여금 75%, 70%, 60%, 또는 그보다 더 낮은 값과 같은 낮은 용량 지수(capacity factor)의 사용을 유도할 수 있다.
일부 실시예들에서, 용량 지수는 시각 또는 다른 요소들에 따라 달라질 수 있다. 예를 들면, 근무일 시간 동안에 큰 로드를 가지는 데이터센터는 데이터센터가 즉각 대응 가능한 상태로 남아있도록 낮은 용량 지수에서 가동할 수 있다. 동일한 데이터센터는 밤시간대에는 더 많은 호스트 장치들이 가동 중단될 수 있도록 높은 용량 지수로 가동할 수 있고 데이터센터의 로드가 좀더 예측 가능하거나 일정한 경우에도 높은 용량 지수로 가동할 수 있다.
실시예(200) 내에서, 제 1 통합은 느슨한 제약 조건들과 함께 수행될 수 있다. 이런 작업에서, 가상 장치들은 효율적인 장치들이 과부하될 수 있도록 비효율적인 장치들로부터 보다 효율적인 장치들로 이동될 수 있다. 로드 밸런싱 작업은 가상 장치들을 과부하 된 장치들로부터 다른 장치들로 이동시킬 수 있고 또는 가상 장치들을 수신할 수 있는 하나 또는 그 이상의 새로운 장치들을 가동 개시하는 것을 포함할 수 있다. 로드 밸런싱 작업이 수행될 때, 가동 개시된 장치들은 보다 효율적인 장치들로부터 선택될 수 있다.
제 2 통합 작업은 더 엄격한 제약 조건들을 사용해서 수행될 수 있고 이것은 일부 호스트 장치들로 하여금 언로드되고 전력 강하를 유발하지만, 제약 조건들은 다른 장치들에서 과부하 조건들이 발생하지 않도록 선택된다.
실시예(200)의 삼 단계 방법은 비효율적인 호스트 장치들로 하여금 전력 강하를 초래하고 보다 효율적인 호스트들의 가동이 개시되는 결과를 낳을 수 있다. 일반적인 프로세스에서, 여러 비효율적인 호스트 장치들은 전력 강하되고 훨씬 적은 수의 보다 효율적인 호스트 장치들에 전력이 공급될 수 있다.
실시예(200)는 블록(202)에서 통합 조건들을 식별하는 단계에서 시작한다. 다른 실시예들은 통합 조건을 식별하는 데 있어서 다른 메커니즘을 가질 수 있다. 일부 실시예들에서, 모니터링 시스템은 용량의 일부 임계 값 밑으로 떨어진 호스트 장치들로부터 경보를 수신할 수 있다. 예를 들면 리소스의 20% 활용도(utilization) 밑으로 떨어진 호스트 장치는 실시예(100)의 경보 시스템(138)과 같은 중앙 모니터링 시스템(centralized monitoring system)에 경보를 보낼 수 있다.
다른 실시예들은 불충분하게 활용되는 호스트들을 식별하는 활용도의 하한점을 가질 수 있다. 상술된 예시에서, 20% 활용 지수가 사용되었다. 일부 실시예들은 활용도의 하한점으로 50%, 40%, 30%, 25%, 15%, 10% 또는 다른 요소들을 사용할 수 있다. 활용도의 상한점에 대해서 상술한 바와 같이, 활용도의 하한점 역시 하루 동안, 일 또는 주 단위, 또는 다른 계절적 또는 주기적 단위로 달라질 수 있다.
일부 실시예들에서, 불충분하게 활용되는 단일 호스트 장치는 실시예(200)의 통합 작업을 촉발시킬 수 있다. 다른 실시예들에서, 특정 수의 장치들로부터의 경보(alert)가 통합 작업을 촉발시키는데 이용될 수 있다.
일부 실시예들에서, 통합 조건이 데이터센터의 전체 로드가 데이터센터의 현재 용량보다 현저하게 적을 경우에 발생할 수 있다. 이런 실시예는 각각의 호스트 장치들을 위한 데이터에 추가적 또는 대신하여 데이터센터 전역(datacenter-wide)의 용량과 로드 매개 변수들을 기초해서 통합을 수행할 수 있다.
블록(204)에서, 호스트와 가상 장치 데이터는 수집될 수 있다. 이런 데이터를 수집하는 방법의 예가 실시예(400) 안에서 도시될 수 있다. 각각의 호스트와 가상 장치에 대해 수집된 데이터는 전력 사용량은 물론 리소스 사용량을 식별하는데 사용될 수 있다. 일부 실시예들에서, 부족한 리소스가 식별될 수 있고 호스트 장치들의 효율성을 계산하는데 사용될 수 있다.
블록(206)에서, 호스트 장치들의 전력 효율성이 판단될 수 있다. 호스트 장치의 효율성은 리소스를 호스트를 위해 소비된 전력으로 나누는 방식으로 결정될 수 있다. CPU를 리소스로 사용하는 간단한 예에서, 호스트의 효율성은 CPU 용량을 소비된 와트(watts)로 나누는 방식으로 측정될 수 있다.
블록(208)에서, 제 1 통합은 느슨한 제약 조건들과 함께 수행될 수 있다. 통합 방법의 예는 상세한 설명에서 후술되는 실시예(500) 내에서 도시될 수 있다. 통합 방법은 비효율적 호스트 장치들을 식별하고 가상 장치들을 비효율적인 호스트 장치들로부터 보다 효율적인 다른 호스트 장치들로 옮기는 것을 시도할 수 있다.
블록(208)의 제 1 통합은 느슨한 제약 조건들과 함께 수행될 수 있다. 느슨한 제약 조건은 호스트들이 그들의 의도된 용량을 초과해서 가상 장치들로 로드되는 것일 수 있다. 예를 들면, 호스트 상에 가상 장치들을 팩킹할 때(packing), 수신 호스트는 바람직한 80% 용량을 초과하는 가상 장치들로 팩킹될 수 있다. 일부 경우들에서, 느슨한 제약 조건들은 수신 호스트로 하여금 90%, 100%, 110% 또는 더 높은 용량을 초과하도록 할 수 있다.
블록(208)의 통합은 어떤 가상 장치들의 이동 없이 시뮬레이션된 통합으로 수행될 수도 있다. 실시예(200) 전체에 걸쳐서, 시뮬레이션된 액션들은 가상 장치들의 호스트 장치들에 대한 맵핑(mapping)을 형성하도록 수행될 수 있다. 맵핑이 결정된 후에, 가상 장치들은 맵핑에 따라 이동될 수 있다.
블록(208)에서 사용된 제약 조건들은 두 가지 종류의 제약 조건일 수 있다. 제 1 제약 조건은 상술한 것과 같이 가상 장치들을 수신하는 호스트들에 대한 용량 상한치일 수 있다. 제 2 제약 조건은 전력 강하의 고려 대상인 호스트 장치들에 대한 용량 하한치일 수 있다. 느슨한 제약 요건은 엄격한 제약 조건에 비해서 더 큰 전력 강하 대상 집단을 고려할 수 있다.
예를 들면, 느슨한 제약 조건은 30% 또는 그보다 낮은 용량을 가지는 호스트들을 전력 강하 대상으로 고려할 수 있다. 엄격한 제약 조건은 10% 또는 그보다 낮은 용량을 가지는 호스트들만 전력 강하 대상으로 고려할 수 있고, 이것은 호스트 장치들의 매우 작은 세트일 수 있다.
블록(208)의 통합 후에, 제 1 중간 맵핑(intermediate mapping)이 생성될 수 있다. 제 1 맵핑은 블록(210)에서 중간 제약 조건들(moderate constraints)을 사용해서 시뮬레이션된 중간 밸런싱을 수행하는데 사용될 수 있다. 시뮬레이션된 로드 밸런싱 프로세스의 예는 상세한 설명에서 후술되는 실시예(600) 안에서 제시될 수 있다.
시뮬레이션된 로드 밸런싱 안에서, 용량 한도를 초과하는 호스트들은 일부 가상 장치들을 그 호스트로부터 다른 호스트들로 옮기도록 조사될 수 있다. 가상 장치를 받아들일 수 있는 호스트가 없는 경우에, 새로운 호스트가 가동 개시되어 가상 장치들을 수신할 수 있다.
로드 밸런싱 작업 도중에, 새로운 호스트들이 보다 효율적인 호스트 장치들로부터 선택될 수 있다. 많은 경우들에서, 호스트 장치들의 정리된 목록이 효율성에 기초해서 생성될 수 있고, 가장 효율적인 호스트들이 주요 목록으로부터 선택될 수 있다.
많은 실시예들 안에서, 블록(210)의 중간 제약 조건들은 데이터센터에 대한 일반적인 운용 제약 조건들(operating constraints) 또는 목표 제약 조건들(target constraints)일 수 있다. 일부 실시예들에서, 블록(210)의 중간 제약 조건들은 데이터센터에 대한 목표 제약 조건들보다 더 느슨 혹은 더 엄격할 수 있다.
블록(210)의 로드 밸런싱은 가상 장치들을 호스트들에 대한 제 2 맵핑을 만들수 있다. 제 2 맵핑은 블록(212)에서 엄격한 제약 조건을 사용하는 제 2 통합과 마지막 맵핑을 수행하는데 사용될 수 있다.
블록(212)의 제 2 통합은 블록(208)과 유사한 작업일 수 있으나, 다른 제약 조건들의 세트와 함께 수행된다. 블록(212)에서, 엄격한 제약 조건의 세트가 고려될 수 있다. 블록(212)에서, 좀더 제한적인 용량 하한값을 가지는 장치들이 전력 차단 대상으로 고려될 수 있고, 가상 장치들은 좀더 제한적인 용량 상한값을 가지는 호스트들로 이동될 수 있다.
일부 실시예들에서, 블록(212)의 제 2 통합은 블록(210)의 로드 밸런싱에서 사용되는 것과 동일한 상한 제약 조건들을 사용해서 수행될 수 있으나, 이 경우에 하한 제약 조건들은 보다 엄격할 수 있다.
블록(212)에서 제 2 통합이 수행되고 난 뒤, 맵핑이 생성될 수 있다. 맵핑은 블록(214)에서 실제로 가상 장치들의 일부를 새로운 위치로 이동시키고 일부 호스트 장치들의 가동을 중단하기 위해서 사용될 수 있다.
블록 204에서 212까지의 분석은 일부 실시예들 안의 많은 다른 맵핑들을 생성하도록 여러 번 수행될 수 있다. 일부 실시예들은 수천 번 또는 그 이상의 맵핑을 생성하도록 시뮬레이션들을 수행할 수 있고, 이들 각각은 점수화될 수 있다. 이들 맵핑중 하나가 선택되어 블록(214)에서 구현될 수 있다.
실시예(200)의 과정은 호스트들의 효율성을 최대화시키는 통합화된 맵핑(consolidated mapping)을 만들 수 있다. 낮은 효율의 호스트들은 가동이 중단될 수 있고, 만약에 새로운 호스트들의 가동이 개시된다면, 새로운 호스트들은 보다 효율적인 호스트들일 수 있다.
실시예(200)의 과정은 제 1 통합이 느슨한 제약 조건들에서 발생할 수 있도록 한다. 제 1 통합은 일부 호스트들로 하여금 과부하가 되게 할 수 있으나, 가동 중단 대상이 되는 비효율적인 호스트들의 수를 극대화할 수 있다. 로드 밸런싱 작업은 로드 중 일부를 과부하된 호스트 장치들로부터 다른 호스트들로 이동시킬 수 있고, 이것은 용량을 수신하기 위해 가동이 개시될 수 있는 하나 또는 그 이상의 효율성 있는 호스트들을 포함한다. 제 2 통합 작업은 만약에 하나 또는 그 이상의 호스트들에 매우 가벼운 로드가 걸리고 다른 호스트들을 과부하시키지 않는다면 추가로 통합될 수 있다.
블록들(208 및 212)의 통합 작업들은 호스트의 현재 용량과 반드시 대응되지는 않는 호스트의 효율성에 기초해서 호스트 장치들의 가동 중단과 언로드를 시도할 수 있다. 일부 경우들에서, 이런 호스트들은 용량에 맞춰서 또는 초과해서 가동할 수 있다. 통합 작업은 가상 장치들을 좀더 효율적인 다른 호스트들로 이동시키는 동안 비효율적인 호스트들의 가동 중단을 초래할 수 있다. 최종 결과로 상당한 전력이 절약될 수 있다.
실시예(200)의 통합 과정은 일부 호스트들의 가동을 개시하는 결과를 낳을 수 있다. 이런 경우에서, 가동 개시된 호스트들은 가동 중단된 호스트들보다 더 효율적일 수 있다. 통상적인 경우에서, 가동 중단되는 호스트 수보다 가동 개시되는 호스트의 수가 적다.
도 3은 가상 장치의 로드 밸런싱을 수행하는 방법을 보여주는 실시예(300)의 플로우차트를 도시한다. 실시예(300)는 실시예(100)에서 나타난 바와 같이 가상 장치 관리자(102)에 의해 수행될 수 있는 방법의 간략화된 예시이다.
다른 실시예들은 유사한 기능을 달성하기 위하여 다른 순서, 추가적 또는 적은 단계들, 그리고 다른 명명법 또는 용어를 사용할 수 있다. 일부 실시예들에서, 다양한 작업들 또는 작업들의 세트가 다른 작업들과 병렬적으로 수행될 수 있고, 이는 동기적 또는 비동기적으로 수행될 수 있다. 여기서 선택된 단계들은 작업들의 일부 원칙들을 간략화된 형식으로 나타내기 위해서 선택된 것이다.
실시예(300)는 개념적으로 실시예(20)의 과정과 유사하지만, 통합 작업이 아닌 로드 밸런싱 작업을 수행한다. 실시예(300)는 제 1 로드 밸런싱 과정을 엄격한 제약 조건들을 가지고 수행하고, 통합 과정을 중간의 제약 조건들을 가지고 수행하고, 그리고 제 2 로드 밸런싱 작업을 느슨한 제약 조건들을 가지고 수행한다.
실시예(300)는 엄격한 제약 조건들을 사용함으로써 제 1 로드 밸런싱 작업 내의 많은 수의 가상 장치들의 분산을 시도한다. 이 작업은 가상 장치들을 많은 수의 호스트 장치들에 분산시킬 수 있고 하나 또는 그 이상의 효율적 호스트 장치들의 가동 개시를 초래할 수 있다. 이어지는 통합 작업은 좀더 비효율적인 장치들의 가동 중단을 시도할 수 있고, 그리고 제 2 로드 밸런싱 작업은 임의의 과부하 된 장치들을 정리할 수 있다.
실시예(300)의 최종 결과(net reseult)는 효율적인 호스트 장치들을 효율성이 낮은 호스트 장치들보다 선호하면서 로드 밸런싱 작업이 수행될 수 있다는 것이다. 일부 작업들에서, 현재 가동중인 비효율적인 호스트들은 통합 작업 도중에 가동이 중단될 수 있고, 제 1 로드 밸런싱 작업 도중에 가동이 개시된 효율적인 호스트들은 계속 가동될 수 있다. 이런 경우에서, 로드 밸런싱 작업은 일부 호스트 장치들이 가동 중단되는 결과를 초래할 수 있다.
통합 작업들은 호스트의 현재 용량과 반드시 대응되지는 않는 호스트의 효율성을 기초로 호스트 장치들의 언로드를 시도할 수 있다. 일부 경우들에서, 이런 호스트들은 용량에 맞춰서 또는 초과해서 가동할 수 있다. 통합 작업은 가상 장치들을 좀더 효율적인 다른 호스트들로 이동시키는 동안 비효율적인 호스트의 가동 중단을 초래할 수 있다.
로드 밸런싱 작업들은 가상 장치들에 대하여 이미 가동이 개시된 호스트 장치들 사이에서의 이동을 시도할 수 있다. 그러나 만약에 현재 가동 중인 호스트들에 가용 용량이 없다면, 새로운 호스트가 가동 개시될 수 있다. 가동 개시된 임의의 새로운 호스트는 보다 효율적인 호스트들로부터 선택될 수 있다.
실시예(300)는 블록(302)에서 로드 밸런스의 조건을 식별하는 단계에서 시작한다. 다른 실시예들은 로드 밸런스 조건을 식별하는 다른 메커니즘들을 가질 수 있다. 일부 실시예들에서, 모니터링 시스템은 용량의 일부 임계 값을 초과한 호스트 장치로부터 경보(alert)를 수신할 수 있다. 예를 들면, 리소스들의 80% 활용을 초과한 호스트 장치는 실시예(100)의 경보 시스템(138)과 같은 중앙 모니터링 시스템에 경보를 보낼 수 있다.
일부 실시예들에서, 과도하게 활용된 단일 호스트 장치가 실시예(300)의 로드 밸런싱 작업을 촉발시킬 수 있다. 다른 실시예들에서, 특정 수의 장치들로부터의 경보들이 로드 밸런싱 작업을 촉발시키는데 이용될 수 있다.
일부 실시예들에서, 로드 밸런싱 조건은 데이터센터의 전체 로드가 데이터센터의 바람직한 용량보다 상당히 큰 경우에 발생할 수 있다. 이런 실시예는 각각의 호스트 장치들을 위한 데이터에 추가적 또는 대신하여 데이터센터 전역(datacenter-wide)의 용량과 로드 매개 변수들을 기초해서 통합을 수행할 수 있다.
블록(304)에서, 호스트와 가상 장치 데이터들이 수집될 수 있다. 이런 데이터를 수집하는 방법의 예시는 실시예(400)에서 도시될 수 있다. 각각의 호스트와 가상 장치를 위해 수집된 데이터는 전력 사용량은 물론 리소스 사용량을 식별하기 위해 사용될 수 있는 데이터일 수 있다. 일부 실시예들에서, 부족한 리소스가 식별되고 호스트 장치들의 효율성을 계산하는데 사용될 수 있다.
블록(306)에서, 호스트 장치들의 전력 효율성이 판단될 수 있다. 호스트 장치의 효율성은 리소스를 호스트를 위해 소비된 전력으로 나누는 방식으로 결정될 수 있다. CPU를 리소스로 사용하는 간단한 예에서, 호스트의 효율성은 CPU 용량을 소비된 와트(watts)로 나누는 방식으로 측정될 수 있다.
블록(308)에서, 제 1 로드 밸런싱 작업은 엄격한 제약 조건들을 사용해서 수행될 수 있다. 로드 밸런싱 방법의 예시는 이 상세한 설명에서 후술되는 실시예(600)에서 도시될 수 있다. 로드 밸런싱 방법은 가상 장치들을 무거운 로드가 걸린 장치들로부터 가벼운 로드가 걸린 장치들로 이동시킬 수 있다. 일부 경우들에서, 새로운 호스트가 가상 장치들 중 일부를 받아들이기 위해서 가동 개시될 수 있다. 일부 경우에서, 새로운 호스트는 효율적인 호스트들의 정리된 목록으로부터 선택될 수 있다.
블록(308)의 제 1 로드 밸런싱은 엄격한 제약 조건들과 함께 수행될 수 있다. 엄격한 제약 조건들은 호스트들이 그들의 바람직한 용량 아래의 한도로 언로드되는 것일 수 있다. 예를 들면, 가상 장치들을 호스트로부터 이동시킬때, 호스트는 그 용량이 바람직한 용량 아래가 될 때까지 언로드될 수 있다. 예를 들면, 바람직한 용량이 80%일 수 있지만 블록(308)의 엄격한 제약 조건은 호스트 장치들로 하여금 60% 아래의 용량이 될 때까지 언로드되도록 설정될 수 있다.
블록(308)의 로드 밸런싱은 실제 가상 장치들의 이동 없이 시뮬레이션된 로드 밸런싱으로 수행될 수 있다. 실시예(300) 전체에 걸쳐서, 시뮬레이션된 액션들은 가상 장치들의 호스트 장치들에 대한 맵핑(mapping)을 형성하도록 수행될 수 있다. 맵핑이 결정된 후에, 가상 장치들은 맵핑에 따라 이동할 수 있다.
블록(308)의 로드 밸런싱 후에, 제 1 중간 맵핑이 생성될 수 있다. 제 1 맵핑은 블록(310)에서 중간 제약 요건들을 사용해서 시뮬레이션된 통합을 수행하도록 사용될 수 있다. 시뮬레이션된 통합 과정의 예시는 이 상세한 설명에서 후술되는 실시예(600)에서 도시될 수 있다.
블록(310)의 시뮬레이션된 통합 내에서, 용량 한도 밑으로 떨어지는 호스트들은 그 호스트로부터 일부 가상 장치들을 다른 호스트들로 이동시키도록 진단될 수 있다. 통합이 될 수 있고 가동 중단이 될 수 있는 추가적인 호스트들이 없을 때, 통합 작업을 중단할 수 있다.
블록(310)에서 사용된 제한 조건들은 두 가지 종류의 제한 조건들일 수 있다. 제 1 제약 조건은 상술한 바와 같이 가상 장치들을 수신하는 호스트들에 대한 용량 상한치일 수 있다. 제 2 제약 조건은 전력 강하의 고려 대상인 호스트 장치들에 대한 용량 하한치일 수 있다. 느슨한 제약 조건은 엄격한 제약 조건에 비해서 더 큰 전력 강하 대상 집단을 고려할 수 있다.
예를 들면, 느슨한 제약 조건은 전력 강하 대상으로 30% 또는 더 낮은 용량을 가지는 호스트들을 고려할 수 있다. 엄격한 제약 조건들은 전력 강하 대상으로 오직 10% 또는 더 낮은 용량을 가지는 호스트들만 고려할 수도 있고, 이것은 호스트 장치들의 훨씬 적은 세트일 수 있다. 로드 밸런싱 작업 도중에, 새로운 호스트들이 보다 효율적인 호스트 장치들로부터 선택될 수 있다. 많은 경우들에서, 호스트 장치들의 정리된 목록이 효율성을 기초로 생성될 수 있고, 가장 효율적인 호스트들이 주된 목록으로부터 선택될 수 있다.
많은 실시예들에서, 블록(310)의 중간 제약 조건들은 데이터센터에 대한 일반적인 운용 제약 조건들 또는 목표 제약 조건들일 수 있다. 일부 실시예들에서, 블록(310)의 중간 제약 조건들은 데이터센터에 대한 목표 제약 조건들보다 엄격 또는 느슨할 수 있다.
블록(310)의 통합은 가상 장치들의 호스트들에 대한 제 2 맵핑으로 만들 수 있다. 제 2 맵핑은 블록(312)에서 느슨한 제약 조건들을 사용하는 제 2 로드 밸런싱을 수행하고 마지막 맵핑을 하는데 사용될 수 있다.
블록(312)의 제 2 로드 밸런싱은 블록(308)과 유사한 작업일 수 있지만, 다른 제약 조건들의 세트와 함께 수행된다. 블록(312)에서, 느슨한 제약 조건들의 세트가 고려될 수 있다. 블록(312)에서, 로드 밸런싱은 일반적으로 바람직한 수치보다 큰 사용량을 가지는 장치들에게 발생할 수 있다. 많은 경우들 내에서, 실시예(300)의 로드 밸런싱 작업은 데이터센터가 요구 증가를 경험할 때 수행될 수 있다. 따라서, 블록(312)의 로드 밸런싱은 데이터센터 상의 로드의 증가가 예상되기 때문에 각각의 호스트가 목표 활용치 아래에서 활용되도록 수행될 수 있다.
일부 실시예들에서, 블록(312)의 제 2 로드 밸런싱은 블록(310)에서 통합을 위해 사용된 제약 조건의 상한과 동일한 조건을 사용해서 수행될 수 있다.
블록(312)에서 제 2 통합이 수행된 후에, 맵핑이 생성될 수 있다. 맵핑은 블록(314) 내에서 실제로 가상 장치들 일부를 새로운 위치로 이동시키고 일부 호스트 장치들의 가동을 중단하는데 사용될 수 있다.
블록들 304에서 312까지의 분석은 일부 실시예들 안의 많은 다른 맵핑들을 생성하도록 여러 번 수행될 수 있다. 일부 실시예들은 수천 번 또는 그 이상의 맵핑을 생성하도록 시뮬레이션들을 수행할 수 있고, 이들 각각은 점수화될 수 있다. 이들 맵핑중 하나가 선택되어 블록(314)에서 구현될 수 있다.
실시예(300)의 과정은 호스트들의 효율성을 최대화시키는 통합화된 맵핑(consolidated mapping)을 만들 수 있다. 낮은 효율의 호스트들은 가동이 중단될 수 있고, 만약에 새로운 호스트들의 가동이 개시된다면, 새로운 호스트들은 보다 효율적인 호스트들일 수 있다.
실시예(300)의 과정은 제 1 로드 밸런싱이 엄격한 제약 조건들에서 발생할 수 있도록 한다. 제 1 로드 밸런싱은 가상 장치들을 가동 개시될 수 있는 새로운 호스트들로 압력을 가할 수 있다. 통합 작업은 비효율적인 호스트들의 언로드를 시도할 수 있다. 제 2 로드 밸런싱 작업은 가상 장치들을 남아있는 호스트들 사이에 분산시킬 수 있다.
실시예(300)의 로드 밸런싱 과정은 일부 호스트들의 가동 중단을 초래할 수 있다. 이런 경우에, 가동 중인 호스트들이 가동 중단된 호스트들보다 효율적일 수 있다. 일반적인 경우에, 가동 중단된 호스트들보다 가동 중인 호스트들의 수가 더 많다.
도 4는 수요 공급 데이터를 수집하는 방법을 보여주는 실시에(400)의 플로우차트를 도시한다. 실시예(400)는 실시예(100)에서 도시된 바와 같이 그리고 실시예(200)의 블록(204) 및 실시예(300)의 블록(304)에 의해 수행된 바와 같이 데이터 수집부(132)에 의해 수행되는 방법의 단순화된 예시이다.
다른 실시예들은 유사한 기능들을 달성하는데 다른 순서, 추가적 또는 적은 단계들, 그리고 다른 명명법 또는 용어를 사용할 수 있다. 일부 실시예들에서, 다양한 작업들 또는 작업들의 세트가 다른 작업들과 병렬적으로 수행될 수 있고, 이는 동기적 또는 비동기적 방법으로 수행될 수 있다. 여기서 선택된 단계들은 작업의 일부 원칙들을 단순화된 형식으로 나타내기 위해서 선택된 것이다.
실시예(400)는 수요와 공급 데이터가 수집될 수 있는 한 가지 방법이다. 공급 데이터는 리소스들 또는 호스트 장치들에서 발견될 수 있는 다른 측면들과 관련될 수 있고, 수요 데이터는 대응되는 리소스들 또는 가상 장치들에 의해 사용되는 측면들과 관련될 수 있다. 데이터를 수집하고 난 뒤, 부족성(scarcity)이 판단되고 각각의 호스트 장치에 대해 부족 지수(scarcity score)가 판단될 수 있다. 각각 호스트의 효율성 또한 판단될 수 있다.
실시예(400)는 다른 초기 상태들(initail states)을 가지는 호스트 장치들의 세트 상에서 수행될 수도 있다. 한 시나리오에서, 호스트 장치들은 현재 실행 중인 가상 장치가 없는 것처럼 분석될 수 있다. 그런 시나리오에서, 전체 데이터센터에서 가상 장치들의 최적화된 배치가 식별될 수 있다. 다른 시나리오에서, 통합 또는 로드 밸런싱이 초기 조건들의 일부 다른 세트와 함께 수행될 수 있다.
블록(402)에서, 분석을 위한 초기 상태가 판단된다.
블록 404부터 408까지에서, 각각의 가상 장치의 각각의 측면에 대한 수요가 판단된다. 블록(404)에서, 각각의 가상 장치가 분석된다. 블록(406) 안의 각각의 측면에 대해서, 측면에 대한 수요가 블록(408)에서 판단된다.
분석된 측면들은 실시예들 사이에서 서로 다를 수 있다. 많은 경우들에서, 측면들은 다른 측면들은 물론이고 소비된 리소스들, 소비 안 된 리소스들, 그리고 바이너리 리소스들을 포함할 수 있다.
블록(410)의 각각의 호스트 장치에 대해서, 각각의 측면이 블록(412)에서 분석된다. 측면에 대한 공급이 블록(414)에서 판단된다.
전력 소비가 블록(416)에서 판단될 수 있다. 블록(416)의 전력 소비는 호스트 자신에 의해 소비된 전력과 다른 호스트들과 공유될 수 있는 호스트의 할당을 포함할 수 있다. 예를 들면, 전력 공급원, 쿨링 시스템들, 그리고 다른 장치들이 호스트들 사이에서 공유될 수 있다. 아주 적은 호스트들이 장치들을 공유하는 경우에 있어서, 공유된 장치들의 전력 소비는 이들 소수의 호스트들에 의해서만 기인될 수 있다. 많은 경우들에서, 호스트의 효율성은 장치를 공유하는 다른 호스트들이 가동되지 않고 있을 때 상당하게 감소 될 수 있다.
간단한 예시 안에서, 서버들의 랙은 오십 개의 서버들을 포함할 수 있고 쿨링 시스템들과 서버들이 실행중인 오십 개의 서버들 사이에서 공유되는 전력 공급원을 가질 수 있다. 49 개의 서버들이 가동 중단되고 한 개의 서버만이 가동 가능할 때, 실행중인 단일 서버가 랙 쿨링을 위한 모든 전력과 전력 공급에 기여한다. 50개의 모든 서버들이 가동 가능하고 쿨링 시스템의 전력 비용과 전력 공급을 공유하는 경우와 비교할 때, 이런 서버는 매우 비효율적일 수 있다.
블록(416)의 각각의 측면들에 대해서, 부족성(scarcity)이 블록(418)에서 판단된다.
부족성은 아래 공식에 따라 판단될 수 있다:
Figure pct00001
각각의 측면에 있어서, 부족성은 모든 가상 장치 수요의 합을 모든 호스트 공급의 합과 모든 가상 장치 수요의 차이로 나누는 방식으로 컴퓨팅 될 수 있다. 부족성은 각각의 측면에 대해 무차원 수(dimensionless number)이다. 높은 부종성 값은 그 측면이 부족함을 나타내고, 낮은 부족성 값은 그 측면이 풍부함을 나타낸다.
블록(420)에서, 각각의 호스트가 분석된다. 블록(422)에서, 호스트의 효율성이 판단된다. 효율성은 선택된 리소스를 호스트에 기인해서 소비된 전력으로 나누는 방식으로 계산될 수 있다. 일부 실시예들에서, 부족한 리소스는 선택된 리소스로 사용될 수 있다. 부족한 리소스는 상기 공식에서 판단되는 것과 같이 가장 높은 부족성 지수(scarcity factor)를 가지는 리소스일 수 있다.
일부 실시예들에서, 블록(422)의 효율성은 CPU 용량, 디스크 용량, 또는 일부 다른 리소스와 같이 사전에 정의된 리소스를 사용해서 판단될 수 있다. 부족한 리소스가 사용되는 실시예들에서, 리소스는 분석마다 다를 수 있다.
도 5는 통합 방법을 보여주는 실시예(500)의 플로우차트를 도시한다. 실시예(500)는 실시예(300)의 블록(310)뿐만 아니라 실시예(200)의 블록들(208 및 212)의 통합 작업들에 의해 수행될 수 있는 방법의 단순화된 예시이다.
다른 실시예들은 유사한 기능들을 달성하는데 다른 순서, 추가적 또는 적은 단계들, 그리고 다른 명명법 또는 용어를 사용할 수 있다. 일부 실시예들에서, 다양한 작업들 또는 작업들의 세트가 다른 작업들과 병렬적으로 수행될 수 있고, 이는 동기적 또는 비동기적 방법으로 수행될 수 있다. 여기서 선택된 단계들은 작업의 일부 원칙들을 단순화된 형식으로 나타내기 위해서 선택된 것이다.
실시예(500)의 작업은 가상 장치들 전부를 한 호스트로부터 다른 호스트들로 배치를 시도할 수 있다. 모든 가상 장치들이 이동되는 경우에, 호스트는 가동 중단될 수 있다. 실시예(500)는 프로세스가 종료될 수 있는 지점인 수신 호스트들의 용량에 도달할 시점까지 많은 호스트들을 위해 작업을 수행할 수 있다.
실시예(500)는 가장 비효율적인 호스트들을 우선으로 하는 효율성 순서에 따라 호스트들을 프로세싱하는 방식으로 호스트들의 가동 중단을 시도한다. 일부 경우들에서. 가장 비효율적인 호스트들은 호스트들의 용량 한도에 도달했거나 한계를 넘어선 호스트들일 수 있다.
시작 맵핑(starting mapping)은 블록(502)에서 판독될 수 있다. 호스트들은 블록(504)에서 효율성이 증가되는 순서로 배열될 수 있고, 호스트는 블록(506)에서 선택될 수 있다. 블록(506)에서 선택된 호스트는 블록(504)의 목록에 따를 때 가장 비효율적인 호스트일 수 있다.
블록(508)의 호스트 상의 각각의 가상 장치에 있어서, 다른 호스트들에 가상 장치 배치 시도는 블록(510)의 수신 호스트의 상한 제약 조건 위반 없이 시도될 수 있다. 예를 들면, 상한 제약 조건이 80% 용량인 경우에, 가상 장치는 가상 장치의 추가로 인해 수신 호스트의 80% 용량이 초과되지 않는 경우에 그 호스트에 배치될 수 있다.
가상 장치(510)를 배치하는 프로세스는 워스트핏 감소 알고리즘(worst-fit decreasing algorithms)을 포함하는 임의 종류의 팩킹 알고리즘(packing algorithm)을 사용해서 수행될 수 있다.
만약에 블록(512)에서 배치가 성공적이라면, 배치는 블록(514) 내의 맵핑에 추가될 수 있고 다음 가상 장치가 블록(508)에서 분석될 수 있다.
만약에 블록(512)에서 배치가 성공적이 아니라면, 호스트가 통합될 수 없기 때문에 루프(loop)는 블록(516)에서 종료될 수 있다. 현재 호스트를 위한 변경들은 블록(518) 내의 맵핑으로부터 제거될 수 있고 프로세스는 블록(524)에서 종료될 수 있다.
만약에 블록(508)에서 모든 가상 장치들이 성공적으로 배치되었다면, 호스트는 블록(520) 내의 맵핑 안에서 가동 중단이라고 표시될 수 있다. 만약에 블록(522)에서 더 많은 호스트들이 분석될 것이라면, 프로세스는 다음 비효율적 호스트를 선택하기 위해서 블록(506)으로 돌아갈 수 있다. 그렇지 않다면, 프로세스는 블록(524)에서 종료될 수 있다.
도 6은 로드 밸런싱 방법을 보여주는 실시예(600)의 플로우차트를 도시한다. 실시예(600)는 실시예(200)의 블록들(210) 그리고 실시예(300)의 블록들(308 및 312)에 의해 수행될 수 있는 방법의 단순화된 예시이다.
다른 실시예들은 유사한 기능들을 달성하는데 다른 순서, 추가적 또는 적은 단계들, 그리고 다른 명명법 또는 용어를 사용할 수 있다. 일부 실시예들에서, 다양한 작업들 또는 작업들의 세트가 다른 작업들과 병렬적으로 수행될 수 있고, 이는 동기적 또는 비동기적 방법으로 수행될 수 있다. 여기서 선택된 단계들은 작업의 일부 원칙들을 단순화된 형식으로 나타내기 위해서 선택된 것이다.
실시예(600)는 가상 장치들을 과부하된 호스트들로부터 과부하되지 않은 호스트들로 배치를 시도한다. 만약에 과부하되지 않은 호스트들이 존재하지 않는다면, 새로운 호스트가 가동 개시되어 가상 장치들을 수신할 수 있다. 새로운 호스트는 이용할 수 있는 것 중 가장 효율적인 호스트들로부터 선택될 수 있다.
블록(602)에서, 시작 맵핑이 판독될 수 있다.
블록(604)에서, 가동 중단된 호스트들이 효율성 감소의 순서로 배열될 수 있다. 블록(604)의 가동 중단된 호스트들의 배열된 목록은 가동 개시될 수 있는 새로운 호스트들을 선택하는데 사용될 수 있다. 새로운 호스트가 선택될 때, 가장 효율적인 호스트가 선택될 수 있다.
블록(606)에서, 과부하된 호스트들이 작업을 위해 정의된 용량 상한선에 의해 식별될 수 있다. 예를 들면, 만약에 용량 상한선이 60%였다면, 60% 이상의 활용되는 호스트들이 선택될 수 있다.
각각의 과부하된 호스트는 블록(608)에서 분석될 수 있다.
과부하된 호스트로부터 가상 장치를 배치하는 시도는 다른 호스트들의 용량 상한선 위반 없이 블록(610)에서 행해질 수 있다. 배치는 수신 호스트가 용량 상한선을 위반하지 않는 임의의 다른 호스트에게 이루어질 수 있다.
만약에 블록(612)의 배치가 성공적이라면, 배치는 블록(614) 안의 맵핑에 추가될 수 있다. 만약에 블록(615)에서 현재 호스트가 여전히 과부하 상태라면, 프로세스는 다른 가상 장치 배치 시도를 위해 블록(610)으로 돌아갈 수 있다. 만약에 블록(615)에서 현재 호스트가 더 이상 과부하상태가 아니라면, 프로세스는 다른 과부하된 호스트를 처리하기 위해 블록(609)으로 돌아갈 수 있다.
만약에 블록(612)의 배치가 성공적이 아니라면, 블록(616)에서 가동 개시될 새로운 호스트가 식별될 수 있다. 새로운 호스트는 블록(604)에서 생성된 목록으로부터 아직 가동이 개시되지 않은 가장 효율적인 호스트로서 선택될 수 있다.
가상 장치는 블록(618)에서 새로운 호스트 위에 배치될 수 있고 새로운 호스트는 블록(620)에서 맵핑에 추가될 수 있다. 가상 장치의 배치는 블록(614)에서 맵핑에 추가될 수 있고 프로세스는 계속될 수 있다.
블록(608)에서 모든 과부하된 호스트들이 처리되면, 프로세스는 블록(622)에서 종료될 수 있다.
상술된 발명 내용은 도해와 서술적 목적으로 제시된 것이다. 이는 하나도 빠뜨리는 것 없이 서술한다던지 개시된 정확한 형식에 한정하기 위한 의도가 아니고, 다른 수정안들과 변경안들이 상술된 내용에 따라 가능할 수 있다. 실시예는 발명의 원칙들과 그것의 실용적인 애플리케이션을 가장 잘 설명해서 본 기술의 다른 당업자들로 하여금 발명을 특정 사용 목적에 부합하도록 고려될 수 있는 다양한 실시예들과 다양한 수정안들에서 최적의 활용이 가능하도록 선택되고 서술된 것이다. 첨부된 청구항들은 종래 기술에 의해 제한되는 것을 제외한 대안적인 실시예들을 포함하도록 해석된다.

Claims (15)

  1. 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법에 있어서,
    제 1 호스트 용량 한도를 사용하여 제 1 시뮬레이션된 통합(consolidation)(208)을 수행하는 단계 ― 상기 제 1 시뮬레이션된 통합은
    각각이 적어도 하나의 상기 복수 가상 장치들을 호스팅하는 가동 중인 호스트 장치들인 상기 호스트 장치들의 제 1세트와 가동 중단된 호스트 장치들인 상기 호스트 장치들의 제 2세트를 식별하는 단계와;
    상기 복수의 호스트 장치들 각각에 대한 효율성을 판단하는 단계와;
    상기 호스트 장치의 제 1세트 중 적어도 하나가 비효율적인 호스트인 것을 식별하는 단계와;
    가상 장치들의 세트가 상기 호스트 장치들의 상기 제 1세트 중 적어도 하나에서 가동되는 가상 장치들인 것을 식별하는 단계와;
    상기 가상 장치들의 세트를 제 1 맵핑을 생성하기 위해서 상기 호스트 장치들의 상기 제 1세트의 다른 멤버들 위에 배치하는 단계
    를 포함하는 방법에 의해 수행되며, 상기 배치하는 단계는 각각의 상기 호스트 장치들이 상기 제 1 호스트 용량 아래의 용량을 가지도록 수행됨 ―;
    제 2 맵핑을 생성하기 위해서 상기 제 1 맵핑을 이용하여 시뮬레이션된 로드 밸런싱(210)을 수행하는 단계 ― 상기 시뮬레이션된 로드 밸런싱은 모든 상기 호스트 장치들이 제 2 호스트 용량 한도 밑이 되도록 적어도 하나의 가상 장치를 이동시키는 단계를 포함함 ―;
    제 3 맵핑을 생성하기 위해서 상기 제 2 맵핑을 이용하여 제 2 시뮬레이션된 통합(212)을 수행하는 단계 ― 상기 제 2 시뮬레이션된 통합은 제 3 호스트 용량 한도를 사용해서 수행됨 ―;
    상기 제 3 맵핑에 따라서 상기 복수의 가상 장치들(214)을 상기 복수의 호스트 장치들로 배치하는 단계를 포함하는 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  2. 제 1 항에 있어서,
    상기 효율성은 전력 효율성인 복수의 가상 장치들을 복수의 호스트 장치들 위에 배치하는 방법.
  3. 제 2 항에 있어서,
    상기 전력 효율성은 소비된 리소스를 소비된 전력으로 나누는 방식에 의해 판단되는 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  4. 제 3 항에 있어서,
    상기 리소스는 CPU 리소스인 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  5. 제 3 항에 있어서,
    상기 리소스는 저장 리소스인 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  6. 제 3 항에 있어서,
    상기 리소스는 부족한 리소스인 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  7. 제 1 항에 있어서,
    상기 시뮬레이션된 로드 밸런싱이 호스트 장치들의 상기 제 2세트로부터 새로운 호스트를 식별하는 단계와 적어도 하나의 상기 가상 장치들을 상기 새로운 호스트로 이동시키는 단계로 구성되는 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  8. 제 7 항에 있어서,
    상기 새로운 호스트는 효율적인 호스트인 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  9. 제 1 항에 있어서,
    상기 제 1 용량 한도는 상기 제 2 용량 한도보다 높은 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  10. 제 9 항에 있어서,
    상기 제 2 용량 한도는 상기 제 3 용량 한도보다 높은 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  11. 제 1 항에 있어서,
    상기 제 1 시뮬레이션된 통합은 적어도 두 개의 상기 호스트 장치들에 대해 수행되는 복수의 가상 장치들을 복수의 호스트 장치들 상에 배치하는 방법.
  12. 복수의 호스트 장치들과 상기 복수의 호스트 장치들 상에서 가동될 수 있는 복수의 가상 장치들을 관리하는 시스템에 있어서,
    각각의 상기 호스트 장치들과 각각의 상기 가상 장치들에 대한, 각각의 상기 호스트 장치에 대한 효율성의 컴퓨팅을 위해 사용될 수 있는 데이터로 구성되는 데이터를 판단하도록 설정된 데이터 수집부(132)와;
    아래의 방법에 의해 수행되는 제안되는 맵핑을 생성하도록 설정된 분석 엔진(134)과, 상기 방법이:
    제 1 호스트 용량 한도를 사용하여 제 1 시뮬레이션된 통합(consolidation)을 수행하는 단계 ― 상기 제 1 시뮬레이션된 통합은
    각각이 적어도 하나의 상기 복수 가상 장치들을 호스팅하는 가동 중인 호스트 장치들인 상기 호스트 장치들의 제 1세트와 가동 중단된 호스트 장치들인 상기 호스트 장치들의 제 2세트를 식별하는 단계와;
    상기 복수의 호스트 장치들 각각에 대한 효율성을 판단하는 단계와;
    상기 호스트 장치의 제 1세트 중 적어도 하나가 비효율적인 호스트인 것을 식별하는 단계와;
    가상 장치들의 세트가 상기 호스트 장치들의 상기 제 1세트 중 적어도 하나에서 가동되는 가상 장치들인 것을 식별하는 단계와;
    상기 가상 장치들의 세트를 제 1 맵핑을 생성하기 위해서 상기 호스트 장치들의 상기 제 1세트의 다른 멤버들 위에 배치하는 단계
    를 포함하는 방법에 의해 수행되며, 상기 배치하는 단계는 각각의 상기 호스트 장치들이 상기 제 1 호스트 용량 아래의 용량을 가지도록 수행됨 ―;
    제 2 맵핑을 생성하기 위해서 상기 제 1 맵핑을 이용하여 시뮬레이션된 로드 밸런싱을 수행하고, 상기 시뮬레이션된 로드 밸런싱이 모든 상기 호스트 장치들이 제 2 호스트 용량 한도 밑이 되도록 적어도 하나의 가상 장치를 이동시키는 단계로 구성되는 단계와;
    제 3 맵핑을 생성하기 위해서 상기 제 2 맵핑을 이용하여 제 2 시뮬레이션된 로드 밸런싱을 수행하고 상기 제 2 시뮬레이션된 로드 밸런싱이 제 3 호스트 용량 한도를 사용해서 수행되는 단계를 포함하고;
    상기 시스템은 또한
    상기 제안되는 맵핑과 일치시키기 위해 상기 가상 장치들의 적어도 일부를 이동시키도록 설정된 가상 장치 배치 서비스(136)를 포함하는 복수의 가상 장치들을 관리하는 시스템.
  13. 제 12 항에 있어서,
    상기 시뮬레이션된 로드 밸런싱을 수행하는 단계는 워스트핏 감소 알고리즘(worst fit decreasing algorithm)에 의해 수행되는 복수의 가상 장치들을 관리하는 시스템.
  14. 제 12 항에 있어서,
    상기 분석 엔진은 추가로:
    상기 방법을 사용해서 복수의 맵핑 시나리오들을 수행하고;
    상기 복수의 맵핑 시나리오들 각각을 점수화하고; 그리고
    상기 복수의 맵핑 시나리오들 중 하나로부터 상기 제안되는 맵핑을 선택하도록 구성되는 복수의 가상 장치들을 관리하는 시스템.
  15. 제 12 항에 있어서,
    상기 효율성은 호스트 장치에 대한 전력 비용을 사용해서 계산되고, 상기 전력 비용이 전력 공급 비용과 상기 호스트 장치에 기인하는 쿨링 비용(cooling costs)을 포함하는 복수의 가상 장치들을 관리하는 시스템.
KR1020117023522A 2009-04-08 2010-04-01 최적화된 가상 머신 마이그레이션 메커니즘 KR101654395B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/420,082 2009-04-08
US12/420,082 US8117613B2 (en) 2009-04-08 2009-04-08 Optimized virtual machine migration mechanism

Publications (2)

Publication Number Publication Date
KR20120002989A true KR20120002989A (ko) 2012-01-09
KR101654395B1 KR101654395B1 (ko) 2016-09-05

Family

ID=42935366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023522A KR101654395B1 (ko) 2009-04-08 2010-04-01 최적화된 가상 머신 마이그레이션 메커니즘

Country Status (7)

Country Link
US (1) US8117613B2 (ko)
EP (1) EP2417534B1 (ko)
JP (1) JP5363646B2 (ko)
KR (1) KR101654395B1 (ko)
CN (1) CN102388380B (ko)
CA (1) CA2756096C (ko)
WO (1) WO2010117888A2 (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099487B1 (en) * 2006-07-06 2012-01-17 Netapp, Inc. Systems and methods for determining placement of virtual machines
US9778718B2 (en) 2009-02-13 2017-10-03 Schneider Electric It Corporation Power supply and data center control
US9122537B2 (en) * 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
JP2011125124A (ja) * 2009-12-09 2011-06-23 Sanyo Electric Co Ltd サーバーとサーバーに収納される無停電電源装置
JP5583394B2 (ja) * 2009-12-09 2014-09-03 Fdk株式会社 サーバーの無停電電源装置
WO2011162744A1 (en) 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. Methods and systems for planning application deployment
CN102947790B (zh) 2010-06-22 2017-10-17 慧与发展有限责任合伙企业 用于确定应用的部署的方法和系统
US8745234B2 (en) * 2010-12-23 2014-06-03 Industrial Technology Research Institute Method and manager physical machine for virtual machine consolidation
US8793427B2 (en) 2011-02-10 2014-07-29 Hewlett-Packard Development Company, L.P. Remote memory for virtual machines
US20140223430A1 (en) * 2011-04-07 2014-08-07 Hewlett-Packard Development Company, L.P. Method and apparatus for moving a software object
GB2492172A (en) * 2011-06-25 2012-12-26 Riverbed Technology Inc Controlling the Operation of Server Computers by Load Balancing
EP2737398A4 (en) 2011-07-29 2015-01-07 Hewlett Packard Development Co MIGRATION OF VIRTUAL MACHINES
CN102317910B (zh) 2011-08-03 2014-08-20 华为技术有限公司 虚拟化数据备份方法、虚拟化数据重组方法、装置及系统
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US9933843B2 (en) * 2011-12-22 2018-04-03 Schneider Electric It Corporation Systems and methods for reducing energy storage requirements in a data center
CN102571986B (zh) * 2012-02-27 2014-05-21 浙江大学 一种基于向量映射的负载均衡方法
JP2013196276A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 情報処理装置、プログラムおよびデータ配置方法
KR20150043377A (ko) * 2012-08-07 2015-04-22 어드밴스드 마이크로 디바이시즈, 인코포레이티드 클라우드 컴퓨팅 시스템을 튜닝하는 시스템 및 방법
US9331891B2 (en) 2012-10-11 2016-05-03 International Business Machines Corporation Virtual consolidated appliance
CN103077082B (zh) * 2013-01-08 2016-12-28 中国科学院深圳先进技术研究院 一种数据中心负载分配及虚拟机迁移节能方法及系统
US9009706B1 (en) * 2013-01-23 2015-04-14 Symantec Corporation Monitoring and updating state information of virtual devices to guest virtual machines based on guest virtual machine's probing policy
US9329888B2 (en) 2013-01-28 2016-05-03 International Business Machines Corporation Computing optimized virtual machine allocations using equivalence combinations
US9740534B2 (en) * 2013-02-01 2017-08-22 Nec Corporation System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program
JP2014206805A (ja) * 2013-04-11 2014-10-30 株式会社三菱東京Ufj銀行 制御装置
CN103246564B (zh) * 2013-05-17 2016-06-01 浙江大学 一种面向云数据中心的大规模虚拟机快速迁移决策方法
US10157073B2 (en) 2013-05-29 2018-12-18 Nec Corporation Virtual-machine control device, virtual-machine control method, computer-readable recording medium recording program for virtual-machine control method, and data center
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
US10776244B2 (en) * 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
US9762461B2 (en) 2013-07-09 2017-09-12 Oracle International Corporation Cloud services performance tuning and benchmarking
US9442983B2 (en) 2013-07-09 2016-09-13 Oracle International Corporation Method and system for reducing instability when upgrading software
US9967154B2 (en) 2013-07-09 2018-05-08 Oracle International Corporation Advanced customer support services—advanced support cloud portal
US11157664B2 (en) 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9747311B2 (en) 2013-07-09 2017-08-29 Oracle International Corporation Solution to generate a scriptset for an automated database migration
US9805070B2 (en) 2013-07-09 2017-10-31 Oracle International Corporation Dynamic migration script management
US9792321B2 (en) 2013-07-09 2017-10-17 Oracle International Corporation Online database migration
JP6023022B2 (ja) * 2013-08-05 2016-11-09 日本電信電話株式会社 電力消費量算出システムおよび方法
US9207976B2 (en) 2013-08-13 2015-12-08 International Business Machines Corporation Management of prioritizing virtual machines in an operating environment
US9852000B2 (en) * 2013-08-27 2017-12-26 Empire Technology Development Llc Consolidating operations associated with a plurality of host devices
US9348654B2 (en) 2013-11-19 2016-05-24 International Business Machines Corporation Management of virtual machine migration in an operating environment
US9317326B2 (en) 2013-11-27 2016-04-19 Vmware, Inc. Consistent migration of a group of virtual machines using source and destination group messaging
CN103677958B (zh) * 2013-12-13 2017-06-20 华为技术有限公司 一种虚拟化集群的资源调度方法及装置
JP6372074B2 (ja) * 2013-12-17 2018-08-15 富士通株式会社 情報処理システム,制御プログラム及び制御方法
US9632840B2 (en) 2014-04-22 2017-04-25 International Business Machines Corporation Load balancing with granularly redistributable workloads
US9811365B2 (en) * 2014-05-09 2017-11-07 Amazon Technologies, Inc. Migration of applications between an enterprise-based network and a multi-tenant network
US9298518B2 (en) * 2014-07-09 2016-03-29 International Business Machine Corporation Safe consolidation and migration
US9886083B2 (en) 2014-12-19 2018-02-06 International Business Machines Corporation Event-driven reoptimization of logically-partitioned environment for power management
US11182713B2 (en) 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize operating system license costs in a virtual data center
US10715460B2 (en) * 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US11336519B1 (en) * 2015-03-10 2022-05-17 Amazon Technologies, Inc. Evaluating placement configurations for distributed resource placement
US10002014B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit
US10002015B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit
US9973432B2 (en) * 2015-07-10 2018-05-15 International Business Machines Corporation Load balancing in a virtualized computing environment based on a fabric limit
JP6431454B2 (ja) * 2015-07-30 2018-11-28 日本電信電話株式会社 クラスタ内リソース管理システム、クラスタ内リソース管理方法、管理サーバ及びプログラム
JP2017134668A (ja) * 2016-01-28 2017-08-03 富士通株式会社 情報処理システム、情報処理システムの制御方法および管理装置の制御プログラム
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10834210B1 (en) * 2017-08-03 2020-11-10 Amazon Technologies, Inc. Synchronizing a personal workspace across multiple computing systems in a coding environment
CN110874248A (zh) * 2018-08-31 2020-03-10 上海仪电(集团)有限公司中央研究院 一种云计算环境中虚拟机启动加速方法及系统
KR102129389B1 (ko) * 2018-12-20 2020-07-08 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 다목적 가상머신 배치 방법 및 장치
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
US12039365B2 (en) 2021-03-30 2024-07-16 International Business Machines Corporation Program context migration
CN115437739A (zh) * 2021-06-02 2022-12-06 伊姆西Ip控股有限责任公司 虚拟化系统的资源管理方法、电子设备和计算机程序产品
US12093227B2 (en) 2022-12-01 2024-09-17 International Business Machines Corporation Capsule migration

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US20050251802A1 (en) * 2004-05-08 2005-11-10 Bozek James J Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20060006976A1 (en) * 2004-07-07 2006-01-12 Veris Industries, Llc Split core sensing transformer

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049741A1 (en) * 1999-06-18 2001-12-06 Bryan D. Skene Method and system for balancing load distribution on a wide area network
EP1418501A1 (fr) * 2002-11-08 2004-05-12 Dunes Technologies S.A. Méthode d'administration d'applications sur des machines virtuelles
US7203944B1 (en) 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20060069761A1 (en) 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070204266A1 (en) * 2006-02-28 2007-08-30 International Business Machines Corporation Systems and methods for dynamically managing virtual machines
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
US7444459B2 (en) * 2006-12-12 2008-10-28 Lsi Logic Corporation Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US7856549B2 (en) * 2007-01-24 2010-12-21 Hewlett-Packard Development Company, L.P. Regulating power consumption
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US8386610B2 (en) * 2007-12-31 2013-02-26 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US7925923B1 (en) * 2008-01-31 2011-04-12 Hewlett-Packard Development Company, L.P. Migrating a virtual machine in response to failure of an instruction to execute
US20100042719A1 (en) * 2008-08-12 2010-02-18 Junji Kinoshita Content access to virtual machine resource
CN101398768B (zh) * 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
US8250182B2 (en) * 2008-11-30 2012-08-21 Red Hat Israel, Ltd. Dynamic loading between a server and a client

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US20050251802A1 (en) * 2004-05-08 2005-11-10 Bozek James J Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20060006976A1 (en) * 2004-07-07 2006-01-12 Veris Industries, Llc Split core sensing transformer

Also Published As

Publication number Publication date
CN102388380A (zh) 2012-03-21
JP5363646B2 (ja) 2013-12-11
KR101654395B1 (ko) 2016-09-05
US20100262974A1 (en) 2010-10-14
US8117613B2 (en) 2012-02-14
WO2010117888A3 (en) 2011-01-13
JP2012523620A (ja) 2012-10-04
WO2010117888A2 (en) 2010-10-14
EP2417534A2 (en) 2012-02-15
CN102388380B (zh) 2013-09-04
CA2756096A1 (en) 2010-10-14
CA2756096C (en) 2017-05-02
EP2417534B1 (en) 2018-01-10
EP2417534A4 (en) 2012-12-26

Similar Documents

Publication Publication Date Title
KR20120002989A (ko) 최적화된 가상 장치 마이그레이션 메커니즘
US8464267B2 (en) Virtual machine packing method using scarcity
US9501124B2 (en) Virtual machine placement based on power calculations
CN102696000B (zh) 用于虚拟化数据中心中的协调能量管理的方法和设备
US20110022870A1 (en) Component power monitoring and workload optimization
US8065541B2 (en) Server power consumption controller, and method and computer program for controlling server power consumption
US9235500B2 (en) Dynamic memory allocation and relocation to create low power regions
Li et al. Opportunistic scheduling in clouds partially powered by green energy
CN103559077A (zh) 一种优化的虚拟机自动迁移方法和系统
Rao et al. Energy analysis of task scheduling algorithms in green cloud
US10114438B2 (en) Dynamic power budgeting in a chassis
CN110825212B (zh) 节能调度方法及装置、计算机可存储介质
US10025639B2 (en) Energy efficient supercomputer job allocation
Patel et al. Existing and Relevant Methodologies for Energy Efficient Cloud Data centers
Ramidi et al. Virtual Machine Migration and Task Mapping Architecture for Energy Optimization in Cloud
Sun et al. Exploring the Efficiency of Renewable Energy-based Modular Data Centers at Scale
Maheshwari et al. Energy efficient threshold based approach for migration at cloud data center
CN117632464A (zh) 一种容器管理方法及相关设备
Foster UTIL-DSS: Utilization-Based Dynamic Strategy Switching for Improvement in Data Centre Operation

Legal Events

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