KR102145183B1 - 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법 - Google Patents

멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법 Download PDF

Info

Publication number
KR102145183B1
KR102145183B1 KR1020180172401A KR20180172401A KR102145183B1 KR 102145183 B1 KR102145183 B1 KR 102145183B1 KR 1020180172401 A KR1020180172401 A KR 1020180172401A KR 20180172401 A KR20180172401 A KR 20180172401A KR 102145183 B1 KR102145183 B1 KR 102145183B1
Authority
KR
South Korea
Prior art keywords
thread
virtual machine
core
qos
module
Prior art date
Application number
KR1020180172401A
Other languages
English (en)
Other versions
KR20200082133A (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 KR1020180172401A priority Critical patent/KR102145183B1/ko
Publication of KR20200082133A publication Critical patent/KR20200082133A/ko
Application granted granted Critical
Publication of KR102145183B1 publication Critical patent/KR102145183B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신의 네트워크 자원에 대한 QoS를 보장하는 데이터 전송 장치 및 방법에 관한 것으로서, 멀티코어 기반 서버에 두 개 이상의 가상머신이 운영되고 있는 환경에서 멀티코어 기반 네트워크 인터페이스 카드를 사용하여 데이터 전송 및 처리 알고리즘을 적용 하는 경우, 각 가상머신이 협약 맺은 코어 자원에 상관없이 트래픽 볼륨에 따라 네트워크 자원을 사용하여, 다른 가상 머신이 네트워크 자원 사용에서 영향을 받는 문제점을 호스트 QoS 모듈, NIC QoS 모듈, 쓰레드 관리 모듈을 추가하여 하이퍼바이저로부터 QoS 정보를 획득하고, QoS 정보를 기반으로 각 가상머신에 대해 동적으로 쓰레드를 할당 하도록 하여, 가상머신의 네트워크 자원에 대한 QoS를 보장 할 수 있는 구조 및 방법을 제공하는 것을 특징으로 하는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법에 관한 것이다.

Description

멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법 {Device and Method for Data Transmission and QoS Guarantee of Virtual Machines in Multicore-based Network Interface Card}
본 발명은 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신의 네트워크 자원에 대한 QoS를 보장하는 데이터 전송 방법에 관한 것으로서, 멀티코어 기반 서버에 두 개 이상의 가상머신이 운영되고 있는 환경에서 멀티코어 기반 네트워크 인터페이스 카드를 사용하여 데이터 전송 알고리즘을 적용 하는 경우, 각 가상머신이 협약 맺은 코어 자원에 상관없이 트래픽 볼륨에 따라 네트워크 자원을 사용하여, 다른 가상머신이 네트워크 자원 사용에서 있어, 영향을 받는 문제점을 해결하는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법에 관한 것이다.
보다 상세하게, 본 발명은 멀티코어 기반 서버에 두 개 이상의 가상화 머신이 운영되는 환경에서 멀티코어 네트워크 전용 프로세서를 사용하는 패킷 처리 및 전송 방법이 적용된 멀티코어 기반 네트워크 인터페이스 카드를 사용하는 경우에 관한 것이다. 패킷 처리 및 전송 방법에 있어, 부하 분산 알고리즘이 적용된 멀티코어 기반 네트워크 인터페이스 카드는 코어 친화도 방식 또는 라운드로빈 방식의 부하 분산 알고리즘을 사용한다. 코어 친화도 방식의 경우 해시값을 사용하여 플로우를 인식하며, 동일한 플로우의 데이터가 입력되는 경우, 같은 코어에서 처리하도록 하여 데이터 처리 및 전송 성능을 증가 시킨다. 라운드로빈 방식의 경우, 멀티코어 기반 네트워크 인터페이스가 가진 코어 자원을 사용하여 플로우에 상관없이 순서대로 분배하여 데이터를 처리 및 전달한다. 하지만, 여러개의 가상머신이 동작하는 서버 환경에서 각 가상 머신이 네트워크 자원을 사용할 때, 협약된 코어 정보에 상관없이 네트워크 자원을 공유하며 사용하고 있으며, 특정 가상머신에서 대량을 트래픽을 이용하게 될 경우, 상대적으로 다른 가상머신의 네트워크 처리 성능에 영향을 주게 된다. 따라서 이 문제를 해결하기 위해, 각 가상머신이 하이퍼바이저와 협약한 자원 할당 정보를 기반으로 최소한의 QoS를 보장을 받을 수 있도록 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법에 관한 것이다.
SDN/NFV, vEPC, IoT의 클라우드화 등 클라우드 기반 솔루션이 늘어남에 따라 데이터센터의 서버는 고성능 가상화 서버의 형태로 변화하고 있다. 클라우드 컴퓨팅 및 SDN/NFV 기술은 트래픽의 증가/감소에 따라 유연한 스케일링을 제공하여 네트워크 자원의 효율적인 관리, 트래픽 분산 및 동적인 경로 설정을 가능하도록 하고 있다. 또한 LTE 이동통신은 EPC를 vEPC(Virtualized EPC)로 클라우드화하고 있으며, IoT는 2020년까지 약 250억 개의 사물이 인터넷으로 연결될 것이라는 전망에 따라, IoT 데이터의 90% 이상이 클라우드화될 것으로 예상되고 있다.
클라우드 컴퓨팅을 위한 고성능 서버에서는 x86기반의 멀티코어 CPU를 사용하여 SDN/NFV 등 클라우드 컴퓨팅 환경을 구현하고 있으며, 이러한 환경에서 고속의 컴퓨팅을 위하여 입력되는 패킷을 서버로 고속 전송하고 서버의 각 CPU 코어로 고속 분산하는 기능을 필요로 한다. 분산 기능을 위해서는 PCI-express 인터페이스를 사용하여 고속으로 입력되는 데이터를 균등 부하분산 방식이나 플로우 기반의 해시 방식으로 전달할 수 있는 네트워크 인터페이스 카드(NIC)와 같은 네트워크 모듈이 필수이다.
일반적인 네트워크 인터페이스 카드는 64바이트 패킷 크기의 10Gbps이상 트래픽 처리가 어려우며, 라운드 로빈 방식이나 해시 방식을 지원하지 않고 단순 전달하여 고속의 트래픽 전달에 한계가 있으므로, 고속의 데이터 전달 및 처리가 필요한 고성능 서버에서는 RSS(Receive Side Scaling) 기술이 적용된 네트워크 인터페이스 카드나 멀티코어 기반 네트워크 인터페이스 카드를 사용하여 시스템을 구성한다.
기존의 고성능 네트워크 인터페이스 카드와 데이터 전달 방법은 고속의 데이터 전달과 공평한 부하 분산만이 고려되었으며, 다수의 가상머신이 실행되는 환경이 고려되지 않아 클라우드 컴퓨팅 환경에 적용하기에는 문제점이 있다.
다수의 가상머신이 실행되는 고성능 클라우드 컴퓨팅 서버 환경에서는 기존의 부하 분산 및 데이터 전달 알고리즘이 적용된 네트워크 인터페이스 카드를 사용할 시, 특정 가상머신이 대부분의 네트워크 자원을 점유하게 되었을 때, 다른 가상머신이 네트워크 자원의 사용에 있어 영향을 받으며, 각 가상머신이 협약한 코어 자원 대비 네트워크 자원에 대한 QoS를 보장 받을 수 없는 단점이 있다.
KR 10-0785812 B1 KR 10-2017-0111455 A
따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로, 기존의 네트워크 인터페이스 카드의 데이터 전달 및 처리는 고속의 데이터 전달과 공평한 부하 분산만이 고려되었으며, 다수의 가상머신이 실행되는 클라우드 컴퓨팅 환경이 고려되지 않아 각 가상머신에서 네트워크 자원을 사용할 때, 협약된 코어 정보에 상관없이 네트워크 자원을 공유하며 사용하여, 특정 가상머신에서 대량을 트래픽을 이용하게 될 경우, 상대적으로 다른 가상머신의 네트워크 처리 성능에 영향을 주게 된다. 따라서 이 문제를 해결하기 위해, 각 가상머신이 하이퍼바이저와 협약한 자원 할당 정보를 기반으로 네트워크 자원 사용에 대한 최소한의 QoS 보장을 받을 수 있도록 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법을 제공함에 있다.
상기의 목적을 이루기 위한 본 발명에 따른 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법은 호스트 QoS 모듈, NIC QoS 모듈, 쓰레드 관리 모듈을 추가하여 QoS 정보를 획득 하고, QoS 정보를 기반으로 각 가상머신에 대해 동적으로 쓰레드를 할당 하도록 하여, 가상머신이 네트워크 자원에 대한 QoS를 보장 할 수 있는 구조 및 방법을 제공하는 것을 특징으로 한다.
가상머신 QoS 보장형 데이터 전송 방법이 실행되는 장치는 SDN/NFV, 클라우드 컴퓨팅을 위한 고성능 멀티코어 서버 및 멀티코어 기반 네트워크 모듈로 데이터센터의 클라우드 컴퓨팅 서버일 수 있으며, 네트워크 인터페이스 카드에만 한정하지 않는다.
가상머신 QoS 보장형 데이터 전송 방법은 고성능 멀티코어 서버에서 동작하는 호스트 QoS 모듈이 하이퍼바이저로부터 각 가상머신이 협약한 코어 할당 정보를 획득하고 멀티코어 기반 네트워크 인터페이스 카드의 NIC QoS 모듈을 통해 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈로 전달하며, 플로우 정보, 코어 정보, 패킷 프로세싱 쓰레드 할당 상태, PCIe 전송 쓰레드 할당 상태를 기반으로 쓰레드 할당 정보를 변경 한 후, 쓰레드 관리 모듈로 전달하여 각 가산머신당 쓰레드 할당 상태를 수정함으로써 가상머신 QoS 보장형 데이터 전송 동작을 할 수 있도록 한다.
데이터 전송에 있어 데이터 전송 알고리즘은 멀티코어 기반 네트워크 인터페이스 카드에 탑재되어, 입력되는 트래픽을 PCI-express 통로를 사용하여 고성능 멀티코어 서버 코어로 데이터를 전달하며, 동작 프로그램의 초기화 설정에 의하여, 균등 데이터 부하 분산 방식으로 동작하거나 해시 값에 의해 분류된 플로우에 따른 코어 친화도 방식으로 동작한다.
이러한 데이터 전송 방법은 SDN/NFV, 클라우드 컴퓨팅을 위한 고성능 멀티코어 서버 및 멀티코어 기반 네트워크 인터페이스 카드에서 동작하여 각 가상머신의 네트워크 자원에 대한 QoS를 제공하면서 데이터 전송 및 부하 분산 기능을 수행한다.
본 발명에 따른 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법은 고성능 멀티코어 서버에 장착되는 가상머신의 종류에 따라 소프트웨어정의 제어기, 침입탐지 및 방지 장치, 분산서비스 공격 방어 장치, 정밀 패킷 분석 장치, 네트워크 중복 제어기 등의 가상머신이 할당받은 네트워크 자원에 대한 QoS를 보장하는 가상 머신 QoS 보장형 데이터 전송 기술로 활용되는 효과를 갖는다.
도 1은 본 발명에 따른 멀티코어 기반 네트워크 인터페이스에서 가상머신 QoS 보장형 데이터 전송 방법 구조도이다.
도 2는 본 발명에 따른 멀티코어 기반 네트워크 인터페이스에서 쓰레드 별 코어 매핑 구조도이다.
도 3은 본 발명에 따른 멀티코어 기반 네트워크 인터페이스에서 가상머신 QoS 보장형 데이터 전송 방법에 대한 부하 분산 알고리즘 순서도이다.
도 4는 본 발명에 따른 멀티코어 기반 네트워크 인터페이스에서 가상머신 QoS 보장형 데이터 전송 방법에 대한 QoS 정보 갱신 알고리즘 순서도이다.
이하에서는, 본 발명의 실시 예에 따른 도면을 참조하여 설명하지만, 이는 본 발명의 더욱 용이한 이해를 위한 것으로, 본 발명의 범주가 그것에 의해 한정되는 것은 아니다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대하여 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "... 부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 구성요소는 다른 구성요소로 직접 상기 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송할 수 있음을 의미한다.
그리고 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
설명에 앞서 본 명세서에는 다수의 양태 및 실시양태가 기술되며, 이들은 단순히 예시적인 것으로서 한정하는 것이 아니다.
본 명세서를 읽은 후에, 숙련자는 다른 양태 및 실시예가 본 발명의 범주로부터 벗어남이 없이 가능함을 이해할 것이다.
이하에서 설명되는 실시양태의 상세 사항을 다루기 전에, 몇몇 용어를 정의하거나 또는 명확히 하기로 한다.
QoS란 Quality of Service의 약자로 사용자 EH는 어플리케이션에 대해 중요도에 따라 서비스 수준을 차등화하여 한정된 WAN 대역폭에서 트래픽과 대역폭을 정책적으로 관리하는 제반 기술 및 개념을 의미한다.
가상 머신(Virtual Machine, VM)은 컴퓨팅 환경을 소프트웨어로 구현한 것으로서, 컴퓨터를 에뮬레이션하는 소프트웨어를 의미한다. 가상머신상에서 운영 체제나 응용 프로그램을 설치 및 실행할 수 있다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성 요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1 내지 도 4를 참조하여 본 발명에 따른 멀티코어 기반 가상머신 QoS 보장형 데이터 전송 장치 및 방법에 대해 상세히 설명하도록 한다.
본 발명에 따른 멀티코어 기반 가상머신 QoS 보장형 데이터 전송 방법은 다양한 응용 서비스를 제공하기 위한 클라우드 컴퓨팅 서버 장비에 사용될 수 있고, 기존 네트워크 인터페이스 카드에 비하여 네트워크 자원 사용에 있어 가상머신의 QoS를 보장할 뿐만 아니라, 대용량의 무손실 부하 분산 및 데이터 전송 기능을 제공할 수 있다.
이러한 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법은 도 1에 도시한 바와 같이 멀티코어 서버(107)와 멀티코어 네트워크 인터페이스 카드(111)로 구성된다.
멀티코어 서버(107)와 멀티코어 기반 네트워크 인터페이스 카드(111)는 도 1에 도시한 바와 같이 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈(100), 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈로부터 1차 데이터를 수신하는 패킷 프로세싱 쓰레드(101), 패킷 프로세싱 쓰레드로부터 PCI-express 통신 통로로 데이터를 전달하기 위한 PCIe 전송 쓰레드(102), 큐 매핑 모듈(103), 각 PCIe 전송 쓰레드(102)와 1:1로 매핑된 패킷 큐로부터 패킷을 가져와서 응용 프로그램을 수행하는 멀티코어 서버(107)의 코어(105), 코어를 할당 받아 사용하는 가상머신(106), 가상머신(106)과 멀티코어 서버(107)의 자원을 할당 및 접근 제어하는 하이퍼바이저(104) 호스트 QoS 모듈(108), NIC QoS 모듈(109), 쓰레드 관리 모듈(110)로 구성된다.
호스트 QoS 모듈(108)은 하이퍼바이저(104)로부터 각 가상머신(105)의 코어(105) 할당 정보를 획득한다. 호스트 QoS 모듈(108)은 NIC QoS 모듈(109)로 코어(105) 할당 정보를 전송하고 NIC QoS 모듈(109)은 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로 가상머신(106)의 코어(105) 할당 정보를 전송한다. 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 수신한 가상머신(106)의 코어(105) 할당 정보를 기반으로 각 가상머신(106)에 할당할 패킷 프로세싱 쓰레드(101)와 PCIe 전송 쓰레드(102)를 계산하고 쓰레드 관리 모듈(110)을 통해 패킷 프로세싱 쓰레드(101)와 PCIe 전송 쓰레드(102)를 설정한다.
상기 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 입력되는 패킷의 플로우 정보를 기반으로 어느 가상머신(105)의 데이터인지 확인하고 해당 가상머신(105)에 할당된 패킷 프로세싱 쓰레드(101)들로 패킷을 전송 한다.
이때, 데이터 전송 방법을 균등부하분산 방식으로 설정하면 입력되는 데이터의 순서에 따라 패킷 프로세싱 쓰레드1, 패킷 프로세싱 쓰레드2의 순서로 패킷을 전달한다.
또한 해시 모드로 설정하면, 입력되는 데이터의 플로우 정보라 불리는 5-tuple 정보, 즉 소스 IP 주소, 목적지 IP 주소, 소스 포트, 목적지 포트, 어플리케이션의 5가지 항목을 추출하여 해시 정보를 생성하며, 생성된 해시 정보를 사용하여 동일 해시 정보를 가지는 데이터는 동일한 쓰레드로 전달한다.
상기 멀티코어 기반 가상머신 QoS 보장형 부하 분산 모듈(100)에 의해 분류된 데이터는 PCIe 전송 쓰레드(102)에 도달하면 멀티코어 서버(107)의 최대 코어(105) 수만큼의 서로 다른 데이터 집단으로 분류되고, 이와 같이 분류된 데이터는 큐 매핑 모듈(103)에 의해 호스트에 있는 해당 큐에 저장되고 큐에 저장된 데이터는 각 큐마다 할당된 코어(105)에 전달된다.
각 가상머신(106)에 설정된 프로그램에 따라 빅데이타를 분석하기 위한 용도나 저장된 데이터로부터 침입탐지, 바이러스, 새로운 공격 유형 등을 분석하여 적용하기 위한 용도로 사용한다.
상기 가상머신 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 가변적인 패킷 프로세싱 쓰레드(101), PCIe 전송 쓰레드(102) 적용이 가능하며, 이러한 쓰레드는 가상머신(106)에 할당된 코어(105) 수와 멀티코어서버(107)의 코어(202) 수에 따라, 적용되는 쓰레드의 수를 달리 할 수 있다.
멀티코어 기반 네트워크 인터페이스 카드에서 동작하는 패킷 프로세싱 쓰레드(101), PCIe 전송 쓰레드(102), NIC QoS 모듈(109), 쓰레드 관리 모듈(110)는 쓰레드로서 각각 특정한 기능을 수행한다. 각각의 쓰레드는 도2에 도식한 바와 같이, 독립적인 멀티코어 기반 네트워크 인터페이스 카드의 코어(400)에 매핑되어 있으며, 병렬 처리 된다.
도 3는 본 발명의 멀티코어 기반 가상머신 QoS 보장형 데이터 전송 방법에 대한 부하 분산 알고리즘을 나타낸다. 패킷이 입력되면(200), 먼저 VM 정보 변경(201) 여부를 판별한다.
가상머신(106)의 자원 할당 정보의 변경이 있을 경우, 패킷 프로세싱 쓰레드, PCIe 전송 쓰레드 할당 정보 변경(203)을 실시한 후, 해시 적용(202)을 판별하고, 가상머신(106)의 자원 할당 정보의 변경이 없을 경우, 바로 해시 적용(202)한다.
해시모드 적용 여부(202)를 판별하고, 해시 모드를 적용하지 않을 경우 설정된 쓰레드로 데이터를 쓰레드별 균등 분배(210)하게 된다.
해시모드를 적용하면, 입력되는 데이터의 플로우를 추출(204)하여, 5-tuple 정보를 수집하게 되며, 5-tuple에 의해 해시를 계산한다(205). 해시 계산에 의해 해당 쓰레드로 전달된 데이터의 쓰레드에 할당된 버퍼가 임계값 이상이 되면(206), 할당된 쓰레드 중 버퍼가 임계값을 넘지 않는 쓰레드가 있는지 확인한다(208). 임계값을 넘지 않는 쓰레드가 존재하면, 할당 받은 쓰레드 중 임계값을 넘지 않은 쓰레드로 패킷을 전달(209)한다. 임계값을 넘지 않는 쓰레드가 없을 경우, 패킷 폐기 한다(211).
쓰레드로 전달된 패킷은 큐 매핑 모듈을 통해 해당 큐로 패킷을 전달(210)한다.
도3에서 해시모드로 설정하고 쓰레드의 버퍼가 임계값 이상되는 경우에도 해당 쓰레드로만 패킷을 전달하도록 설정하면, 데이터 버퍼가 풀이 나는 경우에 손실이 발생하나 다른 쓰레드로 분배는 일어나지 않도록 하여 해시모드를 위배하지 않는다.
도 4는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법에 대한 QoS 정보 갱신 알고리즘이다. 하이퍼바이저(104)에서 가상머신 할당 정보의 변경이 감지(300)되면 시작한다.
하이퍼바이저에서 가상머신 할당 정보 변경이 감지(300)되면 호스트 QoS 모듈로 변경 정보를 전달(301)하고 호스트 QoS 모듈은 변경된 정보를 NIC QoS 모듈로 전달(302)한다.
NIC QoS 모듈은 수신한 변경 정보를 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈로 전송하고 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈은 수신한 정보를 기반으로 가상머신과 쓰레드 매핑 정보를 갱신(303)한다.
매핑 정보 갱신 과정에서 패킷 프로세싱 쓰레드 및 PCIe 전송 쓰레드의 매핑 정보의 변경을 확인(304)하고 정보 변경이 있을 경우, 쓰레드 관리 모듈로 변경 정보를 전달(305)한다.
쓰레드 관리 모듈은 패킷 프로세싱 쓰레드 또는 PCIe 전송 쓰레드로 매핑 정보를 변경을 요청 한다.
이상 본 발명의 실시 예에 따른 도면을 참조하여 설명하였지만, 본 발명이 속한 분야에서 통상의 지식을 가진 자라면 상기 내용을 바탕으로 본 발명의 범주 내에서 다양한 응용 및 변형을 행하는 것이 가능할 것이다.
100: 가상머신 QoS 보장형 부하 분산 모듈
101: 패킷 프로세싱 쓰레드
102: PCIe 전송 쓰레드
103: 큐 매핑 모듈
104: 하이퍼바이저
105: 호스트 서버 코어
106: 가상머신
107: 멀티코어 서버
108: 호스트 QoS 모듈
109: NIC QoS 모듈
110: 쓰레드 관리 모듈
111: 멀티코어 기반 네트워크 인터페이스 카드
300: 멀티코어 기반 네트워크 인터페이스 카드 코어

Claims (6)

  1. 삭제
  2. 멀티코어 서버(107);
    네트워크 인터페이스 카드(111);
    가상머신 QoS 보장형 부하 분산 모듈(100);
    상기 부하 분산 모듈(100)로 부터 데이터를 수신하는 패킷 프로세싱 쓰레드(101);
    상기 패킷 프로세싱 쓰레드(101)로부터 PCI-express 통신 통로로 데이터를 전달하는 PCIe 전송 쓰레드(102) 및
    분류한 데이터를 호스트에 있는 큐에 저장하는 큐 매핑 모듈(103)을 포함하고,
    상기 멀티코어 서버(107)는 상기 PCIe 전송 쓰레드(102)로부터 패킷을 가져와서 응용 프로그램을 수행하는 코어(105)를 포함하고,
    상기 코어(105)를 할당 받아 사용하는 가상머신(106);
    상기 가상머신(106)과 상기 멀티코어 서버(107)의 자원을 할당하고 접근 제어하는 하이퍼바이저(104);
    상기 하이퍼바이저(104)로부터 상기 가상머신(106)의 코어(105) 할당 정보를 획득하는 호스트 QoS 모듈(108);
    상기 호스트 QoS 모듈(108)로부터 상기 할당 정보를 획득하는 NIC QoS 모듈(109) 및
    상기 할당 정보를 기반으로 상기 가상머신(106)에 할당할 상기 패킷 프로세싱 쓰레드(101)와 상기 PCIe 전송 쓰레드(102)를 계산하고 관리하는 쓰레드 관리 모듈(110)을 더 포함하는 것을 특징으로 하는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치를 이용하여 부하 분산 알고리즘을 적용한 가상머신 QoS 보장형 데이터 전송 방법에 있어서,

    패킷이 입력되면(200), VM 정보 변경(201) 여부를 판별하는 단계;
    가상머신(106)의 자원 할당 정보의 변경이 있을 경우, 패킷 프로세싱 쓰레드, PCIe 전송 쓰레드 할당 정보 변경(203)을 실시한 후, 해시모드 적용 여부(202)를 판별하고, 가상머신(106)의 자원 할당 정보의 변경이 없을 경우, 해시모드 적용(202)하는 단계;
    상기 해시모드 적용 여부(202)를 판별하고, 상기 해시모드를 적용하지 않을 경우 설정된 쓰레드로 데이터를 쓰레드별 균등 분배(210)하는 단계;
    상기 해시모드를 적용하면, 입력되는 데이터의 플로우를 추출(204)하여, 5-tuple 정보를 수집하게 되며, 5-tuple에 의해 해시를 계산(205)하는 단계;
    상기 해시 계산(205)에 의해 해당 쓰레드로 전달된 데이터의 쓰레드에 할당된 버퍼가 임계값 이상이 되면(206), 할당된 쓰레드 중 버퍼가 임계값을 넘지 않는 쓰레드가 있는지 확인(208)하는 단계;
    상기 해시 계산(205)에 의해 해당 쓰레드로 전달된 데이터의 쓰레드에 할당된 버퍼가 임계값을 넘지 않는 쓰레드가 존재하면, 할당 받은 쓰레드 중 임계값을 넘지 않은 쓰레드로 패킷을 전달(209)하는 단계;
    상기 해시 계산(205)에 의해 해당 쓰레드로 전달된 데이터의 쓰레드에 할당된 버퍼가 임계값을 넘지 않는 쓰레드가 없을 경우, 패킷 폐기(211)하는 단계:
    상기 쓰레드로 전달된 패킷은 큐 매핑 모듈을 통해 해당 큐로 패킷을 전달(210)하는 단계; 를 포함하는 것을 특징으로 하는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 청구항 2에 있어서,
    상기 쓰레드의 존재 여부를 확인하는 단계는,
    할당 받은 쓰레드 중 임계값을 넘지 않는 쓰레드가 존재할 경우 할당 받은 쓰레드 중 임계값을 넘지 않는 쓰레드로 패킷을 전달하는 단계 및
    할당 받은 쓰레드 중 임계값을 넘지 않는 쓰레드가 존재하지 않을 경우 패킷을 폐기하는 단계를 포함하는 것을 특징으로 하는 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 방법.
KR1020180172401A 2018-12-28 2018-12-28 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법 KR102145183B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180172401A KR102145183B1 (ko) 2018-12-28 2018-12-28 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180172401A KR102145183B1 (ko) 2018-12-28 2018-12-28 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200082133A KR20200082133A (ko) 2020-07-08
KR102145183B1 true KR102145183B1 (ko) 2020-08-18

Family

ID=71600314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180172401A KR102145183B1 (ko) 2018-12-28 2018-12-28 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102145183B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101639797B1 (ko) * 2015-10-16 2016-07-14 주식회사 구버넷 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785812B1 (ko) 2006-12-08 2007-12-13 한국전자통신연구원 단대단 QoS 데이터 전송 경로를 제공하는 방법 및 그장치
KR20170111455A (ko) 2016-03-28 2017-10-12 한국전자통신연구원 QoS 보장을 위한 맵핑 방법이 적용된 유무선 통합 네트워크 및 업스트림 데이터 전송 방법
KR20180060353A (ko) * 2016-11-29 2018-06-07 주식회사 에프아이시스 가상 머신 QoS 보장형 무손실 부하 분산 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101639797B1 (ko) * 2015-10-16 2016-07-14 주식회사 구버넷 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Also Published As

Publication number Publication date
KR20200082133A (ko) 2020-07-08

Similar Documents

Publication Publication Date Title
CN107852413B (zh) 用于将网络分组处理卸载到gpu的网络设备、方法与存储介质
US11531752B2 (en) Technologies for control plane separation in a network interface controller
Xu et al. {vTurbo}: Accelerating Virtual Machine {I/O} Processing Using Designated {Turbo-Sliced} Core
US8208396B2 (en) Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
US20130326000A1 (en) Numa-aware scaling for network devices
KR20150146391A (ko) 소프트웨어 정의 네트워크에서의 가상화된 컨테이너 및 가상 머신을 통한 로컬 서비스 체이닝
US10235211B2 (en) Method and apparatus for dynamic virtual system on chip
EP4004751B1 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
US10114667B2 (en) Method of controlling communication path between virtual machines and computer system
US11593134B2 (en) Throttling CPU utilization by implementing a rate limiter
EP3672172B1 (en) Allocation of processors for processing packets
Niranjan Mysore et al. FasTrak: enabling express lanes in multi-tenant data centers
US9846652B2 (en) Technologies for region-biased cache management
CN114553780A (zh) 负载均衡的方法、装置以及网卡
US11412059B2 (en) Technologies for paravirtual network device queue and memory management
WO2020166423A1 (ja) リソース管理装置およびリソース管理方法
Tan et al. DMVL: An I/O bandwidth dynamic allocation method for virtual networks
US20180091447A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
KR102145183B1 (ko) 멀티코어 기반 네트워크 인터페이스 카드에서 가상머신 QoS 보장형 데이터 전송 장치 및 방법
KR20180060353A (ko) 가상 머신 QoS 보장형 무손실 부하 분산 시스템 및 방법
US20230109396A1 (en) Load balancing and networking policy performance by a packet processing pipeline
KR102126213B1 (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법
EP4187868A1 (en) Load balancing and networking policy performance by a packet processing pipeline
KR20160148898A (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법

Legal Events

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