KR20170057770A - Method for controlling transsion of packet in virtual switch - Google Patents
Method for controlling transsion of packet in virtual switch Download PDFInfo
- Publication number
- KR20170057770A KR20170057770A KR1020150161344A KR20150161344A KR20170057770A KR 20170057770 A KR20170057770 A KR 20170057770A KR 1020150161344 A KR1020150161344 A KR 1020150161344A KR 20150161344 A KR20150161344 A KR 20150161344A KR 20170057770 A KR20170057770 A KR 20170057770A
- Authority
- KR
- South Korea
- Prior art keywords
- packet transmission
- hardware
- virtual switch
- switching
- network interface
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 가상 스위치의 패킷 전송 제어 방법에 관한 것으로, 더욱 상세하게는 가상머신들 사이의 통신을 지원하는 가상 스위치에서 수행하는 패킷 전송 제어 방법에 관한 것이다.The present invention relates to a packet transmission control method for a virtual switch, and more particularly, to a packet transmission control method performed by a virtual switch supporting communication between virtual machines.
주지하는 바와 같이, 가상 스위치는 하나의 물리 서버 내부에 존재하는 여러 가상머신들을 연결하고, 가상머신과 네트워크 인터페이스 카드를 연결하는 기능을 수행한다.As is known, a virtual switch connects a plurality of virtual machines existing in one physical server, and connects a virtual machine and a network interface card.
그런데, 이러한 가상 스위치는 소트프웨어로 구동되기 때문에 하드웨어 스위치에 비하여 성능 열화가 존재한다. 특히 가상머신들 사이에 전송되는 트래픽이 증가하고, 작은 크기의 패킷이 자주 전송될 때에 스루풋(throughput) 성능 열화가 심각하다. 아울러, 패킷 처리 및 전송을 위해 CPU 자원을 점유하게 되는데 이는 어플리케이션의 처리에 사용되어야 할 CPU 자원을 낭비하는 단점이 있다.However, since such a virtual switch is driven by software, there is performance deterioration as compared with a hardware switch. Particularly, traffic to be transmitted between virtual machines increases, and deterioration of throughput performance is serious when small size packets are frequently transmitted. In addition, CPU resources are occupied for packet processing and transmission. This has the disadvantage of wasting CPU resources to be used for processing the application.
종래에는 이러한 가상 스위치의 단점을 보완하기 위하여 하드웨어 VEB(Virtual Ethernet Bridge)라는 기술을 사용하였다. 하드웨어 VEB는 가상 스위치의 스위칭 기능을 물리 네트워크 인터페이스 카드에 오프로드(offload)하는 기술이다. SR-IOV(Single Root I/O Virtualization) 기술을 이용하여 가상머신과 네트워크 인터페이스 카드가 직접 패킷을 전송할 수 있도록 연결하면 하드웨어 VEB 기술을 통해 네트워크 인터페이스 카드에서 레이어2(L2) 스위칭을 지원하여 가상머신들 사이에 패킷을 전송할 수 있도록 한다.In order to overcome the drawbacks of such a virtual switch, a hardware VEB (Virtual Ethernet Bridge) technology has been used. Hardware VEB is a technology that offloads the switching function of a virtual switch to a physical network interface card. Using Virtual Role I / O Virtualization (SR-IOV) technology, virtual machines and network interface cards can be directly connected to transmit packets, enabling Layer 2 (L2) switching on the network interface card via hardware VEB technology, Lt; RTI ID = 0.0 > a < / RTI >
그러나, 이러한 종래 기술은 네트워크 인터페이스 카드에 의한 하드웨어 오프로드 기능을 서버 외부에서 동적으로 변경하거나 관리할 수 없고, 하드웨어 VEB를 가상 스위치와 동시에 사용할 수 없다. 또한, 하드웨어 VEB를 통해 스위칭할 수 있는 용량이 네트워크 인터페이스 카드의 테이블 크기와 VF(Virtual Function)의 개수에 따라 제한적인 문제점이 있었다.However, this conventional technology can not dynamically change or manage the hardware offload function by the network interface card outside the server, and can not use the hardware VEB at the same time with the virtual switch. In addition, there is a problem that the capacity that can be switched through the hardware VEB is limited depending on the table size of the network interface card and the number of virtual functions (VF).
본 발명은 전술한 바와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 가상 스위치의 스위칭과 네트워크 인터페이스 카드에 의한 하드웨어 오프로드 기능을 서버 외부의 SDN(Software-Defined Networking) 컨트롤러가 제어할 수 있도록 가상 스위치에서 수행하는 패킷 전송 제어 방법을 제공한다.DISCLOSURE Technical Problem The present invention has been proposed in order to solve the problems of the related art as described above, and it is an object of the present invention to provide a system and method for switching a virtual switch and a hardware offload function by a network interface card, And a packet transmission control method performed by the switch.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to those mentioned above, and another problem to be solved can be clearly understood by those skilled in the art from the following description.
본 발명의 일 관점에 따른 가상 스위치에서 수행하는 패킷 전송 제어 방법은, 네트워크 인터페이스 카드로부터 가상머신들 사이의 패킷 전송을 지원하는 하드웨어 스위칭 포트 정보를 수신하는 단계와, 상기 수신된 하드웨어 스위칭 포트의 정보와 상기 가상머신들 사이의 패킷 전송을 위한 소프트웨어 스위칭 포트 정보를 SDN 컨트롤러로 전송하는 단계와, 패킷 전송 규칙을 상기 SDN 컨트롤러로부터 수신하는 단계와, 상기 수신된 패킷 전송 규칙을 상기 네트워크 인터페이스 카드로 전송하는 단계를 포함하며, 상기 패킷 전송 규칙은, 트래픽 우선순위 정보에 기초한 하드웨어 스위칭과 소프트웨어 스위칭의 분배 정책에 따라 특정 플로우에 대해 상기 하드웨어 스위칭 포트를 통한 하드웨어 스위칭을 결정할 수 있는 것일 수 있다.According to an aspect of the present invention, there is provided a packet transfer control method performed by a virtual switch, the method comprising: receiving hardware switching port information for supporting packet transmission between virtual machines from a network interface card; And transmitting software switching port information for packet transmission between the virtual machines to an SDN controller, receiving a packet transmission rule from the SDN controller, transmitting the received packet transmission rule to the network interface card Wherein the packet forwarding rule can determine hardware switching over the hardware switching port for a particular flow according to hardware switching based on traffic priority information and a distribution policy of software switching.
본 발명의 실시예에 따르면, 가상 스위치의 스위칭과 네트워크 인터페이스 카드에 의한 하드웨어 오프로드 기능을 서버 외부의 SDN 컨트롤러가 제어할 수 있으며, 하드웨어 오프로드 기능을 트래픽에 따라 서버 외부에서 동적으로 변경하거나 관리할 수 있다. 그러므로, 우선순위가 높은 트래픽의 패킷을 하드웨어 스위치로 동적 할당하여 패킷 전송 속도를 가속화할 수 있다. 뿐만 아니라, 소프트웨어 스위치가 CPU를 사용하여 처리해야 할 스위칭을 하드웨어 스위치가 대신해 주기 때문에, 가상머신에서 동작하는 어플리케이션에 더 많은 CPU 자원을 할당할 수 있다.According to the embodiment of the present invention, the switching of the virtual switch and the hardware offload function by the network interface card can be controlled by the SDN controller outside the server, and the hardware offload function can be dynamically changed can do. Therefore, packets of high priority traffic can be dynamically allocated to hardware switches to accelerate packet transmission speed. In addition, because the hardware switch takes care of the switching that the software switch needs to process using the CPU, more CPU resources can be allocated to applications running in the virtual machine.
도 1은 본 발명의 실시예에 따른 패킷 전송 제어 방법을 수행하는 가상 스위치가 포함된 컴퓨트 노드와 SDN 컨트롤러의 시스템 구성도이다.
도 2는 본 발명의 실시예에 따라 가상 스위치에서 수행하는 패킷 전송 제어 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시예에 따라 네트워크 인터페이스 카드에서 수행하는 패킷 전송 과정을 설명하기 위한 흐름도이다.1 is a system configuration diagram of a compute node and a SDN controller including a virtual switch for performing a packet transmission control method according to an embodiment of the present invention.
2 is a flowchart illustrating a packet transmission control method performed by a virtual switch according to an embodiment of the present invention.
3 is a flowchart illustrating a packet transmission process performed by a network interface card according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들에 대해 살펴보기로 한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따른 패킷 전송 제어 방법을 수행하는 가상 스위치가 포함된 컴퓨트 노드와 SDN 컨트롤러의 시스템 구성도이다.1 is a system configuration diagram of a compute node and a SDN controller including a virtual switch for performing a packet transmission control method according to an embodiment of the present invention.
이에 나타낸 바와 같이, 컴퓨트 노드(100)는 게스트 OS(110), 호스트 OS(120), 네트워크 인터페이스 카드(130)를 포함한다.As shown, the
게스트 OS(110)은 복수의 가상머신(111, 112, 113, 114)을 포함한다. 도 1에는 총 4개의 가상머신을 도시하였으나 이러한 가상머신의 개수는 실시예에 불과하며, 서버 성능과 네트워크 인터페이스 카드가 제공하는 용량 내에서 제한이 없다.The
호스트 OS(120)는 가상 스위치(121)를 포함하며, 가상 스위치(121)는 제 2 오프로드 드라이버(121a)를 포함한다.The host OS 120 includes a
네트워크 인터페이스 카드(130)는 하드웨어 오프로드 모듈(131)을 포함하며, 하드웨어 오프로드 모듈(131)은 가상 이더넷 브리지(131a)를 포함한다.The
SDN 컨트롤러(200)는 트래픽 분류기(210), 하드웨어 오프로드 관리기(220), 제 1 오프로드 드라이버(230)를 포함한다.The SDN
SDN 컨트롤러(200)와 가상 스위치(121) 사이의 인터페이스(10) 및 가상 스위치(121)와 네트워크 인터페이스 카드(130) 사이의 인터페이스(20)를 위하여 다수의 API가 정의된다.A plurality of APIs are defined for the
이와 같이 구성된 네트워크에서 SDN 컨트롤러(200)는 컴퓨트 노드(100)에 포함된 가상머신들(111, 112, 113, 114) 사이를 가상 스위치(121)가 소프트웨어 스위칭(30)을 통해 연결할 것인지 가상 이더넷 브리지(131a)가 하드웨어 스위칭(40)을 통해 연결할 것인지를 결정할 때에 이용하는 패킷 전송 규칙을 제공한다.In the network thus configured, the
컴퓨터 노드(100)의 가상 스위치(121)는 가상머신들(111, 112, 113, 114) 사이의 연결을 소프트웨어 스위칭(30)을 통해 연결하며, SDN 컨트롤러(200)로부터 제공받은 패킷 전송 규칙을 네트워크 인터페이스 카드(130)에게 전달한다.The
컴퓨터 노드(100)의 가상 이더넷 브리지(131a)는 가상머신들(111, 112, 113, 114) 사이의 연결을 하드웨어 스위칭(40)을 통해 연결한다. 즉 가상 스위치(121)의 스위칭 연결 기능을 오프로드한다.The virtual Ethernet
SDN 컨트롤러(200)의 트래픽 분류기(210)에는 가입자들에 대한 우선순위 정보와 가입자별로 정의된 어플리케이션 우선순위 정보 및 플로우 특성에 따라 정의된 우선순위 정보에 따라 패킷 전송을 하기 위한 트래픽 우선순위 정보가 저장된다.The
SDN 컨트롤러(200)의 하드웨어 오프로드 관리기(220)는 컴퓨트 노드(100)에 포함된 하드웨어 오프로드 모듈(131)이 가상 스위치(121)의 일부 기능을 오프로드하도록 제어하며, 이러한 오프로드 기능을 동적으로 변경하여 관리한다. 이를 위해 하드웨어 오프로드 관리기(220)는 제 1 오프로드 드라이버(230) 및 제 2 오프로드 드라이버(121a)를 통해 네트워크 인터페이스 카드(130)에게 패킷 전송 규칙을 제공한다. 또, 하드웨어 오프로드 관리기(220)는 컴퓨트 노드의 CPU 자원을 점유하는 기능에 대한 하드웨어 오프로드 활성화 신호를 제 1 오프로드 드라이버(230) 및 제 2 오프로드 드라이버(121a)를 통해 네트워크 인터페이스 카드(130)에게 제공한다.The
컴퓨트 노드(100)에 포함된 가상 스위치(121)는 네트워크 인터페이스 카드(130)로부터 가상머신들(111, 112, 113, 114) 사이의 패킷 전송을 지원하는 하드웨어 스위칭 포트의 정보를 수신하며, 가상머신들 사이의 패킷 전송을 위한 소프트웨어 스위칭 포트의 정보와 수신된 하드웨어 스위칭 포트의 정보를 SDN 컨트롤러(200)에게 전달한다.The
또, 가상 스위치(121)는 트래픽 우선순위 정보에 기초한 하드웨어 스위칭과 소프트웨어 스위칭의 분배 정책에 따라 특정 플로우에 대해 하드웨어 스위칭 포트를 통한 하드웨어 스위칭을 결정할 수 있는 패킷 전송 규칙을 SDN 컨트롤러(200)로부터 수신하며, 수신된 패킷 전송 규칙을 네트워크 인터페이스 카드(130)에게 전달한다.The
도 2는 본 발명의 실시예에 따라 가상 스위치에서 수행하는 패킷 전송 제어 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a packet transmission control method performed by a virtual switch according to an embodiment of the present invention.
이에 나타낸 바와 같이, 본 방법은 하드웨어 오프로드 모듈에 신규 플로우가 도착된 후에 네트워크 인터페이스 카드로부터 가상머신들 사이의 패킷 전송을 지원하는 하드웨어 스위칭 포트의 정보를 수신하는 단계(303, 305)를 포함한다.As shown, the method includes receiving (303,305) information of a hardware switching port that supports packet transmission between virtual machines from a network interface card after a new flow arrives at a hardware offload module .
이어서, 가상머신들 사이의 패킷 전송을 위한 소프트웨어 스위칭 포트의 정보와 수신된 하드웨어 스위칭 포트의 정보를 SDN 컨트롤러에게 전달하는 단계(307)를 포함한다.Then, the step of transmitting (307) the information of the software switching port for packet transmission between the virtual machines and the information of the received hardware switching port to the SDN controller.
이후, 트래픽 분류기에 의해 트래픽 우선순위 정책이 획득된 상태에서 트래픽 우선순위 정보에 기초한 하드웨어 스위칭과 소프트웨어 스위칭의 분배 정책에 따라 특정 플로우에 대해 하드웨어 스위칭 포트를 통한 하드웨어 스위칭을 결정할 수 있는 패킷 전송 규칙을 SDN 컨트롤러로부터 수신하는 단계(301, 309, 311, 313)를 포함한다.Then, according to the hardware switching based on the traffic priority information and the distribution policy of the software switching in a state where the traffic priority policy is acquired by the traffic classifier, a packet transmission rule that can determine the hardware switching through the hardware switching port (301, 309, 311, 313) from the SDN controller.
이어서, 수신된 패킷 전송 규칙을 네트워크 인터페이스 카드에게 전달하여 패킷 전송 규칙에 따라 하드웨어 스위칭 또는 소프트웨어 스위칭이 이루어지도록 하는 단계(315, 317, 319, 321)를 포함한다.Next, the method includes transmitting the received packet transmission rule to the network interface card so that hardware switching or software switching is performed according to the packet transmission rule (315, 317, 319, 321).
도 3은 본 발명의 실시예에 따라 네트워크 인터페이스 카드에서 수행하는 패킷 전송 과정을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a packet transmission process performed by a network interface card according to an embodiment of the present invention.
이에 나타낸 바와 같이, 도착된 패킷이 기존 패킷 전송 규칙에 포함되지 않은 신규 플로우이면 SDN 컨트롤러와의 협업을 통해 패킷 전송 규칙을 갱신하는 단계(401, 403, 405)를 포함한다.As shown, if the arrived packet is a new flow that is not included in the existing packet transmission rule, it includes
그리고, 도착된 패킷이 기존 패킷 전송 규칙에 포함된 것으로 확인되면 패킷 전송 규칙에 기초하여 하드웨어 스위칭 대상인지를 판정하는 단계(S407, 409)를 포함한다.If it is determined that the received packet is included in the existing packet transmission rule, step (S407, 409) is performed to determine whether the packet is a hardware switching object based on the packet transmission rule.
이어서, 하드웨어 스위칭 대상이면 하드웨어 스위칭 포트를 통해 패킷을 가상머신에게 전송하는 단계(411)를 포함한다.Then, if the object is a hardware switching object, transmitting (411) a packet to the virtual machine through a hardware switching port.
이하, 도 1 내지 도 3을 참조하여 본 발명의 실시예에 따른 패킷 전송 제어 방법을 수행하는 가상 스위치가 포함된 컴퓨트 노드 내의 패킷 전송 과정을 더 자세히 살펴보기로 한다.Hereinafter, a packet transmission process in a compute node including a virtual switch for performing a packet transmission control method according to an embodiment of the present invention will be described in more detail with reference to FIG. 1 to FIG.
먼저, SDN 컨트롤러(200)와 가상 스위치(121) 사이의 인터페이스(10) 및 가상 스위치(121)와 네트워크 인터페이스 카드(130) 사이의 인터페이스(20)를 위하여 기능 활성화 API, 포트 구성 API, 하드웨어 가상 이더넷 브리지 API가 정의된다. 기능 활성화 API는 VXLAN 터널링(tunneling), 세그먼테이션(segmentation), 체크섬(checksum) 검사 등과 같이 컴퓨트 노드(100)의 CPU 자원을 점유하는 기능을 대한 하드웨어 오프로드 활성화 신호를 제어하기 위한 API이다. 포트 구성 API는 네트워크 인터페이스 카드(130)의 VF(Virtual Function) 및 PF(Physical Function)의 연결 구성을 관리하기 위한 API이다. 하드웨어 가상 이더넷 브리지 API는 네트워크 인터페이스 카드(130)의 플로우 테이블에 스위칭을 위해서 패킷 전송 규칙을 반영하기 위한 API이다.First, for the
트래픽 분류기(210)에는 가입자(tenant)들에 대한 우선순위 정보와 가입자별로 정의된 어플리케이션 우선순위 정보 및 플로우 특성에 따라 정의된 우선순위 정보에 따라 패킷 전송을 하기 위한 트래픽 우선순위 정보가 저장된다. 가입자들의 우선순위가 차등하여 정의될 수 있으며, 각 가입자별로 어플리케이션 우선순위에 따른 트래픽 우선순위가 정의될 수 있다. 또, 플로우 특성에 따라 우선순위가 정의될 수 있다. 예컨대, 엘리펀트(elephant) 플로우로 인해 마이스(mice) 플로우의 전송 지연이 늘어나기 때문에, 선정된 엘리펀트 플로우에 대해 높은 우선순위를 부여하여 전송 속도를 증가시키기 위해 하드웨어 스위칭이나 소프트웨어 스위칭에 관계없이 전용 스위칭 레인(lane)을 생성해 스케쥴링(scheduling)해 줄 수 있다. 인터넷 트래픽 통계 특성을 살펴보면 일반적으로 적은 수의 엘리펀트 플로우가 전체 트래픽 양의 약80%를 차지하고 많은 수의 마이스 플로우가 나머지 트래픽 양을 차지하는 헤비 테일(heavy-tailed) 분포를 가진다고 알려져 있다. 장시간 지속(long-lived) 플로우를 엘리펀트 플로우라고 할 수 있고, 폭주성(bursty) 플로우 또는 단시간 지속(short-lived) 플로우를 마이스 플로우라고 할 수 있다. 예컨대, 세션 지속시간이 15분 이상이면 엘리펀트 플로우로 분류한다든지, 특정 플로우가 링크 효율(link utilization)의 10%이상의 대역폭(bandwidth)를 차지한다면 엘리펀트 플로우로 분류할 수 있다.The
이렇게 트래픽 분류기(210)에 의해 시스템의 초기 셋업 시 미리 사용자나 관리자에 의한 우선순위 책정 규칙이 입력 및 획득된다(301).In the initial setup of the system, the
그리고, 네트워크 인터페이스 카드(130)에 기존 패킷 전송 규칙에 포함되지 않은 신규 플로우가 도착(303)하면 하드웨어 오프로드 모듈(131)은 가상 이더넷 브리지(131a)의 하드웨어 스위칭 포트의 정보를 가상 스위치(121)에게 제공한다(305).When a new flow not included in the existing packet transmission rule arrives at the
이어서, 가상 스위치(121)는 제 2 오프로드 드라이버(121a) 및 제 1 오프로드 드라이버(230)를 통해 하드웨어 오프로드 관리기(220)에게 가상 이더넷 브리지(131a)의 하드웨어 스위칭 포트의 정보를 전달한다. 여기서, 가상 스위치(121)는 가상머신들(111, 112, 113, 114) 사이의 패킷 전송을 위한 소프트웨어 스위칭 포트의 정보를 하드웨어 오프로드 관리기(220)에게 함께 전달한다(307).Subsequently, the
그러면, 하드웨어 오프로드 관리기(220)는 트래픽 분류기(210)로부터 트래픽 우선순위 정보를 제공받고(309), 하드웨어 스위칭 포트 정보와 트래픽 우선순위 정보를 바탕으로 하여 스위칭 분배 정책에 따라 특정 플로우에 대해 하드웨어 스위칭 포트를 통한 하드웨어 스위칭을 결정할 수 있는 패킷 전송 규칙을 생성한다(311).Then, the
이렇게 생성된 패킷 전송 규칙은 제 1 오프로드 드라이버(230) 및 제 2 오프로드 드라이버(121a)를 통해 가상 스위치(121)에게 전달되며(313), 가상 스위치(1210는 패킷 전송 규칙을 네트워크 인터페이스 카드(130)의 하드웨어 오프로드 모듈(131)에게 전달한다(315).The generated packet transmission rule is transmitted to the
여기서, 하드웨어 오프로드 모듈(131)은 기존 패킷 전송 규칙을 가상 스위치(121)로부터 전달받은 패킷 전송 규칙으로 갱신하며(317), 갱신된 패킷 전송 규칙에 따라 하드웨어 스위칭을 하여 가상머신들(111, 112, 113, 114) 사이에 패킷을 전송한다(319).Here, the
아울러, 하드웨어 오프로드 모듈(131)은 단계 317에서 갱신된 패킷 전송 규칙에 따라 패킷 플로우가 하드웨어 스위칭 대상이 아닐 경우에는 가상 스위치(121)에 의한 소프트웨어 스위칭을 통해 가상머신들(111, 112, 113, 114) 사이에 패킷이 전송된다(321).If the packet flow is not a hardware switching object according to the packet transmission rule updated in
또한, SDN 컨트롤러(200)의 하드웨어 오프로드 관리기(220)는 제 1 오프로드 드라이버(230) 및 제 2 오프로드 드라이버(121a)를 통해 가상 스위치(121)에게 VXLAN 터널링, 세그먼테이션, 체크섬 검사 등과 같이 컴퓨트 노드(100)의 CPU 자원을 점유하는 기능을 대한 하드웨어 오프로드 활성화 신호를 전송할 수 있으며, 이는 가상 스위치(121)에 의해 네트워크 인터페이스 카드(130) 내의 하드웨어 오프로드 모듈(131)에게 전달된다. 그러면, 이더넷 패킷의 앞에 헤더를 추가로 붙여서 VXLAN 패킷을 만드는 터널링 기능, 큰 사이즈의 패킷을 물리적으로 전송할 때에 작은 사이즈로 잘라주는 세그먼테이션 기능, VXLAN 패킷에 대한 체크섬 검사 기능 등을 하드웨어 오프로드 모듈(131)에서 담당하여 수행 및 처리한다.In addition, the
지금까지 설명한 바와 같이, 본 발명의 실시예에 따르면 가상 스위치의 스위칭과 네트워크 인터페이스 카드에 의한 하드웨어 오프로드 기능을 서버 외부의 SDN 컨트롤러가 제어할 수 있으며, 하드웨어 오프로드 기능을 서버 외부에서 동적으로 변경하거나 관리할 수 있다. 그러므로, 우선순위가 높은 트래픽의 패킷을 하드웨어 스위치로 동적 할당하여 전송 속도를 가속화할 수 있다. 이로써, 소프트웨어 스위치가 CPU를 사용하여 처리해야 할 스위칭을 하드웨어 스위치가 대신해 주기 때문에, 가상머신에서 동작하는 어플리케이션에 더 많은 CPU 자원을 할당할 수 있다.As described above, according to the embodiment of the present invention, the SDN controller outside the server can control the switching of the virtual switch and the hardware offload function by the network interface card, and the hardware offload function can be dynamically changed Or management. Therefore, the packet of high priority traffic can be dynamically allocated to the hardware switch to accelerate the transmission speed. This allows the hardware switch to do the switching that the software switch needs to process using the CPU, so that more CPU resources can be allocated to applications running in the virtual machine.
본 명세서에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행하는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the block diagrams attached hereto and combinations of steps of the flowchart diagrams may be performed by computer program instructions. These computer program instructions may be embedded in a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행하는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행하는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
본 발명의 실시예에 의하면, 가상 스위치의 스위칭과 네트워크 인터페이스 카드에 의한 하드웨어 오프로드 기능을 서버 외부의 SDN 컨트롤러가 제어할 수 있으며, 하드웨어 오프로드 기능을 서버 외부에서 동적으로 변경하거나 관리할 수 있다.According to the embodiment of the present invention, the SDN controller outside the server can control the switching of the virtual switch and the hardware offload function by the network interface card, and the hardware offload function can be dynamically changed or managed outside the server .
이러한 본 발명은 가상 스위치가 물리 서버 내부에 존재하는 여러 가상머신들을 연결함과 아울러 가상머신과 네트워크 인터페이스 카드를 연결하는 컴퓨트 노드를 포함하는 각종 시스템에서 이용할 수 있다.The present invention can be used in various systems including a virtual node connecting a plurality of virtual machines existing in a physical server and connecting a virtual machine and a network interface card.
100 : 컴퓨트 노드 111, 112, 113, 114 : 가상머신
121 : 가상 스위치 130 : 네트워크 인터페이스 카드
131 : 하드웨어 오프로드 모듈 131a : 가상 이더넷 브리지
200 : SDN 컨트롤러 210 : 트래픽 분류기
220 : 하드웨어 오프로드 관리기100: compute
121: virtual switch 130: network interface card
131:
200: SDN controller 210: traffic classifier
220: Hardware offload manager
Claims (6)
상기 수신된 하드웨어 스위칭 포트의 정보와 상기 가상머신들 사이의 패킷 전송을 위한 소프트웨어 스위칭 포트 정보를 SDN(Software-Defined Networking) 컨트롤러로 전송하는 단계와,
패킷 전송 규칙을 상기 SDN 컨트롤러로부터 수신하는 단계와,
상기 수신된 패킷 전송 규칙을 상기 네트워크 인터페이스 카드로 전송하는 단계를 포함하며,
상기 패킷 전송 규칙은, 트래픽 우선순위 정보에 기초한 하드웨어 스위칭과 소프트웨어 스위칭의 분배 정책에 따라 특정 플로우에 대해 상기 하드웨어 스위칭 포트를 통한 하드웨어 스위칭을 결정할 수 있는 것인
가상 스위치에서 수행하는 패킷 전송 제어 방법.Receiving hardware switching port information to support packet transmission between virtual machines from a network interface card;
Sending information of the received hardware switching port and software switching port information for packet transmission between the virtual machines to a Software-Defined Networking (SDN) controller;
Receiving a packet transmission rule from the SDN controller;
And transmitting the received packet transmission rule to the network interface card,
Wherein the packet transfer rules are capable of determining hardware switching over the hardware switching port for a particular flow according to hardware switching based on traffic priority information and a distribution policy of software switching
A method for controlling packet transmission performed by a virtual switch.
상기 트래픽 우선순위 정보는, 가입자들에 대한 우선순위 정보 또는 가입자별로 정의된 어플리케이션 우선순위 정보를 포함하는
가상 스위치에서 수행하는 패킷 전송 제어 방법.The method according to claim 1,
The traffic priority information includes priority information for subscribers or application priority information defined for each subscriber
A method for controlling packet transmission performed by a virtual switch.
상기 트래픽 우선순위 정보는, 플로우 특성에 따라 정의된 우선순위 정보를 포함하는
가상 스위치에서 수행하는 패킷 전송 제어 방법.The method according to claim 1,
The traffic priority information includes priority information defined according to flow characteristics
A method for controlling packet transmission performed by a virtual switch.
상기 플로우 특성에 따라 선정된 특정 플로우는 상기 하드웨어 스위칭과 상기 소프트웨어 스위칭 중에서 어느 하나의 전용 스위칭 레인으로 스위칭하는
가상 스위치에서 수행하는 패킷 전송 제어 방법.The method of claim 3,
Wherein the specific flow selected in accordance with the flow characteristic is switched to any one of the hardware switching and the software switching
A method for controlling packet transmission performed by a virtual switch.
상기 가상머신 및 상기 가상 스위치를 포함하는 컴퓨트 노드의 CPU 자원을 점유하는 기능에 대한 하드웨어 오프로드 활성화 신호를 상기 SDN 컨트롤러로부터 수신하여 상기 네트워크 인터페이스 카드에게 전달하는 단계를 더 포함하는
가상 스위치에서 수행하는 패킷 전송 제어 방법.The method according to claim 1,
Further comprising receiving from the SDN controller a hardware offload enable signal for a function that occupies CPU resources of the compute node including the virtual machine and the virtual switch and forwarding the hardware offload enable signal to the network interface card
A method for controlling packet transmission performed by a virtual switch.
컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
In order for the processor to perform the packet transmission control method of any one of claims 1 to 5
A computer program stored on a computer readable recording medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150161344A KR102174979B1 (en) | 2015-11-17 | 2015-11-17 | Method for controlling transsion of packet in virtual switch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150161344A KR102174979B1 (en) | 2015-11-17 | 2015-11-17 | Method for controlling transsion of packet in virtual switch |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170057770A true KR20170057770A (en) | 2017-05-25 |
KR102174979B1 KR102174979B1 (en) | 2020-11-05 |
Family
ID=59051113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150161344A KR102174979B1 (en) | 2015-11-17 | 2015-11-17 | Method for controlling transsion of packet in virtual switch |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102174979B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021048513A (en) * | 2019-09-19 | 2021-03-25 | 富士通株式会社 | Information processing device, information processing method, and virtual machine connection management program |
CN113965521A (en) * | 2021-10-19 | 2022-01-21 | 京东科技信息技术有限公司 | Data packet transmission method, server and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110110843A (en) * | 2009-02-27 | 2011-10-07 | 브로드콤 코포레이션 | Method and system for virtual machine networking |
KR20130039626A (en) | 2011-10-12 | 2013-04-22 | 주식회사센트루소프트웨어 | Method of transmitting data between virtual machines using virtual machine communication interface, and recording medium thereof |
KR20150000420A (en) * | 2013-06-24 | 2015-01-02 | 한국전자통신연구원 | Method and apparatus for network functions virtualization |
KR20150071533A (en) * | 2013-12-18 | 2015-06-26 | 삼성전자주식회사 | Method and Apparatus for Controlling Virtual Switching |
-
2015
- 2015-11-17 KR KR1020150161344A patent/KR102174979B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110110843A (en) * | 2009-02-27 | 2011-10-07 | 브로드콤 코포레이션 | Method and system for virtual machine networking |
KR20130039626A (en) | 2011-10-12 | 2013-04-22 | 주식회사센트루소프트웨어 | Method of transmitting data between virtual machines using virtual machine communication interface, and recording medium thereof |
KR20150000420A (en) * | 2013-06-24 | 2015-01-02 | 한국전자통신연구원 | Method and apparatus for network functions virtualization |
KR20150071533A (en) * | 2013-12-18 | 2015-06-26 | 삼성전자주식회사 | Method and Apparatus for Controlling Virtual Switching |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021048513A (en) * | 2019-09-19 | 2021-03-25 | 富士通株式会社 | Information processing device, information processing method, and virtual machine connection management program |
CN113965521A (en) * | 2021-10-19 | 2022-01-21 | 京东科技信息技术有限公司 | Data packet transmission method, server and storage medium |
CN113965521B (en) * | 2021-10-19 | 2024-03-01 | 京东科技信息技术有限公司 | Data packet transmission method, server and storage medium |
Also Published As
Publication number | Publication date |
---|---|
KR102174979B1 (en) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581729B2 (en) | Network interface card, computing device, and data packet processing method | |
US10452422B2 (en) | Method and apparatus for deploying virtual machine instance, and device | |
US11005747B2 (en) | Method for implementing network virtualization and related apparatus and communications system | |
CN112217746B (en) | Message processing method, host and system in cloud computing system | |
US10623310B2 (en) | Network interface card, computing device, and data packet processing method | |
CN107278362B (en) | The method of Message processing, host and system in cloud computing system | |
US8855116B2 (en) | Virtual local area network state processing in a layer 2 ethernet switch | |
CN104320350B (en) | Method and system for providing fiduciary flow control | |
US10587494B2 (en) | Network control method and apparatus | |
EP3182648A1 (en) | Method, apparatus and system for implementing software-defined networking (sdn) | |
US20100287262A1 (en) | Method and system for guaranteed end-to-end data flows in a local networking domain | |
US20170099215A1 (en) | Link aggregation group (lag) support on a software-defined network (sdn) | |
WO2015058698A1 (en) | Data forwarding | |
CN105745883B (en) | Forwarding table synchronous method, the network equipment and system | |
US10050906B2 (en) | Virtual node having separate control and data planes | |
EP3522463A1 (en) | Method and software-defined networking (sdn) controller for providing multicast service | |
CN111371694B (en) | Shunting method, device and system, processing equipment and storage medium | |
CN112753198B (en) | Load balancing and message reordering method and device in network | |
US20180246772A1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization network | |
EP3672171A1 (en) | Message transmission method and device | |
KR20170057770A (en) | Method for controlling transsion of packet in virtual switch | |
US20190036827A1 (en) | Traffic control method and device in software defined network | |
CN108092787B (en) | Cache adjusting method, network controller and system | |
CN110086676B (en) | Configuration method of distributed router and related equipment | |
KR101576518B1 (en) | Method and apparatus for expansion and utilization of openflow protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |