KR20150113783A - Apparatus and Method for Mapping of Tenant Based Dynamic Processor - Google Patents

Apparatus and Method for Mapping of Tenant Based Dynamic Processor Download PDF

Info

Publication number
KR20150113783A
KR20150113783A KR1020140073780A KR20140073780A KR20150113783A KR 20150113783 A KR20150113783 A KR 20150113783A KR 1020140073780 A KR1020140073780 A KR 1020140073780A KR 20140073780 A KR20140073780 A KR 20140073780A KR 20150113783 A KR20150113783 A KR 20150113783A
Authority
KR
South Korea
Prior art keywords
tenant
virtual machine
packet
logical processor
processor
Prior art date
Application number
KR1020140073780A
Other languages
Korean (ko)
Other versions
KR102126213B1 (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 US14/621,877 priority Critical patent/US9594584B2/en
Publication of KR20150113783A publication Critical patent/KR20150113783A/en
Application granted granted Critical
Publication of KR102126213B1 publication Critical patent/KR102126213B1/en

Links

Images

Classifications

    • 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

Abstract

The present invention relates to an apparatus and a method for allotting tenant-based dynamic processor which classifies a processor processing a virtual machine multi-queue and a relevant multi-queue by a tenant included in a virtual machine, dynamically allotting the virtual machine multi-queue included in the relevant tenant to a multi-processor included in the relevant tenant based on the amount of use of a network and a processor by each tenant, and providing network virtualization preserving network traffic process of virtual machines included in the same tenant not to affect by network traffic congestion included in other network.

Description

테넌트 기반의 동적 프로세서 할당 장치 및 방법{Apparatus and Method for Mapping of Tenant Based Dynamic Processor}[0001] APPARATUS AND METHOD FOR MAPPING OF TENANT BASED DYNAMIC PROCESSOR [0002]

본 발명은 네트워크 가상화를 제공하는 장치 및 방법에 관한 것으로서, 더 상세하게는 멀티 테넌트 기반의 클라우드 서버 시스템에서 네트워크 가상화를 제공하기 위한, 테넌트 기반의 동적 프로세서 할당 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for providing network virtualization, and more particularly, to an apparatus and method for allocating a dynamic processor to a tenant based system for providing network virtualization in a multi-tenant based cloud server system.

멀티 프로세서 기반 서버 시스템의 네트워크 인터페이스 카드(NIC)에서 네트워크 트래픽 성능을 고속화하는 처리 기술은 계속 발전되어 왔다. 가장 큰 문제는 NIC에서 수신된 트래픽은 서버 내의 멀티 프로세서에 의해 효과적으로 처리되지 못하는 문제였다. 이 문제를 해결한 기술이 수신 측 스케일링(RSS: Receive Side Scaling) 기술이다. RSS 기술은 멀티 프로세서 기반 서버의 NIC에서 수신한 네트워크 트래픽에 대해, 해시 기능을 수행하여 서로 다른 플로우로 나누어 처리한다. RSS 기술에서는 동일 플로우에 해당하는 트래픽을 동일한 프로세서에서 처리하도록 할당하여, 멀티 프로세서 환경에서 네트워크 트래픽이 멀티 프로세서에 의해 분산 처리되어 고속으로 처리되는 기술을 제공하였다. 그러나, RSS 기술은 가상화 환경에서는 적용되기 어려운 문제점이 있다. Processing techniques for speeding up network traffic performance in network interface cards (NICs) of multiprocessor based server systems have continued to evolve. The biggest problem was that the traffic received from the NIC was not effectively handled by multiprocessors in the server. The technology that solves this problem is Receive Side Scaling (RSS) technology. RSS technology handles network traffic received from a NIC of a multiprocessor-based server by performing a hash function and dividing it into different flows. In the RSS technology, traffic corresponding to the same flow is allocated to be processed by the same processor, so that the network traffic is dispersed by the multi-processor in the multiprocessor environment and processed at a high speed. However, there is a problem that RSS technology is difficult to apply in a virtualized environment.

가상화 환경에서 RSS의 문제점을 해결하기 위한 기술이 가상 머신 큐(VMQ: Virtual Machine Queue) 기술이다. VMQ 기술에서는 NIC 내부에 가상 머신 멀티 큐를 생성한 후, 각각의 가상 머신 멀티 큐를 호스트 내의 프로세서에 할당하는 방법을 사용하여 가상화 환경에서도 네트워크 트래픽에 대해 멀티 프로세서에 의한 분산 처리가 가능하여 고속 트래픽 처리가 가능하게 하였다. A technique for solving the problem of RSS in a virtualized environment is the Virtual Machine Queue (VMQ) technology. In VMQ technology, virtual machine multi-queues are created in the NIC, and each virtual machine multi-queue is allocated to the processors in the host, so that multi-processor distributed processing of network traffic is possible even in a virtualized environment, Treatment.

예를 들어, 서버 시스템은 가상 머신 큐(VMQ)를 설정하고 해당 가상 머신 큐를 처리할 프로세서(LP)를 할당한다. NIC을 통해 서버로 입력되는 패킷을 수신하여 L2 정보를 기반으로 분류하여, 해당 패킷을 가상 머신 큐(VMQ)로 보낸다. 하이퍼바이저에서는 해당 가상 머신 큐를 처리하는 프로세서가 해당 가상 머신 큐에 들어온 패킷을 처리하여 L2 가상 스위치를 통하여 가상 머신(VM)으로 전달하고, 하이퍼바이저가 생성한 해당 가상 머신은 수신된 패킷을 처리한다. 그러나, VMQ 기술은 가상 머신 멀티 큐를 정적으로 할당하기 때문에, 트래픽 폭주가 발생하는 여러 개의 큐에 대해 너무 적은 프로세서 자원이 할당될 수도 있고, 트래픽을 거의 사용하지 않는 적은 수의 큐에 대해 너무 많은 프로세서 자원에 할당되는 문제가 발생할 수도 있는 문제점이 있다.For example, the server system sets up a virtual machine queue (VMQ) and allocates a processor (LP) to process the virtual machine queue. Receives packets input to the server through the NIC, classifies them based on the L2 information, and sends the packet to the virtual machine queue (VMQ). In the hypervisor, the processor that processes the virtual machine queue processes the packets entered in the virtual machine queue and delivers them to the virtual machine (VM) through the L2 virtual switch. The corresponding virtual machine created by the hypervisor processes the received packets do. However, because VMQ technology statically allocates virtual machine multi-queues, too few processor resources may be allocated for multiple queues where traffic congestion occurs and too many There is a problem that a problem of assigning to processor resources may occur.

미국특허공개번호 US20130239119A1United States Patent Publication No. US20130239119A1

미국특허등록번호 US7765405B2US Patent No. US7765405B2

따라서, 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은, 가상 머신 멀티 큐와 해당 멀티 큐를 처리하는 프로세서를 가상 머신이 속해있는 테넌트 별로 분류하고, 각각의 테넌트 별로 네트워크와 프로세서의 총 사용량에 기반하여 해당 테넌트에 속한 가상 머신 멀티 큐를 해당 테넌트에 속한 멀티 프로세서에 동적으로 할당하여, 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공하는, 테넌트 기반의 동적 프로세서 할당 장치 및 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made to solve the above-mentioned problems occurring in the prior art, and it is an object of the present invention to provide a virtual machine multi- And the total usage of the processors, the virtual machine multi-queues belonging to the tenants are dynamically allocated to the multi-processors belonging to the tenants, so that the network traffic processing of the virtual machines belonging to the same tenants is performed due to the congestion of network traffic belonging to the other tenants Based dynamic processor allocation apparatus and method that provides network virtualization that is guaranteed to be unaffected.

먼저, 본 발명의 특징을 요약하면, 상기의 목적을 달성하기 위한 본 발명의일면에 따른 네트워크 가상화 장치는, 복수의 가상 머신 큐를 갖는 네트워크 인터페이스 카드; 복수의 로지컬 프로세서와 가상 스위치를 이용하여 상기 네트워크 인터페이스 카드의 가상 머신 큐의 패킷을 가상 머신으로 전달하기 위한 스위칭을 수행하는 하이퍼바이저; 및 상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 생성한 테넌트별 하나 이상의 가상 머신을 포함하고, 상기 네트워크 인터페이스 카드는 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 하나 이상의 가상 머신 큐로 패킷을 전달하는 분류기를 포함하며, 상기 분류기는 상기 분류기는 하나 이상의 가상 머신 큐에 동일한 테넌트별로 할당한 하나 이상의 로지컬 프로세서로 패킷이 전달되도록 제어할 수 있다.According to an aspect of the present invention, there is provided a network virtualization apparatus including: a network interface card having a plurality of virtual machine queues; A hypervisor for performing switching for transferring a packet of a virtual machine queue of the network interface card to a virtual machine using a plurality of logical processors and a virtual switch; And at least one virtual machine for each tenant generated by the hypervisor with respect to the tenant information received from the cloud OS, wherein the network interface card receives, based on the tenant information and the tenant virtual machine information received from the hypervisor, Wherein the categorizer is capable of controlling a packet to be delivered to one or more logical processors assigned to one or more virtual machine queues by the same tenant have.

상기 분류기는 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리할 수 있다.The classifier can manage the virtual machine queue and the logical process allocation table statically or dynamically in memory according to a predetermined control signal.

상기 분류기는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별할 수 있다. The classifier can identify the tenant based on the L2 information or the IP information of the packet to be received.

상기 분류기는 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시킬 수 있다.The classifier may increase or decrease the number of uses of the logical processor by reflecting the traffic throughput of the at least one logical processor in operation belonging to the same tenant in real time according to the dynamic allocation scheme.

상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당할 수 있다.For the occurrence of the logical processor with the traffic throughput above the upper threshold, the categorizer may perform a spreading process to operate the additional logical processor and assign one or more virtual machine queues belonging to the same tenant to the additional logical processor .

상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당할 수 있다.Wherein the classifier performs a contraction process to control the logical processor in an idle state and generates a virtual machine queue assigned to the logical processor that has been changed to the idle state, Can be assigned to the processor.

상기 하이퍼바이저는 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성할 수 있다.The hypervisor may generate a plurality of virtual machines operating as virtualized CPUs operating on different operating systems for the tenant information.

상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달할 수 있다.The logical processor may process a packet received from one or more virtual machine queues and forward the packet to a virtual machine corresponding to the virtual machine queue through the virtual switch.

그리고, 본 발명의 다른 일면에 따른 클라우드 서버 시스템에서 네트워크 인터페이스 카드로부터 패킷을 수신하여 가상화를 위한 하이퍼바이저가 생성하는 하나 이상의 가상 머신으로 패킷을 전달하기 위한 네트워크 가상화 방법은, (A)상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 테넌트별 하나 이상의 가상 머신을 생성하는 단계; (B)상기 네트워크 인터페이스 카드가 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 해당 테넌트에 속한 하나 이상의 가상 머신 큐로 패킷을 전달하는 단계; (C)상기 네트워크 인터페이스 카드에서, 어느 테넌트에 속한 가상 머신 큐가 상기 하이퍼바이저의 복수의 로지컬 프로세서 중 동일한 테넌트에 속한 하나 이상의 로지컬 프로세서에 할당되도록 매핑을 제한하여 패킷의 전달을 제어하는 단계; 및 (D)패킷을 전달 받은 로지컬 프로세서에서 상기 하이퍼바이저의 가상 스위치를 통해 상기 동일한 테넌트에 속한 하나 이상의 가상 머신으로 패킷을 전달하는 단계를 포함한다.A network virtualization method for delivering a packet to one or more virtual machines generated by a hypervisor for virtualization by receiving a packet from a network interface card in a cloud server system according to another aspect of the present invention includes the steps of: (A) Creating at least one virtual machine for each tenant with respect to the tenant information received from the cloud OS; (B) identifying the tenant of the received packet based on the tenant information received from the hypervisor and the tenant virtual machine information, and delivering the packet to one or more virtual machine queues belonging to the tenant; (C) controlling, in the network interface card, a mapping of a virtual machine queue belonging to a certain tenant to one or more logical processors belonging to the same tenant among a plurality of logical processors of the hypervisor, thereby controlling delivery of the packet; And (D) delivering the packet from the logical processor that received the packet to the one or more virtual machines belonging to the same tenant through the virtual switch of the hypervisor.

상기 네트워크 가상화 방법은, 상기 네트워크 인터페이스 카드에서 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 단계를 더 포함할 수 있다.The network virtualization method may further include managing the virtual machine queue and the logical process allocation table statically or dynamically in the memory according to a predetermined control signal in the network interface card.

(B) 단계에서, 상기 네트워크 인터페이스 카드는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별할 수 있다.In step (B), the network interface card may identify the tenant based on the L2 information or the IP information of the received packet.

상기 네트워크 가상화 방법은, 상기 네트워크 인터페이스 카드에서 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 단계를 더 포함할 수 있다.The network virtualization method may further include increasing or decreasing the number of uses of the logical processor by real-time reflecting the traffic throughput of the at least one logical processor operating in the same tenant according to the dynamic allocation scheme in the network interface card have.

상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당할 수 있다.The generation of the logical processor having the traffic throughput exceeding the upper limit threshold, the network interface card performs the spreading process to operate the additional logical processor, and allocates one or more virtual machine queues belonging to the same tenant to the additional logical processor .

상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당할 수 있다.Wherein the network interface card controls the logical processor in an idle state by performing a contraction process on the occurrence of the logical processor having the traffic throughput lower than a lower threshold value and activating a virtual machine queue allocated to the logical processor, It can be assigned to other logical processors.

상기 하이퍼바이저는 상기 하나 이상의 가상 머신으로서 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성할 수 있다.The hypervisor may create a plurality of virtual machines operating as virtualized CPUs operating on different operating systems for the tenant information as the one or more virtual machines.

(D) 단계에서, 상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달할 수 있다.In step (D), the logical processor may process a packet received from one or more virtual machine queues and forward the packet to a virtual machine corresponding to the virtual machine queue through the virtual switch.

상술한 바와 같이 본 발명의 테넌트 기반의 동적 프로세서 할당 장치 및 그 방법에 따르면, 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있다.As described above, according to the apparatus and method for allocating dynamic processors according to the present invention, network virtualization, which ensures that network traffic processing of virtual machines belonging to the same tenant is not affected by congestion of network traffic belonging to other tenants, .

도 1은 본 발명의 일 실시예에 따른 테넌트 기반의 동적 프로세서 할당을 위한 클라우드 서버 시스템에 적용을 위한 T-DVMQ(Tenant-based Dynamic Virtual Machine Queue)의 구조의 네트워크 가상화 장치를 설명하기 위한 도면이다.
도 2는 도 1의 네트워크 인터페이스 카드(NIC)가 관리하는 테넌트 정보와 테넌트별 가상 머신 정보에 대한 테이블의 예시이다.
도 3은 도 1의 테넌트 기반의 네트워크 가상화 장치에서 동적 VMQ/LP 할당 변경 전에 대한 설명을 위한 참조도면이다.
도 4는 도 1의 테넌트 기반의 네트워크 가상화 장치에서 동적 VMQ/LP 할당 변경 후에 대한 설명을 위한 참조도면이다.
도 5는 도 1의 테넌트 기반의 네트워크 가상화 장치에서 테넌트 기반의 정적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
도 6은 도 1의 테넌트 기반의 네트워크 가상화 장치에서 테넌트 기반의 동적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
1 is a view for explaining a network virtualization apparatus having a structure of a T-DVMQ (Tenant-based Dynamic Virtual Machine Queue) for application to a cloud server system for tenant-based dynamic processor allocation according to an embodiment of the present invention .
FIG. 2 is an example of a table for tenant information and tenant virtual machine information managed by the network interface card (NIC) of FIG.
FIG. 3 is a reference diagram for explaining a dynamic VMQ / LP allocation change in the tenant-based network virtualization apparatus of FIG. 1; FIG.
FIG. 4 is a reference diagram for explaining after dynamic VMQ / LP allocation change in the tenant-based network virtualization apparatus of FIG. 1; FIG.
5 is a flowchart illustrating an embodiment of a tenant-based static processor allocation in the tenant-based network virtualization apparatus of FIG.
6 is a flowchart illustrating an embodiment of a tenant-based dynamic processor allocation in the tenant-based network virtualization apparatus of FIG.

이하에서는 첨부된 도면들을 참조하여 본 발명에 대해서 자세히 설명한다. 이때, 각각의 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타낸다. 또한, 이미 공지된 기능 및/또는 구성에 대한 상세한 설명은 생략한다. 이하에 개시된 내용은, 다양한 실시 예에 따른 동작을 이해하는데 필요한 부분이 중점적으로 설명하며, 그 설명의 요지를 흐릴 수 있는 요소들에 대한 설명은 생략한다. 또한 도면의 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시될 수 있다. 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니며, 따라서 각각의 도면에 그려진 구성요소들의 상대적인 크기나 간격에 의해 여기에 기재되는 내용들이 제한되는 것은 아니다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same components are denoted by the same reference symbols as possible. In addition, detailed descriptions of known functions and / or configurations are omitted. The following description will focus on the parts necessary for understanding the operation according to various embodiments, and a description of elements that may obscure the gist of the description will be omitted. Also, some of the elements of the drawings may be exaggerated, omitted, or schematically illustrated. The size of each component does not entirely reflect the actual size, and therefore the contents described herein are not limited by the relative sizes or spacings of the components drawn in the respective drawings.

먼저, 클라우드 서버 시스템에 적용되는 네트워크 가상화(Network Virtualization)는 동일 테넌트에 속한 가상 머신들의 네트워크 트래픽이 다른 테넌트에 속한 네트워크 트래픽에 의해 영향을 받지 않도록 보장되어야 한다.First, network virtualization applied to a cloud server system should ensure that network traffic of virtual machines belonging to the same tenant is not affected by network traffic belonging to other tenants.

기존에 가상 머신 큐(VMQ)의 정적 할당 문제를 해결하기 위하여 동적으로(Dynamic) VMQ를 할당하는 기술(DVMQ)이 시도되고 있다. DVMQ 기술은 네트워크 트래픽 량과 프로세서의 총 사용량에 기반하여 대응되는 가상 머신 큐를 해당 멀티 프로세서에 동적으로 할당하는 방법이다. 네트워크 트래픽의 량 또는 프로세서의 총 사용량이 설정된 최고 임계치 값을 초과하면, 해당 프로세서에 할당한 멀티 머신 큐를 동적으로 재할당하여 처리한다. 네트워크 트래픽의 량 또는 프로세서의 총 사용량이 설정된 최저 임계치 값 아래로 내려가면, 해당 프로세서에 할당한 멀티 머신 큐를 동적으로 재할당하여 해당 프로세서를 할당에서 제거함으로써, 네트워크 트래픽처리 성능과 전력 소모량을 최적화 한다.In order to solve the static allocation problem of the virtual machine queue (VMQ), a technology (DVMQ) for dynamically allocating the VMQ has been attempted. DVMQ technology is a method of dynamically allocating a corresponding virtual machine queue to a corresponding multiprocessor based on the amount of network traffic and the total amount of processor usage. If the amount of network traffic or the total usage of the processor exceeds the set maximum threshold value, the multi-machine queue allocated to the processor is dynamically reallocated and processed. When the amount of network traffic or the total amount of processor usage falls below the set threshold value, the multi-machine queue assigned to the processor is dynamically reallocated to remove the processor from the allocation, thereby optimizing network traffic processing performance and power consumption do.

본 발명의 클라우드 서버 시스템에 적용되는 네트워크 가상화에서도 DVMQ 기술을 적용하여 멀티 프로세서 환경에서 네트워크 처리 성능 및 전력 소모량을 최적화하고자 한다. 다만, 기존의 DVMQ 기술은 테넌트 측 입장에 대한 고려가 미흡한 실정이므로, 본 발명에서는 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공하고자 하였다.In network virtualization applied to the cloud server system of the present invention, DVMQ technology is applied to optimize network processing performance and power consumption in a multiprocessor environment. However, since the existing DVMQ technology has insufficient consideration for the tenant's position, the present invention provides network virtualization that guarantees that the network traffic processing of virtual machines belonging to the same tenant is not affected by the congestion of network traffic belonging to another tenant .

도 1은 본 발명의 일 실시예에 따른 테넌트 기반의 동적 프로세서 할당을 위한 클라우드 서버 시스템에 적용을 위한 T-DVMQ(Tenant-based Dynamic Virtual Machine Queue)의 구조의 네트워크 가상화 장치(100)를 설명하기 위한 도면이다.1 illustrates a network virtualization apparatus 100 of a structure of a T-DVMQ (Tenant-based Dynamic Virtual Machine Queue) for application to a cloud server system for tenant-based dynamic processor allocation according to an embodiment of the present invention FIG.

도 1을 참조하면, 본 발명의 일 실시예에 따른 테넌트 기반의 네트워크 가상화 장치(100)는, 네트워크 인터페이스 카드(NIC, Network Interface Card)(110), 하이퍼바이저(hypervisor)(120), 가상 머신부(Virtual Machine Unit)(130), 및 클라우드 OS(Operating System) 또는 제어기(이하 '클라우드 OS'라 함)(150)를 포함한다. Referring to FIG. 1, a tenant-based network virtualization apparatus 100 according to an embodiment of the present invention includes a network interface card (NIC) 110, a hypervisor 120, A virtual machine unit 130, and a cloud OS (Operating System) or a controller 150 (hereinafter referred to as a 'cloud OS').

이와 같은 네트워크 가상화 장치(100)의 각부 구성 요소들은 하드웨어(예, 반도체 프로세서 등), 소프트웨어, 또는 이들의 결합으로 구현될 수 있으며, 여기서 가상화는 소프트웨어에 의한 처리로 주요 기능을 수행하는 것을 의미한다. 하기하는 바와 같이 가상 머신부(130)의 가상 머신들(VMs, VM1~VM5)은 클라우드 OS(150)의 제어에 따라 하이퍼바이저(120)가 생성(또는 점유를 할당)하며, 각각의 가상 머신(VM)은 가상화된 하드웨어로서, 예를 들어, 물리적인 CPU(Control Processing Unit)를 대신하여 데이터를 처리하기 위한 가상화된 CPU일 수 있고 각각의 서로 다른 운영체계(OS, Operating System)로 동작하며 운영을 위하여 시스템에 포함된 메모리의 일부 영역을 각각 점유할 수 있다. 각각의 가상 머신(VM)은 하이퍼바이저(120) 또는 다른 가상 머신과의 인터페이싱을 위한 가상 네트워크 인터페이스 카드(vNIC1~vNIC5)를 포함한다.Each component of such a network virtualization device 100 may be implemented in hardware (e.g., a semiconductor processor, etc.), software, or a combination thereof, where virtualization means performing a primary function with processing by software . As described below, the virtual machines (VMs, VM1 to VM5) of the virtual machine unit 130 are created (or assigned occupancy) by the hypervisor 120 under the control of the cloud OS 150, and each virtual machine (VM) is virtualized hardware, which may be, for example, a virtualized CPU for processing data on behalf of a physical CPU (Control Processing Unit) and operating on a respective different operating system (OS) Each of which occupies a part of the memory included in the system for operation. Each virtual machine (VM) includes a virtual network interface card (vNIC 1 to vNIC 5 ) for interfacing with the hypervisor 120 or another virtual machine.

예를 들어, 클라우드 OS(150)는 클라우드 서버 시스템에 가입된 테넌트에 대한 테넌트 정보 또는 테넌트 ID인 UUID(Universally Unique Identifier) 로서, 예를 들어, A, B,..(도 2 참조)를 생성하여 하이퍼바이저(120)로 통보하며, 이에 따라 하이퍼바이저(120)(예, 하이퍼바이저(120)의 생성부)는 테넌트 정보(예, A, B,..)에 대응되는 각각의 테넌트별 가상 머신들(VM1~VM3/VM4~VM5/..)을 생성할 수 있다. 하이퍼바이저(120)는 이와 같은 테넌트 정보(예, A, B,..)와 테넌트별 가상 머신 정보(예, 테넌트별로 대응되어 지정된 가상 머신들(VM1~VM3/VM4~VM5/..)에 대한 식별정보)를 네트워크 인터페이스 카드(NIC)(110)로 전달한다. 하이퍼바이저(120)는 가상 머신들(VM1~VM3/VM4~VM5/..)을 생성하기 위한 생성부를 포함하며, 이외에도, 도 1와 같이 해당 테넌트에 속한 가상 머신 큐(VMQ)의 패킷을 소정의 전달 프로토콜에 따라 처리하는 로지컬 프로세서들(LPs, LP1~LP3/LP4~LP5)과, 로지컬 프로세서들(LPs)의 출력 데이터가 가상 네트워크 인터페이스 카드(vNIC1~vNIC5)를 통해 가상 머신들(VM1~VM3/VM4~VM5/..)로 전달되도록 스위칭하는 가상 스위치(121)를 포함한다.For example, the cloud OS 150 may generate, for example, A, B, .. (see FIG. 2) as a tenant information or tenant ID for a tenant subscribed to the cloud server system as a Universally Unique Identifier (UUID) To the hypervisor 120 and the hypervisor 120 (e.g., the generating unit of the hypervisor 120) notifies the hypervisor 120 of each tenant corresponding to the tenant information (e.g., A, B, Machines VM1 to VM3 / VM4 to VM5 /. The hypervisor 120 stores the information of the tenant (for example, A, B, ..) and the virtual machine information for each tenant (for example, virtual machines VM1 to VM3 / VM4 to VM5 / To the network interface card (NIC) 110. The hypervisor 120 includes a generation unit for generating virtual machines VM1 to VM3 / VM4 to VM5 /. In addition, as shown in FIG. 1, the virtual machine queue VMQ (LPs, LP1 to LP3 / LP4 to LP5) for processing according to the transfer protocol of the logical processors LPs and the output data of the logical processors LPs are transferred to the virtual machines (vNIC 1 to vNIC 5 ) VM1 to VM3 / VM4 to VM5 / ..).

네트워크 인터페이스 카드(NIC)(110)는 MAC/PHY(Media Access Control & PHYsical layer) 처리기(111), L2(Layer 2) 분류기(classifier/sorter)(112), 가상 머신 큐들(VMQs, VMQ1 ~ VMQ5)로 구성된다.The network interface card (NIC) 110 includes a MAC / PHY (Media Access Control and Physical Layer) processor 111, a Layer 2 (L2) classifier / sorter 112, virtual machine queues (VMQs, VMQ1 to VMQ5 ).

MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소에 대한 일치 여부를 판단하여 패킷을 수신한다. L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, A, B,..)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달하여 적재시킨다. 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP(Internet Protocol) 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소 정보)에 따라 테넌트(예, A, B,..)를 식별할 수도 있다. The MAC / PHY processor 111 determines whether the packet received from the outside matches the destination MAC address and receives the packet. The L2 classifier 112 identifies the tenants (eg, A, B, ..) based on the L2 information (eg, the MAC address of the virtual machine) of the received packet, classifies the packets by tenants, To the virtual machine queue (VMQ) belonging to the corresponding tenant. In some cases, the L2 classifier 112 parses the received packet to extract IP (Internet Protocol) information (eg, source IP address, destination IP address, protocol, source port, destination port) (E.g., A, B, ..) according to the IP address of the virtual machine (e.g., the IP address information of the virtual machine).

이와 같이 본 발명에서는 테넌트 정보(예, A, B,..)에 의해 구분된 테넌트별로 해당 패킷을 처리할 가상 머신들(VM1~VM3/VM4~VM5/..)이 미리 지정되어 생성되며, 테넌트별로 구분된 하나 이상의 가상 머신(VM)에 대응된 하이퍼바이저(120)의 하나 이상의 로지컬 프로세서(LP)과, 네트워크 인터페이스 카드(NIC)(110)의 하나 이상의 가상 머신 큐(VMQ)가 지정되고 할당되어 운영된다. As described above, in the present invention, virtual machines (VM1 to VM3 / VM4 to VM5 / ..) for processing the corresponding packets for each tenant classified by tenant information (e.g., A, B, One or more logical processors LP of the hypervisor 120 and one or more virtual machine queues VMQ of the network interface card NIC 110 are designated corresponding to one or more virtual machines (VMs) And is operated.

다만, L2 분류기(112)는 도 2과 같이 하이퍼바이저(120)로부터 수신한 테넌트 정보(예, A, B,..)와 테넌트별 가상 머신 정보(VM1*~VM3*/VM4*~VM5*/..)(예, 가상 머신 MAC 주소, 또는 IP 주소 정보)에 대한 테이블(예, 대응된 가상 머신 큐 정보 포함 가능)을 소정의 메모리에 저장 관리하고, 이를 기초로 수신된 패킷을 분류해 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 전달하되, 하기하는 바와 같이 시스템의 소정의 제어 신호에 따라 VMQ/LP 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하여 가상 머신 큐(VMQ)의 패킷이 해당 로지컬 프로세서(LP)로 전달되도록 제어할 수 있다. 도 2와 같이, 예를 들어, 하나의 테넌트에 속한 가상 머신 정보는 복수개 일 수 있으며, L2 분류기(112)는 가상 머신 정보에 대응되고 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 패킷을 전달할 수 있다. 2, the L2 classifier 112 compares the tenant information (e.g., A, B, ..) received from the hypervisor 120 with the virtual machine information VM1 * to VM3 * / VM4 * (For example, corresponding virtual machine queue information may be included) in a predetermined memory, and classifies the received packet based on the table LP allocation table is statically or dynamically managed in memory according to a predetermined control signal of the system, as described below, so that the virtual machine queue (VMQ) So that the packet is transferred to the corresponding logical processor (LP). 2, for example, the virtual machine information belonging to one tenant may be plural, and the L2 classifier 112 may correspond to the virtual machine information and transmit the packet to one or more virtual machine queues (VMQ) belonging to the tenant .

다만, 정적 할당의 경우에 L2 분류기(112)는 하나 이상의 가상 머신 큐(도 1의 예에서, VMQ1, 2, 3)가 미리 지정된 하나 이상의 로지컬 프로세서(도 1의 예에서, LP1)로 패킷을 전달하도록 제어한다. 도 1의 예에서, VMQ1, VMQ2, VMQ3이 모두 LP1으로 패킷을 전달하는 예를 도시하였으나, 경우에 따라 VMQ1, VMQ2, VMQ3 중 어는 것은 LP1으로 패킷을 전달하고, 나머지는 LP2 또는 LP3로 패킷을 전달하는 것도 가능하며, 이와 같이 가상 머신(VM)의 번호(1,2,3,..)와 로지컬 프로세서(LP)의 번호(1,2,3,..) 간의 대응 관계는 없고, 동일한 테넌트에 속한 VMQ와 해당 로지컬 프로세서(LP) 간의 매핑 관계를 유지한다. However, in the case of static allocation, the L2 classifier 112 may send packets to one or more logical processors (LP1 in the example of FIG. 1), to which one or more virtual machine queues (VMQ1, 2, 3 in the example of FIG. 1) . In the example of FIG. 1, the VMQ1, VMQ2, and VMQ3 all transmit packets to LP1. However, in some cases, VMQ1, VMQ2, and VMQ3 transfer packets to LP1 while the remaining packets are transferred to LP2 or LP3 (1, 2, 3, ..) of the virtual machine (VM) and the number (1, 2, 3, ..) of the logical processor (LP) The mapping relationship between the VMQ belonging to the tenant and the corresponding logical processor (LP) is maintained.

다만, 로지컬 프로세서(LP)는 하나 이상의 가상 머신 큐(VMQ)로부터 수신한 패킷을 처리할 수 있으며, 가상 스위치(121)를 통해 해당 가상 머신 큐의 번호(1,2,3,..)에 따라 구분된 해당 가상 머신(VM1, VM2, VM3,..)으로 패킷을 전달할 수 있다. 예를 들어, VMQ의 번호와 VM의 번호는 대응되고, 도 1에서 VMQ1에서 전달된 패킷을 처리하는 LP1 은 가상 스위치(121)을 통해 처리된 패킷을 가상 머신 VM1으로 전달을 위한 소정의 식별자와 함께 가상 머신 VM1으로 전달할 수 있다. 마찬가지로 VMQ2에서 전달된 패킷을 처리하는 LP1 은 가상 스위치(121)을 통해 가상 머신 VM2으로 전달하며, VMQ3에서 전달된 패킷을 처리하는 LP1 은 가상 스위치(121)을 통해 가상 머신 VM3으로 전달할 수 있다.However, the logical processor LP can process packets received from one or more virtual machine queues (VMQs), and the logical processor 121 can process the packets received from the virtual machine queues (1,2,3, ..) And can forward packets to corresponding virtual machines (VM1, VM2, VM3, ...). For example, the number of the VMQ corresponds to the number of the VM, and the LP1 that processes the packet transmitted in the VMQ1 in FIG. 1 corresponds to a predetermined identifier for delivering the packet processed through the virtual switch 121 to the virtual machine VM1 Together with the virtual machine VM1. Likewise, the LP1 that processes the packet transmitted from the VMQ2 transfers the packet to the virtual machine VM2 via the virtual switch 121, and the LP1 that processes the packet transmitted from the VMQ3 can transmit the packet to the virtual machine VM3 via the virtual switch 121. [

또한, 동적 할당의 경우에 L2 분류기(112)는 위와 같은 동일한 테넌트에 속한 복수의 VMQ에 대하여 해당 테넌트에 속한, 동작중인 하나 이상의 로지컬 프로세서(LP)에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)을 실시간 반영하여 로지컬 프로세서(LP)의 사용 개수를 늘리거나(확산 프로세스) 감축시킬(수축 프로세스) 수 있다. In the case of dynamic allocation, the L2 classifier 112 sets the traffic throughput (or the amount of logical processor usage) in one or more active logical processors (LPs) belonging to the tenant to a plurality of VMQs belonging to the same tenant, The number of use of the logical processor LP may be increased (diffusion process) or reduced (contraction process).

본 발명에서 각각의 테넌트 내에서 가상 머신 큐(VMQ)와 로지컬 프로세서(LP)를 동적으로 할당하는 방법이 기존 DVMQ 방식과 유사할 수 있지만, 본 발명에서는 서로 다른 테넌트 간의 간섭 현상을 제거하여 네트워크 가상화를 지원하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 로지컬 프로세서(LP) 간에만 매핑이 이루어져 패킷을 전달하는 방식은 기존의 DVMQ 방식과 다르다. 이와 같은 본 발명의 테넌트 기반의 동적 프로세서 할당 방식에 따라 동일 테넌트에 속한 가상 머신들(VMs)의 네트워크 트래픽 처리가 다른 테넌트에 속한 VMQ 또는 LP에서의 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있게 된다.In the present invention, a method of dynamically allocating a virtual machine queue (VMQ) and a logical processor (LP) in each tenant may be similar to the existing DVMQ method. However, in the present invention, The LPQ allocation table is mapped only between the VMQs belonging to the same tenant and the logical processor (LP), and the packet is transmitted in a manner different from the existing DVMQ scheme. According to the tenant-based dynamic processor allocation method of the present invention, it is ensured that the network traffic processing of virtual machines (VMs) belonging to the same tenant is not affected by the congestion of network traffic in the VMQ or LP belonging to another tenant And provide network virtualization.

아래 [표 1]은 L2 분류기(112)가 관리할 수 있는, 가상 머신 큐(VMQ)와 해당 가상 머신 큐를 처리하는 로지컬 프로세서(LP)의 할당표에 대한 일례이다. 도 2과 같이, 테넌트 A에 속한 VM1, VM2, VM3에 대응된 모든 가상 머신 큐 VMQ1, VMQ2, VMQ3가 테넌트 A에 속한 로지컬 프로세서 LP1에 할당되어 패킷이 전달되며, 테넌트 A에 속한 로지컬 프로세서 LP2, LP3는 아이들 상태로서 트래픽 처리가 없는 상태에 대한, VMQ/LP 할당 테이블을 [표 1]에 예시한 것이다. 또한, 테넌트 B에 속한 VM4, VM5에 대응된 가상 머신 큐(VMQ4, VMQ5)는 로지컬 프로세서 LP4, LP5에 각각 할당된 예이다.[Table 1] is an example of an allocation table of a virtual machine queue (VMQ) and a logical processor (LP) that processes the virtual machine queue, which can be managed by the L2 classifier 112. 2, all the virtual machine queues VMQ1, VMQ2, and VMQ3 corresponding to the VM1, VM2, and VM3 belonging to the tenant A are allocated to the logical processor LP1 belonging to the tenant A, and the packets are transferred, and the logical processors LP2, LP3 shows the VMQ / LP allocation table in Table 1 for the idle state with no traffic processing. Virtual machines queues (VMQ4 and VMQ5) corresponding to VM4 and VM5 belonging to tenant B are allocated to logical processors LP4 and LP5, respectively.

[표 1] VMQ/LP 할당 테이블 [Table 1] VMQ / LP allocation table

Figure pat00001
Figure pat00001

도 3은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 동적 VMQ/LP 할당 변경 전에 대한 설명을 위한 참조도면이다.FIG. 3 is a reference diagram for explaining the dynamic VMQ / LP allocation change before the tenant-based network virtualization apparatus 100 of FIG.

NIC(110)의 L2 분류기(112)는 도 3와 같이 VMQ1, VMQ2. VMQ3에 대한 패킷 트래픽이 증가하여, 동작중인 로지컬 프로세서 LP1에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 상한 임계치에 도달하는지 여부를 판단하고, 상한 임계치 이상이면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 확산 프로세스(spreading process)를 수행하여 도 4와 같이 동일 테넌트에 속한 로지컬 프로세서 LP2가 추가적으로 동작하도록 제어할 수 있다. 이때, 네트워크 가상화 기능을 제공하기 위하여, L2 분류기(112)는 아래 [표 2]와 같이 VMQ/LP 할당 테이블을 동적으로 변경할 때 동일한 테넌트에 속한 VMQ들이 해당 테넌트에 속한 로지컬 프로세서들에만 매핑되도록 제한하여 트래픽을 분산시킨다.The L2 classifier 112 of the NIC 110 includes VMQ1, VMQ2. It is determined whether or not the traffic throughput (or the logical processor usage) in the logical processor LP1 in operation reaches the predetermined upper limit threshold due to the increase in the packet traffic for the VMQ3. If the traffic throughput is greater than the upper threshold value, 112 performs a tenant-based spreading process to control the logical processor LP2 belonging to the same tenant to additionally operate as shown in FIG. In order to provide the network virtualization function, when the VMQ / LP allocation table is dynamically changed as shown in [Table 2] below, the L2 classifier 112 limits the VMQs belonging to the same tenant to only the logical processors belonging to the tenant To distribute traffic.

이와 같은 테넌트 기반의 DVMQ 확산 프로세스(spreading process)를 수행 결과, VM1, VM2, VM3에 대한 VMQ/LP 할당 테이블에 대한 변경이 발생되어 시스템이 전체적으로 더 나은 성능을 가지도록 설정된다. 아래 [표 2]에서는 VMQ/LP 할당 테이블에 대한 변경 일 실시 예로서 가상 머신 큐 VMQ1, VMQ3의 패킷이 로지컬 프로세서 LP1으로 전달되고, 가상 머신 큐 VMQ2의 패킷은 프로세서 LP2로 전달되도록 할당한 예시를 나타낸다. 다만 이와 같은 예시에 한정되지 않으며 동일한 테넌트에 속한 복수의 로지컬 프로세서가 각각 해당 테넌트에 속한 하나 이상의 가상 머신 큐와 연동하여 패킷을 전달받을 수 있도록 할당되는 모든 경우가 가능하다.As a result of performing the tenant-based DVMQ spreading process, a change is made to the VMQ / LP allocation table for VM1, VM2, and VM3, and the system is set to have better performance as a whole. In the following Table 2, a modification to the VMQ / LP allocation table As an example, a packet of the virtual machine queues VMQ1 and VMQ3 is transferred to the logical processor LP1, and a packet of the virtual machine queue VMQ2 is allocated to be transferred to the processor LP2 . However, the present invention is not limited to such an example, and all the cases are possible in which a plurality of logical processors belonging to the same tenant are allocated to be able to receive packets in cooperation with one or more virtual machine queues belonging to the respective tenants.

마찬가지로 동작중인 로지컬 프로세서 LP1, LP2 모두에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 상한 임계치에 도달하면, 위와 같은 확산 프로세스(spreading process)가 수행되어, 동일 테넌트에 속한 로지컬 프로세서 LP3가 더 추가적으로 동작하도록 제어할 수 있다.Likewise, when the traffic throughput (or the logical processor usage) in all of the logical processors LP1 and LP2 in operation reaches the predetermined upper limit threshold, the spreading process is performed as described above, so that the logical processor LP3 belonging to the same tenant additionally Can be controlled to operate.

[표 2] VMQ/LP 할당 테이블[Table 2] VMQ / LP allocation table

Figure pat00002
Figure pat00002

한편, 위와 같은 예에서, 테넌트 A에 속한 VMQ에는 VMQ1, VMQ2, VMQ3이 있고, 테넌트 A에 속한 LP에는 LP1, LP2, LP3가 있다. 테넌트 B에 속한 VMQ에는 VMQ4, VMQ5이 있고, 테넌트 B에 속한 LP에는 LP4, LP5가 있다. 본 발명에서는 서로 다른 테넌트 간의 간섭 현상을 제거하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 로지컬 프로세서로의 매핑으로 제한한다. On the other hand, in the above example, VMQ1, VMQ2, and VMQ3 exist in VMQ belonging to tenant A, and LP1, LP2, and LP3 exist in LP belonging to tenant A. The VMQs belonging to tenant B have VMQ4 and VMQ5, and the LPs belonging to tenant B have LP4 and LP5. In the present invention, when the VMQ / LP allocation table is dynamically changed, the VMQs belonging to the same tenant are mapped to the logical processors belonging to the tenants in order to eliminate interference between different tenants.

이때, 도 4와 같이 [표 2]의 VMQ/LP 할당 테이블이 적용된 상태에서, VMQ2로의 트래픽이 감소하여, 로지컬 프로세서 LP2에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 하위 임계치 이하가 되는 상황이 발생하면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행한다. 이때에도 네트워크 가상화 기능을 제공하기 위하여, VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 프로세서 매핑으로 제한한다.At this time, when the traffic to the VMQ2 decreases and the traffic throughput (or the amount of logical processor usage) in the logical processor LP2 falls below a predetermined lower threshold value in a state in which the VMQ / LP allocation table of [Table 2] The L2 classifier 112 of the NIC 110 performs a tenant-based DVMQ coalescing process. At this time, in order to provide the network virtualization function, when the VMQ / LP allocation table is dynamically changed, the VMQ belonging to the same tenant is limited to the processor mapping belonging to the corresponding tenant.

이와 같은 테넌트 기반의 수축 프로세서(coalescing process)를 수행 결과, VM1, VM2. VM3에 대한 VMQ/LP 할당 테이블이 [표 1]과 같이 변경이 발생되어 시스템이 전체적으로 더 낮은 전력 소모를 가지도록 설정된다. [표 1]에서는 VMQ/LP 할당 테이블이 변경된 일예로서 동작중인 로지컬 프로세서 LP1에 가상 머신 큐 VMQ1, VMQ2, VMQ3 모두가 할당되었고, LP2 프로세서는 아이들(Idle) 상태로 변경된다. 이와 같이 L2 분류기(112)가 LP2 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 해당 로지컬 프로세서 LP2에 할당되었던 가상 머신 큐 VMQ2를 동작 중인 다른 로지컬 프로세서 LP1에 할당함으로써, 시스템은 도 1와 같은 상태로 돌아온다. As a result of performing such a tenant-based contraction processor (coalescing process), VM1, VM2. The VMQ / LP allocation table for VM3 is set to have a change as shown in [Table 1] so that the system as a whole has lower power consumption. In Table 1, all of the virtual machine queues VMQ1, VMQ2, and VMQ3 are assigned to the logical processor LP1 that is operating as an example in which the VMQ / LP allocation table is changed, and the LP2 processor is changed to the idle state. As described above, the L2 classifier 112 controls the LP2 logical processor in the idle state and allocates the virtual machine queue VMQ2 assigned to the corresponding logical processor LP2 changed to the idle state to the other logical processor LP1 in operation, Return to the state.

도 5은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 테넌트 기반의 정적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.5 is a flowchart illustrating an embodiment of a tenant-based static processor allocation in the tenant-based network virtualization apparatus 100 of FIG.

먼저, 예를 들어, 클라우드 OS(150)는 클라우드 서버 시스템에 가입된 새로운 테넌트에 대한 테넌트 정보(예, 도 1의 Tenant A)를 생성하여 하이퍼바이저(120)로 통보할 수 있다(S610).First, for example, the cloud OS 150 may generate tenant information (e.g., Tenant A in FIG. 1) for a new tenant subscribed to the cloud server system and notify the hypervisor 120 (S610).

이에 따라 하이퍼바이저(120)(예, 하이퍼바이저(120)의 생성부)는 테넌트 정보(예, A)에 대응되는 각각의 테넌트별 가상 머신들(예, 도 1의 VM1~VM3)을 생성할 수 있다(S620). 이때 테넌트의 가입 조건 등에 따라 1 또는 2 이상의 가상 머신들이 생성된다. Accordingly, the hypervisor 120 (e.g., the generating unit of the hypervisor 120) generates virtual machines for each tenant (e.g., VM1 to VM3 in FIG. 1) corresponding to the tenant information (S620). At this time, one or more virtual machines are created depending on the joining condition of the tenant.

하이퍼바이저(120)는 이와 같은 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(예, 테넌트별로 대응되어 지정된 가상 머신들(VM1~VM3)에 대한 식별정보 VM1*~VM3*)를 네트워크 인터페이스 카드(NIC)(110)로 전달한다(S630). 가상 머신들(VM1~VM3)에 대한 식별정보(VM1*~VM3*)는 가상 머신의 MAC 주소, 또는 IP 주소 정보일 수 있다.The hypervisor 120 stores the tenant information (for example, A in FIG. 1) and the tenant virtual machine information (for example, the identification information VM1 * to VM3 * for the virtual machines VM1 to VM3 specified in correspondence with each tenant) To the network interface card (NIC) 110 (S630). The identification information VM1 * to VM3 * for the virtual machines VM1 to VM3 may be the MAC address of the virtual machine or the IP address information.

이에 따라 네트워크 인터페이스 카드(NIC)(110)의 MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소(또는 IP 주소)에 대한 일치 여부를 판단하여 패킷을 수신하며, L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, 도 1의 A)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달한다(S640). 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소)에 따라 테넌트(예, 도 1의 A)를 식별할 수도 있다. Accordingly, the MAC / PHY processor 111 of the network interface card (NIC) 110 determines whether the destination MAC address (or IP address) of the packet received from the outside matches with the packet, Identifies a tenant (e.g., A in Fig. 1) based on L2 information (e.g., a MAC address of a virtual machine) of the received packet, classifies the packets by tenants, and classifies the packets into virtual To the machine queue (VMQ) (S640). In some cases, the L2 classifier 112 parses the received packet to extract IP information (eg, source IP address, destination IP address, protocol, source port, destination port) (E.g., the IP address of the machine).

이때 L2 분류기(112)는 가상 머신 큐를 정적으로 할당함에 있어서, 동일 테넌트 A에 속하는 가상 머신 큐(VMQ1, VMQ2, VMQ3)가 동일한 테넌트에 속한 하나 이상의 미리 지정된 로지컬 프로세서(예, 도 1의 LP1)에 할당되도록 설정할 수 있다(S650). At this time, in the statically allocating the virtual machine queue, the L2 classifier 112 determines whether or not the virtual machine queues VMQ1, VMQ2, VMQ3 belonging to the same tenant A belong to one or more predetermined logical processors belonging to the same tenant (S650).

예를 들어, L2 분류기(112)는 도 2과 같이 하이퍼바이저(120)로부터 수신한 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(VM1*~VM3)에 대한 테이블(예, 대응된 가상 머신 큐 정보 포함 가능)을 소정의 메모리에 저장 관리하고, 이를 기초로 수신된 패킷을 분류해 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 전달할 수 있다. 정적 할당의 경우에 L2 분류기(112)는 하나 이상의 가상 머신 큐(도 1의 예에서, VMQ1, 2, 3)가 미리 지정된 하나 이상의 로지컬 프로세서(예, 도 1의 LP1)로 패킷을 전달하도록 제어할 수 있다. 도 1의 예에서, VMQ1, VMQ2, VMQ3이 모두 LP1으로 패킷을 전달하는 예를 도시하였으나, VMQ1, VMQ2, VMQ3 중 어는 것은 LP1으로 패킷을 전달하고, 나머지는 LP2 또는 LP3로 패킷을 전달하는 것도 가능하다.For example, the L2 classifier 112 generates a table (e.g., a table) for tenant information (e.g., A in Fig. 1) and virtual machine information (VM1 * to VM3) for each tenant received from the hypervisor 120, (Which may include corresponding virtual machine queue information) in a predetermined memory, classify the received packets based on the managed packets, and forward the packets to one or more virtual machine queues (VMQ) belonging to the tenant. In the case of static allocation, the L2 classifier 112 may be configured to control one or more virtual machine queues (VMQ1, 2, 3 in the example of FIG. 1) to deliver packets to one or more logical processors (e.g., LP1 of FIG. 1) can do. In the example of FIG. 1, the VMQ1, VMQ2, and VMQ3 all forward packets to LP1. However, VMQ1, VMQ2, and VMQ3 transfer packets to LP1 and others to LP2 or LP3 It is possible.

도 6은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 테넌트 기반의 동적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다. FIG. 6 is a flowchart illustrating an embodiment of a tenant-based dynamic processor allocation in the tenant-based network virtualization apparatus 100 of FIG.

먼저, 예를 들어, 클라우드 OS(150)는 클라우드 서버 시스템에 가입된 새로운 테넌트에 대한 테넌트 정보(예, 도 1의 Tenant A)를 생성하여 하이퍼바이저(120)로 통보할 수 있다(S710).First, for example, the cloud OS 150 may generate tenant information (e.g., Tenant A in FIG. 1) for a new tenant subscribed to the cloud server system and notify the hypervisor 120 (S710).

이에 따라 하이퍼바이저(120)(예, 하이퍼바이저(120)의 생성부)는 테넌트 정보(예, A)에 대응되는 각각의 테넌트별 가상 머신들(예, 도 1의 VM1~VM3)을 생성할 수 있다(S720). 이때 테넌트의 가입 조건 등에 따라 1 또는 2 이상의 가상 머신들이 생성된다. Accordingly, the hypervisor 120 (e.g., the generating unit of the hypervisor 120) generates virtual machines for each tenant (e.g., VM1 to VM3 in FIG. 1) corresponding to the tenant information (S720). At this time, one or more virtual machines are created depending on the joining condition of the tenant.

하이퍼바이저(120)는 이와 같은 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(예, 테넌트별로 대응되어 지정된 가상 머신들(VM1~VM3)에 대한 식별정보 VM1*~VM3*)를 네트워크 인터페이스 카드(NIC)(110)로 전달한다(S730). 가상 머신들(VM1~VM3)에 대한 식별정보(VM1*~VM3*)는 가상 머신의 MAC 주소, 또는 IP 주소 정보일 수 있다.The hypervisor 120 stores the tenant information (for example, A in FIG. 1) and the tenant virtual machine information (for example, the identification information VM1 * to VM3 * for the virtual machines VM1 to VM3 specified in correspondence with each tenant) To the network interface card (NIC) 110 (S730). The identification information VM1 * to VM3 * for the virtual machines VM1 to VM3 may be the MAC address of the virtual machine or the IP address information.

이에 따라 네트워크 인터페이스 카드(NIC)(110)의 MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소에 대한 일치 여부를 판단하여 패킷을 수신하며, L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, 도 1의 A)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달한다(S740). 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소)에 따라 테넌트(예, 도 1의 A)를 식별할 수도 있다. Accordingly, the MAC / PHY processor 111 of the network interface card (NIC) 110 determines whether or not the destination MAC address of the packet received from the outside matches with the destination MAC address, and the L2 classifier 112 receives the packet (E.g., A in FIG. 1) based on the L2 information (e.g., the MAC address of the virtual machine) of the virtual machine queue (VMQ) of the corresponding tenant, classifies the packets by tenants, (S740). In some cases, the L2 classifier 112 parses the received packet to extract IP information (eg, source IP address, destination IP address, protocol, source port, destination port) (E.g., the IP address of the machine).

이때 L2 분류기(112)는 가상 머신 큐를 정적 할당함에 있어서, 동일 테넌트 A에 속하는 가상 머신 큐(VMQ1, VMQ2, VMQ3)가 동일한 테넌트에 속한 하나 이상의 미리 지정된 로지컬 프로세서(예, 도 1의 LP1)에 할당되도록 설정할 수 있다(S750). At this time, in the static assignment of the virtual machine queues, the L2 classifier 112 determines whether or not the virtual machine queues VMQ1, VMQ2, VMQ3 belonging to the same tenant A belong to one or more predetermined logical processors belonging to the same tenant (for example, (S750).

예를 들어, L2 분류기(112)는 도 2과 같이 하이퍼바이저(120)로부터 수신한 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(VM1*~VM3)에 대한 테이블(예, 대응된 가상 머신 큐 정보 포함 가능)을 소정의 메모리에 저장 관리하고, 이를 기초로 수신된 패킷을 분류해 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 전달할 수 있다. 정적 할당의 경우에 L2 분류기(112)는 하나 이상의 가상 머신 큐(도 1의 예에서, VMQ1, 2, 3)가 미리 지정된 하나 이상의 로지컬 프로세서(예, 도 1의 LP1)로 패킷을 전달하도록 제어할 수 있다. 도 1의 예에서, VMQ1, VMQ2, VMQ3이 모두 LP1으로 패킷을 전달하는 예를 도시하였으나, VMQ1, VMQ2, VMQ3 중 어는 것은 LP1으로 패킷을 전달하고, 나머지는 LP2 또는 LP3로 패킷을 전달하는 것도 가능하다.For example, the L2 classifier 112 generates a table (e.g., a table) for tenant information (e.g., A in Fig. 1) and virtual machine information (VM1 * to VM3) for each tenant received from the hypervisor 120, (Which may include corresponding virtual machine queue information) in a predetermined memory, classify the received packets based on the managed packets, and forward the packets to one or more virtual machine queues (VMQ) belonging to the tenant. In the case of static allocation, the L2 classifier 112 may be configured to control one or more virtual machine queues (VMQ1, 2, 3 in the example of FIG. 1) to deliver packets to one or more logical processors (e.g., LP1 of FIG. 1) can do. In the example of FIG. 1, the VMQ1, VMQ2, and VMQ3 all forward packets to LP1. However, VMQ1, VMQ2, and VMQ3 transfer packets to LP1 and others to LP2 or LP3 It is possible.

다만, 시스템 상의 클라우드 OS(150) 등 제어기에서 소정의 제어 신호에 따라 L2 분류기(112)는 VMQ/LP의 정적 할당 또는 동적 할당 간의 변경이 가능하며, 이에 따른 VMQ/LP 테이블을 정적으로 또는 동적으로 메모리에 관리하여 가상 머신 큐(VMQ)의 패킷이 해당 로지컬 프로세서로 전달되도록 제어할 수 있다.However, according to a predetermined control signal from the controller such as the cloud OS 150 on the system, the L2 classifier 112 can change the static assignment or the dynamic assignment of the VMQ / LP, and the corresponding VMQ / LP table can be statically or dynamically And controls the packets in the virtual machine queue VMQ to be transferred to the corresponding logical processor.

동적 할당의 경우에 L2 분류기(112)는 위와 같은 동일한 테넌트에 속한 복수의 VMQ에 대하여 해당 테넌트에 속한, 동작중인 하나 이상의 로지컬 프로세서(LP)에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)을 실시간 반영하여 로지컬 프로세서(LP)의 사용 개수를 늘리거나(확산 프로세스) 감축시킬(수축 프로세스) 수 있다(S760, S761, S770, S771). In the case of dynamic allocation, the L2 classifier 112 reflects the traffic throughput (or the logical processor usage) of the at least one logical processor (LP) belonging to the tenant in real time to a plurality of VMQs belonging to the same tenant The number of use of the logical processor LP may be increased (diffusion process) or reduced (contraction process) (S760, S761, S770, S771).

예를 들어, 만약 트래픽 처리량(또는 로지컬 프로세서 사용량)이 소정의 상위 임계치 이상이 되는 상황이 발생하면(S760), NIC(110)의 L2 분류기(112)는 테넌트 기반의 DVMQ 확산 프로세서(spreading process)를 수행한다(S761). 네트워크 가상화 기능을 제공하기 위하여, VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 프로세서 매핑으로 제한한다. 즉, NIC(110)의 L2 분류기(112)는 도 3와 같이 VMQ1, VMQ2, VMQ3에 대한 패킷 트래픽이 증가하여, 동작중인 로지컬 프로세서 LP1에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 상한 임계치에 도달하는지 여부를 판단하고, 상한 임계치 이상이면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 확산 프로세스(spreading process)를 수행하여 도 4와 같이 동일 테넌트에 속한 로지컬 프로세서 LP2가 추가적으로 동작하도록 제어할 수 있다. 이때, 네트워크 가상화 기능을 제공하기 위하여, L2 분류기(112)는 아래 [표 2]와 같이 VMQ/LP 할당 테이블을 동적으로 변경할 때 동일한 테넌트에 속한 VMQ들이 해당 테넌트에 속한 로지컬 프로세서들에만 매핑되도록 제한하여 트래픽을 분산시킨다.For example, if a traffic throughput (or a logical processor usage) exceeds a predetermined upper threshold at step S760, the L2 classifier 112 of the NIC 110 generates a tenant-based DVMQ spreading process, (S761). To provide the network virtualization function, when the VMQ / LP allocation table is changed dynamically, it is limited to the VMQ belonging to the same tenant and the processor mapping belonging to the tenant. That is, the L2 classifier 112 of the NIC 110 increases the packet traffic for VMQ1, VMQ2, and VMQ3 as shown in FIG. 3, so that the traffic throughput (or the logical processor usage) The L2 classifier 112 of the NIC 110 performs a tenant-based spreading process to determine whether or not the logical processor LP2 belonging to the same tenant additionally operates as shown in FIG. . In order to provide the network virtualization function, when the VMQ / LP allocation table is dynamically changed as shown in [Table 2] below, the L2 classifier 112 limits the VMQs belonging to the same tenant to only the logical processors belonging to the tenant To distribute traffic.

또한, 만약 트래픽 처리량(또는 로지컬 프로세서 사용량)이 소정의 하위 임계치 이하가 되는 상황이 발생하면(S770), NIC(110)의 L2 분류기(112)는 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행한다(S771). 네트워크 가상화 기능을 제공하기 위하여, VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 프로세서 매핑으로 제한한다. 즉, 도 3와 같이 [표 2]의 VMQ/LP 할당 테이블이 적용된 상태에서, VMQ2로의 트래픽이 감소하여, 로지컬 프로세서 LP2에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 하위 임계치 이하가 되는 상황이 발생하면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행한다. 이때에도 네트워크 가상화 기능을 제공하기 위하여, VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 프로세서 매핑으로 제한한다.If the traffic throughput (or the amount of logical processor usage) falls below a predetermined lower threshold at step S770, the L2 classifier 112 of the NIC 110 performs a tenant-based DVMQ coalescing process (S771). To provide the network virtualization function, when the VMQ / LP allocation table is changed dynamically, it is limited to the VMQ belonging to the same tenant and the processor mapping belonging to the tenant. That is, in a state where the VMQ / LP allocation table of Table 2 is applied as shown in FIG. 3, the traffic to the VMQ2 decreases and the traffic throughput (or the amount of logical processor usage) in the logical processor LP2 falls below a predetermined lower threshold value The L2 classifier 112 of the NIC 110 performs a tenant-based DVMQ coalescing process. At this time, in order to provide the network virtualization function, when the VMQ / LP allocation table is dynamically changed, the VMQ belonging to the same tenant is limited to the processor mapping belonging to the corresponding tenant.

이와 같이 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행 결과, VM1, VM2. VM3에 대한 VMQ/LP 할당 테이블이 [표 1]과 같이 변경이 발생되어 시스템이 전체적으로 더 낮은 전력 소모를 가지도록 설정된다. [표 1]에서는 VMQ/LP 할당 테이블이 변경된 일예로서 프로세서 LP1에 가상 머신 큐 VMQ1, VMQ2, VMQ2, VMQ3 모두가 할당되었고, LP2 프로세서는 아이들(Idle) 상태로 들어간다. 이 경우, 시스템은 도 1와 같은 상태로 돌아온다. As a result of performing the tenant-based DVMQ shrinking process (coalescing process), VM1, VM2. The VMQ / LP allocation table for VM3 is set to have a change as shown in [Table 1] so that the system as a whole has lower power consumption. In Table 1, all of the virtual machine queues VMQ1, VMQ2, VMQ2, and VMQ3 are allocated to the processor LP1 as an example in which the VMQ / LP allocation table is changed, and the LP2 processor enters the idle state. In this case, the system returns to the state shown in Fig.

이와 같이 본 발명의 테넌트 기반의 네트워크 가상화 장치(100)에서는 서로 다른 테넌트 간의 간섭 현상을 제거하여 네트워크 가상화를 지원하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 로지컬 프로세서(LP) 간에만 매핑이 이루어져 패킷을 전달하는 방식은 기존의 DVMQ 방식과 다르다. 이와 같은 본 발명의 테넌트 기반의 동적 프로세서 할당 방식에 따라 동일 테넌트에 속한 가상 머신들(VMs)의 네트워크 트래픽 처리가 다른 테넌트에 속한 VMQ 또는 LP에서의 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있게 된다.In order to support network virtualization by eliminating the interference phenomenon between different tenants in the tenant-based network virtualization apparatus 100 of the present invention, when the VMQ / LP allocation table is dynamically changed, the VMQs belonging to the same tenant and the logical The mapping of packets between processors (LPs) is different from the conventional DVMQ scheme. According to the tenant-based dynamic processor allocation method of the present invention, it is ensured that the network traffic processing of virtual machines (VMs) belonging to the same tenant is not affected by the congestion of network traffic in the VMQ or LP belonging to another tenant And provide network virtualization.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the essential characteristics of the invention. Therefore, the spirit of the present invention should not be construed as being limited to the embodiments described, and all technical ideas which are equivalent to or equivalent to the claims of the present invention are included in the scope of the present invention .

가상 머신 멀티 큐(VMQ: Virtual Machine Queue)
동적 가상 머신 멀티 큐(DVMQ: Dynamic Virtual Machine Queue)
네트워크 인터페이스 카드(NIC, Network Interface Card)(110)
MAC/PHY(Media Access Control & PHYsical layer) 처리기(111)
L2(Layer 2) 분류기(classifier/sorter)(112)
가상 머신 큐들(VMQs, VMQ1 ~ VMQ5)
하이퍼바이저(hypervisor)(120)
가상 머신부(Virtual Machine Unit)(130)
클라우드 OS(Operating System) 또는 제어기(150)
로지컬 프로세서(LP, Logical Processor)
가상 스위치(virual switch)(121)
Virtual Machine Queue (VMQ)
Dynamic Virtual Machine Queue (DVMQ)
A network interface card (NIC) 110,
A MAC / PHY (Media Access Control & PHYsical layer) processor 111,
A Layer 2 (L2) classifier / sorter 112,
Virtual machine queues (VMQs, VMQ1 through VMQ5)
The hypervisor 120,
A virtual machine unit (130)
A cloud operating system (OS) or controller 150,
Logical Processor (LP)
A virtual switch 121,

Claims (16)

복수의 가상 머신 큐를 갖는 네트워크 인터페이스 카드; 복수의 로지컬 프로세서와 가상 스위치를 이용하여 상기 네트워크 인터페이스 카드의 가상 머신 큐의 패킷을 가상 머신으로 전달하기 위한 스위칭을 수행하는 하이퍼바이저; 및 상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 생성한 테넌트별 하나 이상의 가상 머신을 포함하고,
상기 네트워크 인터페이스 카드는 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 하나 이상의 가상 머신 큐로 패킷을 전달하는 분류기를 포함하며,
상기 분류기는 하나 이상의 가상 머신 큐에 동일한 테넌트별로 할당한 하나 이상의 로지컬 프로세서로 패킷이 전달되도록 제어하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
A network interface card having a plurality of virtual machine queues; A hypervisor for performing switching for transferring a packet of a virtual machine queue of the network interface card to a virtual machine using a plurality of logical processors and a virtual switch; And one or more virtual machines for each tenant generated by the hypervisor for the tenant information received from the cloud OS,
Wherein the network interface card includes a classifier for identifying a tenant of a packet to be received and delivering the packet to one or more virtual machine queues based on tenant information received from the hypervisor and virtual machine information for each tenant,
Wherein the classifier controls the packets to be delivered to one or more logical processors assigned to one or more virtual machine queues by the same tenant.
제1항에 있어서,
상기 분류기는 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
The method according to claim 1,
Wherein the classifier manages a virtual machine queue and a logical process allocation table statically or dynamically in a memory according to a predetermined control signal.
제1항에 있어서,
상기 분류기는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
The method according to claim 1,
Wherein the classifier identifies a tenant based on L2 information or IP information of a packet to be received.
제1항에 있어서,
상기 분류기는 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
The method according to claim 1,
Wherein the classifier is configured to increase or decrease the number of uses of the logical processor by reflecting the traffic throughput of the at least one logical processor operating in the same tenant in real time according to the dynamic allocation scheme.
제4항에 있어서,
상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
5. The method of claim 4,
Wherein the classifier performs a spreading process to operate the additional logical processor and assigns one or more virtual machine queues belonging to the same tenant to the additional logical processor for the occurrence of the logical processor having the traffic throughput exceeding the upper threshold, Network virtualization device for a cloud server system.
제4항에 있어서,
상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
5. The method of claim 4,
Wherein the classifier performs a contraction process to control the logical processor in an idle state and generates a virtual machine queue assigned to the logical processor that has been changed to the idle state to another logical And allocating the network virtualization apparatus to the processor.
제1항에 있어서,
상기 하이퍼바이저는 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
The method according to claim 1,
Wherein the hypervisor generates a plurality of virtual machines operating as virtualized CPUs operating in different operating systems with respect to the tenant information.
제1항에 있어서,
상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
The method according to claim 1,
Wherein the logical processor processes a packet received from one or more virtual machine queues and delivers the packet to a virtual machine corresponding to the virtual machine queue through the virtual switch.
클라우드 서버 시스템에서 네트워크 인터페이스 카드로부터 패킷을 수신하여 가상화를 위한 하이퍼바이저가 생성하는 하나 이상의 가상 머신으로 패킷을 전달하기 위한 네트워크 가상화 방법에 있어서,
(A)상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 테넌트별 하나 이상의 가상 머신을 생성하는 단계;
(B)상기 네트워크 인터페이스 카드가 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 해당 테넌트에 속한 하나 이상의 가상 머신 큐로 패킷을 전달하는 단계;
(C)상기 네트워크 인터페이스 카드에서, 어느 테넌트에 속한 가상 머신 큐가 상기 하이퍼바이저의 복수의 로지컬 프로세서 중 동일한 테넌트에 속한 하나 이상의 로지컬 프로세서에 할당되도록 매핑을 제한하여 패킷의 전달을 제어하는 단계; 및
(D)패킷을 전달 받은 로지컬 프로세서에서 상기 하이퍼바이저의 가상 스위치를 통해 상기 동일한 테넌트에 속한 하나 이상의 가상 머신으로 패킷을 전달하는 단계
를 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
A network virtualization method for receiving a packet from a network interface card in a cloud server system and forwarding the packet to one or more virtual machines created by a hypervisor for virtualization,
(A) creating at least one virtual machine for each tenant for the tenant information received from the cloud OS by the hypervisor;
(B) identifying the tenant of the received packet based on the tenant information received from the hypervisor and the tenant virtual machine information, and delivering the packet to one or more virtual machine queues belonging to the tenant;
(C) controlling, in the network interface card, a mapping of a virtual machine queue belonging to a certain tenant to one or more logical processors belonging to the same tenant among a plurality of logical processors of the hypervisor, thereby controlling delivery of the packet; And
(D) forwarding a packet from a logical processor that has received the packet to one or more virtual machines belonging to the same tenant through a virtual switch of the hypervisor
The network virtualization method comprising:
제9항에 있어서,
상기 네트워크 인터페이스 카드에서 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 단계
를 더 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
10. The method of claim 9,
Managing the virtual machine queue and the logical process allocation table statically or dynamically in the memory in accordance with a predetermined control signal from the network interface card
Wherein the network virtualization method further comprises:
제9항에 있어서,
(B) 단계에서, 상기 네트워크 인터페이스 카드는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별하는 것을 특징으로 하는 네트워크 가상화 방법.
10. The method of claim 9,
(B), the network interface card identifies a tenant based on L2 information or IP information of a packet to be received.
제9항에 있어서,
상기 네트워크 인터페이스 카드에서 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 단계
를 더 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
10. The method of claim 9,
Increasing or decreasing the number of uses of the logical processor by reflecting in real time the traffic throughput of the at least one logical processor operating in the same tenant according to the dynamic allocation scheme in the network interface card
Wherein the network virtualization method further comprises:
제12항에 있어서,
상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당하는 것을 특징으로 하는 네트워크 가상화 방법.
13. The method of claim 12,
Wherein the network interface card performs a spreading process to operate the additional logical processor and allocates one or more virtual machine queues belonging to the same tenant to the additional logical processor for the occurrence of the logical processor having the traffic throughput exceeding the upper threshold Lt; / RTI > network virtualization method.
제12항에 있어서,
상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당하는 것을 특징으로 하는 네트워크 가상화 방법.
13. The method of claim 12,
Wherein the network interface card controls the logical processor in an idle state by performing a contraction process on the generation of the logical processor having the traffic throughput lower than a lower threshold value and activating a virtual machine queue allocated to the logical processor, To another logical processor.
제9항에 있어서,
상기 하이퍼바이저는 상기 하나 이상의 가상 머신으로서 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성하는 것을 특징으로 하는 네트워크 가상화 방법.
10. The method of claim 9,
Wherein the hypervisor creates a plurality of virtual machines operating as virtualized CPUs operating in different operating systems with respect to the tenant information as the one or more virtual machines.
제9항에 있어서,
(D) 단계에서, 상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달하는 것을 특징으로 하는 네트워크 가상화 방법.
10. The method of claim 9,
(D), the logical processor processes a packet received from one or more virtual machine queues and delivers the packet to the virtual machine corresponding to the virtual machine queue through the virtual switch.
KR1020140073780A 2014-03-31 2014-06-17 Apparatus and Method for Mapping of Tenant Based Dynamic Processor KR102126213B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/621,877 US9594584B2 (en) 2014-03-31 2015-02-13 Apparatus and method for mapping of tenant based dynamic processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140037778 2014-03-31
KR20140037778 2014-03-31

Publications (2)

Publication Number Publication Date
KR20150113783A true KR20150113783A (en) 2015-10-08
KR102126213B1 KR102126213B1 (en) 2020-06-24

Family

ID=54346651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140073780A KR102126213B1 (en) 2014-03-31 2014-06-17 Apparatus and Method for Mapping of Tenant Based Dynamic Processor

Country Status (1)

Country Link
KR (1) KR102126213B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635478B2 (en) 2016-12-01 2020-04-28 Electronics And Telecommunications Research Institute Parallel processing method supporting virtual core automatic scaling and apparatus therefor
KR102179769B1 (en) * 2019-10-30 2020-11-17 고려대학교 산학협력단 Method to enforce network policy with commodity multiqueue, recording medium and device for performing the method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765405B2 (en) 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
KR20120016080A (en) * 2009-04-01 2012-02-22 니시라 네트웍스, 인크. Method and apparatus for implementing and managing virtual switches
US20120079478A1 (en) * 2010-09-23 2012-03-29 Cisco Technology, Inc. Network Interface Controller for Virtual and Distributed Services
US20120230223A1 (en) * 2011-03-11 2012-09-13 Nec Corporation Thin client environment providing system, server, thin client environment management method and thin client environment management program
US20130239119A1 (en) 2012-03-09 2013-09-12 Microsoft Corporation Dynamic Processor Mapping for Virtual Machine Network Traffic Queues

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765405B2 (en) 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
KR20120016080A (en) * 2009-04-01 2012-02-22 니시라 네트웍스, 인크. Method and apparatus for implementing and managing virtual switches
US20120079478A1 (en) * 2010-09-23 2012-03-29 Cisco Technology, Inc. Network Interface Controller for Virtual and Distributed Services
US20120230223A1 (en) * 2011-03-11 2012-09-13 Nec Corporation Thin client environment providing system, server, thin client environment management method and thin client environment management program
US20130239119A1 (en) 2012-03-09 2013-09-12 Microsoft Corporation Dynamic Processor Mapping for Virtual Machine Network Traffic Queues

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635478B2 (en) 2016-12-01 2020-04-28 Electronics And Telecommunications Research Institute Parallel processing method supporting virtual core automatic scaling and apparatus therefor
KR102179769B1 (en) * 2019-10-30 2020-11-17 고려대학교 산학협력단 Method to enforce network policy with commodity multiqueue, recording medium and device for performing the method

Also Published As

Publication number Publication date
KR102126213B1 (en) 2020-06-24

Similar Documents

Publication Publication Date Title
US10554485B2 (en) Method for configuring network, network system, and device
JP5689526B2 (en) Resource affinity through dynamic reconfiguration of multiqueue network adapters
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
US9459904B2 (en) NUMA I/O aware network queue assignments
US11681565B2 (en) Technologies for hierarchical clustering of hardware resources in network function virtualization deployments
EP2831730B1 (en) System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
JP2016042374A (en) Native cloud computing via network segmentation
US11531752B2 (en) Technologies for control plane separation in a network interface controller
CN109726005B (en) Method, server system and computer readable medium for managing resources
EP4004751B1 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
KR102389028B1 (en) Apparatus and method for high speed data transfer between virtual desktop
US20170123835A1 (en) Method of controlling communication path between virtual machines and computer system
US9594584B2 (en) Apparatus and method for mapping of tenant based dynamic processor
US20120198542A1 (en) Shared Security Device
US20180246772A1 (en) Method and apparatus for allocating a virtual resource in network functions virtualization network
US11301278B2 (en) Packet handling based on multiprocessor architecture configuration
KR102126213B1 (en) Apparatus and Method for Mapping of Tenant Based Dynamic Processor
WO2018058533A1 (en) Technologies for paravirtual network device queue and memory management
US9619269B2 (en) Device and method for dynamically mapping processor based on tenant
CN112751717B (en) Service flow management system and method
KR20180060353A (en) System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines
KR20160148898A (en) Apparatus and Method for Mapping of Tenant Based Dynamic Processor
KR101488664B1 (en) Network interface card of data path virtualization for each of virtual machines and method for the same
KR102145183B1 (en) Device and Method for Data Transmission and QoS Guarantee of Virtual Machines in Multicore-based Network Interface Card
Choi et al. Tenant based dynamic processor mapping in the cloud network function virtualization system

Legal Events

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