KR20180060353A - System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines - Google Patents

System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines Download PDF

Info

Publication number
KR20180060353A
KR20180060353A KR1020160159765A KR20160159765A KR20180060353A KR 20180060353 A KR20180060353 A KR 20180060353A KR 1020160159765 A KR1020160159765 A KR 1020160159765A KR 20160159765 A KR20160159765 A KR 20160159765A KR 20180060353 A KR20180060353 A KR 20180060353A
Authority
KR
South Korea
Prior art keywords
thread
virtual machine
information
module
qos
Prior art date
Application number
KR1020160159765A
Other languages
Korean (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 KR1020160159765A priority Critical patent/KR20180060353A/en
Publication of KR20180060353A publication Critical patent/KR20180060353A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • 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/50Queue scheduling

Abstract

The present invention relates to a lossless load balancing method for guaranteeing QoS for network resources by a virtual machine, and more specifically, to a virtual machine QoS-guaranteed lossless load balancing method which provides a structure and a method for enabling virtual machines to guarantee QoS for network sources by adding a server QoS module, a client QoS module, and a thread management module to obtain QoS information from a hypervisor, and dynamically allocating a thread to each virtual machine on the basis of the QoS information, in order to solve the problem that each virtual machine uses the network resources according to traffic volumes regardless of agreed core resources, such that other virtual machines are affected in using the network resources when a lossless load balancing algorithm is applied by using a multicore-based network module in an environment in which two or more virtual machines are operated in a multicore-based server.

Description

가상 머신 QoS 보장형 무손실 부하 분산 시스템 및 방법 {System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines}TECHNICAL FIELD The present invention relates to a virtual machine QoS guaranteed type lossless load distribution system and a method thereof,

본 발명은 가상 머신의 네트워크 자원에 대한 QoS를 보장하는 무손실 부하 분산 시스템 및 방법에 관한 것으로서, 멀티 코어 기반 서버에 두 개 이상의 가상화 머신이 운영되고 있는 환경에서 멀티 코어 기반 네트워크 모듈을 사용하여 무손실 부하 분산 알고리즘을 적용 하는 경우, 각 가상화 머신이 협약 맺은 코어 자원에 상관없이 트래픽 볼륨에 따라 네트워크 자원을 사용하여, 다른 가상 머신이 네트워크 자원 사용에서 영향을 받는 문제점을 해결하는 가상머신 QoS 보장형 무손실 부하 분산 방법에 관한 것이다. The present invention relates to a lossless load balancing system and method for guaranteeing QoS for network resources of a virtual machine. More particularly, the present invention relates to a lossless load balancing system and method for guaranteeing QoS for network resources of a virtual machine, When a distributed algorithm is applied, each virtual machine uses the network resources according to the traffic volume regardless of the core resources of the agreement, and the virtual machine that solves the problem that another virtual machine is affected by the use of the network resource. QoS Guaranteed Lossless load balancing ≪ / RTI >

보다 상세하게 본 발명은 멀티 코어 기반 서버에 두 개 이상의 가상화 머신이 운영되는 환경에서 멀티코어 프로세서 기반의 무손실 부하 분산 알고리즘이 적용된 네트워크 모듈을 사용하는 경우에 관한 것이다. More particularly, the present invention relates to the case of using a network module to which a lossless load balancing algorithm based on a multicore processor is applied in an environment where two or more virtual machines are operated in a multicore-based server.

SDN/NFV, vEPC, IoT의 클라우드화 등 클라우드 기반 솔루션이 늘어남에 따라 데이터센터의 서버는 고성능 가상화 서버의 형태로 변화하고 있다. 클라우드 컴퓨팅 및 SDN/NFV 기술은 트래픽의 증가/감소에 따른 유연한 스케일링을 통한 네트워크 자원의 효율적인 관리, 트래픽 분산 및 동적인 경로 설정을 가능하도록 하고 있다. As cloud-based solutions such as SDN / NFV, vEPC, and IoT are clouded, servers in the data center are changing to high-performance virtualization servers. Cloud computing and SDN / NFV technologies enable efficient management, traffic distribution, and dynamic routing of network resources through flexible scaling as traffic increases / decreases.

또한, LTE 이동통신은 EPC를 vEPC(Virtualized EPC)로 클라우드화 하고 있으며, IoT는 2020년까지 약 250억 개의 사물이 인터넷으로 연결될 것이라는 전망에 따라, IoT 데이터의 90% 이상이 클라우드화 될 것으로 예상되고 있다.In addition, LTE mobile communications are clouding EPC to vEPC (Virtualized EPC), and IoT expects that more than 90% of IoT data will be clouded with the prospect that about 25 billion things will be connected to the Internet by 2020 .

클라우드 컴퓨팅을 위한 고성능 서버에서는 x86기반의 멀티코어 CPU를 사용하여 SDN/NFV 등 클라우드 컴퓨팅 환경을 구현하고 있으며, 이러한 환경에서 고속의 컴퓨팅을 위하여 입력되는 패킷을 서버로 고속 전송하고 서버의 각 CPU 코어로 고속 분산하는 기능을 필요로 한다. High-performance servers for cloud computing use x86-based multi-core CPUs to implement cloud computing environments such as SDN / NFV. In this environment, high-speed packets are sent to the server for high-speed computing, As shown in FIG.

분산 기능을 위해서는 PCI-express 인터페이스를 사용하여 고속으로 입력되는 데이터를 균등 부하분산 방식이나 플로우 기반의 해쉬 방식으로 전달할 수 있는 네트워크 인터페이스 카드(NIC)와 같은 네트워크 모듈이 필수적이다.A network module such as a network interface card (NIC) capable of delivering data input at high speed using a PCI-express interface to an even load balancing method or a flow-based hash method is essential for the distributed function.

일반적인 네트워크 인터페이스카드는 64바이트 패킷 크기의 10Gbps 이상 트래픽 처리가 어려우며, 라운드 로빈 방식이나 해쉬 방식을 지원하지 않고 단순 전달하여 고속의 트래픽 전달에 한계가 있으므로, 고속의 데이터 전달 및 처리가 필요한 고성능 서버에서는 부하 분산 전용 네트워크 모듈을 사용하여 시스템을 구성한다.Since a general network interface card is difficult to process traffic of 10 Gbps or more with a 64-byte packet size and does not support a round-robin method or a hash method, a high-speed data transmission and processing is required Configure the system using dedicated network modules for load balancing.

종래의 부하 분산 알고리즘이 적용된 네트워크 모듈은 해쉬 방식으로 동일한 플로우의 데이터가 입력되는 경우, 하나의 코어에 모든 데이터가 매핑됨으로 인한 손실을 방지하고, 프로그래밍에 의해 요구사항이 변경하거나 수정될 경우, 무손실 부하분산 알고리즘을 유지한다. In the network module to which the conventional load balancing algorithm is applied, when data of the same flow is inputted by a hash method, loss due to mapping all data to one core is prevented, and when the requirements are changed or modified by programming, Maintain load balancing algorithm.

하지만, 각 가상화 머신에서 네트워크 자원을 사용할 때, 협약된 코어 정보에 상관없이 네트워크 자원을 공유하며 사용하여, 특정 가상머신에서 대량의 트래픽을 이용하게 될 경우, 상대적으로 다른 가상머신의 네트워크 처리 성능에 영향을 주게 되는 문제점이 있어 왔다. However, when network resources are used in each virtual machine, network resources are shared regardless of the agreed core information, and when a large amount of traffic is used in a specific virtual machine, the network processing performance of a relatively different virtual machine There has been a problem that will affect.

또한, 기존의 데이터 부하 분산용 네트워크 모듈은 고속의 데이터 전달과 공평한 부하 분산만이 고려되었으며, 다수의 가상화 머신이 실행되는 환경이 고려되지 않아 클라우드 컴퓨팅 환경에 적용하기에는 문제점이 있었다. In addition, the conventional network load module for data load distribution considers only high-speed data transmission and fair load distribution, and there is a problem in applying to a cloud computing environment because environment where a plurality of virtual machines are executed is not considered.

즉, 다수의 가상화 머신이 실행되는 고성능 클라우드 컴퓨팅 서버 환경에서는 기존의 부하 분산용 네트워크 모듈이 동작할 시, 특정 가상화 머신이 대부분의 네트워크 자원을 점유하게 되면, 다른 가상화 머신이 네트워크 자원 사용에 있어 영향을 받아 각 가상화 머신이 협약한 코어 자원 대비 네트워크 자원에 대한 QoS를 보장 받을 수 없는 단점이 있었다. That is, in a high-performance cloud computing server environment in which a plurality of virtual machines are running, when a conventional network module for load balancing operates, when a specific virtual machine occupies most of the network resources, And the QoS for the network resources compared to the core resources agreed by each virtual machine can not be guaranteed.

따라서 이 문제를 해결하기 위해 본 발명은, 각 가상머신이 하이퍼바이저와 협약한 자원 할당 정보를 기반으로 최소한의 QoS 보장을 받을 수 있도록 하는 가상머신 QoS 보장형 무손실 부하 분산 방법을 제안 하고자 하는 것이다. Therefore, in order to solve this problem, the present invention proposes a virtual machine QoS guaranteed type lossless load balancing method in which each virtual machine can receive a minimum QoS guarantee based on resource allocation information agreed with a hypervisor.

대한민국 공개특허공보 10-2014-0055761(2014.05.09)Korean Patent Publication No. 10-2014-0055761 (Apr.

본 발명은 상기의 문제점을 해결하고자 개발된 것으로 기존의 데이터 부하 분산용 네트워크 모듈은 고속의 데이터 전달과 공평한 부하 분산만이 고려되었으며, 다수의 가상화 머신이 실행되는 클라우드 컴퓨팅 환경이 고려되지 않아 각 가상화 머신에서 네트워크 자원을 사용할 때, 협약된 코어 정보에 상관없이 네트워크 자원을 공유하여 사용함으로 인해, 특정 가상머신에서 대량의 트래픽을 이용하게 될 경우, 상대적으로 다른 가상머신의 네트워크 처리 성능에 영향을 주게 된다. The present invention has been developed in order to solve the above problems. In the conventional data load balancing network module, only high-speed data transmission and fair load balancing are considered, and a cloud computing environment in which a plurality of virtual machines are executed is not considered, When using a network resource on a machine, regardless of the core information, the network resource is shared and used. Therefore, when a large amount of traffic is used in a specific virtual machine, the network processing performance of a relatively different virtual machine is influenced do.

따라서 이 문제를 해결하기 위해, 각 가상머신이 하이퍼바이저와 협약한 자원 할당 정보를 기반으로 네트워크 자원 사용에 대한 최소한의 QoS 보장을 받을 수 있도록 가상머신 QoS 보장형 무손실 부하 분산 방법을 제공하는 것을 목적으로 한다.Therefore, in order to solve this problem, a virtual machine QoS guaranteed type lossless load balancing method is provided so that each virtual machine can receive minimum QoS guarantee for network resource use based on the resource allocation information agreed with the hypervisor do.

상술한 바와 같이, 본 발명에 따른 가상 머신 QoS 보장형 무손실 부하 분산 방법은 고성능 멀티코어 서버에 장착되는 가상 머신의 종류에 따라 소프트웨어 정의 제어기, 침입탐지 및 방지 장치, 분산서비스 공격 방어 장치, 정밀 패킷 분석 장치, 네트워크 중복 제어기 등의 가상 머신의 네트워크 자원에 대한 QoS를 보장할 수 있는 효과가 있다. As described above, the virtual machine QoS guarantee type lossless load balancing method according to the present invention can be applied to a software defined controller, an intrusion detection and prevention device, a distributed service attack defense device, a precision packet analysis The QoS of network resources of a virtual machine such as a device, a network redundancy controller, and the like can be guaranteed.

도 1은 본 발명에 따른 가상머신 QoS 보장형 무손실 부하 분산 시스템 구성 블록도이다.
도 2는 본 발명에 따른 가상머신 QoS 보장형 무손실 부하 분산 방법의 부하 분산 알고리즘을 나타낸 흐름도이다.
도 3은 본 발명에 따른 가상머신 QoS 보장형 무손실 부하 분산 방법의 QoS 정보 갱신 알고리즘을 나타낸 흐름도이다.
1 is a block diagram of a virtual machine QoS guarantee type lossless load distribution system according to the present invention.
2 is a flowchart illustrating a load balancing algorithm of a virtual machine QoS guarantee type lossless load balancing method according to the present invention.
3 is a flowchart illustrating a QoS information update algorithm of the virtual machine QoS guarantee type lossless load balancing method according to the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대하여 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the present invention is not intended to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention.

각 도면을 설명하면서 유사한 참조부호를 유사한 구성 요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Like reference numerals are used for like elements in describing each drawing. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

본 발명에 따른 가상머신 QoS 보장형 무손실 부하 분산 시스템 및 방법은 다양한 응용 서비스를 제공하기 위한 클라우드 컴퓨팅 서버 장비에 사용될 수 있고, 기존 카드에 비하여 네트워크 자원 사용에 있어 가상 머신의 QoS를 보장할 뿐만 아니라, 대용량의 무손실 부하 분산 기능을 제공 할 수 있다. The virtual machine QoS guarantee type lossless load distribution system and method according to the present invention can be used in a cloud computing server equipment for providing various application services and can guarantee the QoS of a virtual machine in using network resources as compared with existing cards, It is possible to provide a large capacity lossless load balancing function.

본 발명의 가상머신 QoS 보장형 무손실 부하 분산 시스템은 도 1에 도시한 바와 같이 멀티코어서버(107)와 멀티코어 네트워크 모듈(111)로 구성되는 하드웨어적 환경에서 수행되는 것을 특징으로 한다. The virtual machine QoS guaranteed type lossless load distribution system of the present invention is performed in a hardware environment composed of a multicore server 107 and a multicore network module 111 as shown in FIG.

도 1에 도시한 바와 같이 상기 멀티코어 네트워크 모듈(111)은 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)과 워크 쓰레드(101)와 PCIe 쓰레드(102)와 클라이언트 QoS 모듈(109)과 쓰레드 관리 모듈(110)을 포함하도록 구성됨을 특징으로 한다.1, the multicore network module 111 includes a flow-based virtual machine QoS guarantee type load balancing module 100, a work thread 101, a PCIe thread 102, a client QoS module 109, And a module (110).

상기 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 클라이언트 QoS 모듈(109)로부터 수신한 가상머신(106)의 코어 할당 정보를 기반으로 각 가상머신(106)에 할당할 워크 쓰레드(101)와 PCIe 쓰레드(102)가 무엇인지를 결정하고 그에 따른 쓰레드할당정보를 생성하여 쓰레드 관리 모듈(110)로 전달하며, 입력되는 패킷의 플로우 정보를 기반으로 어느 가상머신(105)의 데이터인지 확인하고 해당 가상머신(105)에 할당된 워크 쓰레드(101)들로 패킷 데이터를 전송하는 것을 특징으로 한다.The flow-based virtual machine QoS guarantee type load balancing module 100 includes a work thread 101 to be allocated to each virtual machine 106 based on core allocation information of the virtual machine 106 received from the client QoS module 109, Determines what the PCIe thread 102 is and generates thread allocation information according to the generated thread allocation information, transfers the thread allocation information to the thread management module 110, checks which virtual machine 105 is the data based on the flow information of the input packet, And transmits the packet data to the work threads 101 allocated to the virtual machine 105.

상기 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)이 패킷 데이터를 전송함에 있어 두 가지 방식을 이용하여 전송할 수 있다.The flow-based virtual machine QoS guarantee type load balancing module 100 can transmit packet data using two methods.

데이터 전송 방법을 균등부하분산 방식을 이용하게 되면 입력되는 패킷 데이터의 순서에 따라 워크 쓰레드1, 워크 쓰레드2, 워크 쓰레드3 등의 순서로 패킷 데이터를 각 워크 쓰레드에 전달한다.If the data transmission method uses the uniform load balancing method, the packet data is transmitted to each work thread in the order of the work thread 1, the work thread 2, and the work thread 3 according to the order of the input packet data.

또한 해쉬 모드방식을 이용하게 되면, 입력되는 패킷 데이터의 플로우 정보라 불리는 5-tuple 정보, 즉 소스 IP 주소, 목적지 IP 주소, 소스 포트, 목적지 포트, 어플리케이션의 5가지 항목을 추출하여 해쉬 정보를 생성하고, 생성된 해쉬 정보를 사용하여 동일 해쉬 정보를 가지는 데이터는 동일한 워크 쓰레드로 전달한다. In addition, when the hash mode scheme is used, 5-tuple information called flow information of input packet data, that is, source IP Address, destination IP Addresses, source ports, destination ports, and applications are extracted to generate hash information, and data having the same hash information is transmitted to the same work thread using the generated hash information.

워크 쓰레드(101)는 상기 균등부하분산 방식이나 해쉬 모드방식을 통해 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로부터 패킷 데이터를 수신받아 PCIe 쓰레드(102)로 전달하게 된다.The work thread 101 receives the packet data from the flow-based virtual machine QoS guarantee type load balancing module 100 through the equal load balancing method or the hash mode method and transfers the packet data to the PCIe thread 102.

상기 PCIe 쓰레드(102)는 워크 쓰레드(101)로부터 수신받은 페킷 데이터를 코어(105) 수 만큼의 서로 다른 데이터 집단으로 나누고, 나누어진 데이터를 큐 매핑 모듈(103)에 의해 1:1로 매핑된 해당 큐에 저장하고, 큐에 저장된 데이터를 각 큐마다 할당되어 있는 코어(105)로 PCI-express 통신 통로를 통해 전달하는 것을 특징으로 한다. The PCIe thread 102 divides the packet data received from the work thread 101 into different data groups corresponding to the number of cores 105 and divides the divided data into 1: And transmits the data stored in the queue to the core 105 allocated to each queue through the PCI-express communication path.

상기 클라이언트 QoS 모듈(109)은 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로 가상머신(106)의 코어 할당 정보를 전송하는 것을 특징으로 한다.The client QoS module 109 transmits the core allocation information of the virtual machine 106 to the flow-based virtual machine QoS assurance type load balancing module 100.

상기 쓰레드 관리 모듈(110)은 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)에서 전송된 쓰레드할당정보에 따라 워크 쓰레드(101)와 PCIe 쓰레드(102)를 각 가상머신(106)에 할당하는 것을 특징으로 한다.The thread management module 110 allocates the work thread 101 and the PCIe thread 102 to each virtual machine 106 according to the thread allocation information transmitted from the flow-based virtual machine QoS guarantee type load balancing module 100 .

도 1에 도시한 바와 같이 상기 멀티코어서버(107)는 큐매핑 모듈(103)과 하이퍼바이저(104)와 코어(105)와 가상머신(106)과 서버 QoS 모듈(108)을 포함하도록 구성됨을 특징으로 한다.1, the multicore server 107 is configured to include a queue mapping module 103, a hypervisor 104, a core 105, a virtual machine 106, and a server QoS module 108 .

상기 큐 매핑 모듈(103)은 각 PCIe 쓰레드(102)와 1:1로 큐를 매핑 하고, 매핑 된 큐를 각 코어마다 할당하는 것을 특징으로 한다.The queue mapping module 103 maps queues to each PCIe thread 102 at a ratio of 1: 1, and assigns mapped queues to each core.

상기 하이퍼바이저(104)는 가상 머신(106)의 자원 할당 정보의 변경이 감지되면 자원 할당 변경정보를 생성하고, 가상머신(106)에 대한 접근을 제어하는 것을 특징으로 한다. The hypervisor 104 generates resource allocation change information and controls access to the virtual machine 106 when a change in the resource allocation information of the virtual machine 106 is detected.

상기 코어(105)는 각 PCIe 쓰레드(102)와 1:1로 매핑 된 패킷 큐로부터 패킷 데이터를 가져와서 응용 프로그램을 수행하는 것을 특징으로 한다.The core 105 is configured to fetch packet data from a packet queue mapped to each PCIe thread 102 in a 1: 1 manner and to execute an application program.

상기 가상머신(106)은 코어(105)를 할당 받아 사용하고, 상기 서버 QoS 모듈(108)은 하이퍼바이저(104)로부터 각 가상머신(106)의 코어 할당 정보를 획득하고, 클라이언트 QoS 모듈(109)로 코어 할당 정보를 전송하는 것을 특징으로 한다.The virtual machine 106 allocates and uses the core 105 and the server QoS module 108 obtains the core allocation information of each virtual machine 106 from the hypervisor 104 and the client QoS module 109 ) Of the core allocation information.

상기 각 코어(105)에서 수행되는 응용프로그램은 빅데이타를 분석하기 위한 용도나 저장된 데이터로부터 침입탐지, 바이러스, 새로운 공격 유형 등을 분석하여 적용하기 위한 용도의 프로그램일 수 있다. An application program executed by each core 105 may be a program for analyzing big data or analyzing and applying intrusion detection, virus, new attack type, etc. from stored data.

상기 플로우기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 가변적인 워크 쓰레드(101), PCIe 쓰레드(102) 적용이 가능하며, 이러한 쓰레드는 가상머신(106)에 할당된 코어(105) 수와 멀티코어서버(107)의 코어(202) 수에 따라, 적용되는 쓰레드의 수를 달리 할 수 있다. The flow-based virtual machine QoS assurance type load balancing module 100 can be applied to a variable work thread 101 and a PCIe thread 102. The thread can be used for the number of cores 105 allocated to the virtual machine 106, Depending on the number of cores 202 of the core server 107, the number of threads to be applied may be different.

도 2는 본 발명의 가상머신 QoS 보장형 무손실 부하 분산 방법에 있어 부하 분산 알고리즘을 나타낸다. 2 shows a load balancing algorithm in the virtual machine QoS guarantee type lossless load balancing method of the present invention.

패킷 데이터가 입력되면(200), 먼저 가상머신(VM)106) 자원할당 정보 변경 여부를 판별(201)한다.When the packet data is inputted (200), first, it is determined (201) whether or not the virtual machine (VM) 106 has changed the resource allocation information.

이후, 가상머신(106)의 자원 할당 정보의 변경이 없는 경우는 바로 해쉬 적용(202)을 판별한다.Thereafter, when there is no change in the resource allocation information of the virtual machine 106, the hash application 202 is determined immediately.

만일, 가상머신(106)의 자원 할당 정보의 변경이 있을 경우에는 워크 쓰레드, PCIe 쓰레드 할당 정보 변경(203)을 실시한 후, 해쉬 적용(202)을 판별한다.If there is a change in the resource allocation information of the virtual machine 106, the work thread and the PCIe thread allocation information 203 are changed, and then the hash application 202 is determined.

이후, 해쉬모드 적용 여부(202) 판별 결과가 해쉬 모드를 적용하지 않을 경우로 판별되면 설정된 쓰레드로 데이터를 쓰레드별 균등 분배(210)하게 된다. Thereafter, if the determination result of whether or not the hash mode is applied (202) is determined to not apply the hash mode, the data is uniformly distributed 210 according to the set thread.

만일, 해쉬모드 적용 여부(202) 판별 결과가 해쉬 모드를 적용하는 것으로 판별되면, 입력되는 데이터의 플로우를 추출(204)하고, 5-tuple 정보를 이용하여 해쉬를 계산한다(205). If it is determined that the hash mode is applied, the flow of the input data is extracted (204), and the hash is calculated using the 5-tuple information (205).

상기 5-tuple 정보란 소스 IP 주소, 목적지 IP주소, 소스 포트, 목적지 포트, 어플리케이션 정보를 의미한다.The 5-tuple information is a source IP Address, destination IP address, source port, destination port, and application information.

이후 계산된 해쉬에 의해 패킷 데이터를 전달할 해당 쓰레드의 버퍼가 가득찬 상태인지를 판단한다(206), Thereafter, it is determined whether the buffer of the thread to which the packet data is to be delivered is full (206)

해당 쓰레드의 버퍼가 가득차지 않은 경우에는 해당 쓰레드로만 패킷 데이터를 전달한다(207).If the buffer of the thread is not full, the packet data is transmitted only to the thread (207).

만일, 해당 쓰레드의 버퍼가 가득찬 경우에는 할당된 쓰레드 중 가득차지 않은 쓰레드로 패킷 데이터를 전달한다.(208) If the buffer of the thread is full, the packet data is transferred to the non-occupied thread among the allocated threads (208)

쓰레드로 전달된 패킷은 큐 매핑 모듈을 통해 해당 큐로 패킷 데이터를 전달(209)한다.The packet forwarded to the thread passes the packet data to the queue through the queue mapping module (209).

해쉬모드로 설정하고 쓰레드의 버퍼가 가득 차는 경우에도 해당 쓰레드로만 패킷 데이터를 전달하도록 설정하면, 데이터의 손실이 발생하나 다른 쓰레드로의 분배는 일어나지 않는다.If it is set to hash mode and the thread's buffer is full, setting the packet data to be transmitted only to that thread will result in loss of data but not distribution to other threads.

도 3은 가상머신 QoS 보장형 무손실 부하 분산 방법에 있어 가상머신(106)의 자원 할당 정보의 변경이 있을 경우에 워크 쓰레드, PCIe 쓰레드 할당 정보 변경(203)을 실시하기 위한 QoS 정보 갱신 알고리즘이다. 3 is a QoS information update algorithm for implementing a work thread and PCIe thread allocation information change 203 when there is a change in the resource allocation information of the virtual machine 106 in the virtual machine QoS guarantee type lossless load distribution method.

하이퍼바이저(104)에서 가상머신(VM) 자원할당 정보의 변경을 감지(300)한다. The hypervisor 104 detects (300) a change in virtual machine (VM) resource allocation information.

하이퍼바이저에서 가상머신(VM)의 자원할당 정보 변경이 감지(300)되면 자원할당 변경 정보를 생성하여 서버 QoS 모듈(108)로 전달(301)한다.When a change in resource allocation information of a virtual machine (VM) is detected 300 in the hypervisor, resource allocation change information is generated and transmitted 301 to the server QoS module 108.

서버 QoS 모듈(108)은 상기 자원할당 변경 정보를 클라이언트 QoS 모듈(109)로 전달(302)한다.The server QoS module 108 transfers the resource allocation change information to the client QoS module 109 (302).

클라이언트 QoS 모듈(109)은 수신한 자원할당 변경 정보를 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로 전송한다.The client QoS module 109 transmits the received resource allocation change information to the flow-based virtual machine QoS guarantee type load balancing module 100.

플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 수신한 자원할당 변경 정보를 기반으로 가상머신과 쓰레드와의 매핑 정보를 갱신(304)한다. The flow-based virtual machine QoS guaranteed load balancing module 100 updates (304) the mapping information between the virtual machine and the thread based on the received resource allocation change information.

이후, 갱신된 가상머신과 쓰레드와의 매핑 정보에 따라 특정 워크 쓰레드 및 PCIe 쓰레드의 매핑 정보의 변경 여부를 판단한다(304).Thereafter, it is determined whether the mapping information of the specific work thread and the PCIe thread is changed according to the mapping information between the updated virtual machine and the thread (304).

특정 워크 쓰레드 및 PCIe 쓰레드의 매핑 정보 변경이 없으면 종료하고, 있을 경우, 쓰레드 관리 모듈(110)로 변경된 매핑 정보를 전달(305)한다.If there is no change in the mapping information of the specific work thread and the PCIe thread, the process terminates. If there is the mapping information, the thread management module 110 transfers the changed mapping information (305).

쓰레드 관리 모듈(110)은 변경된 매핑 정보에 따라 해당 워크 쓰레드 또는 PCIe 쓰레드의 매핑 변경을 수행한다.The thread management module 110 performs mapping of the corresponding work thread or PCIe thread according to the changed mapping information.

100: 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈
101: 워크 쓰레드
102: PCIe 쓰레드
103: 큐 매핑 모듈
104: 하이퍼바이저
105: 코어
106: 가상머신
107: 멀티코어서버
108: 서버 QoS 모듈
109: 클라이언트 QoS 모듈
110: 쓰레드 관리 모듈
111: 멀티코어 네트워크 모듈
100: Flow-based virtual machine QoS guaranteed load balancing module
101: Work thread
102: PCIe thread
103: Queue mapping module
104: hypervisor
105: Core
106: Virtual Machine
107: Multi-core server
108: Server QoS module
109: Client QoS module
110: thread management module
111: Multicore network module

Claims (4)

가상머신 QoS 보장형 무손실 부하 분산 시스템에 있어서,
플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100), 워크 쓰레드(101), PCIe 쓰레드(102), 클라이언트 QoS 모듈(109), 쓰레드 관리 모듈(110)을 포함하는 멀티코어 네트워크 모듈(111)과 큐 매핑 모듈(103)과, 하이퍼바이저(104),코어(105), 가상머신(106), 서버 QoS 모듈(108)을 포함하는 멀티코어서버(107)을 포함하는 것을 특징으로 하며,
상기 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)은 클라이언트 QoS 모듈(109)로부터 수신한 가상머신(106)의 코어 할당 정보를 기반으로 각 가상머신(106)에 할당할 워크 쓰레드(101)와 PCIe 쓰레드(102)가 무엇인지를 결정하고 그에 따른 쓰레드할당정보를 생성하여 쓰레드 관리 모듈(110)로 전달하며, 입력되는 패킷의 플로우 정보를 기반으로 어느 가상머신(105)의 데이터인지 확인하고 해당 가상머신(105)에 할당된 워크 쓰레드(101)들로 패킷 데이터를 전송하고,
상기 워크 쓰레드(101)는 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로부터 패킷 데이터를 수신하고,
상기 PCIe 쓰레드(102)는 워크 쓰레드(101)로부터 수신받은 페킷 데이터를 코어(105) 수 만큼의 서로 다른 데이터 집단으로 나누고, 나누어진 데이터를 큐 매핑 모듈(103)에 의해 1:1로 매핑된 해당 큐에 저장하고, 큐에 저장된 데이터를 각 큐마다 할당되어 있는 코어(105)로 PCI-express 통신 통로를 통해 전달하고,
상기 클라이언트 QoS 모듈(109)은 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로 가상머신(106)의 코어 할당 정보를 전송하고,
상기 쓰레드 관리 모듈(110)은 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)에서 전송된 쓰레드할당정보에 따라 워크 쓰레드(101)와 PCIe 쓰레드(102)를 각 가상머신(106)에 할당하고,
상기 큐 매핑 모듈(103)은 각 PCIe 쓰레드(102)와 1:1로 큐를 매핑 하고, 매핑 된 큐를 각 코어마다 할당하고,
상기 하이퍼바이저(104)는 가상 머신(106)의 자원 할당 정보 변경이 감지되면 자원 할당 변경정보를 생성하며, 가상머신(106)에 대한 접근을 제어하고,
상기 코어(105)는 각 PCIe 쓰레드(102)와 1:1로 매핑 된 패킷 큐로부터 패킷 데이터를 가져와서 응용 프로그램을 수행하고,
상기 가상머신(106)은 코어(105)를 할당 받아 사용하고,
상기 서버 QoS 모듈(108)은 하이퍼바이저(104)로부터 각 가상머신(106)의 코어 할당 정보를 획득하고, 클라이언트 QoS 모듈(109)로 코어 할당 정보를 전송하는 것을 특징으로 하는 가상머신 QoS 보장형 무손실 부하 분산 시스템.
In a virtual machine QoS guaranteed type lossless load distribution system,
Core network module 111 including a flow-based virtual machine QoS guaranteed load balancing module 100, a work thread 101, a PCIe thread 102, a client QoS module 109, a thread management module 110, Core server 107 including a mapping module 103 and a hypervisor 104, a core 105, a virtual machine 106, and a server QoS module 108,
The flow-based virtual machine QoS guarantee type load balancing module 100 includes a work thread 101 to be allocated to each virtual machine 106 based on core allocation information of the virtual machine 106 received from the client QoS module 109, Determines what the PCIe thread 102 is and generates thread allocation information according to the generated thread allocation information, transfers the thread allocation information to the thread management module 110, checks which virtual machine 105 is the data based on the flow information of the input packet, Transmits packet data to the work threads 101 assigned to the virtual machine 105,
The work thread 101 receives packet data from the flow-based virtual machine QoS guaranteed load balancing module 100,
The PCIe thread 102 divides the packet data received from the work thread 101 into different data groups corresponding to the number of cores 105 and divides the divided data into 1: Stores the data in the queue, delivers the data stored in the queue to the core 105 allocated to each queue through the PCI-express communication path,
The client QoS module 109 transmits core allocation information of the virtual machine 106 to the flow-based virtual machine QoS guaranteed load balancing module 100,
The thread management module 110 allocates the work thread 101 and the PCIe thread 102 to each virtual machine 106 according to the thread allocation information transmitted from the flow-based virtual machine QoS guarantee type load balancing module 100,
The queue mapping module 103 maps a queue with each PCIe thread 102 in a 1: 1 manner, allocates a mapped queue for each core,
The hypervisor 104 generates resource allocation change information when a change in resource allocation information of the virtual machine 106 is detected, controls access to the virtual machine 106,
The core 105 fetches packet data from a 1: 1 mapped packet queue with each PCIe thread 102 to perform an application program,
The virtual machine 106 allocates and uses the core 105,
The server QoS module 108 obtains core allocation information of each virtual machine 106 from the hypervisor 104 and transmits core allocation information to the client QoS module 109. [ Load balancing system.
제1항에 있어서,
상기 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)이 패킷 데이터를 전송함에 있어 입력되는 패킷 데이터의 순서에 따라 각 워크 쓰레드에 전달하는 균등부하분산 방식 또는 입력되는 패킷 데이터의 플로우 정보인 소스 IP주소, 목적지 IP 주소, 소스 포트, 목적지 포트, 어플리케이션의 5가지 항목을 추출하여 해쉬 정보를 생성하고, 생성된 해쉬 정보를 사용하여 동일 해쉬 정보를 가지는 데이터는 동일한 워크 쓰레드로 전달하는 해쉬모드 방식을 이용하여 전송하는 것을 특징으로 하는 가상머신 QoS 보장형 무손실 부하 분산 시스템.
The method according to claim 1,
Based virtual machine QoS guarantee type load balancing module 100 transmits the packet data to each work thread in accordance with the order of the packet data to be inputted or the source IP address which is the flow information of the input packet data , Destination IP The hash information is generated by extracting five items of address, source port, destination port, and application, and the data having the same hash information using the generated hash information is transmitted using the hash mode method for delivering the same hash information to the same work thread And a virtual machine QoS guaranteed type lossless load distribution system.
가상머신 QoS 보장형 무손실 부하 분산 방법에 있어서,
패킷 데이터를 입력받는 단계와,
가상머신(VM)(106)의 자원 할당 정보 변경 여부를 판별하는 단계와,
가상머신(106)의 자원 할당 정보의 변경이 없는 경우는 바로 해쉬모드 적용 여부를 판별하고, 가상머신(106)의 자원 할당 정보의 변경이 있는 경우에는 워크 쓰레드, PCIe 쓰레드 할당 정보 변경을 실시한 후, 해쉬모드 적용 여부를 판별하는 단계와,
해쉬모드 적용 여부 판별 결과가 해쉬 모드를 적용하지 않는 것으로 판별되면 설정된 쓰레드로 데이터를 쓰레드별 균등 분배하는 단계와,
해쉬모드 적용 여부 판별 결과가 해쉬 모드를 적용하는 것으로 판별되면, 입력되는 패킷 데이터의 플로우를 추출하고, 5-tuple 정보를 이용하여 해쉬를 계산하는 단계와.
계산된 해쉬에 의해 패킷 데이터를 전달할 해당 쓰레드의 버퍼가 가득찬 상태인지를 판단하는 단계와,
해당 쓰레드의 버퍼가 가득차지 않은 것으로 판단되는 경우, 해당 쓰레드로만 패킷 데이터를 전달하는 단계와.
해당 쓰레드의 버퍼가 가득찬 것으로 판단되는 경우, 할당된 쓰레드 중 가득차지 않은 쓰레드로 패킷 데이터를 전달하는 단계와,
쓰레드로 전달된 패킷 데이터를 큐 매핑 모듈을 통해 해당 큐로 전달하는 단계를 포함하며,
상기 5-tuple 정보는 소스 IP 주소, 목적지 IP 주소, 소스 포트, 목적지 포트, 어플리케이션 정보를 포함하는 것을 특징으로 하는 가상머신 QoS 보장형 무손실 부하 분산 방법.
In a virtual machine QoS guaranteed type lossless load balancing method,
Receiving packet data;
Determining whether the virtual machine (VM) 106 has changed the resource allocation information,
If there is no change in the resource allocation information of the virtual machine 106, it is determined whether or not to apply the hash mode immediately. If there is a change in the resource allocation information of the virtual machine 106, the work thread and PCIe thread allocation information are changed , Determining whether the hash mode is applied or not,
If the determination result of the hash mode application determination is that the hash mode is not applied, distributing the data to the set thread by threads,
Extracting a flow of input packet data and calculating a hash using 5-tuple information if it is determined that the hash mode is applied to the hash mode;
Determining whether the buffer of the thread to which the packet data is to be delivered is full by the calculated hash,
If the buffer of the thread is judged not to be full, transferring packet data only to the thread;
Delivering packet data to an unfilled thread of an allocated thread if the buffer of the thread is determined to be full;
And forwarding the packet data delivered to the thread to the queue through a queue mapping module,
The 5-tuple information includes source IP Address, destination IP Address, a source port, a destination port, and application information.
제3항에 있어서,
상기 가상머신(106)의 자원 할당 정보의 변경이 있는 경우의 워크 쓰레드, PCIe 쓰레드 할당 정보 변경은,
하이퍼바이저(104)가 가상머신(VM)의 자원할당 정보의 변경을 감지하는 단계와.
하이퍼바이저에서 가상머신(VM)의 자원할당 정보 변경이 감지(300)되면 자원할당 변경 정보를 생성하여 서버 QoS 모듈(108)로 전달하는 단계와,
서버 QoS 모듈(108)이 상기 자원할당 변경 정보를 클라이언트 QoS 모듈(109)로 전달하는 단계와,
클라이언트 QoS 모듈(109)이 수신한 자원할당 변경 정보를 플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)로 전송하는 단계와,
플로우 기반 가상머신 QoS 보장형 부하 분산 모듈(100)이 수신한 자원할당 변경 정보를 기반으로 가상머신과 쓰레드와의 매핑 정보를 갱신하는 단계와,
갱신된 가상머신과 쓰레드와의 매핑 정보에 따라 특정 워크 쓰레드 및 PCIe 쓰레드의 매핑 정보의 변경 여부를 판단하는 단계와,
특정 워크 쓰레드 및 PCIe 쓰레드의 매핑 정보 변경이 없으면 종료하고, 있을 경우, 쓰레드 관리 모듈(110)로 변경된 매핑 정보를 전달하는 단계와,
쓰레드 관리 모듈(110)이 변경된 매핑 정보에 따라 해당 워크 쓰레드 또는 PCIe 쓰레드의 매핑 변경을 수행하는 단계를 포함하는 것을 특징으로 하는 가상머신 QoS 보장형 무손실 부하 분산 방법.


The method of claim 3,
The change of the work thread and the PCIe thread allocation information when there is a change in the resource allocation information of the virtual machine 106,
The hypervisor 104 detecting a change in the resource allocation information of the virtual machine (VM);
Generating and transmitting resource allocation change information to the server QoS module 108 when the hypervisor detects (300) a change in resource allocation information of a virtual machine (VM)
The server QoS module 108 transfers the resource allocation change information to the client QoS module 109,
Transmitting the resource allocation change information received by the client QoS module 109 to the flow-based virtual machine QoS guarantee type load balancing module 100,
Updating the mapping information between the virtual machine and the thread based on the resource allocation change information received by the flow-based virtual machine QoS guarantee type load balancing module 100,
Determining whether the mapping information of the specific work thread and the PCIe thread is changed according to the mapping information between the updated virtual machine and the thread,
If there is no change in the mapping information of the specific work thread and the PCIe thread, terminating the thread, and if there is, transmitting the changed mapping information to the thread management module 110,
And changing the mapping of the work thread or the PCIe thread according to the changed mapping information by the thread management module (110).


KR1020160159765A 2016-11-29 2016-11-29 System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines KR20180060353A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160159765A KR20180060353A (en) 2016-11-29 2016-11-29 System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160159765A KR20180060353A (en) 2016-11-29 2016-11-29 System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines

Publications (1)

Publication Number Publication Date
KR20180060353A true KR20180060353A (en) 2018-06-07

Family

ID=62622005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160159765A KR20180060353A (en) 2016-11-29 2016-11-29 System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines

Country Status (1)

Country Link
KR (1) KR20180060353A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857547A (en) * 2019-01-04 2019-06-07 平安科技(深圳)有限公司 A kind of thread distribution method, device and terminal device
KR20200082133A (en) * 2018-12-28 2020-07-08 주식회사 에프아이시스 Device and Method for Data Transmission and QoS Guarantee of Virtual Machines in Multicore-based Network Interface Card

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980010814U (en) * 1996-08-13 1998-05-15 김철문 Water pipe for veranda
KR20050063605A (en) * 2003-12-22 2005-06-28 한국전자통신연구원 Wireless lan system and dma data transmission control method for the same
KR20140055761A (en) 2012-11-01 2014-05-09 주식회사 윈스 Hashing method for distributed data processing to process high-speed network massive traffic processing and hashing system for distributed data processing
KR20160027337A (en) * 2014-08-28 2016-03-10 한국전자통신연구원 Apparatus and method for managing resource in virtualization environment
KR20160073867A (en) * 2014-12-17 2016-06-27 (주)구름네트웍스 Apparatus for virtualizing a network interface, method thereof and computer program for excuting the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980010814U (en) * 1996-08-13 1998-05-15 김철문 Water pipe for veranda
KR20050063605A (en) * 2003-12-22 2005-06-28 한국전자통신연구원 Wireless lan system and dma data transmission control method for the same
KR20140055761A (en) 2012-11-01 2014-05-09 주식회사 윈스 Hashing method for distributed data processing to process high-speed network massive traffic processing and hashing system for distributed data processing
KR20160027337A (en) * 2014-08-28 2016-03-10 한국전자통신연구원 Apparatus and method for managing resource in virtualization environment
KR20160073867A (en) * 2014-12-17 2016-06-27 (주)구름네트웍스 Apparatus for virtualizing a network interface, method thereof and computer program for excuting the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082133A (en) * 2018-12-28 2020-07-08 주식회사 에프아이시스 Device and Method for Data Transmission and QoS Guarantee of Virtual Machines in Multicore-based Network Interface Card
CN109857547A (en) * 2019-01-04 2019-06-07 平安科技(深圳)有限公司 A kind of thread distribution method, device and terminal device

Similar Documents

Publication Publication Date Title
US10120729B2 (en) Virtual machine load balancing
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
WO2019055101A1 (en) Network traffic rate limiting in computing systems
US10235211B2 (en) Method and apparatus for dynamic virtual system on chip
US11531752B2 (en) Technologies for control plane separation in a network interface controller
US11593134B2 (en) Throttling CPU utilization by implementing a rate limiter
US9602331B2 (en) Shared interface among multiple compute units
US20130080638A1 (en) Distributed virtual appliance
KR102019212B1 (en) Method, apparatus and computer program for service fuction chainnig
EP4004751B1 (en) Pinned physical memory supporting direct memory access for virtual memory backed containers
KR102433765B1 (en) Apparatus and method for managing computing resources in network function virtualization system
CN114553780A (en) Load balancing method and device and network card
Hu et al. Towards efficient server architecture for virtualized network function deployment: Implications and implementations
US20200274820A1 (en) Dynamic provisioning of multiple rss engines
WO2021041431A1 (en) Computer device including process isolated containers with assigned virtual functions
Guenender et al. NoEncap: overlay network virtualization with no encapsulation overheads
Katsikas et al. Metron: High-performance NFV service chaining even in the presence of blackboxes
KR20180060353A (en) System and Method for loseless load sharing acceleration and QoS guarantee of Virtual Machines
Zeng et al. XCollOpts: A novel improvement of network virtualizations in Xen for I/O-latency sensitive applications on multicores
KR20140011539A (en) System and method of virtualization for network application and the apparatus
US20150049096A1 (en) Systems for Handling Virtual Machine Graphics Processing Requests
US20230109396A1 (en) Load balancing and networking policy performance by a packet processing pipeline
KR20170125564A (en) Packet distribution method and apparatus for parallel packet processing
Hong et al. Kafe: Can os kernels forward packets fast enough for software routers?
KR102145183B1 (en) Device and Method for Data Transmission and QoS Guarantee of Virtual Machines in Multicore-based Network Interface Card

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application