KR20210015590A - 가상 머신 관리 장치 및 방법 - Google Patents

가상 머신 관리 장치 및 방법 Download PDF

Info

Publication number
KR20210015590A
KR20210015590A KR1020190174258A KR20190174258A KR20210015590A KR 20210015590 A KR20210015590 A KR 20210015590A KR 1020190174258 A KR1020190174258 A KR 1020190174258A KR 20190174258 A KR20190174258 A KR 20190174258A KR 20210015590 A KR20210015590 A KR 20210015590A
Authority
KR
South Korea
Prior art keywords
virtual machine
delay
input
occurrences
event
Prior art date
Application number
KR1020190174258A
Other languages
English (en)
Other versions
KR102299040B1 (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 고려대학교 산학협력단
Priority to PCT/KR2020/008588 priority Critical patent/WO2021020746A1/ko
Publication of KR20210015590A publication Critical patent/KR20210015590A/ko
Application granted granted Critical
Publication of KR102299040B1 publication Critical patent/KR102299040B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

가상 머신 관리 장치 및 방법에 관한 것으로, 가상 머신 관리 장치는 적어도 하나의 게스트 가상 머신, 상기 게스트 도메인의 입출력을 처리하는 관리 가상 머신, 상기 적어도 하나의 게스트 가상 머신 및 상기 관리 가상 머신 사이에 발생되는 입출력 이벤트의 발생 횟수를 측정하는 이벤트 측정부, 측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 후보 선정부, 상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하되, 상기 적어도 하나의 지연 대상은 네트워크 지연 처리를 수행할 적어도 하나의 게스트 가상 머신을 포함하는 지연 대상 결정부 및 상기 지연 대상에 대해 네트워크 처리 지연을 수행하는 지연 처리부를 포함할 수 있다.

Description

가상 머신 관리 장치 및 방법{APPRATUS AND METHOD FOR MANAGING VIRTUAL MACHINES}
본 발명은 가상 머신 관리 장치 및 방법에 관한 것이다.
가상 머신(VM, Virtual Machine, 버추얼 머신 등으로도 표기될 수 있다)이란, 물리적 컴퓨터 환경을 소프트웨어적으로 구현하여 통상의 컴퓨터 장치와 동일 또는 유사하게 동작할 수 있도록 한 것으로, 적어도 하나의 물리적 장치(컴퓨터 등)의 자원을 이용하여 동작하게 된다.
클라우드 컴퓨팅(cloud computing)은 이와 같은 가상화 기술을 기반으로 구현될 수 있다. 구체적으로 예를 들어, 클라우드 컴퓨팅은 적어도 하나의 서버 장치의 물리적 자원을 가상화하여 이에 대응하는 적어도 하나의 가상 머신을 생성하고, 생성한 적어도 하나의 가상 머신(가상화된 컴퓨터의 시스템 자원)을 사용자(들)에게 제공함으로써 구현될 수 있다.
가상화 환경 내의 서버 장치에는 호스트 운영체제가 존재할 수도 있고 또는 부재할 수도 있다. 호스트 운영체제가 존재하는 경우에는 호스트 운영 체제 내에 설치된 하이퍼바이저(hypervisor)가 각각의 가상 머신을 관리한다. 호스트 운영체제가 부재한 경우, 게스트 도메인(사용자들에게 제공되는 가상 머신) 및 드라이버 도메인(게스트 도메인의 입출력을 실질적으로 처리하는 하드웨어 드라이버의 집합 또는 이와 관련된 소프트웨어 등) 각각의 운영 체제는 가상화 환경을 위한 운영체제 커널을 갖는다. 이 경우, 게스트 도메인들은 입출력을 위해서 드라이버 도메인으로 요청을 전송하고, 드라이버 도메인은 수신한 요청에 대응하는 응답을 게스트 도메인에게 전송하게 된다. 한편, 도메인들은 각각 가상적 프로세서(vCPU: virtual CPU)를 갖는데, 가상화 환경에서는 이들 가상적 프로세서가 물리적 프로세서(pCPU(physical CPU))를 점유해야 각 도메인의 실질적인 작업이 수행될 수 있게 된다. 가상적 프로세서의 물리적 프로세서의 점유는 하이퍼바이저 스케줄러에 의해 관리 및 제어된다.
한국등록특허 제1070431호 "가상화 기반 물리 시스템 및 그 자원 관리 방법" 한국등록특허 제1277273호 "자원 관리 시스템을 이용한 단말 장치간 자원 할당 방법 및 이를 위한 자원 관리 서버"
가상 환경 내에서 각각의 가상 머신의 네트워크 입출력(I/O) 성능의 불공정성을 제거 또는 완화시킬 수 있는 가상 머신 관리 장치 및 방법을 제공하는 것을 해결하고자 하는 과제로 한다.
상술한 과제를 해결하기 위하여 가상 머신 관리 장치 및 방법이 제공된다.
가상 머신 관리 장치는 적어도 하나의 게스트 가상 머신, 상기 게스트 도메인의 입출력을 처리하는 관리 가상 머신, 상기 적어도 하나의 게스트 가상 머신 및 상기 관리 가상 머신 사이에 발생되는 입출력 이벤트의 발생 횟수를 측정하는 이벤트 측정부, 측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 후보 선정부, 상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하되, 상기 적어도 하나의 지연 대상은 네트워크 지연 처리를 수행할 적어도 하나의 게스트 가상 머신을 포함하는 지연 대상 결정부 및 상기 지연 대상에 대해 네트워크 처리 지연을 수행하는 지연 처리부를 포함할 수 있다.
적어도 하나의 게스트 가상 머신 및 상기 게스트 도메인의 입출력을 처리하는 관리 가상 머신을 포함하는 가상 머신 관리 방법에 있어서, 가상 머신 관리 방법은 상기 적어도 하나의 게스트 가상 머신 및 상기 관리 가상 머신 사이에 발생되는 입출력 이벤트의 발생 횟수를 측정하는 단계, 측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 단계, 상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하되, 상기 적어도 하나의 지연 대상은 네트워크 지연 처리를 수행할 적어도 하나의 게스트 가상 머신을 포함하는 단계 및 상기 지연 대상에 대해 네트워크 처리 지연을 수행하는 단계를 포함할 수 있다.
상술한 가상 머신 관리 장치 및 방법에 의하면, 가상 환경 내에서 각각의 가상 머신의 네트워크 입출력(I/O) 성능의 불공정성을 제거 또는 완화시킬 수 있게 된다.
또한, 가상 머신에 할당되는 가상 프로세서의 물리 프로세서 점유 정도를 기반으로 하는 종래의 스케줄링 정책에 의해, 기존에 자원 구성이 동일한 가상 머신 간에 네트워크 입출력 성능이 불공정하게 처리되는 것을 방지하거나 또는 감소시킬 수 있게 된다.
또한, 자원 구성이 동일한 가상 머신을 소유 또는 이용하는 클라우드 사용자들에게 종래의 가상 환경에서 제공되는 것보다 훨씬 공정한 네트워크 서비스 품질(QoS)을 제공할 수 있게 된다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 가상 머신 제공 시스템의 일 실시예에 대한 개요도이다.
도 2는 가상 머신 관리 장치의 일 실시예에 대한 블록도이다.
도 3은 가상 머신 관리 장치의 아키텍처의 일례를 설명하기 위한 도면이다.
도 4는 지연 처리 과정의 일례를 설명하기 위한 도면이다.
도 5는 작업 분류부의 일례를 설명하기 위한 도면이다.
도 6은 두 개의 가상 머신이 존재하는 경우에 있어서 가상 머신 관리 장치에 의한 네트워크 입출력 성능을 설명하기 위한 그래프 도면이다.
도 7은 여섯 개의 가상 머신이 존재하는 경우에 있어서 종래의 네트워크 입출력 성능을 설명하기 위한 그래프 도면이다.
도 8은 여섯 개의 가상 머신이 존재하는 경우에 있어서 가상 머신 관리 장치에 의한 네트워크 입출력 성능을 설명하기 위한 그래프 도면이다.
도 9는 가상 머신 관리 장치에 의한 네트워크 성능의 공정성 및 종래의 가상화 환경에서의 네트워크 성능의 공정성을 비교하기 위한 실험 결과의 일례를 나타낸 그래프 도면이다.
도 10은 가상 머신 관리 장치에 의한 네트워크 성능의 공정성 및 종래의 가상화 환경에서의 네트워크 성능의 공정성을 비교하기 위한 실험 결과의 일례를 나타낸 다른 그래프 도면으로, 도 10의 (a), (b), 및 (c)는 각각 가상 머신이 3개, 5개, 7개가 동작 중일 때의 기존 환경과 본 발명에 대한 네트워크 처리량을 나타낸다.
도 11은 가상 머신 관리 장치에서의 중앙 처리 장치의 동작 속도와 종래의 가상화 환경에서의 중앙 처리 장치의 동작 속도를 비교한 실험 결과의 일례를 나타낸 그래프 도면이다.
도 12는 가상 머신 관리 장치 및 종래의 가상화 환경 각각에서의 디스크 입출력 처리량에 대한 비교 실험 결과의 일례를 나타낸 도면이다.
도 13은 가상 머신 관리 방법의 일 실시예에 대한 흐름도이다.
이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다.
명세서 전체에서 어떤 부분이 다른 부분과 '연결되어 있다'고 할 때, 이는 어떤 부분과 다른 부분에 따라서 물리적 연결을 의미할 수도 있고, 또는 전기적으로 연결된 것을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 '포함한다'고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다.
'제1' 이나 '제2' 등의 용어는 하나의 부분을 다른 부분으로부터 구별하기 위해 사용되는 것으로, 특별한 기재가 없는 이상 이들이 순차적인 표현을 의미하는 것은 아니다. 또한, 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.
이하, 도 1 내지 도 12를 참조하여 가상 머신 제공 시스템 및 이를 위한 가상 머신 관리 장치의 실시예에 대해서 설명하도록 한다.
도 1은 가상 머신 제공 시스템의 일 실시예에 대한 개요도이다.
도 1에 도시된 바를 참조하면, 가상 머신 제공 시스템(1)은 적어도 하나의 단말기(10)와, 적어도 하나의 단말기(10)와 네트워크(9)를 통해 연결된 가상 머신 관리 장치(100)를 포함할 수 있다.
적어도 하나의 단말기(10)는 가상 머신 제공 시스템(1)에서 제공하는 적어도 하나의 가상 머신을 이용하여 적어도 하나의 작업을 수행할 수 있도록 마련된 전자 장치로, 사용자의 조작에 따라 및/또는 미리 정의된 설정에 따라, 가상 머신 관리 장치(100)에 접속하고, 가상 머신 관리 장치(100)에 의해 적어도 하나의 가상 머신, 예를 들어 게스트 가상 머신(게스트 도메인 등으로 지칭 가능하다, 도 3의 20, 110-1, 110-2)을 할당받고, 할당받은 적어도 하나의 가상 머신(110, 110-1, 110-2)에 의해 구축되는 가상 환경 하에서 사용자가 원하는 작업(예를 들어, 프로그램 코드 작성, 문서 작성, 이미지 편집, 웹 서핑 및/또는 파일 관리 등)을 수행할 수 있도록 할 수 있다.
적어도 하나의 단말 장치(10)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 스마트 폰, 태블릿 피씨, 두부 장착형 디스플레이(HMD, Head Mounted Display) 장치, 스마트 시계, 디지털 텔레비전, 셋톱 박스, 내비게이션 장치, 개인용 디지털 보조기(PDA, Personal Digital Assistant), 휴대용 게임기, 인공지능 음향 재생 장치 및/또는 통신이 가능하고 소정의 프로세스를 처리할 수 있는 전용 단말기 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
가상 머신 관리 장치(100)는 적어도 하나의 가상 머신(예를 들어, 도 3의 120, 110, 110-1, 110-2 등)을 생성하여 가상 환경을 구축하고, 생성한 가상 머신(120, 110, 110-1, 110-2 등)을 단말 장치(10)에 제공함으로써, 단말 장치(10) 또는 단말 장치(10)의 사용자가 가상 환경 하에서 작업을 수행할 수 있도록 한다.
가상 머신 관리 장치(100)는 하나의 물리적 컴퓨팅 장치를 이용하여 구현될 수도 있고, 또는 도 1에 도시된 바와 같이 둘 이상의 물리적 컴퓨팅 장치(100A, 100B)를 이용하여 구현될 수도 있다. 여기서 물리적 컴퓨팅 장치는 서버용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터 및/또는 스마트 폰 등 연산 및 제어 처리를 수행 가능한 적어도 하나의 전자 장치를 포함할 수 있다. 한편, 가상 머신 관리 장치(100)가 둘 이상의 컴퓨팅 장치(100A, 100B)를 이용하여 구현된 경우, 후술하는 각각의 동작 또는 처리는 둘 이상의 컴퓨팅 장치(100A, 100B) 각각에 분배되어 수행될 수도 있고, 둘 이상의 컴퓨팅 장치(100A, 100B)에 의해 동일하게 수행할 수도 있으며, 또는 오직 어느 하나의 컴퓨팅 장치(100A, 100B)에 의해서만 수행될 수도 있다. 또한, 게스트 가상 머신(110, 110-1, 110-2) 중 일부에 대한 처리는 어느 하나의 컴퓨팅 장치(100A)에 의해 수행되고, 다른 일부에 대한 처리는 다른 하나의 컴퓨팅 장치(100B)에 의해 수행되도록 마련되는 것도 가능하다. 또한, 어느 하나의 컴퓨팅 장치(예를 들어, 100A 등)는 관리 가상 머신(120, 드라이버 도메인 등으로 지칭 가능하다)에 대한 처리를 수행하고, 다른 하나의 컴퓨팅 장치(예를 들어, 100B 등)는 게스트 가상 머신(110)에 대한 처리를 수행하도록 설계될 수도 있다. 이외에도 둘 이상의 물리적 컴퓨팅 장치(100A, 100B)는 다양한 방식으로 조합되어 가상 머신(120, 110, 110-1, 110-2)을 생성하여 가상화 환경을 구축할 수도 있다.
단말 장치(10) 및 가상 머신 관리 장치(100)를 통신 가능하게 연결하는 네트워크(9)는 무선 통신 네트워크, 유선 통신 네트워크 또는 이들의 조합에 의해 구축된 네트워크를 포함할 수 있다. 유선 통신 네트워크는 케이블을 이용하여 구축 가능하며, 페어 케이블, 동축 케이블, 광섬유 케이블 또는 이더넷 케이블 등을 이용하여 구축된 것일 수 있다. 무선 통신 네트워크는 근거리 통신 네트워크 및 원거리 통신 네트워크 중 적어도 하나를 포함할 수 있다. 여기서, 근거리 통신 네트워크는 와이 파이(Wi-Fi), 와이파이 다이렉트(Wi-Fi Direct), 지그비(zigbee), 블루투스(Bluetooth), 저전력 블루투스(Bluetooth Low Energy), 캔(CAN) 통신 또는 엔에프씨(NFC, Near Field Communication) 등을 이용하여 구현된 것일 수 있다. 원거리 통신 네트워크는 3GPP, 3GPP2 또는 와이맥스 계열 등의 이동 통신 표준을 기반으로 구현된 이동 통신 네트워크를 포함할 수 있다.
도 2는 가상 머신 관리 장치의 일 실시예에 대한 블록도이다.
가상 머신 관리 장치(100)는, 도 2에 도시된 바와 같이, 프로세서(192), 통신부(194), 및 저장부(196)를 포함할 수 있으며, 실시예에 따라 입출력부(198)를 더 포함할 수도 있다.
프로세서(192)는 가상 머신(120, 110, 110-1, 110-2)과 관련된 각종 처리를 수행할 수 있도록 마련된 것일 수 있다. 예를 들어, 프로세서(192)는 하이퍼바이저(도 3의 140), 지연 처리부(135), 스케줄러(142) 및 작업 분류부(150) 중 적어도 하나로 동작하거나, 이벤트 채널(130)을 형성하는 등의 동작을 수행할 수 있다. 프로세서(192)는 프로세서(192) 자체에 미리 입력되어 있거나 또는 저장부(196)에 저장된 애플리케이션(프로그램, 앱 또는 소프트웨어 등으로 표현 가능하다)을 구동시켜, 가상 머신(120, 110, 110-1, 110-2)과 관련된 연산, 판단, 처리 및/또는 제어 동작 등을 수행할 수도 있다. 여기서, 애플리케이션은 가상 머신(120, 110, 110-1, 110-2)의 관리를 위해 특별히 설계된 프로그램 코드로 이루어진 것일 수도 있다. 또한, 저장부(196)에 저장된 애플리케이션은 설계자에 의해 직접 작성 및 저장된 것일 수도 있고, 또는 유선 또는 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망을 통하여 획득 또는 갱신된 것일 수도 있다. 프로세서(192)는 중앙 처리 장치(CPU, Central Processing Unit), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 마이컴(Micom, Micro Processor), 애플리케이션 프로세서(AP, Application Processor), 전자 제어 유닛(ECU, Electronic Controlling Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 다른 전자 장치 등을 포함할 수 있다. 이들 장치는 예를 들어 하나 또는 둘 이상의 반도체 칩 및 관련 부품을 이용하여 구현 가능하다.
통신부(194)는 네트워크(9)에 접속하여 단말 장치(10)로 게스트 가상 머신(110, 110-1, 110-2)과 관련된 코드나 데이터 등을 전송하거나 또는 단말 장치(10)로부터 지시, 명령 및/또는 데이터 등을 수신할 수도 있다. 통신부(194)는 필요에 따라 유선 통신 모듈 및 무선 통신 모듈 중 적어도 하나를 이용하여 구현 가능하다.
저장부(196)는 프로세서(192)의 동작에 필요한 애플리케이션 및/또는 데이터 등을 일시적 또는 비일시적으로 저장하도록 마련된다. 예를 들어, 저장부(196)는 게스트 가상 머신(110, 110-1, 110-2) 및 관리 가상 머신(120) 사이에 발생되는 입출력 이벤트의 발생 횟수를 저장하거나, 적어도 하나의 게스트 가상 머신(110, 110-1, 110-2) 중에서 선정된 후보 및/또는 이들 중에서 결정된 지연 대상을 저장하거나, 및/또는 지연 대상의 네트워크 지연 시간을 저장할 수도 있다. 이외에도 저장부(196)는 다양한 애플리케이션이나 정보를 저장할 수 있다. 저장부(196)는 주 기억장치 및 보조 기억장치 중 적어도 하나를 포함할 수 있다.
입출력부(198)는 가상 머신 관리 장치(100)의 동작에 필요한 애플리케이션(프로그램 코드의 전부 또는 일부를 포함 가능하다), 데이터, 지시 및/또는 명령 등을 입력받고, 및/또는 가상 머신 관리 장치(100)의 동작 결과를 외부로 출력할 수 있다. 이러한 입출력부(198)를 통해 가상 머신 관리 장치(100)의 관리자는 보다 용이하게 가상 머신 관리 장치(100)의 동작을 관리하거나 통제할 수 있다.
도 3은 가상 머신 관리 장치의 아키텍처의 일례를 설명하기 위한 도면이다.
도 3에 도시된 바에 의하면, 가상 환경의 구현을 위해 가상 머신 관리 장치(100)는 사용자에게 제공되는 가상 머신인 게스트 가상 머신(110, 110-1, 110-2)과, 게스트 가상 머신(110, 110-1, 110-2)의 입출력(I/O)을 실질적으로 처리 및 관리하거나, 하드웨어(190)의 가상화를 수행하는 가상 머신인 관리 가상 머신(120)과, 게스트 가상 머신(110) 및 관리 가상 머신(120) 사이를 연결하는 이벤트 채널(130)과, 가상화를 위한 플랫폼을 제공하는 하이퍼바이저(140)와, 물리적 하드웨어(190)를 포함할 수 있다.
게스트 가상 머신(110)은 적어도 하나의 이벤트(예를 들어, 입출력 요청과 같은 적어도 하나의 요청 등을 포함할 수 있다)를 발생시키고, 발생한 이벤트를 이벤트 채널(130)을 통해 관리 가상 머신(120)으로 전송할 수 있다. 이와 같은 이벤트의 발생 및 전송을 위해 게스트 가상 머신(110)은 프론트 엔드 드라이버(112)를 포함할 수 있다. 프론트 엔드 드라이버(112) 및 관리 가상 머신(120)의 백 엔드 드라이버(122)의 동작에 의해 적어도 하나의 입출력 요청 등은 관리 가상 머신(120)으로 전송된다. 도 3에는 어느 하나의 게스트 가상 머신(110)만이 프론트 엔드 드라이버(112)를 포함하는 것으로 도시되어 있으나, 이는 설명의 편의를 위한 것으로, 각각의 게스트 가상 머신(110, 110-1, 110-2)은 각각 대응하는 프론트 엔드 드라이버를 포함할 수 있다. 실시예에 따라서, 게스트 가상 머신(110, 110-1, 110-2)은 하나만 존재할 수도 있고, 둘 이상이 존재할 수도 있다. 둘 이상의 게스트 가상 머신(110, 110-1, 110-2)이 존재하는 경우, 게스트 가상 머신(110, 110-1, 110-2) 모두는 동일한 자원으로 구성되어 있을 수도 있고, 모두 서로 상이한 자원으로 구성되어 있을 수도 있으며, 또는 게스트 가상 머신(110, 110-1, 110-2) 중 일부는 상이한 자원으로 구성되어 있을 수도 있다. 또한, 어느 하나의 게스트 가상 머신(110, 110-1, 110-2)이 다른 하나 또는 둘 이상의 게스트 가상 머신(110, 110-1, 110-2)과 상이한 경우, 어느 하나의 게스트 가상 머신(110, 110-1, 110-2)의 모든 자원이 다른 하나 또는 둘 이상의 게스트 가상 머신(110, 110-1, 110-2)의 자원과 상이할 수도 있고, 또는 어느 하나의 게스트 가상 머신(110, 110-1, 110-2)의 자원 중 일부만이 게스트 가상 머신(110, 110-1, 110-2)의 자원과 상이할 수도 있다.
관리 가상 머신(120)은 게스트 가상 머신(110, 110-1, 110-2)의 입출력 요청을 처리하고, 이에 대응하는 응답을 게스트 가상 머신(110, 110-1, 110-2)으로 전송할 수 있다. 관리 가상 머신(120)은 게스트 도메인(110, 110-1, 110-2)의 입출력 요청 등을 처리하기 위한 적어도 하나의 하드웨어 드라이버 및/또는 장치 드라이버에 접근하기 위한 에뮬레이터(emulator) 등을 포함할 수 있다. 일 실시예에 의하면, 관리 가상 머신(120)은 프론트 엔드 드라이버(112)와의 상호 데이터 전송을 수행하기 위한 백 엔드 드라이버(122)를 포함할 수 있다. 백 엔드 드라이버(122)는 프론트 엔드 드라이버(112)와 분리되어 마련된 것일 수 있다.
이벤트 채널(130)은 게스트 가상 머신(110, 110-1, 110-2) 및 관리 가상 머신(120) 사이의 이벤트 전송 통로를 제공할 수 있으며, 구체적으로 예를 들어, 프론트 엔드 드라이버(112)와 백 엔드 드라이버(122) 사이의 데이터 전송을 위한 통로를 제공할 수 있다.
일 실시예에 의하면, 이벤트 채널(130)에는 지연 처리부(135)가 더 마련될 수 있다. 지연 처리부(135)는 작업 분류부(150)의 처리 결과를 기반으로, 모든 가상 머신(110, 110-1, 110-2) 중 적어도 하나의 가상 머신(110, 110-1, 110-2 중 적어도 하나)에 대한 지연 처리를 수행할 수 있다. 예를 들어, 지연 처리부(135)는 적어도 하나의 가상 머신(110, 110-1, 110-2 중 적어도 하나)의 입출력 요청(예를 들어, 네트워크 입출력 요청)을, 관리 가상 머신(120) 및/또는 적어도 하나의 가상 머신(110, 110-1, 110-2 중 적어도 하나)로 지연시켜 전달하도록 할 수 있다. 일 실시예에 의하면, 지연 처리부(135)는 공유 메모리 등을 이용하여 작업 분류부(150)에 가상 머신(110, 110-1, 110-2)에 대한 정보를 제공하고, 또한 동일하거나 또는 상이한 공유 메모리 등을 통하여 작업 분류부(150)로부터 필요한 정보를 수신할 수 있다. 실시예에 따라서, 지연 처리부(135)는 이벤트 채널(130)과 물리적 또는 논리적으로 분리되어 별도로 마련될 수도 있다.
하이퍼바이저(140)는 가상 머신(110, 110-1, 110-2, 120) 중 적어도 하나를 각각 관리하며, 예를 들어, 각각의 가상 머신(110, 110-1, 110-2, 120)에 프로세서나 메모리 등의 자원을 제공하거나 이들 가상 머신(110, 110-1, 110-2, 120)의 동작을 모니터링할 수 있다.
하이퍼바이저(140)는 자원(일례로 하드웨어(190) 등) 등을 각각의 가상 머신(110, 110-1, 110-2, 120)에 할당하거나 또는 할당된 자원 등 회수하는 스케줄러(140)를 포함할 수 있다. 즉, 스케줄러(140)는 각각의 가상 머신(110, 110-1, 110-2, 120)의 자원 점유 정도를 결정 및 관리하게 된다. 스케줄러(140)에 의해, 각각의 가상 머신(110, 110-1, 110-2, 120)의 가상적 프로세서(vCPU)는 물리적 프로세서(pCPU)를 점유할 수 있게 되며, 이에 따라 각각의 가상 머신(110, 110-1, 110-2, 120)의 실질적인 작업(예를 들어, 화면 출력, 연산 작업 또는 입출력 작업 등)이 수행될 수 있게 된다.
일 실시예에 의하면, 하이퍼바이저(140)는 작업 분류부(150)를 더 포함할 수 있다. 도 3에는 작업 분류부(150)가 하이퍼바이저(140)에 마련될 실시예에 대해 도시되어 있으나, 설계자의 임의적 선택에 따라서, 작업 분류부(150)를 하이퍼바이저(140)와 별도로 구현하는 것도 가능하다. 다시 말해서, 상술한 작업 분류부(150)는 하이퍼바이저(140)와 물리적 또는 논리적으로 분리되어 구현될 수도 있다.
도 4는 지연 처리 과정의 일례를 설명하기 위한 도면이고, 도 5는 작업 분류부의 일례를 설명하기 위한 도면이다. 이하, 도 4 및 도 5를 통해 지연 처리 과정 및 작업 분류부를 설명함에 있어서, 편의상 제1 게스트 가상 머신 내지 제4 게스트 가상 머신(110-1 내지 110-4)은 네트워크 입출력 이벤트가 발생되는 가상 머신으로 하고, 제5 게스트 가상 머신(110-5)은 디스크 입출력 이벤트가 발생되는 가상 머신으로 하며, 제1 게스트 가상 머신 내지 제3 게스트 가상 머신(110-1 내지 110-3)은 지연 대상에 대한 후보로 하고, 제1 게스트 가상 머신(110-1) 및 제3 게스트 가상 머신(110-3)은 지연 대상으로 결정되는 가상 머신으로 하여 설명하도록 한다. 그러나, 이는 예시적인 것으로 다른 게스트 가상 머신가, 네트워크 입출력이 발생되는 가상 머신, 후보 또는 지연 대상이 될 수도 있음은 자명하다.
작업 분류부(150)는, 도 4에 도시된 바와 같이, 적어도 하나의 게스트 가상 머신(110: 110-1, 110-2, 110-3, 110-4, 110-5, 110-5) 중 지연 처리의 대상이 되는 적어도 하나의 게스트 가상 머신(이하 지연 대상)을 결정할 수 있다. 작업 분류부(150)는, 지연 대상(110-1, 110-3)이 결정되면, 결정된 지연 대상에 대한 정보를 이벤트 채널(130)의 지연 처리부(135)로 전달하여 지연 대상으로 결정된 게스트 가상 머신(110-1, 110-3)에 대한 지연 처리가 수행되도록 할 수 있다. 여기서 지연 처리는 네트워크 지연 처리를 포함할 수 있다. 또한, 작업 분류부(150)는 처리가 지연될 시간(이하 지연 시간)을 더 연산하여, 지연 처리부(135)에 의해 지연 처리되는 시간을 결정할 수도 있다. 지연 처리 시간 역시 지연 처리부(135)로 전달될 수도 있다. 이 경우, 작업 분류부(150)는 상술한 바와 같이 공유 메모리 등을 이용하여 지연 처리부(135)로 지연 대상에 대한 정보 및/또는 지연 시간을 전달할 수도 있다.
일 실시예에 의하면, 도 5에 도시된 바와 같이 작업 분류부(150)는 이벤트 측정부(152), 후보 선정부(154) 및 지연 대상 결정부(156)를 포함할 수 있으며, 지연시간 획득부(158)를 더 포함할 수도 있다.
이벤트 측정부(152)는 적어도 하나의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5) 및 관리 가상 머신(120) 사이에 발생되는 이벤트(예를 들어, 입출력 요청과 같은 입출력 이벤트를 포함할 수 있다)의 발생 횟수를 측정할 수 있다. 즉, 이벤트 측정부(152)는 이벤트 채널(130)을 통해 상호 전달되는 이벤트의 발생 횟수를 측정할 수 있다. 이 경우, 이벤트 측정부(152)는 설계자, 사용자 또는 설정에 따라 정의된 일정한 시간(여기서, 일정한 시간은 고정적일 수도 있고 가변적일 수도 있다) 동안 스케줄러(142)에서 발생하는 응답 이벤트의 횟수를 측정함으로써, 적어도 하나의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5) 및 관리 가상 머신(120) 사이에 발생되는 이벤트의 발생 횟수를 측정할 수도 있다. 스케줄러(142)에서 발생하는 응답 이벤트는, 적어도 하나의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)에 대한 관리 가상 머신(120)의 응답(일례로 입출력 응답)을 수행하기 위해 발생되는 이벤트를 포함할 수 있다.
일 실시예에 의하면, 이벤트 측정부(125)는 이벤트 채널(130) 내에서 수행되는 네트워크 입출력에 대응하는 이벤트(이하 네트워크 입출력 이벤트)에 대한 발생 횟수만을 측정할 수도 있다. 스케줄러(142)에서 발생되는 이벤트(응답 이벤트 등)는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 디스크 입출력 및 네트워크 입출력을 포함할 수 있는데, 이벤트 측정부(125)는 이 중에서 네트워크 입출력 이벤트만을 분류한 후, 분류된 네트워크 입출력 이벤트에 대한 발생 횟수를 측정하고, 이를 기반으로 평균 발생 횟수를 연산하도록 마련된 것일 수도 있다.
스케줄러(142)에서 발생되는 이벤트는 가상화 환경 구조에 기인하여 네트워크 입출력인지 또는 디스크 입출력인지 명확히 구분되기 어렵고, 단지 입출력의 수행 정도만을 구분할 수 있다. 따라서, 네트워크 입출력을 요청하는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)의 구분을 위하여, 이벤트 측정부(125)는 이벤트 채널(130)에서 발생되는 이벤트의 종류를 고려할 수 있다. 구체적으로 게스트 가상 머신(110-5)의 디스크 입출력 동작에 기인하여 발생된 이벤트의 최종 목적지는 디스크 입출력 작업을 수행하는 게스트 가상 머신(110-5), 즉 자기 자신인 반면에, 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)의 네트워크 입출력에 기인하여 발생되는 이벤트의 최종 목적지는 다른 가상 머신, 일례로 관리 가상 머신(120)이다. 따라서, 양 입출력에 의해 발생되는 이벤트는 그 형태가 상이하며, 이벤트 채널(130)에서도 상이하게 발생한다. 이런 점을 고려하면, 이벤트 채널(130) 내에 네트워크 입출력의 발생 시 이와 연관된 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)에 대한 정보를 획득하면, 네트워크 작업을 수행하는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)을 별도로 분류할 수 있게 된다. 따라서, 이벤트 측정부(125)는, 이벤트 채널(130)로부터 네트워크 입출력이 수행되고 있는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)에 대한 정보를 이벤트 채널(130)로부터 별도로 획득하고, 이를 기반으로 발생된 응답 이벤트 중에서 네트워크 입출력 이벤트만을 분류하여 획득하고 이를 계수함으로써, 이벤트 채널(130) 내에서 수행되는 네트워크 입출력 이벤트에 대한 발생 횟수만을 측정할 수 있게 된다. 이 경우, 이벤트 측정부(125)는 네트워크 입출력이 수행되고 있는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)에 대한 정보를, 이벤트 채널(130)로부터 직접 수신할 수도 있고, 및/또는 이벤트 채널(130)에 마련된 지연 처리부(135)로부터 획득할 수도 있다.
이벤트 측정부(152)는 모든 또는 일부의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)에 대한 응답 이벤트의 평균 발생 횟수를 더 연산하여 획득할 수도 있다. 예를 들어, 이벤트 측정부(152)는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5) 각각에 대한 응답 이벤트의 발생 횟수를 획득하고, 미리 정의된 바에 따라 모든 또는 일부의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)을 선택하고, 선택된 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 응답 이벤트 발생 횟수를 합산한 후 이를 선택된 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 개수로 나눔으로써, 응답 이벤트의 평균 발생 횟수를 연산할 수 있다. 여기서, 응답 이벤트는, 각 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)에서 발생된 이벤트에 대응하여 스케줄러(142)에서 발생되는 계수 가능한 이벤트를 포함할 수 있다. 일 실시예에 의하면, 응답 이벤트의 평균 발생 횟수는, 네트워크 입출력 이벤트가 발생된 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)만을 기반으로 연산될 수도 있다. 또한, 실시예에 따라서, 응답 이벤트는 특정 플랫폼에 국한된 이벤트만을 포함할 수도 있고, 또는 특정 플랫폼에 국한되지 않은 모든 가상화 환경을 지원하는 플롯폼에서 발생되는 이벤트를 포함할 수도 있다.
후보 선정부(154)는 입출력 집약도가 높은 게스트 가상 머신(이하 입출력 집약적인 가상 머신)을 분류하여, 지연 대상이 될 게스트 가상 머신(110-1, 110-3)에 대한 후보, 예를 들어 제1 게스트 가상 머신(110-1), 제2 게스트 가상 머신(110-2) 및 제3 게스트 가상 머신(110-3)을 선정할 수 있다. 여기서 입출력 집약도는 네트워크 입출력 집약도를 포함할 수 있다. 다시 말해서, 입출력 집약적인 가상 머신은, 네트워크 입출력 집약적인 가상 머신을 포함할 수 있다.
일 실시예에 의하면, 후보 선정부(154)는 이벤트 측정부(152)에서 측정된 입출력 이벤트의 발생 횟수를 기반으로, 모든 또는 일부의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5) 중에서 지연 대상이 될 게스트 가상 머신(110-1, 110-3)에 대한 후보(110-1, 110-2, 110-3)를 선정할 수도 있다. 구체적으로 후보 선정부(154)는 하기의 수학식 1을 기반으로 후보를 선정할 수 있다.
[수학식 1]
Figure pat00001
수학식 1에서 CL{…}는 선정된 후보들에 대한 집합(하나 또는 둘 이상의 원소를 포함할 수 있으며, 상황에 따라 공집합을 포함할 수도 있다)을 의미하고, X_re는 적어도 하나의 가상 머신(110-1, 110-2, 110-3, 110-4, 실시예에 따라 제5 게스트 가상 머신(110-5)을 포함할 수도 있다)의 응답 이벤트 발생 횟수를 의미하며, M(X_re)는 모든 또는 일부의 가상 머신(110-1, 110-2, 110-3, 110-4, 실시예에 따라 제5 게스트 가상 머신(110-5)을 포함할 수도 있다)의 응답 이벤트 발생 횟수에 대한 평균(이하 평균 이벤트 발생 횟수)을 의미한다. 여기서, 응답 이벤트는 네트워크 입출력 이벤트를 포함할 수 있다. C_ref는 미리 정의된 기준 값이다. C_ref는 예를 들어 0.3(30%)으로 정의될 수도 있으나, 이에 한정되는 것은 아니다. 수학식 1에 기재된 바를 참조하면, 응답 이벤트를 발생시키는 어느 하나의 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 일례로 네트워크 작업을 수행하고 있는 가상 머신)은, 그 게스트 가상 머신(110-1, 110-2, 110-3)의 응답 이벤트 발생 횟수가 제1 기준 값을 초과하는 경우에 후보로 선정될 수 있다. 일 실시예에 의하면, 제1 기준 값은, 모든 또는 일부의 가상 머신들(110-1, 110-2, 110-3, 110-4)에 대한 평균 이벤트 발생 횟수(M(X_re))와 미리 정의된 기준 값(C_ref)의 곱으로 정의될 수 있다. 다시 말해서, 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)의 응답 이벤트 발생 횟수가 평균 이벤트 발생 횟수(M(X_re))의 일정 비율(예를 들어, 30%)을 초과하면, 후보로 선정될 수 있다.
이와 같은 과정에 의해서 입출력 집약적인 가상 머신 또는 네트워크 입출력 집약적인 가상 머신(110-1, 110-2, 110-3)이 획득될 수 있게 된다. 입출력 집약적인 가상 머신 또는 네트워크 입출력 집약적인 가상 머신(110-1, 110-2, 110-3)은 지연 대상을 위한 후보로 선정될 수 있다.
지연 대상 결정부(156)는 후보 선정부(154)에 의해 선정된 후보(110-1, 110-2, 110-3, 즉, 입출력 집약적인 가상 머신 또는 네트워크 입출력 집약적인 가상 머신) 중에서 지연 대상(일례로 110-1, 110-3)을 결정할 수 있다. 지연 대상 결정부(156)는 일 실시예에 의하면, 작업을 수행 중인 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 실시예에 따라 제5 게스트 가상 머신(110-5)을 포함할 수도 있다)들의 네트워크 이벤트 발생 횟수의 차이를 기반으로 후보 중에서 지연 대상(110-1, 110-3)을 결정할 수도 있다.
일 실시예에 의하면, 지연 대상 결정부(156)는 하기의 수학식 2를 기반으로 지연 대상을 결정할 수 있다.
[수학식 2]
Figure pat00002
수학식 2에서 NDPVML{…}은 지연 대상에 대한 집합(하나 또는 둘 이상의 원소를 포함할 수 있으며, 상황에 따라 공집합을 포함할 수도 있다)을 의미하고, X_re 및 M(X_re)는 수학식 1의 경우와 같다. 수학식 2에 기재된 바를 참조하면, 응답 이벤트(네트워크 입출력 이벤트를 포함 가능하다)를 발생시키는 적어도 하나의 게스트 가상 머신(110-1, 110-3, 일례로 네트워크 작업을 수행하고 있는 가상 머신)은, 그 게스트 가상 머신(110-1, 110-3)의 응답 이벤트 발생 횟수가 제2 기준 값을 초과하는 경우에 지연 대상으로 선정될 수 있다. 여기서 제2 기준 값은, 일 실시예에 의하면, 모든 또는 일부의 가상 머신(110-1, 110-2, 110-3, 110-4, 실시예에 따라 제5 게스트 가상 머신(110-5)을 포함할 수도 있다)에 대한 평균 이벤트 발생 횟수(M(X_re))를 포함할 수 있다. 즉, 게스트 가상 머신(110-1, 110-2, 110-3, 110-4)의 응답 이벤트 발생 횟수가 평균 이벤트 발생 횟수(M(X_re)를 초과하거나 또는 이와 동일하다면 해당 게스트 가상 머신(110-1, 110-3)은 지연 대상으로 결정될 수 있다.
지연 시간 획득부(158)는 지연 대상으로 결정된 게스트 가상 머신(110-1, 110-3)에 대한 처리 지연 시간(일례로 네트워크 처리 지연 시간)을 연산할 수 있다. 지연 시간 획득부(158)는 지연 대상인 게스트 가상 머신(110-1, 110-3) 모두에 대해서 처리 지연 시간을 연산할 수도 있고, 또는 일부에 대해서만 처리 지연 시간을 연산할 수도 있다.
일 실시예에 의하면, 지연 시간 획득부(158)는 적어도 하나의 게스트 가상 머신(110-1 내지 110-5 중 적어도 하나)을 이용하여 처리 지연 시간을 연산할 수도 있다. 보다 구체적으로는 지연 시간 획득부(158)는 적어도 하나의 게스트 가상 머신(110-1 내지 110-5 중 적어도 하나)의 입출력 이벤트(일례로 네트워크 입출력 이벤트)의 발생 횟수를 이용하여 처리 지연 시간을 연산할 수도 있다. 여기서, 적어도 하나의 게스트 가상 머신(110-1 내지 110-5 중 적어도 하나)은 입출력 이벤트(일례로 네트워크 입출력 이벤트)의 발생 횟수가 가장 작은 적어도 하나의 게스트 가상 머신을 포함할 수 있다. 다시 말해서, 지연 시간 획득부(158)는 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5) 각각의 이벤트 발생 횟수 중에서 가장 작은 값(이하 최소 입출력 이벤트 발생 횟수)을 이용하여 처리 지연 시간을 연산할 수도 있다. 보다 구체적으로 예를 들어, 지연 시간 획득부(158)는 먼저 지연 대상인 적어도 하나의 게스트 가상 머신(110-1, 110-3)의 입출력 이벤트 발생 횟수와 최소 입출력 이벤트 발생 횟수의 차이를 연산한다. 이와 동시에 또는 순차적으로 지연 시간 획득부(158)는 모든 게스트 가상 머신(110-1, 110-2, 110-3, 110-4, 실시예에 따라 제5 게스트 가상 머신(110-5)을 포함 가능함)의 입출력 이벤트 발생 횟수와 최소 입출력 이벤트 발생 횟수의 차이를 각각 연산하고, 이들의 차이의 평균을 연산한다. 이어서, 지연 시간 획득부(158)는 연산된 차이의 평균으로, 지연 대상이 되는 적어도 하나의 게스트 가상 머신(110-1, 110-3)의 입출력 이벤트 발생 횟수 및 최소 입출력 이벤트 발생 횟수 간의 차이를 나누고, 나누어 획득한 값에 이에 기준 지연 시간을 곱하여 처리 지연 시간을 연산할 수 있다. 여기서, 기준 지연 시간은 사용자 또는 설계자에 의해 정의된 값으로 고정적일 수도 있고 가변적일 수도 있다. 기준 지연 시간은, 예를 들어 400 마이크로 초(400μs)로 정의 가능하나, 이에 한정되는 것은 아니다. 기준 지연 시간은 가상 머신 관리 장치(100)가 가지고 있는 자원의 사양 등에 따라 상이하게 정의 가능하다. 또한, 입출력 이벤트는 네트워크 입출력 이벤트를 포함 가능하며, 마찬가지로 처리 지연 시간은 네트워크 처리 지연 시간을 포함할 수 있다. 상술한 기준 지연 시간의 결정 과정을 수학식으로 표현하면 하기의 수학식 3과 같다.
[수학식 3]
Figure pat00003
수학식 3에서 DT(μs)는 연산된 처리 지연 시간이고, X_re는 지연 대상이 되는 가상 머신(110-1 110-3)의 입출력 이벤트 발생 횟수고, X_min은 최소 입출력 이벤트 발생 횟수를 의미한다. X_rei은 i번째 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 입출력 이벤트 발생 횟수며, n은 입출력 이벤트를 발생시키는 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 개수일 수 있으며. 실시예에 따라서 후보로 선정된 가상 머신(110-1, 110-2, 110-3)의 개수일 수도 있고, 네트워크 입출력 이벤트를 발생시키는 가상 머신(110-1 내지 110-4)의 개수일 수도 있으며, 또는 전체적인 가상 머신(110-1, 110-2, 110-3, 110-4, 110-5)의 개수일 수도 있다. DT_ref는 기준 지연 시간을 의미한다.
일 실시예에 의하면, 지연 대상 결정부(156) 및/또는 지연 시간 획득부(158) 각각이 획득한 지연 대상 및/또는 지연 시간은 지연 처리부(135)로 전달되고, 지연 처리부(135)는 수신한 지연 대상 및/또는 지연 시간을 기반으로 적어도 하나의 게스트 가상 머신(110-1, 110-3)에 관한 데이터 송수신 등의 처리를 지연시킬 수 있다. 다른 실시예에 의하면, 지연 대상 및/또는 지연 시간은 스케줄러(142)로 전달될 수 있으며, 스케줄러(142)는 이를 기반으로 지연 처리를 수행할 수 있다.
도 4에 도시된 바에 의하면, 각각의 가상 머신(110-1 내지 110-4)의 프론트 엔드 드라이버(112-1 내지 112-4)이 네트워크 입출력 이벤트를 발생시키면, 이에 대응하는 요청들(128)은 순차적으로 또는 임의적으로 이벤트 채널(130) 내에 입력된다. 관리 가상 머신(120)은 이와 같은 입력(128)을 수신하고 백 엔드 드라이버(122)는 각 요청(128)을 물리적 장치, 즉 네트워크 카드(194-1)에 순차적으로 또는 임의적으로 할당하게 된다. 이 경우, 지연 처리부(135)는 입력된 요청(128) 내에서 지연 처리의 대상이 되는 요청, 예를 들어 제1 게스트 가상 머신(110-1)에서 전달된 요청 및 제3 가상 머신(110-3)에서 전달된 요청에 대해 지연 처리를 수행하여, 다른 요청, 예를 들어 제2 게스트 가상 머신(110-2)에서 전달된 요청 또는 제4 게스트 가상 머신(110-4)에서 전달된 요청이 먼저 처리되도록 할 수 있다. 이에 따라 네트워크 입출력 성능이 낮은 가상머신(110-2, 110-4)이 네트워크 자원(194-1)을 더 점유할 수 있게 된다.
이하 상술한 시스템(1) 및 가상 머신 관리 장치(100)에 의한 효과를 설명하도록 한다.
도 6은 두 개의 가상 머신이 존재하는 경우에 있어서 가상 머신 관리 장치에 의한 네트워크 입출력 성능을 설명하기 위한 그래프 도면이다.
도 6에 도시된 바에 의하면, 상술한 시스템(1) 또는 가상 머신 관리 장치(100)가 두 개의 가상 머신을 제공하는 경우, 두 개의 가상 머신 양자의 처리량은 실질적으로 동일하게 유지 또는 변화한다. 다시 말해서, 두 개의 가상 머신 사이의 네트워크 입출력 성능을 동일하다.
도 7은 여섯 개의 가상 머신이 존재하는 경우에 있어서 종래의 네트워크 입출력 성능을 설명하기 위한 그래프 도면이고, 도 8은 여섯 개의 가상 머신이 존재하는 경우에 있어서 가상 머신 관리 장치에 의한 네트워크 입출력 성능을 설명하기 위한 그래프 도면이다.
도 7에 도시된 바를 참조하면, 여섯 개의 가상 머신이 제공되는 경우, 종래의 기술에 의하면, 자원 구성이 동일하다고 하더라도 각각의 가상 머신의 네트워크 입출력 성능은 상이하게 주어질 수 있다. 즉, 특정한 하나 또는 둘 이상의 가상 머신의 네트워크 입출력 성능은 다른 하나 또는 둘 이상의 가상 머신의 네트워크 입출력 성능에 비해 상대적으로 매우 낮을 수 있다. 다시 말해서, 각 가상 머신에 대해 네트워크 입출력 성능의 불공정성이 나타나게 된다. 이와 같은 문제점은 가상 머신이 셋 이상인 경우 대체적으로 잘 발생하게 된다. 반면에, 도 8에 도시된 바를 참조하면, 상술한 시스템(1) 또는 가상 머신 관리 장치(100)가 여섯 개의 가상 머신을 제공하고 있는 경우, 기준 지연 시간을 200 마이크로 초로 설정한 경우, 네트워크 네트워크 대역폭이 상대적으로 낮아졌다. 또한, 기준 지연 시간을 400 마이크로 초로 설정하고 네트워크 입출력 성능이 높은 가상 머신에 대하여 네트워크 지연 처리를 적용하면, 전체적인 네트워크 대역폭에 영향을 주지 않으면서도 각 네트워크 입출력 집약적인 가상 머신에 의해 발생되는 네트워크 이벤트의 발생 정도에 영향을 미치게 된다. 이에 따라 상대적으로 네트워크 입출력 성능의 공정성을 확보할 수 있게 된다.
도 9는 가상 머신 관리 장치에 의한 네트워크 성능의 공정성 및 종래의 가상화 환경에서의 네트워크 성능의 공정성을 비교하기 위한 실험 결과의 일례를 나타낸 그래프 도면이다.
도 9에 도시된 바에 의하면, 상술한 가상 머신 관리 장치(100)에 의해 관리되는 경우(적색 점), 종래의 가상 환경(청색 점)에 비교하여 상대적으로 처리량이 대략 110MB에 집중되어 있음을 보인다. 따라서, 상술한 가상 머신 관리 장치(100)에 의해 제공되는 가상화 환경이 네트워크 입출력 성능에 대해 보다 높은 공정성을 가지고 있음을 알 수 있다.
도 10은 가상 머신 관리 장치에 의한 네트워크 성능의 공정성 및 종래의 가상화 환경에서의 네트워크 성능의 공정성을 비교하기 위한 실험 결과의 일례를 나타낸 다른 그래프 도면이다. 도 10은 중앙 처리 장치 집약적인 가상 머신 3개, 네트워크 입출력 집약적인 가상 머신 5개가 수행되는 환경 하에서, 상술한 가상 머신 관리 장치(100)에 의한 처리량(적색 선)과, 종래의 가상 환경에 의한 처리량(청색 선)을 비교한 것이다.
도 10을 참조하면, 가상 머신 관리 장치(100)에 의해 생성된 가상 환경 하에서의 처리량(적색 선)은 대체적으로 200MB 내지 230MB의 범위 내(도 10의 (a)), 120MB 내지 140MB의 범위 내(도 10의 (b)), 또는 80MB 내지 105MB의 범위 내(도 10의 (c))에서 유지되고 있으나, 종래의 가상 환경에 의한 처리량(청색 선)은 190MB 내지 230MB의 범위 내(도 10의 (a)), 80MB 내지 180MB의 범위 내(도 10의 (b)), 또는 70MB 내지 120MB의 범위 내(도 10의 (c))에서 상대적으로 크게 변화하고 있다. 이는 상술한 가상 머신 관리 장치(100)에 의해 제공되는 가상화 환경이 네트워크 입출력 성능에 대해 보다 높은 공정성을 가지고 있음을 나타낸다.
도 11은 가상 머신 관리 장치에서의 중앙 처리 장치의 동작 속도와 종래의 가상화 환경에서의 중앙 처리 장치의 동작 속도를 비교한 실험 결과의 일례를 나타낸 그래프 도면이다. 도 11의 x축은 가상 머신의 개수, y축은 응답 시간을 의미한다.
도 11에 도시된 바에 의하면, 상술한 가상 머신 관리 장치(100) 하에서의 가상 머신의 증가에 따른 응답 시간은, 종래의 가상 환경(적색 바)에서 가상 머신의 증가에 따른 응답 시간과 실질적으로 동일하다. 이는, 상술한 가상 머신 관리 장치(100)를 이용하여 가상화 환경을 구축한 경우에도, 중앙 처리 장치 집약적인 가상 머신의 성능은 변함이 없음을 나타낸다. 다시 말해서, 네트워크 지연 처리를 더 수행함에도 불구하고, 중앙 처리 장치의 작업은 거의 영향을 받지 않으며, 이에 따라 상술한 가상 머신 관리 장치(100)는 중앙 처리 장치 등의 하드웨어를 이용하는 가상 머신의 성능은 여전히 유지하면서도 네트워크 입출력 성능의 공정성을 확보할 수 있음을 알 수 있다.
도 12는 가상 머신 관리 장치 및 종래의 가상화 환경 각각에서의 디스크 입출력 처리량에 대한 비교 실험 결과의 일례를 나타낸 도면이다.
도 12에 도시된 바에 의하면 기존 환경 하에서의 처리량과 상술한 가상 머신 관리 장치(100)에 의해 구현되는 가상 환경 하에서의 처리량은 서로 실질적으로 동일하다. 다시 말해서, 상술한 가상 머신 관리 장치(100)를 이용하여 가상화 환경을 구축한 경우에도, 디스크 입출력 작업을 수행 중인 가상 머신의 성능은 종래의 가상 환경에서의 성능과 거의 차이가 없다. 즉, 네트워크 지연 처리를 더 수행함에도 불구하고, 디스크 입출력 작업 성능에는 거의 간섭을 주지 않는다.
이하 도 13을 참조하여 가상 머신 관리 방법의 일 실시예를 설명한다.
도 13은 가상 머신 관리 방법의 일 실시예에 대한 흐름도이다.
도 13에 도시된 바에 의하면, 관리 가상 머신 및 적어도 하나의 게스트 가상 머신이 생성된 상태에서, 적어도 하나의 게스트 가상 머신 및 관리 가상 머신 사이에 발생된 입출력 이벤트의 발생 횟수가 측정된다(300). 여기서 입출력 이벤트는 네트워크 입출력 이벤트를 포함할 수 있다. 구체적으로, 입출력 이벤트의 발생 횟수 측정은, 설계자, 사용자 또는 설정에 따라 미리 정의된 시간 동안 스케줄러에서 발생하는 이벤트의 횟수를 측정함으로써 수행 가능하다. 이 경우, 스케줄러에서 발생하는 이벤트의 종류를 고려하여 이벤트 횟수를 측정할 수도 있다. 구체적으로 이벤트 채널로부터 네트워크 입출력이 수행되고 있는 게스트 가상 머신에 대한 정보를 이용하여 스케줄러에서 발생하는 이벤트 중에서 네트워크 입출력 이벤트만을 분류하여 획득하고, 이를 계수함으로써 네트워크 입출력 이벤트에 해당하는 발생 횟수만을 측정할 수도 있다.
이어서, 측정된 입출력 이벤트(일례로 네트워크 입출력 이벤트)의 발생 횟수를 기반으로 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보가 선정된다(302). 적어도 하나의 후보는 입출력 집약적인 가상 머신(일례로 네트워크 입출력 집약적인 가상 머신)을 분류하여 선정된 것일 수 있다. 적어도 하나의 후보의 선정을 위해 제1 기준 값이 이용될 수 있으며, 제1 기준 값은 평균 이벤트 발생 횟수를 기반으로 정의된 것일 수 있다. 보다 구체적으로 예를 들어, 제1 기준 값은 전체 또는 일부의 게스트 가상 머신 중에서 응답 이벤트의 발생 회수가 평균 이벤트 발생 회수의 일정 비율(예를 들어, 30%)로 정의될 수 있으며, 제1 기준 값과 동일하거나 또는 초과하는 적어도 하나의 게스트 가상 머신이 적어도 하나의 후보로 선정될 수 있다.
적어도 하나의 후보가 결정되면, 적어도 하나의 후보 중에서 적어도 하나의 지연 대상이 결정된다(304). 지연 대상은 제2 기준 값을 기반으로 결정될 수 있으며, 예를 들어, 제2 기준 값과 동일하거나 초과하는 적어도 하나의 게스트 가상 머신이 지연 대상으로 결정될 수 있다. 여기서 제2 기준 값은 수학식 2에 기재된 바와 같이 평균 이벤트 발생 횟수를 포함할 수 있다.
지연 대상의 결정과 동시에 또는 순차적으로 지연 대상에 대한 처리 지연 시간이 연산 된다(306). 처리 지연 시간은, 적어도 하나의 게스트 가상 머신의 입출력 이벤트(일례로 네트워크 입출력 이벤트)의 발생 횟수 중에서 최소인 횟수(즉, 최소 입출력 이벤트 발생 횟수)를 기반으로 연산될 수 있다. 보다 구체적으로는 지연 시간은, 수학식 3에 기재된 바와 같이, 지연 대상인 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 최소 입출력 이벤트 발생 횟수의 차이를 획득하고, 각각의 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 최소 입출력 이벤트 발생 횟수의 차이의 평균을 연산하여 획득한 후, 획득된 차이를 연산된 평균으로 나누어 이들 사이의 비율을 구한 후, 구해진 비율에 기준 지연 시간을 적용함으로써 최종적으로 획득될 수 있다. 여기서, 기준 지연 시간은, 사용자, 설계자 또는 소정의 설정에 따라 결정된 것일 수 있으며, 예를 들어, 대략 400 마이크로 초를 포함할 수 있다.
지연 대상이 결정되고, 지연 대상에 대응하는 지연 시간이 연산되면, 지연 시간을 기반으로 지연 대상에 대해 네트워크 입출력 요청에 대한 지연 처리가 수행된다(308).
상술한 실시예에 따른 가상 머신 관리 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 가상 머신 관리 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 또한, 여기서, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다.
상술한 가상 머신 관리 방법을 구현하기 위한 프로그램은, 컴퓨터에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 하드 디스크나 플로피 디스크와 같은 자기 디스크 저장 매체, 자기 테이프, 콤팩트 디스크나 디브이디와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 기록 매체 및 롬, 램 또는 플래시 메모리 등과 같은 반도체 저장 장치 등 컴퓨터 등의 호출에 따라 실행되는 특정 프로그램을 저장 가능한 다양한 종류의 하드웨어 장치를 포함할 수 있다.
이상 가상 머신 관리 장치 및 방법의 여러 실시예에 대해 설명하였으나, 장치 및 방법은 오직 상술한 실시예에 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현 가능한 다양한 장치나 방법 역시 상술한 가상 머신 관리 장치 및 방법의 일례가 될 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나 다른 구성 요소 또는 균등물에 의하여 대치되거나 또는 치환되더라도 상술한 가상 머신 관리 장치 및 방법의 일 실시예가 될 수 있다.
1: 가상 머신 제공 시스템 10: 단말 장치
100: 가상 머신 제공 장치 110: 게스트 가상 머신
112: 프론트 엔드 드라이버 120: 관리 가상 머신
122: 백 엔드 드라이버 130: 이벤트 채널
135: 지연 처리부 140: 하이퍼바이저
142: 스케줄러 150: 작업분류부
152: 이벤트 측정부 154: 후보 선정부
156: 지연 대상 결정부 158: 지연 시간 획득부
190: 하드웨어

Claims (16)

  1. 적어도 하나의 게스트 가상 머신과 상기 적어도 하나의 게스트 가상 머신의 입출력을 처리하는 관리 가상 머신 사이에 발생되는 입출력 이벤트의 발생 횟수를 측정하는 이벤트 측정부;
    측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 후보 선정부;
    상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하되, 상기 적어도 하나의 지연 대상은 네트워크 지연 처리를 수행할 적어도 하나의 게스트 가상 머신을 포함하는 지연 대상 결정부; 및
    상기 적어도 하나의 지연 대상에 대해 네트워크 처리 지연을 수행하는 지연 처리부를 포함하는 가상 머신 관리 장치.
  2. 제1항에 있어서,
    상기 후보 선정부는 평균 이벤트 발생 횟수를 기반으로 상기 적어도 하나의 후보를 선정하는 가상 머신 관리 장치.
  3. 제2항에 있어서,
    상기 후보 선정부는 상기 입출력 이벤트 발생 횟수가 제1 기준값을 초과하는 적어도 하나의 게스트 가상 머신을 상기 적어도 하나의 후보로 선정하되, 상기 제1 기준값은 상기 평균 이벤트 발생 횟수와 미리 정의된 값의 곱을 포함하는 가상 머신 관리 장치.
  4. 제1항에 있어서,
    상기 지연 대상 결정부는 상기 입출력 이벤트의 발생 횟수가 제2 기준값을 초과하는 적어도 하나의 게스트 가상 머신을 상기 적어도 하나의 지연 대상으로 결정하되, 상기 제2 기준 값은 상기 평균 이벤트 발생 횟수를 포함하는 가상 머신 관리 장치.
  5. 제1항에 있어서,
    상기 지연 대상에 대한 네트워크 처리 지연 시간을 연산하는 지연 시간 획득부를 더 포함하는 가상 머신 관리 장치.
  6. 제5항에 있어서,
    상기 지연 시간 획득부는 최소 입출력 이벤트 발생 횟수를 기준으로 상기 네트워크 처리 지연 시간을 연산하되, 상기 최소 입출력 이벤트 발생 횟수는 상기 게스트 가상 머신의 입출력 이벤트 발생 횟수 중에서 가장 작은 입출력 이벤트 발생 횟수를 포함하는 가상 머신 관리 장치.
  7. 제6항에 있어서,
    상기 지연 시간 획득부는 상기 지연 대상인 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 상기 최소 입출력 이벤트 발생 횟수의 차이와, 각각의 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 상기 최소 입출력 이벤트 발생 횟수의 차이의 평균 사이의 비율을 기준 지연 시간에 적용하여 상기 네트워크 처리 지연 시간을 연산하는 가상 머신 관리 장치.
  8. 제1항에 있어서,
    상기 입출력 이벤트는 네트워크 입출력 이벤트를 포함하는 가상 머신 관리 장치.
  9. 적어도 하나의 게스트 가상 머신과 상기 적어도 하나의 게스트 가상 머신의 입출력을 처리하는 관리 가상 머신 사이에 발생되는 입출력 이벤트의 발생 횟수를 측정하는 단계;
    측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 단계;
    상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하되, 상기 적어도 하나의 지연 대상은 네트워크 지연 처리를 수행할 적어도 하나의 게스트 가상 머신을 포함하는 단계; 및
    상기 적어도 하나의 지연 대상에 대해 네트워크 처리 지연을 수행하는 단계를 포함하는 가상 머신 관리 방법.
  10. 제9항에 있어서,
    상기 측정된 상기 입출력 이벤트의 발생 횟수를 기반으로 상기 적어도 하나의 게스트 가상 머신 중에서 적어도 하나의 후보를 선정하는 단계는,
    평균 이벤트 발생 횟수를 기반으로 상기 적어도 하나의 후보를 선정하는 단계를 포함하는 가상 머신 관리 방법.
  11. 제10항에 있어서,
    상기 평균 이벤트 발생 횟수를 기반으로 상기 적어도 하나의 후보를 선정하는 단계는,
    상기 입출력 이벤트 발생 횟수가 제1 기준값을 초과하는 적어도 하나의 게스트 가상 머신을 상기 적어도 하나의 후보로 선정하되, 상기 제1 기준값은 상기 평균 이벤트 발생 횟수와 미리 정의된 값의 곱을 포함하는 단계를 포함하는 가상 머신 관리 방법.
  12. 제9항에 있어서,
    상기 적어도 하나의 후보 중에서 적어도 하나의 지연 대상을 결정하는 단계는,
    상기 입출력 이벤트의 발생 횟수가 제2 기준값을 초과하는 적어도 하나의 게스트 가상 머신을 상기 적어도 하나의 지연 대상으로 결정하되, 상기 제2 기준 값은 상기 평균 이벤트 발생 횟수를 포함하는 단계를 포함하는 가상 머신 관리 방법.
  13. 제9항에 있어서,
    상기 적어도 하나의 지연 대상에 대한 네트워크 처리 지연 시간을 연산하는 단계를 더 포함하는 가상 머신 관리 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 지연 대상에 대한 네트워크 처리 지연 시간을 연산하는 단계는,
    최소 입출력 이벤트 발생 횟수를 기준으로 상기 네트워크 처리 지연 시간을 연산하되, 상기 최소 입출력 이벤트 발생 횟수는 상기 적어도 하나의 게스트 가상 머신의 입출력 이벤트 발생 횟수 중에서 가장 작은 입출력 이벤트 발생 횟수를 포함하는 단계를 포함하는 가상 머신 관리 방법.
  15. 제14항에 있어서,
    상기 최소 입출력 이벤트 발생 횟수를 기준으로 상기 네트워크 처리 지연 시간을 연산하는 단계는,
    상기 적어도 하나의 지연 대상인 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 상기 최소 입출력 이벤트 발생 횟수의 차이와, 각각의 게스트 가상 머신의 네트워크 이벤트 발생 횟수와 상기 최소 입출력 이벤트 발생 횟수의 차이의 평균 사이의 비율을 기준 지연 시간에 적용하여 상기 네트워크 처리 지연 시간을 연산하는 단계를 포함하는 가상 머신 관리 방법.
  16. 제9항에 있어서,
    상기 입출력 이벤트는 네트워크 입출력 이벤트를 포함하는 가상 머신 관리 방법.
KR1020190174258A 2019-07-31 2019-12-24 가상 머신 관리 장치 및 방법 KR102299040B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/008588 WO2021020746A1 (ko) 2019-07-31 2020-07-01 가상 머신 관리 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190093519 2019-07-31
KR1020190093519 2019-07-31

Publications (2)

Publication Number Publication Date
KR20210015590A true KR20210015590A (ko) 2021-02-10
KR102299040B1 KR102299040B1 (ko) 2021-09-08

Family

ID=74561029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174258A KR102299040B1 (ko) 2019-07-31 2019-12-24 가상 머신 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102299040B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101070431B1 (ko) 2008-12-22 2011-10-06 한국전자통신연구원 가상화 기반 물리 시스템 및 그 자원 관리 방법
WO2013008036A2 (en) * 2011-07-13 2013-01-17 Centrix Networking Limited Modelling virtualized infrastructure
KR101277273B1 (ko) 2008-12-08 2013-06-20 한국전자통신연구원 자원 관리 시스템을 이용한 단말 장치간 자원 할당 방법 및 이를 위한 자원 관리 서버
US20160342441A1 (en) * 2012-06-11 2016-11-24 Vmware, Inc. Unified storage/vdi provisioning methodology
KR101816718B1 (ko) * 2016-09-22 2018-02-22 고려대학교 산학협력단 Cpu 네트워크 통합 스케줄링 시스템 및 그 제어방법
KR101899719B1 (ko) * 2017-04-26 2018-09-17 세종대학교산학협력단 가상 머신에 대한 입출력 성능 제한 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277273B1 (ko) 2008-12-08 2013-06-20 한국전자통신연구원 자원 관리 시스템을 이용한 단말 장치간 자원 할당 방법 및 이를 위한 자원 관리 서버
KR101070431B1 (ko) 2008-12-22 2011-10-06 한국전자통신연구원 가상화 기반 물리 시스템 및 그 자원 관리 방법
WO2013008036A2 (en) * 2011-07-13 2013-01-17 Centrix Networking Limited Modelling virtualized infrastructure
US20160342441A1 (en) * 2012-06-11 2016-11-24 Vmware, Inc. Unified storage/vdi provisioning methodology
KR101816718B1 (ko) * 2016-09-22 2018-02-22 고려대학교 산학협력단 Cpu 네트워크 통합 스케줄링 시스템 및 그 제어방법
KR101899719B1 (ko) * 2017-04-26 2018-09-17 세종대학교산학협력단 가상 머신에 대한 입출력 성능 제한 방법

Also Published As

Publication number Publication date
KR102299040B1 (ko) 2021-09-08

Similar Documents

Publication Publication Date Title
JP6278320B2 (ja) エンドツーエンドデータセンタ性能制御
US11088961B2 (en) Monitoring data streams and scaling computing resources based on the data streams
US8131855B2 (en) Management computer, resource management method, resource management computer program, recording medium, and information processing system
US20200396311A1 (en) Provisioning using pre-fetched data in serverless computing environments
US10261811B2 (en) Systems and methods for contextually allocating emulation resources
US10355945B2 (en) Service level management of a workload defined environment
US20150309828A1 (en) Hypervisor manager for virtual machine management
US20180365060A1 (en) Leveraging directed acyclic graph (dag) information to group tasks for execution
CN110753131A (zh) 微服务分布式限流方法及装置、存储介质和电子设备
US20160179567A1 (en) Resource Configuration Method of Virtual Machine and Communications Device
US20150295789A1 (en) Management of virtual machine placement in computing environments
CN104937584A (zh) 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量
US20180026855A1 (en) Network management system, device, and method
US10963309B2 (en) Network interface controller-based scheduling of processing tasks in a distributed computing system
US9703597B2 (en) Dynamic timeout period adjustment of service requests
JPWO2014118969A1 (ja) 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法
CN111506414A (zh) 资源调度方法、装置、设备、系统及可读存储介质
US9501321B1 (en) Weighted service requests throttling
KR102299040B1 (ko) 가상 머신 관리 장치 및 방법
WO2021020746A1 (ko) 가상 머신 관리 장치 및 방법
US10929245B1 (en) Flexible scheduler for backups
US20180083846A1 (en) Service level management of a workload defined environment
JP5641064B2 (ja) 実行制御プログラム、実行制御装置および実行制御方法
KR102203204B1 (ko) 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치
US20170063976A1 (en) Dynamic record-level sharing (rls) provisioning inside a data-sharing subsystem

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant