KR102216746B1 - virtual machine placement method in a virtual machine based service function chaining - Google Patents
virtual machine placement method in a virtual machine based service function chaining Download PDFInfo
- Publication number
- KR102216746B1 KR102216746B1 KR1020160150093A KR20160150093A KR102216746B1 KR 102216746 B1 KR102216746 B1 KR 102216746B1 KR 1020160150093 A KR1020160150093 A KR 1020160150093A KR 20160150093 A KR20160150093 A KR 20160150093A KR 102216746 B1 KR102216746 B1 KR 102216746B1
- Authority
- KR
- South Korea
- Prior art keywords
- service
- node
- link
- nodes
- service nodes
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims description 38
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- FGXWKSZFVQUSTL-UHFFFAOYSA-N domperidone Chemical compound C12=CC=CC=C2NC(=O)N1CCCN(CC1)CCC1N1C2=CC=C(Cl)C=C2NC1=O FGXWKSZFVQUSTL-UHFFFAOYSA-N 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
가상 머신 기반의 서비스 펑션 체이닝에 있어서 가상 머신의 배치 방법 및 장치가 개시된다. 서비스 노드들의 배치 방법은 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하는 단계; 서비스 체인을 구성하는 서비스 노드들 간의 링크 별 링크 비용을 산출하고, 산출된 링크 비용에 따라 서비스 노드들 간의 링크를 정렬하는 단계; 적어도 하나의 컴퓨팅 노드의 잔여 자원을 확인하는 단계; 및 서비스 노드들의 요구 자원, 링크별 비용, 및 적어도 하나의 컴퓨팅 노드의 잔여 자원에 기초하여, 서비스 노드들을 그룹핑하여 유사(pseudo) 서비스 노드를 구성하고, 유사 서비스 노드를 적어도 하나의 컴퓨팅 노드 중 하나의 컴퓨팅 노드에 할당하는 단계를 포함하여 구성될 수 있다.Disclosed are a method and apparatus for arranging a virtual machine in a virtual machine-based service function chaining. The method of arranging service nodes includes the steps of: determining required resources of service nodes constituting a service chain; Calculating a link cost for each link between service nodes constituting a service chain, and aligning links between service nodes according to the calculated link cost; Checking remaining resources of at least one computing node; And a pseudo service node by grouping service nodes on the basis of the requested resource of the service nodes, the cost for each link, and the residual resource of at least one computing node, and the similar service node is one of at least one computing node. It may be configured including the step of allocating to the computing node.
Description
본 발명은 가상 머신 기반의 서비스 펑션 체이닝(SFC: Service Function Chaining)에 관한 것으로, 더욱 상세하게는 서비스 성능 향상을 위하여 서비스 체인을 구성하는 가상 머신 기반의 서비스 노드(service node)들을 효율적인 배치하는 방법 및 장치에 관한 것이다.The present invention relates to a virtual machine-based service function chaining (SFC), and more particularly, a method of efficiently deploying virtual machine-based service nodes constituting a service chain to improve service performance. And to an apparatus.
네트워크 기능 가상화(Network Functions Virtualization, NFV) 기술은 기존에 독립된 하드웨어 장치들로 구현된 네트워크 주소 변환(NAT: Network Address Translation), 방화벽(Firewall), 침입 방지 서비스(IPS: Intrusion Prevention System), 가상 사설 네트워크(VPN: Virtual Private Network) 등의 다양한 네트워크 기능을 소프트웨어 형태의 가상 머신 기반으로 구현하고 운용하는 가상화 기술이다. 따라서, NFV 기술을 활용하면 소프트웨어 기반 프레임워크를 사용하여 네트워크 서비스의 유연성을 향상시킬 수 있다. Network Functions Virtualization (NFV) technology is a network address translation (NAT), firewall, intrusion prevention system (IPS), and virtual private implemented with independent hardware devices. It is a virtualization technology that implements and operates various network functions such as a network (VPN: Virtual Private Network) based on a virtual machine in the form of software. Therefore, if NFV technology is used, the flexibility of network services can be improved by using a software-based framework.
또한, 트래픽에 따라 필요한 네트워크 기능들을 선택적으로 조합 및 실행하여 하나의 네트워크 서비스를 구현하는 서비스 체이닝(Service Chaining) 또는 서비스 펑션 체이닝(Service Function Chaining, SFC) 기술에 대한 관심이 증대되고 있다. In addition, there is increasing interest in service chaining or service function chaining (SFC) technology that implements one network service by selectively combining and executing network functions required according to traffic.
서비스 펑션 체이닝(Service Function Chaining, SFC)는 네트워크 이용자의 트래픽이 NAT, Firewall, IPS등과 같은 네트워크 서비스 중에서 이용자에게 필요한 기능들만 선택적으로 경유하도록 하는 개념이며, 이러한 서비스들은 물리적인 서버에서 동작할 수도 있고 가상 머신 상에서 동작할 수도 있다. 따라서, SFC는 NFV(Network Function Virtualization)와 밀접한 관계를 가지는 개념으로 이해될 수 있다.Service Function Chaining (SFC) is a concept that allows network users' traffic to selectively pass through only the functions necessary for the user among network services such as NAT, Firewall, and IPS, and these services can be operated on a physical server. It can also run on a virtual machine. Therefore, SFC can be understood as a concept having a close relationship with NFV (Network Function Virtualization).
가상화된 네트워크 서비스에 대한 관심에 따라, 다양한 공개 및 상용 가상화 서비스 플랫폼이 제공되고 있다. 이와 같은 가상 서비스 플랫폼에 가상 머신을 배치하여 서비스 기능을 제공하게 된다. 이때 가상 머신이 배치되는 물리적인 컴퓨터를 컴퓨팅 노드라하고 컴퓨팅 노드 상에 가상 머신을 구동하는 것을 배치(Placement) 혹은 스케쥴링(Scheduling)이라한다. 가상 머신을 이용한 서비스는 서비스 체이닝이라는 수단을 이용하여 정의되는데, 이 서비스 체이닝을 서비스 제공을 위해 각 가상 머신 간의 연결을 표현하게 된다. 이때 서비스 체이닝을 이루는 가상 머신을 서비스 노드라고 한다.In accordance with interest in virtualized network services, various public and commercial virtualization service platforms are being provided. A virtual machine is deployed on such a virtual service platform to provide service functions. In this case, the physical computer on which the virtual machine is placed is called a computing node, and running the virtual machine on the computing node is called placement or scheduling. A service using a virtual machine is defined using a means of service chaining, and this service chaining expresses the connection between each virtual machine to provide a service. At this time, the virtual machine that forms the service chain is called a service node.
그러나, 서비스 제공이 목적인 가상 머신 간의 통신은 상당한 성능적 제한을 가져오게 된다. 즉, 다른 컴퓨팅 노드에 배치된 가상 머신은 다양한 방식(VLAN, VxLAN, GRE 등)의 통신 부하가 발생하게 된다. 따라서, 가상 머신으로 구성된 서비스 노드들을 적절하게 배치하는 것은 제공되는 네트워크 서비스의 성능에 중요한 영향을 미치게 된다.However, communication between virtual machines for the purpose of providing a service brings significant performance limitations. In other words, virtual machines deployed on different computing nodes generate a communication load of various methods (VLAN, VxLAN, GRE, etc.). Therefore, appropriately arranging service nodes composed of virtual machines has an important influence on the performance of a provided network service.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, NFV 기반의 서비스 펑션 체이닝 환경에서, 각 가상 머신 서비스 노드를 컴퓨팅 노드에 효율적으로 배치하여, 제공되는 네트워크 서비스의 성능을 향상시킬 수 있는, 가상 머신 서비스 노드의 배치 방법을 제공하는데 있다.An object of the present invention for solving the above problems is, in an NFV-based service function chaining environment, virtual machine service nodes are efficiently arranged in a computing node to improve the performance of a provided network service. It is to provide a method of deploying machine service nodes.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, NFV 기반의 서비스 펑션 체이닝 환경에서, 각 가상 머신 서비스 노드를 컴퓨팅 노드에 효율적으로 배치하여, 제공되는 네트워크 서비스의 성능을 향상시킬 수 있는, 가상 머신 서비스 노드의 배치 장치를 제공하는데 있다.Another object of the present invention for solving the above problems is that in an NFV-based service function chaining environment, each virtual machine service node is efficiently arranged in a computing node, thereby improving the performance of a provided network service. It is to provide a device for deploying virtual machine service nodes.
상기 목적을 달성하기 위한 본 발명은, 서비스 펑션 체이닝에 있어서, 서비스 체인을 구성하는 서비스 노드들의 배치 방법으로서, 상기 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하는 단계(a); 상기 서비스 체인을 구성하는 서비스 노드들 간의 링크 별 링크 비용을 산출하고, 상기 산출된 링크 비용에 따라 서비스 노드들 간의 링크를 정렬하는 단계(b); 적어도 하나의 컴퓨팅 노드의 잔여 자원을 확인하는 단계(c); 및 상기 서비스 노드들의 요구 자원, 상기 링크별 비용, 및 상기 적어도 하나의 컴퓨팅 노드의 잔여 자원에 기초하여, 상기 서비스 노드들을 그룹핑하여 유사(pseudo) 서비스 노드를 구성하고, 상기 유사 서비스 노드를 상기 적어도 하나의 컴퓨팅 노드 중 하나의 컴퓨팅 노드에 할당하는 단계(d)를 포함할 수 있다.In order to achieve the above object, the present invention provides a method for arranging service nodes constituting a service chain in service function chaining, comprising the steps of: (a) identifying required resources of service nodes constituting the service chain; (B) calculating a link cost for each link between service nodes constituting the service chain, and aligning links between service nodes according to the calculated link cost; (C) checking the remaining resources of at least one computing node; And configuring a pseudo service node by grouping the service nodes based on the requested resource of the service nodes, the cost for each link, and the remaining resource of the at least one computing node, and the similar service node It may include the step (d) of allocating to one of the one computing node.
여기에서, 상기 서비스 노드들의 요구 자원은 각 서비스 노드의 동작에 필요한 컴퓨팅 자원, 디스크 용량, 및 메모리 용량 중 적어도 하나를 포함할 수 있다.Here, the required resource of the service nodes may include at least one of a computing resource, a disk capacity, and a memory capacity required for operation of each service node.
여기에서, 상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초하여 산출될 수 있다. 또한, 상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초한 비용함수(cost function)를 이용하여 산출될 수 있다.Here, the link cost may be calculated based on at least one of a requested number of transactions, a requested bandwidth, and an importance level between links between the service nodes. In addition, the link cost may be calculated using a cost function based on at least one of a number of requested transactions, a requested bandwidth, and an importance level between links between the service nodes.
여기에서, 상기 할당하는 단계에서, 상기 링크 비용의 순서대로 정렬된 링크들 중 높은 링크 비용을 가지는 링크부터, 해당 링크를 구성하는 서비스 노드들이 동일한 컴퓨팅 노드에 할당되어 상기 유사 서비스 노드를 구성할 수 있다.Here, in the allocating step, from a link having a high link cost among the links arranged in the order of the link cost, service nodes constituting the link are allocated to the same computing node to configure the similar service node. have.
이때, 상기 유사 서비스 노드를 구성하는 서비스 노드들의 요구 자원들의 합이 상기 동일한 컴퓨팅 노드의 여유 자원보다 작도록 구성된다.In this case, the sum of the requested resources of the service nodes constituting the similar service node is configured to be smaller than the spare resources of the same computing node.
여기에서, 상기 서비스 노드는 가상 머신(virtual machine) 기반으로 동작될 수 있다.Here, the service node may be operated based on a virtual machine.
여기에서, 상기 단계(c) 및 단계(d)는 더 이상 유사 서비스 노드가 구성되지 않을 때까지 반복적으로 수행될 수 있다.Here, steps (c) and (d) may be repeatedly performed until similar service nodes are no longer configured.
상기 다른 목적을 달성하기 위한 본 발명은, 네트워크 기능 가상화(NFV: Network Function Virtualization) 기반의 서비스 펑션 체이닝에 있어서, 프로그램 코드를 적재한 메모리 장치와 상기 프로그램 코드를 실행하는 적어도 하나의 프로세서를 포함하고, 서비스 체인을 구성하는 서비스 노드들의 배치를 수행하는 장치로서, 상기 프로그램 코드는, 오케스트레이터(Orchestrator) 또는 소정의 명세(description)로부터 상기 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하는 단계(a); 상기 서비스 체인을 구성하는 서비스 노드들 간의 링크 별 링크 비용을 산출하고, 상기 산출된 링크 비용에 따라 서비스 노드들 간의 링크를 정렬하는 단계(b); 네트워크 기능 가상화 인프라스트럭춰(NFVI: Network Function Virtualization Infrastructure) 상에 존재하는, 적어도 하나의 컴퓨팅 노드의 잔여 자원을 확인하는 단계(c); 및 상기 서비스 노드들의 요구 자원, 상기 링크별 비용, 및 상기 적어도 하나의 컴퓨팅 노드의 잔여 자원에 기초하여, 상기 서비스 노드들을 그룹핑하여 유사(pseudo) 서비스 노드를 구성하고, 상기 유사 서비스 노드를 상기 적어도 하나의 컴퓨팅 노드 중 하나의 컴퓨팅 노드에 할당하는 단계(d)를 포함할 수 있다.The present invention for achieving the above other object is, in the service function chaining based on Network Function Virtualization (NFV), including a memory device loaded with a program code and at least one processor executing the program code, , As an apparatus for performing arrangement of service nodes constituting a service chain, the program code is a step of grasping requested resources of service nodes constituting the service chain from an orchestrator or a predetermined description ( a); (B) calculating a link cost for each link between service nodes constituting the service chain, and aligning links between service nodes according to the calculated link cost; (C) checking a residual resource of at least one computing node existing on a network function virtualization infrastructure (NFVI); And configuring a pseudo service node by grouping the service nodes based on the requested resource of the service nodes, the cost for each link, and the remaining resource of the at least one computing node, and the similar service node It may include the step (d) of allocating to one of the one computing node.
여기에서, 상기 서비스 노드들의 요구 자원은 각 서비스 노드의 동작에 필요한 컴퓨팅 자원, 디스크 용량, 및 메모리 용량 중 적어도 하나를 포함할 수 있다.Here, the required resource of the service nodes may include at least one of a computing resource, a disk capacity, and a memory capacity required for operation of each service node.
여기에서, 상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초하여 산출될 수 있다. 또한, 상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초한 비용함수(cost function)를 이용하여 산출될 수 있다.Here, the link cost may be calculated based on at least one of a requested number of transactions, a requested bandwidth, and an importance level between links between the service nodes. In addition, the link cost may be calculated using a cost function based on at least one of a number of requested transactions, a requested bandwidth, and an importance level between links between the service nodes.
여기에서, 상기 할당하는 단계에서, 상기 링크 비용의 순서대로 정렬된 링크들 중 높은 링크 비용을 가지는 링크부터, 해당 링크를 구성하는 서비스 노드들이 동일한 컴퓨팅 노드에 할당되어 상기 유사 서비스 노드를 구성할 수 있다.Here, in the allocating step, from a link having a high link cost among the links arranged in the order of the link cost, service nodes constituting the link are allocated to the same computing node to configure the similar service node. have.
이때, 상기 유사 서비스 노드를 구성하는 서비스 노드들의 요구 자원들의 합이 상기 동일한 컴퓨팅 노드의 여유 자원보다 작도록 구성될 수 있다.In this case, the sum of the required resources of the service nodes constituting the similar service node may be configured to be smaller than the spare resources of the same computing node.
여기에서, 상기 단계(c) 및 단계(d)는 더 이상 유사 서비스 노드가 구성되지 않을 때까지 반복적으로 수행될 수 있다.Here, steps (c) and (d) may be repeatedly performed until similar service nodes are no longer configured.
여기에서, 상기 장치는 가상화 인프라스트럭춰 관리자(VIM: Virtualized Infrastructure Manager)에 포함될 수 있다.Here, the device may be included in a virtualized infrastructure manager (VIM).
상기와 같은 본 발명에 따른 서비스 노드 배치 방법 및 장치를 이용하면, 유사 서비스 노드를 구성하여 컴퓨팅 노드에 서비스 노드를 효율적으로 배치함으로써 가상 머신이 다른 컴퓨팅 노드에 배치된 가상 머신과 통신할 때 발생하는 부하를 경감할 수 있다.Using the service node arrangement method and apparatus according to the present invention as described above, by configuring a similar service node and efficiently placing the service node on the computing node, The load can be reduced.
도 1은 본 발명에 따른 서비스 노드 배치 방법이 적용될 수 있는 서비스 체인의 구성을 예시한 개념도이다.
도 2는 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드간 링크들의 링크 비용 개념을 예시한 것이다.
도 3은 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드간 링크들에 대해서 산출된 링크 비용들을 예시한 테이블이다.
도 4는 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드들이 할당될 수 있는 컴퓨팅 노드들을 예시한 테이블이다.
도 5는 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 링크 비용에 유사 서비스 노드 구성 개념을 도시한 개념도이다.
도 6은 본 발명의 서비스 노드 배치 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 서비스 노드 배치 방법의 전체적인 개념도이다.
도 8은 본 발명의 서비스 노드 배치 방법이 NFV 아키텍춰 상에 수행되는 개념을 설명하기 위한 블록도이다.1 is a conceptual diagram illustrating a configuration of a service chain to which a service node arrangement method according to the present invention can be applied.
2 is a diagram illustrating a concept of link cost of links between service nodes constituting a service chain according to an embodiment of the method for distributing service nodes of the present invention.
3 is a table illustrating link costs calculated for links between service nodes constituting a service chain according to an embodiment of the service node arrangement method of the present invention.
4 is a table illustrating computing nodes to which service nodes constituting a service chain can be allocated according to an embodiment of the method of disposing a service node of the present invention.
5 is a conceptual diagram illustrating a concept of configuring a similar service node in relation to a link cost according to an embodiment of a service node arrangement method of the present invention.
6 is a flow chart for explaining a service node arrangement method according to the present invention.
7 is an overall conceptual diagram of a service node arrangement method according to the present invention.
8 is a block diagram for explaining a concept in which the service node arrangement method of the present invention is performed on the NFV architecture.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals have been used for similar elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 서비스 노드 배치 방법이 적용될 수 있는 서비스 체인의 구성을 예시한 개념도이다.1 is a conceptual diagram illustrating a configuration of a service chain to which a service node arrangement method according to the present invention can be applied.
도 1은 일반적인 서비스 체이닝 그래프()로서, 서비스 체인(100)을 예시히고 있다. 1 is a general service chaining graph (), illustrating a
도 1을 참조하면, 서비스 체인(100)은 n개의 서비스 노드(101, 102, 103, 104)로 구성될 수 있다. 이때, 각 서비스 노드는 가상 머신 상에서 서비스 제공을 목적으로 하는 각 단위 기능(예컨대, 서버)을 의미할 수 있다. 즉, 각 서비스 노드는 수신된 패킷에 대해 지정된 처리를 수행하는 기능 블록으로서, 서비스 펑션 체인을 구성하는 서비스 서비스 펑션(SF: Service Function)으로 이해될 수 있다. 예를 들어, 각 서비스 노드는 방화벽(Firewall), IPS(Intrusion Prevention System), DPI(Deep Packet Inspection) 및 NAT(Network Address Translation) 등의 네트워크 기등들 중 적어도 하나를 수행하는 기능 단위일 수 있다. Referring to FIG. 1, a
한편, 각 서비스 노드 별로 동작에 필요한 요구 자원이 정의될 수 있다. 예컨대, 요구 자원은 각 서비스 노드별로 동작에 필요한 컴퓨팅 자원(예컨대, CPU 사용량, 필요한 코어(core)의 숫자), 디스크 용량, 및 메모리 용량등의 자원을 의미할 수 있다.Meanwhile, a resource required for operation may be defined for each service node. For example, the required resource may mean a resource such as computing resources (eg, CPU usage, required number of cores), disk capacity, and memory capacity required for operation for each service node.
여컨대, 도 1에서, 서비스 노드(101)의 요구 자원은 r1으로 정의되며, 서비스 노드(102)의 요구 자원은 r2로 정의되며, 서비스 노드(103)의 요구 자원은 r3로 정의되고, 서비스 노드(104)의 요구 자원은 rn으로 정의될 수 있다.In other words, in FIG. 1, the requested resource of the
이하에서, 요구 자원은 하나의 변수(r1, r2, r3, rn)으로 표현하고 있으나, 이는 다양한 자원들을 종합한 대표값을 의미한다. 즉, 실시예에 따라서는, 요구 자원은 둘 이상의 변수로 표현될 수도 있다.In the following, the requested resource is expressed as one variable (r1, r2, r3, rn), but this means a representative value obtained by combining various resources. That is, depending on the embodiment, the required resource may be expressed by two or more variables.
또한, 서비스 노드들간의 링크 별로 요구되는 트랜잭션(transaction)의 횟수, 요구 대역폭(bandwidth), 및 중요도(weight) 중 적어도 하나가 정의될 수 있다. 예컨대, 서비스 노드(101)과 서비스 노드(102) 간의 링크에 대해서 요구되는 트랜잭션의 횟수는 t1, 요구 대역폭은 b1, 중요도는 w1로 표현될 수 있다. 유사한 방식으로, 서비스 노드(102)와 서비스 노드(103) 간의 링크에 대해서 트랜잭션의 횟수는 t2, 요구 대역폭은 b2, 중요도는 w2로 표현될 수 있다. 유사한 방식으로, 소정의 서비스 노드와 서비스 노드(104) 간의 링크에 대해서 트랜잭션의 횟수는 ti, 요구 대역폭은 bi, 중요도는 wi로 표현될 수 있다.In addition, at least one of the number of transactions required for each link between service nodes, a required bandwidth, and a weight may be defined. For example, the number of transactions required for the link between the
도 2는 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드간 링크들의 링크 비용 개념을 예시한 것이다.2 is a diagram illustrating a concept of link cost of links between service nodes constituting a service chain according to an embodiment of the method for distributing service nodes of the present invention.
도 2를 참조하면, 서비스 노드(101)과 서비스 노드(102)간의 링크 비용(link cost)은 cost1으로 표현될 수 있고, 서비스 노드(102)와 서비스 노드(103)간의 링크 비용은 cost2로 표현될 수 있다. 또한, 서비스 노드(104)와 소정의 서비스 노드 간의 링크 비용은 costi로 표현될 수 있다.2, the link cost between the
이때, 링크 비용은 앞서 언급된 링크별로 요구되는 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초한 비용 함수(cost function)에 의해서 산출될 수 있다. 예컨대, 상기 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 둘 이상의 값에 각각의 가중치(또는, 스케일 값)를 곱한 다음 합산한 값이나, 미리 정의된 비용함수를 적용한 값이 링크 비용으로 이용될 수 있다. 본 발명의 다양한 실시예에서, 상기 링크 비용을 산출하는데 이용하는 비용함수는 특정한 함수에 한정되지 않는다In this case, the link cost may be calculated by a cost function based on at least one of the aforementioned number of transactions required for each link, bandwidth required, and importance. For example, a value obtained by multiplying each weight (or scale value) by at least two or more of the number of transactions, the required bandwidth, and the importance, and then adding it, or a value obtained by applying a predefined cost function, may be used as the link cost . In various embodiments of the present invention, the cost function used to calculate the link cost is not limited to a specific function.
예컨대, 본 발명의 일 실시예에서 사용되는 링크 비용을 계산하기 위한 비용함수의 일예는 하기 수학식 1과 같이 정의될 수 있다.For example, an example of a cost function for calculating a link cost used in an embodiment of the present invention may be defined as in
[수학식 1][Equation 1]
상기 수학식 1에서 Ci는 링크 i에 대한 링크 비용을 의미하며, wi와 bi는 각각 링크 i의 중요도와 대역폭을 의미한다. In
한편, 트랜잭션의 경우는 링크마다 그 편차를 고려해야 하고, 해당 서비스의 전반적인 성능에 교환하는 트랜젝션 마다 중요도가 다를 수 있다. 따라서, ti는 정규화(normalization)가 적용된 nti로 변환되어 상기 수학식1에 적용될 수 있다. 정규화는 하기 수학식 2에 의해서 표현될 수 있다.On the other hand, in the case of a transaction, the deviation must be considered for each link, and the importance may be different for each transaction exchanged for the overall performance of the service. Therefore, ti can be converted to nti to which normalization is applied and applied to
[수학식 2][Equation 2]
즉, 서비스 노드(101)와 서비스 노드(102) 간의 링크 비용(cost1)은 앞서 설명된 t1, b1, 및 w1 중 적어도 하나의 값에 기초한 비용함수에 의해서 산출될 수 있고, 서비스 노드(102)와 서비스 노드(103) 간의 링크 비용(cost2)은 앞서 설명된 t2, b2, 및 w2 중 적어도 하나의 값에 기초한 비용함수에 의해서 산출될 수 있으며, 소정의 서비스 노드와 서비스 노드(104) 간의 링크 비용(costi)은 앞서 설명된 ti, bi, 및 wi 중 적어도 하나의 값에 기초한 비용함수에 의해서 산출될 수 있다.That is, the link cost (cost1) between the
이때, 사용되는 비용함수의 정의에 따라서 달라질 수 있겠으나, 일반적으로 링크 비용이 높은 링크는 링크 비용이 낮은 링크보다 더 많은 트랜잭션을 처리하거나, 더 큰 대역폭을 요구하거나, 더 중요도가 높은 링크일 수 있다.At this time, it may vary depending on the definition of the cost function used, but in general, a link with a high link cost can process more transactions, require a larger bandwidth, or be a link with higher importance than a link with a low link cost. have.
도 3은 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드간 링크들에 대해서 산출된 링크 비용들을 예시한 테이블이다.3 is a table illustrating link costs calculated for links between service nodes constituting a service chain according to an embodiment of the service node arrangement method of the present invention.
도 3에 예시된 테이블은 도 1및 도 2에서 예시된 서비스 체인을 구성하는 서비스 노드들 및 링크들에 대해서 작성된 테이블이다.The table illustrated in FIG. 3 is a table created for service nodes and links constituting the service chain illustrated in FIGS. 1 and 2.
도 3에 도시된 테이블에서, 제1컬럼(301)은 산출된 링크 비용들을 표현하고 있고, 제2컬럼(302)에는 각 링크를 구성하는 서비스 노드 쌍이 표현되어 있고, 제3컬럼(303)에는 각 링크의 요구 트랜잭션 횟수, 제4컬럼(304)에는 각 링크의 요구 대역폭, 제5컬럼(305)에는 각 링크의 중요도, 제6컬럼(306)에는 각 링크를 구성하는 서비스 노드 쌍의 요구 자원에 대한 정보가 기재되어 있다.In the table shown in FIG. 3, the
이때, 높은 링크 비용을 가지는 링크 순으로 상기 링크들은 정렬될 수 있다. 예컨대, 도 3에서 예시된 테이블에서는 cost1, cost2, …, costi의 순으로 높은 링크 비용을 가지는 것으로 예시되어 있다.In this case, the links may be sorted in the order of links having a high link cost. For example, in the table illustrated in FIG. 3, cost1, cost2, ... It is illustrated as having a high link cost in the order of, costi.
즉, 서비스 노드(101)와 서비스 노드(102) 간의 링크는 서비스 노드(102)와 서비스 노드(103) 간의 링크보다 높은 링크 비용을 가지며(즉, cost1>cost2), 서비스 노드(102)와 서비스 노드(103) 간의 링크는 소정의 서비스 노드와 서비스 노드(104)의 링크보다 높은 링크 비용을 가짐(즉, cost2>costi)을 의미한다.That is, the link between the
도 4는 본 발명의 서비스 노드 배치 방법의 일 실시예에 따라 서비스 체인을 구성하는 서비스 노드들이 할당될 수 있는 컴퓨팅 노드들을 예시한 테이블이다.4 is a table illustrating computing nodes to which service nodes constituting a service chain can be allocated according to an embodiment of the method of disposing a service node of the present invention.
먼저, 컴퓨팅 노드(computing node)는 가상머신이 배치되는 물리적인 노드로서, 전체 자원을 관리하여 각 가상머신에 분배하고 가상머신을 관리하는 노드이다. 즉, 본 발명에 따른 서비스 체인 상의 서비스 노드들은 가상 머신 상에 동작하는 서버(server) 인스턴스(instance)로 구성될 수 있으므로, 각 서비스 노드들은 컴퓨팅 노드에 할당되어 생성될 수 있다. 이때, 하나의 컴퓨팅 노드에는 적어도 하나의 서비스 노드가 배치될 수 있다.First, a computing node is a physical node on which a virtual machine is placed, and is a node that manages all resources, distributes them to each virtual machine, and manages the virtual machine. That is, since the service nodes on the service chain according to the present invention may be composed of a server instance running on a virtual machine, each service node may be created by being assigned to a computing node. At this time, at least one service node may be disposed in one computing node.
도 4예서 예시된 테이블에서, 제1컬럼(401)는 컴퓨팅 노드 풀(computing node pool)을 구성하는 컴퓨팅 노드들의 번호를 지정한다. 예컨대, 도 4에서는 j개의 컴퓨팅 노드가 존재하는 것을 예시하고 있다. In the table illustrated in FIG. 4, the
제2컬럼(402)는 각 컴퓨팅 노드가 보유한 전체 자원(total resource)을 표현하고 있다. 여기에서 자원은 앞서 설명된 서비스 노드의 요구 자원과 마찬가지로, 각 컴퓨팅 노드가 제공할 수 있는 컴퓨팅 자원(예컨대, CPU 사용량, 필요한 코어(core)의 숫자), 디스크 용량, 및 메모리 용량등의 자원을 의미할 수 있다. 예컨대, 제1컴퓨팅 노드(computing node#1)은 전체 자원 Rt1을 보유하고 있고, 제2컴퓨팅 노드(computing node#2)는 전제 자원 Rt2를 보유하고 있으며, 제j컴퓨팅 노드(computing node#j)는 전체 자원Rtj을 보유하고 있다.The
제3컬럼(403)는 각 컴퓨팅 노드가 이미 사용하고 있는 자원(할당 자원; assigned resource)을 표현하고 있다. 예컨대, 제1컴퓨팅 노드는 Ra1만큼의 자원을 이미 할당하고 있고, 제2컴퓨팅 노드는 Ra2만큼의 자원을 이미 할당하고 있고, 제j컴퓨팅 노드는 Raj만큼의 자원을 이미 할당하고 있다.The
제4컬럼(404)은 각 컴퓨팅 노드의 잔여 자원(remaining resource)을 표현하고 있다. 예컨대, 제1컴퓨팅노드는 R1만큼의 잔여 자원을 보유하고 있고, 제2컴퓨팅노드는 R2만큼의 잔여 자원을 보유하고 있고, 제j컴퓨팅노드는 Rj만큼의 잔여 자원을 보유하고 있다.The
따라서, 제2컬럼(402)의 전체자원, 제3컬럼(403)의 할당자원, 및 제4컬럼(404)의 잔여자원은 잔여자원=전체자원-할당자원의 관계를 가지게 된다.Accordingly, the total resources of the
앞서 언급된 것과 같이, 전체자원/할당자원/잔여자원이 모두 하나의 변수(rt1, ra1, R1, …)으로 표현되어 있으나, 이는 다양한 자원들을 종합한 대표값을 의미한다. 즉, 실시예에 따라서는, 전체자원/할당자원/잔여자원은 둘 이상의 변수로 표현될 수도 있다.As mentioned above, all resources/allocated resources/residual resources are all expressed as one variable (rt1, ra1, R1, …), but this means a representative value that aggregates various resources. That is, depending on the embodiment, the total resource/allocated resource/residual resource may be expressed as two or more variables.
본 발명의 절차는 구성된 서비스 체인닝에서 각 노드간에 서비스를 위한 트랜잭션 횟수, 요구되는 네트워크 대역폭, 중요도 등을 이용하여 링크 비용을 계산하는 단계; 계산된 링크 비용 중 가장 높은 값을 가지는 링크를 구성하는 두 서비스 노드의 자원을 계산하여 컴퓨팅 노드 중에 남은 자원(Remaining Resource)이 수용 가능한 후보 컴퓨팅 노드를 찾는 단계; 두 서비스 노드를 배치하고 해당 컴퓨팅 노드의 잔여 자원을 갱신하는 단계; 배치된 두 서비스 노드를 하나의 유사 서비스 노드로하여 서비스 체인을 재 구성하여 유사 서비스 체인을 구성하는 단계로 구성된다. 이러한 일련의 동작을 반복하여 하나의 서비스 노드 혹은 더 이상 컴퓨팅 노드에 유사 서비스 노드가 배치가 불가능할 때까지 상기 단계들이 반복적으로 수행된다.The procedure of the present invention includes the steps of calculating a link cost using the number of transactions, required network bandwidth, importance, etc. for a service between each node in the configured service chaining; Calculating resources of two service nodes constituting a link having the highest value among the calculated link costs to find a candidate computing node that can accommodate a remaining resource among the computing nodes; Arranging two service nodes and updating remaining resources of the corresponding computing node; It consists of the steps of constructing a similar service chain by reconfiguring the service chain using the two deployed service nodes as one similar service node. By repeating this series of operations, the above steps are repeatedly performed until a similar service node can no longer be located in one service node or in a computing node.
상술된 본 발명에 따른 일 실시예는 이하에서 도 6과 도 7을 병행 참조하여 설명된다.An embodiment according to the present invention described above will be described with reference to FIGS. 6 and 7 in parallel.
도 6은 본 발명의 서비스 노드 배치 방법을 설명하기 위한 순서도이며, 도 7은 본 발명의 서비스 노드 배치 방법의 전체적인 개념도이다.6 is a flow chart for explaining a service node arrangement method according to the present invention, and FIG. 7 is an overall conceptual diagram of a service node arrangement method according to the present invention.
먼저, 본 발명에 따른 서비스 노드 배치 방법에서는 먼저 서비스 체인을 구성하는 각 서비스 노드의 요구 자원이 파악된다(S610). First, in the service node arrangement method according to the present invention, the required resource of each service node constituting the service chain is first identified (S610).
예컨대, 도 7에서 예시된 서비스 체인(710)은 네개의 서비스 노드(SN1, SN2, SN3, SN4)로 구성되며, 각 서비스 노드의 요구자원은 r1, r2, r3, r4로 표현될 수 있다. 또한, 각 서비스 노드들 간의 링크에 대한 요구 트랜잭션 횟수, 요구 대역폭, 중요도가 정의될 수 있다. 예컨대, 서비스 노드(SN1)와 서비스노드(SN2)간의 링크는 요구 트랜잭션 횟수 t1, 요구 대역폭 b1, 중요도 w1로 정의될 수 있고, 서비스 노드(SN2)와 서비스노드(SN3)간의 링크는 요구 트랜잭션 횟수 t2, 요구 대역폭 b2, 중요도 w2로 정의될 수 있으며, 서비스 노드(SN3)와 서비스노드(SN4)간의 링크는 요구 트랜잭션 횟수 t3, 요구 대역폭 b3, 중요도 w3로 정의될 수 있다.For example, the
다음으로, 각 서비스 노드별 링크의 링크 비용이 산출될 수 있다(S620).Next, a link cost of a link for each service node may be calculated (S620).
예컨대, 도 7에서 서비스 노드(SN1)와 서비스 노드(SN2) 간의 링크 비용은 cost1, 서비스 노드(SN2)와 서비스 노드(SN3) 간의 링크 비용은 cost2로 정의될 수 있다. 또한, 산출된 링크 비용은 그 값에 따라 정렬될 수 있다.For example, in FIG. 7, the link cost between the service node SN 1 and the service node SN 2 may be defined as cost1, and the link cost between the service node SN 2 and the service node SN 3 may be defined as cost2. Also, the calculated link cost may be sorted according to its value.
다음으로, 활용 가능한 컴퓨팅 노드들의 잔여 자원이 파악될 수 있다(S630).Next, the remaining resources of the available computing nodes may be determined (S630).
예컨대, 도 7에서는, 5개의 컴퓨팅 노드(CN1, CN2, CN3, CN4, CN5)가 컴퓨팅 노드 풀(computing node pool)을 형성하는 경우를 예시하고 있으며(740), 각 컴퓨팅 노드의 잔여 자원은 ar1, ar2, ar3, ar4, 및 ar5로 표현될 수 있다.For example, in FIG. 7, five computing nodes (CN 1 , CN 2 , CN 3 , CN 4 , CN 5 ) form a computing node pool (740), and each computing node The remaining resources of may be represented by ar 1 , ar 2 , ar 3 , ar 4 , and ar 5 .
따라서, 5개의 컴퓨팅 노드들 중 유사 서비스 노드(750)의 요구 자원 이상의 잔여자원을 가진 컴퓨팅 노드들(CN2, CN3, CN5)이 후보 컴퓨팅 노드들(AN1, AN2, AN3)로 선택될 수 있다(730).Therefore, among the five computing nodes, computing nodes (CN 2 , CN 3 , CN 5 ) having more than the required resources of the
다음으로, 상기 서비스 노드들의 요구 자원, 상기 링크별 비용, 및 상기 적어도 하나의 후보 컴퓨팅 노드의 잔여 자원에 기초하여, 상기 서비스 노드들을 그룹핑하여 유사 서비스 노드(예컨대, 750)를 구성한다(S640).Next, based on the resource requested of the service nodes, the cost for each link, and the remaining resources of the at least one candidate computing node, the service nodes are grouped to form a similar service node (eg, 750) (S640). .
서비스 노드들(SN1, SN2, SN3)의 요구자원의 합(r1+r2+r3)은 후술될 후보 컴퓨팅 노드들 중 하나의 컴퓨팅 노드의 잔여 자원보다 작기 때문에 하나의 유사 서비스 노드(750)로 그룹핑될 수 있다.Since the sum of the requested resources (r1+r2+r3) of the service nodes SN 1 , SN 2 , SN 3 is smaller than the remaining resources of one of the candidate computing nodes to be described later, one similar service node 750 ) Can be grouped.
이 과정에 있어서, 도 3과 도 4에서 예시된, 링크별로 링크 비용을 산출하여 정렬되는 링크 비용 테이블과 컴퓨팅 노드의 잔여 자원 테이블이 생성되고 참조될 수 있다.In this process, a link cost table and a residual resource table of a computing node, illustrated in FIGS. 3 and 4, arranged by calculating link cost for each link, may be generated and referred to.
하나의 유사 서비스 노드를 형성하는 서비스 노드들(SN1, SN2, SN3)은 동일한 컴퓨팅 노드(CN2)에 할당될 수 있다(S650). 즉, 서비스 노드(SN1)의 요구 자원 r1, 서비스 노드(SN2)의 요구 자원 r2, 서비스 노드(SN3)의 요구 자원 r3의 합(r1+r2+r3)은 컴퓨팅 노드(CN2)의 잔여 자원(ar2)보다 작기 때문에 컴퓨팅 노드(CN2)에 배치될 수 있다.Service nodes SN 1 , SN 2 , and SN 3 forming one similar service node may be allocated to the same computing node CN2 (S650). That is, the service node (SN 1) of the requested resource r1, the service node (SN 2) of the requested resource r2, the service node (SN 3) (r1 + r2 + r3) the sum of the requested resource r3 of the computing nodes (CN 2) Since it is smaller than the remaining resource of ar 2 , it may be disposed in the computing node CN 2 .
이때, 잔여자원이 유사 서비스 노드의 요구 자원(r1+r2+r3)보다 큰 후보 컴퓨팅 노드가 여러 개 존재하는 경우에는(예컨대, AN1, AN2, AN3), 컴퓨팅 노드들의 로드 밸런싱(load balancing)을 위해서 가장 많은 잔여자원을 가진 컴퓨팅 노드에 할당될 수 있다. 그러나, 미리 정해진 정책에 따라서는, 유사 서비스 노드를 할당한 이후의 잔여 자원이 가장 작아지는 컴퓨팅 노드(즉, 잔여자원과 유사 서비스 노드의 요구자원(r1+r2+r3)의 차이가 가장 작은 컴퓨팅 노드)에 유사 서비스 노드를 할당하거나(예컨대, 전력 소모 절감), 컴퓨팅 노드에 할당된 우선순위(priority)에 따라서 유사 서비스 노드를 할당할 수도 있다.At this time, if there are several candidate computing nodes whose residual resources are larger than the requested resources (r1+r2+r3) of the similar service node (e.g., AN 1 , AN 2 , AN 3 ), load balancing of the computing nodes For balancing), it can be allocated to the computing node with the most remaining resources. However, according to a predetermined policy, the computing node in which the residual resource after allocating the similar service node is the smallest (i.e., the difference between the residual resource and the requested resource (r1+r2+r3) of the similar service node) is smallest. A similar service node may be allocated to a node) (eg, power consumption reduction) or a similar service node may be allocated according to a priority assigned to the computing node.
한편, 유사 서비스 노드가 하나로 구성될 때까지 혹은 더 이상 남은 자원에 할당이 불가능하여 유사 서비스 노드가 구성할 수 없을 때까지 상기 단계(S630) 내지 단계(S650)는 반복적으로 수행된다.Meanwhile, the steps (S630) to (S650) are repeatedly performed until the similar service node is configured as one or until the similar service node cannot be configured because it is no longer possible to allocate the remaining resources.
도 8은 본 발명의 서비스 노드 배치 방법이 NFV 아키텍춰 상에 수행되는 개념을 설명하기 위한 블록도이다.8 is a block diagram for explaining a concept in which the service node arrangement method of the present invention is performed on the NFV architecture.
도 8을 참조하면, 일반적인 NFV 아키텍춰는 OSS/BSS(810), 가상화 네트워크 기능(VNF: Virtualized Network Function; 820), 및 네트워크 기능 가상화 인프라스트럭춰(NFVI: Network Function Virtualization Infrastructure; 840)을 포함하여 구성될 수 있다. 여기에서, OSS(Operations Support System)과 BSS(Business Support System)은 사업자의 망 운영과 고객 서비스의 제공 및 유지를 지원하기 위한 시스템이며, BSS(Business Support System)는 고객에 대한 과금(billing), 고객 관계 관리(CRM: Customer Relationship Management), 콜 센터 업무 자동화 등을 지원하는 시스템을 의미한다.Referring to FIG. 8, a general NFV architecture includes OSS/
VNF(820) 상에는 적어도 하나의 VNF 인스턴스들(821, 822)이 존재할 수 있다. NVFI(840) 상에는 실제 물리적 하드웨어(845, 846, 847), 실제 물리적 하드웨어 자원들을 가상화하는 가상화 계층(844), 및 가상화 계층(844)에 의해서 가상화된 가상화 자원(841, 842, 843)이 존재할 수 있다. At least one
또한, NFV 아키텍춰 상에는 상기 구성 요소들을 관리하고 조정하기 위한 NFV 관리 및 조정(Management and Orchestration) 구성요소(MANO; 900)이 존재할 수 있다. In addition, an NFV Management and Orchestration component (MANO) 900 for managing and coordinating the components may exist on the NFV architecture.
MANO(900) 내에는 전체적인 동작을 조정하는 조정자(Orchestrator; 910), VNF(820)를 관리하는 가상화 네트워크 기능 관리자(VNFM: VNF manager; 920), 및 NFVI(840)를 관리하는 가상화 인프라스트럭춰 관리자(VIM: Virtualized Infrastructure Manager; 930)가 존재할 수 있다.In the
여기에서, 본 발명의 서비스 노드 배치 방법은, 상기 NFV 아키텍춰 상에서, 상기 가상화 인프라스트럭춰 관리자(930)에 의해서 수행될 수 있다. 즉, VIM(930)은 오케스트레이터(Orchestrator; 910) 또는 소정의 명세(850)로부터 서비스 체인에 대한 정보와 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하고, NFVI(840) 상에 존재하는 컴퓨팅 노드들의 잔여 자원을 확인하게 된다. Here, the service node arrangement method of the present invention may be performed by the
따라서, 본 발명에 따른 VIM(930)은 본 발명의 서비스 노드 배치 방법을 실행하기 위한 프로그램 코드, 상기 프로그램 코드가 저장된 메모리 장치, 및 상기 프로그램 코드를 실행하기 위한 적어도 하나의 프로세서를 포함하여 구성될 수 있다. 또한, 본 발명의 서비스 노드 배치 방법은 상기 VIM에 포함된 적어도 하는 기능 블록 또는 모듈에 의해서 수행될 수도 있다.Accordingly, the
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.
710: 서비스 체인, 720: 유사 서비스 체인
730: 후보 컴퓨팅 노드 740: 컴퓨팅 노드 풀
750: 유사 서비스 노드
SN1, SN2, SN3, SN4: 서비스 노드
AN1, AN2, AN3: 후보 컴퓨팅 노드
CN1, CN2, CN3, CN4, CN5: 컴퓨팅 노드710: service chain, 720: similar service chain
730: candidate computing node 740: computing node pool
750: pseudo service node
SN 1 , SN 2 , SN 3 , SN 4 : Service node
AN 1 , AN 2 , AN 3 : Candidate Computing Nodes
CN 1 , CN 2 , CN 3 , CN 4 , CN 5 : Computing node
Claims (17)
상기 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하는 단계(a);
상기 서비스 체인을 구성하는 서비스 노드들 간의 링크 별 링크 비용을 산출하고, 상기 산출된 링크 비용에 따라 서비스 노드들 간의 링크를 정렬하는 단계(b);
적어도 하나의 컴퓨팅 노드의 잔여 자원을 확인하는 단계(c); 및
상기 서비스 노드들의 요구 자원, 상기 링크 별 링크 비용, 및 상기 적어도 하나의 컴퓨팅 노드의 잔여 자원에 기초하여, 상기 서비스 노드들을 그룹핑하여 유사(pseudo) 서비스 노드를 구성하고, 상기 유사 서비스 노드를 상기 적어도 하나의 컴퓨팅 노드 중 하나의 컴퓨팅 노드에 할당하는 단계(d)를 포함하고,
상기 할당하는 단계에서, 상기 링크 비용의 순서대로 정렬된 링크들 중 높은 링크 비용을 가지는 링크부터, 해당 링크를 구성하는 서비스 노드들이 동일한 컴퓨팅 노드에 할당되어 상기 유사 서비스 노드가 구성되며,
잔여 자원이 상기 유사 서비스 노드의 요구 자원보다 큰 후보 컴퓨팅 노드가 복수개 존재할 경우, 상기 유사 서비스 노드는 가장 많은 잔여 자원을 가진 컴퓨팅 노드에 할당되거나 상기 유사 서비스 노드를 할당한 이후의 잔여 자원이 가장 작아지는 컴퓨팅 노드에 할당되는,
서비스 노드들의 배치 방법.In service function chaining, as a method of arranging service nodes constituting a service chain,
(A) identifying required resources of service nodes constituting the service chain;
(B) calculating a link cost for each link between service nodes constituting the service chain, and aligning links between service nodes according to the calculated link cost;
(C) checking the remaining resources of at least one computing node; And
Based on the requested resource of the service nodes, the link cost for each link, and the residual resource of the at least one computing node, the service nodes are grouped to form a pseudo service node, and the similar service node is at least (D) allocating to one computing node among one computing node,
In the allocating step, from a link having a higher link cost among links arranged in the order of the link cost, service nodes constituting the link are allocated to the same computing node to configure the similar service node,
When there are a plurality of candidate computing nodes whose residual resources are larger than the requested resource of the similar service node, the similar service node is allocated to the computing node having the most residual resources or the remaining resources after allocating the similar service node are the smallest. Is assigned to the losing computing node,
How to deploy service nodes.
상기 서비스 노드들의 요구 자원은 각 서비스 노드의 동작에 필요한 컴퓨팅 자원, 디스크 용량, 및 메모리 용량 중 적어도 하나를 포함하는,
서비스 노드들의 배치 방법.The method according to claim 1,
The required resource of the service nodes includes at least one of a computing resource, a disk capacity, and a memory capacity required for operation of each service node,
How to deploy service nodes.
상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초하여 산출되는,
서비스 노드들의 배치 방법.The method according to claim 1,
The link cost is calculated based on at least one of a requested number of transactions, a requested bandwidth, and an importance between links between the service nodes,
How to deploy service nodes.
상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초한 비용함수(cost function)를 이용하여 산출되는,
서비스 노드들의 배치 방법.The method of claim 3,
The link cost is calculated using a cost function based on at least one of a number of requested transactions, a requested bandwidth, and an importance between links between the service nodes,
How to deploy service nodes.
상기 할당하는 단계에서, 상기 유사 서비스 노드를 구성하는 서비스 노드들의 요구 자원들의 합이 상기 동일한 컴퓨팅 노드의 여유 자원보다 작은,
서비스 노드들의 배치 방법.The method according to claim 1,
In the allocating step, the sum of the requested resources of the service nodes constituting the similar service node is less than the spare resources of the same computing node,
How to deploy service nodes.
상기 서비스 노드는 가상 머신(virtual machine) 기반으로 동작되는,
서비스 노드들의 배치 방법.The method according to claim 1,
The service node is operated based on a virtual machine,
How to deploy service nodes.
상기 단계(c) 및 단계(d)는 더 이상 유사 서비스 노드가 구성되지 않을 때까지 반복적으로 수행되는,
서비스 노드들의 배치 방법.The method according to claim 1,
The steps (c) and (d) are repeatedly performed until a similar service node is no longer configured,
How to deploy service nodes.
오케스트레이터(Orchestrator) 또는 소정의 명세(description)로부터 상기 서비스 체인을 구성하는 서비스 노드들의 요구 자원들을 파악하는 단계(a);
상기 서비스 체인을 구성하는 서비스 노드들 간의 링크 별 링크 비용을 산출하고, 상기 산출된 링크 비용에 따라 서비스 노드들 간의 링크를 정렬하는 단계(b);
네트워크 기능 가상화 인프라스트럭춰(NFVI: Network Function Virtualization Infrastructure) 상에 존재하는, 적어도 하나의 컴퓨팅 노드의 잔여 자원을 확인하는 단계(c); 및
상기 서비스 노드들의 요구 자원, 상기 링크 별 링크 비용, 및 상기 적어도 하나의 컴퓨팅 노드의 잔여 자원에 기초하여, 상기 서비스 노드들을 그룹핑하여 유사(pseudo) 서비스 노드를 구성하고, 상기 유사 서비스 노드를 상기 적어도 하나의 컴퓨팅 노드 중 하나의 컴퓨팅 노드에 할당하는 단계(d)를 포함하고,
상기 할당하는 단계에서, 상기 링크 비용의 순서대로 정렬된 링크들 중 높은 링크 비용을 가지는 링크부터, 해당 링크를 구성하는 서비스 노드들이 동일한 컴퓨팅 노드에 할당되어 상기 유사 서비스 노드가 구성되며,
잔여 자원이 상기 유사 서비스 노드의 요구 자원보다 큰 후보 컴퓨팅 노드가 복수개 존재할 경우, 상기 유사 서비스 노드는 가장 많은 잔여 자원을 가진 컴퓨팅 노드에 할당되거나 상기 유사 서비스 노드를 할당한 이후의 잔여 자원이 가장 작아지는 컴퓨팅 노드에 할당되는,
서비스 노드 배치 장치.In the service function chaining based on Network Function Virtualization (NFV), a memory device loaded with a program code and at least one processor executing the program code are included, and service nodes constituting a service chain are arranged. As a device to perform, the program code,
(A) grasping required resources of service nodes constituting the service chain from an orchestrator or a predetermined description;
(B) calculating a link cost for each link between service nodes constituting the service chain, and aligning links between service nodes according to the calculated link cost;
(C) checking a residual resource of at least one computing node existing on a network function virtualization infrastructure (NFVI); And
Based on the requested resource of the service nodes, the link cost for each link, and the residual resource of the at least one computing node, the service nodes are grouped to form a pseudo service node, and the similar service node is at least (D) allocating to one computing node among one computing node,
In the allocating step, from a link having a higher link cost among links arranged in the order of the link cost, service nodes constituting the link are allocated to the same computing node to configure the similar service node,
When there are a plurality of candidate computing nodes whose residual resources are larger than the requested resource of the similar service node, the similar service node is allocated to the computing node having the most residual resources or the remaining resources after allocating the similar service node are the smallest. Is assigned to the losing computing node,
Service node placement device.
상기 서비스 노드들의 요구 자원은 각 서비스 노드의 동작에 필요한 컴퓨팅 자원, 디스크 용량, 및 메모리 용량 중 적어도 하나를 포함하는,
서비스 노드 배치 장치.The method of claim 9,
The required resource of the service nodes includes at least one of a computing resource, a disk capacity, and a memory capacity required for operation of each service node,
Service node placement device.
상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초하여 산출되는,
서비스 노드 배치 장치.The method of claim 9,
The link cost is calculated based on at least one of a requested number of transactions, a requested bandwidth, and an importance between links between the service nodes,
Service node placement device.
상기 링크 비용은 상기 서비스 노드들 간의 링크 간의 요구 트랜잭션 횟수, 요구 대역폭, 및 중요도 중 적어도 하나에 기초한 비용함수(cost function)를 이용하여 산출되는,
서비스 노드 배치 장치.The method of claim 11,
The link cost is calculated using a cost function based on at least one of a number of requested transactions, a requested bandwidth, and an importance between links between the service nodes,
Service node placement device.
상기 할당하는 단계에서, 상기 유사 서비스 노드를 구성하는 서비스 노드들의 요구 자원들의 합이 상기 동일한 컴퓨팅 노드의 여유 자원보다 작은,
서비스 노드 배치 장치.The method of claim 9,
In the allocating step, the sum of the requested resources of the service nodes constituting the similar service node is less than the spare resources of the same computing node,
Service node placement device.
상기 서비스 노드는 가상 머신(virtual machine) 기반으로 동작되는,
서비스 노드 배치 장치.The method of claim 9,
The service node is operated based on a virtual machine,
Service node placement device.
상기 단계(c) 및 단계(d)는 더 이상 유사 서비스 노드가 구성되지 않을 때까지 반복적으로 수행되는,
서비스 노드 배치 장치.The method of claim 9,
The steps (c) and (d) are repeatedly performed until a similar service node is no longer configured,
Service node placement device.
상기 장치는 가상화 인프라스트럭춰 관리자(VIM: Virtualized Infrastructure Manager)에 포함되는,
서비스 노드 배치 장치.The method of claim 9,
The device is included in a virtualized infrastructure manager (VIM),
Service node placement device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160150093A KR102216746B1 (en) | 2016-11-11 | 2016-11-11 | virtual machine placement method in a virtual machine based service function chaining |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160150093A KR102216746B1 (en) | 2016-11-11 | 2016-11-11 | virtual machine placement method in a virtual machine based service function chaining |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180052927A KR20180052927A (en) | 2018-05-21 |
KR102216746B1 true KR102216746B1 (en) | 2021-02-17 |
Family
ID=62453412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160150093A KR102216746B1 (en) | 2016-11-11 | 2016-11-11 | virtual machine placement method in a virtual machine based service function chaining |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102216746B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101939281B1 (en) * | 2017-03-23 | 2019-04-10 | 경희대학교 산학협력단 | Method of embedding network service chain |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150000160A (en) * | 2013-06-24 | 2015-01-02 | 한국전자통신연구원 | Method for deploying network using distributed virtual switch, apparatus for perfoming the same and network system based on distributed virtual switch |
-
2016
- 2016-11-11 KR KR1020160150093A patent/KR102216746B1/en active IP Right Grant
Non-Patent Citations (1)
Title |
---|
Yanghao Xie et al. Service Function Chaining Resource Allocation: A Survey. Computer Science, 2016.07.30. https://arxiv.org/pdf/1608.00095.pdf* |
Also Published As
Publication number | Publication date |
---|---|
KR20180052927A (en) | 2018-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769300B2 (en) | Data processing in a hybrid cluster environment | |
US10162669B2 (en) | Dynamic relocation of applications in a cloud application service model | |
Krishnamurthy et al. | Pratyaastha: an efficient elastic distributed sdn control plane | |
US10884795B2 (en) | Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster | |
US10015197B2 (en) | Determining network security policies during data center migration and detecting security violation | |
US10511481B1 (en) | Optimizing application configurations in a provider network | |
US10719366B1 (en) | Dynamic and selective hardware acceleration | |
US10902005B2 (en) | Parallel scoring of an ensemble model | |
US11847485B2 (en) | Network-efficient isolation environment redistribution | |
RU2638733C1 (en) | System and method of creating service chains and virtual networks in cloud | |
CN110661842B (en) | Resource scheduling management method, electronic equipment and storage medium | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
US11321121B2 (en) | Smart reduce task scheduler | |
Haja et al. | How to orchestrate a distributed OpenStack | |
US20060015841A1 (en) | Control on demand data center service configurations | |
KR102216746B1 (en) | virtual machine placement method in a virtual machine based service function chaining | |
US9942083B1 (en) | Capacity pool management | |
US11552853B2 (en) | Service chain accomodation apparatus and service chain accommodation method | |
US20170116015A1 (en) | Ordering optimization of host machines in a computing environment based on policies | |
Chouhan et al. | Automatic middleware deployment planning on clusters | |
US11669358B2 (en) | Virtual network functions allocation in a datacenter | |
Correia et al. | Blockchain as a service environment: a dependability evaluation | |
US20170091348A1 (en) | Intelligent suggestions for rack layout setup | |
Zheng et al. | SmartVM: A multi-layer microservice-based platform for deploying SaaS | |
Oh et al. | A Survey on Microservices Use Cases for AI based Application on Hybrid Cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |