This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-242588, filed on Dec. 14, 2016, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a control device and a control method.
In a recent network, there is a service chain system that transfers packets using a network (NW) function such as a firewall (FW) or a web proxy (Proxy) virtually arranged on a communication path upon request when making an access from a base site to an external site or another base site. A communication path that passes through a virtual NW function is called a service chain.
In the related art, the NW function works in a physical NW device such as an NW server. However, owing to recent improvements in performance of general-purpose servers, the NW function may also work in a software processing on the general-purpose servers. Accordingly, the operation of the NW function is beginning in the form of operating a program of the NW function under a virtualization environment of the general-purpose servers. A software processing related to the NW operating under the virtualization environment is referred to as a virtual network function (VNF).
However, as a result of shifting the operation mode of the NW-related processing such as data transfer from the physical NW device to the VNF of the software processing on the general-purpose servers, the processing performance of data transfer is deteriorated. For this reason, the processing performance of data transfer is improved by executing a plurality of programs in parallel and scaling out virtual machines in parallel on a plurality of servers to distribute the load of data transfer.
Related techniques are disclosed in, for example, Japanese Laid-Open Patent Publication No. 2015-149578 and Japanese Laid-Open Patent Publication No. 2015-138425.
According to an aspect of the invention, a control device is configured to control a plurality of virtual machine groups arranged on a plurality of stages, the plurality of virtual machine groups perform predetermined functions, the control device includes a memory, and a processor coupled to the memory and the processor configured to specify, when a first virtual machine is added into a first virtual machine group of the plurality of virtual machine groups configured to perform a first function of the predetermined functions, a second virtual machine group of the plurality of virtual machine groups configured to perform a second function of the predetermined functions, the second virtual machine group being arranged on a forefront stage of the plurality of stages, and add a second virtual machine into the second virtual machine group based on a number of second virtual machines in the second virtual machine group.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Referring back to
Hereinafter, exemplary embodiments of a technology capable of distributing traffics to all virtual machines even when a virtual machine is added will be described in detail with reference to the accompanying drawings. The disclosed technology is not limited by the embodiments. Further, the following embodiments may be used in proper combination unless contradictory.
The VNFs 12 are virtual NW functions such as a Web Cache 12A, a packet monitoring 12B, an FW 12C, a high-speed WAN 12D, an address conversion unit 12E, a virtual private network (VPN) router 12F, an IDS, and a Proxy. The Web Cache 12A is a NW function that stores cache data with a web server (not illustrated). The packet monitoring 12B is a NW function that monitors the state of packets on a communication path. The FW 12C is a NW function that suppresses unauthorized accesses. The high-speed WAN 12D is a NW function such as a high-speed WAN. The address conversion unit 12E is a NW function that converts an address. The VPN 12F is a NW function such as a router of a virtual leased line. The IDS is a NW function that detects unauthorized intrusions from the outside. The Proxy (Web Proxy or Web Cache) is a NW function of a proxy server. The VNF 12 is a virtual communication function virtually arranged in a virtual area on the general-purpose server 2B.
The management server 3 is a control device that arranges desired virtual NW 11 and VNF 12 on the virtual area of each general-purpose server 2B in the carrier NW 2 according to a configuration request of a service chain from the terminal device 4. The terminal device 4 is, for example, a terminal device such as a system administrator that accesses the management server 3 via the FW 4A, the high-speed WAN 4B, the VPN 4C, or the like and instructs the management server 3 to request the configuration of the service chain. The configuration request is a command for requesting the arrangement of one or more VNFs 12 on a communication path on which packets are transferred. In addition to specifying the number of instances of the VNF 12 and LB, the configuration request may specify only the number of instances of the VNF 12. Further, the configuration request may specify, for example, the required quality of the service chain. When detecting the configuration request specifying the required quality, the management server 3 determines the number of instances of the VNF 12 and LB from the desired function and the load condition specified by the configuration request.
The input device 32 is an input interface for inputting various kinds of information, for example, a pointing device such as a keyboard or a mouse. The output device 33 is an output interface for outputting various kinds of information such as, for example, an audio output device or a display device. The auxiliary storage device 34 is a nonvolatile memory such as an erasable programmable ROM (EPROM) or a hard disk drive (HDD) configured to store various kinds of information such as various kinds of programs and data used by the processor 36. Further, the auxiliary storage device 34 is an area holding, for example, an operating system (OS) and various other application programs.
The main storage device 35 is a semiconductor memory such as a random access memory (RAM) configured to provide an area or a work area into which various kinds of information such as, for example, a program stored in the auxiliary storage device 34, is loaded. The processor 36 is, for example, a control unit such as a central processing unit (CPU) that controls the management server 3 in its entirety. The processor 36 executes various processing functions by loading and executing an OS and various application programs stored in the auxiliary storage device 34 or a portable recording medium into the main storage device 35. The number of processors 36 is not limited to one but may be two or more.
The number of traffics from LB1 and LB2 in VNF#1 is six lines in total. The VNF#1 outputs traffics through the six lines to Cache1 to Cache3 in VNF#4, which is the destination VNF, via VNF#2 and VNF#3. In the service chain, since the total number of traffics is 6 lines, the traffics may be distributed to all the VMs in the VNFs by controlling a transfer path.
As a result, in the service chain, since LB is placed only in the VNF#1 at the first stage, the traffics are distributed to the LB, and the traffics pass through all the VMs in each VNF by controlling a traffic transmission path, the traffics may be distributed to all the VMs. In the service chain, since LB is placed only in the VNF#1 at the first stage, the traffics may be distributed to all VMs on the transfer path while reducing a processing delay of VNF#2 to VNF#4. Moreover, since the division ratio of traffics may be adjusted by the LB at the first stage, the loads of VMs may be equalized.
Further, the management server 3 monitors the load of each VM in the VNF in the service chain and detects the overload of the VNF when the load of the VM exceeds a predetermined threshold. Furthermore, when detecting the overload of the VNF, the management server 3 executes an auto scale which automatically adds a VM to the overloaded VNF.
In the service chain illustrated in
In a VM of a non-LB terminating VNF, there is one destination VM at a destination address of a traffic that the VM outputs. For example, since Proxy of the terminating VNF#4 is non-LB, when receiving a traffic destined for itself among traffics divided by the LB at the first stage, the received traffic is output to one destination VM. Therefore, since there are three VMs in VNF#4, only three lines of traffics flow.
When detecting the overload of VM (FWB) of VNF#5 in the service chain, the management server 3 executes an auto scale which adds one VM (FWB4) to VNF#5 as illustrated in
As a result, in the service chain illustrated in
The monitoring unit 41 monitors the load of each VM in each VNF constituting a service chain, for example, a CPU usage rate. When the CPU usage rate exceeds a predetermined threshold value (e.g., 80%), the monitoring unit 41 detects an overload of the VNF. When detecting the overload of the VNF, the monitoring unit 41 notifies the adding unit 42 of an addition request for adding a VM to the overloaded VNF.
In response to the addition request, the adding unit 42 activates a VM acting as a VNF constituting the service chain on the general server 2B and adds the VM to the VNF. In response to the addition of the VM, the requesting unit 43 determines whether or not there are other VMs to be added in conjunction with the addition of the VM. When it is determined that there are other VMs to be added, the requesting unit 43 notifies the adding unit 42 of a VM addition request. The requesting unit 43 includes a specifying unit 43A and a selecting unit 43B. The specifying unit 43A specifies a source VNF at a source address of a traffic passing through the additional VNF including the additional VM. Further, the additional VNF is, for example, a VNF that executes a first function and the source VNF is, for example, a VNF that executes a second function. The selecting unit 43B selects a source VNF or a destination VNF as a VM to be added in conjunction. The destination VNF is, for example, a VNF that executes a third function. In the first embodiment, for convenience of explanation, it is assumed that the selecting unit 43B selects a source VNF in advance. The requesting unit 43 compares the number of VMs of the source VNF, that is, the number of source VMs, with the number of VMs of the additional VNF, that is, the number of additional VMs. Further, based on a result of the comparison between the number of source VMs and the number of additional VMs, when the number of source VMs is smaller, the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNFs. When the configuration of the service chain is changed in response to the addition request, the resetting unit 44 recalculates an allocation setting of LB and a transfer path of VNF, sets the allocation setting in LB, and sets the transfer path in each VNF. The control unit 45 controls the overall operation of the processor 36.
The main storage device 35 has a configuration table 51 and a VM management table 52.
LB1 and LB2 assume each VM (Cache1 and Cache2) of the VNF#4 that terminates traffics, as a destination. LB1 divides an input traffic into two lines of traffics and outputs each traffic to each VM (Cache1 and Cache2) in the destination VNF#4. LB2 divides an input traffic into two lines of traffics and outputs each traffic to each VM (Cache1 and Cache2) in the destination VNF#4. VNF#1 outputs four lines of traffics to VNF#4 which becomes a destination via VNF#2 and VNF#3. In the service chain, since the total number of traffics is four lines, the traffics are distributed to all the VMs in the VNFs by controlling a transfer path.
The monitoring unit 41 in the management server 3 detects an overload of a VNF in VNF#3 as illustrated in
Furthermore, the specifying unit 43A in the requesting unit 43 in the processor 36 refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage of VNF#x with x−1=i, that is, at the transmitting side (Operation S14). The specifying unit 43A refers to the transfer mode 51F of the configuration table 51 to determine whether or not VNF#i is of a terminating type (Operation S15).
When VNF#i is not of a terminating type (“No” in Operation S15), the specifying unit 43A refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage with i=i−1 (Operation S16). The specifying unit 43A determines whether or not i is greater than 0 (Operation S17). When it is determined that i is greater than 0 (“Yes” in Operation S17), the requesting unit 43 proceeds to Operation S15 to determine whether or not VNF#i specified in Operation S16 is of a terminating type.
When it is determined that i is not greater than 0 (“No” in Operation S17), the resetting unit 44 in the processor 36 resets the allocation setting of LB and the transfer path of each VM so that the traffics are distributed to all the VMs including the additional VM (Operation S18), and then ends the processing operation illustrated in
When it is determined that VNF#i is of a terminating type (“Yes” in Operation S15), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs of the additional VNF#x and the number m of source VMs of the source VNF#i (Operation S19). The requesting unit 43 determines whether or not the number m of source VMs is smaller than the number n of additional VMs (Operation S20).
When it is determined that the number m of source VMs is smaller than the number n of additional VMs (“Yes” in Operation S20), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i (Operation S21). The control unit 45 updates the configuration table 51 and the VM management table 52 according to the additional VM for the source VNF (Operation S22). Further, the requesting unit 43 proceeds to Operation S19 to extract the number of additional VMs and the number of source VMs in accordance with table update of the additional VM for the source VNF.
When it is determined that the number m of source VMs is not smaller than the number n of additional VMs (“No” in Operation S20), the requesting unit 43 proceeds to Operation S18 to reset the allocation setting of LB and the transfer path of each VM so that the traffics are distributed to all the VMs including the additional VM. Further, when it is determined that the overload of VNF#x has not been detected (“No” in Operation S11), the monitoring unit 41 ends the processing operation illustrated in
When adding a VM to the overloaded VNF, the management server 3 of the first embodiment specifies a source VNF of a traffic passing through the additional VNF. The management server 3 adds the VM to the source VNF so that the traffics may be allocated to all the VMs in the additional VNF. As a result, even when the VM is added to the overloaded VNF, since the management server 3 may reliably allocate the traffics to all the VMs, the processing load of the overloaded VNF may be reduced while distributing the traffics to all the VMs.
The management server 3 adds a virtual machine to a source VNF according to the number of additional VMs of all the VMs in the additional VNF. As a result, the management server 3 may allocate traffics to all VMs.
In the first embodiment, even when a VM is added, a VM is added to a source VNF so that traffics may be allocated to all VMs including the additional VM. However, this embodiment is not limited to such a configuration but may be appropriately modified. A second embodiment in which a VM is added to a source VNF based on a result of determination as to whether or not the source VNF is LB will be described below.
The service chain illustrated in
LB1 and LB2 assume each VM (Cache1 and Cache2) that terminates traffics, as a destination. LB1 divides an input traffic into two lines of traffics and outputs each traffic to each VM (Cache1 and Cache2) in the destination VNF#4. LB2 divides an input traffic into two lines of traffics and outputs each traffic to each VM (Cache1 and Cache2) in the destination VNF#4. VNF#1 outputs four lines of traffics to VNF#4 as a destination VNF via VNF#2 and VNF#3. In the service chain illustrated in
Upon detecting the overload of a VPN in VNF#3, the monitoring unit 41 notifies the adding unit 42 of an addition request to add a VM (VPN5) to the overloaded VNF#3. The monitoring unit 41 notifies the requesting unit 43 of a VNF identifier that identifies the additional VNF#3.
The specifying unit 43A refers to the transfer mode 51F in the configuration table 51 to specify a terminating source VNF of a traffic passing through the additional VNF. The requesting unit 43 refers to the LB identifier 51G in the configuration table 51 to determine whether or not the source VNF is LB. When the source VNF is LB, the requesting unit 43 determines whether or not the additional VM may allocate a traffic. When the additional VM may allocate a traffic, the requesting unit 43 compares the number of VMs of the additional VNF, that is, the number of additional VMs, with the number of VMs of the source VNF, that is, the number of source VMs. When the source VNF is not LB, the requesting unit 43 compares the number of source VMs with the number of additional VMs to determine whether or not the additional VM may allocate a traffic.
The determination as to whether or not a traffic may be allocated to the additional VM is made based on the number of traffics passing through a VNF including the additional VM. When the number of traffics is larger than the number of VMs of the additional VNF including the additional VM, a traffic may be allocated to the additional VM by controlling transfer paths of these traffics. When the source VNF is LB, the number of traffics may be calculated as “the number of pairs of the number of LBs and the number of destination VMs of the destination VNF”.
The requesting unit 43 compares the calculated number of traffics with the number of additional VMs. When the number of additional VMs is larger than the number of traffics, the requesting unit 43 determines that no traffic may be allocated to the additional VM. In the example of
The requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF so that the number of traffics becomes equal to or larger than the number of additional VMs of the additional VNF.
When adding a VM to the overloaded VNF, the management server 3 specifies a source VNF of a traffic passing through the additional VNF. The management server 3 calculates the number of traffics by multiplying the number of source VMs of the source VNF by the number of destination VMs of the destination VNF. When the source VNF is LB and the number of traffics is smaller than the number of additional VMs, the management server 3 adds an LB to the source VNF. As a result, even when a VM is added to the overloaded VNF, since the management server 3 may reliably allocate the traffics to all the VMs, the processing load of the overloaded VNF may be reduced while distributing the traffics to all the VMs.
When the source VNF is LB and the number of traffics is equal to or larger than the number of additional VMs, the management server 3 may suppress wasteful addition of LB to the source VNF and reliably allocate the traffics to all VMs by controlling a transfer path. As a result, the processing load of the overloaded VNF may be reduced while distributing the traffics to all VMs.
A service chain where the source VNF is an LB has been illustrated in
Upon detecting the overload of a VPN in VNF#3, the monitoring unit 41 notifies the adding unit 42 of an addition request to add a VM (VPN3) to VNF#3. The monitoring unit 41 notifies the requesting unit 43 of a VNF identifier for identifying the additional VNF#3.
Since the source VNF is not LB, the requesting unit 43 refers to the configuration table 51 to determine whether or not a traffic may be allocated to the additional VM. When the number of traffics is equal to or larger than the number of additional VMs of VNF including the additional VM, the requesting unit 43 may allocate a traffic to the additional VM by controlling a transfer path of the traffic. Here, when the source VNF is not LB, the number of traffics is calculated as the number of source VMs of the source VNF. In the example of
When adding a VM to the overloaded VNF, the management server 3 specifies a source VNF of a traffic passing through the additional VNF. The management server 3 calculates the number of traffics by multiplying the number of source VMs of the source VNF by the number of destination VMs of the destination VNF. When the source VNF is non-LB and the number of traffics is smaller than the number of additional VMs, the management server 3 adds a VM to the source VNF. As a result, even when a VM is added to the overloaded VNF, since the management server 3 may reliably allocate the traffics to all the VMs, the processing load of the overloaded VNF may be reduced while distributing the traffics to all the VMs.
Furthermore, the specifying unit 43A in the requesting unit 43 in the processor 36 refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage of VNF#x based on x−1=i (Operation S34). The specifying unit 43A refers to the transfer mode 51F of the configuration table 51 to determine whether or not VNF#i is of a terminating type (Operation S35).
When it is determined that VNF#i is not of a terminating type (“No” in Operation S35), the specifying unit 43A refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage based on i=i−1 (Operation S36). The specifying unit 43A determines whether or not i is greater than 0 (Operation S37). When it is determined that i is greater than 0 (“Yes” in Operation S37), the requesting unit 43 proceeds to Operation S35 to determine whether or not VNF#i specified in Operation S36 is of a terminating type.
When it is determined that i is not greater than 0 (“No” in Operation S37), the resetting unit 44 in the processor 36 resets the transfer path and the allocation setting so that the traffics are distributed to all the VMs including the additional VM in the service chain (Operation S38), and then ends the processing operation illustrated in
When it is determined that VNF#i is of a terminating type (“Yes” in Operation S35), the requesting unit 43 refers to the LB identifier 51G in the configuration table 51 to determine whether or not VNF#i is LB (Operation S39). When it is determined that VNF#i is not LB (“No” in Operation S39), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs of the additional VNF#x and the number m of source VMs of the source VNF#i (Operation S40). The requesting unit 43 determines whether or not the number m of source VMs is smaller than the number n of additional VMs (Operation S41).
When it is determined that the number m of source VMs is smaller than the number n of additional VMs (“Yes” in Operation S41), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i (Operation S42). The control unit 45 updates the configuration table 51 and the VM management table 52 according to the addition of VM to the source VNF (Operation S43). Further, the requesting unit 43 proceeds to Operation S40 to extract the number of additional VMs and the number of source VMs in accordance with table update of the additional VM.
When it is determined that the number m of source VMs is not smaller than the number n of additional VMs (“No” in Operation S41), the requesting unit 43 proceeds to Operation S38 to reset the transfer path and the allocation setting so that the traffics are distributed to all the VMs in the service chain. Further, when it is determined that the overload of VNF#x has not been detected (“No” in Operation S31), the monitoring unit 41 ends the processing operation illustrated in
When it is determined that VNF#i is LB (“Yes” in Operation S39), the specifying unit 43A refers to the VNF identifier 51D in the configuration table 51 to specify VNF#h at the next stage of the additional VNF with h=x+1 (Operation S44). The requesting unit 43 refers to the transfer mode 51F in the configuration table 51 to determine whether or not VNF#h is of a terminating type (Operation S45). When it is determined that VNF#h is not of a terminating type (“No” in Operation S45), the specifying unit 43A refers to the VNF identifier 51D in the configuration table 51 to specify VNF#h at the next stage with h=h+1 (Operation S46).
The requesting unit 43 determines whether or not h is equal to or smaller than the number of VNFs (Operation S47). When it is determined that h is equal to or smaller than the number of VNFs (“Yes” in Operation S47), the requesting unit 43 proceeds to Operation S45 to determine whether or not VNF#h is of a terminating type. When it is determined that h is not equal to or smaller than the number of VNFs (“No” in Operation S47), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs and the number m of source VMs (Operation S48).
The requesting unit 43 determines whether or not the number m of source VMs is smaller than the number n of additional VMs (Operation S49). When it is determined that the number m of source VMs is smaller than the number n of additional VMs (“Yes” in Operation S49), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i (Operation S50). Then, the control unit 45 updates the configuration table 51 and the VM management table 52 according to the addition of VM to the source VNF (Operation S51) and then proceeds to Operation S48 to extract the number of source VMs and the number of additional VMs.
Further, when it is determined that VNF#h is of a terminating type (“Yes” in Operation S45), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs, the number m of source VMs, and the number p of destination VMs (Operation S52). Further, the requesting unit 43 determines whether or not m×p is smaller than n (Operation S53). When it is determined that m×p is smaller than n (“Yes” in Operation S53), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i (Operation S54). Then, the control unit 45 updates the configuration table 51 and the VM management table 52 according to the addition of VM to the source VNF (Operation S55) and then proceeds to Operation S52 to extract the number of source VMs, the number of additional VMs, and the number of destination VMs. When it is determined that m×p is not smaller than n (“No” in Operation S53), the requesting unit 43 proceeds to Operation S38 to reset the transfer path and the allocation setting. When it is determined that the number m of source VMs is not smaller than the number m of additional VMs (“No” at Operation S49), the requesting unit 43 proceeds to Operation S38 to reset the transfer path and the allocation setting.
When adding a VM to the overloaded VNF, the management server 3 of the second embodiment specifies a source VNF of a traffic passing through the additional VNF. The management server 3 calculates the number of traffics by multiplying the number of source VMs of the source VNF by the number of destination VMs of the destination VNF. When the VM of the source VNF is LB and the number of traffics is smaller than the number of additional VMs, the management server 3 adds an LB to the source VNF. As a result, even when a VM is added to the overloaded VNF, since the management server 3 may reliably allocate the traffics to all the VMs, the processing load of the overloaded VNF may be reduced while distributing the traffics to all the VMs.
When a VM of the source VNF is LB and the number of traffics is equal to or larger than the number of additional VMs, the management server 3 may suppress wasteful addition of LB to the source VNF and reliably allocate the traffics to all VMs by controlling a transfer path. As a result, the processing load of the overloaded VNF may be reduced while distributing the traffics to all VMs.
The management server 3 determines whether or not traffics may be allocated to all VMs in the additional VNF, based on the number of traffics from the source VNF to the destination VNF of the traffics. When the traffics may not be allocated, the management server 3 adds a VM to the source VNF. As a result, the management server 3 may allocate traffics to all VMs.
The management server 3 specifies the traffic destination VNF from the additional VNF. The management server 3 calculates the number of traffics by multiplying the number of source VMs by the number of destination VMs. As a result, the management server 3 may easily calculate the number of traffics in the service chain.
In the second embodiment, the number of traffics is calculated by multiplying the number of source VMs by the number of destination VMs. However, the second embodiment is not limited to such a configuration. For example, when the source VNF is LB, by referring to the allocation setting of the LB, the number of traffics which corresponds to the number of destinations between each LB and a VM in the destination VNF may be extracted. It is assumed that the management server 3 manages allocation settings set for each LB. Further, when the allocation settings are not managed, it is assumed that the management server 3 uses the function of acquiring an allocation setting from each LB. In the example of
Further, when a VM is added in conjunction with the additional VM, the selecting unit 43B of the second embodiment is preset so as to add the VM to the source VNF. However, the selecting unit 43B may be preset so as to add a VM to the destination VNF instead of the source VNF and may be appropriately changed in the setting. For example, the selecting unit 43B may add a VM to one of the source VNF and the destination VNF with less virtual resource consumption in the predetermined number of additional VMs, for example, one additional VM. It is also assumed that the management server 3 manages the virtual resource consumption of each VM for each VNF.
Further, the selecting unit 43B may add a VM to one of the source VNF and the destination VNF with a smaller fee that increases with the predetermined number of additional VMs, for example, one additional VM. Here, it is also assumed that the management server 3 manages the usage fee of each VM for each VNF.
Further, the selecting unit 43B may add a VM to one of the source VNF and the destination VNF with the smaller sum of margins of the processing capacity of all VMs in order to suppress the frequency of service chain reestablishment by an auto scale. For example, the phrase “the CPU usage rate of 1−VM” is regarded as the sum of margins of the processing capacity of the VM. The management server 3 compares the sum of margins of the processing capacity of all VMs of the source VNF with the sum of margins of the processing capacity of all VMs of the destination VNF based on the CPU usage rate of each VM and adds a VM to a VNF with the smaller sum of margins.
Further, in order to suppress the frequency of addition of VM to VNF, the selecting unit 43B adds a VM to one of the source VNF and the destination VNF with the larger number of traffic-allocable VMs with the VM addition. That is, “(the number of source VMs+1)× the number of destination VMs” is compared with “the number of source VMs× (the number of destination VMs+1),” and a VM is added to the larger VNF.
A case where a traffic may be allocated to a VM added in conjunction has been exemplified in the first and second embodiments. However, it is not always possible to allocate a traffic to a VM added in conjunction. Therefore, when no traffic may be allocated to the VM added in conjunction, another VM is further added in conjunction, as will be described below with a third embodiment.
The service chain illustrated in
LB1 assumes VMs (ProxyA1 and ProxyA2) that terminate traffics, as destinations, and outputs a traffic to two ProxyA1 and ProxyA2 in the destination VNF#2. ProxyA1 assumes a VM (ProxyB1) that terminates the traffic, as a destination, and outputs the traffic to ProxyB1 in the destination VNF#3. ProxyA2 assumes a VM (ProxyB2) that terminates the traffic, as a destination, and outputs the traffic to ProxyB2 in the destination VNF#3. ProxyB1 assumes a VM (Cache1) that terminates the traffic, as a destination, and outputs the traffic to Cache1 in the destination VNF#5. ProxyB2 assumes a VM (Cache2) that terminates the traffic, as a destination, and outputs the traffic to Cache2 in the destination VNF#5.
Upon detecting an overload of VPN in VNF#4, the monitoring unit 41 notifies the adding unit 42 of an addition request to add a VM (VPN3) to VNF#4. The monitoring unit 41 notifies the requesting unit 43 of a VNF identifier for identifying the additional VNF#4.
The specifying unit 43A refers to the transfer mode 51F in the configuration table 51 to specify the terminating source VNF#3 of a traffic passing through the additional VNF#4. The VMs of the source VNF#3 are ProxyB1 and ProxyB2. The requesting unit 43 refers to the LB identifier 51G in the configuration table 51 to determine whether or not the source VNF#3 is LB. Since the source VNF#3 is not LB but ProxyB1 and ProxyB2, the requester 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#3 so that the number of source VMs of the source VNF#3 becomes equal to or larger than the number of additional VMs of the additional VNF#4.
In response to the addition request from the requesting unit 43, the adding unit 42 adds the third ProxyB3 to the source VNF#3. The control unit 45 changes the VM number corresponding to the source VNF#3 in the configuration table 51 to “3”. The control unit 45 adds the VM identifier 52D, the VMID 52E, the management address 52F, and the transfer address 52G as the VM identification information of ProxyB3 corresponding to the source VNF#3 in the VM management table 52.
In response to the addition request from the requesting unit 43, the adding unit 42 adds the third ProxyA3 to the source VNF#2. The control unit 45 changes the VM number corresponding to the source VNF#2 in the configuration table 51 to “3”. The control unit 45 adds the VM identifier 52D, the VMID 52E, the management address 52F, and the transfer address 52G as the VM identification information of ProxyA3 corresponding to the source VNF#2 in the VM management table 52.
Further, the requesting unit 43 refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage of VNF#x based on x−1=i (Operation S64). The specifying unit 43A refers to the transfer mode 51F of the configuration table 51 to determine whether or not VNF#i is of a terminating type (Operation S65).
When it is determined that VNF#i is not of a terminating type (“No” in Operation S65), the specifying unit 43A refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage based on i=i−1 (Operation S66). The specifying unit 43A determines whether or not i is larger than 0 (Operation S67). When it is determined that i is larger than 0 (“Yes” in Operation S67), the requesting unit 43 proceeds to Operation S65 to determine whether or not VNF#i specified in Operation S66 is of a terminating type.
When it is determined that i is not larger than 0 (“No” in Operation S67), the resetting unit 44 in the processor 36 resets the transfer path and the allocation setting so that the traffics are distributed to all VMs including the additional VM in the service chain (Operation S68), and then ends the processing operation illustrated in
When it is determined that VNF#i is of a terminating type (“Yes” in Operation S65), the requesting unit 43 refers to the LB identifier 51G in the configuration table 51 to determine whether VNF#i is LB (Operation S69). When it is determined that VNF#i is LB (“Yes” in Operation S69), the specifying unit 43A refers to the VNF identifier 51D in the configuration table 51 to specify VNF#h at the next stage of the additional VNF with h=x+1, and sets an additional flag to false (Operation S70). Here, the additional flag is a flag indicating whether or not another VM is being added in conjunction with addition of VM to the overloaded VNF. Here, the term “false” indicates a state in which another VM is not added in conjunction and the term “true” indicates a state in which another VM is added in conjunction. The specifying unit 43A refers to the transfer mode 51F in the configuration table 51 to determine whether or not VNF#h is of a terminating type (Operation S71). When it is determined that VNF#h is not of a terminating type (“No” in Operation S71), the specifying unit 43A refers to the VNF identifier 51D in the configuration table 51 to specify VNF#h at the next stage with h=h+1 (Operation S72).
The requesting unit 43 determines whether or not h is equal to or smaller than the number of VNFs (Operation S73). When it is determined that h is equal to or smaller than the number of VNFs (“Yes” in Operation S73), the requesting unit 43 proceeds to Operation S71 to determine whether or not VNF#h is of a terminating type. When it is determined that h is not equal to or smaller than the number of VNFs (“No” in Operation S73), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs and the number m of source VMs (Operation S74).
The requesting unit 43 determines whether or not the number m of source VMs is smaller than the number n of additional VMs (Operation S75). When it is determined that the number m of source VMs is smaller than the number n of additional VMs (“Yes” in Operation S75), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i and sets an additional flag to true (Operation S76). Then, the control unit 45 updates the configuration table 51 and the VM management table 52 according to the addition of VM to the source VNF (Operation S77) and proceeds to Operation S74 to extract the number of source VMs and the number of additional VMs.
Further, when it is determined that VNF#h is of a terminating type (“Yes” in Operation S71), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs, the number m of source VMs, and the number p of destination VMs (Operation S78). Further, the requesting unit 43 determines whether or not m×p is smaller than n (Operation S79). When it is determined that m×p is smaller than n (“Yes” in Operation S79), the requesting unit 43 notifies the adding unit 42 of an addition request to add a VM to the source VNF#i. In response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i and sets an additional flag to true (Operation S80). Then, the control unit 45 updates the configuration table 51 and the VM management table 52 according to the addition of VM to the source VNF (Operation S81) and then proceeds to Operation S78 to extract the number of source VMs, the number of additional VMs, and the number of destination VMs. When it is determined that m×p is not smaller than n (“No” in Operation S79), the requesting unit 43 determines whether or not the additional flag is true (Operation S82).
When it is determined that the additional flag is true (“Yes” in Operation S82), the requesting unit 43 proceeds to Operation S68 to reset the transfer path and the allocation setting so as to distribute the traffics to all VMs including the additional VM. When it is determined that the additional flag is not true (“No” in Operation S82), the requesting unit 43 sets x to i (Operation S83) and then proceeds to M1 in
In M1 of
When it is determined that VNF#i is not of a terminating type (“No” in Operation S86), the requesting unit 43 refers to the VNF identifier 51D of the configuration table 51 to specify VNF#i at the previous stage based on i=i−1 (Operation S87). The requesting unit 43 determines whether i is larger than 0 (Operation S88). When it is determined that i is larger than 0 (“Yes” in Operation S88), the requesting unit 43 proceeds to Operation S86 to determine whether or not VNF#i specified in Operation S87 is of a terminating type.
When it is determined that i is not larger than 0 (“No” in Operation S88), the resetting unit 44 in the processor 36 proceeds to M2 illustrated in
When it is determined that VNF#i is of a terminating type (“Yes” in Operation S86), the requesting unit 43 refers to the LB identifier 51G in the configuration table 51 to determine whether VNF#i is LB (Operation S89). When it is determined that VNF#i is LB (“Yes” in Operation S89), the requesting unit 43 proceeds to M2 illustrated in
When it is determined that VNF#i is not LB (“No” in Operation S89), the requesting unit 43 refers to the VM number 51H in the configuration table 51 to extract the number n of additional VMs of the additional VNF#x and the number m of source VMs of the source VNF#i, and sets the additional flag to false (Operation S90). The requesting unit 43 determines whether or not the number m of source VMs is equal to or smaller than the number n of additional VMs (Operation S91).
When it is determined that the number m of source VMs is equal to or smaller than the number n of additional VMs (“Yes” in Operation S91), in response to the addition request from the requesting unit 43, the adding unit 42 adds one VM to the source VNF#i and sets the additional flag to true (Operation S92). The control unit 45 updates the configuration table 51 and the VM management table 52 according to addition of VM to the source VNF (Operation S93). Further, the requesting unit 43 proceeds to Operation S90 to extract the number of additional VMs and the number of source VMs according to the table update of the additional VM.
When it is determined that the number m of source VMs is not equal to or smaller than the number n of additional VMs (“No” in Operation S91), the requesting unit 43 determines whether or not the additional flag is true (Operation S94). When it is determined that the additional flag is not true (“No” in Operation S94), the requesting unit 43 proceeds to M2 illustrated in
When adding a VM to the overloaded VNF#4, the management server 3 of the third embodiment specifies the source VNF#3 of a traffic passing through VNF#4 and adds a VM to the source VNF#3 so that the number of additional VMs of the additional VNF#4 becomes equal to or larger than number of source VMs of the source VNF#3. When adding a VM to VNF#3, the management server 3 specifies the source VNF#2 of a traffic passing through VNF#3 and adds a VM to the source VNF#2 so that the number of additional VMs of the additional VNF#3 becomes equal to or larger than number of source VMs of the source VNF#2. Furthermore, when adding a VM to VNF#2, the management server 3 specifies the source VNF#1 of a traffic passing through VNF#2 and ends the VM adding process since the source VNF#1 is LB. That is, even when no traffic may be allocated to a VM added in conjunction, another VM is further added in conjunction. As a result, even when a VM is added to the overloaded VNF, since the management server 3 may reliably allocate the traffics to all VMs, the processing load of the overloaded VNF may be reduced while distributing the traffics to all VMs.
A case where a VM is added to an overloaded VNF has been exemplified in the above embodiment, but the embodiment is not limited to such a case of overload as long as a VM is added to a VNF. In the above embodiment, the management server 3 adds one VM to another VNF in conjunction with the VM addition. However, without being limited to one VM, the management server 3 may add two or more VMs so that traffics are allocated to all VMs.
Various elements of various units illustrated in the drawing are not necessarily physically configured as illustrated in the drawing. In other words, the specific forms of distribution and integration of various units are not limited to those illustrated in the drawings, but all or some thereof may be distributed or integrated functionally or physically in arbitrary units depending on various kinds of loads, usage conditions, etc.
Further, the various processing functions performed in the respective units may be entirely or partially executed on a CPU, a digital signal processor (DSP), a field programmable gate array (FPGA), etc. Furthermore, the various processing functions may be entirely or partially executed on a program analyzed and executed by a CPU or the like, or on hardware using wired logic.
An area for storing various kinds of information may be, for example, a read only memory (ROM) or a random access memory (RAM) such as a synchronous dynamic random access memory (SDRAM), a magneto-resistive random access memory (MRAM), a non-volatile random access memory (NVRAM), or the like.
The various processes illustrated and described in the exemplary embodiments may be realized by causing a processor such as a CPU in a computer to execute a prepared program. The following description will be given to an example of an information processing apparatus 100 that executes a program having the functions of the above embodiments.
The information processing apparatus 100 that executes control programs illustrated in
The control programs that exhibit the functions of the above embodiments are stored in advance in the ROM 130. The ROM 130 stores a specifying program 130A and an adding program 130B as the control programs. Instead of the ROM 130, the control programs may be stored in a computer-readable recording medium with a drive (not illustrated), for example, a portable recording medium such as a CD-ROM, a DVD disc, or a USB memory, a semiconductor memory such as a flash memory, etc.
The CPU 150 reads the specifying program 130A from the ROM 130 and causes the read specifying program 130A to function as a specifying process 140A on the RAM 140. Further, the CPU 150 reads the adding program 130B from the ROM 130 and causes the read adding program 130B to function as an adding process 140B on the RAM 140.
When adding a virtual machine to a group of virtual machines that execute the first function, the CPU 150 specifies a group of virtual machines that execute the second function of a source at a source address of a traffic passing through the group of virtual machines executing the first function. The CPU 150 adds a virtual machine to the specified virtual machine group that executes the second function, based on the number of virtual machines in the specified virtual machine group that executes the second function. As a result, even when a virtual machine is added, traffics may be distributed to all the virtual machines.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to an illustrating of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2016-242588 | Dec 2016 | JP | national |