Control device and control method
The control device optimizes scaling of virtual network functions by considering node resources and states, addressing inefficiencies in conventional methods by dynamically adjusting the number of functions based on acquired information.
Patent Information
- Application Number
- PCT/JP2024/006130
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-20
- Publication Date
- 2025-08-28
AI Technical Summary
Conventional scaling methods for network functions do not account for the resources and state of individual nodes, leading to inefficiencies in scaling virtual network functions due to exceeding resource limits.
A control device that acquires resource information and metrics from nodes, calculates optimal deployment patterns, and adjusts the number of virtual network functions based on these factors to ensure appropriate scaling.
Enables more efficient scaling of network functions by considering node resources and states, preventing overloading and optimizing resource utilization.
Smart Images

Figure JP2024006130_28082025_PF_FP_ABST
Abstract
Description
Control device and control method
[0001] The present invention relates to a control device and a control method.
[0002] There is a scaling method for scaling in or out the processing load by increasing or decreasing the function when the performance of a network function exceeds or becomes excessive. For example, Non-Patent Documents 1 and 2 are known as scaling methods related to virtual networks.
[0003] “Deploying Transit VPC with Autoscaling for Amazon Web Services (AWS),” Cisco Content Hub, Dec. 6th, 2019. <https: / / content.cisco.com / chapter.sjs?uri= / searchable / chapter / content / en / us / td / docs / routers / csr1000 / software / aws / b_csraws_transitVPC / Deploying_Autoscaler_for_AWS.html.xml> .“Horizontal Pod Autoscaling,” kubernetes.<https: / / kubernetes.io / docs / tasks / run-application / horizontal-pod-autoscale / > .
[0004] In network virtualization, virtualized virtual network functions are deployed on multiple nodes, and by increasing or decreasing the number of virtual network functions, flexible scaling according to traffic demand becomes possible.
[0005] However, in conventional technologies, scaling is performed, for example, when the traffic volume of a node exceeds a threshold, or for the purpose of achieving a specified performance, so scaling may not be possible depending on the resources of each node or the state of the virtual network function, etc.
[0006] The embodiments of the present invention have been made in consideration of the above-mentioned problems, and enable more appropriate scaling of a specified function realized by multiple nodes depending on the resources of the multiple nodes that realize the specified function and the state of the specified function.
[0007] In order to solve the above problems, a control device according to an embodiment of the present invention is a control device that controls multiple nodes that realize specified functions, and includes an acquisition unit that acquires resource information for each node, a monitoring unit that monitors metrics information for the specified processing, a calculation unit that calculates a deployment pattern for the specified functions to be deployed on each node based on the resource information and the metrics information, and a control unit that scales the specified functions of each node based on the calculation results by the calculation unit.
[0008] According to an embodiment of the present invention, it becomes possible to more appropriately scale a predetermined function implemented by multiple nodes depending on the resources of the multiple nodes that implement the predetermined function and the state of the predetermined function.
[0009] FIG. 1 is a diagram illustrating an example of the configuration of a control system according to the present embodiment. FIG. 2 is a flowchart illustrating an example of the process of a control device according to the present embodiment. FIG. 3 is a diagram for explaining a deployment pattern of a VPN according to the present embodiment. FIG. 4 is a diagram (1) illustrating an example of the connection configuration of external devices according to the present embodiment. FIG. 5 is a diagram (2) illustrating an example of the connection configuration of external devices according to the present embodiment. FIG. 6 is a diagram illustrating an example of the internal configuration of a server according to Example 1. FIG. 7 is a diagram illustrating an example of the configuration of a control system according to Example 1. FIG. 8 is a flowchart illustrating an example of a communication start process according to Example 1. FIG. 9 is a sequence diagram illustrating an example of a scale-out process according to Example 1. FIG. 10 is a sequence diagram illustrating an example of a scale-in process according to Example 1. FIG. 11 is a diagram illustrating an example of the internal configuration of a server according to Example 2. FIG. 12 is a diagram illustrating an example of the configuration of a control system according to Example 2. FIG. 13 is a flowchart illustrating an example of a communication start process according to Example 2. FIG. 14 is a sequence diagram illustrating an example of a scale-out process according to Example 2. FIG. 15 is a sequence diagram illustrating an example of a scale-in process according to Example 2. FIG. 16 is a diagram illustrating an example of the internal configuration of a switch according to Example 3. FIG. 17 is a diagram illustrating an example of the configuration of a control system according to Example 3. FIG. 18 is a flowchart illustrating an example of a communication start process according to Example 3. FIG. 19 is a sequence diagram illustrating an example of a scale-in process according to Example 3. FIG. 19 is a diagram illustrating an example of the hardware configuration of a computer. FIG. 19 is a diagram for explaining scaling according to traffic demand. FIG. 19 is a diagram for explaining problems with the conventional technology.
[0010] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment described below is merely an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.
[0011] <About Scaling> When the performance of a network function is exceeded or becomes excessive, scaling is performed to adjust the processing load by increasing or decreasing the network function. Scaling is also called autoscaling or auto-scaling.
[0012] For example, in network virtualization, virtual network functions are deployed on multiple nodes, and flexible scaling according to traffic demand is possible by increasing or decreasing the number of virtual network functions.
[0013] Fig. 22 is a diagram for explaining an example of scaling according to traffic demand. For example, as shown in the left diagram of Fig. 22, it is assumed that a packet forwarding device 11a and a packet forwarding device 11b are performing packet communication via VPNs (Virtual Private Networks) 1 to VPN5 of a packet processing system 10. Note that a VPN is an example of a virtual network function.
[0014] In this state, if the traffic volume of VPN1 increases, in a conventional packet processing system, for example, as shown in the right diagram of Figure 22, the number of VPN1s is increased on another node (e.g., Node3) and packet processing is distributed, thereby improving throughput.
[0015] For example, the technology disclosed in Non-Patent Document 1 monitors VPN traffic volume and performs scaling when the traffic volume exceeds a threshold. Furthermore, the technology disclosed in Non-Patent Document 2 acquires metrics such as CPU (Central Processing Unit) metrics and performs scaling according to an algorithm aimed at achieving the performance of the metrics. However, with such conventional technology, scaling may not be possible depending on, for example, the resources of each node or the state of virtual network functions.
[0016] Fig. 23 is a diagram for explaining the problems of the conventional technology. For example, in the left diagram of Fig. 23, nodes 1 to 3 are assumed to be capable of processing up to 100 Gbps and to be capable of holding up to 150 routing entries. In this state, for example, if the traffic of VPN1 of node 1 increases from 20 Gbps to 60 Gbps, the traffic volume of node 1 will become 110 Gbps, exceeding the 100 Gbps traffic volume that node 1 can process.
[0017] In this case, if scaling is performed using conventional technology, for example, a portion of the traffic volume of VPN1 would be scaled out to node 2 and / or node 3. However, as shown in the right diagram of Fig. 23, if, for example, 20 Gbps of the traffic volume of VPN1 is scaled out to node 3, the upper limit of the communication volume of node 3 would be exceeded, and therefore scaling out to node 3 would be impossible. Furthermore, if 51 or more entries of VPN1 are scaled out to node 2, the number of entries that node 2 can hold would be exceeded, and therefore scaling out to node 2 would be impossible.
[0018] In this way, conventional technologies, for example, scale when the traffic volume of a node exceeds a threshold, or scale to achieve a specified performance, so scaling may not be possible depending on the resources of each node or the state of the virtual network function, etc.
[0019] Therefore, the control system and the control device according to this embodiment have a configuration as shown in FIG. 1, for example.
[0020] <Configuration of Control System> Fig. 1 shows an example of the configuration of a control system according to this embodiment. In the example of Fig. 1, the control system 100 includes multiple nodes 121-1, 121-2, and 121-3 that implement a VPN, which is an example of a virtual network function, and a control device 110 that controls the multiple nodes 121-1, 121-2, and 121-3. The control device 110 is also connected to the multiple nodes 121-1, 121-2, and 121-3 via a communication network so that they can communicate with each other.
[0021] In the following description, when referring to any of the multiple nodes 121-1, 121-2, and 121-3, the term "node 121" is used. The multiple nodes 121 are an example of multiple nodes that realize a predetermined function. A virtual network function is also an example of a predetermined function. The number of nodes 121 shown in FIG. 1 is an example, and other numbers may be used.
[0022] The control device 110 is, for example, an information processing device having a computer configuration, or a system including multiple computers. The control device 110 realizes each functional configuration shown in Fig. 1 by, for example, executing a predetermined program on the computer included in the control device 110. In the example of Fig. 1, the control device 110 has each functional configuration such as an acquisition unit 111, a monitoring unit 112, a calculation unit 113, and a control unit 114. Note that at least a portion of each of the above functional configurations may be realized by hardware.
[0023] The acquisition unit 111 executes an acquisition process to acquire resource information for each node 121. Here, the resource information includes, for example, information such as the maximum traffic volume and the maximum number of entries for each node 121. As a specific example, the maximum traffic volume may be determined based on information such as the line rate of the network interface card (NIC) provided in each node 121. Furthermore, the maximum number of entries may be determined based on information such as the amount of random access memory (RAM) installed in each node 121. However, the maximum traffic volume and the maximum number of entries are not limited to these information. In the example of FIG. 1 , as an example, the maximum traffic volume for each node 121 is set to 100 Gbps, and the maximum number of entries is set to 150. Note that the acquisition unit 111 may acquire the resource information for each node 121 from each node 121 itself, or from another device (e.g., a monitoring device, a database storing device information, etc.). Alternatively, the acquisition unit 111 may acquire the resource information for each node 121 through input by an operator (manually), etc.
[0024] The maximum traffic volume and maximum number of entries of each node 121 are examples of resource information. The resource information may include parameters that are apportioned by scaling out the virtual network function. For example, when virtual machines are scaled out onto multiple physical servers, the resource information may be parameters such as "CPU utilization rate" and "memory utilization rate" that decrease due to the scale-out.
[0025] The monitoring unit 112 executes a monitoring process for monitoring metrics information of virtual network functions (predetermined functions). For example, the monitoring unit 112 monitors metrics information of VPN1, VPN2, VPN3, and VPN4, which are examples of virtual network functions, by periodically collecting (obtaining) the information. Here, the metrics information includes the current traffic volume of each virtual network function and the number of entries held by each virtual network function.
[0026] The calculation unit 113 executes a calculation process to calculate a deployment pattern of virtual network functions to be deployed in each node 121, based on the resource information acquired by the acquisition unit 111 and the metrics information collected by the monitoring unit 112. For example, the calculation unit 113 determines a deployment pattern of virtual network functions to be deployed in the node 121, based on the resource information and the metrics information, so as to maximize or minimize a predetermined objective function. As a specific example, the calculation unit 113 determines the number of VPNs to be assigned to each node 121, based on the resource information and the metrics information, with minimizing the number of entries as the objective function.
[0027] However, this is just one example, and the calculation unit 113 may, for example, determine the number of VPNs to be assigned to each node 121 using an objective function of maximizing the amount of traffic that can be processed by the entire system. Here, the following description will be given assuming that the calculation unit 113 determines the number of VPNs to be assigned to each node 121 based on resource information and metrics information using an objective function of minimizing the number of entries.
[0028] The control unit 114 executes a control process for scaling the virtual network functions realized by each node 121 based on the calculation result by the calculation unit 113. For example, the control unit 114 increases or decreases (scales out or scales in) the number of VPNs in each node 121 based on the calculation result by the calculation unit 113, and distributes communications to each VPN.
[0029] The functional configuration of the control device 110 shown in FIG. 1 is an example. For example, each functional configuration of the control device 110 may be included in the control system 100, and may be distributed across multiple devices. Furthermore, each functional configuration of the control device 110 may be provided on a cloud service. For example, each functional configuration of the control device 110 may be realized by a program executed on a virtual machine or the like on the cloud.
[0030] 1, the acquiring unit 111 acquires resource information of each of the nodes 121-1 to 121-3. For example, the acquiring unit 111 acquires the maximum traffic volume (100 Gbps) and the maximum number of entries (150) of each of the nodes 121-1 to 121-3.
[0031] The monitor 112 also collects metrics information for each VPN (VPN1 to VPN4). In the example of FIG. 1 , the monitor 112 collects the current traffic volume (increased from 20 Gbps to 60 Gbps) and the number of entries held (100) from VPN1, and the current traffic volume (50 Gbps) and the number of entries held (10) from VPN2. Similarly, the monitor 112 collects the current traffic volume (20 Gbps) and the number of entries held (100) from VPN3, and the current traffic volume (70 Gbps) and the number of entries held (10) from VPN4.
[0032] The calculation unit 113 calculates an optimal scaling pattern from the resource information acquired by the acquisition unit 111 and the metrics information collected by the monitoring unit 112. For example, it is assumed that there are the following scaling patterns: Pattern 1: Increase the number of VPN1s to three, and maintain the number of VPN2s at one. Pattern 2: Maintain the number of VPN1s at one, and increase the number of VPN2s to two. Pattern 3: Increase the number of VPN1s to two, and increase the number of VPN2s to two. And so on.
[0033] Here, pattern 1 has the same problem as the conventional technology described in Fig. 20 and cannot be scaled. Here, as an example, it is assumed that the calculation unit 113 determines pattern 2 as the optimal scaling pattern. Note that the method of calculating the deployment pattern by the calculation unit 113 will be described later.
[0034] The control unit 114 performs scaling based on the calculation result by the calculation unit 113. In the example of Fig. 1, the control unit 114 increases the number of VPN2s by newly allocating VPN2 to node 121-3, and allocates part (e.g., half) of the traffic volume and the number of entries held to VPN2 of node 121-3.
[0035] According to this scaling pattern, the traffic volume of node 121-1 is 85 Gbps and the number of entries is 110, both of which are within the upper limit of the resource of node 121-1. In addition, the traffic volume of node 121-3 is 95 Bbps and the number of entries is 20, both of which are within the upper limit of the resource of node 121-3.
[0036] Thus, according to this embodiment, the number of predetermined functions realized by multiple nodes can be more appropriately scaled depending on the resources of the multiple nodes that realize the predetermined functions (e.g., virtual network functions) and the state of the predetermined functions.
[0037] <Processing Flow> Next, the processing flow of the control method according to this embodiment will be described.
[0038] (Processing of the Control Device) Fig. 2 is a flowchart showing an example of processing of the control device according to this embodiment. This processing shows an example of processing executed by the control device 110 described with reference to Fig. 1 .
[0039] In step S201, the acquiring unit 111 acquires resource information of each node 121. In the example of Fig. 1, the acquiring unit 111 acquires the maximum traffic volume and the maximum number of entries as resource information from each of the nodes 121, 121-1 to 121-3.
[0040] In step S202, the monitoring unit 112 monitors the metrics information of each VPN. In the example of Fig. 1, the monitoring unit 112 periodically collects the current traffic volume and the number of entries held as the metrics information of each VPN, VPN1 to VPN4.
[0041] In step S203, the calculation unit 113 calculates a deployment pattern of VPNs to be allocated to each node 121 based on the resource information acquired by the acquisition unit 111 and the metrics information collected by the monitoring unit 112. For example, the calculation unit 113 determines a deployment pattern of VPNs to be allocated to each node 121 based on the resource information and metrics information described above, with minimizing the number of entries as an objective function.
[0042] As a specific example, when the objective is to minimize the number of entries, the following objective function is set as a minimization problem to be minimized.
[0043]
[0044]
[0045]
[0046]
[0047] Equation (1) is an objective function whose objective is to minimize the number of entries, and equations (2) to (5) are constraints.
[0048] Here, the variable x n,m represents the deployment pattern of VPN, and is represented by "1" when VPNn exists on node m, and "0" when it does not exist. Here, n and m are integers equal to or greater than 1. n is the traffic volume of VPNn. n is the number of entries for VPNn. m is the maximum traffic volume of node m. m is the maximum number of entries for node m.
[0049] The constraint in equation (2) indicates whether a VPN exists. The constraint in equation (3) indicates that the scale number of the VPN must be 1 or greater. The constraint in equation (4) indicates that the total number of entries for all VPNs at all nodes does not exceed the maximum number of entries per node. The constraint in equation (5) indicates that the traffic volume of all VPNs at all nodes does not exceed the maximum traffic volume per node.
[0050] It is desirable that the processing of the calculation unit 113 be executed at high speed even when the number of VPNs and / or the number of nodes is large. Therefore, in this embodiment, the resource constraints of each node are used as constraint conditions, and the VPN deployment patterns are expressed as 0 or 1, thereby speeding up the processing of the calculation unit 113.
[0051] 3 is a diagram for explaining the deployment patterns of VPNs according to this embodiment. For example, if the deployment patterns of VPNs in nodes 121-1 to 121-3 in FIG. 1 are represented by 0 and 1, it becomes as shown in Table 302. Here, node 121-1 corresponds to "node 1," node 121-2 corresponds to "node 2," and node 121-3 corresponds to "node 3."
[0052] Also, based on the table 302, whether or not a VPN exists in each node is determined by the variable x n,m By expressing it as:, it is possible to express the deployment pattern of the VPN of each node in a two-dimensional matrix X 303.
[0053] In this way, the calculation unit 113 calculates the deployment pattern of VPNs to be assigned to each node as a minimization problem that minimizes the objective function of equation (1), using constraints such as resource constraints of each node as constraint conditions and expressing the deployment pattern as 0 or 1.
[0054] 2, the description of the flowchart will be continued. In step S204, the control unit 114 scales the VPNs of each node based on the calculation result by the calculation unit 113. For example, the control unit 114 performs scale-out, which increases the number of VPNs deployed in each node and allocates communications to each VPN, or scale-in, which reduces the number of VPNs deployed in each node and allocates communications to each VPN, according to the calculation result.
[0055] By the processing of Figure 2, the control device 110 can more appropriately scale the virtual network functions realized by the multiple nodes 121 depending on the resources of the multiple nodes 121 that realize the virtual network functions and the state of the virtual network functions.
[0056] <Connection Configuration of External Devices> Here, an example of the connection configuration of external devices according to this embodiment will be described. It is desirable to minimize the impact of scaling on communication by connecting a packet distribution device such as a switch to multiple nodes.
[0057] FIG. 4 is a diagram (1) showing an example of a connection configuration of an external device according to this embodiment. This diagram shows an example of the configuration of an external device when Kubernetes (registered trademark) is used. Kubernetes is open source software for managing and automating container virtualization software. Worker nodes 420a, 420b, and 420c correspond to, for example, the multiple nodes 121 in FIG. 1. Pods 421a, 421b, and 421c are collections of containers and are the smallest units for managing containers. In the following description, the term "worker node 420" is used to refer to any of the worker nodes 420a, 420b, and 420c. The term "pod 421" is used to refer to any of the pods 421a, 421b, and 421c.
[0058] In the example of FIG. 4 , the control device 110 is realized by, for example, a Kubernetes Master. The VPN is realized by, for example, a container in a Pod 421. Furthermore, a network device such as a switch 410 is installed in front of each worker node 420, and communication is allocated to each worker node 420, distributing the load to each worker node. There are various methods for distributing the load, such as per flow, per packet, and round robin, and any of these methods may be used in this embodiment. Furthermore, a communication distribution method includes, for example, ECMP (Equal Cost Multi Path), which maintains multiple paths with the same cost, but is not limited to this, and any method that can distribute communications is not limited to ECMP.
[0059] In BGP (Border Gateway Protocol), the provision of a route reflector 430 can eliminate the need for BGP peer settings. BGP is a routing protocol that selects the most efficient route for distributing Internet traffic. The route reflector 430 takes the form of a communication device such as a router equipped with BGP functionality. The installation of the route reflector 430 is not essential; the switch 410 and pods 421a to 421c can also exchange routes directly.
[0060] 5 is a diagram (2) showing an example of a connection configuration of external devices according to this embodiment. This diagram shows another example of the configuration of external devices when Kubernetes is used.
[0061] In OSPF (Open Shortest Path First), OSPF Hellos are sent by multicast, enabling scaling within the same domain. OSPF is a routing protocol that calculates the cost values of communication paths and determines the route with the lowest total cost as the optimal route. While BGP and OSPF are given as examples, these dynamic routing protocols are not required. For example, the connection configuration of external devices according to this embodiment can also be realized by statically inputting settings into the switch 410 according to the deployment status of the pods.
[0062] Example 1 The node 121 according to this embodiment is realized by a server 600 as shown in FIG. 6, for example.
[0063] (Internal Configuration of Server) Fig. 6 is a diagram illustrating an example of the internal configuration of a server according to Example 1. In the example of Fig. 6, a server 600 includes a CPU 601, a memory 602, a storage 603, a hypervisor 604, and VPNs 605-1 to 605-3.
[0064] The CPU 601 is a processor that executes predetermined programs to realize various functions. The memory 602 is, for example, a storage medium readable by the CPU 601, and includes, for example, a random access memory (RAM) and a read only memory (ROM). The storage 603 is, for example, a large-capacity non-volatile storage medium such as a hard disk drive (HDD) or a solid state drive (SSD).
[0065] The hypervisor 604 is a control program for virtualizing a computer. In this way, the server 600 includes the hypervisor 604 and can operate the multiple VPNs 605-1 to 605-3 as virtual machines.
[0066] The server 600 may also use container technology such as Docker (registered trademark) instead of a hypervisor to operate multiple VPNs 605-1 to 605-3 as containers. Furthermore, the server 600 may operate multiple VPNs 605-1 to 605-3 directly on a host operating system (OS) (bare metal configuration). The server 600 may also operate multiple VPNs 605-1 to 605-3 by combining these.
[0067] (System Configuration) Fig. 7 is a diagram illustrating an example of the configuration of a control system according to Example 1. In the example of Fig. 7, the control system 100 includes a control device 110, a server 600, a route reflector 430, and opposing nodes 701a and 701b.
[0068] In the example of Figure 7, Pod 611a on worker node 610 of server 600 realizes a VPN for user 1 communication between remote nodes 701a and 701b, and Pod 611b realizes a VPN for user 1 communication between remote nodes 701a and 701b. In the following description, when referring to any of Pods 611a and 611b, "Pod 611" is used. When referring to any of remote nodes 701a and 701b, "remote node 701" is used.
[0069] <Processing Flow> Next, an example of processing by an external device will be described.
[0070] 8 is a flowchart illustrating an example of communication processing according to Example 1. This processing illustrates an example of processing executed by the control device 110 when the control device 110 deploys the Pod 611 to the server 600 and starts communication with the remote node 701.
[0071] In step S801, the control device 110 starts the Pod 611 on the worker node 610. In step S802, the Pod 611 inputs various settings within the Pod 611.
[0072] In step S803, the Pod 611 transmits an Address Resolution Protocol (ARP) or a Gratuitous ARP (GARP) to the remote node 701. The ARP is transmitted, for example, to check the Media Access Control (MAC) address of the communication destination. The GARP is transmitted, for example, by transmitting its own IP address as a request to check whether the IP address is duplicated.
[0073] In step S804, the Pod 611 sends a BGP Open to the route reflector 430, or sends an OSPF Hello, which starts communication between the Pod 611 and the correspondent node 701 in step S805.
[0074] By the process of FIG. 8, the control system 100 can start communication with the remote node 701 via the Pod 421.
[0075] 9 is a sequence diagram illustrating an example of a scale-out process according to Example 1. This process illustrates an example of a scale-out process for increasing the number of Pods 421 on the server 600.
[0076] In steps S901 and S902, the control device 110 starts the Pod 421 via the worker node 420. In step S903, the started Pod 421 inputs various settings within the Pod 421.
[0077] In step S904, the Pod 611 transmits an ARP or GARP to the remote node 701. In step S905, the Pod 611 establishes a TCP connection with the route reflector 403 by TCP 3-way handshake.
[0078] In step S906, the Pod 421 uses a BGP Open message to start a BGP session with the route reflector 430. In step S907, the Pod 421 periodically sends a BGP KeepAlive message to the route reflector 430 to check for activity.
[0079] In step S908, the Pod 611 uses a BGP Update message to update the route information between the Pod 611 and the route reflector 430. In response to this, in step S909, the route reflector 430 uses a BGP Update message to update the route information between the Pod 611 and the remote node 701.
[0080] In step S910, the remote node 701 adds an ECMP route in accordance with the updated route information, and then in step S911, communication between the Pod 421 and the remote node 701 is started.
[0081] 10 is a sequence diagram illustrating an example of a scale-in process according to Example 1. This process illustrates an example of a scale-in process that reduces the number of Pods 421 on the server 600.
[0082] In step S1001, it is assumed that the Pod 421 periodically transmits a BGP KeepAlive message to the route reflector 430 to check its activity.
[0083] In steps S1002 and S1003, the control device 110 instructs the worker node 420 to delete the Pod 421.
[0084] In step S1004, the Pod 421 notifies the route reflector 430 of the error by sending a BGP Notification message. This BGP Notification message includes an error code indicating, for example, that BGP has been shut down.
[0085] In step S1005, the route reflector 430 updates the route information between the remote node 701 and the remote node 701. In response to this, in step S1006, the remote node 701 deletes the ECMP route. In addition, in step S1007, the Pod 421 deletes itself.
[0086] 9 and 10, the control system 100 can perform scaling such as scaling out and scaling in of the VPN 605 by increasing or decreasing the number of Pods 421 according to the calculation result of the calculation unit 113.
[0087] Second Embodiment As another example, the node 121 according to this embodiment is realized by a server 600 equipped with a hardware accelerator 1100 as shown in FIG.
[0088] (Internal Configuration of Server) Fig. 11 is a diagram illustrating an example of the internal configuration of a server according to Example 2. In the example of Fig. 6, the server 600 includes a hardware accelerator 1100 in addition to the configuration of the server 600 according to Example 1 described in Fig. 6.
[0089] The hardware accelerator 1100 is configured by, for example, an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), or an NPU (Neural Processing Unit). In this case, the server 600 can speed up processing by using the hardware accelerator 1100 as an input / output. Note that the hardware accelerator 1100 may be provided outside the server 600.
[0090] The configuration of the server 600 according to the second embodiment other than the hardware accelerator 1100 is the same as the configuration of the server 600 according to the first embodiment described with reference to FIG. 6, and therefore will not be described here.
[0091] (System Configuration) Fig. 12 is a diagram illustrating an example of the configuration of a control system according to Example 2. In the example of Fig. 12, the server 600 according to Example 2 includes an FPGA 1101 that implements a packet processing circuit 1201 in addition to the configuration of the server 600 according to Example 1 described in Fig. 7. The packet processing circuit 1201 is, for example, hardware that speeds up part or all of the communication processing performed between the Pod 421 and the remote node 701 in Example 1. Note that the server 600 according to Example 2 also includes a worker node 420, similar to the server 600 according to Example 1.
[0092] The FPGA 1101 and the packet processing circuit 1201 are examples of the hardware accelerator 1100 described in Fig. 6. The configuration of the control system 100 according to the second embodiment other than the FPGA 1101 is the same as the configuration of the control system 100 according to the first embodiment described in Fig. 7, and therefore a description thereof will be omitted here.
[0093] 13 is a flowchart illustrating an example of communication processing according to Example 2. This processing illustrates another example of processing executed when the control device 110 deploys the Pod 611 to the server 600 and starts communication with the remote node 701.
[0094] In step S1301, the control device 110 starts the Pod 611 on the worker node 610. In step S1302, the Pod 611 inputs various settings within the Pod 611.
[0095] In step S1303, the Pod 611 adds an entry to the FPGA 1101. For example, the Pod 611 sets the RAM and / or registers of the FPGA 1101.
[0096] In step S1304 , the Pod 611 transmits an ARP or GARP to the remote node 701 .
[0097] In step S1305, the Pod 611 sends a BGP Open to the route reflector 430, or sends an OSPF Hello, which starts communication between the FPGA 1101 and the remote node 701 in step S1306.
[0098] By the process of FIG. 8, the control system 100 can start communication between the opposing nodes 701 via the FPGA 1101.
[0099] 14 is a sequence diagram illustrating an example of a scale-out process according to the embodiment 2. This process illustrates an example of a scale-out process for increasing the number of VPNs on the server 600.
[0100] In steps S1401 and S1402, the control device 110 starts the Pod 421 via the worker node 420. In step S1403, the started Pod 421 inputs various settings within the Pod 421.
[0101] In step S1404, the Pod 421 inputs settings such as entries into the FPGA 1101.
[0102] In step S1405, the Pod 611 transmits an ARP or GARP to the remote node 701. In step S1406, the Pod 611 establishes a TCP connection with the remote node 701 by TCP 3-way handshake.
[0103] In step S1407, the Pod 421 uses a BGP Open message to start a BGP session with the correspondent node 701. In step S1408, the Pod 421 periodically sends a BGP KeepAlive message to the correspondent node 701 to check for activity.
[0104] In step S1409, the Pod 611 uses a BGP Update message to update the route information between the Pod 611 and the correspondent node 701. In response to this, in step S1410, for example, the correspondent node 701 uses a BGP Update message to update the route information between the Pod 611 and the route reflector 430.
[0105] In step S1411, the opposing node 701 adds an ECMP route in accordance with the updated route information, which allows communication between the FPGA 1101 and the opposing node 701 to begin in step S1412.
[0106] 15 is a sequence diagram illustrating an example of a scale-in process according to Example 2. This process illustrates an example of a scale-in process for reducing the number of VPNs on the server 600.
[0107] In step S1501, it is assumed that the Pod 421 periodically transmits a BGP KeepAlive message to the route reflector 430 to check its activity.
[0108] In steps S1502 and S1503, the control device 110 instructs the worker node 420 to delete the Pod 421.
[0109] In step S1504, the Pod 421 notifies the route reflector 430 of the error by sending a BGP Notification message. This BGP Notification message includes, for example, an error code indicating that BGP has been shut down.
[0110] In step S1505, the route reflector 430 updates the route information between the route reflector 430 and the remote node 701. In response to this, in step S1506, the remote node 701 deletes the ECMP route.
[0111] In step S1507, the Pod 421 deletes the settings that were input to the FPGA 1101 in step S1404 of Fig. 14. In addition, in step S1508, the Pod 421 deletes itself.
[0112] 14 and 15, the control system 100 can auto-scale the VPN 605 by increasing or decreasing the number of Pods 421 in the server 600 including the FPGA 1101 according to the calculation results of the calculation unit 113.
[0113] Third Embodiment The node 121 according to this embodiment is not limited to the server 600, and may be, for example, a network device such as a switch.
[0114] (Internal Configuration of Switch) Fig. 16 is a diagram illustrating an example of the internal configuration of a switch according to the third embodiment. In the example of Fig. 16, a switch 1600 includes CPUs 601, 602, and 603, VPNs 605-1 to 605-3, and the like, similar to the server 600 according to the first embodiment described with reference to Fig. 6. Furthermore, the switch 1600 includes an ASIC 1610 instead of the hypervisor 604 included in the server 600 according to the first embodiment.
[0115] The ASIC 1610 is a switch ASIC or the like that has a hardware packet forwarding function. The switch 1600 can execute packet processing at high speed using the hardware forwarding function of the ASIC 1610.
[0116] The containerization of the switch 1600 is realized by an architecture such as SONiC (references: Architecture, sonic-net / SONiC Wiki, GitHub, Internet,<https: / / github.com / sonic-net / SONiC / wiki / Architecture> ).
[0117] However, although SONiC is a container-based architecture, since containers are not separated for each user, scaling for each VRF (Virtual Routing and Forwarding) is not possible. Therefore, in this embodiment, scaling for each VPN is made possible by separating and operating each VRF (each VPN) in a Pod.
[0118] (System Configuration) Fig. 17 is a diagram illustrating an example of the configuration of a control system according to Example 3. In the example of Fig. 17, the control system 100 includes a control device 110, a switch 1600, a route reflector 430, and opposing nodes 701a and 701b.
[0119] 17, the switch 1600 has VRF Pods 1601a and 1601b, which are Pods separated by VRF, and a worker node 1602. The VRF Pod 1601a realizes a VPN for user 1 communication between the remote nodes 701a and 701b. The VRF Pod 1601b realizes a VPN for user 2 communication between the remote nodes 701a and 701b. In the following description, when referring to any of the VRF Pods 1601a and 1601b, the term "VRF Pod 1601" is used.
[0120] 18 is a flowchart illustrating an example of communication processing according to the embodiment 3. This processing illustrates an example of processing that is executed when the control device 110 starts the VRF Pod 1601 of the switch 1600 and starts communication with the remote node 701.
[0121] In step S1801, the control device 110 activates the VRF Pod 1601 in the switch 1600 via the worker node 1602. In step S1802, the VRF Pod 1601 inputs various settings within the VRF Pod 1601.
[0122] In step S1803, the VRF Pod 1601 sends an ARP or GARP to the remote node 701. In step S1804, the VRF Pod 1601 sends a BGP Open to the route reflector 430, or sends an OSPF Hello. As a result, in step S1805, communication starts between the VRF Pod 1601 and the remote node 701.
[0123] 19 is a sequence diagram illustrating an example of a scale-out process according to the embodiment 3. This process illustrates an example of a scale-out process for increasing the number of VRF Pods 1601 on the switch 1600.
[0124] In steps S1901 and S1902, the control device 110 starts the VRF Pod 1601 via the worker node 1602. In step S1903, the started VRF Pod 1601 inputs various settings within the VRF Pod 1601.
[0125] In step S1904, the VRF Pod 1601 transmits an ARP or GARP to the remote node 701. In step S1905, the VRF Pod 1601 establishes a TCP connection with the route reflector 403 by TCP 3-way handshake.
[0126] In step S1906, the VRF Pod 1601 uses a BGP Open message to start a BGP session with the route reflector 430. In step S1907, the VRF Pod 1601 periodically sends a BGP KeepAlive message to the route reflector 430 to check for activity.
[0127] In step S1908, the VRF Pod 1601 uses a BGP Update message to update the route information between the VRF Pod 1601 and the route reflector 430. In response to this, in step S1909, the route reflector 430 uses a BGP Update message to update the route information between the VRF Pod 1601 and the remote node 701.
[0128] In step S1910, the remote node 701 adds an ECMP route in accordance with the updated route information, which allows communication between the VRF Pod 1601 and the remote node 701 to begin in step S1911.
[0129] 20 is a sequence diagram illustrating an example of a scale-in process according to Example 3. This process illustrates an example of a scale-in process for reducing the number of VRF Pods 1601 on the switch 1600.
[0130] In step S2001, it is assumed that the VRF Pod 1601 periodically transmits a BGP KeepAlive message to the route reflector 430 to check its activity.
[0131] In steps S2002 and S2003, the control device 110 instructs the worker node 420 to delete the VRF Pod 1601.
[0132] In step S2004, the VRF Pod 1601 notifies the route reflector 430 of the error by sending a BGP Notification message. This BGP Notification message includes an error code indicating, for example, that BGP has been shut down.
[0133] In step S2005, the route reflector 430 updates the route information between the remote node 701 and the remote node 701. In response to this, in step S1006, the remote node 701 deletes the ECMP route. In addition, in step S1007, the Pod 421 deletes the VRF Pod 1601.
[0134] 19 and 20, the control system 100 can perform scaling, such as scaling out and scaling in, of the VPN 605 by increasing or decreasing the number of Pods 421 in accordance with the calculation results of the calculation unit 113.
[0135] <Example of Hardware Configuration> The control device 110 has, for example, the hardware configuration of a computer 2100 as shown in Fig. 21. Alternatively, the control device 110 is configured by a plurality of computers 2100.
[0136] Fig. 21 is a diagram showing an example of the hardware configuration of a computer according to this embodiment. In the example of Fig. 21, a computer 2100 includes a processor 2101, a memory 2102, a storage device 2103, a communication device 2104, an input device 2105, an output device 2106, and a bus B.
[0137] The processor 2101 is, for example, an arithmetic device such as a CPU (Central Processing Unit) that realizes various functions by executing a predetermined program. The memory 2102 is a storage medium readable by the computer 2100, and includes, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory). The storage device 2103 is a computer-readable storage medium, and includes, for example, a HDD (Hard Disk Drive), an SSD (Solid State Drive), various optical disks, and a magneto-optical disk.
[0138] The communication device 2104 includes one or more pieces of hardware (communication devices) for communicating with other devices via a wireless or wired network. The input device 2105 is an input device (e.g., a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that accepts input from the outside. The output device 2106 is an output device (e.g., a display, a speaker, an LED lamp, etc.) that outputs to the outside.
[0139] The bus B is commonly connected to the above components and transmits, for example, address signals, data signals, and various control signals. The processor 2101 is not limited to a CPU, and may be, for example, a DSP (Digital Signal Processor), a PLD (Programmable Logic Device), or an FPGA.
[0140] (Supplementary Note) The control device 110 in this embodiment is not limited to being realized by a dedicated device, but may also be realized by a general-purpose computer. In this case, a program for realizing this function may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed to realize the function. Note that the term "computer system" here includes hardware such as an OS and peripheral devices.
[0141] Furthermore, the term "computer-readable recording medium" includes various storage devices such as portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices 2103 built into computer systems. Furthermore, the term "computer-readable recording medium" may also include devices that dynamically store a program for a short period of time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line, and devices that store a program for a certain period of time, such as volatile memory within a computer system that serves as a server or client in such cases.
[0142] Furthermore, the above program may be one that realizes part of the above-mentioned functions, or may be one that can realize the above-mentioned functions in combination with a program already recorded in a computer system, or may be one that is realized using hardware such as a PLD or FPGA.
[0143] <Effects of the embodiment> According to the present embodiment, it is possible to more appropriately scale a predetermined function realized by a plurality of nodes in accordance with the resources of the plurality of nodes that realize the predetermined function and the state of the predetermined function. For example, the control device 110 according to the present embodiment can more appropriately scale a virtual network function realized by a plurality of nodes in accordance with the resources of the plurality of nodes that realize the virtual network function and the state of the virtual network function.
[0144] Summary of Embodiments This specification discloses at least the control device, control system, control method, and program of the following paragraphs: (1) A control device that controls a plurality of nodes that realize a predetermined function, the control device comprising: an acquisition unit that acquires resource information of each node; a monitoring unit that monitors metrics information of the predetermined process; a calculation unit that calculates a deployment pattern of the predetermined function to be deployed to each node based on the resource information and the metrics information; and a control unit that scales the predetermined function of each node based on a calculation result by the calculation unit. (2) The control device described in paragraph 1, wherein the predetermined function is a virtual network function; the resource information includes parameters that are allocated proportionally by scaling out the virtual network function; and the metrics information includes parameters that are not allocated proportionally by scaling out the virtual network function. (3) The control device described in paragraph 2, wherein the calculation unit determines a deployment pattern of the virtual network function to be deployed to each node based on the resource information and the metrics information so as to maximize or minimize a predetermined objective function. (4) A control system for controlling a plurality of nodes that realize predetermined functions, comprising: an acquisition unit that acquires resource information of each node, a monitoring unit that monitors metrics information of the predetermined process, a calculation unit that calculates a deployment pattern of the predetermined function to be deployed to each node based on the resource information and the metrics information, and a control unit that scales the predetermined function of each node based on a calculation result by the calculation unit. (5) A control method, in which a computer that controls a plurality of nodes that realize predetermined functions executes an acquisition process that acquires resource information of the plurality of nodes, a monitoring process that monitors metrics information of the predetermined process, a calculation process that calculates a deployment pattern of the predetermined function to be deployed to each node based on the resource information and the metrics information, and a control process that scales the predetermined function of each node based on a calculation result by the calculation process.(Clause 6) A program or a storage medium storing the program that causes a computer to execute the control method described in Clause 5.
[0145] Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims.
[0146] 100 Control system 110 Control device 111 Acquisition unit 112 Monitoring unit 113 Calculation unit 114 Control unit 121, 121-1, 121-2, 121-3 Node 600 Server (an example of a node) 605, 605-1, 605-2, 605-3 VPN 2100 Computer
Claims
1. A control device that controls multiple nodes that realize a specified function, comprising: an acquisition unit that acquires resource information of each node; a monitoring unit that monitors metric information of the specified process; a calculation unit that calculates a deployment pattern of the specified function to be deployed to each node based on the resource information and the metric information; and a control unit that scales the specified function of each node based on the calculation result by the calculation unit.
2. The control device according to claim 1, wherein the specified function is a virtual network function, the resource information includes parameters that are allocated proportionally by scaling out the virtual network function, and the metrics information includes parameters that are not allocated proportionally by scaling out the virtual network function.
3. The control device according to claim 2, wherein the calculation unit determines a deployment pattern of the virtual network functions to be deployed to each node based on the resource information and the metrics information so as to maximize or minimize a predetermined objective function.
4. A control method in which a computer controlling multiple nodes that realize a specified function executes the following: an acquisition process that acquires resource information of the multiple nodes; a monitoring process that monitors metric information of the specified process; a calculation process that calculates a deployment pattern of the specified function to be deployed to each node based on the resource information and the metric information; and a control process that scales the specified function of each node based on the calculation results of the calculation process.
Citation Information
Patent Citations
Virtual Network Function Resource Allocation
US20180349202A1