This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-007281, filed on Jan. 16, 2015, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a management method and a management server of a transfer path of data within a network.
Attention has been focused on a technique called NFV (Network Functions Virtualization). With NFV, functions implemented by network appliances such as a router, a gateway, a load balancer and the like are installed by application programs, and are operated as VMs (Virtual Machines) in a server. NFV ISG (Industry Specification Group) of ETSI (European Telecommunications Standards Institute), which is a standardization group of Europe, has been studying, by using NFV, an implementation of communication performed via a firewall and a proxy server. In this case, a data transfer path (a service chain) on which a plurality of functions that operate within virtual machines in a server are selectively used is employed.
Here, it is assumed that terminals and the virtual machines respectively store a transfer destination in a routing table in association with a final destination of a packet. For example, when a terminal 10A transmits a packet to a terminal 10Z in
As a related technique, a system is proposed in which a communication management device processes packets that flow in a network and each client does not reply to a packet other than a packet transmitted from the communication management device when the client is set to power-saving mode. Upon receipt of a request to connect to a connection destination from an arbitrary client, the communication management device transmits, to the connection destination, a request to recover from the power-saving mode, and executes, as a substitute for the connection destination, a process for preparing for communication with a transmission source of the connection request. As related techniques, documents such as Japanese Laid-open Patent Publication No. 2004-126959 and the like are known.
In a system using a service chain, a modification of a communication path that causes a change, an addition or the like of a virtual machine within the service chain is made in accordance with a request from a user or load status. When a virtual machine is changed or added, a management server that manages a communication path executes a process for changing a path after a virtual machine included in a new path has been activated. Here, unless an OS that operates within a virtual machine has been activated, the activation of the virtual machine is not completed. A considerable length of time is needed to activate an OS within a virtual machine. The management server does not generate a service chain until a virtual machine is activated. Therefore, a requested function is not provided until a new path is set after a virtual machine has been activated.
According to an aspect of the embodiments, a management server manages a transfer path within a network, and includes a transmitter and a processor. The transmitter transmits a request to activate a virtual machine included in the transfer path, and a request to activate an application that executes, as a substitute for the virtual machine, a transfer process executed by the virtual machine until the virtual machine is activated. The processor sets a first path including an execution device that executes the application in the transfer path after the application has been activated. The processor performs a control for switching the first path to a second path in which the execution device within the first path is replaced with the virtual machine.
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.
With a method according to an embodiment, when a virtual machine is activated, a container is newly activated. The container executes, as a substitute, a process executed by a virtual machine. The container has been activated before the virtual machine is newly activated. Virtual machines and containers are described with reference to
Assume that CPUs (Central Processing Units) within the server 20 are a CPU1 and a CPU2. Also assume that the application 41a makes a process request to a CPU having an ID, which is an ID used within the container 40a and is CPU0, by using the ID table 42. Then, the designation of CPU0 in the container 40a is converted into CPU1 in accordance with the conversion information table 24. Accordingly, the process for the application 41a is executed by the CPU1. Also, for the container 40b, the designation of CPU0 within the container 40b is read as a designation of CPU 2. Therefore, the process for the application 41b is executed by CPU2.
As described above, in the virtualization using the containers 40, a virtual OS is not used. Accordingly, when a container 40 is activated activation of a virtual OS does not occur. Therefore, the time period for activation of the container 40 is shorter than the length of time period for activation of the virtual machine 30. Here, since the container 40 operates on the OS 22 without using a virtual OS, it can be said that the container 40 is an application operating on the OS 22. It can also be said that a process request to the container 40 is a request for a process to the server 20 in which the container 40 is executed as an application. Note that the number of containers 40 operating in one server 20 is arbitrary.
As described above with reference to
In step S1, the management server 50 detects a request to set a path including a new virtual machine 30. Here, the management server 50 may receive the request for the path including the new virtual machine 30 from a terminal used by an operator. Moreover, when the management server 50 is provided with an input device for accepting input, the operator may make, to the management server 50, the request to set the path including the new virtual machine 30. In this case, the management server 50 detects the request to set the new path by using input from the input device. The management server 50 decides a server 20 in which the virtual machine 30 set in the new path is operated, and a server 20 in which a container 40 is operated. Here, until the virtual machine 30 to be newly activated is activated, the container 40 executes, as a substitute for the virtual machine 30, a process that is executed by the virtual machine 30 after being activated. Note that the server 20 in which the virtual machine 30 is operated may be the same as or different from the server 20 in which the container 40 that executes, as a substitute, the process of the virtual machine 30 is operated.
In step S2, the management server 50 makes a request to activate the virtual machine 30 included in the new path to the server 20 in which the new virtual machine 30 is operated. The management server 50 also makes a request to activate the container 40 that executes, as a substitute, the process of the virtual machine 30 included in the new path to the server 20 in which the container 40 is operated (step S3).
When the container 40 for which an activation request was made has been activated in step S3, a first path that passes through the activated container 40 is set (step S4). Thereafter, communication using the first path is performed until the virtual machine 30 is activated (“NO” in step S5). When the virtual machine 30 has been activated, a process for switching the first path to a second path that passes through the virtual machine 30 is executed (“YES” in step S5, step S6).
As described above, with the method according to the embodiment, switching is made to a path using a virtual machine 30 after the virtual machine 30 has been activated subsequently to the structuring of a service chain by temporarily using a container 40 that is quickly activated. The path using the virtual machine 30 can be operated with more stability than a path using the container 40, and its operation management is easier. Accordingly, a requested service can be quickly started, and can be stably rendered by using the virtual machine 30.
<Device Configuration>
The transmitter 52 transmits a control message to a server 20 within a network. The receiver 53 receives a control message from a server 20 within the network. The obtainment unit 54 obtains a request to set a path including a new virtual machine.
The path change unit 61 makes, to the virtual machine activation request unit 62, a request to activate a new virtual machine 30 in response to a request to set a path including the new virtual machine. The path change unit 61 also makes, to the container activation request unit 63, a request to activate a container 40 that executes, as a substitute for a virtual machine 30 to be newly activated, the process of the virtual machine 30. Additionally, the path change unit 61 changes a communication path in a service chain when the virtual machine 30 or the container 40 is activated.
The virtual machine activation request unit 62 selects a server 20 in which a new virtual machine 30 is to be activated, and makes a request to activate the virtual machine 30 to the selected server 20. The container activation request unit 63 selects a server 20 in which a new container 40 is to be activated, and makes a request to activate the container 40 to the selected server 20. The activation determination unit 64 determines whether the virtual machine 30 or the container 40 has been activated, and notifies the path change unit 61 that the virtual machine 30 or the container 40 has been activated. When information (state information) about a process of a transfer packet has been generated with the process of the container 40, the transfer request unit 65 executes a process for transferring the data generated by the container 40 to the virtual machine 30. Examples of the state information include information about an association with an address conversion of proxy, information about a packet passed by firewall, and the like.
The element management table 71 stores information about a terminal 10, a virtual machine 30 and a container 40 that are included in each service chain. The element management table 71 includes, for example, information of an identifier of a device included in a service chain, an identifier of the service chain (SC ID), an IP address, an IP address of a transfer destination of a packet, an IP address of a server 20 in which the transfer destination is operating, and the like.
The SC management table 72 records a transfer path of a packet in a service chain. The SC management table 72 includes an identifier of a device included in a service chain, an identifier of the service chain, the order of the device in the service chain, and the like. In the IP address table 73, IP addresses assignable to a virtual machine 30 and a container 40 to be newly activated are recorded.
The processor 81 operates as the controller 60. The memory 82 operates as the storage unit 70. The network interface 86 operates as the transmitter/receiver 51. The obtainment unit 54 is implemented by the network interface 86 or the input device 83.
In the service chain having SC ID=SC1 illustrated in
The element management table 71_1 includes information of elements used to generate the service chain having SC ID=SC1. Moreover, the identifier of the virtual machine 30a is VM1, and the virtual machine 30a operates as a Deep Packet Inspection (hereafter referred to as a “DPI” for short). An identifier of the virtual machine 30b is VM2, and the virtual machine 30b operates as a Web Proxy (due to space limitations, Web Proxy can be abbreviated as “Proxy” in the figures). In the element management table 71_1, information of the server 20 in which the virtual machine 30 is operating is indicated with an IP address (a server address) assigned to the server 20. Here, the IP address assigned to the terminal 10A is IPA, and the IP address assigned to the terminal 10Z is IPZ. The virtual machine 30a operates in the server 20a, while the virtual machine 30b operates in the server 20b. Moreover, IP addresses respectively assigned to the devices such as the server 20a, the server 20b, the virtual machine 30a and the virtual machine 30b are IPS2, IPS2, IP1 and IP2. The server 20c is included in the network. However, a packet that the terminal 10A transmits to the terminal 10Z is not transferred to the server 20c. Accordingly, information of the server 20c is not included in the element management table 71_1 at this point in time. The IP address assigned to the server 20c is assumed to be IPS2.
Additionally, each of the devices stores a transfer destination for using a transfer path set as a service chain. For example, the terminal 10A stores the virtual machine 30a (VM1) as the transfer destination of the packet addressed to the terminal 10Z (addressed to IPZ). Similarly, the virtual machine 30a (VM1) stores the virtual machine 30b (VM2) as the transfer destination of the packet addressed to the terminal 10Z, and the virtual machine 30b stores the terminal 10Z as the transfer destination of the packet addressed to the terminal 10Z.
Initially, the path change unit 61 detects that a request to set a path including a new virtual machine in a certain service chain has occurred. The path change unit 61 makes a request to activate the new virtual machine 30 to the virtual machine activation request unit 62 (arrow A1). Assume that the newly added virtual machine 30 is a virtual machine 30c and the identifier of the virtual machine 30c is VMnew. The path change unit 61 also makes, to the container activation request unit 63, a request to activate a container 40 that executes, as a substitute for the virtual machine 30c, the process of the virtual machine 30c to be newly activated (arrow A2). Also assume that the identifier of the container 40 to be activated is containernew.
The virtual machine activation request unit 62 selects a server 20 in which the virtual machine 30c (VMnew) is to be operated, in accordance with a deployment policy of the virtual machine 30. The policy used to select the server 20 is arbitrary. For example, a server 20 having a low processing load is selected. Here, assume that the virtual machine activation request unit 62 has decided to operate the server 20c.
As indicated by an arrow A3, the virtual machine activation request unit 62 selects an IP address assignable to VMnew by referencing the IP address table 73. Here, assume that the virtual machine activation request unit 62 assigns IPV as the IP address assigned to VMnew. The virtual machine activation request unit 62 deletes the selected IP address from the IP address table 73.
In an arrow A4, the virtual machine activation request unit 62 adds, to the element management table 71, information about the virtual machine 30c to be newly added. The identifier of the virtual machine 30c is VMnew, and the IP address assigned to the server 20c in which the virtual machine 30c is to be operated is IPS3. Moreover, the virtual machine 30c is added to the service chain having SC ID=SC1 as a firewall (FW). Accordingly, the virtual machine activation request unit 62 adds, to the element management table 71_1 (
In an arrow A5, the virtual machine activation request unit 62 transmits, to the server 20c, a request message for making a request to activate the virtual machine. Details of the request message will be described later.
Meanwhile, the container activation request unit 63 that has received the request indicated by the arrow A2 selects a server 20 in which a container 40 (containernew) is to be operated, in accordance with a deployment policy of the container 40. The policy used to select the server 20 in which the container 40 is operated is arbitrary. The server 20 in which the container 40 is operated may be the same as or different from the server 20 in which the new virtual machine 30c is operated. Assume that the container activation request unit 63 has decided to operate the container 40 in the server 20c in the example illustrated in
As indicated by an arrow A6, the container activation request unit 63 selects an IP address assignable to the container 40 to be newly activated by referencing the IP address table 73. Here, assume that the container activation request unit 63 has selected IPC as the IP address assigned to the container 40. The container activation request unit 63 deletes the selected IP address from the IP address table 73.
In an arrow A7, the container activation request unit 63 adds, to the element management table 71, information about the container 40 to be newly added. The identifier of the container 40 is containernew, and the IP address assigned to the server 20c in which the container 40 is operated is IPS3. Moreover, the container 40 is added to the service chain having SC ID=SC1 as a firewall (FW). Accordingly, the container activation request unit 63 adds information of the entry of containernew within the element management table 71_2 by executing the process indicated by the arrow A7. Moreover, the container activation request unit 63 transmits, to the server 20c, a request message for making a request to activate the container 40 (arrow A8)
For example, in the arrow A5 illustrated in
The server 20c starts to activate the virtual machine 30c upon reception of the activation request message indicated by P13. The server 20c also starts to activate the container 40 upon receipt of the activation request message indicated by P14.
The activation determination unit 64 periodically makes, to the server 20c to which the request to activate the container 40 was made, an inquiry about whether the container 40 has been activated. Examples of the inquiry include a method for examining whether a process is being executed by the container 40 in the server 20c, and a method for transmitting an ICMP (Internet Control Message Protocol) echo to the container 40 in the server 20c to which the request to activate the container 40 has been made.
Upon detection of a request to change a path, the path change unit 61 also recognizes that the container 40 is added to the path that extends from the virtual machine 30a (VM1) to the virtual machine 30b (VM2). Accordingly, when the container 40 has been activated, the path change unit 61 changes the SC management table 72 so that the order of the container 40 (containernew) in the service chain can is before the virtual machine 30a (VM1) and after the virtual machine 30b (VM2) (arrow A11). With this process, the SC management table 72_1 (
The path change unit 61 decides, by referencing the SC management table 72_2, devices for which a transfer destination of a packet is changed, when the container 40 has been added to the service chain SC1. The devices for which the transfer destination of the packet addressed to IPZ is changed are the container 40 to be added to the service chain, and the device that transfers the packet to the container 40. Accordingly, the path change unit 61 decides the transfer destinations of the packet addressed to IPZ for the container 40 (containernew) and the virtual machine 30a (VM1). Since the virtual machine 30a (VM1) transfers the packet to the container 40 (containernew), the IP address of the transfer destination in the virtual machine 30a is the address (IPC) of the container 40. Meanwhile, since the container 40 transfers the packet to the virtual machine 30b (VM2), the IP address of the transfer destination in the container 40 is the address (IP2) of the virtual machine 30b. Accordingly, the path change unit 61 records the decided transfer destinations in the element management table 71. With this process, the element management table 71_2 (
In an arrow A13, the path change unit 61 makes, to the virtual machine 30a, a request to change, to IPC, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the virtual machine 30a via the transmitter/receiver 51. Moreover, in an arrow A14, the path change unit 61 makes, to the container 40, a request to set, to IP2, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the container 40.
With the process indicated by the arrows A13 and A14 illustrated in
It is assumed that the virtual machine 30c has been activated thereafter.
In an arrow A21, the path change unit 61 adds, to the SC management table 72, information of the virtual machine 30c (VMnew), and sets the order of the virtual machine 30c in SC1 to that between the virtual machine 30a (VM1) and the virtual machine 30b (VM2). Accordingly, as indicated by an SC management table 72_3, the order associated with the virtual machine 30c (VMnew) is 3. Moreover, the path change unit 61 excludes the container 40 from the transfer path used in the service chain SC1 by setting the order associated with the container 40 to an invalid value.
By referencing the SC management table 72_3, the path change unit 61 decides devices for which the transfer destination of the packet is changed when the virtual machine 30c is added to the service chain SC1. In the example illustrated in
In an arrow A23, the path change unit 61 makes, to the virtual machine 30a, a request to change, to IPV, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the virtual machine 30a via the transmitter/receiver 51. Moreover, in an arrow A24, the path change unit 61 makes, to the virtual machine 30c, a request to set, to IP2, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the virtual machine 30c.
With the process indicated by the arrows A23 and A24 illustrated in
The example in the case where the server 20 in which the virtual machine 30 or the container 40 is activated is selected in accordance with the deployment policy has been described with reference to
The container activation request unit 63 that has received the request to add a container 40 from the path change unit 61 identifies the server 20 in which the container 40 is to be activated, in accordance with the deployment policy of the container 40 or in response to the request from the operator (step S16). The container activation request unit 63 selects an IP address assigned to the container 40 from the list of assignable IP addresses recorded in the IP address table 73 (step S17). The container activation request unit 63 deletes the selected IP address from the IP address table 73 (step S18). The container activation request unit 63 records, in the element management table 71, information of the container 40 for which the activation request is made (step S19). The container activation request unit 63 makes, to the selected server 20, a request to activate the container 40 and to assign the selected IP address (step S20).
The activation determination unit 64 makes, to the server 20 to which the request to activate the container 40 was made, an inquiry about whether the container 40 has been activated (step S21). The activation determination unit 64 waits (“NO” in step S22) until the activation of the container 40 is completed. When the activation of the container 40 has been completed, the path change unit 61 obtains a new transfer path by using the SC management table 72 (“YES” in step S22, step S23). The path change unit 61 transmits path information to a device for which the transfer destination is changed within the service chain (step S24). Note that a rewrite request message is used to transmit the path information. With the process of step S24, the container 40 starts, as a substitute, a service scheduled to be rendered by the virtual machine 30 being activated.
The activation determination unit 64 makes, to the server 20 to which the request to activate the virtual machine 30 was made, an inquiry about whether the virtual machine 30 has been activated (step S25). The activation determination unit 64 waits (“NO” in step S26) until the virtual machine 30 is activated. When the virtual machine 30 has been activated, the path change unit 61 obtains a new transfer path by using the SC management table 72 (“YES” in step S26, step S27). The path change unit 61 transmits path information to the device for which the transfer destination is changed in the service chain (step S28).
The process executed when the virtual machine 30c that operates as a firewall is added to the service chain has been described with reference to
As described above, by using the method according to the first embodiment, a requested service can be quickly started by temporarily using a quickly activated container 40. Moreover, switching is made to a path using a virtual machine 30 after the virtual machine 30 has been activated, whereby the service can be stably rendered.
A second embodiment refers to a case where information about a process for a transferred packet is generated when the process for transferring the packet is executed in a newly added virtual machine 30 or a container 40 that executes, as a substitute, the process of the virtual machine 30. The management server 50 used in the second embodiment includes the transfer request unit 65 in addition to the path change unit 61, the virtual machine activation request unit 62, the container activation request unit 63 and the activation determination unit 64. Also in the second embodiment, a process of a request to activate a container 40 or a virtual machine 30, and a process for setting a transfer path that passes through a container 40 when the container 40 has been activated are similar to the processes of the first embodiment. For ease of understanding of the invention, examples of the processes executed in the second embodiment are described by taking, as an example, a case where the container 40 and the virtual machine 30c are activated in the server 20c similarly to
The transfer request unit 65 transmits, to the container 40, a request message for making a request to transmit the state information to the virtual machine 30c, in response to the request from the path change unit 61 (arrow A33). The request message includes the address (IPV) of the virtual machine 30c as a notification destination of the state information, and information for specifying the type of the state information to be notified to the virtual machine 30c. Moreover, the transfer request unit 65 transmits a request message for making, to the virtual machine 30c, a request to receive the state information from the container 40, and to use the received state information for the process of the packet (arrow A34). The request message transmitted to the virtual machine 30c includes the address (IPC) of the container 40, which is a transmission source of the state information, and the type of the transferred state information.
Upon receipt of the request message from the transfer request unit 65, the container 40 transmits, to the virtual machine 30c, the state information of the type specified in the request message (arrow A35). Meanwhile, the virtual machine 30c uses the state information received from the transmission source specified in the request message transmitted from the transfer request unit 65 for the subsequent process. In other words, with the transmission process indicated by the arrow A35, the state information generated by the container 40 is transmitted from the container 40 to the virtual machine 30c, and the virtual machine 30c can take over the process executed by the container 40 with the use of the state information.
The path change unit 61 transmits a switching request message to the virtual machine 30a and the virtual machine 30c after the process indicated by the arrow A35 has been executed (arrows A36 and A37). The process indicated by the arrows A36 and A37 is similar to that indicated by the arrows A23 and A24 described with reference to
A third embodiment refers to a process executed when a virtual machine 30 within a service chain is replaced with a different virtual machine 30 in order to recover from a fault in the virtual machine 30 included in the service chain, to reactivate the virtual machine 30, to distribute a load, or the like.
Examples of processes executed in the third embodiment are described by taking, as an example, a case where the virtual machine 30b is replaced with a different virtual machine 30 in a path indicated by an arrow A41.
When the virtual machine 30b is replaced with the different virtual machine 30, the path change unit 61 initially makes, to the virtual machine activation request unit 62, a request to activate a virtual machine 30d (not illustrated), which is a substitute for the virtual machine 30b. The path change unit 61 also makes a request to activate a container 40 that operates until the virtual machine 30d is activated.
The virtual machine activation request unit 62 selects a server 20 in which the virtual machine 30d is to be activated, in response to the request from the path change unit 61, and makes, to the selected server 20, a request to activate the virtual machine 30d. A process executed by the virtual machine activation request unit 62 when the request to activate the virtual machine 30d is made is similar to the process of the first embodiment. A description of the third embodiment assumes that an identifier of the virtual machine 30d is VMnew. With the process of the virtual machine activation request unit 62, an entry of VMnew in the element management table 71_12 (
By executing a process similar to the process of the first embodiment, the container activation request unit 63 also makes a request to activate a container 40 that operates as a substitute for the virtual machine 30d until the virtual machine 30d is activated. The following example takes a case where the container activation request unit 63 selects the server 20b as an activation destination of the container 40. However, the server 20 in which the container 40 operates may not be a server 20 in which the virtual machine 30 that is deleted from a service chain operates. Assume that the activation determination unit 64 determines that the container 40 has been activated with a process similar to the process of the first embodiment. Also, the description of the third embodiment assumes that an identifier of the container 40 is containernew. With the process of the container activation request unit 63, an entry of containernew is added to the element management table 71.
The transfer request unit 65 transmits, to the container 40, a request message for making a request to receive the state information from the virtual machine 30b and to use the received state information for the process of the packet, in response to the request made from the path change unit 61 (arrow A43). In the request message transmitted to the container 40, the address of the virtual machine 30b, which is a transmission source of the state information, and the type of the state information are specified. Moreover, the transfer request unit 65 transmits, to the virtual machine 30b, a request message for making a request to transmit, to the container 40, the state information generated at the time of the transfer process of the packet (arrow A44). The request message includes the address (IPC) of the container 40 as the notification destination of the state information, and information for specifying the type of the state information to be notified to the container 40.
Upon receipt of the request message from the transfer request unit 65, the virtual machine 30b transmits, to the container 40, the state information of the type specified in the request message (arrow A45). Meanwhile, the container 40 uses the state information received from the virtual machine 30b for the subsequent process. Namely, in the process indicated by the arrow A45 and subsequent ones, the container 40 takes over the state information generated by the virtual machine 30b. Therefore, the function of the firewall can be continuously provided even if the virtual machine 30b within the service chain CS1 is replaced with the container 40.
The path change unit 61 recognizes that the container 40 is the container 40 that executes the process until the virtual machine 30d used as a substitute for the virtual machine 30b (VMold) is activated. Accordingly, when the container 40 has been activated, the path change unit 61 sets the order of the container 40 (containernew) to a value assigned to the virtual machine 30b (VMold). Meanwhile, by setting the value of the order of the virtual machine 30b (VMold) to an invalid value, the virtual machine 30b is deleted from the service chain SC1. Accordingly, the SC management table 72_11 (
The path change unit 61 decides transfer destinations of the packet addressed to the terminal 10Z for the container 40 and the virtual machine 30a (VM1) by referencing the SC management table 72_12 (arrow A46). Since the virtual machine 30a (VM1) transfers, to the container 40 (containernew), the packet addressed to the terminal 10Z (IPZ), the IP address of the transfer destination of the virtual machine 30a is the address (IPC) of the container 40. Meanwhile, since the container 40 transfers, to the virtual machine 30c (VM2), the packet addressed to the IPZ, the IP address of the transfer destination in the container 40 is the address (IP2) of the virtual machine 30b. The path change unit 61 records the decided transfer destinations to the element management table 71 (arrow A47). Accordingly, with the process of the path change unit 61, the element management table 71_12 is obtained.
In an arrow A48, the path change unit 61 makes, to the virtual machine 30a, a request to change, to IPC, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the virtual machine 30a via the transmitter/receiver 51. Moreover, in an arrow A49, the path change unit 61 makes, to the container 40, a request to set, to IP2, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the container 40.
With the process indicated by the arrows A48 and A49, the transfer path of the packet addressed to the terminal 10Z in the service chain SC1 includes the terminal 10A, the virtual machine 30a, the container 40, the virtual machine 30c and the terminal 10Z. Also the process as a firewall is executed by the container 40.
When the virtual machine 30d has been activated, the transfer path of the service chain SC1 is switched from the path using the container 40 to that using the virtual machine 30d. A process for transferring state information executed when the path is switched is similar to that described in the second embodiment. The switching process executed after the process for transferring state information is similar to that described with reference to
As described above, according to the third embodiment, a service can also be rendered by using a container 40 before a newly activated virtual machine 30 starts to be operated when the virtual machine 30 included in a service chain is replaced with a different virtual machine 30 in order to recover from a fault, or the like.
A fourth embodiment refers to an example of a process executed when a service chain is generated.
Additionally, the management server 50 stores information indicating that the terminal 10A can perform communication by using the service chain via the virtual machine 30a. Accordingly, the management server 50 records, in the element management table 71_21, the terminal 10A (identifier=A) and the virtual machine 30a (VME) as elements that can be included in the service chain. Note that the virtual machine 30a operates as a default router when it accesses the service chain for the terminal 10A.
Assume that the virtual machine activation request unit 62 decides to operate the virtual machine 30b in the server 20b by using the deployment policy of the virtual machine 30, or the like. The virtual machine activation request unit 62 selects an IP address assigned to VMnew by referencing the IP address table 73, and deletes the selected IP address from the IP address table 73 (arrow A62). Here, assume that IPV is assigned to VMnew. The virtual machine activation request unit 62 adds, to the element management table 71, an entry of the virtual machine 30b (VMnew). Namely, information indicating that the virtual machine 30b operates as a firewall (FW) in the server 20b is recorded in the element management table 71 (arrow A63). Thereafter, the virtual machine activation request unit 62 transmits, to the server 20b, a request message for making a request to activate the virtual machine (arrow A64).
Additionally, the path change unit 61 makes, to the container activation request unit 63, a request for a process for activating the container 40 to be operated until the virtual machine 30 that operates as a firewall in the service chain Sc1 is activated (arrow A65).
Assume that the container activation request unit 63 has decided to operate the container 40 (containernew) in the server 20b in accordance with the deployment policy of the container 40. The container activation request unit 63 selects an IP address assigned to the container 40 to be newly activated by referencing the IP address table 73, and deletes the selected IP address from the IP address table 73 (arrow A66). Here, assume that IPC is assigned to the container 40. The container activation request unit 63 adds, to the element management table 71, an entry of the container 40 (containernew). Namely, information indicating that the container 40 operates as a firewall (FW) in the server 20b is recorded in the element management table 71 (arrow A67). Accordingly, at a point in time when the process indicated by the arrow A67 has been terminated, the management server 50 includes the element management table 71_22. Meanwhile, the container activation request unit 63 transmits, to the server 20b, a request message for making a request to activate the container 40 (arrow A68).
Even at a stage when the process indicated by the arrow 68 was terminated, the service chain SC1 that extends from the terminal 10A to the terminal 10Z has not been established. Accordingly, the management server 50 holds the SC management table 72_21 that does not include the information of the service chain SC1.
The path change unit 61 decides transfer destinations of the packet addressed to the terminal 10Z in the devices included in the service chain in the case where the path recorded in the SC management table 72_22 is used, and records the transfer destinations of the packet in the element management table 71. Accordingly, with the process of the path change unit 61, the element management table 71_22 (
In an arrow A73, the path change unit 61 makes, to the virtual machine 30a, a request to set, to IPC, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the virtual machine 30a. In an arrow A74, the path change unit 61 also makes, to the container 40, a request to set, to IPZ, the address of the transfer destination of the packet addressed to IPZ by transmitting a rewrite request message to the container 40.
With the process indicated by the arrows A73 and A74 illustrated in
After the virtual machine 30b has taken over the state information generated by the container 40, the path change unit 61 changes the SC management table 72 to an SC management table 72_23 (arrow A175). With this process, a path that extends from the terminal 10A to the terminal 10Z via the virtual machine 30a and the virtual machine 30b is decided as the path used for the transmission process from the terminal 10A to the terminal 10Z in the service chain SC1 when the container 40 has been replaced with the virtual machine 30b. The path change unit 61 changes the element management table 71 to an element management table 71_24 in order to suit the path used in the service chain SC1 (arrow A176).
Additionally, the path change unit 61 transmits a switching request message to the virtual machine 30a and the virtual machine 30b (arrows A177 and A178). The process indicated by the arrows A177 and A178 is similar to that indicated by the arrows A23 and A24 described with reference to
As described above, the method according to this embodiment is applicable not only to the case where a virtual machine 30 is added to an existing service chain but also to the case where a new service chain is generated. Accordingly, a service chain is established by using a container 40 until the virtual machine 30 is activated, so that the timing at which the service chain starts to be used can be made earlier than in the case where the container 40 is not used.
The first to the fourth embodiments have been described by taking, as an example, the case where one virtual machine 30 is added to the service chain. However, a plurality of virtual machines 30 may be added to one service chain at a time. When a plurality of virtual machines 30 are added to one service chain at a time, a container 40 that executes, as a substitute, the process of a virtual machine 30 is associated with each newly activated virtual machine 30 in the element management table 71 so that the container 40 can be definitely identified.
For example,
When the virtual machine 30 (associated ID=ID1) identified with VMnew has been activated, the path change unit 61 identifies the container 40 having the associated ID=ID1 by referencing the element management table 71. The path change unit 61 switches the transfer path used for the process in the service chain to that passing through the virtual machine 30 having the associated ID=ID1.
Meanwhile, assume that the virtual machine 30 (associated ID=ID2) identified with VMnew_2 has been activated. In this case, the path change unit 61 replaces the transfer path of the service chain with the transfer path using the virtual machine 30 identified with VMnew_2 as a substitute for the container 40 having the associated ID=ID2.
Since there is no association between the value of an associated ID and the order of activation, activation starts from a virtual machine 30 having an arbitrary associated ID. For example, in the SC management table 72 illustrated in
As described above, association information that associates a virtual machine 30 to be added with a container 40 that executes, as a substitute, the process of the virtual machine 30 is recorded in the element management table 71, whereby the process for adding a plurality of virtual machines 30 can be easily executed.
In an arrow A89, by referencing the element management table 71 and the SC management table 72, the path change unit 61 calculates a transfer path used in a service chain when the container 40 is activated. In the example illustrated in
In an arrow A90, the path change unit 61 report the transfer path used when the container 40 is activated and the transfer path used when the virtual machine 30c is activated to the path change unit 101 of the server 100c. At this time, the path change unit 61 also notifies the path change unit 101 of information of a device for which a transfer destination is changed when each of the paths is used. For example, in the case illustrated in
Activation process of the container 40
Activation process of the virtual machine 30c
In an arrow A101, the path change unit 101 notifies the activation determination unit 102 of the activation determination condition of the container 40 and the activation determination condition of the virtual machine 30c among information obtained from the path change unit 61.
In an arrow A102, the activation determination unit 102 determines whether the container 40 has been activated by using the activation determination condition of the container 40 among the conditions notified from the path change unit 101. The activation determination unit 102 periodically determines whether the activation of the container 40 has been completed until it can verify that the container 40 is activated. When the container 40 has been activated, the activation determination unit 102 notifies the path change unit 101 that the activation of the container 40 has been completed.
In an arrow A112, the activation determination unit 102 determines whether the virtual machine 30c has been activated by using the activation determination condition of the virtual machine 30c among the conditions notified from the path change unit 101. The activation determination unit 102 periodically determines whether the activation of the virtual machine 30c has been completed until it can verify that the virtual machine 30c is activated. The activation determination unit 102 notifies the path change unit 101 that the activation of the virtual machine 30 has been completed when the virtual machine 30c was activated (arrow A113).
The transfer request unit 103 makes, to the container 40, a request to transmit the state information generated at the time of the transfer process of a packet to the virtual machine 30c (arrow A122). Moreover, the transfer request unit 103 makes, to the virtual machine 30c, a request to receive the state information from the container 40 and to use the received state information for the process of the packet (arrow A123). The container 40 transmits the state information to the virtual machine 30c in response to the request made from the transfer request unit 103 (arrow Al24). Meanwhile, the virtual machine 30c uses the state information received from the container 40 for the subsequent process. Namely, with the process indicated by the arrow Al24 and subsequent ones, the state information generated by the container 40 is taken over by the virtual machine 30c. Therefore, the function of the firewall can be continuously provided even if the container 40 within the service chain SC1 is replaced with the virtual machine 30c.
Next, the path change unit 101 sets the transfer destination of the packet addressed to the terminal 10Z (IPZ) in the virtual machine 30a (address=IP1) and the virtual machine 30c (address=IPV) by using the information notified from the path change unit 61 (arrows Al25, Al26). Accordingly, the transfer path of the service chain is switched from the arrow A111 (
The process executed in the fifth embodiment has been described with reference to
The path change unit 101 receives a request to change a path from the management server 90 (step S51). The activation determination unit 102 determines whether the container 40 has been activated, and waits (“NO” in step S52) until the container 40 is activated. When the container 40 has been activated, the path change unit 101 notifies a device for which a transfer destination of a packet is changed due to the activation of the container 40 of a new transfer destination (“YES” in step S52, step S53). The activation determination unit 102 makes, to the server 100 to which the request to activate the virtual machine 30 is made, an inquiry about whether the activation of the virtual machine 30 has been completed (step S54). The activation determination unit 102 determines whether the activation of the virtual machine 30 has been completed, and waits (“NO” in step S55) until the activation of the virtual machine 30 is completed. When the activation of the virtual machine 30 has been completed, the path change unit 101 makes, to the container 40, a request to notify the virtual machine 30 of state information (“YES” in step S55, step S56). Moreover, the path change unit 101 notifies the device for which the transfer destination of the packet is changed of a new transfer destination due to the activation of the virtual machine 30 (step S57).
As described above in the fifth embodiment, the server 100 executes the path switching process, so that the processing load imposed on the management server 90 is lightened in comparison with the first to the fourth embodiments.
Note that the embodiments are not limited to those described above, and can be diversely modified. Some examples of modified embodiments are described below.
The above description has been provided by taking, as an example, the case where it is verified that the container 40 or the virtual machine 30 has been activated by having the activation determination unit 64 make an inquiry. However, the method for determining whether the container 40 or the virtual machine 30 has been activated may be changed.
For example, the server 20 to which a request to activate a container 40 has been made may determine whether the activation of the container 40 has been completed. At this time, the server 20 determines whether a process is being executed by the container 40, and determines that the container 40 has been activated if the process is being executed. Moreover, the server 20 notifies the management server 50 that the container 40 has been activated by transmitting an activation completion message to the management server 50 when it verifies that the activation of the container 40 has been completed. The activation completion message includes information for uniquely identifying the activated container 40. Upon receipt of the activation completion message from the server 20, the activation determination unit 64 determines that the container has been activated, which has been notified with the activation completion message, and notifies the path change unit 61 that the container 40 has been activated. Also, when a virtual machine 30 is activated, the server 20 in which the virtual machine 30 is activated similarly transmits an activation completion message to the management server 50 when it verifies that the virtual machine 30 has been activated.
By modifying the embodiment in this way, the number of messages transmitted from the management server 50 to the server 20 is reduced. Accordingly, the load of the process that is executed by the management server 50 in order to verify that the container 40 or the virtual machine 30 has been activated is lightened even if the number of service chains managed by the management server 50 increases.
Additionally, the embodiments may be modified so that the activation determination unit 64 can make an inquiry about whether the container 40 or the virtual machine 30 has been activated, which has been notified with an activation completion message when the management server 50 has received the activation completion message. Also in this case, the activation determination unit 64 does not execute the inquiry process until the completion of the activation of the container 40 or the virtual machine 30 is notified. Therefore, the processing load imposed on the management server 50 is lightened. Moreover, the activation determination unit 64 verifies that the virtual machine 30 or the container 40 has been activated at the timing when the activation completion message is received, whereby a malfunction is less prone to occur.
Furthermore, a predicted value of the length of time used from an activation request until the completion of activation may be preset for each of the container 40 and the virtual machine 30. When the length of time elapsed from a time at which the request to activate the container 40 has been made from the container activation request unit 63 reaches the predicted value needed to activate the container 40, the activation determination unit 64 determines that the container 40 has been activated, and notifies the path change unit 61 that the container 40 has been activated. Also for the virtual machine 30, when the length of time elapsed from a time at which the request to activate the virtual machine 30 has been made from the virtual machine activation request unit 62 reaches a predicted value of the length of time used to activate the virtual machine 30, the activation determination unit 64 determines that the virtual machine 30 has been activated, and notifies the path change unit 61 that the virtual machine 30 has been activated. By modifying the embodiments in this way, the management server 50 does not transmit a message in order to determine whether the container 40 or the virtual machine 30 has been activated, whereby the processing load is lightened.
The information elements included in the above described tables may be changed in accordance with an implementation. Also, the information elements included in the control messages such as an activation request message and the like may be changed. For example, the activation request message may include the identifier of the container 40 or the virtual machine 30 to be activated as a replacement for a service chain identifier (SC ID). Moreover, for example, an activation request message including, as data, the following information elements may be transmitted to the server 20c as a replacement for P13 illustrated in
a request to activate a virtual machine 30
an identifier of a virtual machine 30 to be activated: VMnew
an IP address of the virtual machine 30 to be activated: IPV
a type of the virtual machine 30 to be activated: FW
To the activation request messages illustrated in
Additionally, the rewrite request message may be modified so that it can be transmitted to a server 20 in which a virtual machine 30 or a container 40 is operated. In this case, the rewrite request message includes information indicating a setting destination of a change in a transfer destination notified with the rewrite request message in addition to the information elements illustrated in
The process referred to in the second embodiment is merely one example of the method with which a container 40 that executes, as a substitute, the process of a virtual machine 30 transmits generated state information. The method with which the virtual machine 30 obtains the state information generated by the container 40 can be changed in accordance with an implementation. For example, the management server 50 makes, to the container 40, a request to transfer state information to the virtual machine 30. However, for a virtual machine 30, the management server 50 does not particularly make a request to receive state information from the container 40. Also, in this case, the virtual machine 30 uses information received from the container 40 as state information.
Additionally, the management server 50 may relay state information. In this case, when the virtual machine 30 has been activated, the path change unit 61 makes, to the transfer request unit 65, a request to cause an activated virtual machine 30 (VMnew) to take over the state information generated by the container 40. The transfer request unit 65 request the container 40 to transfer the state information used for the transfer process executed in the container 40 to the management server 50. At this time, the transfer request unit 65 transmits, to the container 40, a request message including an address assigned to the management server 50, information for identifying the type of the state information transmitted to the management server 50, and the like. Upon receipt of the request from the management server 50, the container 40 transmits the state information to the management server 50. The state information is managed by the transfer request unit 65 of the management server 50.
Next, the transfer request unit 65 transmits a request including an instruction for making a request to use the state information for the transfer process of a packet, and the state information, to the virtual machine 30 (VMnew) that takes over the process executed by the container 40. The virtual machine 30 identified with VMnew stores received data as the state information upon receipt of the request from the management server 50.
In all of the embodiments, when a path including a container 40 has been switched to a path including a virtual machine 30 for which the container 40 executes, as a substitute, a process of the virtual machine 30, the container 40 is deleted. When the path change unit 61 switches the path, the path change unit 61 makes a request to delete the container 40 to the server 20 in which the container 40 is operated. Meanwhile, when the path change unit 101 within the server 100 switches the path, the path change unit 101 makes a request to terminate the container 40. Note that the request to delete the container 40 may be made to the container 40 itself. When the request to delete the container 40 is made to the server 20, at least one of the identifier of the container 40, a service chain ID, an associated ID and the like is used when the container 40 to be deleted is identified.
In all of the above described embodiments, the length of time needed until a requested communication function starts in a service chain can be reduced.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2015-007281 | Jan 2015 | JP | national |