KR102126213B1 - 테넌트 기반의 동적 프로세서 할당 장치 및 방법 - Google Patents

테넌트 기반의 동적 프로세서 할당 장치 및 방법 Download PDF

Info

Publication number
KR102126213B1
KR102126213B1 KR1020140073780A KR20140073780A KR102126213B1 KR 102126213 B1 KR102126213 B1 KR 102126213B1 KR 1020140073780 A KR1020140073780 A KR 1020140073780A KR 20140073780 A KR20140073780 A KR 20140073780A KR 102126213 B1 KR102126213 B1 KR 102126213B1
Authority
KR
South Korea
Prior art keywords
tenant
virtual machine
logical processor
belonging
packet
Prior art date
Application number
KR1020140073780A
Other languages
English (en)
Other versions
KR20150113783A (ko
Inventor
최강일
박종근
이범철
이상민
이정희
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/621,877 priority Critical patent/US9594584B2/en
Publication of KR20150113783A publication Critical patent/KR20150113783A/ko
Application granted granted Critical
Publication of KR102126213B1 publication Critical patent/KR102126213B1/ko

Links

Images

Landscapes

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

Abstract

본 발명은 가상 머신 멀티 큐와 해당 멀티 큐를 처리하는 프로세서를 가상 머신이 속해있는 테넌트 별로 분류하고, 각각의 테넌트 별로 네트워크와 프로세서의 총 사용량에 기반하여 해당 테넌트에 속한 가상 머신 멀티 큐를 해당 테넌트에 속한 멀티 프로세서에 동적으로 할당하여, 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공하는, 테넌트 기반의 동적 프로세서 할당 장치 및 방법에 관한 것이다.

Description

테넌트 기반의 동적 프로세서 할당 장치 및 방법{Apparatus and Method for Mapping of Tenant Based Dynamic Processor}
본 발명은 네트워크 가상화를 제공하는 장치 및 방법에 관한 것으로서, 더 상세하게는 멀티 테넌트 기반의 클라우드 서버 시스템에서 네트워크 가상화를 제공하기 위한, 테넌트 기반의 동적 프로세서 할당 장치 및 방법에 관한 것이다.
멀티 프로세서 기반 서버 시스템의 네트워크 인터페이스 카드(NIC)에서 네트워크 트래픽 성능을 고속화하는 처리 기술은 계속 발전되어 왔다. 가장 큰 문제는 NIC에서 수신된 트래픽은 서버 내의 멀티 프로세서에 의해 효과적으로 처리되지 못하는 문제였다. 이 문제를 해결한 기술이 수신 측 스케일링(RSS: Receive Side Scaling) 기술이다. RSS 기술은 멀티 프로세서 기반 서버의 NIC에서 수신한 네트워크 트래픽에 대해, 해시 기능을 수행하여 서로 다른 플로우로 나누어 처리한다. RSS 기술에서는 동일 플로우에 해당하는 트래픽을 동일한 프로세서에서 처리하도록 할당하여, 멀티 프로세서 환경에서 네트워크 트래픽이 멀티 프로세서에 의해 분산 처리되어 고속으로 처리되는 기술을 제공하였다. 그러나, RSS 기술은 가상화 환경에서는 적용되기 어려운 문제점이 있다.
가상화 환경에서 RSS의 문제점을 해결하기 위한 기술이 가상 머신 큐(VMQ: Virtual Machine Queue) 기술이다. VMQ 기술에서는 NIC 내부에 가상 머신 멀티 큐를 생성한 후, 각각의 가상 머신 멀티 큐를 호스트 내의 프로세서에 할당하는 방법을 사용하여 가상화 환경에서도 네트워크 트래픽에 대해 멀티 프로세서에 의한 분산 처리가 가능하여 고속 트래픽 처리가 가능하게 하였다.
예를 들어, 서버 시스템은 가상 머신 큐(VMQ)를 설정하고 해당 가상 머신 큐를 처리할 프로세서(LP)를 할당한다. NIC을 통해 서버로 입력되는 패킷을 수신하여 L2 정보를 기반으로 분류하여, 해당 패킷을 가상 머신 큐(VMQ)로 보낸다. 하이퍼바이저에서는 해당 가상 머신 큐를 처리하는 프로세서가 해당 가상 머신 큐에 들어온 패킷을 처리하여 L2 가상 스위치를 통하여 가상 머신(VM)으로 전달하고, 하이퍼바이저가 생성한 해당 가상 머신은 수신된 패킷을 처리한다. 그러나, VMQ 기술은 가상 머신 멀티 큐를 정적으로 할당하기 때문에, 트래픽 폭주가 발생하는 여러 개의 큐에 대해 너무 적은 프로세서 자원이 할당될 수도 있고, 트래픽을 거의 사용하지 않는 적은 수의 큐에 대해 너무 많은 프로세서 자원에 할당되는 문제가 발생할 수도 있는 문제점이 있다.
미국특허공개번호 US20130239119A1
미국특허등록번호 US7765405B2
따라서, 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은, 가상 머신 멀티 큐와 해당 멀티 큐를 처리하는 프로세서를 가상 머신이 속해있는 테넌트 별로 분류하고, 각각의 테넌트 별로 네트워크와 프로세서의 총 사용량에 기반하여 해당 테넌트에 속한 가상 머신 멀티 큐를 해당 테넌트에 속한 멀티 프로세서에 동적으로 할당하여, 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공하는, 테넌트 기반의 동적 프로세서 할당 장치 및 방법을 제공하는 데 있다.
먼저, 본 발명의 특징을 요약하면, 상기의 목적을 달성하기 위한 본 발명의일면에 따른 네트워크 가상화 장치는, 복수의 가상 머신 큐를 갖는 네트워크 인터페이스 카드; 복수의 로지컬 프로세서와 가상 스위치를 이용하여 상기 네트워크 인터페이스 카드의 가상 머신 큐의 패킷을 가상 머신으로 전달하기 위한 스위칭을 수행하는 하이퍼바이저; 및 상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 생성한 테넌트별 하나 이상의 가상 머신을 포함하고, 상기 네트워크 인터페이스 카드는 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 하나 이상의 가상 머신 큐로 패킷을 전달하는 분류기를 포함하며, 상기 분류기는 상기 분류기는 하나 이상의 가상 머신 큐에 동일한 테넌트별로 할당한 하나 이상의 로지컬 프로세서로 패킷이 전달되도록 제어할 수 있다.
상기 분류기는 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리할 수 있다.
상기 분류기는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별할 수 있다.
상기 분류기는 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시킬 수 있다.
상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당할 수 있다.
상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 분류기는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당할 수 있다.
상기 하이퍼바이저는 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성할 수 있다.
상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달할 수 있다.
그리고, 본 발명의 다른 일면에 따른 클라우드 서버 시스템에서 네트워크 인터페이스 카드로부터 패킷을 수신하여 가상화를 위한 하이퍼바이저가 생성하는 하나 이상의 가상 머신으로 패킷을 전달하기 위한 네트워크 가상화 방법은, (A)상기 하이퍼바이저가 클라우드 OS로부터 수신한 테넌트 정보에 대하여 테넌트별 하나 이상의 가상 머신을 생성하는 단계; (B)상기 네트워크 인터페이스 카드가 상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하여 해당 테넌트에 속한 하나 이상의 가상 머신 큐로 패킷을 전달하는 단계; (C)상기 네트워크 인터페이스 카드에서, 어느 테넌트에 속한 가상 머신 큐가 상기 하이퍼바이저의 복수의 로지컬 프로세서 중 동일한 테넌트에 속한 하나 이상의 로지컬 프로세서에 할당되도록 매핑을 제한하여 패킷의 전달을 제어하는 단계; 및 (D)패킷을 전달 받은 로지컬 프로세서에서 상기 하이퍼바이저의 가상 스위치를 통해 상기 동일한 테넌트에 속한 하나 이상의 가상 머신으로 패킷을 전달하는 단계를 포함한다.
상기 네트워크 가상화 방법은, 상기 네트워크 인터페이스 카드에서 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 단계를 더 포함할 수 있다.
(B) 단계에서, 상기 네트워크 인터페이스 카드는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별할 수 있다.
상기 네트워크 가상화 방법은, 상기 네트워크 인터페이스 카드에서 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 단계를 더 포함할 수 있다.
상기 트래픽 처리량이 상한 임계치 이상인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당할 수 있다.
상기 트래픽 처리량이 하한 임계치 이하인 로지컬 프로세서의 발생에 대하여, 상기 네트워크 인터페이스 카드는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당할 수 있다.
상기 하이퍼바이저는 상기 하나 이상의 가상 머신으로서 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성할 수 있다.
(D) 단계에서, 상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달할 수 있다.
상술한 바와 같이 본 발명의 테넌트 기반의 동적 프로세서 할당 장치 및 그 방법에 따르면, 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 테넌트 기반의 동적 프로세서 할당을 위한 클라우드 서버 시스템에 적용을 위한 T-DVMQ(Tenant-based Dynamic Virtual Machine Queue)의 구조의 네트워크 가상화 장치를 설명하기 위한 도면이다.
도 2는 도 1의 네트워크 인터페이스 카드(NIC)가 관리하는 테넌트 정보와 테넌트별 가상 머신 정보에 대한 테이블의 예시이다.
도 3은 도 1의 테넌트 기반의 네트워크 가상화 장치에서 동적 VMQ/LP 할당 변경 전에 대한 설명을 위한 참조도면이다.
도 4는 도 1의 테넌트 기반의 네트워크 가상화 장치에서 동적 VMQ/LP 할당 변경 후에 대한 설명을 위한 참조도면이다.
도 5는 도 1의 테넌트 기반의 네트워크 가상화 장치에서 테넌트 기반의 정적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
도 6은 도 1의 테넌트 기반의 네트워크 가상화 장치에서 테넌트 기반의 동적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
이하에서는 첨부된 도면들을 참조하여 본 발명에 대해서 자세히 설명한다. 이때, 각각의 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타낸다. 또한, 이미 공지된 기능 및/또는 구성에 대한 상세한 설명은 생략한다. 이하에 개시된 내용은, 다양한 실시 예에 따른 동작을 이해하는데 필요한 부분이 중점적으로 설명하며, 그 설명의 요지를 흐릴 수 있는 요소들에 대한 설명은 생략한다. 또한 도면의 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시될 수 있다. 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니며, 따라서 각각의 도면에 그려진 구성요소들의 상대적인 크기나 간격에 의해 여기에 기재되는 내용들이 제한되는 것은 아니다.
먼저, 클라우드 서버 시스템에 적용되는 네트워크 가상화(Network Virtualization)는 동일 테넌트에 속한 가상 머신들의 네트워크 트래픽이 다른 테넌트에 속한 네트워크 트래픽에 의해 영향을 받지 않도록 보장되어야 한다.
기존에 가상 머신 큐(VMQ)의 정적 할당 문제를 해결하기 위하여 동적으로(Dynamic) VMQ를 할당하는 기술(DVMQ)이 시도되고 있다. DVMQ 기술은 네트워크 트래픽 량과 프로세서의 총 사용량에 기반하여 대응되는 가상 머신 큐를 해당 멀티 프로세서에 동적으로 할당하는 방법이다. 네트워크 트래픽의 량 또는 프로세서의 총 사용량이 설정된 최고 임계치 값을 초과하면, 해당 프로세서에 할당한 멀티 머신 큐를 동적으로 재할당하여 처리한다. 네트워크 트래픽의 량 또는 프로세서의 총 사용량이 설정된 최저 임계치 값 아래로 내려가면, 해당 프로세서에 할당한 멀티 머신 큐를 동적으로 재할당하여 해당 프로세서를 할당에서 제거함으로써, 네트워크 트래픽처리 성능과 전력 소모량을 최적화 한다.
본 발명의 클라우드 서버 시스템에 적용되는 네트워크 가상화에서도 DVMQ 기술을 적용하여 멀티 프로세서 환경에서 네트워크 처리 성능 및 전력 소모량을 최적화하고자 한다. 다만, 기존의 DVMQ 기술은 테넌트 측 입장에 대한 고려가 미흡한 실정이므로, 본 발명에서는 동일 테넌트에 속한 가상 머신 들의 네트워크 트래픽 처리가 다른 테넌트에 속한 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공하고자 하였다.
도 1은 본 발명의 일 실시예에 따른 테넌트 기반의 동적 프로세서 할당을 위한 클라우드 서버 시스템에 적용을 위한 T-DVMQ(Tenant-based Dynamic Virtual Machine Queue)의 구조의 네트워크 가상화 장치(100)를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 테넌트 기반의 네트워크 가상화 장치(100)는, 네트워크 인터페이스 카드(NIC, Network Interface Card)(110), 하이퍼바이저(hypervisor)(120), 가상 머신부(Virtual Machine Unit)(130), 및 클라우드 OS(Operating System) 또는 제어기(이하 '클라우드 OS'라 함)(150)를 포함한다.
이와 같은 네트워크 가상화 장치(100)의 각부 구성 요소들은 하드웨어(예, 반도체 프로세서 등), 소프트웨어, 또는 이들의 결합으로 구현될 수 있으며, 여기서 가상화는 소프트웨어에 의한 처리로 주요 기능을 수행하는 것을 의미한다. 하기하는 바와 같이 가상 머신부(130)의 가상 머신들(VMs, VM1~VM5)은 클라우드 OS(150)의 제어에 따라 하이퍼바이저(120)가 생성(또는 점유를 할당)하며, 각각의 가상 머신(VM)은 가상화된 하드웨어로서, 예를 들어, 물리적인 CPU(Control Processing Unit)를 대신하여 데이터를 처리하기 위한 가상화된 CPU일 수 있고 각각의 서로 다른 운영체계(OS, Operating System)로 동작하며 운영을 위하여 시스템에 포함된 메모리의 일부 영역을 각각 점유할 수 있다. 각각의 가상 머신(VM)은 하이퍼바이저(120) 또는 다른 가상 머신과의 인터페이싱을 위한 가상 네트워크 인터페이스 카드(vNIC1~vNIC5)를 포함한다.
예를 들어, 클라우드 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)를 포함한다.
네트워크 인터페이스 카드(NIC)(110)는 MAC/PHY(Media Access Control & PHYsical layer) 처리기(111), L2(Layer 2) 분류기(classifier/sorter)(112), 가상 머신 큐들(VMQs, VMQ1 ~ VMQ5)로 구성된다.
MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소에 대한 일치 여부를 판단하여 패킷을 수신한다. L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, A, B,..)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달하여 적재시킨다. 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP(Internet Protocol) 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소 정보)에 따라 테넌트(예, A, B,..)를 식별할 수도 있다.
이와 같이 본 발명에서는 테넌트 정보(예, A, B,..)에 의해 구분된 테넌트별로 해당 패킷을 처리할 가상 머신들(VM1~VM3/VM4~VM5/..)이 미리 지정되어 생성되며, 테넌트별로 구분된 하나 이상의 가상 머신(VM)에 대응된 하이퍼바이저(120)의 하나 이상의 로지컬 프로세서(LP)과, 네트워크 인터페이스 카드(NIC)(110)의 하나 이상의 가상 머신 큐(VMQ)가 지정되고 할당되어 운영된다.
다만, L2 분류기(112)는 도 2과 같이 하이퍼바이저(120)로부터 수신한 테넌트 정보(예, A, B,..)와 테넌트별 가상 머신 정보(VM1*~VM3*/VM4*~VM5*/..)(예, 가상 머신 MAC 주소, 또는 IP 주소 정보)에 대한 테이블(예, 대응된 가상 머신 큐 정보 포함 가능)을 소정의 메모리에 저장 관리하고, 이를 기초로 수신된 패킷을 분류해 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 전달하되, 하기하는 바와 같이 시스템의 소정의 제어 신호에 따라 VMQ/LP 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하여 가상 머신 큐(VMQ)의 패킷이 해당 로지컬 프로세서(LP)로 전달되도록 제어할 수 있다. 도 2와 같이, 예를 들어, 하나의 테넌트에 속한 가상 머신 정보는 복수개 일 수 있으며, L2 분류기(112)는 가상 머신 정보에 대응되고 해당 테넌트에 속한 하나 이상의 가상 머신 큐(VMQ)로 패킷을 전달할 수 있다.
다만, 정적 할당의 경우에 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) 간의 매핑 관계를 유지한다.
다만, 로지컬 프로세서(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으로 전달할 수 있다.
또한, 동적 할당의 경우에 L2 분류기(112)는 위와 같은 동일한 테넌트에 속한 복수의 VMQ에 대하여 해당 테넌트에 속한, 동작중인 하나 이상의 로지컬 프로세서(LP)에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)을 실시간 반영하여 로지컬 프로세서(LP)의 사용 개수를 늘리거나(확산 프로세스) 감축시킬(수축 프로세스) 수 있다.
본 발명에서 각각의 테넌트 내에서 가상 머신 큐(VMQ)와 로지컬 프로세서(LP)를 동적으로 할당하는 방법이 기존 DVMQ 방식과 유사할 수 있지만, 본 발명에서는 서로 다른 테넌트 간의 간섭 현상을 제거하여 네트워크 가상화를 지원하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 로지컬 프로세서(LP) 간에만 매핑이 이루어져 패킷을 전달하는 방식은 기존의 DVMQ 방식과 다르다. 이와 같은 본 발명의 테넌트 기반의 동적 프로세서 할당 방식에 따라 동일 테넌트에 속한 가상 머신들(VMs)의 네트워크 트래픽 처리가 다른 테넌트에 속한 VMQ 또는 LP에서의 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있게 된다.
아래 [표 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에 각각 할당된 예이다.
[표 1] VMQ/LP 할당 테이블
Figure 112014056577391-pat00001
도 3은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 동적 VMQ/LP 할당 변경 전에 대한 설명을 위한 참조도면이다.
NIC(110)의 L2 분류기(112)는 도 3와 같이 VMQ1, VMQ2. VMQ3에 대한 패킷 트래픽이 증가하여, 동작중인 로지컬 프로세서 LP1에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 상한 임계치에 도달하는지 여부를 판단하고, 상한 임계치 이상이면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 확산 프로세스(spreading process)를 수행하여 도 4와 같이 동일 테넌트에 속한 로지컬 프로세서 LP2가 추가적으로 동작하도록 제어할 수 있다. 이때, 네트워크 가상화 기능을 제공하기 위하여, L2 분류기(112)는 아래 [표 2]와 같이 VMQ/LP 할당 테이블을 동적으로 변경할 때 동일한 테넌트에 속한 VMQ들이 해당 테넌트에 속한 로지컬 프로세서들에만 매핑되도록 제한하여 트래픽을 분산시킨다.
이와 같은 테넌트 기반의 DVMQ 확산 프로세스(spreading process)를 수행 결과, VM1, VM2, VM3에 대한 VMQ/LP 할당 테이블에 대한 변경이 발생되어 시스템이 전체적으로 더 나은 성능을 가지도록 설정된다. 아래 [표 2]에서는 VMQ/LP 할당 테이블에 대한 변경 일 실시 예로서 가상 머신 큐 VMQ1, VMQ3의 패킷이 로지컬 프로세서 LP1으로 전달되고, 가상 머신 큐 VMQ2의 패킷은 프로세서 LP2로 전달되도록 할당한 예시를 나타낸다. 다만 이와 같은 예시에 한정되지 않으며 동일한 테넌트에 속한 복수의 로지컬 프로세서가 각각 해당 테넌트에 속한 하나 이상의 가상 머신 큐와 연동하여 패킷을 전달받을 수 있도록 할당되는 모든 경우가 가능하다.
마찬가지로 동작중인 로지컬 프로세서 LP1, LP2 모두에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 상한 임계치에 도달하면, 위와 같은 확산 프로세스(spreading process)가 수행되어, 동일 테넌트에 속한 로지컬 프로세서 LP3가 더 추가적으로 동작하도록 제어할 수 있다.
[표 2] VMQ/LP 할당 테이블
Figure 112014056577391-pat00002
한편, 위와 같은 예에서, 테넌트 A에 속한 VMQ에는 VMQ1, VMQ2, VMQ3이 있고, 테넌트 A에 속한 LP에는 LP1, LP2, LP3가 있다. 테넌트 B에 속한 VMQ에는 VMQ4, VMQ5이 있고, 테넌트 B에 속한 LP에는 LP4, LP5가 있다. 본 발명에서는 서로 다른 테넌트 간의 간섭 현상을 제거하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 로지컬 프로세서로의 매핑으로 제한한다.
이때, 도 4와 같이 [표 2]의 VMQ/LP 할당 테이블이 적용된 상태에서, VMQ2로의 트래픽이 감소하여, 로지컬 프로세서 LP2에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)이 미리 정한 하위 임계치 이하가 되는 상황이 발생하면, NIC(110)의 L2 분류기(112)는 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행한다. 이때에도 네트워크 가상화 기능을 제공하기 위하여, VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 해당 테넌트에 속한 프로세서 매핑으로 제한한다.
이와 같은 테넌트 기반의 수축 프로세서(coalescing process)를 수행 결과, VM1, VM2. VM3에 대한 VMQ/LP 할당 테이블이 [표 1]과 같이 변경이 발생되어 시스템이 전체적으로 더 낮은 전력 소모를 가지도록 설정된다. [표 1]에서는 VMQ/LP 할당 테이블이 변경된 일예로서 동작중인 로지컬 프로세서 LP1에 가상 머신 큐 VMQ1, VMQ2, VMQ3 모두가 할당되었고, LP2 프로세서는 아이들(Idle) 상태로 변경된다. 이와 같이 L2 분류기(112)가 LP2 로지컬 프로세서를 아이들 상태로 제어하고, 아이들 상태로 변경된 해당 로지컬 프로세서 LP2에 할당되었던 가상 머신 큐 VMQ2를 동작 중인 다른 로지컬 프로세서 LP1에 할당함으로써, 시스템은 도 1와 같은 상태로 돌아온다.
도 5은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 테넌트 기반의 정적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
먼저, 예를 들어, 클라우드 OS(150)는 클라우드 서버 시스템에 가입된 새로운 테넌트에 대한 테넌트 정보(예, 도 1의 Tenant A)를 생성하여 하이퍼바이저(120)로 통보할 수 있다(S610).
이에 따라 하이퍼바이저(120)(예, 하이퍼바이저(120)의 생성부)는 테넌트 정보(예, A)에 대응되는 각각의 테넌트별 가상 머신들(예, 도 1의 VM1~VM3)을 생성할 수 있다(S620). 이때 테넌트의 가입 조건 등에 따라 1 또는 2 이상의 가상 머신들이 생성된다.
하이퍼바이저(120)는 이와 같은 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(예, 테넌트별로 대응되어 지정된 가상 머신들(VM1~VM3)에 대한 식별정보 VM1*~VM3*)를 네트워크 인터페이스 카드(NIC)(110)로 전달한다(S630). 가상 머신들(VM1~VM3)에 대한 식별정보(VM1*~VM3*)는 가상 머신의 MAC 주소, 또는 IP 주소 정보일 수 있다.
이에 따라 네트워크 인터페이스 카드(NIC)(110)의 MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소(또는 IP 주소)에 대한 일치 여부를 판단하여 패킷을 수신하며, L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, 도 1의 A)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달한다(S640). 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소)에 따라 테넌트(예, 도 1의 A)를 식별할 수도 있다.
이때 L2 분류기(112)는 가상 머신 큐를 정적으로 할당함에 있어서, 동일 테넌트 A에 속하는 가상 머신 큐(VMQ1, VMQ2, VMQ3)가 동일한 테넌트에 속한 하나 이상의 미리 지정된 로지컬 프로세서(예, 도 1의 LP1)에 할당되도록 설정할 수 있다(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로 패킷을 전달하는 것도 가능하다.
도 6은 도 1의 테넌트 기반의 네트워크 가상화 장치(100)에서 테넌트 기반의 동적 프로세서 할당에 대한 일 실시예를 설명하기 위한 흐름도이다.
먼저, 예를 들어, 클라우드 OS(150)는 클라우드 서버 시스템에 가입된 새로운 테넌트에 대한 테넌트 정보(예, 도 1의 Tenant A)를 생성하여 하이퍼바이저(120)로 통보할 수 있다(S710).
이에 따라 하이퍼바이저(120)(예, 하이퍼바이저(120)의 생성부)는 테넌트 정보(예, A)에 대응되는 각각의 테넌트별 가상 머신들(예, 도 1의 VM1~VM3)을 생성할 수 있다(S720). 이때 테넌트의 가입 조건 등에 따라 1 또는 2 이상의 가상 머신들이 생성된다.
하이퍼바이저(120)는 이와 같은 테넌트 정보(예, 도 1의 A)와 테넌트별 가상 머신 정보(예, 테넌트별로 대응되어 지정된 가상 머신들(VM1~VM3)에 대한 식별정보 VM1*~VM3*)를 네트워크 인터페이스 카드(NIC)(110)로 전달한다(S730). 가상 머신들(VM1~VM3)에 대한 식별정보(VM1*~VM3*)는 가상 머신의 MAC 주소, 또는 IP 주소 정보일 수 있다.
이에 따라 네트워크 인터페이스 카드(NIC)(110)의 MAC/PHY 처리기(111)는 외부로부터 수신되는 패킷의 목적지 MAC 주소에 대한 일치 여부를 판단하여 패킷을 수신하며, L2 분류기(112)는 수신된 패킷의 L2 정보(예, 가상 머신의 MAC 주소)를 기반으로 테넌트(예, 도 1의 A)를 식별하고 테넌트별로 패킷을 분류해, 분류된 패킷을 구분된 해당 테넌트에 속한 가상 머신 큐(VMQ)로 전달한다(S740). 경우에 따라서는 L2 분류기(112)는 수신된 패킷을 파싱하여 IP 정보(예, 소스 IP 주소, 목적지 IP 주소, 프로토콜, 소스 포트, 목적지 포트)를 추출하고 그에 포함된 테넌트 식별 정보(예, 가상 머신의 IP 주소)에 따라 테넌트(예, 도 1의 A)를 식별할 수도 있다.
이때 L2 분류기(112)는 가상 머신 큐를 정적 할당함에 있어서, 동일 테넌트 A에 속하는 가상 머신 큐(VMQ1, VMQ2, VMQ3)가 동일한 테넌트에 속한 하나 이상의 미리 지정된 로지컬 프로세서(예, 도 1의 LP1)에 할당되도록 설정할 수 있다(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로 패킷을 전달하는 것도 가능하다.
다만, 시스템 상의 클라우드 OS(150) 등 제어기에서 소정의 제어 신호에 따라 L2 분류기(112)는 VMQ/LP의 정적 할당 또는 동적 할당 간의 변경이 가능하며, 이에 따른 VMQ/LP 테이블을 정적으로 또는 동적으로 메모리에 관리하여 가상 머신 큐(VMQ)의 패킷이 해당 로지컬 프로세서로 전달되도록 제어할 수 있다.
동적 할당의 경우에 L2 분류기(112)는 위와 같은 동일한 테넌트에 속한 복수의 VMQ에 대하여 해당 테넌트에 속한, 동작중인 하나 이상의 로지컬 프로세서(LP)에서의 트래픽 처리량(또는 로지컬 프로세서 사용량)을 실시간 반영하여 로지컬 프로세서(LP)의 사용 개수를 늘리거나(확산 프로세스) 감축시킬(수축 프로세스) 수 있다(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들이 해당 테넌트에 속한 로지컬 프로세서들에만 매핑되도록 제한하여 트래픽을 분산시킨다.
또한, 만약 트래픽 처리량(또는 로지컬 프로세서 사용량)이 소정의 하위 임계치 이하가 되는 상황이 발생하면(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와 해당 테넌트에 속한 프로세서 매핑으로 제한한다.
이와 같이 테넌트 기반의 DVMQ 수축 프로세서(coalescing process)를 수행 결과, VM1, VM2. VM3에 대한 VMQ/LP 할당 테이블이 [표 1]과 같이 변경이 발생되어 시스템이 전체적으로 더 낮은 전력 소모를 가지도록 설정된다. [표 1]에서는 VMQ/LP 할당 테이블이 변경된 일예로서 프로세서 LP1에 가상 머신 큐 VMQ1, VMQ2, VMQ2, VMQ3 모두가 할당되었고, LP2 프로세서는 아이들(Idle) 상태로 들어간다. 이 경우, 시스템은 도 1와 같은 상태로 돌아온다.
이와 같이 본 발명의 테넌트 기반의 네트워크 가상화 장치(100)에서는 서로 다른 테넌트 간의 간섭 현상을 제거하여 네트워크 가상화를 지원하기 위해, 이러한 VMQ/LP 할당 테이블을 동적으로 변경할 때, 동일한 테넌트에 속한 VMQ와 로지컬 프로세서(LP) 간에만 매핑이 이루어져 패킷을 전달하는 방식은 기존의 DVMQ 방식과 다르다. 이와 같은 본 발명의 테넌트 기반의 동적 프로세서 할당 방식에 따라 동일 테넌트에 속한 가상 머신들(VMs)의 네트워크 트래픽 처리가 다른 테넌트에 속한 VMQ 또는 LP에서의 네트워크 트래픽의 폭주로 인해 영향을 받지 않도록 보장하는 네트워크 가상화를 제공할 수 있게 된다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
가상 머신 멀티 큐(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)

Claims (16)

  1. 복수의 가상 머신 큐를 갖는 네트워크 인터페이스 카드;
    복수의 로지컬 프로세서와 가상 스위치를 이용하여 상기 네트워크 인터페이스 카드의 가상 머신 큐의 패킷을 가상 머신으로 전달하기 위한 스위칭을 수행하는 하이퍼바이저; 및
    상기 하이퍼바이저에 의해 생성되고, 클라우드 OS로부터 수신한 테넌트 정보에 대응하는 테넌트별 하나 이상의 가상 머신을 포함하고,
    상기 네트워크 인터페이스 카드는,
    상기 하이퍼바이저로부터 수신한 테넌트 정보와 테넌트별 가상 머신 정보에 기초하여, 수신되는 패킷의 테넌트를 식별하고, 하나 이상의 가상 머신 큐로 식별된 패킷을 전달하는 분류기를 포함하며,
    상기 분류기는,
    상기 하나 이상의 가상 머신 큐에 존재하는 패킷이, 상기 하나 이상의 가상 머신 큐와 동일한 테넌트에 속하는 적어도 하나의 로지컬 프로세서로 전달되도록 제어하는, 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  2. 제1항에 있어서,
    상기 분류기는 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  3. 제1항에 있어서,
    상기 분류기는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  4. 제1항에 있어서,
    상기 분류기는 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  5. 제1항에 있어서,
    상기 로지컬 프로세서의 트래픽 처리량이 상한 임계치 이상일 경우, 상기 분류기는 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당하는, 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  6. 제1항에 있어서,
    상기 로지컬 프로세서의 트래픽 처리량이 하한 임계치 이하일 경우, 상기 분류기는 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들(Idle) 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당하는, 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  7. 제1항에 있어서,
    상기 하이퍼바이저는 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  8. 제1항에 있어서,
    상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달하는 것을 특징으로 하는 클라우드 서버 시스템을 위한 네트워크 가상화 장치.
  9. 클라우드 서버 시스템에서 네트워크 인터페이스 카드로부터 수신된 패킷을, 하이퍼바이저에 의해 생성된 하나 이상의 가상 머신으로 전달하기 위한 네트워크 가상화 방법에 있어서,
    (A)상기 하이퍼바이저가, 클라우드 OS로부터 수신한 테넌트 정보에 대하여 테넌트별 하나 이상의 가상 머신을 생성하는 단계;
    (B)상기 네트워크 인터페이스 카드가, 상기 하이퍼바이저로부터 수신한 테넌트 정보 및 테넌트별 가상 머신 정보를 기초로 패킷의 테넌트를 식별하여, 해당 테넌트에 속하는 하나 이상의 가상 머신 큐로 패킷을 전달하는 단계;
    (C)상기 하나 이상의 가상 머신 큐가, 자신과 동일한 테넌트에 속하는 상기 하이퍼바이저의 복수의 로지컬 프로세서 중 어느 하나로 패킷을 전달하는 단계; 및
    (D)상기 하이퍼바이저의 가상 스위치에 의해, 상기 로지컬 프로세서가 자신과 동일한 테넌트에 속하는 복수의 가상 머신 중 어느 하나로 패킷을 전달하는 단계를 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
  10. 제9항에 있어서,
    상기 네트워크 인터페이스 카드에서 소정의 제어 신호에 따라 가상 머신 큐와 로지컬 프로세스 할당 테이블을 정적으로 또는 동적으로 메모리에 관리하는 단계
    를 더 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
  11. 제9항에 있어서,
    (B) 단계에서, 상기 네트워크 인터페이스 카드는 수신되는 패킷의 L2 정보 또는 IP 정보를 기초로 테넌트를 식별하는 것을 특징으로 하는 네트워크 가상화 방법.
  12. 제9항에 있어서,
    상기 네트워크 인터페이스 카드에서 동적 할당 방식에 따라 동일한 테넌트에 속한 동작 중인 하나 이상의 로지컬 프로세서의 트래픽 처리량을 실시간 반영하여 로지컬 프로세서의 사용 개수를 증가시키거나 감소시키는 단계
    를 더 포함하는 것을 특징으로 하는 네트워크 가상화 방법.
  13. 제9항에 있어서,
    상기 로지컬 프로세서의 트래픽 처리량이 상한 임계치 이상일 경우, 상기 네트워크 인터페이스 카드는, 확산 프로세스를 수행하여 추가 로지컬 프로세서를 동작시키고, 해당 동일 테넌트에 속한 어느 하나 이상의 가상 머신 큐를 상기 추가 로지컬 프로세서에 할당하는, 네트워크 가상화 방법.
  14. 제9항에 있어서,
    상기 로지컬 프로세서의 트래픽 처리량이 하한 임계치 이하일 경우, 상기 네트워크 인터페이스 카드는, 수축 프로세스를 수행하여 해당 로지컬 프로세서를 아이들 상태로 제어하고, 아이들(Idle) 상태로 변경된 상기 로지컬 프로세서에 할당되었던 가상 머신 큐를 동작 중인 다른 로지컬 프로세서에 할당하는, 네트워크 가상화 방법.
  15. 제9항에 있어서,
    상기 하이퍼바이저는 상기 하나 이상의 가상 머신으로서 상기 테넌트 정보에 대하여 서로 다른 운영체계로 동작하는 가상화된 CPU로 동작하는 복수의 가상 머신을 생성하는 것을 특징으로 하는 네트워크 가상화 방법.
  16. 제9항에 있어서,
    (D) 단계에서, 상기 로지컬 프로세서는 하나 이상의 가상 머신 큐로부터 수신한 패킷을 처리하여 상기 가상 스위치를 통해 해당 가상 머신 큐에 대응된 가상 머신으로 패킷을 전달하는 것을 특징으로 하는 네트워크 가상화 방법.
KR1020140073780A 2014-03-31 2014-06-17 테넌트 기반의 동적 프로세서 할당 장치 및 방법 KR102126213B1 (ko)

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
KR20140037778 2014-03-31
KR1020140037778 2014-03-31

Publications (2)

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

Family

ID=54346651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140073780A KR102126213B1 (ko) 2014-03-31 2014-06-17 테넌트 기반의 동적 프로세서 할당 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102126213B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102668521B1 (ko) 2016-12-01 2024-05-23 한국전자통신연구원 가상 코어 자동 스케일링을 지원하는 병렬 처리 방법 및 이를 위한 장치
KR102179769B1 (ko) * 2019-10-30 2020-11-17 고려대학교 산학협력단 다중 큐를 지원하는 네트워크 정책 적용 방법, 이를 수행하기 위한 기록 매체 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (3)

* 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
EP2804350B1 (en) * 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US8984526B2 (en) 2012-03-09 2015-03-17 Microsoft Technology Licensing, Llc Dynamic processor mapping for virtual machine network traffic queues

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
KR20150113783A (ko) 2015-10-08

Similar Documents

Publication Publication Date Title
US10554485B2 (en) Method for configuring network, network system, and device
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
US8208396B2 (en) Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
JP5689526B2 (ja) マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ
JP5837683B2 (ja) ネットワークのセグメント化によるネイティブクラウドコンピューティング
US8954704B2 (en) Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
WO2015196931A1 (zh) 基于磁盘io的虚拟资源分配方法及装置
US8937940B2 (en) Optimized virtual function translation entry memory caching
US20170024224A1 (en) Dynamic snapshots for sharing network boot volumes
US20130219391A1 (en) Server and method for deploying virtual machines in network cluster
KR102204670B1 (ko) 프록시 기반 멀티스레딩 메시지 전달 통신을 위한 기술
US20180218007A1 (en) Fast network performance in containerized environments for network function virtualization
US10949313B2 (en) Automatic failover permissions
US9594584B2 (en) Apparatus and method for mapping of tenant based dynamic processor
US20180246772A1 (en) Method and apparatus for allocating a virtual resource in network functions virtualization network
KR102126213B1 (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법
EP4004751B1 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
US9619269B2 (en) Device and method for dynamically mapping processor based on tenant
CN112751717B (zh) 一种业务流量的管理***以及方法
KR20160148898A (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법
US12032859B2 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
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