KR101665461B1 - 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법 - Google Patents

실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법 Download PDF

Info

Publication number
KR101665461B1
KR101665461B1 KR1020150090951A KR20150090951A KR101665461B1 KR 101665461 B1 KR101665461 B1 KR 101665461B1 KR 1020150090951 A KR1020150090951 A KR 1020150090951A KR 20150090951 A KR20150090951 A KR 20150090951A KR 101665461 B1 KR101665461 B1 KR 101665461B1
Authority
KR
South Korea
Prior art keywords
virtual
real
application
virtual machine
network
Prior art date
Application number
KR1020150090951A
Other languages
English (en)
Inventor
민덕기
김성민
Original Assignee
건국대학교 산학협력단
(주)구름네트웍스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단, (주)구름네트웍스 filed Critical 건국대학교 산학협력단
Priority to KR1020150090951A priority Critical patent/KR101665461B1/ko
Application granted granted Critical
Publication of KR101665461B1 publication Critical patent/KR101665461B1/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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치가 제공된다. 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치는 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신을 구동하도록 구성된 적어도 하나의 CPU, 적어도 하나의 네트워크 인터페이스 컨트롤러 및 메모리를 포함하고, 적어도 하나의 가상 머신에는 실시간성이 요구되는 어플리케이션이 마운트되고, 적어도 하나의 가상 머신 각각의 가상 네트워크 인터페이스 컨트롤러에는 네트워크 대역폭이 독점적으로 할당된 것을 특징으로 한다.

Description

실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법 {APPARATUS AND METHOD FOR VIRTUALIZING MACHINE MOUNTING REALTIME REQUIRED APPLICATION THEREON}
본 발명은 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법에 관한 것으로서, 보다 상세하게는 독점적 자원 할당을 통해 가상화된 머신에서 실시간성을 구현하기 위한 가상화 장치 및 방법에 관한 것이다.
최근 새로운 네트워크 구조 및 프로토콜에 대한 연구가 다양하게 진행되고 있다. 이러한 새로운 연구의 유용성을 확인하거나, 새로운 구조에 대한 테스트를 보다 효율적으로 구축하기 위한 방법이 요구되고 있다. 네트워크를 구축하는 가장 간단한 방법은 각 네트워크를 위한 라우터를 물리적으로 설치하고, 라우터에 머신들을 연결하는 것이다. 그러나, 이러한 방법은 상당한 비용, 자원 및 시간이 요구될 뿐만아니라, 다수의 네트워크가 동시에 요구되거나 방대한 분량의 네트워크가 요구되는 경우 현실적으로 구현하기 어려울 수 있다.
이에 따라, 보다 효율적인 네트워크 구축을 위해 가상 네트워크가 연구되고 있다. 가상 네트워크란 논리적인 네트워크로, 다수의 가상 네트워크의 컴포넌트들이 물리 자원을 공유하여 동작한다. 네트워크를 논리적으로 구축하므로, 물리적으로 네트워크를 구축하는 것보다 네트워크의 생성과 관리가 용이하며, 네트워크 구축을 위한 비용을 감소시킬 수 있다.
가상 네트워크를 구현하기 위해서, 가상 머신들과 가상 머신들을 연결하기 위한 가상 라우터들이 필요할 수 있다. 가상 머신은 또한 가상의 네트워크 인터페이스 컨트롤러를 포함할 수 있다.
가상 머신들과 가상 라우터는 시스템 가상화 기술로 구현된다. 예를 들어 가상 머신들과 가상 라우터는 Xen 시스템을 기반으로 구현될 수 있다. 이러한 시스템은 코어, 메모리, 스토리지 등으로 구성된 물리적 자원을 관리하여, 이를 다수의 논리적 자원으로 만들어 각 가상 머신 및 가상 라우터에 제공하는 하이퍼바이저를 포함한다. 예를 들어, 가상 코어는 프로세스가 스케줄링 되는 것과 같이 물리 코어 상에서 스케줄링되어 동작한다. 이러한 코어 등의 스케줄링을 가상 머신 스케줄링이라고 하며, 하이퍼바이저는 다수의 가상 머신들을 구동시키기 위해 물리적 자원과 논리적 자원을 최대한 효율적으로 관리하도록 구성된다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
그러나, 효율성을 최우선으로 하는 종래의 하이퍼바이저는 가상 머신들 간의 실시간성을 확보하기 어려운 문제점을 가지고 있다. 가상 머신들은 종래의 하이퍼바이저가 다수의 가상 머신들을 효율적으로 구동시키기 위한 스케줄링에 의해 물리적인 머신들과는 상이하게 동작한다. 이러한 하이퍼바이저를 포함하는 종래의 가상화 시스템은 실시간성을 구현하지 못하는 구조적 논리적 제약 사항을 내재하고 있다.
이에 따라, 본 발명이 해결하고자 하는 과제는 실시간성이 요구되는 어플리케이션이 탑재된 머신을 가상화하고, 가상 머신에게 요구되는 실시간성을 만족시킴으로써, 실제 물리적 네트워크와 실질적으로 동일하게 동작하는 가상 네트워크를 구현할 수 있는 가상화 장치를 제공하는데 있다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치가 제공된다. 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치는 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신을 구동하도록 구성된 적어도 하나의 CPU, 적어도 하나의 네트워크 인터페이스 컨트롤러 및 메모리를 포함하고, 적어도 하나의 가상 머신에는 실시간성이 요구되는 어플리케이션이 마운트되고, 적어도 하나의 가상 머신 각각의 가상 네트워크 인터페이스 컨트롤러에는 네트워크 대역폭이 독점적으로 할당된 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 독점적으로 할당된 네트워크 대역폭은 적어도 하나의 가상 머신 각각에 대해 단위 시간당 전송가능한 용량의 최대치가 할당된 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 네트워크 대역폭의 독점적 할당을 통해 가상 네트워크 인터페이스 컨트롤러에 실시간성이 구현되는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실시간성이 요구되는 어플리케이션은 VoIP (Voice over IP), 온라인 게임, 비디오 컨퍼런스 어플리케이션 중 하나인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실시간성이 요구되는 어플리케이션은 네트워크 노드를 가상화하도록 구성된 어플리케이션인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실시간성이 요구되는 어플리케이션은 네트워크 어플리케이션이고, 네트워크 어플리케이션은 방화벽, 보안 게이트웨이, 라우터, 부하 분산 라우터, P2P 트래픽 조절 라우터 중 하나인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 적어도 하나의 가상 머신 각각에는 적어도 하나의 물리적인 코어, 미리 결정된 범위의 메모리와 저장 용량이 독점적으로 더 할당되는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실시간성이 요구되는 어플리케이션이 마운트된 적어도 하나의 가상 머신은 가상 네트워크 인터페이스 컨트롤러를 통해 적어도 하나의 가상 머신과는 상이한 복수의 가상 머신들을 포함하는 가상 클러스터와 연결된 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터는 실시간성이 요구되는 어플리케이션과 동일한 호스트에 가상화되고, 가상 클러스터의 복수의 가상 머신 각각은 가상 네트워크 인터페이스 컨트롤러를 가지며, 가상 네트워크 인터페이스 컨트롤러 각각은 네트워크 대역폭이 독점적으로 할당된 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 장치의 가상화 방법이 제공된다. 본 가상화 방법은 호스트 상에 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신을 인스턴스화하는 단계, 적어도 하나의 가상 머신 각각에 물리적인 코어, 미리 결정된 범위의 메모리 및 저장 용량 중 적어도 하나를 독점적으로 할당하는 단계, 적어도 하나의 가상 네트워크 인터페이스 컨트롤러에 네트워크 대역폭을 독점적으로 할당하는 단계 및 적어도 하나의 가상 머신에 실시간성이 요구되는 어플리케이션을 마운트하는 단계를 포함하고, 네트워크 대역폭의 독점적 할당을 통해 가상 네트워크 인터페이스 컨트롤러에 실시간성이 구현되며, 실시간성이 요구되는 어플리케이션은 호스트의 운영체제 상에 마운트되는 것을 특징으로 한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 실시간성이 요구되는 어플리케이션이 탑재된 머신을 가상화하고, 그 가상 머신에게 요구되는 실시간성을 만족시킴으로써, 실제 물리적 네트워크와 실질적으로 동일하게 동작하는 가상 네트워크를 구현할 수 있는 효과가 있다.
또한 본 발명은 예정된 시간 내에 작업이 마무리 되어야 하는 작업 종료의 예측 가능성을 제공할 수 있는 가상 네트워크를 구축할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 실시간성이 요구되는 어플리케이션이 탑재된 머신, 제어 O/S 및 하드웨어를 개략적으로 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 논리적인 자원과 하드웨어의 물리적인 자원을 예시적으로 나타내기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 코어의 할당을 설명하기 위한 예시적인 블록도이다.
도 4는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 메모리의 할당을 설명하기 위한 예시적인 블록도이다.
도 5는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 네트워크 대역폭의 할당을 설명하기 위한 예시적인 블록도이다.
도 6은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 실시간성을 설명하기 위한 예시적인 블록도이다.
도 7은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 방법을 설명하기 위한 개략적인 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 “포함한다”, “갖는다”, “이루어진다” 등이 사용되는 경우 “~만”이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
도 1은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 실시간성이 요구되는 어플리케이션이 탑재된 머신, 제어 O/S 및 하드웨어를 개략적으로 설명하기 위한 도면이다.
도 1을 참조하면, 가상화 장치는 복수의 가상 머신들, 제어 O/S 및 하드웨어로 구성된다. 하드웨어는 예시에 따라 호스트로 지칭될 수도 있다. 본 발명의 일 실시예에 따른 가상화 장치에서 하드웨어의 아키텍쳐는 제한되지 않으나 x86 또는 x64 아키텍쳐일 수 있다. 즉, 범용의 퍼스널 컴퓨터가 가상화 장치로 사용될 수 있다. x86 또는 x64 아키텍쳐를 사용함으로써, 확장이 용이하며, 호환성이 높은 시스템을 구현할 수 있다. 하드웨어는 물리적인 자원으로서 CPU, 메모리, 네트워크 인터페이스 컨트롤러 및 저장부를 포함한다. CPU는 복수의 코어를 포함할 수 있다. 네트워크 인터페이스 컨트롤러는 범용의 네트워크 인터페이스 컨트롤러 일수도 있으나, DPI(Deep Packet Inspection) 또는 네트워크 가상화 전용 네트워크 인터페이스 컨트롤러일 수도 있다. 저장부는 제한되지 않고 하드 디스크, 플래시 메모리 모듈 등을 포함할 수 있으며, 메모리는 다양한 타입의 RAM(random access memory)를 포함할 수 있다.
본 발명의 일 실시예에 따른 가상화 장치에서 제어 O/S (Operating System)는 리눅스나 윈도우즈 같은 O/S가 아닌 가상 네트워크를 구현하는데 최적화된 O/S일 수 있다. 예를 들어 제어 O/S는 구름 네트워크社 (Gurum Networks)의 PacketNgin일 수 있다. PacketNgin은 가상네트워크를 지원하는 DPI 엔진으로서, x86 x64 아키텍처에 기반한 RTOS(Real-Time Operating System)이다. PacketNgin은 네트워크 어플리케이션 개발자에게 C 언어를 이용해 Level 2(Ethernet 수준)의 패킷 정보에 바로 접근하게 함으로써 손쉽게 DPI 어플리케이션 또는 소프트웨어 라우터를 작성할 수 있도록 한다. PacketNgin을 이용하면 리눅스와 같은 종래의 범용 O/S를 활용하는 것보다 쉽게 DPI 어플리케이션을 작성할 수 있고, 제한된 물리적인 자원을 갖는 하드웨어 상에 실시간성을 지원하는 다수의 가상 머신을 구동할 수 있다.
종래에는 범용의 O/S를 설치한 후 Xen과 같은 가상화 시스템을 탑재하고, 가상화 시스템을 통해 가상 네트워크를 구축하였으나, 본 발명의 일 실시예에 따른 가상화 장치에서는 가상 네트워크 구축을 위한 제어 O/S가 독립적으로 설치되므로, 별도의 가상화 시스템 또는 범용의 O/S가 요구되지 않는다. 이를 통해, 데이터에 대한 처리 지연속도가 감소하므로, 탑재되는 가상 머신의 실시간성이 더 향상될 수 있다.
여기서 실시간성이란 특정 시점에 자원이 제공되어 예정된 시간 내에 작업이 마무리 되어야 하는 작업 종료의 예측 가능성을 의미한다. 물리적 자원에 구현된 네트워크에는 가상화를 위한 시스템이 존재하지 않으므로, 패킷이 가상화를 위한 시스템을 거치지 않는다. 반면, 가상화된 네트워크에서는 패킷이 가상화를 위한 시스템을 거치게 구성될 수 있어 응답 속도가 늦춰져 실시간성이 감소한다. 그러나, 본 발명의 일 실시예에 따른 가상화 장치에서는 제어 O/S가 가상화를 수행하므로, 응답 속도가 더 빨라질 수 있고, 실시간성이 보다 향상된다.
복수의 가상 머신들 중 각각의 가상 머신에는 실시간성이 요구되는 어플리케이션이 탑재된다. 가상 머신은 하드웨어의 물리적인 자원 중에서 적어도 일부를 할당 받아 논리적인 자원을 구성하여 이루어진다. 가상 머신에 대한 물리적인 자원의 할당과 논리적인 자원의 구성은 도 2 내지 도 5를 참조하여 후술한다.
도 2는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 논리적인 자원과 하드웨어의 물리적인 자원을 예시적으로 나타내기 위한 블록도이다. 도 2에서는 설명의 편의를 위해 하나의 가상 머신만을 도시하였다.
먼저, 하드웨어에서 물리적인 CPU는 복수의 물리적인 코어를 포함한다. 복수의 물리적인 코어 각각은 CORE #0, … #M으로 나타내어질 수 있다. 하드웨어에서 메모리는 xMB의 물리적인 메모리 용량을 갖는다. 네트워크 인터페이스 컨트롤러는 제한되지 않으나 예를 들어, 100 Mbps의 네트워크 대역폭을 물리적인 자원으로서 가질 수 있다. 저장부는 예를 들어 10 TB의 물리적인 용량을 가질 수 있다.
제어 O/S는 가상 머신을 가상화하고, 하드웨어의 물리적인 자원을 가상 머신 각각에 할당한다. 종래에는 복수의 가상 머신이 물리적인 자원을 공유하도록 구성되었다. 예를 들어, 3개의 가상 머신이 하나의 코어를 공유하도록 구성된다. 즉, 3개의 가상 머신의 논리적인 코어의 합은 3개이나 물리적인 코어의 수는 하나일 수 있다. 이에 따라, 하나의 가상 머신이 유휴 상태일 때, 다른 가상 머신이 코어를 독점 사용할 수 있어, 제한된 물리적인 자원에서도 최대한의 가상 머신을 구동시킬 수 있었다. 그러나, 하나의 물리적인 코어를 공유하는 가상 머신 모두가 작업을 처리하는 경우, 하나의 물리적인 코어는 각각의 가상 머신에 대하여 작업을 나누어 스케줄링하므로, 현실의 머신과 상이하게 구동된다. 다시 말하면, 물리적인 자원을 공유하는 가상 머신들은 주어진 자원 내에서 예측된 시간 내에 작업을 완료할 수 없으므로, 실시간성을 상실한 상태에서 구동된다. 그러나, 본 발명의 일 실시예에 따른 가상화 장치에서는 가상 머신들 각각에 대해서 물리적인 자원들을 독점적으로 할당하도록 구성된다. 이에 따라, 복수의 가상 머신들이 하나의 하드웨어에 탑재되어 가상화되더라도, 주어진 자원에 기초한 예측된 시간 내에 작업이 완료될 수 있어, 실시간성이 구현될 수 있다.
도 2를 참조하면, 물리적인 CPU의 코어들, 메모리와 저장부의 물리적인 용량 및 네트워크 대역폭이 가상 머신에 독점적으로 할당된다. 가상 머신의 독점적으로 할당된 물리적인 자원들은 Local 메모리, 가상 코어, 가상 네트워크 인터페이스 컨트롤러 및 가상 저장부를 구성한다.
구체적으로, 물리적인 CPU 중 적어도 하나의 코어가 가상 머신에 할당된다. 가상 머신의 가상 코어 각각은 하드웨어의 물리적인 코어 각각에 대응된다. 예를 들어, 물리적인 CPU의 Core #0은 가상 머신의 VCORE #0에 대응하고, 다른 가상 머신의 VCORE들은 CPU의 CORE #0을 할당받지 않도록 구성된다. 하나의 코어를 여러 가상 머신에 탑재된 실시간성이 요구되는 어플리케이션이 공유하게 되면, 컨택스트 스위칭(Context switching)에 따른 지연이 발생하고, 작업의 우선순위를 정해야 하는 등 복잡한 문제가 생기는데 고속으로 패킷 처리를 해야 하는 경우 컨택스트 스위칭은 성능에 치명적인 영향을 주게 된다. 도 3은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 코어의 할당을 설명하기 위한 예시적인 블록도이다. 여러 개의 CPU의 코어를 하나의 가상 머신에 독점적으로 할당할 수도 있다. 도 4를 참조하면, Core #0은 VM0에 할당되나 Core #1와 Core #2는 VM1에 할당된다. VMn에는 Core #M이 할당된다. VM0 내지 VMn은 코어를 공유하지 않는다.
다음으로, 물리적인 메모리 xMB가 가상 머신에 독점적으로 할당된다. 도 4는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 메모리의 할당을 설명하기 위한 예시적인 블록도이다. 메모리의 특정 물리적인 범위를 하나의 가상 머신에 독점적으로 할당함으로써 실시간성이 제공될 수 있다. 도 4를 참조하면, xMB의 용량을 갖는 총 메모리 범위에서 2MB를 갖는 메모리의 특정 범위가 VM0에 할당되고, 4MB를 갖는 메모리의 다른 범위가 VM1에 할당되고, 일부의 범위가 VMn에 할당된다. 마찬가지로, 저장부도 메모리와 마찬가지로 특정 범위를 하나의 가상 머신에 독점적으로 할당될 수 있다. 이에 따라, 복수의 가상 머신은 물리적인 자원을 독점적으로 할당 받음으로써, 가상 네트워크 내에 존재하지만 실시간성을 제공할 수 있게 된다.
본 발명의 일 실시예에 따른 가상화 장치에서, 네트워크의 대역폭은 공유되지 않고, 독점적으로 가상 머신의 VNIC(Virtual Network Interface Card)에 할당된다. 예를 들어 물리적인 네트워크 대역폭이 100Mbps일 경우 10개의 VNIC에 각각 1Mbps씩 할당 함으로써 각각의 VNIC이 할당된 대역폭을 보장받을 수 있도록 한다. 도 2를 참조하면, 하드웨어의 네트워크 인터페이스 컨트롤러는 100 Mbps의 네트워크 대역폭을 가지며, 그 중 일부를 독점적으로 VNIC #0에 할당할 수 있다.
도 5는 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서, 네트워크 대역폭의 할당을 설명하기 위한 예시적인 블록도이다. 네트워크 대역폭을 독점적으로 가상 머신에 할당한다는 것은 단위 시간 동안 특정 가상 머신에 소정의 대역폭을 할당한다는 것을 의미한다. 즉, 독점적으로 할당된 네트워크 대역폭은 적어도 하나의 가상 머신 각각에 대해 단위 시간당 전송가능한 용량의 최대치이다. 도 5를 참조하면, 물리적인 네트워크 인터페이스 컨트롤러에서의 1 Gbps인 네트워크 대역폭이 복수의 가상 머신 각각에 독점적으로 할당된다. VM0에는 1 Gbps에서 Xbps가 할당되고, VM1에는 Ybps가 독점적으로 할당된다. VM0의 할당받은 X bits는 a bits와 c bits (또는 그 이상의 bits)의 합이다. 또한, VM1의 할당받은 Y bits는 b bits와 z bits (또는 그 사이의 bits)의 합이다. 본 발명의 일 실시예에 따른 가상화 장치에서 네트워크 대역폭의 독점적 할당을 통해 가상 머신의 가상 네트워크 인터페이스 컨트롤러에 실시간성이 구현될 수 있다.
도 6은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 실시간성을 설명하기 위한 예시적인 블록도이다.
본 명세서에서, 실시간성이 요구되는 어플리케이션은 제한되지 않고 다양한 어플리케이션을 포함할 수 있다. 일 예로서, 실시간성이 요구되는 어플리케이션은 네트워크 어플리케이션일 수 있다. 네트워크 어플리케이션은 가상 머신 상에서 동작하는 어플리케이션으로 소프트웨어 라우터일 수 있으며 DPI 어플리케이션일 수 있다. PacketNgin에서 사용자는 네트워크 어플리케이션을 C 언어를 이용해 작성할 수 있다. 일반적인 프로그래밍 모델과 다른점은 네트워크 어플리케이션이 Event-driven 형태로 작성된다는 점이다. PacketNgin은 실시간성을 지원하기 위해 CPU 부하를 많이 소비하는 Multi-threading 기능을 지원하지 않으며, Multi-threading에 대한 대안으로 event-driven 아키텍처를 제시한다.
또는 다른 예로서, 실시간성이 요구되는 어플리케이션은 VoIP (Voice over IP), 온라인 게임, 비디오 컨퍼런스 어플리케이션 등일 수 있다. 이러한 어플리케이션들은 패킷이 실시간으로 처리될 것이 요구되므로, 가상 머신 상에 탑재되는 경우 실시간성이 확보되지 않으면, 그 기능을 충분히 수행할 수 없을 수 있다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 가상화 장치에 의해 가상화된 가상 머신 VM0과 VM1 그리고 물리적인 네트워크 인터페이스 컨트롤러를 갖는 디바이스 Device0이 도시된다. VM0 및 VM1 모두는 가상화 장치에 의해 구현되었으나, 독점적인 네트워크 대역폭을 가지므로, 물리적인 Device0과 통신하더라도 가상 머신은 가상 네트워크에서의 네트워크 대역폭 이용과 상관없이 실질적으로 물리적인 머신과 같은 실시간성을 나타낸다. 이에 따라, 가상 네트워크와 물리적 네트워크를 넘나드는 실시간성이 본 발명의 일 실시예에 따른 가상화 장치에 의해 구현될 수 있다.
도 6에서는 비록 가상 머신 VM1이 VM0과 동일한 가상 네트워크 내에 존재하는 것으로 설명되고 도시되었으나, 가상 머신 VM1은 가상 머신 VM1과는 상이한 가상 네트워크 내 또는 다른 가상 네트워크의 가상 클러스터 내에 존재할 수도 있다. 그렇다고 하더라도, 가상 머신 VM1의 실시간성이 유지될 수 있다.
도 6에서 실시간성이 요구되는 어플리케이션은 네트워크 노드를 가상화하도록 구성된 어플리케이션, 예를 들어 소프트웨어 라우터일 수 있다. 또한, 소프트웨어 라우터는 방화벽, 보안 게이트웨이, 라우터, 부하 분산 라우터, P2P 트래픽 조절 라우터 중 하나일 수 있다.
또는, 본 발명의 일 실시예에 따른 가상화 장치에서는 복수의 가상 머신을 포함하는 가상 클러스터가 가상화될 수 있다. 가상 클러스터는 네트워크 어플리케이션과 동일한 호스트에 가상화되고, 가상 클러스터의 복수의 가상 머신 각각은 가상 네트워크 인터페이스 컨트롤러를 가질 수 있다. 여기서, 가상 네트워크 인터페이스 컨트롤러 각각은 네트워크 대역폭이 독점적으로 할당될 수 있다. 이에 따라, 하나의 하드웨어에서 구현된 가상 클러스터와 소프트웨어 라우터를 포함하는 실시간성을 갖는 가상 네트워크가 구현될 수 있다. 이러한 가상 네트워크를 통해 실시간성이 요구되는 다양한 네트워크 실험이나 구조가 테스팅되고 연구될 수 있으며, 나아가 실시간성이 강화된 가상 컴퓨팅 서비스가 제공될 수도 있다.
도 7은 본 발명의 일 실시예에 따른 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 방법을 설명하기 위한 개략적인 흐름도이다. 본 가상화 방법은 전술된 PacketNgin O/S에 의해 수행될 수 있다. 먼저, 호스트 상에 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신이 인스턴스화된다(S810). 다음으로, 적어도 하나의 가상 머신 각각에 물리적인 코어, 미리 결정된 범위의 메모리 및 저장 용량 중 적어도 하나가 독점적으로 할당된다(S820). 가상 머신 각각에 독점적으로 할당되는 물리적인 자원들은 논리적인 자원을 형성한다.
다음으로, 적어도 하나의 가상 네트워크 인터페이스 컨트롤러에 네트워크 대역폭이 독점적으로 할당된다(S830). 네트워크 대역폭이 독점적으로 할당되는 것은 시간적인 개념에서 이루어진다. 즉, 단위 시간 동안 특정 bits만큼 할당될 수 있다. 그 후, 적어도 하나의 가상 머신에 실시간성이 요구되는 어플리케이션이 마운트된다(S840). 네트워크 대역폭의 독점적 할당을 통해 가상 네트워크 인터페이스 컨트롤러에 나아가 가상 머신에 실시간성이 구현된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (14)

  1. 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신을 구동하도록 구성된 물리적인 자원들인 적어도 하나의 CPU, 적어도 하나의 네트워크 인터페이스 컨트롤러 및 메모리를 포함하고,
    상기 적어도 하나의 가상 머신에는 실시간성이 요구되는 어플리케이션이 마운트되고,
    상기 적어도 하나의 가상 머신 각각에 상기 물리적인 자원들이 독점적으로 할당되고,
    상기 적어도 하나의 가상 머신 각각의 상기 가상 네트워크 인터페이스 컨트롤러에는 네트워크 대역폭이 독점적으로 할당되어 실시간성이 구현된 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  2. 제1항에 있어서,
    상기 독점적으로 할당된 네트워크 대역폭은 상기 적어도 하나의 가상 머신 각각에 대해 단위 시간당 전송가능한 용량의 최대치가 할당된 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 실시간성이 요구되는 어플리케이션은 VoIP (Voice over IP), 온라인 게임, 비디오 컨퍼런스 어플리케이션 중 하나인 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  5. 제1항에 있어서,
    상기 실시간성이 요구되는 어플리케이션은 네트워크 노드를 가상화하도록 구성된 어플리케이션인 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  6. 제1항에 있어서,
    상기 실시간성이 요구되는 어플리케이션은 네트워크 어플리케이션이고,
    상기 네트워크 어플리케이션은 방화벽, 보안 게이트웨이, 라우터, 부하 분산 라우터, P2P 트래픽 조절 라우터 중 하나인 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 가상 머신 각각에는 적어도 하나의 물리적인 코어, 미리 결정된 범위의 메모리와 저장 용량이 독점적으로 더 할당되는 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  8. 제1항에 있어서,
    상기 실시간성이 요구되는 어플리케이션이 마운트된 상기 적어도 하나의 가상 머신은 상기 가상 네트워크 인터페이스 컨트롤러를 통해 상기 적어도 하나의 가상 머신과는 상이한 복수의 가상 머신들을 포함하는 가상 클러스터와 연결된 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  9. 제8항에 있어서,
    상기 가상 클러스터는 상기 실시간성이 요구되는 어플리케이션과 동일한 호스트에 가상화되고,
    상기 가상 클러스터의 상기 복수의 가상 머신 각각은 가상 네트워크 인터페이스 컨트롤러를 가지며, 상기 가상 네트워크 인터페이스 컨트롤러 각각은 네트워크 대역폭이 독점적으로 할당된 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치.
  10. 호스트 상에 가상 네트워크 인터페이스 컨트롤러를 갖는 적어도 하나의 가상 머신을 인스턴스화하는 단계;
    상기 적어도 하나의 가상 머신 각각에 물리적인 자원들인 코어, 미리 결정된 범위의 메모리 및 저장 용량 중 적어도 하나를 독점적으로 할당하는 단계;
    상기 적어도 하나의 가상 네트워크 인터페이스 컨트롤러에 네트워크 대역폭을 독점적으로 할당하여 실시간성이 구현되는 단계; 및
    상기 적어도 하나의 가상 머신에 실시간성이 요구되는 어플리케이션을 마운트하는 단계를 포함하고,
    상기 네트워크 대역폭의 독점적 할당을 통해 상기 가상 네트워크 인터페이스 컨트롤러에 실시간성이 구현되며, 상기 실시간성이 요구되는 어플리케이션은 상기 호스트의 운영체제 상에 마운트되는 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 가상화 방법.
  11. 제10항에 있어서,
    상기 독점적으로 할당된 네트워크 대역폭은 상기 적어도 하나의 가상 머신 각각에 대해 단위 시간당 전송가능한 용량의 최대치가 할당된 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 가상화 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 실시간성이 요구되는 어플리케이션은 네트워크 노드를 가상화하도록 구성된 어플리케이션, 네트워크 어플리케이션, VoIP, 온라인 게임, 비디오 컨퍼런스 어플리케이션 중 하나인 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 가상화 방법.
  14. 제10항에 있어서,
    상기 적어도 하나의 가상 머신 각각에는 적어도 하나의 물리적인 코어, 미리 결정된 범위의 메모리와 저장 용량이 독점적으로 더 할당되는 것을 특징으로 하는, 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치에서의 가상화 방법.
KR1020150090951A 2015-06-26 2015-06-26 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법 KR101665461B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150090951A KR101665461B1 (ko) 2015-06-26 2015-06-26 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150090951A KR101665461B1 (ko) 2015-06-26 2015-06-26 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101665461B1 true KR101665461B1 (ko) 2016-10-19

Family

ID=57250427

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150090951A KR101665461B1 (ko) 2015-06-26 2015-06-26 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101665461B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009064303A (ja) * 2007-09-07 2009-03-26 Ricoh Co Ltd 撮像装置、共用リソース管理方法、およびプログラム
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム
KR20140035970A (ko) * 2011-06-29 2014-03-24 마이크로소프트 코포레이션 네트워크 사용 제어 기법
KR101387971B1 (ko) * 2013-08-05 2014-04-22 주식회사 파이오링크 가상 머신 사이의 통신을 지원하기 위한 방법, 가상 머신, 시스템 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009064303A (ja) * 2007-09-07 2009-03-26 Ricoh Co Ltd 撮像装置、共用リソース管理方法、およびプログラム
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム
KR20140035970A (ko) * 2011-06-29 2014-03-24 마이크로소프트 코포레이션 네트워크 사용 제어 기법
KR101387971B1 (ko) * 2013-08-05 2014-04-22 주식회사 파이오링크 가상 머신 사이의 통신을 지원하기 위한 방법, 가상 머신, 시스템 및 컴퓨터 판독 가능한 기록 매체

Similar Documents

Publication Publication Date Title
JP5837683B2 (ja) ネットワークのセグメント化によるネイティブクラウドコンピューティング
CN106844007B (zh) 一种基于空间复用的虚拟化方法与系统
JP6200497B2 (ja) 仮想マシンのフローの物理的なキューへのオフロード
CN109479059B (zh) 用于容器流量的传输层等级标识和隔离的系统和方法
KR102204670B1 (ko) 프록시 기반 멀티스레딩 메시지 전달 통신을 위한 기술
Hillenbrand et al. Virtual InfiniBand clusters for HPC clouds
Bourguiba et al. Packet aggregation based network I/O virtualization for cloud computing
US11301278B2 (en) Packet handling based on multiprocessor architecture configuration
CN116185554A (zh) 一种配置装置、调度装置及配置方法和调度方法
US10572287B2 (en) Configuring virtual machines on cores based on priority
KR101665461B1 (ko) 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법
US9619269B2 (en) Device and method for dynamically mapping processor based on tenant
CN105939242B (zh) 实现虚拟系统的方法及装置
EP4260200A1 (en) Execution job compute unit composition in computing clusters
US20180349167A1 (en) Balancing processing loads of virtual machines
Lakshmi et al. Quality of service for I/O workloads in multicore virtualized servers
KR20150132773A (ko) 가상화 환경 제어 장치 및 가상 머신 관리 방법
Kontodimas et al. Analysis and evaluation of scheduling policies for consolidated I/O operations
Chen et al. Efficient Usage of Network Bandwidth in the Cloud Architecture
de Lacerda Ruivo et al. Efficient High-Performance Computing with Infiniband Hardware Virtualization
Bourguiba et al. Evaluating the forwarding plane performance of the commodity hardware virtual routers
Freitag Impact of Advanced Virtualization Technologies on Grid Computing Centres
Egi et al. Towards performant virtual routers on commodity hardware
Gupta et al. Resource Allocation Policy for Virtualized Network Interfaces
Lakshmi et al. Is I/O virtualization ready for End-to-End Application Performance?

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191008

Year of fee payment: 4